Skip to content

Instantly share code, notes, and snippets.

@lukego
Last active August 29, 2015 14:02
Show Gist options
  • Save lukego/8d9ac096529e5c6ad492 to your computer and use it in GitHub Desktop.
Save lukego/8d9ac096529e5c6ad492 to your computer and use it in GitHub Desktop.
Snabb `loadgen` benchmark analysis
Exerpt from `perf top`:
```
25.29% perf-26553.map [.] TRACE_7::lib/virtio/net_device.lua:161
22.10% perf-26553.map [.] TRACE_19::lib/virtio/net_device.lua:236
7.63% perf-26553.map [.] TRACE_15::apps/intel/intel_app.lua:77
6.37% snabb [.] lj_alloc_free
6.22% snabb [.] release_unused_segments
4.73% perf-26553.map [.] TRACE_14::apps/intel/intel_app.lua:92
3.93% snabb [.] packet_reset
2.60% snabb [.] lj_mem_newgco
2.35% snabb [.] lj_alloc_malloc
2.19% snabb [.] link_receive
1.87% snabb [.] lj_cdata_free
1.69% snabb [.] gc_sweep
```
Application and profiler output:
```
Processed 200.0 million packets in 48.33 seconds
Made 386,587 breaths: 517.35 packets per breath; 125.01us per breath
Rate(Mpps): 4.138
82% Compiled
-- 24% net_device.lua:vm_buffer
-- 24% tlb.lua:lookup
-- 9% net_device.lua:get_transmit_buffers_from_vm
-- 7% net_device.lua:transmit_packets_to_vm
-- 7% packet.lua:free
-- 5% buffer.lua:free
-- 4% packet.lua:add_iovec
-- 4% intel10g.lua:can_add_receive_buffer
-- 4% freelist.lua:add
16% Garbage Collector
-- 100% net_device.lua:transmit_packets_to_vm
```
Output from `perf stat`:
```
Performance counter stats for 'taskset -c 1 /home/luke/hacking/snabbswitch/src/snabb -jdump x /home/luke/hacking/snabbswitch/src/designs/nfv/nfv 200e6':
106,355,440 cache-misses # 2.279 M/sec [56.98%]
184,771,534 branch-misses # 3.959 M/sec [49.98%]
134,792,021 dTLB-misses # 2.888 M/sec [49.98%]
46667.143713 task-clock (msec) # 0.699 CPUs utilized
183,953,105,470 instructions # 1.42 insns per cycle
# 0.34 stalled cycles per insn [64.31%]
129,404,729,440 cycles # 2.773 GHz [64.31%]
63,190,494,263 stalled-cycles-frontend # 48.83% frontend cycles idle [64.30%]
35,301,420,053 stalled-cycles-backend # 27.28% backend cycles idle [64.29%]
7,190 context-switches # 0.154 K/sec
0 cpu-migrations # 0.000 K/sec
432,345 page-faults # 0.009 M/sec
66.730344885 seconds time elapsed
```
---- TRACE 19 start net_device.lua:236
0018 UGET 3 0 ; link
0019 TGETS 3 3 5 ; "receive"
0020 MOV 4 1
0021 CALL 3 2 2
0000 . FUNCF 4 ; link.lua:21
0001 . UGET 1 0 ; C
0002 . TGETS 1 1 0 ; "link_receive"
0000 . . . FUNCC ; ffi.clib.__index
0003 . MOV 2 0
0004 . CALLT 1 2
0000 . FUNCC ; ffi.meta.__call
0022 TGETS 4 3 6 ; "iovecs"
0000 . . FUNCC ; ffi.meta.__index
0023 TGETB 4 4 0
0000 . . FUNCC ; ffi.meta.__index
0024 MOV 6 0
0025 TGETS 5 0 7 ; "vm_buffer"
0026 MOV 7 4
0027 CALL 5 3 3
0000 . JFUNCF 10 18 ; net_device.lua:207
0001 . KPRI 2 2
0002 . TGETS 3 1 0 ; "buffer"
0000 . . . FUNCC ; ffi.meta.__index
0003 . TGETS 4 3 1 ; "origin"
0000 . . . FUNCC ; ffi.meta.__index
0004 . TGETS 4 4 2 ; "type"
0000 . . . FUNCC ; ffi.meta.__index
0005 . UGET 5 0 ; C
0006 . TGETS 5 5 3 ; "BUFFER_ORIGIN_VIRTIO"
0000 . . . FUNCC ; ffi.clib.__index
0007 . ISEQV 4 5
0008 . JMP 4 => 0034
0000 . . . FUNCC ; ffi.meta.__eq
0034 . MOV 4 2
0035 . MOV 5 3
0036 . RET 4 3
0028 GSET 6 8 ; "b"
0029 MOV 2 5
0030 TGETS 5 0 9 ; "txring"
0031 TGETS 5 5 10 ; "used"
0032 TGETS 5 5 11 ; "ring"
0000 . . FUNCC ; ffi.meta.__index
0033 TGETS 6 0 12 ; "txused"
0034 TGETS 7 0 13 ; "tx_vring_num"
0035 MODVV 6 6 7
0036 TGETV 5 5 6
0000 . . FUNCC ; ffi.meta.__index
0037 GGET 6 8 ; "b"
0038 TGETS 6 6 14 ; "origin"
0000 . . FUNCC ; ffi.meta.__index
0039 TGETS 6 6 15 ; "info"
0000 . . FUNCC ; ffi.meta.__index
0040 TGETS 6 6 16 ; "virtio"
0000 . . FUNCC ; ffi.meta.__index
0041 TGETS 7 6 18 ; "header_id"
0000 . . FUNCC ; ffi.meta.__index
0042 TSETS 7 5 17 ; "id"
0000 . . FUNCC ; ffi.meta.__newindex
0043 UGET 7 1 ; virtio_net_hdr_size
0044 TGETS 8 4 20 ; "length"
0000 . . FUNCC ; ffi.meta.__index
0045 ADDVV 7 7 8
0046 TSETS 7 5 19 ; "len"
0000 . . FUNCC ; ffi.meta.__newindex
0047 TGETS 7 0 12 ; "txused"
0048 ADDVN 7 7 0 ; 1
0049 TSETS 7 0 12 ; "txused"
0050 TGETS 7 0 12 ; "txused"
0051 ISNEN 7 1 ; 65536
0052 JMP 7 => 0055
0055 UGET 7 2 ; packet
0056 TGETS 7 7 21 ; "deref"
0057 MOV 8 3
0058 CALL 7 1 2
0000 . FUNCF 4 ; packet.lua:189
0001 . IST 1
0002 . JMP 2 => 0004
0003 . KSHORT 1 1
0004 . TGETS 2 0 0 ; "refcount"
0000 . . . FUNCC ; ffi.meta.__index
0005 . KSHORT 3 0
0006 . ISGE 3 2
0007 . JMP 2 => 0018
0008 . TGETS 2 0 0 ; "refcount"
0000 . . . FUNCC ; ffi.meta.__index
0009 . ISNEV 1 2
0010 . JMP 2 => 0015
0011 . GGET 2 1 ; "free"
0012 . MOV 3 0
0013 . CALL 2 1 2
0000 . . FUNCF 7 ; packet.lua:207
0001 . . KSHORT 1 0
0002 . . TGETS 2 0 0 ; "niovecs"
0000 . . . . FUNCC ; ffi.meta.__index
0003 . . SUBVN 2 2 0 ; 1
0004 . . KSHORT 3 1
0005 . . FORI 1 => 0013
0006 . . UGET 5 0 ; buffer
0007 . . TGETS 5 5 1 ; "free"
0008 . . TGETS 6 0 2 ; "iovecs"
0000 . . . . FUNCC ; ffi.meta.__index
0009 . . TGETV 6 6 4
0000 . . . . FUNCC ; ffi.meta.__index
0010 . . TGETS 6 6 3 ; "buffer"
0000 . . . . FUNCC ; ffi.meta.__index
0011 . . CALL 5 1 2
0000 . . . FUNCF 4 ; buffer.lua:39
0001 . . . TGETS 1 0 0 ; "origin"
0000 . . . . . FUNCC ; ffi.meta.__index
0002 . . . TGETS 1 1 1 ; "type"
0000 . . . . . FUNCC ; ffi.meta.__index
0003 . . . UGET 2 0 ; C
0004 . . . TGETS 2 2 2 ; "BUFFER_ORIGIN_VIRTIO"
0000 . . . . . FUNCC ; ffi.clib.__index
0005 . . . ISNEV 1 2
0006 . . . JMP 1 => 0018
0000 . . . . . FUNCC ; ffi.meta.__eq
0007 . . . GGET 1 3 ; "virtio_devices"
0008 . . . TGETS 2 0 0 ; "origin"
0000 . . . . . FUNCC ; ffi.meta.__index
0009 . . . TGETS 2 2 4 ; "info"
0000 . . . . . FUNCC ; ffi.meta.__index
0010 . . . TGETS 2 2 5 ; "virtio"
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETS 2 2 6 ; "device_id"
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . TGETV 1 1 2
0013 . . . MOV 2 1
0014 . . . TGETS 1 1 7 ; "return_virtio_buffer"
0015 . . . MOV 3 0
0016 . . . CALL 1 1 3
0000 . . . . JFUNCF 5 16 ; net_device.lua:282
0001 . . . . UGET 2 0 ; freelist
0002 . . . . TGETS 2 2 0 ; "add"
0003 . . . . TGETS 3 0 1 ; "buffer_recs"
0004 . . . . MOV 4 1
0005 . . . . CALL 2 1 3
0000 . . . . . JFUNCF 4 6 ; freelist.lua:12
0001 . . . . . TGETS 2 0 0 ; "list"
0002 . . . . . TGETS 3 0 1 ; "nfree"
0003 . . . . . TSETV 1 2 3
0000 . . . . . . . FUNCC ; ffi.meta.__newindex
0004 . . . . . TGETS 2 0 1 ; "nfree"
0005 . . . . . ADDVN 2 2 0 ; 1
0006 . . . . . TSETS 2 0 1 ; "nfree"
0007 . . . . . RET0 0 1
0006 . . . . TGETS 2 1 2 ; "origin"
0000 . . . . . . FUNCC ; ffi.meta.__index
0007 . . . . TGETS 2 2 3 ; "info"
0000 . . . . . . FUNCC ; ffi.meta.__index
0008 . . . . TGETS 2 2 4 ; "virtio"
0000 . . . . . . FUNCC ; ffi.meta.__index
0009 . . . . TGETS 2 2 5 ; "ring_id"
0000 . . . . . . FUNCC ; ffi.meta.__index
0010 . . . . ISNEN 2 0 ; 1
0011 . . . . JMP 2 => 0040
0040 . . . . RET0 0 1
0017 . . . JMP 1 => 0023
0023 . . . RET0 0 1
0012 . . FORL 1 => 0006
0013 . . UGET 1 1 ; C
0014 . . TGETS 1 1 4 ; "packet_reset"
0000 . . . . FUNCC ; ffi.clib.__index
0015 . . MOV 2 0
0016 . . CALL 1 1 2
0000 . . . FUNCC ; ffi.meta.__call
0017 . . JMP 1 => 0030
0030 . . UGET 1 2 ; freelist
0031 . . TGETS 1 1 10 ; "add"
0032 . . GGET 2 11 ; "packets_fl"
0033 . . MOV 3 0
0034 . . CALL 1 1 3
0000 . . . JFUNCF 4 6 ; freelist.lua:12
0001 . . . TGETS 2 0 0 ; "list"
0002 . . . TGETS 3 0 1 ; "nfree"
0003 . . . TSETV 1 2 3
0000 . . . . . FUNCC ; ffi.meta.__newindex
0004 . . . TGETS 2 0 1 ; "nfree"
0005 . . . ADDVN 2 2 0 ; 1
0006 . . . TSETS 2 0 1 ; "nfree"
0007 . . . RET0 0 1
0035 . . RET0 0 1
0014 . JMP 2 => 0018
0018 . RET0 0 1
0059 JMP 3 => 0009
0009 UGET 3 0 ; link
0010 TGETS 3 3 4 ; "empty"
0011 MOV 4 1
0012 CALL 3 2 2
0000 . JFUNCF 3 8 ; link.lua:69
0001 . TGETS 1 0 0 ; "read"
0000 . . . FUNCC ; ffi.meta.__index
0002 . TGETS 2 0 1 ; "write"
0000 . . . FUNCC ; ffi.meta.__index
0003 . ISEQV 1 2
0004 . JMP 1 => 0007
0005 . KPRI 1 1
0006 . JMP 2 => 0008
0008 . RET1 1 2
0013 IST 3
0014 JMP 3 => 0060
0015 ISF 2
0016 JMP 3 => 0060
0017 LOOP 3 => 0060
---- TRACE 19 IR
0001 fun SLOAD #0 R
0002 > p32 UREFC 0001 #0
0003 > tab ULOAD 0002
0004 int FLOAD 0003 tab.hmask
0005 > int EQ 0004 +15
0006 p32 FLOAD 0003 tab.node
0007 > p32 HREFK 0006 "receive" @1
0008 > fun HLOAD 0007
0009 > cdt SLOAD #2 T
0010 > fun EQ 0008 link.lua:21
0011 > nil PROF
0012 > p32 UREFC link.lua:21 #0
0013 > udt ULOAD 0012
0014 > p32 EQ 0013 [0x411a2f38]
0015 u16 FLOAD 0009 cdata.ctypeid
0016 > int EQ 0015 +175
0017 p64 ADD 0009 +8
0018 p64 CALLXS [0x407765](0017)
0019 } cdt CNEWI +172 0018
0020 > nil PROF
0022 } cdt CNEWI +600 0018
0023 > tab SLOAD #1 T
0024 p32 HREF 0023 "vm_buffer"
0025 > p32 EQ 0024 [0x41196458]
0026 tab FLOAD 0023 tab.meta
0027 > tab NE 0026 [NULL]
0028 int FLOAD 0026 tab.hmask
0029 > int EQ 0028 +1
0030 p32 FLOAD 0026 tab.node
0031 > p32 HREFK 0030 "__index" @1
0032 > tab HLOAD 0031
0033 int FLOAD 0032 tab.hmask
0034 > int EQ 0033 +31
0035 p32 FLOAD 0032 tab.node
0036 > p32 HREFK 0035 "vm_buffer" @12
0037 > fun HLOAD 0036
0038 > fun EQ 0037 net_device.lua:207
0039 > nil PROF
0040 p64 XLOAD 0018
0041 > cdt CNEWI +212 0040
0042 p64 ADD 0040 +24
0044 u32 XLOAD 0042
0046 > p32 UREFC net_device.lua:207 #0
0047 > udt ULOAD 0046
0048 > p32 EQ 0047 [0x411a2f38]
0049 > u32 EQ 0044 +1
0050 > nil PROF
0051 tab FLOAD 0001 func.env
0052 int FLOAD 0051 tab.hmask
0053 > int EQ 0052 +7
0054 p32 FLOAD 0051 tab.node
0055 > p32 HREFK 0054 "b" @5
0056 > cdt HLOAD 0055
0057 cdt HSTORE 0055 0041
0058 nil TBAR 0051
0059 int FLOAD 0023 tab.hmask
0060 > int EQ 0059 +15
0061 p32 FLOAD 0023 tab.node
0062 > p32 HREFK 0061 "txring" @11
0063 > tab HLOAD 0062
0064 int FLOAD 0063 tab.hmask
0065 > int EQ 0064 +3
0066 p32 FLOAD 0063 tab.node
0067 > p32 HREFK 0066 "used" @3
0068 > cdt HLOAD 0067
0069 u16 FLOAD 0068 cdata.ctypeid
0070 > int EQ 0069 +591
0071 p64 FLOAD 0068 cdata.ptr
0074 > p32 HREFK 0061 "txused" @2
0075 > num HLOAD 0074
0076 > p32 HREFK 0061 "tx_vring_num" @14
0077 > num HLOAD 0076
0078 num DIV 0075 0077
0079 num FPMATH 0078 floor
0080 num MUL 0079 0077
0081 num SUB 0075 0080
0082 i64 CONV 0081 i64.num
0083 i64 BSHL 0082 +3
0084 p64 ADD 0083 0071
0085 p64 ADD 0084 +4
0086 } cdt CNEWI +603 0085
0087 p64 ADD 0040 +32
0089 } cdt CNEWI +597 0087
0090 p64 ADD 0040 +36
0091 i16 XLOAD 0090
0092 u32 XSTORE 0085 0091
0093 > fun EQ 0001 net_device.lua:231
0094 p64 ADD 0018 +12
0095 u32 XLOAD 0094
0096 num CONV 0095 num.u32
0097 num ADD 0096 +10
0098 p64 ADD 0084 +8
0099 u32 CONV 0097 u32.num
0100 u32 XSTORE 0098 0099
0101 + num ADD 0075 +1
0102 num HSTORE 0074 0101
0103 > num NE 0101 +65536
0104 > p32 UREFC net_device.lua:231 #2
0105 > tab ULOAD 0104
0106 int FLOAD 0105 tab.hmask
0107 > int EQ 0106 +31
0108 p32 FLOAD 0105 tab.node
0109 > p32 HREFK 0108 "deref" @17
0110 > fun HLOAD 0109
0111 > fun EQ 0110 packet.lua:189
0112 > nil PROF
0113 p64 ADD 0018 +256
0114 int XLOAD 0113
0115 > int GT 0114 +0
0116 > int EQ 0114 +1
0117 tab FLOAD packet.lua:189 func.env
0118 int FLOAD 0117 tab.hmask
0119 > int EQ 0118 +31
0120 p32 FLOAD 0117 tab.node
0121 > p32 HREFK 0120 "free" @15
0122 > fun HLOAD 0121
0123 > fun EQ 0122 packet.lua:207
0124 > nil PROF
0125 p64 ADD 0018 +272
0126 int XLOAD 0125
0127 > int SUBOV 0126 +1
0128 > int LE 0127 +2147483646
0129 > int GE 0127 +0
0130 > p32 UREFC packet.lua:207 #0
0131 > tab ULOAD 0130
0132 int FLOAD 0131 tab.hmask
0133 > int EQ 0132 +31
0134 p32 FLOAD 0131 tab.node
0135 > p32 HREFK 0134 "free" @3
0136 > fun HLOAD 0135
0137 > fun EQ 0136 buffer.lua:39
0138 > nil PROF
0139 u32 XLOAD 0042
0141 > p32 UREFC buffer.lua:39 #0
0142 > udt ULOAD 0141
0143 > p32 EQ 0142 [0x411a2f38]
0144 > u32 EQ 0139 +1
0145 tab FLOAD buffer.lua:39 func.env
0146 int FLOAD 0145 tab.hmask
0147 > int EQ 0146 +31
0148 p32 FLOAD 0145 tab.node
0149 > p32 HREFK 0148 "virtio_devices" @29
0150 > tab HLOAD 0149
0151 i16 XLOAD 0087
0152 int FLOAD 0150 tab.asize
0153 > int ABC 0152 0151
0154 p32 FLOAD 0150 tab.array
0155 p32 AREF 0154 0151
0156 > tab ALOAD 0155
0157 p32 HREF 0156 "return_virtio_buffer"
0158 > p32 EQ 0157 [0x41196458]
0159 tab FLOAD 0156 tab.meta
0160 > tab NE 0159 [NULL]
0161 int FLOAD 0159 tab.hmask
0162 > int EQ 0161 +1
0163 p32 FLOAD 0159 tab.node
0164 > p32 HREFK 0163 "__index" @1
0165 > tab HLOAD 0164
0166 int FLOAD 0165 tab.hmask
0167 > int EQ 0166 +31
0168 p32 FLOAD 0165 tab.node
0169 > p32 HREFK 0168 "return_virtio_buffer" @11
0170 > fun HLOAD 0169
0171 > fun EQ 0170 net_device.lua:282
0172 > nil PROF
0173 > p32 UREFC net_device.lua:282 #0
0174 > tab ULOAD 0173
0175 int FLOAD 0174 tab.hmask
0176 > int EQ 0175 +7
0177 p32 FLOAD 0174 tab.node
0178 > p32 HREFK 0177 "add" @5
0179 > fun HLOAD 0178
0180 int FLOAD 0156 tab.hmask
0181 > int EQ 0180 +15
0182 p32 FLOAD 0156 tab.node
0183 > p32 HREFK 0182 "buffer_recs" @15
0184 > tab HLOAD 0183
0185 > fun EQ 0179 freelist.lua:12
0186 > nil PROF
0187 int FLOAD 0184 tab.hmask
0188 > int EQ 0187 +3
0189 p32 FLOAD 0184 tab.node
0190 > p32 HREFK 0189 "list" @2
0191 > cdt HLOAD 0190
0192 > p32 HREFK 0189 "nfree" @0
0193 > num HLOAD 0192
0194 u16 FLOAD 0191 cdata.ctypeid
0195 > int EQ 0194 +240
0196 i64 CONV 0193 i64.num
0197 i64 BSHL 0196 +3
0198 p64 ADD 0197 0191
0199 p64 ADD 0198 +8
0200 p64 XSTORE 0199 0040
0201 num ADD 0193 +1
0202 num HSTORE 0192 0201
0203 > nil PROF
0204 p64 ADD 0040 +34
0205 i16 XLOAD 0204
0206 > int NE 0205 +1
0207 > nil PROF
0208 > int LT 0127 +1
0209 > p32 UREFC packet.lua:207 #1
0210 > udt ULOAD 0209
0211 > p32 EQ 0210 [0x411a2f38]
0212 nil CALLXS [0x4077ef](0018)
0213 > p32 UREFC packet.lua:207 #2
0214 > tab ULOAD 0213
0215 int FLOAD 0214 tab.hmask
0216 > int EQ 0215 +7
0217 p32 FLOAD 0214 tab.node
0218 > p32 HREFK 0217 "add" @5
0219 > fun HLOAD 0218
0220 tab FLOAD packet.lua:207 func.env
0221 int FLOAD 0220 tab.hmask
0222 > int EQ 0221 +31
0223 p32 FLOAD 0220 tab.node
0224 > p32 HREFK 0223 "packets_fl" @23
0225 > tab HLOAD 0224
0226 > fun EQ 0219 freelist.lua:12
0227 > nil PROF
0228 int FLOAD 0225 tab.hmask
0229 > int EQ 0228 +3
0230 p32 FLOAD 0225 tab.node
0231 > p32 HREFK 0230 "list" @2
0232 > cdt HLOAD 0231
0233 > p32 HREFK 0230 "nfree" @0
0234 > num HLOAD 0233
0235 u16 FLOAD 0232 cdata.ctypeid
0236 > int EQ 0235 +241
0237 i64 CONV 0234 i64.num
0238 i64 BSHL 0237 +3
0239 p64 ADD 0238 0232
0240 p64 ADD 0239 +8
0241 p64 XSTORE 0240 0018
0242 num ADD 0234 +1
0243 num HSTORE 0233 0242
0244 > nil PROF
0245 > p32 UREFC net_device.lua:231 #0
0246 > tab ULOAD 0245
0247 int FLOAD 0246 tab.hmask
0248 > int EQ 0247 +15
0249 p32 FLOAD 0246 tab.node
0250 > p32 HREFK 0249 "empty" @11
0251 > fun HLOAD 0250
0252 > fun EQ 0251 link.lua:69
0253 > nil PROF
0254 int XLOAD 0017
0255 p64 ADD 0009 +12
0256 int XLOAD 0255
0257 > int NE 0256 0254
0258 > nil PROF
0259 ------ LOOP ------------
0260 > p32 HREFK 0249 "receive" @1
0261 > fun HLOAD 0260
0262 > fun EQ 0261 link.lua:21
0263 > nil PROF
0264 p64 CALLXS [0x407765](0017)
0265 } cdt CNEWI +172 0264
0266 > nil PROF
0267 } cdt CNEWI +600 0264
0268 > nil PROF
0269 p64 XLOAD 0264
0270 > cdt CNEWI +212 0269
0271 p64 ADD 0269 +24
0272 u32 XLOAD 0271
0273 > u32 EQ 0272 +1
0274 > nil PROF
0275 tab FLOAD net_device.lua:231 func.env
0276 int FLOAD 0275 tab.hmask
0277 > int EQ 0276 +7
0278 p32 FLOAD 0275 tab.node
0279 > p32 HREFK 0278 "b" @5
0280 > cdt HLOAD 0279
0281 cdt HSTORE 0279 0270
0282 nil TBAR 0275
0283 num DIV 0101 0077
0284 num FPMATH 0283 floor
0285 num MUL 0284 0077
0286 num SUB 0101 0285
0287 i64 CONV 0286 i64.num
0288 i64 BSHL 0287 +3
0289 p64 ADD 0288 0071
0290 p64 ADD 0289 +4
0291 } cdt CNEWI +603 0290
0292 p64 ADD 0269 +32
0293 } cdt CNEWI +597 0292
0294 p64 ADD 0269 +36
0295 i16 XLOAD 0294
0296 u32 XSTORE 0290 0295
0297 p64 ADD 0264 +12
0298 u32 XLOAD 0297
0299 num CONV 0298 num.u32
0300 num ADD 0299 +10
0301 p64 ADD 0289 +8
0302 u32 CONV 0300 u32.num
0303 u32 XSTORE 0301 0302
0304 + num ADD 0101 +1
0305 num HSTORE 0074 0304
0306 > num NE 0304 +65536
0307 > nil PROF
0308 p64 ADD 0264 +256
0309 int XLOAD 0308
0310 > int GT 0309 +0
0311 > int EQ 0309 +1
0312 > nil PROF
0313 p64 ADD 0264 +272
0314 int XLOAD 0313
0315 > int SUBOV 0314 +1
0316 > int LE 0315 +2147483646
0317 > int GE 0315 +0
0318 > nil PROF
0319 u32 XLOAD 0271
0320 > u32 EQ 0319 +1
0321 i16 XLOAD 0292
0322 > int ABC 0152 0321
0323 p32 AREF 0154 0321
0324 > tab ALOAD 0323
0325 p32 HREF 0324 "return_virtio_buffer"
0326 > p32 EQ 0325 [0x41196458]
0327 tab FLOAD 0324 tab.meta
0328 > tab NE 0327 [NULL]
0329 int FLOAD 0327 tab.hmask
0330 > int EQ 0329 +1
0331 p32 FLOAD 0327 tab.node
0332 > p32 HREFK 0331 "__index" @1
0333 > tab HLOAD 0332
0334 int FLOAD 0333 tab.hmask
0335 > int EQ 0334 +31
0336 p32 FLOAD 0333 tab.node
0337 > p32 HREFK 0336 "return_virtio_buffer" @11
0338 > fun HLOAD 0337
0339 > fun EQ 0338 net_device.lua:282
0340 > nil PROF
0341 int FLOAD 0324 tab.hmask
0342 > int EQ 0341 +15
0343 p32 FLOAD 0324 tab.node
0344 > p32 HREFK 0343 "buffer_recs" @15
0345 > tab HLOAD 0344
0346 > nil PROF
0347 int FLOAD 0345 tab.hmask
0348 > int EQ 0347 +3
0349 p32 FLOAD 0345 tab.node
0350 > p32 HREFK 0349 "list" @2
0351 > cdt HLOAD 0350
0352 > p32 HREFK 0349 "nfree" @0
0353 > num HLOAD 0352
0354 u16 FLOAD 0351 cdata.ctypeid
0355 > int EQ 0354 +240
0356 i64 CONV 0353 i64.num
0357 i64 BSHL 0356 +3
0358 p64 ADD 0357 0351
0359 p64 ADD 0358 +8
0360 p64 XSTORE 0359 0269
0361 num ADD 0353 +1
0362 num HSTORE 0352 0361
0363 > nil PROF
0364 p64 ADD 0269 +34
0365 i16 XLOAD 0364
0366 > int NE 0365 +1
0367 > nil PROF
0368 > int LT 0315 +1
0369 nil CALLXS [0x4077ef](0264)
0370 > nil PROF
0371 > num HLOAD 0233
0372 i64 CONV 0371 i64.num
0373 i64 BSHL 0372 +3
0374 p64 ADD 0373 0232
0375 p64 ADD 0374 +8
0376 p64 XSTORE 0375 0264
0377 num ADD 0371 +1
0378 num HSTORE 0233 0377
0379 > nil PROF
0380 int XLOAD 0017
0381 int XLOAD 0255
0382 > int NE 0381 0380
0383 > nil PROF
0384 num PHI 0101 0304
---- TRACE 19 mcode 3678
13319499 add rsp, -0x50
1331949d mov dword [0x41196410], 0x13
133194a8 mov edi, [0x411963d8]
133194af cmp edi, [0x411963dc]
133194b6 jb 0x133194cf
133194b8 mov esi, 0x1
133194bd mov edi, 0x411963b8
133194c2 call 0x00411ea0 ->lj_gc_step_jit
133194c7 test eax, eax
133194c9 jnz 0x13310010
133194cf mov edx, [0x411964b4]
133194d6 mov r10d, [rdx-0x8]
133194da mov [rsp+0x54], r10d
133194df mov edi, [r10+0x14]
133194e3 cmp byte [rdi+0x6], 0x1
133194e7 jnz 0x13310010
133194ed lea eax, [rdi+0x8]
133194f0 cmp dword [rax+0x4], -0x0c
133194f4 jnz 0x13310010
133194fa mov eax, [rax]
133194fc cmp dword [rax+0x1c], +0x0f
13319500 jnz 0x13310010
13319506 mov eax, [rax+0x14]
13319509 mov rdi, 0xfffffffb411ac268
13319513 cmp rdi, [rax+0x20]
13319517 jnz 0x13310010
1331951d cmp dword [rax+0x1c], -0x09
13319521 jnz 0x13310010
13319527 cmp dword [rdx+0xc], -0x0b
1331952b jnz 0x13310010
13319531 mov ebx, [rdx+0x8]
13319534 cmp dword [rax+0x18], 0x414ed748
1331953b jnz 0x13310010
13319541 test byte [0x41196435], 0x80
13319549 jnz 0x13310010
1331954f cmp dword [0x414ed77c], -0x0d
13319557 jnz 0x13310014
1331955d cmp dword [0x414ed778], 0x411a2f38
13319568 jnz 0x13310014
1331956e movzx eax, word [rbx+0x6]
13319572 cmp eax, 0xaf
13319578 jnz 0x13310014
1331957e mov edi, ebx
13319580 add rdi, +0x08
13319584 mov [rsp+0x48], rdi
13319589 call 0x00407765
1331958e mov rdi, rax
13319591 mov [rsp+0x58], rdi
13319596 mov edx, [0x411964b4]
1331959d test byte [0x41196435], 0x80
133195a5 jnz 0x13310018
133195ab cmp dword [rdx+0x4], -0x0c
133195af jnz 0x1331001c
133195b5 mov r9d, [rdx]
133195b8 mov [rsp+0x40], r9d
133195bd mov esi, [r9+0x1c]
133195c1 and esi, 0x463b350c
133195c7 lea esi, [rsi+rsi*2]
133195ca shl esi, 0x03
133195cd add esi, [r9+0x14]
133195d1 cmp dword [rsi+0xc], -0x05
133195d5 jnz 0x133195e4
133195d7 cmp dword [rsi+0x8], 0x40e28c28
133195de jz 0x1331001c
133195e4 mov esi, [rsi+0x10]
133195e7 test esi, esi
133195e9 jnz 0x133195d1
133195eb mov eax, [r9+0x10]
133195ef test eax, eax
133195f1 jz 0x1331001c
133195f7 cmp dword [rax+0x1c], +0x01
133195fb jnz 0x1331001c
13319601 mov eax, [rax+0x14]
13319604 mov rsi, 0xfffffffb41198458
1331960e cmp rsi, [rax+0x20]
13319612 jnz 0x1331001c
13319618 cmp dword [rax+0x1c], -0x0c
1331961c jnz 0x1331001c
13319622 mov eax, [rax+0x18]
13319625 cmp dword [rax+0x1c], +0x1f
13319629 jnz 0x1331001c
1331962f mov eax, [rax+0x14]
13319632 mov rsi, 0xfffffffb40e28c28
1331963c cmp rsi, [rax+0x128]
13319643 jnz 0x1331001c
13319649 cmp dword [rax+0x124], -0x09
13319650 jnz 0x1331001c
13319656 cmp dword [rax+0x120], 0x5323e770
13319660 jnz 0x1331001c
13319666 test byte [0x41196435], 0x80
1331966e jnz 0x1331001c
13319674 mov rbp, [rdi]
13319677 mov edi, [0x411964b0]
1331967e mov esi, 0x10
13319683 call 0x00412100 ->lj_mem_newgco
13319688 movzx ecx, byte [0x411963e0]
13319690 and ecx, +0x03
13319693 or ecx, 0x00d40a00
13319699 mov [rax+0x4], ecx
1331969c mov [rax+0x8], rbp
133196a0 mov ecx, eax
133196a2 mov r10d, [rsp+0x54]
133196a7 mov r9d, [rsp+0x40]
133196ac mov rdi, [rsp+0x58]
133196b1 cmp dword [0x5323e5fc], -0x0d
133196b9 jnz 0x13310020
133196bf cmp dword [0x5323e5f8], 0x411a2f38
133196ca jnz 0x13310020
133196d0 cmp dword [rbp+0x18], +0x01
133196d4 jnz 0x13310024
133196da test byte [0x41196435], 0x80
133196e2 jnz 0x13310028
133196e8 mov eax, [r10+0x8]
133196ec cmp dword [rax+0x1c], +0x07
133196f0 jnz 0x1331002c
133196f6 mov edx, [rax+0x14]
133196f9 mov rsi, 0xfffffffb41146c78
13319703 cmp rsi, [rdx+0x80]
1331970a jnz 0x1331002c
13319710 cmp dword [rdx+0x7c], -0x0b
13319714 jnz 0x1331002c
1331971a mov dword [rdx+0x7c], 0xfffffff5
13319721 mov [rdx+0x78], ecx
13319724 test byte [rax+0x4], 0x4
13319728 jz 0x1331973f
1331972a and byte [rax+0x4], 0xfb
1331972e mov esi, [0x411963f4]
13319735 mov [0x411963f4], eax
1331973c mov [rax+0xc], esi
1331973f cmp dword [r9+0x1c], +0x0f
13319744 jnz 0x13310030
1331974a mov eax, [r9+0x14]
1331974e mov rsi, 0xfffffffb40e28608
13319758 cmp rsi, [rax+0x110]
1331975f jnz 0x13310030
13319765 cmp dword [rax+0x10c], -0x0c
1331976c jnz 0x13310030
13319772 mov edx, [rax+0x108]
13319778 cmp dword [rdx+0x1c], +0x03
1331977c jnz 0x13310030
13319782 mov edx, [rdx+0x14]
13319785 mov rsi, 0xfffffffb411b2d70
1331978f cmp rsi, [rdx+0x50]
13319793 jnz 0x13310030
13319799 cmp dword [rdx+0x4c], -0x0b
1331979d jnz 0x13310030
133197a3 mov edx, [rdx+0x48]
133197a6 movzx esi, word [rdx+0x6]
133197aa cmp esi, 0x24f
133197b0 jnz 0x13310030
133197b6 mov r8, [rdx+0x8]
133197ba mov [rsp+0x38], r8
133197bf mov rsi, 0xfffffffb40e28c08
133197c9 cmp rsi, [rax+0x38]
133197cd jnz 0x13310030
133197d3 lea esi, [rax+0x30]
133197d6 mov [rsp+0x50], esi
133197da cmp dword [rax+0x34], 0xfffeffff
133197e1 jnb 0x13310030
133197e7 movsd xmm7, [rax+0x30]
133197ec mov rsi, 0xfffffffb40e27a98
133197f6 cmp rsi, [rax+0x158]
133197fd jnz 0x13310030
13319803 cmp dword [rax+0x154], 0xfffeffff
1331980d jnb 0x13310030
13319813 movsd xmm0, [rax+0x150]
1331981b movsd [rsp+0x18], xmm0
13319821 movaps xmm1, xmm7
13319824 divsd xmm1, xmm0
13319828 roundsd xmm1, xmm1, 0x09
1331982e mulsd xmm1, xmm0
13319832 movaps xmm0, xmm7
13319835 subsd xmm0, xmm1
13319839 cvttsd2si rsi, xmm0
1331983e mov rdx, rsi
13319841 shl rdx, 0x03
13319845 add rdx, r8
13319848 add rdx, +0x04
1331984c mov r9, rbp
1331984f add r9, +0x20
13319853 movsx r11d, word [rbp+0x24]
13319858 mov [rdx], r11d
1331985b cmp r10d, 0x5323e7c0
13319862 jnz 0x13310034
13319868 mov edx, [rdi+0xc]
1331986b xorps xmm0, xmm0
1331986e cvtsi2sd xmm0, rdx
13319873 addsd xmm0, [0x534546e0]
1331987c cvttsd2si rdx, xmm0
13319881 mov edx, edx
13319883 mov [r8+rsi*8+0x8], edx
13319888 addsd xmm7, [0x411b4da0]
13319891 movsd [rsp+0x20], xmm7
13319897 movsd [rax+0x30], xmm7
1331989c ucomisd xmm7, [0x4064ef40]
133198a5 jpe 0x133198ad
133198a7 jz 0x13310038
133198ad cmp dword [0x40e2cfa4], -0x0c
133198b5 jnz 0x1331003c
133198bb mov eax, [0x40e2cfa0]
133198c2 cmp dword [rax+0x1c], +0x1f
133198c6 jnz 0x1331003c
133198cc mov eax, [rax+0x14]
133198cf mov rsi, 0xfffffffb411a28a0
133198d9 cmp rsi, [rax+0x1a0]
133198e0 jnz 0x1331003c
133198e6 cmp dword [rax+0x19c], -0x09
133198ed jnz 0x1331003c
133198f3 cmp dword [rax+0x198], 0x411a71b0
133198fd jnz 0x1331003c
13319903 test byte [0x41196435], 0x80
1331990b jnz 0x1331003c
13319911 mov eax, [rdi+0x100]
13319917 test eax, eax
13319919 jle 0x13310044
1331991f cmp eax, +0x01
13319922 jnz 0x13310048
13319928 mov eax, [0x411a71b8]
1331992f cmp dword [rax+0x1c], +0x1f
13319933 jnz 0x1331004c
13319939 mov eax, [rax+0x14]
1331993c mov rsi, 0xfffffffb41199dc8
13319946 cmp rsi, [rax+0x170]
1331994d jnz 0x1331004c
13319953 cmp dword [rax+0x16c], -0x09
1331995a jnz 0x1331004c
13319960 cmp dword [rax+0x168], 0x411a71f0
1331996a jnz 0x1331004c
13319970 test byte [0x41196435], 0x80
13319978 jnz 0x1331004c
1331997e mov eax, [rdi+0x110]
13319984 sub eax, +0x01
13319987 jo 0x13310050
1331998d cmp eax, 0x7ffffffe
13319993 jg 0x13310050
13319999 test eax, eax
1331999b jl 0x13310054
133199a1 cmp dword [0x411a7324], -0x0c
133199a9 jnz 0x13310058
133199af mov edx, [0x411a7320]
133199b6 cmp dword [rdx+0x1c], +0x1f
133199ba jnz 0x13310058
133199c0 mov edx, [rdx+0x14]
133199c3 mov rsi, 0xfffffffb41199dc8
133199cd cmp rsi, [rdx+0x50]
133199d1 jnz 0x13310058
133199d7 cmp dword [rdx+0x4c], -0x09
133199db jnz 0x13310058
133199e1 cmp dword [rdx+0x48], 0x411a7128
133199e8 jnz 0x13310058
133199ee test byte [0x41196435], 0x80
133199f6 jnz 0x13310058
133199fc cmp dword [0x414efc84], -0x0d
13319a04 jnz 0x1331005c
13319a0a cmp dword [0x414efc80], 0x411a2f38
13319a15 jnz 0x1331005c
13319a1b cmp dword [rbp+0x18], +0x01
13319a1f jnz 0x13310060
13319a25 mov edx, [0x411a7130]
13319a2c cmp dword [rdx+0x1c], +0x1f
13319a30 jnz 0x13310064
13319a36 mov edx, [rdx+0x14]
13319a39 mov rsi, 0xfffffffb411b22d0
13319a43 cmp rsi, [rdx+0x2c0]
13319a4a jnz 0x13310064
13319a50 cmp dword [rdx+0x2bc], -0x0c
13319a57 jnz 0x13310064
13319a5d mov edx, [rdx+0x2b8]
13319a63 movsx esi, word [rbp+0x20]
13319a67 mov r15d, [rdx+0x18]
13319a6b mov [rsp+0x2c], r15d
13319a70 cmp esi, [rdx+0x18]
13319a73 jnb 0x13310064
13319a79 mov edx, [rdx+0x8]
13319a7c mov [rsp+0x28], edx
13319a80 cmp dword [rdx+rsi*8+0x4], -0x0c
13319a85 jnz 0x13310064
13319a8b mov edx, [rdx+rsi*8]
13319a8e mov esi, [rdx+0x1c]
13319a91 and esi, 0x0f10cc4b
13319a97 lea esi, [rsi+rsi*2]
13319a9a shl esi, 0x03
13319a9d add esi, [rdx+0x14]
13319aa0 cmp dword [rsi+0xc], -0x05
13319aa4 jnz 0x13319ab3
13319aa6 cmp dword [rsi+0x8], 0x411b2238
13319aad jz 0x13310064
13319ab3 mov esi, [rsi+0x10]
13319ab6 test esi, esi
13319ab8 jnz 0x13319aa0
13319aba mov esi, [rdx+0x10]
13319abd test esi, esi
13319abf jz 0x13310064
13319ac5 cmp dword [rsi+0x1c], +0x01
13319ac9 jnz 0x13310064
13319acf mov esi, [rsi+0x14]
13319ad2 mov r15, 0xfffffffb41198458
13319adc cmp r15, [rsi+0x20]
13319ae0 jnz 0x13310064
13319ae6 cmp dword [rsi+0x1c], -0x0c
13319aea jnz 0x13310064
13319af0 mov esi, [rsi+0x18]
13319af3 cmp dword [rsi+0x1c], +0x1f
13319af7 jnz 0x13310064
13319afd mov esi, [rsi+0x14]
13319b00 mov r15, 0xfffffffb411b2238
13319b0a cmp r15, [rsi+0x110]
13319b11 jnz 0x13310064
13319b17 cmp dword [rsi+0x10c], -0x09
13319b1e jnz 0x13310064
13319b24 cmp dword [rsi+0x108], 0x5323e810
13319b2e jnz 0x13310064
13319b34 test byte [0x41196435], 0x80
13319b3c jnz 0x13310064
13319b42 cmp dword [0x40e2ce7c], -0x0c
13319b4a jnz 0x13310068
13319b50 mov esi, [0x40e2ce78]
13319b57 cmp dword [rsi+0x1c], +0x07
13319b5b jnz 0x13310068
13319b61 mov esi, [rsi+0x14]
13319b64 mov r15, 0xfffffffb411a06f0
13319b6e cmp r15, [rsi+0x80]
13319b75 jnz 0x13310068
13319b7b cmp dword [rsi+0x7c], -0x09
13319b7f jnz 0x13310068
13319b85 cmp dword [rdx+0x1c], +0x0f
13319b89 jnz 0x13310068
13319b8f mov r8d, [rdx+0x14]
13319b93 mov r15, 0xfffffffb40e27960
13319b9d cmp r15, [r8+0x170]
13319ba4 jnz 0x13310068
13319baa cmp dword [r8+0x16c], -0x0c
13319bb2 jnz 0x13310068
13319bb8 mov r8d, [r8+0x168]
13319bbf cmp dword [rsi+0x78], 0x414eeb08
13319bc6 jnz 0x13310068
13319bcc test byte [0x41196435], 0x80
13319bd4 jnz 0x13310068
13319bda cmp dword [r8+0x1c], +0x03
13319bdf jnz 0x1331006c
13319be5 mov esi, [r8+0x14]
13319be9 mov r15, 0xfffffffb414ee638
13319bf3 cmp r15, [rsi+0x38]
13319bf7 jnz 0x1331006c
13319bfd cmp dword [rsi+0x34], -0x0b
13319c01 jnz 0x1331006c
13319c07 mov r9d, [rsi+0x30]
13319c0b mov r15, 0xfffffffb411b2518
13319c15 cmp r15, [rsi+0x8]
13319c19 jnz 0x1331006c
13319c1f cmp dword [rsi+0x4], 0xfffeffff
13319c26 jnb 0x1331006c
13319c2c movsd xmm0, [rsi]
13319c30 movzx r10d, word [r9+0x6]
13319c35 cmp r10d, 0xf0
13319c3c jnz 0x1331006c
13319c42 cvttsd2si r8, xmm0
13319c47 mov [r9+r8*8+0x8], rbp
13319c4c addsd xmm0, [0x411b4da0]
13319c55 movsd [rsi], xmm0
13319c59 test byte [0x41196435], 0x80
13319c61 jnz 0x13310070
13319c67 cmp word [rbp+0x22], +0x01
13319c6c jz 0x13310078
13319c72 test byte [0x41196435], 0x80
13319c7a jnz 0x1331007c
13319c80 cmp eax, +0x01
13319c83 jge 0x13310080
13319c89 cmp dword [0x411a7304], -0x0d
13319c91 jnz 0x13310084
13319c97 cmp dword [0x411a7300], 0x411a2f38
13319ca2 jnz 0x13310084
13319ca8 call 0x004077ef
13319cad mov rax, [rsp+0x58]
13319cb2 movsd xmm7, [rsp+0x20]
13319cb8 cmp dword [0x411a5cec], -0x0c
13319cc0 jnz 0x13310088
13319cc6 mov ecx, [0x411a5ce8]
13319ccd cmp dword [rcx+0x1c], +0x07
13319cd1 jnz 0x13310088
13319cd7 mov ecx, [rcx+0x14]
13319cda mov rdi, 0xfffffffb411a06f0
13319ce4 cmp rdi, [rcx+0x80]
13319ceb jnz 0x13310088
13319cf1 cmp dword [rcx+0x7c], -0x09
13319cf5 jnz 0x13310088
13319cfb mov edx, [0x411a71f8]
13319d02 cmp dword [rdx+0x1c], +0x1f
13319d06 jnz 0x13310088
13319d0c mov edx, [rdx+0x14]
13319d0f mov rdi, 0xfffffffb411abbc0
13319d19 cmp rdi, [rdx+0x230]
13319d20 jnz 0x13310088
13319d26 cmp dword [rdx+0x22c], -0x0c
13319d2d jnz 0x13310088
13319d33 mov r14d, [rdx+0x228]
13319d3a cmp dword [rcx+0x78], 0x414eeb08
13319d41 jnz 0x13310088
13319d47 test byte [0x41196435], 0x80
13319d4f jnz 0x13310088
13319d55 cmp dword [r14+0x1c], +0x03
13319d5a jnz 0x1331008c
13319d60 mov ecx, [r14+0x14]
13319d64 mov rdi, 0xfffffffb414ee638
13319d6e cmp rdi, [rcx+0x38]
13319d72 jnz 0x1331008c
13319d78 cmp dword [rcx+0x34], -0x0b
13319d7c jnz 0x1331008c
13319d82 mov r13d, [rcx+0x30]
13319d86 mov rdi, 0xfffffffb411b2518
13319d90 cmp rdi, [rcx+0x8]
13319d94 jnz 0x1331008c
13319d9a mov r12d, ecx
13319d9d cmp dword [r12+0x4], 0xfffeffff
13319da6 jnb 0x1331008c
13319dac movsd xmm0, [r12]
13319db2 movzx ecx, word [r13+0x6]
13319db7 cmp ecx, 0xf1
13319dbd jnz 0x1331008c
13319dc3 cvttsd2si rcx, xmm0
13319dc8 mov [r13+rcx*8+0x8], rax
13319dcd addsd xmm0, [0x411b4da0]
13319dd6 movsd [r12], xmm0
13319ddc test byte [0x41196435], 0x80
13319de4 jnz 0x1331009d
13319dea cmp dword [0x5323e63c], -0x0c
13319df2 jnz 0x133100a1
13319df8 mov ecx, [0x5323e638]
13319dff cmp dword [rcx+0x1c], +0x0f
13319e03 jnz 0x133100a1
13319e09 mov ecx, [rcx+0x14]
13319e0c mov [rsp+0x44], ecx
13319e10 mov rdi, 0xfffffffb411a77d8
13319e1a cmp rdi, [rcx+0x110]
13319e21 jnz 0x133100a1
13319e27 cmp dword [rcx+0x10c], -0x09
13319e2e jnz 0x133100a1
13319e34 cmp dword [rcx+0x108], 0x414ed818
13319e3e jnz 0x133100a1
13319e44 test byte [0x41196435], 0x80
13319e4c jnz 0x133100a1
13319e52 mov eax, [rbx+0x8]
13319e55 cmp eax, [rbx+0xc]
13319e58 jz 0x133100a9
13319e5e test byte [0x41196435], 0x80
13319e66 jnz 0x133100ad
->LOOP:
13319e6c movsd [rsp+0x20], xmm7
13319e72 mov ebp, [rsp+0x50]
13319e76 mov edi, [0x411963d8]
13319e7d cmp edi, [0x411963dc]
13319e84 jb 0x13319e9d
13319e86 mov esi, 0x1
13319e8b mov edi, 0x411963b8
13319e90 call 0x00411ea0 ->lj_gc_step_jit
13319e95 test eax, eax
13319e97 jnz 0x133100b1
13319e9d mov rdi, [rsp+0x48]
13319ea2 mov eax, [rsp+0x44]
13319ea6 mov rsi, 0xfffffffb411ac268
13319eb0 cmp rsi, [rax+0x20]
13319eb4 jnz 0x133100b1
13319eba cmp dword [rax+0x1c], -0x09
13319ebe jnz 0x133100b1
13319ec4 cmp dword [rax+0x18], 0x414ed748
13319ecb jnz 0x133100b1
13319ed1 test byte [0x41196435], 0x80
13319ed9 jnz 0x133100b1
13319edf call 0x00407765
13319ee4 mov rdi, rax
13319ee7 mov [rsp+0x10], rdi
13319eec test byte [0x41196435], 0x80
13319ef4 jnz 0x133100b9
13319efa test byte [0x41196435], 0x80
13319f02 jnz 0x133100bd ->40
13319f08 mov r15, [rdi]
13319f0b mov edi, [0x411964b0]
13319f12 mov [rsp+0x30], r15
13319f17 mov esi, 0x10
13319f1c call 0x00412100 ->lj_mem_newgco
13319f21 movzx ecx, byte [0x411963e0]
13319f29 and ecx, +0x03
13319f2c or ecx, 0x00d40a00
13319f32 mov [rax+0x4], ecx
13319f35 mov [rax+0x8], r15
13319f39 mov r8, [rsp+0x38]
13319f3e mov rdi, [rsp+0x10]
13319f43 mov rsi, [rsp+0x30]
13319f48 mov edx, [rsp+0x2c]
13319f4c mov ecx, [rsp+0x28]
13319f50 movsd xmm7, [rsp+0x20]
13319f56 movsd xmm0, [rsp+0x18]
13319f5c cmp dword [rsi+0x18], +0x01
13319f60 jnz 0x133100c5 ->42
13319f66 test byte [0x41196435], 0x80
13319f6e jnz 0x133100c9 ->43
13319f74 mov r15d, [0x5323e7c8]
13319f7c cmp dword [r15+0x1c], +0x07
13319f81 jnz 0x133100cd ->44
13319f87 mov r11d, [r15+0x14]
13319f8b mov r10, 0xfffffffb41146c78
13319f95 cmp r10, [r11+0x80]
13319f9c jnz 0x133100cd ->44
13319fa2 cmp dword [r11+0x7c], -0x0b
13319fa7 jnz 0x133100cd ->44
13319fad mov dword [r11+0x7c], 0xfffffff5
13319fb5 mov [r11+0x78], eax
13319fb9 test byte [r15+0x4], 0x4
13319fbe jz 0x13319fd9
13319fc0 and byte [r15+0x4], 0xfb
13319fc5 mov r11d, [0x411963f4]
13319fcd mov [0x411963f4], r15d
13319fd5 mov [r15+0xc], r11d
13319fd9 movaps xmm6, xmm7
13319fdc divsd xmm6, xmm0
13319fe0 roundsd xmm5, xmm6, 0x09
13319fe6 mulsd xmm5, xmm0
13319fea movaps xmm6, xmm7
13319fed subsd xmm6, xmm5
13319ff1 cvttsd2si r11, xmm6
13319ff6 movsx r15d, word [rsi+0x24]
13319ffb mov [r8+r11*8+0x4], r15d
1331a000 mov r15d, [rdi+0xc]
1331a004 xorps xmm6, xmm6
1331a007 cvtsi2sd xmm6, r15
1331a00c addsd xmm6, [0x534546e0]
1331a015 cvttsd2si r15, xmm6
1331a01a mov r15d, r15d
1331a01d mov [r8+r11*8+0x8], r15d
1331a022 addsd xmm7, [0x411b4da0]
1331a02b movsd [rsp+0x8], xmm7
1331a031 movsd [rbp+0x0], xmm7
1331a036 ucomisd xmm7, [0x4064ef40]
1331a03f jpe 0x1331a047
1331a041 jz 0x133100d5 ->46
1331a047 test byte [0x41196435], 0x80
1331a04f jnz 0x133100d9 ->47
1331a055 mov ebp, [rdi+0x100]
1331a05b test ebp, ebp
1331a05d jle 0x133100dd ->48
1331a063 cmp ebp, +0x01
1331a066 jnz 0x133100e1 ->49
1331a06c test byte [0x41196435], 0x80
1331a074 jnz 0x133100e5 ->50
1331a07a mov ebp, [rdi+0x110]
1331a080 sub ebp, +0x01
1331a083 jo 0x133100e9 ->51
1331a089 cmp ebp, 0x7ffffffe
1331a08f jg 0x133100e9 ->51
1331a095 test ebp, ebp
1331a097 jl 0x133100ed ->52
1331a09d test byte [0x41196435], 0x80
1331a0a5 jnz 0x133100f1 ->53
1331a0ab cmp dword [rsi+0x18], +0x01
1331a0af jnz 0x133100f5 ->54
1331a0b5 movsx r15d, word [rsi+0x20]
1331a0ba cmp r15d, edx
1331a0bd jnb 0x133100f9 ->55
1331a0c3 cmp dword [rcx+r15*8+0x4], -0x0c
1331a0c9 jnz 0x133100f9 ->55
1331a0cf mov r15d, [rcx+r15*8]
1331a0d3 mov edx, [r15+0x1c]
1331a0d7 and edx, 0x0f10cc4b
1331a0dd lea edx, [rdx+rdx*2]
1331a0e0 shl edx, 0x03
1331a0e3 add edx, [r15+0x14]
1331a0e7 cmp dword [rdx+0xc], -0x05
1331a0eb jnz 0x1331a0fa
1331a0ed cmp dword [rdx+0x8], 0x411b2238
1331a0f4 jz 0x133100f9 ->55
1331a0fa mov edx, [rdx+0x10]
1331a0fd test edx, edx
1331a0ff jnz 0x1331a0e7
1331a101 mov edx, [r15+0x10]
1331a105 test edx, edx
1331a107 jz 0x133100f9 ->55
1331a10d cmp dword [rdx+0x1c], +0x01
1331a111 jnz 0x133100f9 ->55
1331a117 mov edx, [rdx+0x14]
1331a11a mov rcx, 0xfffffffb41198458
1331a124 cmp rcx, [rdx+0x20]
1331a128 jnz 0x133100f9 ->55
1331a12e cmp dword [rdx+0x1c], -0x0c
1331a132 jnz 0x133100f9 ->55
1331a138 mov edx, [rdx+0x18]
1331a13b cmp dword [rdx+0x1c], +0x1f
1331a13f jnz 0x133100f9 ->55
1331a145 mov edx, [rdx+0x14]
1331a148 mov rcx, 0xfffffffb411b2238
1331a152 cmp rcx, [rdx+0x110]
1331a159 jnz 0x133100f9 ->55
1331a15f cmp dword [rdx+0x10c], -0x09
1331a166 jnz 0x133100f9 ->55
1331a16c cmp dword [rdx+0x108], 0x5323e810
1331a176 jnz 0x133100f9 ->55
1331a17c test byte [0x41196435], 0x80
1331a184 jnz 0x133100f9 ->55
1331a18a cmp dword [r15+0x1c], +0x0f
1331a18f jnz 0x133100fd ->56
1331a195 mov edx, [r15+0x14]
1331a199 mov rcx, 0xfffffffb40e27960
1331a1a3 cmp rcx, [rdx+0x170]
1331a1aa jnz 0x133100fd ->56
1331a1b0 cmp dword [rdx+0x16c], -0x0c
1331a1b7 jnz 0x133100fd ->56
1331a1bd mov ecx, [rdx+0x168]
1331a1c3 test byte [0x41196435], 0x80
1331a1cb jnz 0x133100fd ->56
1331a1d1 cmp dword [rcx+0x1c], +0x03
1331a1d5 jnz 0x13310101 ->57
1331a1db mov edx, [rcx+0x14]
1331a1de mov r11, 0xfffffffb414ee638
1331a1e8 cmp r11, [rdx+0x38]
1331a1ec jnz 0x13310101 ->57
1331a1f2 cmp dword [rdx+0x34], -0x0b
1331a1f6 jnz 0x13310101 ->57
1331a1fc mov r11d, [rdx+0x30]
1331a200 mov r10, 0xfffffffb411b2518
1331a20a cmp r10, [rdx+0x8]
1331a20e jnz 0x13310101 ->57
1331a214 cmp dword [rdx+0x4], 0xfffeffff
1331a21b jnb 0x13310101 ->57
1331a221 movsd xmm7, [rdx]
1331a225 movzx r10d, word [r11+0x6]
1331a22a cmp r10d, 0xf0
1331a231 jnz 0x13310101 ->57
1331a237 cvttsd2si rcx, xmm7
1331a23c mov [r11+rcx*8+0x8], rsi
1331a241 addsd xmm7, [0x411b4da0]
1331a24a movsd [rdx], xmm7
1331a24e test byte [0x41196435], 0x80
1331a256 jnz 0x13310105 ->58
1331a25c cmp word [rsi+0x22], +0x01
1331a261 jz 0x13310109 ->59
1331a267 test byte [0x41196435], 0x80
1331a26f jnz 0x1331010d ->60
1331a275 cmp ebp, +0x01
1331a278 jge 0x13310111 ->61
1331a27e call 0x004077ef
1331a283 mov rax, [rsp+0x10]
1331a288 movsd xmm7, [rsp+0x8]
1331a28e test byte [0x41196435], 0x80
1331a296 jnz 0x13310115 ->62
1331a29c cmp dword [r12+0x4], 0xfffeffff
1331a2a5 jnb 0x13310119 ->63
1331a2ab movsd xmm6, [r12]
1331a2b1 cvttsd2si rbp, xmm6
1331a2b6 mov [r13+rbp*8+0x8], rax
1331a2bb addsd xmm6, [0x411b4da0]
1331a2c4 movsd [r12], xmm6
1331a2ca test byte [0x41196435], 0x80
1331a2d2 jnz 0x1331012a ->64
1331a2d8 mov ebp, [rbx+0x8]
1331a2db cmp ebp, [rbx+0xc]
1331a2de jz 0x1331012e ->65
1331a2e4 test byte [0x41196435], 0x80
1331a2ec jz 0x13319e6c ->LOOP
1331a2f2 jmp 0x13310132 ->66
---- TRACE 19 stop -> loop
---- TRACE 7 start net_device.lua:161
0008 ISNEN 2 0 ; 0
0009 JMP 3 => 0012
0012 SUBVN 2 2 2 ; 1
0013 TGETS 3 0 1 ; "txring"
0014 TGETS 3 3 2 ; "avail"
0015 TGETS 3 3 4 ; "ring"
0000 . . FUNCC ; ffi.meta.__index
0016 TGETS 4 0 5 ; "tx_vring_num"
0017 MODVV 4 2 4
0018 TGETV 3 3 4
0000 . . FUNCC ; ffi.meta.__index
0019 TGETS 4 0 1 ; "txring"
0020 TGETS 4 4 6 ; "desc"
0021 TGETV 4 4 3
0000 . . FUNCC ; ffi.meta.__index
0022 UGET 5 0 ; ffi
0023 TGETS 5 5 7 ; "cast"
0024 UGET 6 1 ; char_ptr_t
0025 MOV 8 0
0026 TGETS 7 0 8 ; "map_from_guest"
0027 TGETS 9 4 9 ; "addr"
0000 . . FUNCC ; ffi.meta.__index
0028 CALL 7 0 3
0000 . FUNCF 12 ; net_device.lua:334
0001 . UGET 2 0 ; tlb
0002 . TGETS 2 2 0 ; "lookup"
0003 . UGET 3 1 ; guest_tlb
0004 . MOV 4 1
0005 . CALL 2 2 3
0000 . . FUNCF 8 ; tlb.lua:24
0001 . . UGET 2 0 ; u64
0002 . . MOV 3 1
0003 . . CALL 2 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0004 . . GGET 3 0 ; "tonumber"
0005 . . GGET 4 1 ; "bit"
0006 . . TGETS 4 4 2 ; "rshift"
0007 . . MOV 5 2
0008 . . TGETS 6 0 3 ; "pagesize"
0009 . . CALL 4 0 3
0000 . . . FUNCC ; bit.rshift
0010 . . CALLM 3 2 0
0000 . . . FUNCC ; tonumber
0011 . . TGETV 4 0 3
0012 . . ISF 4
0013 . . JMP 5 => 0027
0014 . . UGET 4 0 ; u64
0015 . . MOV 5 1
0016 . . CALL 4 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0017 . . TGETV 5 0 3
0018 . . ADDVV 4 4 5
0000 . . . . FUNCC ; ffi.meta.__add
0019 . . UGET 5 1 ; ffi
0020 . . TGETS 5 5 4 ; "cast"
0021 . . UGET 6 1 ; ffi
0022 . . TGETS 6 6 5 ; "typeof"
0023 . . MOV 7 1
0024 . . CALL 6 2 2
0000 . . . FUNCC ; ffi.typeof
0025 . . MOV 7 4
0026 . . CALLT 5 3
0000 . . FUNCC ; ffi.cast
0006 . ISEQP 2 0
0007 . JMP 3 => 0009
0000 . . . FUNCC ; ffi.meta.__eq
0008 . RET1 2 2
0029 CALLM 5 2 1
0000 . FUNCC ; ffi.cast
0030 UGET 6 2 ; virtio_net_hdr_size
0031 MOV 7 4
0032 TGETS 8 0 1 ; "txring"
0033 TGETS 8 8 6 ; "desc"
0034 TGETS 9 7 10 ; "next"
0000 . . FUNCC ; ffi.meta.__index
0035 TGETV 7 8 9
0000 . . FUNCC ; ffi.meta.__index
0036 UGET 8 3 ; freelist
0037 TGETS 8 8 11 ; "remove"
0038 TGETS 9 0 12 ; "buffer_recs"
0039 CALL 8 2 2
0000 . JFUNCF 3 4 ; freelist.lua:19
0001 . TGETS 1 0 0 ; "nfree"
0002 . ISNEN 1 0 ; 0
0003 . JMP 1 => 0007
0007 . TGETS 1 0 0 ; "nfree"
0008 . SUBVN 1 1 1 ; 1
0009 . TSETS 1 0 0 ; "nfree"
0010 . TGETS 1 0 1 ; "list"
0011 . TGETS 2 0 0 ; "nfree"
0012 . TGETV 1 1 2
0000 . . . FUNCC ; ffi.meta.__index
0013 . RET1 1 2
0040 IST 8
0041 JMP 9 => 0046
0046 MOV 10 0
0047 TGETS 9 0 8 ; "map_from_guest"
0048 TGETS 11 7 9 ; "addr"
0000 . . FUNCC ; ffi.meta.__index
0049 CALL 9 2 3
0000 . FUNCF 12 ; net_device.lua:334
0001 . UGET 2 0 ; tlb
0002 . TGETS 2 2 0 ; "lookup"
0003 . UGET 3 1 ; guest_tlb
0004 . MOV 4 1
0005 . CALL 2 2 3
0000 . . FUNCF 8 ; tlb.lua:24
0001 . . UGET 2 0 ; u64
0002 . . MOV 3 1
0003 . . CALL 2 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0004 . . GGET 3 0 ; "tonumber"
0005 . . GGET 4 1 ; "bit"
0006 . . TGETS 4 4 2 ; "rshift"
0007 . . MOV 5 2
0008 . . TGETS 6 0 3 ; "pagesize"
0009 . . CALL 4 0 3
0000 . . . FUNCC ; bit.rshift
0010 . . CALLM 3 2 0
0000 . . . FUNCC ; tonumber
0011 . . TGETV 4 0 3
0012 . . ISF 4
0013 . . JMP 5 => 0027
0014 . . UGET 4 0 ; u64
0015 . . MOV 5 1
0016 . . CALL 4 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0017 . . TGETV 5 0 3
0018 . . ADDVV 4 4 5
0000 . . . . FUNCC ; ffi.meta.__add
0019 . . UGET 5 1 ; ffi
0020 . . TGETS 5 5 4 ; "cast"
0021 . . UGET 6 1 ; ffi
0022 . . TGETS 6 6 5 ; "typeof"
0023 . . MOV 7 1
0024 . . CALL 6 2 2
0000 . . . FUNCC ; ffi.typeof
0025 . . MOV 7 4
0026 . . CALLT 5 3
0000 . . FUNCC ; ffi.cast
0006 . ISEQP 2 0
0007 . JMP 3 => 0009
0000 . . . FUNCC ; ffi.meta.__eq
0008 . RET1 2 2
0050 UGET 10 0 ; ffi
0051 TGETS 10 10 7 ; "cast"
0052 UGET 11 1 ; char_ptr_t
0053 MOV 12 9
0054 CALL 10 2 3
0000 . FUNCC ; ffi.cast
0055 TSETS 10 8 15 ; "pointer"
0000 . . FUNCC ; ffi.meta.__newindex
0056 MOV 11 0
0057 TGETS 10 0 17 ; "translate_physical_addr"
0058 MOV 12 9
0059 CALL 10 2 3
0000 . JFUNCF 4 3 ; net_device.lua:311
0001 . UGET 2 0 ; memory
0002 . TGETS 2 2 0 ; "virtual_to_physical"
0003 . MOV 3 1
0004 . CALLT 2 2
0000 . FUNCF 9 ; memory.lua:91
0001 . UGET 1 0 ; tlb
0002 . TGETS 1 1 0 ; "lookup"
0003 . UGET 2 1 ; phystlb
0004 . MOV 3 0
0005 . CALL 1 2 3
0000 . . FUNCF 8 ; tlb.lua:24
0001 . . UGET 2 0 ; u64
0002 . . MOV 3 1
0003 . . CALL 2 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0004 . . GGET 3 0 ; "tonumber"
0005 . . GGET 4 1 ; "bit"
0006 . . TGETS 4 4 2 ; "rshift"
0007 . . MOV 5 2
0008 . . TGETS 6 0 3 ; "pagesize"
0009 . . CALL 4 0 3
0000 . . . FUNCC ; bit.rshift
0010 . . CALLM 3 2 0
0000 . . . FUNCC ; tonumber
0011 . . TGETV 4 0 3
0012 . . ISF 4
0013 . . JMP 5 => 0027
0014 . . UGET 4 0 ; u64
0015 . . MOV 5 1
0016 . . CALL 4 2 2
0000 . . . FUNCF 4 ; tlb.lua:14
0001 . . . UGET 1 0 ; ffi
0002 . . . TGETS 1 1 0 ; "cast"
0003 . . . KSTR 2 1 ; "uint64_t"
0004 . . . MOV 3 0
0005 . . . CALLT 1 3
0000 . . . FUNCC ; ffi.cast
0017 . . TGETV 5 0 3
0018 . . ADDVV 4 4 5
0000 . . . . FUNCC ; ffi.meta.__add
0019 . . UGET 5 1 ; ffi
0020 . . TGETS 5 5 4 ; "cast"
0021 . . UGET 6 1 ; ffi
0022 . . TGETS 6 6 5 ; "typeof"
0023 . . MOV 7 1
0024 . . CALL 6 2 2
0000 . . . FUNCC ; ffi.typeof
0025 . . MOV 7 4
0026 . . CALLT 5 3
0000 . . FUNCC ; ffi.cast
0006 . ISF 1
0007 . JMP 2 => 0009
0008 . RET1 1 2
0060 TSETS 10 8 16 ; "physical"
0000 . . FUNCC ; ffi.meta.__newindex
0061 TGETS 10 7 19 ; "len"
0000 . . FUNCC ; ffi.meta.__index
0062 TSETS 10 8 18 ; "size"
0000 . . FUNCC ; ffi.meta.__newindex
0063 TGETS 10 8 18 ; "size"
0000 . . FUNCC ; ffi.meta.__index
0064 ADDVV 6 6 10
0065 TGETS 10 8 20 ; "origin"
0000 . . FUNCC ; ffi.meta.__index
0066 UGET 11 5 ; C
0067 TGETS 11 11 22 ; "BUFFER_ORIGIN_VIRTIO"
0000 . . FUNCC ; ffi.clib.__index
0068 TSETS 11 10 21 ; "type"
0000 . . FUNCC ; ffi.meta.__newindex
0069 TGETS 10 8 20 ; "origin"
0000 . . FUNCC ; ffi.meta.__index
0070 TGETS 10 10 23 ; "info"
0000 . . FUNCC ; ffi.meta.__index
0071 TGETS 10 10 24 ; "virtio"
0000 . . FUNCC ; ffi.meta.__index
0072 TGETS 11 0 26 ; "virtio_device_id"
0073 TSETS 11 10 25 ; "device_id"
0000 . . FUNCC ; ffi.meta.__newindex
0074 KSHORT 11 0
0075 TSETS 11 10 27 ; "ring_id"
0000 . . FUNCC ; ffi.meta.__newindex
0076 TSETS 3 10 28 ; "header_id"
0000 . . FUNCC ; ffi.meta.__newindex
0077 TSETS 5 10 29 ; "header_pointer"
0000 . . FUNCC ; ffi.meta.__newindex
0078 TSETS 6 10 30 ; "total_size"
0000 . . FUNCC ; ffi.meta.__newindex
0079 UGET 11 3 ; freelist
0080 TGETS 11 11 31 ; "add"
0081 TGETS 12 0 32 ; "vring_transmit_buffers"
0082 MOV 13 8
0083 CALL 11 1 3
0000 . JFUNCF 4 6 ; freelist.lua:12
0001 . TGETS 2 0 0 ; "list"
0002 . TGETS 3 0 1 ; "nfree"
0003 . TSETV 1 2 3
0000 . . . FUNCC ; ffi.meta.__newindex
0004 . TGETS 2 0 1 ; "nfree"
0005 . ADDVN 2 2 0 ; 1
0006 . TSETS 2 0 1 ; "nfree"
0007 . RET0 0 1
0084 TGETS 11 0 0 ; "txavail"
0085 ADDVN 11 11 2 ; 1
0086 MODVN 11 11 3 ; 65536
0087 TSETS 11 0 0 ; "txavail"
0088 JMP 3 => 0005
0005 ISEQV 2 1
0006 JMP 3 => 0089
0007 LOOP 3 => 0089
---- TRACE 7 IR
0001 > num SLOAD #3 T
0002 > num NE 0001 +0
0003 + num SUB 0001 +1
0004 > tab SLOAD #1 T
0005 int FLOAD 0004 tab.hmask
0006 > int EQ 0005 +15
0007 p32 FLOAD 0004 tab.node
0008 > p32 HREFK 0007 "txring" @11
0009 > tab HLOAD 0008
0010 int FLOAD 0009 tab.hmask
0011 > int EQ 0010 +3
0012 p32 FLOAD 0009 tab.node
0013 > p32 HREFK 0012 "avail" @2
0014 > cdt HLOAD 0013
0015 u16 FLOAD 0014 cdata.ctypeid
0016 > int EQ 0015 +592
0017 p64 FLOAD 0014 cdata.ptr
0020 > p32 HREFK 0007 "tx_vring_num" @14
0021 > num HLOAD 0020
0022 num DIV 0003 0021
0023 num FPMATH 0022 floor
0024 num MUL 0023 0021
0025 num SUB 0003 0024
0026 i64 CONV 0025 i64.num
0027 i64 ADD 0026 0026
0028 p64 ADD 0027 0017
0029 p64 ADD 0028 +4
0030 u16 XLOAD 0029
0031 > p32 HREFK 0012 "desc" @0
0032 > cdt HLOAD 0031
0033 u16 FLOAD 0032 cdata.ctypeid
0034 > int EQ 0033 +590
0035 p64 FLOAD 0032 cdata.ptr
0036 i64 BSHL 0030 +4
0037 p64 ADD 0036 0035
0038 } cdt CNEWI +594 0037
0039 fun SLOAD #0 R
0040 > p32 UREFC 0039 #0
0041 > tab ULOAD 0040
0042 int FLOAD 0041 tab.hmask
0043 > int EQ 0042 +31
0044 p32 FLOAD 0041 tab.node
0045 > p32 HREFK 0044 "cast" @6
0046 > fun HLOAD 0045
0047 > fun EQ 0039 net_device.lua:157
0048 p32 HREF 0004 "map_from_guest"
0049 > p32 EQ 0048 [0x41196458]
0050 tab FLOAD 0004 tab.meta
0051 > tab NE 0050 [NULL]
0052 int FLOAD 0050 tab.hmask
0053 > int EQ 0052 +1
0054 p32 FLOAD 0050 tab.node
0055 > p32 HREFK 0054 "__index" @1
0056 > tab HLOAD 0055
0057 int FLOAD 0056 tab.hmask
0058 > int EQ 0057 +31
0059 p32 FLOAD 0056 tab.node
0060 > p32 HREFK 0059 "map_from_guest" @25
0061 > fun HLOAD 0060
0062 u64 XLOAD 0037
0063 } cdt CNEWI +12 0062
0064 > fun EQ 0061 net_device.lua:334
0065 > nil PROF
0066 > p32 UREFC net_device.lua:334 #0
0067 > tab ULOAD 0066
0068 int FLOAD 0067 tab.hmask
0069 > int EQ 0068 +7
0070 p32 FLOAD 0067 tab.node
0071 > p32 HREFK 0070 "lookup" @6
0072 > fun HLOAD 0071
0073 > p32 UREFC net_device.lua:334 #1
0074 > tab ULOAD 0073
0075 > fun EQ 0072 tlb.lua:24
0076 > nil PROF
0077 > p32 UREFC tlb.lua:14 #0
0078 > tab ULOAD 0077
0079 int FLOAD 0078 tab.hmask
0080 > int EQ 0079 +31
0081 p32 FLOAD 0078 tab.node
0082 > p32 HREFK 0081 "cast" @6
0083 > fun HLOAD 0082
0084 > fun EQ 0083 ffi.cast
0085 > nil PROF
0086 tab FLOAD tlb.lua:24 func.env
0087 p32 HREF 0086 "tonumber"
0088 > p32 EQ 0087 [0x41196458]
0089 tab FLOAD 0086 tab.meta
0090 > tab NE 0089 [NULL]
0091 int FLOAD 0089 tab.hmask
0092 > int EQ 0091 +1
0093 p32 FLOAD 0089 tab.node
0094 > p32 HREFK 0093 "__index" @1
0095 > tab HLOAD 0094
0096 int FLOAD 0095 tab.hmask
0097 > int EQ 0096 +63
0098 p32 FLOAD 0095 tab.node
0099 > p32 HREFK 0098 "tonumber" @8
0100 > fun HLOAD 0099
0101 p32 HREF 0086 "bit"
0102 > p32 EQ 0101 [0x41196458]
0103 > p32 HREFK 0098 "bit" @38
0104 > tab HLOAD 0103
0105 int FLOAD 0104 tab.hmask
0106 > int EQ 0105 +15
0107 p32 FLOAD 0104 tab.node
0108 > p32 HREFK 0107 "rshift" @5
0109 > fun HLOAD 0108
0110 int FLOAD 0074 tab.hmask
0111 > int EQ 0110 +15
0112 p32 FLOAD 0074 tab.node
0113 > p32 HREFK 0112 "pagesize" @14
0114 > num HLOAD 0113
0115 > fun EQ 0109 bit.rshift
0116 int TOBIT 0114 bias
0117 u64 BSHR 0062 0116
0119 > fun EQ 0100 tonumber
0120 num CONV 0117 num.u64
0121 > int CONV 0120 int.num
0122 int FLOAD 0074 tab.asize
0123 > int ULE 0122 0121
0124 p32 HREF 0074 0120
0125 > cdt HLOAD 0124
0126 > nil PROF
0127 u16 FLOAD 0125 cdata.ctypeid
0128 > int EQ 0127 +12
0129 u64 FLOAD 0125 cdata.int64
0130 u64 ADD 0129 0062
0131 } cdt CNEWI +12 0130
0132 > p32 HREFK 0081 "typeof" @7
0133 > fun HLOAD 0132
0134 > fun EQ 0133 ffi.typeof
0136 > nil PROF
0137 > fun EQ 0046 ffi.cast
0138 } cdt CNEWI +96 0130
0139 p64 ADD 0037 +14
0140 u16 XLOAD 0139
0141 i64 BSHL 0140 +4
0142 p64 ADD 0141 0035
0143 } cdt CNEWI +594 0142
0144 > p32 UREFC net_device.lua:157 #3
0145 > tab ULOAD 0144
0146 int FLOAD 0145 tab.hmask
0147 > int EQ 0146 +7
0148 p32 FLOAD 0145 tab.node
0149 > p32 HREFK 0148 "remove" @2
0150 > fun HLOAD 0149
0151 > p32 HREFK 0007 "buffer_recs" @15
0152 > tab HLOAD 0151
0153 > fun EQ 0150 freelist.lua:19
0154 > nil PROF
0155 int FLOAD 0152 tab.hmask
0156 > int EQ 0155 +3
0157 p32 FLOAD 0152 tab.node
0158 > p32 HREFK 0157 "nfree" @0
0159 > num HLOAD 0158
0160 > num NE 0159 +0
0161 num SUB 0159 +1
0162 num HSTORE 0158 0161
0163 > p32 HREFK 0157 "list" @2
0164 > cdt HLOAD 0163
0165 u16 FLOAD 0164 cdata.ctypeid
0166 > int EQ 0165 +240
0167 i64 CONV 0159 i64.num
0169 i64 BSHL 0167 +3
0170 p64 ADD 0169 0164
0171 p64 XLOAD 0170
0172 } cdt CNEWI +212 0171
0173 > nil PROF
0174 u64 XLOAD 0142
0175 } cdt CNEWI +12 0174
0176 > nil PROF
0177 u64 BSHR 0174 0116
0179 num CONV 0177 num.u64
0180 > int CONV 0179 int.num
0181 > int UGE 0180 0122
0182 p32 HREF 0074 0179
0183 > cdt HLOAD 0182
0184 > nil PROF
0185 u16 FLOAD 0183 cdata.ctypeid
0186 > int EQ 0185 +12
0187 u64 FLOAD 0183 cdata.int64
0188 u64 ADD 0187 0174
0189 } cdt CNEWI +12 0188
0190 > nil PROF
0191 > p32 UREFC net_device.lua:157 #0
0192 > tab ULOAD 0191
0193 int FLOAD 0192 tab.hmask
0194 > int EQ 0193 +31
0195 p32 FLOAD 0192 tab.node
0196 > p32 HREFK 0195 "cast" @6
0197 > fun HLOAD 0196
0198 > fun EQ 0197 ffi.cast
0200 p64 XSTORE 0171 0188
0201 p32 HREF 0004 "translate_physical_a"~
0202 > p32 EQ 0201 [0x41196458]
0203 > p32 HREFK 0059 "translate_physical_a"~ @24
0204 > fun HLOAD 0203
0205 > fun EQ 0204 net_device.lua:311
0206 > nil PROF
0207 > p32 UREFC net_device.lua:311 #0
0208 > tab ULOAD 0207
0209 int FLOAD 0208 tab.hmask
0210 > int EQ 0209 +31
0211 p32 FLOAD 0208 tab.node
0212 > p32 HREFK 0211 "virtual_to_physical" @20
0213 > fun HLOAD 0212
0214 > fun EQ 0213 memory.lua:91
0215 > nil PROF
0216 > p32 UREFC memory.lua:91 #0
0217 > tab ULOAD 0216
0218 int FLOAD 0217 tab.hmask
0219 > int EQ 0218 +7
0220 p32 FLOAD 0217 tab.node
0221 > p32 HREFK 0220 "lookup" @6
0222 > fun HLOAD 0221
0223 > p32 UREFC memory.lua:91 #1
0224 > tab ULOAD 0223
0225 > fun EQ 0222 tlb.lua:24
0226 > nil PROF
0227 int FLOAD 0224 tab.hmask
0228 > int EQ 0227 +15
0229 p32 FLOAD 0224 tab.node
0230 > p32 HREFK 0229 "pagesize" @15
0231 > num HLOAD 0230
0232 int TOBIT 0231 bias
0233 u64 BSHR 0188 0232
0235 num CONV 0233 num.u64
0236 > int CONV 0235 int.num
0237 int FLOAD 0224 tab.asize
0238 > int ULE 0237 0236
0239 p32 HREF 0224 0235
0240 > cdt HLOAD 0239
0241 > nil PROF
0242 u16 FLOAD 0240 cdata.ctypeid
0243 > int EQ 0242 +12
0244 u64 FLOAD 0240 cdata.int64
0245 u64 ADD 0244 0188
0246 } cdt CNEWI +12 0245
0247 > nil PROF
0248 p64 ADD 0171 +8
0249 u64 XSTORE 0248 0245
0250 p64 ADD 0142 +8
0251 u32 XLOAD 0250
0252 num CONV 0251 num.u32
0253 p64 ADD 0171 +16
0254 u32 XSTORE 0253 0251
0255 num ADD 0252 +10
0256 p64 ADD 0171 +24
0258 > p32 UREFC net_device.lua:157 #5
0259 > udt ULOAD 0258
0260 > p32 EQ 0259 [0x411a2f38]
0261 u32 XSTORE 0256 +1
0262 p64 ADD 0171 +32
0265 > p32 HREFK 0007 "virtio_device_id" @10
0266 > num HLOAD 0265
0267 int CONV 0266 int.num
0268 i16 XSTORE 0262 0267
0269 p64 ADD 0171 +34
0270 i16 XSTORE 0269 +0
0271 p64 ADD 0171 +36
0272 i16 XSTORE 0271 0030
0273 p64 ADD 0171 +40
0274 p64 XSTORE 0273 0130
0275 p64 ADD 0171 +48
0276 u32 CONV 0255 u32.num
0277 u32 XSTORE 0275 0276
0278 > p32 HREFK 0148 "add" @5
0279 > fun HLOAD 0278
0280 > p32 HREFK 0007 "vring_transmit_buffe"~ @9
0281 > tab HLOAD 0280
0282 > fun EQ 0279 freelist.lua:12
0283 > nil PROF
0284 int FLOAD 0281 tab.hmask
0285 > int EQ 0284 +3
0286 p32 FLOAD 0281 tab.node
0287 > p32 HREFK 0286 "list" @2
0288 > cdt HLOAD 0287
0289 > p32 HREFK 0286 "nfree" @0
0290 > num HLOAD 0289
0291 u16 FLOAD 0288 cdata.ctypeid
0292 > int EQ 0291 +240
0293 i64 CONV 0290 i64.num
0294 i64 BSHL 0293 +3
0295 p64 ADD 0294 0288
0296 p64 ADD 0295 +8
0297 p64 XSTORE 0296 0171
0298 num ADD 0290 +1
0299 num HSTORE 0289 0298
0300 > nil PROF
0301 > p32 HREFK 0007 "txavail" @13
0302 > num HLOAD 0301
0303 num ADD 0302 +1
0304 num MUL 0303 +1.52587890625e-05
0305 num FPMATH 0304 floor
0306 num MUL 0305 +65536
0307 + num SUB 0303 0306
0308 num HSTORE 0301 0307
0309 > num SLOAD #2 T
0310 > num NE 0309 0003
0311 ------ LOOP ------------
0312 > num NE 0003 +0
0313 + num SUB 0003 +1
0314 num DIV 0313 0021
0315 num FPMATH 0314 floor
0316 num MUL 0315 0021
0317 num SUB 0313 0316
0318 i64 CONV 0317 i64.num
0319 i64 ADD 0318 0318
0320 p64 ADD 0319 0017
0321 p64 ADD 0320 +4
0322 u16 XLOAD 0321
0323 i64 BSHL 0322 +4
0324 p64 ADD 0323 0035
0325 } cdt CNEWI +594 0324
0326 u64 XLOAD 0324
0327 } cdt CNEWI +12 0326
0328 > nil PROF
0329 u64 BSHR 0326 0116
0330 num CONV 0329 num.u64
0331 > int CONV 0330 int.num
0332 > int UGE 0331 0122
0333 p32 HREF 0074 0330
0334 > cdt HLOAD 0333
0335 > nil PROF
0336 u16 FLOAD 0334 cdata.ctypeid
0337 > int EQ 0336 +12
0338 u64 FLOAD 0334 cdata.int64
0339 u64 ADD 0338 0326
0340 } cdt CNEWI +12 0339
0341 > nil PROF
0342 } cdt CNEWI +96 0339
0343 p64 ADD 0324 +14
0344 u16 XLOAD 0343
0345 i64 BSHL 0344 +4
0346 p64 ADD 0345 0035
0347 } cdt CNEWI +594 0346
0348 > nil PROF
0349 > num HLOAD 0158
0350 > num NE 0349 +0
0351 num SUB 0349 +1
0352 num HSTORE 0158 0351
0353 i64 CONV 0349 i64.num
0354 i64 BSHL 0353 +3
0355 p64 ADD 0354 0164
0356 p64 XLOAD 0355
0357 } cdt CNEWI +212 0356
0358 > nil PROF
0359 u64 XLOAD 0346
0360 } cdt CNEWI +12 0359
0361 > nil PROF
0362 u64 BSHR 0359 0116
0363 num CONV 0362 num.u64
0364 > int CONV 0363 int.num
0365 > int UGE 0364 0122
0366 p32 HREF 0074 0363
0367 > cdt HLOAD 0366
0368 > nil PROF
0369 u16 FLOAD 0367 cdata.ctypeid
0370 > int EQ 0369 +12
0371 u64 FLOAD 0367 cdata.int64
0372 u64 ADD 0371 0359
0373 } cdt CNEWI +12 0372
0374 > nil PROF
0375 p64 XSTORE 0356 0372
0376 > nil PROF
0377 u64 BSHR 0372 0232
0378 num CONV 0377 num.u64
0379 > int CONV 0378 int.num
0380 > int UGE 0379 0237
0381 p32 HREF 0224 0378
0382 > cdt HLOAD 0381
0383 > nil PROF
0384 u16 FLOAD 0382 cdata.ctypeid
0385 > int EQ 0384 +12
0386 u64 FLOAD 0382 cdata.int64
0387 u64 ADD 0386 0372
0388 } cdt CNEWI +12 0387
0389 > nil PROF
0390 p64 ADD 0356 +8
0391 u64 XSTORE 0390 0387
0392 p64 ADD 0346 +8
0393 u32 XLOAD 0392
0394 num CONV 0393 num.u32
0395 p64 ADD 0356 +16
0396 u32 XSTORE 0395 0393
0397 num ADD 0394 +10
0398 p64 ADD 0356 +24
0399 u32 XSTORE 0398 +1
0400 p64 ADD 0356 +32
0401 i16 XSTORE 0400 0267
0402 p64 ADD 0356 +34
0403 i16 XSTORE 0402 +0
0404 p64 ADD 0356 +36
0405 i16 XSTORE 0404 0322
0406 p64 ADD 0356 +40
0407 p64 XSTORE 0406 0339
0408 p64 ADD 0356 +48
0409 u32 CONV 0397 u32.num
0410 u32 XSTORE 0408 0409
0411 > nil PROF
0412 > num HLOAD 0289
0413 i64 CONV 0412 i64.num
0414 i64 BSHL 0413 +3
0415 p64 ADD 0414 0288
0416 p64 ADD 0415 +8
0417 p64 XSTORE 0416 0356
0418 num ADD 0412 +1
0419 num HSTORE 0289 0418
0420 > nil PROF
0421 num ADD 0307 +1
0422 num MUL 0421 +1.52587890625e-05
0423 num FPMATH 0422 floor
0424 num MUL 0423 +65536
0425 + num SUB 0421 0424
0426 num HSTORE 0301 0425
0427 > num NE 0313 0309
0428 num PHI 0003 0313
0429 num PHI 0307 0425
---- TRACE 7 mcode 4506
1331cc87 add rsp, -0x70
1331cc8b mov dword [0x41196410], 0x7
1331cc96 mov ecx, edx
1331cc98 xorps xmm9, xmm9
1331cc9c movsd xmm8, [0x534546e0]
1331cca6 movsd xmm3, [0x411b4da0]
1331ccaf movsd xmm2, [0x4064ef48]
1331ccb8 movsd xmm1, [0x4064ef40]
1331ccc1 cmp dword [rcx+0x14], 0xfffeffff
1331ccc8 jnb 0x13310010
1331ccce movsd xmm6, [rcx+0x10]
1331ccd3 ucomisd xmm6, xmm9
1331ccd8 jpe 0x1331cce0
1331ccda jz 0x13310014
1331cce0 subsd xmm6, xmm3
1331cce4 cmp dword [rcx+0x4], -0x0c
1331cce8 jnz 0x13310018
1331ccee mov r10d, [rcx]
1331ccf1 mov [rsp+0xc], r10d
1331ccf6 cmp dword [r10+0x1c], +0x0f
1331ccfb jnz 0x13310018
1331cd01 mov eax, [r10+0x14]
1331cd05 mov rdi, 0xfffffffb40e28608
1331cd0f cmp rdi, [rax+0x110]
1331cd16 jnz 0x13310018
1331cd1c cmp dword [rax+0x10c], -0x0c
1331cd23 jnz 0x13310018
1331cd29 mov edx, [rax+0x108]
1331cd2f cmp dword [rdx+0x1c], +0x03
1331cd33 jnz 0x13310018
1331cd39 mov edx, [rdx+0x14]
1331cd3c mov rdi, 0xfffffffb40e25950
1331cd46 cmp rdi, [rdx+0x38]
1331cd4a jnz 0x13310018
1331cd50 cmp dword [rdx+0x34], -0x0b
1331cd54 jnz 0x13310018
1331cd5a mov ebx, [rdx+0x30]
1331cd5d movzx ebp, word [rbx+0x6]
1331cd61 cmp ebp, 0x250
1331cd67 jnz 0x13310018
1331cd6d mov r13, [rbx+0x8]
1331cd71 mov [rsp+0x60], r13
1331cd76 mov rdi, 0xfffffffb40e27a98
1331cd80 cmp rdi, [rax+0x158]
1331cd87 jnz 0x13310018
1331cd8d cmp dword [rax+0x154], 0xfffeffff
1331cd97 jnb 0x13310018
1331cd9d movsd xmm10, [rax+0x150]
1331cda6 movaps xmm0, xmm6
1331cda9 divsd xmm0, xmm10
1331cdae roundsd xmm4, xmm0, 0x09
1331cdb4 mulsd xmm4, xmm10
1331cdb9 movaps xmm0, xmm6
1331cdbc subsd xmm0, xmm4
1331cdc0 cvttsd2si rbx, xmm0
1331cdc5 movzx esi, word [r13+rbx*2+0x4]
1331cdcb mov rdi, 0xfffffffb40e259d0
1331cdd5 cmp rdi, [rdx+0x8]
1331cdd9 jnz 0x13310018
1331cddf cmp dword [rdx+0x4], -0x0b
1331cde3 jnz 0x13310018
1331cde9 mov edx, [rdx]
1331cdeb movzx ebx, word [rdx+0x6]
1331cdef cmp ebx, 0x24e
1331cdf5 jnz 0x13310018
1331cdfb mov r9, [rdx+0x8]
1331cdff mov [rsp+0x48], r9
1331ce04 mov edx, esi
1331ce06 shl rdx, 0x04
1331ce0a mov r11, rdx
1331ce0d add r11, r9
1331ce10 mov [rsp+0x68], r11
1331ce15 mov ecx, [rcx-0x8]
1331ce18 mov edi, [rcx+0x14]
1331ce1b cmp byte [rdi+0x6], 0x1
1331ce1f jnz 0x13310018
1331ce25 lea ebx, [rdi+0x8]
1331ce28 cmp dword [rbx+0x4], -0x0c
1331ce2c jnz 0x13310018
1331ce32 mov ebx, [rbx]
1331ce34 cmp dword [rbx+0x1c], +0x1f
1331ce38 jnz 0x13310018
1331ce3e mov ebx, [rbx+0x14]
1331ce41 mov rdi, 0xfffffffb4119b618
1331ce4b cmp rdi, [rbx+0x98]
1331ce52 jnz 0x13310018
1331ce58 cmp dword [rbx+0x94], -0x09
1331ce5f jnz 0x13310018
1331ce65 mov edi, [rbx+0x90]
1331ce6b cmp ecx, 0x5323e650
1331ce71 jnz 0x13310018
1331ce77 mov ebp, [r10+0x1c]
1331ce7b and ebp, 0xfa0f9e99
1331ce81 lea ebp, [rbp+rbp*2+0x0]
1331ce85 shl ebp, 0x03
1331ce88 add ebp, [r10+0x14]
1331ce8c cmp dword [rbp+0xc], -0x05
1331ce90 jnz 0x1331ce9f
1331ce92 cmp dword [rbp+0x8], 0x40e28200
1331ce99 jz 0x13310018
1331ce9f mov ebp, [rbp+0x10]
1331cea2 test ebp, ebp
1331cea4 jnz 0x1331ce8c
1331cea6 mov ecx, [r10+0x10]
1331ceaa test ecx, ecx
1331ceac jz 0x13310018
1331ceb2 cmp dword [rcx+0x1c], +0x01
1331ceb6 jnz 0x13310018
1331cebc mov ecx, [rcx+0x14]
1331cebf mov rbp, 0xfffffffb41198458
1331cec9 cmp rbp, [rcx+0x20]
1331cecd jnz 0x13310018
1331ced3 cmp dword [rcx+0x1c], -0x0c
1331ced7 jnz 0x13310018
1331cedd mov ecx, [rcx+0x18]
1331cee0 cmp dword [rcx+0x1c], +0x1f
1331cee4 jnz 0x13310018
1331ceea mov ecx, [rcx+0x14]
1331ceed mov [rsp+0x70], ecx
1331cef1 mov rbp, 0xfffffffb40e28200
1331cefb cmp rbp, [rcx+0x260]
1331cf02 jnz 0x13310018
1331cf08 cmp dword [rcx+0x25c], -0x09
1331cf0f jnz 0x13310018
1331cf15 mov r14, [r9+rdx]
1331cf19 cmp dword [rcx+0x258], 0x5323e9f8
1331cf23 jnz 0x13310018
1331cf29 test byte [0x41196435], 0x80
1331cf31 jnz 0x13310018
1331cf37 cmp dword [0x5323ea2c], -0x0c
1331cf3f jnz 0x1331001c
1331cf45 mov ecx, [0x5323ea28]
1331cf4c cmp dword [rcx+0x1c], +0x07
1331cf50 jnz 0x1331001c
1331cf56 mov ecx, [rcx+0x14]
1331cf59 mov rbp, 0xfffffffb411b3798
1331cf63 cmp rbp, [rcx+0x98]
1331cf6a jnz 0x1331001c
1331cf70 cmp dword [rcx+0x94], -0x09
1331cf77 jnz 0x1331001c
1331cf7d cmp dword [0x5323ea4c], -0x0c
1331cf85 jnz 0x1331001c
1331cf8b mov r12d, [0x5323ea48]
1331cf93 mov [rsp+0x18], r12d
1331cf98 cmp dword [rcx+0x90], 0x411a7910
1331cfa2 jnz 0x1331001c
1331cfa8 test byte [0x41196435], 0x80
1331cfb0 jnz 0x1331001c
1331cfb6 cmp dword [0x411a78bc], -0x0c
1331cfbe jnz 0x13310020
1331cfc4 mov ecx, [0x411a78b8]
1331cfcb cmp dword [rcx+0x1c], +0x1f
1331cfcf jnz 0x13310020
1331cfd5 mov ebx, [rcx+0x14]
1331cfd8 mov rbp, 0xfffffffb4119b618
1331cfe2 cmp rbp, [rbx+0x98]
1331cfe9 jnz 0x13310020
1331cfef cmp dword [rbx+0x94], -0x09
1331cff6 jnz 0x13310020
1331cffc cmp dword [rbx+0x90], 0x4119b118
1331d006 jnz 0x13310020
1331d00c test byte [0x41196435], 0x80
1331d014 jnz 0x13310020
1331d01a mov ecx, [0x411a7918]
1331d021 mov ebp, [rcx+0x1c]
1331d024 and ebp, 0xb42be888
1331d02a lea ebp, [rbp+rbp*2+0x0]
1331d02e shl ebp, 0x03
1331d031 add ebp, [rcx+0x14]
1331d034 cmp dword [rbp+0xc], -0x05
1331d038 jnz 0x1331d047
1331d03a cmp dword [rbp+0x8], 0x41199310
1331d041 jz 0x13310024
1331d047 mov ebp, [rbp+0x10]
1331d04a test ebp, ebp
1331d04c jnz 0x1331d034
1331d04e mov ebp, [rcx+0x10]
1331d051 test ebp, ebp
1331d053 jz 0x13310024
1331d059 cmp dword [rbp+0x1c], +0x01
1331d05d jnz 0x13310024
1331d063 mov ebp, [rbp+0x14]
1331d066 mov r15, 0xfffffffb41198458
1331d070 cmp r15, [rbp+0x20]
1331d074 jnz 0x13310024
1331d07a cmp dword [rbp+0x1c], -0x0c
1331d07e jnz 0x13310024
1331d084 mov ebp, [rbp+0x18]
1331d087 cmp dword [rbp+0x1c], +0x3f
1331d08b jnz 0x13310024
1331d091 mov r8d, [rbp+0x14]
1331d095 mov rbp, 0xfffffffb41199310
1331d09f cmp rbp, [r8+0xc8]
1331d0a6 jnz 0x13310024
1331d0ac cmp dword [r8+0xc4], -0x09
1331d0b4 jnz 0x13310024
1331d0ba mov ebp, [rcx+0x1c]
1331d0bd and ebp, 0x2b20685a
1331d0c3 lea ebp, [rbp+rbp*2+0x0]
1331d0c7 shl ebp, 0x03
1331d0ca add ebp, [rcx+0x14]
1331d0cd cmp dword [rbp+0xc], -0x05
1331d0d1 jnz 0x1331d0e0
1331d0d3 cmp dword [rbp+0x8], 0x4119cfb8
1331d0da jz 0x13310024
1331d0e0 mov ebp, [rbp+0x10]
1331d0e3 test ebp, ebp
1331d0e5 jnz 0x1331d0cd
1331d0e7 mov rbp, 0xfffffffb4119cfb8
1331d0f1 cmp rbp, [r8+0x398]
1331d0f8 jnz 0x13310024
1331d0fe cmp dword [r8+0x394], -0x0c
1331d106 jnz 0x13310024
1331d10c mov ecx, [r8+0x390]
1331d113 cmp dword [rcx+0x1c], +0x0f
1331d117 jnz 0x13310024
1331d11d mov ecx, [rcx+0x14]
1331d120 mov rbp, 0xfffffffb4119d2d0
1331d12a cmp rbp, [rcx+0x80]
1331d131 jnz 0x13310024
1331d137 cmp dword [rcx+0x7c], -0x09
1331d13b jnz 0x13310024
1331d141 cmp dword [r12+0x1c], +0x0f
1331d147 jnz 0x13310024
1331d14d mov ebp, [r12+0x14]
1331d152 mov r15, 0xfffffffb4119f928
1331d15c cmp r15, [rbp+0x158]
1331d163 jnz 0x13310024
1331d169 cmp dword [rbp+0x154], 0xfffeffff
1331d173 jnb 0x13310024
1331d179 movsd xmm0, [rbp+0x150]
1331d181 cmp dword [rcx+0x78], 0x4119d2a8
1331d188 jnz 0x13310024
1331d18e addsd xmm0, [0x4095db20]
1331d197 movd ecx, xmm0
1331d19b mov [rsp+0x44], ecx
1331d19f mov rbp, r14
1331d1a2 shr rbp, cl
1331d1a5 cmp dword [r8+0xc0], 0x411992e8
1331d1b0 jnz 0x13310024
1331d1b6 xorps xmm0, xmm0
1331d1b9 cvtsi2sd xmm0, rbp
1331d1be test rbp, rbp
1331d1c1 jns 0x1331d1cc
1331d1c3 addsd xmm0, [0x4064ef00]
1331d1cc cvttsd2si ebp, xmm0
1331d1d0 xorps xmm7, xmm7
1331d1d3 cvtsi2sd xmm7, ebp
1331d1d7 ucomisd xmm0, xmm7
1331d1db jnz 0x13310024
1331d1e1 jpe 0x13310024
1331d1e7 mov r11d, [r12+0x18]
1331d1ec mov [rsp+0x54], r11d
1331d1f1 cmp ebp, r11d
1331d1f4 jb 0x13310024
1331d1fa movq rbp, xmm0
1331d1ff mov r15d, ebp
1331d202 shr rbp, 0x20
1331d206 add ebp, ebp
1331d208 xor r15d, ebp
1331d20b rol ebp, 0x0e
1331d20e sub r15d, ebp
1331d211 rol ebp, 0x05
1331d214 xor ebp, r15d
1331d217 rol r15d, 0x0d
1331d21b sub ebp, r15d
1331d21e and ebp, [r12+0x1c]
1331d223 lea ebp, [rbp+rbp*2+0x0]
1331d227 shl ebp, 0x03
1331d22a add ebp, [r12+0x14]
1331d22f cmp dword [rbp+0xc], 0xfffeffff
1331d236 jnb 0x1331d241
1331d238 ucomisd xmm0, [rbp+0x8]
1331d23d jpe 0x1331d241
1331d23f jz 0x1331d24d
1331d241 mov ebp, [rbp+0x10]
1331d244 test ebp, ebp
1331d246 jnz 0x1331d22f
1331d248 mov ebp, 0x41196458
1331d24d cmp dword [rbp+0x4], -0x0b
1331d251 jnz 0x13310024
1331d257 mov ebp, [rbp+0x0]
1331d25a test byte [0x41196435], 0x80
1331d262 jnz 0x13310024
1331d268 cmp word [rbp+0x6], +0x0c
1331d26d jnz 0x13310028
1331d273 mov rbp, [rbp+0x8]
1331d277 add rbp, r14
1331d27a mov r15, 0xfffffffb4119c978
1331d284 cmp r15, [rbx+0xb0]
1331d28b jnz 0x13310028
1331d291 cmp dword [rbx+0xac], -0x09
1331d298 jnz 0x13310028
1331d29e cmp dword [rbx+0xa8], 0x4119bcb0
1331d2a8 jnz 0x13310028
1331d2ae test byte [0x41196435], 0x80
1331d2b6 jnz 0x13310028
1331d2bc cmp edi, 0x4119b118
1331d2c2 jnz 0x1331002c
1331d2c8 movzx r8d, word [r9+rdx+0xe]
1331d2ce shl r8, 0x04
1331d2d2 mov r13, r8
1331d2d5 add r13, r9
1331d2d8 cmp dword [0x40e2ce7c], -0x0c
1331d2e0 jnz 0x1331002c
1331d2e6 mov edx, [0x40e2ce78]
1331d2ed cmp dword [rdx+0x1c], +0x07
1331d2f1 jnz 0x1331002c
1331d2f7 mov edx, [rdx+0x14]
1331d2fa mov rbx, 0xfffffffb4119a578
1331d304 cmp rbx, [rdx+0x38]
1331d308 jnz 0x1331002c
1331d30e cmp dword [rdx+0x34], -0x09
1331d312 jnz 0x1331002c
1331d318 mov rbx, 0xfffffffb40e27960
1331d322 cmp rbx, [rax+0x170]
1331d329 jnz 0x1331002c
1331d32f cmp dword [rax+0x16c], -0x0c
1331d336 jnz 0x1331002c
1331d33c mov ebx, [rax+0x168]
1331d342 mov [rsp+0x40], ebx
1331d346 cmp dword [rdx+0x30], 0x414eea28
1331d34d jnz 0x1331002c
1331d353 test byte [0x41196435], 0x80
1331d35b jnz 0x1331002c
1331d361 cmp dword [rbx+0x1c], +0x03
1331d365 jnz 0x13310030
1331d36b mov ebx, [rbx+0x14]
1331d36e mov rdi, 0xfffffffb411b2518
1331d378 cmp rdi, [rbx+0x8]
1331d37c jnz 0x13310030
1331d382 mov edi, ebx
1331d384 mov [rsp+0x50], edi
1331d388 cmp dword [rbx+0x4], 0xfffeffff
1331d38f jnb 0x13310030
1331d395 movsd xmm4, [rbx]
1331d399 ucomisd xmm4, xmm9
1331d39e jpe 0x1331d3a6
1331d3a0 jz 0x13310034
1331d3a6 movaps xmm0, xmm4
1331d3a9 subsd xmm0, xmm3
1331d3ad movsd [rbx], xmm0
1331d3b1 mov rdi, 0xfffffffb414ee638
1331d3bb cmp rdi, [rbx+0x38]
1331d3bf jnz 0x13310038
1331d3c5 cmp dword [rbx+0x34], -0x0b
1331d3c9 jnz 0x13310038
1331d3cf mov edi, [rbx+0x30]
1331d3d2 mov [rsp+0x5c], edi
1331d3d6 movzx ebx, word [rdi+0x6]
1331d3da cmp ebx, 0xf0
1331d3e0 jnz 0x13310038
1331d3e6 cvttsd2si rbx, xmm4
1331d3eb mov rbx, [rdi+rbx*8]
1331d3ef test byte [0x41196435], 0x80
1331d3f7 jnz 0x13310038
1331d3fd mov r15, [r13+0x0]
1331d401 test byte [0x41196435], 0x80
1331d409 jnz 0x1331003c
1331d40f mov rdi, r15
1331d412 shr rdi, cl
1331d415 mov ecx, [rsp+0x70]
1331d419 xorps xmm0, xmm0
1331d41c cvtsi2sd xmm0, rdi
1331d421 test rdi, rdi
1331d424 jns 0x1331d42f
1331d426 addsd xmm0, [0x4064ef00]
1331d42f cvttsd2si edi, xmm0
1331d433 xorps xmm7, xmm7
1331d436 cvtsi2sd xmm7, edi
1331d43a ucomisd xmm0, xmm7
1331d43e jnz 0x13310040
1331d444 jpe 0x13310040
1331d44a cmp edi, r11d
1331d44d jb 0x13310040
1331d453 movq rdi, xmm0
1331d458 mov r14d, edi
1331d45b shr rdi, 0x20
1331d45f add edi, edi
1331d461 xor r14d, edi
1331d464 rol edi, 0x0e
1331d467 sub r14d, edi
1331d46a rol edi, 0x05
1331d46d xor edi, r14d
1331d470 rol r14d, 0x0d
1331d474 sub edi, r14d
1331d477 and edi, [r12+0x1c]
1331d47c lea edi, [rdi+rdi*2]
1331d47f shl edi, 0x03
1331d482 add edi, [r12+0x14]
1331d487 cmp dword [rdi+0xc], 0xfffeffff
1331d48e jnb 0x1331d499
1331d490 ucomisd xmm0, [rdi+0x8]
1331d495 jpe 0x1331d499
1331d497 jz 0x1331d4a5
1331d499 mov edi, [rdi+0x10]
1331d49c test edi, edi
1331d49e jnz 0x1331d487
1331d4a0 mov edi, 0x41196458
1331d4a5 cmp dword [rdi+0x4], -0x0b
1331d4a9 jnz 0x13310040
1331d4af mov edi, [rdi]
1331d4b1 test byte [0x41196435], 0x80
1331d4b9 jnz 0x13310040
1331d4bf cmp word [rdi+0x6], +0x0c
1331d4c4 jnz 0x13310044
1331d4ca mov r14, [rdi+0x8]
1331d4ce add r14, r15
1331d4d1 test byte [0x41196435], 0x80
1331d4d9 jnz 0x13310044
1331d4df cmp dword [0x40e2ce9c], -0x0c
1331d4e7 jnz 0x13310048
1331d4ed mov edi, [0x40e2ce98]
1331d4f4 cmp dword [rdi+0x1c], +0x1f
1331d4f8 jnz 0x13310048
1331d4fe mov edi, [rdi+0x14]
1331d501 mov r11, 0xfffffffb4119b618
1331d50b cmp r11, [rdi+0x98]
1331d512 jnz 0x13310048
1331d518 cmp dword [rdi+0x94], -0x09
1331d51f jnz 0x13310048
1331d525 mov r11d, [rdi+0x90]
1331d52c mov [rsp+0x34], r11d
1331d531 cmp dword [rdi+0x90], 0x4119b118
1331d53b jnz 0x13310048
1331d541 xor edi, edi
1331d543 mov [rbx], r14
1331d546 mov r15d, [r10+0x1c]
1331d54a and r15d, 0x007ec958
1331d551 lea r15d, [r15+r15*2]
1331d555 shl r15d, 0x03
1331d559 add r15d, [r10+0x14]
1331d55d cmp dword [r15+0xc], -0x05
1331d562 jnz 0x1331d572
1331d564 cmp dword [r15+0x8], 0x40e281d0
1331d56c jz 0x1331004c
1331d572 mov r15d, [r15+0x10]
1331d576 test r15d, r15d
1331d579 jnz 0x1331d55d
1331d57b mov r15, 0xfffffffb40e281d0
1331d585 cmp r15, [rcx+0x248]
1331d58c jnz 0x1331004c
1331d592 cmp dword [rcx+0x244], -0x09
1331d599 jnz 0x1331004c
1331d59f cmp dword [rcx+0x240], 0x5323e6b0
1331d5a9 jnz 0x1331004c
1331d5af test byte [0x41196435], 0x80
1331d5b7 jnz 0x1331004c
1331d5bd cmp dword [0x5323e6dc], -0x0c
1331d5c5 jnz 0x13310050
1331d5cb mov ecx, [0x5323e6d8]
1331d5d2 cmp dword [rcx+0x1c], +0x1f
1331d5d6 jnz 0x13310050
1331d5dc mov ecx, [rcx+0x14]
1331d5df mov r15, 0xfffffffb411b3d40
1331d5e9 cmp r15, [rcx+0x1e8]
1331d5f0 jnz 0x13310050
1331d5f6 cmp dword [rcx+0x1e4], -0x09
1331d5fd jnz 0x13310050
1331d603 cmp dword [rcx+0x1e0], 0x414ee2a0
1331d60d jnz 0x13310050
1331d613 test byte [0x41196435], 0x80
1331d61b jnz 0x13310050
1331d621 cmp dword [0x411a7964], -0x0c
1331d629 jnz 0x13310054
1331d62f mov ecx, [0x411a7960]
1331d636 cmp dword [rcx+0x1c], +0x07
1331d63a jnz 0x13310054
1331d640 mov ecx, [rcx+0x14]
1331d643 mov r15, 0xfffffffb411b3798
1331d64d cmp r15, [rcx+0x98]
1331d654 jnz 0x13310054
1331d65a cmp dword [rcx+0x94], -0x09
1331d661 jnz 0x13310054
1331d667 cmp dword [0x414ee2dc], -0x0c
1331d66f jnz 0x13310054
1331d675 mov r10d, [0x414ee2d8]
1331d67d cmp dword [rcx+0x90], 0x411a7910
1331d687 jnz 0x13310054
1331d68d test byte [0x41196435], 0x80
1331d695 jnz 0x13310054
1331d69b cmp dword [r10+0x1c], +0x0f
1331d6a0 jnz 0x13310058
1331d6a6 mov ecx, [r10+0x14]
1331d6aa mov r15, 0xfffffffb4119f928
1331d6b4 cmp r15, [rcx+0x170]
1331d6bb jnz 0x13310058
1331d6c1 cmp dword [rcx+0x16c], 0xfffeffff
1331d6cb jnb 0x13310058
1331d6d1 movsd xmm0, [rcx+0x168]
1331d6d9 addsd xmm0, [0x4095db20]
1331d6e2 movd ecx, xmm0
1331d6e6 mov [rsp+0x30], ecx
1331d6ea mov r11, r14
1331d6ed shr r11, cl
1331d6f0 mov ecx, [0x411964b4]
1331d6f7 xorps xmm0, xmm0
1331d6fa cvtsi2sd xmm0, r11
1331d6ff test r11, r11
1331d702 jns 0x1331d70d
1331d704 addsd xmm0, [0x4064ef00]
1331d70d cvttsd2si r11d, xmm0
1331d712 xorps xmm7, xmm7
1331d715 cvtsi2sd xmm7, r11d
1331d71a ucomisd xmm0, xmm7
1331d71e jnz 0x13310058
1331d724 jpe 0x13310058
1331d72a mov r15d, [r10+0x18]
1331d72e mov [rsp+0x58], r15d
1331d733 cmp r11d, [r10+0x18]
1331d737 jb 0x13310058
1331d73d movq r11, xmm0
1331d742 mov r15d, r11d
1331d745 shr r11, 0x20
1331d749 add r11d, r11d
1331d74c xor r15d, r11d
1331d74f rol r11d, 0x0e
1331d753 sub r15d, r11d
1331d756 rol r11d, 0x05
1331d75a xor r11d, r15d
1331d75d rol r15d, 0x0d
1331d761 sub r11d, r15d
1331d764 and r11d, [r10+0x1c]
1331d768 lea r11d, [r11+r11*2]
1331d76c shl r11d, 0x03
1331d770 add r11d, [r10+0x14]
1331d774 cmp dword [r11+0xc], 0xfffeffff
1331d77c jnb 0x1331d788
1331d77e ucomisd xmm0, [r11+0x8]
1331d784 jpe 0x1331d788
1331d786 jz 0x1331d797
1331d788 mov r11d, [r11+0x10]
1331d78c test r11d, r11d
1331d78f jnz 0x1331d774
1331d791 mov r11d, 0x41196458
1331d797 cmp dword [r11+0x4], -0x0b
1331d79c jnz 0x13310058
1331d7a2 mov r11d, [r11]
1331d7a5 test byte [0x41196435], 0x80
1331d7ad jnz 0x13310058
1331d7b3 cmp word [r11+0x6], +0x0c
1331d7b9 jnz 0x1331005c
1331d7bf mov r11, [r11+0x8]
1331d7c3 add r11, r14
1331d7c6 test byte [0x41196435], 0x80
1331d7ce jnz 0x1331005c
1331d7d4 mov [rbx+0x8], r11
1331d7d8 mov r8d, [r9+r8+0x8]
1331d7dd xorps xmm14, xmm14
1331d7e1 cvtsi2sd xmm14, r8
1331d7e6 mov [rbx+0x10], r8d
1331d7ea addsd xmm14, xmm8
1331d7ef cmp dword [0x5323e5fc], -0x0d
1331d7f7 jnz 0x13310064
1331d7fd cmp dword [0x5323e5f8], 0x411a2f38
1331d808 jnz 0x13310064
1331d80e mov dword [rbx+0x18], 0x1
1331d815 mov r15, 0xfffffffb40e28170
1331d81f cmp r15, [rax+0xf8]
1331d826 jnz 0x13310068
1331d82c cmp dword [rax+0xf4], 0xfffeffff
1331d836 jnb 0x13310068
1331d83c cvttsd2si r8d, [rax+0xf0]
1331d845 mov [rbx+0x20], r8w
1331d84a mov [rbx+0x22], di
1331d84e mov [rbx+0x24], si
1331d852 mov [rbx+0x28], rbp
1331d856 cvttsd2si rbp, xmm14
1331d85b mov ebp, ebp
1331d85d mov [rbx+0x30], ebp
1331d860 mov rdi, 0xfffffffb411a06f0
1331d86a cmp rdi, [rdx+0x80]
1331d871 jnz 0x1331006c
1331d877 cmp dword [rdx+0x7c], -0x09
1331d87b jnz 0x1331006c
1331d881 mov rdi, 0xfffffffb40e27930
1331d88b cmp rdi, [rax+0xe0]
1331d892 jnz 0x1331006c
1331d898 cmp dword [rax+0xdc], -0x0c
1331d89f jnz 0x1331006c
1331d8a5 mov esi, [rax+0xd8]
1331d8ab mov [rsp+0x1c], esi
1331d8af cmp dword [rdx+0x78], 0x414eeb08
1331d8b6 jnz 0x1331006c
1331d8bc test byte [0x41196435], 0x80
1331d8c4 jnz 0x1331006c
1331d8ca cmp dword [rsi+0x1c], +0x03
1331d8ce jnz 0x13310070
1331d8d4 mov ebp, [rsi+0x14]
1331d8d7 mov rdi, 0xfffffffb414ee638
1331d8e1 cmp rdi, [rbp+0x38]
1331d8e5 jnz 0x13310070
1331d8eb cmp dword [rbp+0x34], -0x0b
1331d8ef jnz 0x13310070
1331d8f5 mov edx, [rbp+0x30]
1331d8f8 mov rdi, 0xfffffffb411b2518
1331d902 cmp rdi, [rbp+0x8]
1331d906 jnz 0x13310070
1331d90c mov edi, ebp
1331d90e mov [rsp+0x8], edi
1331d912 cmp dword [rbp+0x4], 0xfffeffff
1331d919 jnb 0x13310070
1331d91f movsd xmm13, [rbp+0x0]
1331d925 movzx esi, word [rdx+0x6]
1331d929 cmp esi, 0xf0
1331d92f jnz 0x13310070
1331d935 cvttsd2si rsi, xmm13
1331d93a mov [rdx+rsi*8+0x8], rbx
1331d93f addsd xmm13, xmm3
1331d944 movsd [rbp+0x0], xmm13
1331d94a test byte [0x41196435], 0x80
1331d952 jnz 0x13310074
1331d958 mov rdi, 0xfffffffb40e28628
1331d962 cmp rdi, [rax+0x140]
1331d969 jnz 0x13310078
1331d96f add eax, 0x138
1331d975 cmp dword [rax+0x4], 0xfffeffff
1331d97c jnb 0x13310078
1331d982 movsd xmm7, [rax]
1331d986 addsd xmm7, xmm3
1331d98a movaps xmm12, xmm7
1331d98e mulsd xmm12, xmm2
1331d993 roundsd xmm11, xmm12, 0x09
1331d99a mulsd xmm11, xmm1
1331d99f subsd xmm7, xmm11
1331d9a4 movsd [rax], xmm7
1331d9a8 cmp dword [rcx+0xc], 0xfffeffff
1331d9af jnb 0x1331007c
1331d9b5 movsd xmm0, [rcx+0x8]
1331d9ba ucomisd xmm0, xmm6
1331d9be jpe 0x1331d9c6 ->LOOP
1331d9c0 jz 0x13310080
->LOOP:
1331d9c6 mov r13, [rsp+0x60]
1331d9cb mov r11d, [rsp+0x5c]
1331d9d0 mov r9, [rsp+0x48]
1331d9d5 mov edi, [rsp+0x58]
1331d9d9 mov esi, [rsp+0x54]
1331d9dd mov ebp, [rsp+0x50]
1331d9e1 mov ecx, [rsp+0x44]
1331d9e5 ucomisd xmm6, xmm9
1331d9ea jpe 0x1331d9f2
1331d9ec jz 0x13310088
1331d9f2 movaps xmm5, xmm6
1331d9f5 subsd xmm6, xmm3
1331d9f9 movaps xmm4, xmm6
1331d9fc divsd xmm4, xmm10
1331da01 roundsd xmm15, xmm4, 0x09
1331da08 mulsd xmm15, xmm10
1331da0d movaps xmm4, xmm6
1331da10 subsd xmm4, xmm15
1331da15 cvttsd2si rbx, xmm4
1331da1a movzx r15d, word [r13+rbx*2+0x4]
1331da20 mov r14d, r15d
1331da23 shl r14, 0x04
1331da27 mov r13, r14
1331da2a add r13, r9
1331da2d mov [rsp+0x28], r13
1331da32 mov rbx, [r9+r14]
1331da36 mov [rsp+0x38], rbx
1331da3b test byte [0x41196435], 0x80
1331da43 jnz 0x1331008c
1331da49 mov r13, rbx
1331da4c shr r13, cl
1331da4f xorps xmm4, xmm4
1331da52 cvtsi2sd xmm4, r13
1331da57 test r13, r13
1331da5a jns 0x1331da65
1331da5c addsd xmm4, [0x4064ef00]
1331da65 cvttsd2si r13d, xmm4
1331da6a xorps xmm15, xmm15
1331da6e cvtsi2sd xmm15, r13d
1331da73 ucomisd xmm4, xmm15
1331da78 jnz 0x1331009d
1331da7e jpe 0x1331009d
1331da84 cmp r13d, esi
1331da87 jb 0x1331009d
1331da8d movq r13, xmm4
1331da92 mov r9d, r13d
1331da95 shr r13, 0x20
1331da99 add r13d, r13d
1331da9c xor r9d, r13d
1331da9f rol r13d, 0x0e
1331daa3 sub r9d, r13d
1331daa6 rol r13d, 0x05
1331daaa xor r13d, r9d
1331daad rol r9d, 0x0d
1331dab1 sub r13d, r9d
1331dab4 and r13d, [r12+0x1c]
1331dab9 lea r13d, [r13+r13*2+0x0]
1331dabe shl r13d, 0x03
1331dac2 add r13d, [r12+0x14]
1331dac7 cmp dword [r13+0xc], 0xfffeffff
1331dacf jnb 0x1331dadb
1331dad1 ucomisd xmm4, [r13+0x8]
1331dad7 jpe 0x1331dadb
1331dad9 jz 0x1331daea
1331dadb mov r13d, [r13+0x10]
1331dadf test r13d, r13d
1331dae2 jnz 0x1331dac7
1331dae4 mov r13d, 0x41196458
1331daea mov r9, [rsp+0x48]
1331daef cmp dword [r13+0x4], -0x0b
1331daf4 jnz 0x1331009d
1331dafa mov r13d, [r13+0x0]
1331dafe test byte [0x41196435], 0x80
1331db06 jnz 0x1331009d
1331db0c cmp word [r13+0x6], +0x0c
1331db12 jnz 0x133100a1
1331db18 mov r13, [r13+0x8]
1331db1c add rbx, r13
1331db1f test byte [0x41196435], 0x80
1331db27 jnz 0x133100a1
1331db2d movzx r14d, word [r9+r14+0xe]
1331db33 shl r14, 0x04
1331db37 mov r13, r14
1331db3a add r13, r9
1331db3d mov [rsp+0x20], r13
1331db42 test byte [0x41196435], 0x80
1331db4a jnz 0x133100a5
1331db50 cmp dword [rbp+0x4], 0xfffeffff
1331db57 jnb 0x133100a9
1331db5d movsd xmm15, [rbp+0x0]
1331db63 ucomisd xmm15, xmm9
1331db68 jpe 0x1331db70
1331db6a jz 0x133100ad
1331db70 movaps xmm4, xmm15
1331db74 subsd xmm4, xmm3
1331db78 movsd [rbp+0x0], xmm4
1331db7d cvttsd2si rbp, xmm15
1331db82 mov rbp, [r11+rbp*8]
1331db86 test byte [0x41196435], 0x80
1331db8e jnz 0x133100b1
1331db94 mov r11, [r9+r14]
1331db98 mov [rsp+0x10], r11
1331db9d test byte [0x41196435], 0x80
1331dba5 jnz 0x133100b5
1331dbab mov r13, r11
1331dbae shr r13, cl
1331dbb1 mov ecx, [rsp+0x30]
1331dbb5 xorps xmm4, xmm4
1331dbb8 cvtsi2sd xmm4, r13
1331dbbd test r13, r13
1331dbc0 jns 0x1331dbcb
1331dbc2 addsd xmm4, [0x4064ef00]
1331dbcb cvttsd2si r13d, xmm4
1331dbd0 xorps xmm15, xmm15
1331dbd4 cvtsi2sd xmm15, r13d
1331dbd9 ucomisd xmm4, xmm15
1331dbde jnz 0x133100b9
1331dbe4 jpe 0x133100b9
1331dbea cmp r13d, esi
1331dbed jb 0x133100b9
1331dbf3 movq rsi, xmm4
1331dbf8 mov r13d, esi
1331dbfb shr rsi, 0x20
1331dbff add esi, esi
1331dc01 xor r13d, esi
1331dc04 rol esi, 0x0e
1331dc07 sub r13d, esi
1331dc0a rol esi, 0x05
1331dc0d xor esi, r13d
1331dc10 rol r13d, 0x0d
1331dc14 sub esi, r13d
1331dc17 and esi, [r12+0x1c]
1331dc1c lea esi, [rsi+rsi*2]
1331dc1f shl esi, 0x03
1331dc22 add esi, [r12+0x14]
1331dc27 cmp dword [rsi+0xc], 0xfffeffff
1331dc2e jnb 0x1331dc39
1331dc30 ucomisd xmm4, [rsi+0x8]
1331dc35 jpe 0x1331dc39
1331dc37 jz 0x1331dc45
1331dc39 mov esi, [rsi+0x10]
1331dc3c test esi, esi
1331dc3e jnz 0x1331dc27
1331dc40 mov esi, 0x41196458
1331dc45 cmp dword [rsi+0x4], -0x0b
1331dc49 jnz 0x133100b9
1331dc4f mov esi, [rsi]
1331dc51 test byte [0x41196435], 0x80
1331dc59 jnz 0x133100b9
1331dc5f cmp word [rsi+0x6], +0x0c
1331dc64 jnz 0x133100bd ->40
1331dc6a mov rsi, [rsi+0x8]
1331dc6e add r11, rsi
1331dc71 test byte [0x41196435], 0x80
1331dc79 jnz 0x133100bd ->40
1331dc7f mov [rbp+0x0], r11
1331dc83 test byte [0x41196435], 0x80
1331dc8b jnz 0x133100c1 ->41
1331dc91 mov r13, r11
1331dc94 shr r13, cl
1331dc97 mov ecx, [rsp+0x8]
1331dc9b xorps xmm4, xmm4
1331dc9e cvtsi2sd xmm4, r13
1331dca3 test r13, r13
1331dca6 jns 0x1331dcb1
1331dca8 addsd xmm4, [0x4064ef00]
1331dcb1 cvttsd2si r13d, xmm4
1331dcb6 xorps xmm15, xmm15
1331dcba cvtsi2sd xmm15, r13d
1331dcbf ucomisd xmm4, xmm15
1331dcc4 jnz 0x133100c5 ->42
1331dcca jpe 0x133100c5 ->42
1331dcd0 cmp r13d, edi
1331dcd3 jb 0x133100c5 ->42
1331dcd9 movq r13, xmm4
1331dcde mov edi, r13d
1331dce1 shr r13, 0x20
1331dce5 add r13d, r13d
1331dce8 xor edi, r13d
1331dceb rol r13d, 0x0e
1331dcef sub edi, r13d
1331dcf2 rol r13d, 0x05
1331dcf6 xor r13d, edi
1331dcf9 rol edi, 0x0d
1331dcfc sub r13d, edi
1331dcff and r13d, [r10+0x1c]
1331dd03 lea r13d, [r13+r13*2+0x0]
1331dd08 shl r13d, 0x03
1331dd0c add r13d, [r10+0x14]
1331dd10 cmp dword [r13+0xc], 0xfffeffff
1331dd18 jnb 0x1331dd24
1331dd1a ucomisd xmm4, [r13+0x8]
1331dd20 jpe 0x1331dd24
1331dd22 jz 0x1331dd33
1331dd24 mov r13d, [r13+0x10]
1331dd28 test r13d, r13d
1331dd2b jnz 0x1331dd10
1331dd2d mov r13d, 0x41196458
1331dd33 xor edi, edi
1331dd35 cmp dword [r13+0x4], -0x0b
1331dd3a jnz 0x133100c5 ->42
1331dd40 mov r13d, [r13+0x0]
1331dd44 test byte [0x41196435], 0x80
1331dd4c jnz 0x133100c5 ->42
1331dd52 cmp word [r13+0x6], +0x0c
1331dd58 jnz 0x133100c9 ->43
1331dd5e mov r13, [r13+0x8]
1331dd62 add r13, r11
1331dd65 test byte [0x41196435], 0x80
1331dd6d jnz 0x133100c9 ->43
1331dd73 mov [rbp+0x8], r13
1331dd77 mov r14d, [r9+r14+0x8]
1331dd7c xorps xmm4, xmm4
1331dd7f cvtsi2sd xmm4, r14
1331dd84 mov [rbp+0x10], r14d
1331dd88 addsd xmm4, xmm8
1331dd8d mov dword [rbp+0x18], 0x1
1331dd94 mov [rbp+0x20], r8w
1331dd99 mov [rbp+0x22], di
1331dd9d mov [rbp+0x24], r15w
1331dda2 mov [rbp+0x28], rbx
1331dda6 cvttsd2si rbx, xmm4
1331ddab mov ebx, ebx
1331ddad mov [rbp+0x30], ebx
1331ddb0 test byte [0x41196435], 0x80
1331ddb8 jnz 0x133100cd ->44
1331ddbe cmp dword [rcx+0x4], 0xfffeffff
1331ddc5 jnb 0x133100d1 ->45
1331ddcb movsd xmm4, [rcx]
1331ddcf cvttsd2si rbx, xmm4
1331ddd4 mov [rdx+rbx*8+0x8], rbp
1331ddd9 addsd xmm4, xmm3
1331dddd movsd [rcx], xmm4
1331dde1 test byte [0x41196435], 0x80
1331dde9 jnz 0x133100d5 ->46
1331ddef addsd xmm7, xmm3
1331ddf3 movaps xmm4, xmm7
1331ddf6 mulsd xmm4, xmm2
1331ddfa roundsd xmm4, xmm4, 0x09
1331de00 mulsd xmm4, xmm1
1331de04 subsd xmm7, xmm4
1331de08 movsd [rax], xmm7
1331de0c ucomisd xmm6, xmm0
1331de10 jpe 0x1331d9c6 ->LOOP
1331de16 jnz 0x1331d9c6 ->LOOP
1331de1c jmp 0x133100d9 ->47
---- TRACE 7 stop -> loop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment