Skip to content

Instantly share code, notes, and snippets.

@rsms

rsms/vmexec.s Secret

Created March 3, 2022 03:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rsms/fb2902c3d9803d8073916a7cc1921c2f to your computer and use it in GitHub Desktop.
Save rsms/fb2902c3d9803d8073916a7cc1921c2f to your computer and use it in GitHub Desktop.
0000000000000080 <_vmexec>:
80: pushq %rbp
81: pushq %r15
83: pushq %r14
85: pushq %r13
87: pushq %r12
89: pushq %rbx
8a: pushq %rax
8b: movq %rcx, %r8
8e: movq %rdx, %r15
91: movq %rsi, %r13
94: xorl %r14d, %r14d
97: leaq (%rip), %r12 ## 0x9e <_vmexec+0x1e>
9e: movq %rcx, (%rsp)
a2: movl (%r15,%r14,4), %ecx
a6: incq %r14
a9: movq %rcx, %rsi
ac: shrq $9, %rsi
b0: movl %esi, %ebx
b2: andb $31, %bl
b5: movl %ecx, %edx
b7: shrl $14, %edx
ba: movl %edx, %eax
bc: andb $31, %al
be: movzbl %cl, %edi
c1: movl %ecx, %ebp
c3: shrl $8, %ebp
c6: andl $1, %ebp
c9: leaq (%rbp,%rdi,2), %rbp
ce: movzbl %al, %eax
d1: movzbl %bl, %ebx
d4: movl %esi, %edi
d6: jmpq *(%r12,%rbp,8)
da: jmp 0xa2 <_vmexec+0x22>
dc: movq (%r13,%rax,8), %rax
e1: jmp 0x7dd <_vmexec+0x75d>
e6: addl $4294836225, %edx ## imm = 0xFFFE0001
ec: movslq %edx, %rax
ef: jmp 0x7dd <_vmexec+0x75d>
f4: shrl $16, %ecx
f7: andl $248, %ecx
fd: movq (%r13,%rcx), %rcx
102: addq (%r13,%rax,8), %rcx
107: movq (%r8,%rcx), %rax
10b: jmp 0x7dd <_vmexec+0x75d>
110: shrl $19, %ecx
113: addq (%r13,%rax,8), %rcx
118: movq -4095(%r8,%rcx), %rax
120: jmp 0x7dd <_vmexec+0x75d>
125: shrl $16, %ecx
128: andl $248, %ecx
12e: movq (%r13,%rcx), %rcx
133: addq (%r13,%rax,8), %rcx
138: movl (%r8,%rcx), %eax
13c: jmp 0x7dd <_vmexec+0x75d>
141: shrl $19, %ecx
144: addq (%r13,%rax,8), %rcx
149: movl -4095(%r8,%rcx), %eax
151: jmp 0x7dd <_vmexec+0x75d>
156: shrl $16, %ecx
159: andl $248, %ecx
15f: movq (%r13,%rcx), %rcx
164: addq (%r13,%rax,8), %rcx
169: movzwl (%r8,%rcx), %eax
16e: jmp 0x7dd <_vmexec+0x75d>
173: shrl $19, %ecx
176: addq (%r13,%rax,8), %rcx
17b: movzwl -4095(%r8,%rcx), %eax
184: jmp 0x7dd <_vmexec+0x75d>
189: shrl $16, %ecx
18c: andl $248, %ecx
192: movq (%r13,%rcx), %rcx
197: addq (%r13,%rax,8), %rcx
19c: movzbl (%r8,%rcx), %eax
1a1: jmp 0x7dd <_vmexec+0x75d>
1a6: shrl $19, %ecx
1a9: addq (%r13,%rax,8), %rcx
1ae: movzbl -4095(%r8,%rcx), %eax
1b7: jmp 0x7dd <_vmexec+0x75d>
1bc: shrl $16, %ecx
1bf: andl $248, %ecx
1c5: movq (%r13,%rcx), %rcx
1ca: addq (%r13,%rax,8), %rcx
1cf: movq (%r13,%rbx,8), %rax
1d4: movq %rax, (%r8,%rcx)
1d8: jmp 0xa2 <_vmexec+0x22>
1dd: shrl $19, %ecx
1e0: addq (%r13,%rax,8), %rcx
1e5: movq (%r13,%rbx,8), %rax
1ea: movq %rax, -4095(%r8,%rcx)
1f2: jmp 0xa2 <_vmexec+0x22>
1f7: shrl $16, %ecx
1fa: andl $248, %ecx
200: movq (%r13,%rcx), %rcx
205: addq (%r13,%rax,8), %rcx
20a: movl (%r13,%rbx,8), %eax
20f: movl %eax, (%r8,%rcx)
213: jmp 0xa2 <_vmexec+0x22>
218: shrl $19, %ecx
21b: addq (%r13,%rax,8), %rcx
220: movl (%r13,%rbx,8), %eax
225: movl %eax, -4095(%r8,%rcx)
22d: jmp 0xa2 <_vmexec+0x22>
232: shrl $16, %ecx
235: andl $248, %ecx
23b: movq (%r13,%rcx), %rcx
240: addq (%r13,%rax,8), %rcx
245: movzwl (%r13,%rbx,8), %eax
24b: movw %ax, (%r8,%rcx)
250: jmp 0xa2 <_vmexec+0x22>
255: shrl $19, %ecx
258: addq (%r13,%rax,8), %rcx
25d: movzwl (%r13,%rbx,8), %eax
263: movw %ax, -4095(%r8,%rcx)
26c: jmp 0xa2 <_vmexec+0x22>
271: shrl $16, %ecx
274: andl $248, %ecx
27a: movq (%r13,%rcx), %rcx
27f: addq (%r13,%rax,8), %rcx
284: movb (%r13,%rbx,8), %al
289: movb %al, (%r8,%rcx)
28d: jmp 0xa2 <_vmexec+0x22>
292: shrl $19, %ecx
295: addq (%r13,%rax,8), %rcx
29a: movb (%r13,%rbx,8), %al
29f: movb %al, -4095(%r8,%rcx)
2a7: jmp 0xa2 <_vmexec+0x22>
2ac: movq (%r13,%rbx,8), %rax
2b1: movq 248(%r13), %rcx
2b8: leaq -8(%rcx), %rdx
2bc: movq %rdx, 248(%r13)
2c3: movq %rax, -8(%r8,%rcx)
2c8: jmp 0xa2 <_vmexec+0x22>
2cd: movq 248(%r13), %rax
2d4: leaq -8(%rax), %rcx
2d8: movq %rcx, 248(%r13)
2df: movq %rsi, -8(%r8,%rax)
2e4: jmp 0xa2 <_vmexec+0x22>
2e9: movq 248(%r13), %rax
2f0: leaq 8(%rax), %rcx
2f4: movq %rcx, 248(%r13)
2fb: movq (%r8,%rax), %rax
2ff: jmp 0x7dd <_vmexec+0x75d>
304: shrl $16, %ecx
307: andl $248, %ecx
30d: movq (%r13,%rcx), %rcx
312: jmp 0x317 <_vmexec+0x297>
314: shrl $19, %ecx
317: addq (%r13,%rax,8), %rcx
31c: movq %rcx, (%r13,%rbx,8)
321: jmp 0xa2 <_vmexec+0x22>
326: movq (%r13,%rax,8), %rax
32b: shrl $16, %ecx
32e: andl $248, %ecx
334: subq (%r13,%rcx), %rax
339: jmp 0x7dd <_vmexec+0x75d>
33e: movq (%r13,%rax,8), %rax
343: shrl $19, %ecx
346: subq %rcx, %rax
349: jmp 0x7dd <_vmexec+0x75d>
34e: shrl $16, %ecx
351: andl $248, %ecx
357: movq (%r13,%rcx), %rcx
35c: jmp 0x361 <_vmexec+0x2e1>
35e: shrl $19, %ecx
361: imulq (%r13,%rax,8), %rcx
367: movq %rcx, (%r13,%rbx,8)
36c: jmp 0xa2 <_vmexec+0x22>
371: movq (%r13,%rax,8), %rax
376: shrl $16, %ecx
379: andl $248, %ecx
37f: xorl %edx, %edx
381: divq (%r13,%rcx)
386: jmp 0x7dd <_vmexec+0x75d>
38b: movq (%r13,%rax,8), %rax
390: shrl $19, %ecx
393: xorl %edx, %edx
395: divq %rcx
398: jmp 0x7dd <_vmexec+0x75d>
39d: movq (%r13,%rax,8), %rax
3a2: shrl $16, %ecx
3a5: andl $248, %ecx
3ab: xorl %edx, %edx
3ad: divq (%r13,%rcx)
3b2: movq %rdx, (%r13,%rbx,8)
3b7: jmp 0xa2 <_vmexec+0x22>
3bc: movq (%r13,%rax,8), %rax
3c1: shrl $19, %ecx
3c4: xorl %edx, %edx
3c6: divq %rcx
3c9: movq %rdx, (%r13,%rbx,8)
3ce: jmp 0xa2 <_vmexec+0x22>
3d3: shrl $16, %ecx
3d6: andl $248, %ecx
3dc: movq (%r13,%rcx), %rcx
3e1: andq (%r13,%rax,8), %rcx
3e6: movq %rcx, (%r13,%rbx,8)
3eb: jmp 0xa2 <_vmexec+0x22>
3f0: shrl $19, %ecx
3f3: andl (%r13,%rax,8), %ecx
3f8: movq %rcx, (%r13,%rbx,8)
3fd: jmp 0xa2 <_vmexec+0x22>
402: shrl $16, %ecx
405: andl $248, %ecx
40b: movq (%r13,%rcx), %rcx
410: jmp 0x415 <_vmexec+0x395>
412: shrl $19, %ecx
415: orq (%r13,%rax,8), %rcx
41a: movq %rcx, (%r13,%rbx,8)
41f: jmp 0xa2 <_vmexec+0x22>
424: shrl $16, %ecx
427: andl $248, %ecx
42d: movq (%r13,%rcx), %rcx
432: jmp 0x437 <_vmexec+0x3b7>
434: shrl $19, %ecx
437: xorq (%r13,%rax,8), %rcx
43c: movq %rcx, (%r13,%rbx,8)
441: jmp 0xa2 <_vmexec+0x22>
446: movq (%r13,%rax,8), %rax
44b: shrl $16, %ecx
44e: andl $248, %ecx
454: movb (%r13,%rcx), %cl
459: jmp 0x463 <_vmexec+0x3e3>
45b: movq (%r13,%rax,8), %rax
460: shrl $19, %ecx
463: shlq %cl, %rax
466: jmp 0x7dd <_vmexec+0x75d>
46b: movq (%r13,%rax,8), %rax
470: shrl $16, %ecx
473: andl $248, %ecx
479: movb (%r13,%rcx), %cl
47e: jmp 0x6a7 <_vmexec+0x627>
483: movq (%r13,%rax,8), %rax
488: shrl $16, %ecx
48b: andl $248, %ecx
491: movb (%r13,%rcx), %cl
496: jmp 0x4a0 <_vmexec+0x420>
498: movq (%r13,%rax,8), %rax
49d: shrl $19, %ecx
4a0: shrq %cl, %rax
4a3: jmp 0x7dd <_vmexec+0x75d>
4a8: movq (%r13,%rax,8), %rax
4ad: shrl $16, %ecx
4b0: andl $248, %ecx
4b6: xorl %edx, %edx
4b8: cmpq (%r13,%rcx), %rax
4bd: jmp 0x4c9 <_vmexec+0x449>
4bf: shrl $19, %ecx
4c2: xorl %edx, %edx
4c4: cmpq %rcx, (%r13,%rax,8)
4c9: sete %dl
4cc: movq %rdx, (%r13,%rbx,8)
4d1: jmp 0xa2 <_vmexec+0x22>
4d6: movq (%r13,%rax,8), %rax
4db: shrl $16, %ecx
4de: andl $248, %ecx
4e4: xorl %edx, %edx
4e6: cmpq (%r13,%rcx), %rax
4eb: jmp 0x6e7 <_vmexec+0x667>
4f0: shrl $19, %ecx
4f3: addl $4294963201, %ecx ## imm = 0xFFFFF001
4f9: movslq %ecx, %rcx
4fc: xorl %edx, %edx
4fe: cmpq %rcx, (%r13,%rax,8)
503: jmp 0x709 <_vmexec+0x689>
508: movq (%r13,%rax,8), %rax
50d: shrl $16, %ecx
510: andl $248, %ecx
516: xorl %edx, %edx
518: cmpq (%r13,%rcx), %rax
51d: jmp 0x529 <_vmexec+0x4a9>
51f: shrl $19, %ecx
522: xorl %edx, %edx
524: cmpq %rcx, (%r13,%rax,8)
529: setbe %dl
52c: movq %rdx, (%r13,%rbx,8)
531: jmp 0xa2 <_vmexec+0x22>
536: movq (%r13,%rax,8), %rax
53b: shrl $16, %ecx
53e: andl $248, %ecx
544: xorl %edx, %edx
546: cmpq (%r13,%rcx), %rax
54b: jmp 0x560 <_vmexec+0x4e0>
54d: shrl $19, %ecx
550: addl $4294963201, %ecx ## imm = 0xFFFFF001
556: movslq %ecx, %rcx
559: xorl %edx, %edx
55b: cmpq %rcx, (%r13,%rax,8)
560: setle %dl
563: movq %rdx, (%r13,%rbx,8)
568: jmp 0xa2 <_vmexec+0x22>
56d: movq (%r13,%rax,8), %rax
572: shrl $16, %ecx
575: andl $248, %ecx
57b: xorl %edx, %edx
57d: cmpq (%r13,%rcx), %rax
582: jmp 0x58e <_vmexec+0x50e>
584: shrl $19, %ecx
587: xorl %edx, %edx
589: cmpq %rcx, (%r13,%rax,8)
58e: seta %dl
591: movq %rdx, (%r13,%rbx,8)
596: jmp 0xa2 <_vmexec+0x22>
59b: movq (%r13,%rax,8), %rax
5a0: shrl $16, %ecx
5a3: andl $248, %ecx
5a9: xorl %edx, %edx
5ab: cmpq (%r13,%rcx), %rax
5b0: jmp 0x5c5 <_vmexec+0x545>
5b2: shrl $19, %ecx
5b5: addl $4294963201, %ecx ## imm = 0xFFFFF001
5bb: movslq %ecx, %rcx
5be: xorl %edx, %edx
5c0: cmpq %rcx, (%r13,%rax,8)
5c5: setg %dl
5c8: movq %rdx, (%r13,%rbx,8)
5cd: jmp 0xa2 <_vmexec+0x22>
5d2: movq (%r13,%rax,8), %rax
5d7: shrl $16, %ecx
5da: andl $248, %ecx
5e0: xorl %edx, %edx
5e2: cmpq (%r13,%rcx), %rax
5e7: jmp 0x5f3 <_vmexec+0x573>
5e9: shrl $19, %ecx
5ec: xorl %edx, %edx
5ee: cmpq %rcx, (%r13,%rax,8)
5f3: setae %dl
5f6: movq %rdx, (%r13,%rbx,8)
5fb: jmp 0xa2 <_vmexec+0x22>
600: movq (%r13,%rax,8), %rax
605: shrl $16, %ecx
608: andl $248, %ecx
60e: xorl %edx, %edx
610: cmpq (%r13,%rcx), %rax
615: jmp 0x729 <_vmexec+0x6a9>
61a: cmpq $0, (%r13,%rbx,8)
620: jne 0x650 <_vmexec+0x5d0>
622: jmp 0xa2 <_vmexec+0x22>
627: movq (%r13,%rbx,8), %rax
62c: addl $4294836225, %edx ## imm = 0xFFFE0001
632: testq %rax, %rax
635: movslq %edx, %rcx
638: cmoveq %rax, %rcx
63c: addq %rcx, %r14
63f: jmp 0xa2 <_vmexec+0x22>
644: cmpq $0, (%r13,%rbx,8)
64a: jne 0xa2 <_vmexec+0x22>
650: addq (%r13,%rax,8), %r14
655: jmp 0xa2 <_vmexec+0x22>
65a: movq 248(%r13), %rax
661: leaq -8(%rax), %rcx
665: movq %rcx, 248(%r13)
66c: movq %r14, -8(%r8,%rax)
671: movq (%r13,%rbx,8), %r14
676: jmp 0xa2 <_vmexec+0x22>
67b: movq %rcx, %rdx
67e: shrq $24, %rdx
682: movl (%r13,%rdx,8), %edi
687: movq (%r13,%rax,8), %rsi
68c: addq %r8, %rsi
68f: shrl $19, %ecx
692: andl $31, %ecx
695: movq (%r13,%rcx,8), %rdx
69a: jmp 0x7d4 <_vmexec+0x754>
69f: movq (%r13,%rax,8), %rax
6a4: shrl $19, %ecx
6a7: sarq %cl, %rax
6aa: jmp 0x7dd <_vmexec+0x75d>
6af: movq (%r13,%rax,8), %rax
6b4: shrl $16, %ecx
6b7: andl $248, %ecx
6bd: xorl %edx, %edx
6bf: cmpq (%r13,%rcx), %rax
6c4: jmp 0x6d0 <_vmexec+0x650>
6c6: shrl $19, %ecx
6c9: xorl %edx, %edx
6cb: cmpq %rcx, (%r13,%rax,8)
6d0: setne %dl
6d3: movq %rdx, (%r13,%rbx,8)
6d8: jmp 0xa2 <_vmexec+0x22>
6dd: shrl $19, %ecx
6e0: xorl %edx, %edx
6e2: cmpq %rcx, (%r13,%rax,8)
6e7: setb %dl
6ea: movq %rdx, (%r13,%rbx,8)
6ef: jmp 0xa2 <_vmexec+0x22>
6f4: movq (%r13,%rax,8), %rax
6f9: shrl $16, %ecx
6fc: andl $248, %ecx
702: xorl %edx, %edx
704: cmpq (%r13,%rcx), %rax
709: setl %dl
70c: movq %rdx, (%r13,%rbx,8)
711: jmp 0xa2 <_vmexec+0x22>
716: shrl $19, %ecx
719: addl $4294963201, %ecx ## imm = 0xFFFFF001
71f: movslq %ecx, %rcx
722: xorl %edx, %edx
724: cmpq %rcx, (%r13,%rax,8)
729: setge %dl
72c: movq %rdx, (%r13,%rbx,8)
731: jmp 0xa2 <_vmexec+0x22>
736: addl $4294836225, %edx ## imm = 0xFFFE0001
73c: xorl %eax, %eax
73e: cmpq $0, (%r13,%rbx,8)
744: movslq %edx, %rcx
747: cmoveq %rcx, %rax
74b: addq %rax, %r14
74e: jmp 0xa2 <_vmexec+0x22>
753: movq (%r13,%rbx,8), %rdx
758: cmpq (%r13,%rax,8), %rdx
75d: jae 0xa2 <_vmexec+0x22>
763: shrl $16, %ecx
766: andl $248, %ecx
76c: addq (%r13,%rcx), %r14
771: jmp 0xa2 <_vmexec+0x22>
776: movq (%r13,%rbx,8), %rdx
77b: shrl $19, %ecx
77e: addl $4294963201, %ecx ## imm = 0xFFFFF001
784: xorl %esi, %esi
786: cmpq (%r13,%rax,8), %rdx
78b: movslq %ecx, %rax
78e: cmovbq %rax, %rsi
792: addq %rsi, %r14
795: jmp 0xa2 <_vmexec+0x22>
79a: movq 248(%r13), %rax
7a1: leaq -8(%rax), %rcx
7a5: movq %rcx, 248(%r13)
7ac: movq %r14, -8(%r8,%rax)
7b1: movq %rdi, %r14
7b4: jmp 0xa2 <_vmexec+0x22>
7b9: movl %ecx, %edi
7bb: shrl $24, %edi
7be: movq (%r13,%rax,8), %rsi
7c3: addq %r8, %rsi
7c6: shrl $16, %ecx
7c9: andl $248, %ecx
7cf: movq (%r13,%rcx), %rdx
7d4: callq 0x7d9 <_vmexec+0x759>
7d9: movq (%rsp), %r8
7dd: movq %rax, (%r13,%rbx,8)
7e2: jmp 0xa2 <_vmexec+0x22>
7e7: movq 248(%r13), %rax
7ee: leaq 8(%rax), %rcx
7f2: movq %rcx, 248(%r13)
7f9: movq (%r8,%rax), %r14
7fd: cmpq $-1, %r14
801: jne 0xa2 <_vmexec+0x22>
807: addq $8, %rsp
80b: popq %rbx
80c: popq %r12
80e: popq %r13
810: popq %r14
812: popq %r15
814: popq %rbp
815: retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment