Skip to content

Instantly share code, notes, and snippets.

@josephlr
Created January 3, 2020 12:19
Show Gist options
  • Save josephlr/0899daef3f2e0e49ada73cfd5c95b896 to your computer and use it in GitHub Desktop.
Save josephlr/0899daef3f2e0e49ada73cfd5c95b896 to your computer and use it in GitHub Desktop.
use_file::getrandom_inner
0000000000004740 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE>:
4740: 55 push %rbp
4741: 41 57 push %r15
4743: 41 56 push %r14
4745: 41 55 push %r13
4747: 41 54 push %r12
4749: 53 push %rbx
474a: 50 push %rax
474b: 48 89 f3 mov %rsi,%rbx
474e: 49 89 fe mov %rdi,%r14
4751: 4c 8b 3d c0 c8 02 00 mov 0x2c8c0(%rip),%r15 # 31018 <_ZN9getrandom8use_file10get_rng_fd2FD17h518273ee2e0b06b7E.llvm.924832125506360767>
4758: 49 83 ff ff cmp $0xffffffffffffffff,%r15
475c: 74 0a je 4768 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x28>
475e: 48 85 db test %rbx,%rbx
4761: 75 35 jne 4798 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x58>
4763: e9 a0 01 00 00 jmpq 4908 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1c8>
4768: 48 8d 3d e1 c8 02 00 lea 0x2c8e1(%rip),%rdi # 31050 <_ZN9getrandom8use_file10get_rng_fd5MUTEX17h92f7da9ce792eb83E.llvm.924832125506360767>
476f: ff 15 5b c8 02 00 callq *0x2c85b(%rip) # 30fd0 <pthread_mutex_lock@GLIBC_2.2.5>
4775: 4c 8b 3d 9c c8 02 00 mov 0x2c89c(%rip),%r15 # 31018 <_ZN9getrandom8use_file10get_rng_fd2FD17h518273ee2e0b06b7E.llvm.924832125506360767>
477c: 49 83 ff ff cmp $0xffffffffffffffff,%r15
4780: 74 75 je 47f7 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0xb7>
4782: 48 8d 3d c7 c8 02 00 lea 0x2c8c7(%rip),%rdi # 31050 <_ZN9getrandom8use_file10get_rng_fd5MUTEX17h92f7da9ce792eb83E.llvm.924832125506360767>
4789: ff 15 11 c6 02 00 callq *0x2c611(%rip) # 30da0 <pthread_mutex_unlock@GLIBC_2.2.5>
478f: 48 85 db test %rbx,%rbx
4792: 0f 84 70 01 00 00 je 4908 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1c8>
4798: 4c 8b 25 f1 c4 02 00 mov 0x2c4f1(%rip),%r12 # 30c90 <read@GLIBC_2.2.5>
479f: 4c 8b 2d ba c2 02 00 mov 0x2c2ba(%rip),%r13 # 30a60 <__errno_location@GLIBC_2.2.5>
47a6: eb 11 jmp 47b9 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x79>
47a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
47af: 00
47b0: 48 85 db test %rbx,%rbx
47b3: 0f 84 4f 01 00 00 je 4908 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1c8>
47b9: 44 89 ff mov %r15d,%edi
47bc: 4c 89 f6 mov %r14,%rsi
47bf: 48 89 da mov %rbx,%rdx
47c2: 41 ff d4 callq *%r12
47c5: 48 85 c0 test %rax,%rax
47c8: 78 16 js 47e0 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0xa0>
47ca: 48 89 d9 mov %rbx,%rcx
47cd: 48 29 c1 sub %rax,%rcx
47d0: 0f 82 7a 01 00 00 jb 4950 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x210>
47d6: 49 01 c6 add %rax,%r14
47d9: 48 89 cb mov %rcx,%rbx
47dc: eb d2 jmp 47b0 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x70>
47de: 66 90 xchg %ax,%ax
47e0: 41 ff d5 callq *%r13
47e3: 8b 28 mov (%rax),%ebp
47e5: 85 ed test %ebp,%ebp
47e7: 0f 8e bb 00 00 00 jle 48a8 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x168>
47ed: 83 fd 04 cmp $0x4,%ebp
47f0: 74 be je 47b0 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x70>
47f2: e9 13 01 00 00 jmpq 490a <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1ca>
47f7: 48 8d 3d 97 fa 01 00 lea 0x1fa97(%rip),%rdi # 24295 <anon.ae3a2b86305092322555bf77beead6fc.1.llvm.924832125506360767>
47fe: be 00 00 08 00 mov $0x80000,%esi
4803: 31 c0 xor %eax,%eax
4805: ff 15 75 c6 02 00 callq *0x2c675(%rip) # 30e80 <open64@GLIBC_2.2.5>
480b: 85 c0 test %eax,%eax
480d: 0f 88 08 01 00 00 js 491b <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1db>
4813: 41 89 c7 mov %eax,%r15d
4816: be 51 54 00 00 mov $0x5451,%esi
481b: 89 c7 mov %eax,%edi
481d: 31 c0 xor %eax,%eax
481f: ff 15 03 c4 02 00 callq *0x2c403(%rip) # 30c28 <ioctl@GLIBC_2.2.5>
4825: 44 89 3c 24 mov %r15d,(%rsp)
4829: c7 44 24 04 01 00 00 movl $0x1,0x4(%rsp)
4830: 00
4831: 48 89 e7 mov %rsp,%rdi
4834: be 01 00 00 00 mov $0x1,%esi
4839: ba ff ff ff ff mov $0xffffffff,%edx
483e: ff 15 2c c6 02 00 callq *0x2c62c(%rip) # 30e70 <poll@GLIBC_2.2.5>
4844: 83 f8 01 cmp $0x1,%eax
4847: 74 66 je 48af <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x16f>
4849: 41 89 c5 mov %eax,%r13d
484c: 4c 8b 25 0d c2 02 00 mov 0x2c20d(%rip),%r12 # 30a60 <__errno_location@GLIBC_2.2.5>
4853: eb 26 jmp 487b <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x13b>
4855: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
485c: 00 00 00
485f: 90 nop
4860: be 01 00 00 00 mov $0x1,%esi
4865: 48 89 e7 mov %rsp,%rdi
4868: ba ff ff ff ff mov $0xffffffff,%edx
486d: ff 15 fd c5 02 00 callq *0x2c5fd(%rip) # 30e70 <poll@GLIBC_2.2.5>
4873: 41 89 c5 mov %eax,%r13d
4876: 83 f8 01 cmp $0x1,%eax
4879: 74 34 je 48af <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x16f>
487b: 41 ff d4 callq *%r12
487e: 8b 28 mov (%rax),%ebp
4880: 89 e8 mov %ebp,%eax
4882: 85 ed test %ebp,%ebp
4884: 7f 05 jg 488b <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x14b>
4886: b8 01 00 00 80 mov $0x80000001,%eax
488b: 45 85 ed test %r13d,%r13d
488e: 0f 89 a8 00 00 00 jns 493c <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1fc>
4894: 85 c0 test %eax,%eax
4896: 0f 88 a0 00 00 00 js 493c <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1fc>
489c: 83 f8 0b cmp $0xb,%eax
489f: 74 bf je 4860 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x120>
48a1: 83 f8 04 cmp $0x4,%eax
48a4: 74 ba je 4860 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x120>
48a6: eb 09 jmp 48b1 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x171>
48a8: bd 01 00 00 80 mov $0x80000001,%ebp
48ad: eb 5b jmp 490a <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1ca>
48af: 31 ed xor %ebp,%ebp
48b1: 44 89 ff mov %r15d,%edi
48b4: ff 15 86 c3 02 00 callq *0x2c386(%rip) # 30c40 <close@GLIBC_2.2.5>
48ba: 85 ed test %ebp,%ebp
48bc: 75 6f jne 492d <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1ed>
48be: 48 8d 3d c3 f9 01 00 lea 0x1f9c3(%rip),%rdi # 24288 <anon.ae3a2b86305092322555bf77beead6fc.0.llvm.924832125506360767>
48c5: be 00 00 08 00 mov $0x80000,%esi
48ca: 31 c0 xor %eax,%eax
48cc: ff 15 ae c5 02 00 callq *0x2c5ae(%rip) # 30e80 <open64@GLIBC_2.2.5>
48d2: 85 c0 test %eax,%eax
48d4: 78 45 js 491b <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1db>
48d6: 41 89 c7 mov %eax,%r15d
48d9: be 51 54 00 00 mov $0x5451,%esi
48de: 89 c7 mov %eax,%edi
48e0: 31 c0 xor %eax,%eax
48e2: ff 15 40 c3 02 00 callq *0x2c340(%rip) # 30c28 <ioctl@GLIBC_2.2.5>
48e8: 49 63 c7 movslq %r15d,%rax
48eb: 48 89 05 26 c7 02 00 mov %rax,0x2c726(%rip) # 31018 <_ZN9getrandom8use_file10get_rng_fd2FD17h518273ee2e0b06b7E.llvm.924832125506360767>
48f2: 48 8d 3d 57 c7 02 00 lea 0x2c757(%rip),%rdi # 31050 <_ZN9getrandom8use_file10get_rng_fd5MUTEX17h92f7da9ce792eb83E.llvm.924832125506360767>
48f9: ff 15 a1 c4 02 00 callq *0x2c4a1(%rip) # 30da0 <pthread_mutex_unlock@GLIBC_2.2.5>
48ff: 48 85 db test %rbx,%rbx
4902: 0f 85 90 fe ff ff jne 4798 <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x58>
4908: 31 ed xor %ebp,%ebp
490a: 89 e8 mov %ebp,%eax
490c: 48 83 c4 08 add $0x8,%rsp
4910: 5b pop %rbx
4911: 41 5c pop %r12
4913: 41 5d pop %r13
4915: 41 5e pop %r14
4917: 41 5f pop %r15
4919: 5d pop %rbp
491a: c3 retq
491b: ff 15 3f c1 02 00 callq *0x2c13f(%rip) # 30a60 <__errno_location@GLIBC_2.2.5>
4921: 8b 00 mov (%rax),%eax
4923: 85 c0 test %eax,%eax
4925: bd 01 00 00 80 mov $0x80000001,%ebp
492a: 0f 4f e8 cmovg %eax,%ebp
492d: 48 8d 3d 1c c7 02 00 lea 0x2c71c(%rip),%rdi # 31050 <_ZN9getrandom8use_file10get_rng_fd5MUTEX17h92f7da9ce792eb83E.llvm.924832125506360767>
4934: ff 15 66 c4 02 00 callq *0x2c466(%rip) # 30da0 <pthread_mutex_unlock@GLIBC_2.2.5>
493a: eb ce jmp 490a <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1ca>
493c: 89 c5 mov %eax,%ebp
493e: 44 89 ff mov %r15d,%edi
4941: ff 15 f9 c2 02 00 callq *0x2c2f9(%rip) # 30c40 <close@GLIBC_2.2.5>
4947: 85 ed test %ebp,%ebp
4949: 75 e2 jne 492d <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x1ed>
494b: e9 6e ff ff ff jmpq 48be <_ZN9getrandom8use_file15getrandom_inner17h89c10d768f32f0baE+0x17e>
4950: 48 89 c7 mov %rax,%rdi
4953: 48 89 de mov %rbx,%rsi
4956: ff 15 64 c4 02 00 callq *0x2c464(%rip) # 30dc0 <_GLOBAL_OFFSET_TABLE_+0x418>
495c: 0f 0b ud2
495e: 66 90 xchg %ax,%ax
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment