/usr/local/bin/htop: file format elf64-x86-64-freebsd Disassembly of section .text: 0000000000213a80 <_start>: void _start(char **, void (*)(void)); /* The entry function. */ void _start(char **ap, void (*cleanup)(void)) { 213a80: 55 push %rbp 213a81: 48 89 e5 mov %rsp,%rbp 213a84: 41 57 push %r15 213a86: 41 56 push %r14 213a88: 41 55 push %r13 213a8a: 41 54 push %r12 213a8c: 53 push %rbx 213a8d: 50 push %rax 213a8e: 49 89 fe mov %rdi,%r14 int argc; char **argv; char **env; argc = *(long *)(void *)ap; 213a91: 4c 8b 3f mov (%rdi),%r15 argv = ap + 1; env = ap + 2 + argc; 213a94: 49 63 c7 movslq %r15d,%rax 213a97: 48 8d 1c c7 lea (%rdi,%rax,8),%rbx 213a9b: 48 83 c3 10 add $0x10,%rbx static inline void handle_argv(int argc, char *argv[], char **env) { const char *s; if (environ == NULL) 213a9f: 48 83 3d a9 e2 02 00 00 cmpq $0x0,0x2e2a9(%rip) # 241d50 213aa7: 75 07 jne 213ab0 <_start+0x30> environ = env; 213aa9: 48 89 1d a0 e2 02 00 mov %rbx,0x2e2a0(%rip) # 241d50 213ab0: 49 83 c6 08 add $0x8,%r14 if (argc > 0 && argv[0] != NULL) { 213ab4: 45 85 ff test %r15d,%r15d 213ab7: 7e 2f jle 213ae8 <_start+0x68> 213ab9: 49 8b 06 mov (%r14),%rax 213abc: 48 85 c0 test %rax,%rax 213abf: 74 27 je 213ae8 <_start+0x68> 213ac1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 213acb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 213ad0: 48 89 05 e9 d1 02 00 mov %rax,0x2d1e9(%rip) # 240cc0 <__progname> 213ad7: 48 83 c0 01 add $0x1,%rax __progname = argv[0]; for (s = __progname; *s != '\0'; s++) { 213adb: 0f b6 48 ff movzbl -0x1(%rax),%ecx 213adf: 80 f9 2f cmp $0x2f,%cl 213ae2: 74 ec je 213ad0 <_start+0x50> 213ae4: 84 c9 test %cl,%cl 213ae6: 75 ef jne 213ad7 <_start+0x57> handle_argv(argc, argv, env); if (&_DYNAMIC != NULL) { 213ae8: b8 c0 fa 23 00 mov $0x23fac0,%eax 213aed: 48 85 c0 test %rax,%rax 213af0: 74 0a je 213afc <_start+0x7c> atexit(cleanup); 213af2: 48 89 f7 mov %rsi,%rdi 213af5: e8 f6 a5 02 00 call 23e0f0 213afa: eb 68 jmp 213b64 <_start+0xe4> 213afc: 48 89 5d d0 mov %rbx,-0x30(%rbp) for (r = &__rela_iplt_start[0]; r < &__rela_iplt_end[0]; r++) 213b00: 41 bd 00 00 20 00 mov $0x200000,%r13d 213b06: eb 0c jmp 213b14 <_start+0x94> 213b08: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 213b10: 49 83 c5 18 add $0x18,%r13 213b14: 49 81 fd 00 00 20 00 cmp $0x200000,%r13 213b1b: 73 3e jae 213b5b <_start+0xdb> } static __inline void do_cpuid(u_int ax, u_int *p) { __asm __volatile("cpuid" 213b1d: b8 01 00 00 00 mov $0x1,%eax 213b22: 0f a2 cpuid 213b24: 89 d7 mov %edx,%edi 213b26: 89 ce mov %ecx,%esi 213b28: 31 c0 xor %eax,%eax 213b2a: 0f a2 cpuid 213b2c: bb 00 00 00 00 mov $0x0,%ebx 213b31: b9 00 00 00 00 mov $0x0,%ecx do_cpuid(1, p); cpu_feature = p[3]; cpu_feature2 = p[2]; do_cpuid(0, p); if (p[0] >= 7) { 213b36: 83 f8 07 cmp $0x7,%eax 213b39: 72 09 jb 213b44 <_start+0xc4> } static __inline void cpuid_count(u_int ax, u_int cx, u_int *p) { __asm __volatile("cpuid" 213b3b: 31 c9 xor %ecx,%ecx 213b3d: b8 07 00 00 00 mov $0x7,%eax 213b42: 0f a2 cpuid } else { cpu_stdext_feature = 0; cpu_stdext_feature2 = 0; } switch (ELF_R_TYPE(r->r_info)) { 213b44: 41 83 7d 08 25 cmpl $0x25,0x8(%r13) 213b49: 75 c5 jne 213b10 <_start+0x90> case R_X86_64_IRELATIVE: ptr = (Elf_Addr *)r->r_addend; where = (Elf_Addr *)r->r_offset; 213b4b: 4d 8b 65 00 mov 0x0(%r13),%r12 target = ((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, 213b4f: 89 da mov %ebx,%edx 213b51: 41 ff 55 10 call *0x10(%r13) uint32_t))ptr)(cpu_feature, cpu_feature2, cpu_stdext_feature, cpu_stdext_feature2); *where = target; 213b55: 49 89 04 24 mov %rax,(%r12) 213b59: eb b5 jmp 213b10 <_start+0x90> } else { process_irelocs(); _init_tls(); 213b5b: e8 a0 a5 02 00 call 23e100 <_init_tls@plt> 213b60: 48 8b 5d d0 mov -0x30(%rbp),%rbx atexit(_mcleanup); monstartup(&eprol, &etext); __asm__("eprol:"); #endif handle_static_init(argc, argv, env); 213b64: 44 89 ff mov %r15d,%edi 213b67: 4c 89 f6 mov %r14,%rsi 213b6a: 48 89 da mov %rbx,%rdx 213b6d: e8 1e 00 00 00 call 213b90 exit(main(argc, argv, env)); 213b72: 44 89 ff mov %r15d,%edi 213b75: 4c 89 f6 mov %r14,%rsi 213b78: 48 89 da mov %rbx,%rdx 213b7b: e8 f0 01 00 00 call 213d70
213b80: 89 c7 mov %eax,%edi 213b82: e8 89 a5 02 00 call 23e110 213b87: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000213b90 : { 213b90: 55 push %rbp 213b91: 48 89 e5 mov %rsp,%rbp 213b94: 41 57 push %r15 213b96: 41 56 push %r14 213b98: 41 55 push %r13 213b9a: 41 54 push %r12 213b9c: 53 push %rbx 213b9d: 50 push %rax if (&_DYNAMIC != NULL) 213b9e: b8 c0 fa 23 00 mov $0x23fac0,%eax 213ba3: 48 85 c0 test %rax,%rax 213ba6: 0f 85 e8 00 00 00 jne 213c94 213bac: 49 89 d6 mov %rdx,%r14 213baf: 49 89 f7 mov %rsi,%r15 213bb2: 41 89 fc mov %edi,%r12d atexit(finalizer); 213bb5: bf b0 3c 21 00 mov $0x213cb0,%edi 213bba: e8 31 a5 02 00 call 23e0f0 for (n = 0; n < array_size; n++) { 213bbf: b8 80 3a 21 00 mov $0x213a80,%eax 213bc4: b9 80 3a 21 00 mov $0x213a80,%ecx 213bc9: 48 29 c1 sub %rax,%rcx 213bcc: 48 8d 41 07 lea 0x7(%rcx),%rax 213bd0: 48 85 c9 test %rcx,%rcx 213bd3: 48 89 ca mov %rcx,%rdx 213bd6: 48 0f 48 d0 cmovs %rax,%rdx 213bda: 48 c1 fa 03 sar $0x3,%rdx 213bde: 74 44 je 213c24 213be0: 48 85 c9 test %rcx,%rcx 213be3: 48 0f 49 c1 cmovns %rcx,%rax 213be7: 48 c1 f8 03 sar $0x3,%rax 213beb: 48 83 f8 02 cmp $0x2,%rax 213bef: 41 bd 01 00 00 00 mov $0x1,%r13d 213bf5: 4c 0f 43 e8 cmovae %rax,%r13 213bf9: 31 db xor %ebx,%ebx 213bfb: eb 0c jmp 213c09 213bfd: 0f 1f 00 nopl (%rax) 213c00: 48 83 c3 01 add $0x1,%rbx 213c04: 49 39 dd cmp %rbx,%r13 213c07: 74 1b je 213c24 fn = __preinit_array_start[n]; 213c09: 48 8b 04 dd 80 3a 21 00 mov 0x213a80(,%rbx,8),%rax if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) 213c11: 48 83 f8 02 cmp $0x2,%rax 213c15: 72 e9 jb 213c00 fn(argc, argv, env); 213c17: 44 89 e7 mov %r12d,%edi 213c1a: 4c 89 fe mov %r15,%rsi 213c1d: 4c 89 f2 mov %r14,%rdx 213c20: ff d0 call *%rax 213c22: eb dc jmp 213c00 _init(); 213c24: e8 93 a4 02 00 call 23e0bc <_init> for (n = 0; n < array_size; n++) { 213c29: b8 b8 fa 23 00 mov $0x23fab8,%eax 213c2e: b9 c0 fa 23 00 mov $0x23fac0,%ecx 213c33: 48 29 c1 sub %rax,%rcx 213c36: 48 8d 41 07 lea 0x7(%rcx),%rax 213c3a: 48 85 c9 test %rcx,%rcx 213c3d: 48 89 ca mov %rcx,%rdx 213c40: 48 0f 48 d0 cmovs %rax,%rdx 213c44: 48 c1 fa 03 sar $0x3,%rdx 213c48: 74 4a je 213c94 213c4a: 48 85 c9 test %rcx,%rcx 213c4d: 48 0f 49 c1 cmovns %rcx,%rax 213c51: 48 c1 f8 03 sar $0x3,%rax 213c55: 48 83 f8 02 cmp $0x2,%rax 213c59: 41 bd 01 00 00 00 mov $0x1,%r13d 213c5f: 4c 0f 43 e8 cmovae %rax,%r13 213c63: 31 db xor %ebx,%ebx 213c65: eb 12 jmp 213c79 213c67: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 213c70: 48 83 c3 01 add $0x1,%rbx 213c74: 49 39 dd cmp %rbx,%r13 213c77: 74 1b je 213c94 fn = __init_array_start[n]; 213c79: 48 8b 04 dd b8 fa 23 00 mov 0x23fab8(,%rbx,8),%rax if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) 213c81: 48 83 f8 02 cmp $0x2,%rax 213c85: 72 e9 jb 213c70 fn(argc, argv, env); 213c87: 44 89 e7 mov %r12d,%edi 213c8a: 4c 89 fe mov %r15,%rsi 213c8d: 4c 89 f2 mov %r14,%rdx 213c90: ff d0 call *%rax 213c92: eb dc jmp 213c70 } 213c94: 48 83 c4 08 add $0x8,%rsp 213c98: 5b pop %rbx 213c99: 41 5c pop %r12 213c9b: 41 5d pop %r13 213c9d: 41 5e pop %r14 213c9f: 41 5f pop %r15 213ca1: 5d pop %rbp 213ca2: c3 ret 213ca3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 213cad: 0f 1f 00 nopl (%rax) 0000000000213cb0 : { 213cb0: 55 push %rbp 213cb1: 48 89 e5 mov %rsp,%rbp 213cb4: 53 push %rbx 213cb5: 50 push %rax for (n = array_size; n > 0; n--) { 213cb6: b9 80 3a 21 00 mov $0x213a80,%ecx 213cbb: b8 80 3a 21 00 mov $0x213a80,%eax 213cc0: 48 29 c8 sub %rcx,%rax 213cc3: 48 8d 58 07 lea 0x7(%rax),%rbx 213cc7: 48 85 c0 test %rax,%rax 213cca: 48 89 c1 mov %rax,%rcx 213ccd: 48 0f 48 cb cmovs %rbx,%rcx 213cd1: 48 c1 f9 03 sar $0x3,%rcx 213cd5: 75 0b jne 213ce2 _fini(); 213cd7: 48 83 c4 08 add $0x8,%rsp 213cdb: 5b pop %rbx 213cdc: 5d pop %rbp 213cdd: e9 ea a3 02 00 jmp 23e0cc <_fini> 213ce2: 48 85 c0 test %rax,%rax 213ce5: 48 0f 49 d8 cmovns %rax,%rbx 213ce9: 48 c1 fb 03 sar $0x3,%rbx 213ced: eb 06 jmp 213cf5 213cef: 90 nop for (n = array_size; n > 0; n--) { 213cf0: 48 85 db test %rbx,%rbx 213cf3: 74 e2 je 213cd7 fn = __fini_array_start[n - 1]; 213cf5: 48 8b 04 dd 78 3a 21 00 mov 0x213a78(,%rbx,8),%rax 213cfd: 48 83 c3 ff add $0xffffffffffffffff,%rbx if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) 213d01: 48 83 f8 02 cmp $0x2,%rax 213d05: 72 e9 jb 213cf0 (fn)(); 213d07: ff d0 call *%rax 213d09: eb e5 jmp 213cf0 213d0b: cc int3 213d0c: cc int3 213d0d: cc int3 213d0e: cc int3 213d0f: cc int3 0000000000213d10 <__do_global_dtors_aux>: (crt_func)-1 }; static void __do_global_dtors_aux(void) { 213d10: 55 push %rbp 213d11: 48 89 e5 mov %rsp,%rbp 213d14: 53 push %rbx 213d15: 50 push %rax 213d16: bb a8 fa 23 00 mov $0x23faa8,%ebx 213d1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) #ifdef SHARED run_cxa_finalize(); #endif for (n = 1;; n++) { fn = __DTOR_LIST__[n]; 213d20: 48 8b 03 mov (%rbx),%rax if (fn == (crt_func)0 || fn == (crt_func)-1) 213d23: 48 8d 48 01 lea 0x1(%rax),%rcx 213d27: 48 83 f9 02 cmp $0x2,%rcx 213d2b: 72 08 jb 213d35 <__do_global_dtors_aux+0x25> break; fn(); 213d2d: ff d0 call *%rax for (n = 1;; n++) { 213d2f: 48 83 c3 08 add $0x8,%rbx 213d33: eb eb jmp 213d20 <__do_global_dtors_aux+0x10> } } 213d35: 48 83 c4 08 add $0x8,%rsp 213d39: 5b pop %rbx 213d3a: 5d pop %rbp 213d3b: c3 ret 213d3c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000213d40 : #endif static void register_classes(void) { if (_Jv_RegisterClasses != NULL && __JCR_LIST__[0] != 0) 213d40: b8 00 00 00 00 mov $0x0,%eax 213d45: 48 85 c0 test %rax,%rax 213d48: 74 19 je 213d63 213d4a: 55 push %rbp 213d4b: 48 89 e5 mov %rsp,%rbp 213d4e: 48 83 3d 5a bd 02 00 00 cmpq $0x0,0x2bd5a(%rip) # 23fab0 <__JCR_END__> 213d56: 5d pop %rbp 213d57: 74 0a je 213d63 _Jv_RegisterClasses(__JCR_LIST__); 213d59: bf b0 fa 23 00 mov $0x23fab0,%edi 213d5e: e9 bd a3 02 00 jmp 23e120 <_Jv_RegisterClasses@plt> } 213d63: c3 ret 213d64: cc int3 213d65: cc int3 213d66: cc int3 213d67: cc int3 213d68: cc int3 213d69: cc int3 213d6a: cc int3 213d6b: cc int3 213d6c: cc int3 213d6d: cc int3 213d6e: cc int3 213d6f: cc int3 0000000000213d70
: #include "config.h" // IWYU pragma: keep #include "CommandLine.h" int main(int argc, char** argv) { 213d70: 55 push %rbp 213d71: 48 89 e5 mov %rsp,%rbp 213d74: 48 83 ec 10 sub $0x10,%rsp 213d78: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 213d7f: 89 7d f8 mov %edi,-0x8(%rbp) 213d82: 48 89 75 f0 mov %rsi,-0x10(%rbp) return CommandLine_run(PACKAGE, argc, argv); 213d86: 8b 75 f8 mov -0x8(%rbp),%esi 213d89: 48 8b 55 f0 mov -0x10(%rbp),%rdx 213d8d: 48 bf a9 50 20 00 00 00 00 00 movabs $0x2050a9,%rdi 213d97: e8 b4 53 00 00 call 219150 213d9c: 48 83 c4 10 add $0x10,%rsp 213da0: 5d pop %rbp 213da1: c3 ret 213da2: cc int3 213da3: cc int3 213da4: cc int3 213da5: cc int3 213da6: cc int3 213da7: cc int3 213da8: cc int3 213da9: cc int3 213daa: cc int3 213dab: cc int3 213dac: cc int3 213dad: cc int3 213dae: cc int3 213daf: cc int3 0000000000213db0 : #include "Affinity.h" #include "AffinityPanel.h" #endif Object* Action_pickFromVector(State* st, Panel* list, int x, bool followProcess) { 213db0: 55 push %rbp 213db1: 48 89 e5 mov %rsp,%rbp 213db4: 48 81 ec 80 00 00 00 sub $0x80,%rsp 213dbb: 88 c8 mov %cl,%al 213dbd: 48 8b 0d 6c ea 02 00 mov 0x2ea6c(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 213dc4: 48 89 4d f8 mov %rcx,-0x8(%rbp) 213dc8: 48 89 7d d8 mov %rdi,-0x28(%rbp) 213dcc: 48 89 75 d0 mov %rsi,-0x30(%rbp) 213dd0: 89 55 cc mov %edx,-0x34(%rbp) 213dd3: 24 01 and $0x1,%al 213dd5: 88 45 cb mov %al,-0x35(%rbp) MainPanel* mainPanel = st->mainPanel; 213dd8: 48 8b 45 d8 mov -0x28(%rbp),%rax 213ddc: 48 8b 40 18 mov 0x18(%rax),%rax 213de0: 48 89 45 c0 mov %rax,-0x40(%rbp) Header* header = st->header; 213de4: 48 8b 45 d8 mov -0x28(%rbp),%rax 213de8: 48 8b 40 20 mov 0x20(%rax),%rax 213dec: 48 89 45 b8 mov %rax,-0x48(%rbp) int y = ((Panel*)mainPanel)->y; 213df0: 48 8b 45 c0 mov -0x40(%rbp),%rax 213df4: 8b 40 0c mov 0xc(%rax),%eax 213df7: 89 45 b4 mov %eax,-0x4c(%rbp) ScreenManager* scr = ScreenManager_new(header, st->settings, st, false); 213dfa: 48 8b 7d b8 mov -0x48(%rbp),%rdi 213dfe: 48 8b 45 d8 mov -0x28(%rbp),%rax 213e02: 48 8b 30 mov (%rax),%rsi 213e05: 48 8b 55 d8 mov -0x28(%rbp),%rdx 213e09: 31 c9 xor %ecx,%ecx 213e0b: e8 60 ec 01 00 call 232a70 213e10: 48 89 45 a8 mov %rax,-0x58(%rbp) scr->allowFocusChange = false; 213e14: 48 8b 45 a8 mov -0x58(%rbp),%rax 213e18: c6 40 38 00 movb $0x0,0x38(%rax) ScreenManager_add(scr, list, x); 213e1c: 48 8b 7d a8 mov -0x58(%rbp),%rdi 213e20: 48 8b 75 d0 mov -0x30(%rbp),%rsi 213e24: 8b 55 cc mov -0x34(%rbp),%edx 213e27: e8 54 ed 01 00 call 232b80 ScreenManager_add(scr, (Panel*)mainPanel, -1); 213e2c: 48 8b 7d a8 mov -0x58(%rbp),%rdi 213e30: 48 8b 75 c0 mov -0x40(%rbp),%rsi 213e34: ba ff ff ff ff mov $0xffffffff,%edx 213e39: e8 42 ed 01 00 call 232b80 Panel* panelFocus; int ch; bool unfollow = false; 213e3e: c6 45 a7 00 movb $0x0,-0x59(%rbp) int pid = followProcess ? MainPanel_selectedPid(mainPanel) : -1; 213e42: f6 45 cb 01 testb $0x1,-0x35(%rbp) 213e46: 0f 84 11 00 00 00 je 213e5d 213e4c: 48 8b 7d c0 mov -0x40(%rbp),%rdi 213e50: e8 bb e5 00 00 call 222410 213e55: 89 45 94 mov %eax,-0x6c(%rbp) 213e58: e9 0d 00 00 00 jmp 213e6a 213e5d: b8 ff ff ff ff mov $0xffffffff,%eax 213e62: 89 45 94 mov %eax,-0x6c(%rbp) 213e65: e9 00 00 00 00 jmp 213e6a 213e6a: 8b 45 94 mov -0x6c(%rbp),%eax 213e6d: 89 45 a0 mov %eax,-0x60(%rbp) if (followProcess && header->pl->following == -1) { 213e70: f6 45 cb 01 testb $0x1,-0x35(%rbp) 213e74: 0f 84 24 00 00 00 je 213e9e 213e7a: 48 8b 45 b8 mov -0x48(%rbp),%rax 213e7e: 48 8b 40 10 mov 0x10(%rax),%rax 213e82: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 213e86: 0f 85 12 00 00 00 jne 213e9e header->pl->following = pid; 213e8c: 8b 4d a0 mov -0x60(%rbp),%ecx 213e8f: 48 8b 45 b8 mov -0x48(%rbp),%rax 213e93: 48 8b 40 10 mov 0x10(%rax),%rax 213e97: 89 48 70 mov %ecx,0x70(%rax) unfollow = true; 213e9a: c6 45 a7 01 movb $0x1,-0x59(%rbp) } ScreenManager_run(scr, &panelFocus, &ch); 213e9e: 48 8b 7d a8 mov -0x58(%rbp),%rdi 213ea2: 48 8d 75 f0 lea -0x10(%rbp),%rsi 213ea6: 48 8d 55 ec lea -0x14(%rbp),%rdx 213eaa: e8 e1 ef 01 00 call 232e90 if (unfollow) { 213eaf: f6 45 a7 01 testb $0x1,-0x59(%rbp) 213eb3: 0f 84 0f 00 00 00 je 213ec8 header->pl->following = -1; 213eb9: 48 8b 45 b8 mov -0x48(%rbp),%rax 213ebd: 48 8b 40 10 mov 0x10(%rax),%rax 213ec1: c7 40 70 ff ff ff ff movl $0xffffffff,0x70(%rax) } ScreenManager_delete(scr); 213ec8: 48 8b 7d a8 mov -0x58(%rbp),%rdi 213ecc: e8 5f ec 01 00 call 232b30 Panel_move((Panel*)mainPanel, 0, y); 213ed1: 48 8b 7d c0 mov -0x40(%rbp),%rdi 213ed5: 8b 55 b4 mov -0x4c(%rbp),%edx 213ed8: 31 f6 xor %esi,%esi 213eda: e8 51 3f 01 00 call 227e30 Panel_resize((Panel*)mainPanel, COLS, LINES - y - 1); 213edf: 48 8b 7d c0 mov -0x40(%rbp),%rdi 213ee3: 8b 34 25 70 28 24 00 mov 0x242870,%esi 213eea: 8b 14 25 80 28 24 00 mov 0x242880,%edx 213ef1: 2b 55 b4 sub -0x4c(%rbp),%edx 213ef4: 83 ea 01 sub $0x1,%edx 213ef7: e8 64 3f 01 00 call 227e60 if (panelFocus == list && ch == 13) { 213efc: 48 8b 45 f0 mov -0x10(%rbp),%rax 213f00: 48 3b 45 d0 cmp -0x30(%rbp),%rax 213f04: 0f 85 6f 00 00 00 jne 213f79 213f0a: 83 7d ec 0d cmpl $0xd,-0x14(%rbp) 213f0e: 0f 85 65 00 00 00 jne 213f79 if (followProcess) { 213f14: f6 45 cb 01 testb $0x1,-0x35(%rbp) 213f18: 0f 84 44 00 00 00 je 213f62 const Process* selected = (const Process*)Panel_getSelected((Panel*)mainPanel); 213f1e: 48 8b 7d c0 mov -0x40(%rbp),%rdi 213f22: e8 49 41 01 00 call 228070 213f27: 48 89 45 98 mov %rax,-0x68(%rbp) if (selected && selected->pid == pid) 213f2b: 48 83 7d 98 00 cmpq $0x0,-0x68(%rbp) 213f30: 0f 84 22 00 00 00 je 213f58 213f36: 48 8b 45 98 mov -0x68(%rbp),%rax 213f3a: 8b 40 18 mov 0x18(%rax),%eax 213f3d: 3b 45 a0 cmp -0x60(%rbp),%eax 213f40: 0f 85 12 00 00 00 jne 213f58 return Panel_getSelected(list); 213f46: 48 8b 7d d0 mov -0x30(%rbp),%rdi 213f4a: e8 21 41 01 00 call 228070 213f4f: 48 89 45 e0 mov %rax,-0x20(%rbp) 213f53: e9 29 00 00 00 jmp 213f81 beep(); 213f58: e8 d3 a1 02 00 call 23e130 } else { 213f5d: e9 12 00 00 00 jmp 213f74 return Panel_getSelected(list); 213f62: 48 8b 7d d0 mov -0x30(%rbp),%rdi 213f66: e8 05 41 01 00 call 228070 213f6b: 48 89 45 e0 mov %rax,-0x20(%rbp) 213f6f: e9 0d 00 00 00 jmp 213f81 } } 213f74: e9 00 00 00 00 jmp 213f79 return NULL; 213f79: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) } 213f81: 48 8b 45 e0 mov -0x20(%rbp),%rax 213f85: 48 89 45 88 mov %rax,-0x78(%rbp) 213f89: 48 8b 05 a0 e8 02 00 mov 0x2e8a0(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 213f90: 48 8b 4d f8 mov -0x8(%rbp),%rcx 213f94: 48 39 c8 cmp %rcx,%rax 213f97: 0f 85 0d 00 00 00 jne 213faa 213f9d: 48 8b 45 88 mov -0x78(%rbp),%rax 213fa1: 48 81 c4 80 00 00 00 add $0x80,%rsp 213fa8: 5d pop %rbp 213fa9: c3 ret 213faa: e8 91 a1 02 00 call 23e140 <__stack_chk_fail@plt> 213faf: 90 nop 0000000000213fb0 : const char* user = userCast; Panel* panel = panelCast; Panel_add(panel, (Object*) ListItem_new(user, key)); } bool Action_setUserOnly(const char* userName, uid_t* userId) { 213fb0: 55 push %rbp 213fb1: 48 89 e5 mov %rsp,%rbp 213fb4: 48 83 ec 20 sub $0x20,%rsp 213fb8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 213fbc: 48 89 75 e8 mov %rsi,-0x18(%rbp) const struct passwd* user = getpwnam(userName); 213fc0: 48 8b 7d f0 mov -0x10(%rbp),%rdi 213fc4: e8 87 a1 02 00 call 23e150 213fc9: 48 89 45 e0 mov %rax,-0x20(%rbp) if (user) { 213fcd: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 213fd2: 0f 84 16 00 00 00 je 213fee *userId = user->pw_uid; 213fd8: 48 8b 45 e0 mov -0x20(%rbp),%rax 213fdc: 8b 48 10 mov 0x10(%rax),%ecx 213fdf: 48 8b 45 e8 mov -0x18(%rbp),%rax 213fe3: 89 08 mov %ecx,(%rax) return true; 213fe5: c6 45 ff 01 movb $0x1,-0x1(%rbp) 213fe9: e9 0e 00 00 00 jmp 213ffc } *userId = (uid_t)-1; 213fee: 48 8b 45 e8 mov -0x18(%rbp),%rax 213ff2: c7 00 ff ff ff ff movl $0xffffffff,(%rax) return false; 213ff8: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 213ffc: 8a 45 ff mov -0x1(%rbp),%al 213fff: 24 01 and $0x1,%al 214001: 0f b6 c0 movzbl %al,%eax 214004: 48 83 c4 20 add $0x20,%rsp 214008: 5d pop %rbp 214009: c3 ret 21400a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000214010 : } } return false; } Htop_Reaction Action_setSortKey(Settings* settings, ProcessField sortKey) { 214010: 55 push %rbp 214011: 48 89 e5 mov %rsp,%rbp 214014: 48 83 ec 10 sub $0x10,%rsp 214018: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21401c: 89 75 f4 mov %esi,-0xc(%rbp) Settings_setSortKey(settings, sortKey); 21401f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 214023: 8b 75 f4 mov -0xc(%rbp),%esi 214026: e8 65 20 02 00 call 236090 return HTOP_REFRESH | HTOP_SAVE_SETTINGS | HTOP_UPDATE_PANELHDR | HTOP_KEEP_FOLLOWING; 21402b: b8 4d 00 00 00 mov $0x4d,%eax 214030: 48 83 c4 10 add $0x10,%rsp 214034: 5d pop %rbp 214035: c3 ret 214036: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000214040 : } Panel_delete((Object*)usersPanel); return HTOP_REFRESH | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; } Htop_Reaction Action_follow(State* st) { 214040: 55 push %rbp 214041: 48 89 e5 mov %rsp,%rbp 214044: 48 83 ec 10 sub $0x10,%rsp 214048: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->pl->following = MainPanel_selectedPid(st->mainPanel); 21404c: 48 8b 45 f8 mov -0x8(%rbp),%rax 214050: 48 8b 78 18 mov 0x18(%rax),%rdi 214054: e8 b7 e3 00 00 call 222410 214059: 89 c1 mov %eax,%ecx 21405b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21405f: 48 8b 40 10 mov 0x10(%rax),%rax 214063: 89 48 70 mov %ecx,0x70(%rax) Panel_setSelectionColor((Panel*)st->mainPanel, PANEL_SELECTION_FOLLOW); 214066: 48 8b 45 f8 mov -0x8(%rbp),%rax 21406a: 48 8b 78 18 mov 0x18(%rax),%rdi 21406e: be 0a 00 00 00 mov $0xa,%esi 214073: e8 58 3d 01 00 call 227dd0 return HTOP_KEEP_FOLLOWING; 214078: b8 08 00 00 00 mov $0x8,%eax 21407d: 48 83 c4 10 add $0x10,%rsp 214081: 5d pop %rbp 214082: c3 ret 214083: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21408d: 0f 1f 00 nopl (%rax) 0000000000214090 : clear(); CRT_enableDelay(); return HTOP_REFRESH | HTOP_REDRAW_BAR; } void Action_setBindings(Htop_Action* keys) { 214090: 55 push %rbp 214091: 48 89 e5 mov %rsp,%rbp 214094: 48 89 7d f8 mov %rdi,-0x8(%rbp) keys[' '] = actionTag; 214098: 48 8b 45 f8 mov -0x8(%rbp),%rax 21409c: 48 b9 10 45 21 00 00 00 00 00 movabs $0x214510,%rcx 2140a6: 48 89 88 00 01 00 00 mov %rcx,0x100(%rax) keys['*'] = actionExpandOrCollapseAllBranches; 2140ad: 48 8b 45 f8 mov -0x8(%rbp),%rax 2140b1: 48 b9 70 45 21 00 00 00 00 00 movabs $0x214570,%rcx 2140bb: 48 89 88 50 01 00 00 mov %rcx,0x150(%rax) keys['+'] = actionExpandOrCollapse; 2140c2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2140c6: 48 b9 e0 45 21 00 00 00 00 00 movabs $0x2145e0,%rcx 2140d0: 48 89 88 58 01 00 00 mov %rcx,0x158(%rax) keys[','] = actionSetSortColumn; 2140d7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2140db: 48 b9 20 46 21 00 00 00 00 00 movabs $0x214620,%rcx 2140e5: 48 89 88 60 01 00 00 mov %rcx,0x160(%rax) keys['-'] = actionExpandOrCollapse; 2140ec: 48 8b 45 f8 mov -0x8(%rbp),%rax 2140f0: 48 b9 e0 45 21 00 00 00 00 00 movabs $0x2145e0,%rcx 2140fa: 48 89 88 68 01 00 00 mov %rcx,0x168(%rax) keys['.'] = actionSetSortColumn; 214101: 48 8b 45 f8 mov -0x8(%rbp),%rax 214105: 48 b9 20 46 21 00 00 00 00 00 movabs $0x214620,%rcx 21410f: 48 89 88 70 01 00 00 mov %rcx,0x170(%rax) keys['/'] = actionIncSearch; 214116: 48 8b 45 f8 mov -0x8(%rbp),%rax 21411a: 48 b9 50 48 21 00 00 00 00 00 movabs $0x214850,%rcx 214124: 48 89 88 78 01 00 00 mov %rcx,0x178(%rax) keys['<'] = actionSetSortColumn; 21412b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21412f: 48 b9 20 46 21 00 00 00 00 00 movabs $0x214620,%rcx 214139: 48 89 88 e0 01 00 00 mov %rcx,0x1e0(%rax) keys['='] = actionExpandOrCollapse; 214140: 48 8b 45 f8 mov -0x8(%rbp),%rax 214144: 48 b9 e0 45 21 00 00 00 00 00 movabs $0x2145e0,%rcx 21414e: 48 89 88 e8 01 00 00 mov %rcx,0x1e8(%rax) keys['>'] = actionSetSortColumn; 214155: 48 8b 45 f8 mov -0x8(%rbp),%rax 214159: 48 b9 20 46 21 00 00 00 00 00 movabs $0x214620,%rcx 214163: 48 89 88 f0 01 00 00 mov %rcx,0x1f0(%rax) keys['?'] = actionHelp; 21416a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21416e: 48 b9 a0 48 21 00 00 00 00 00 movabs $0x2148a0,%rcx 214178: 48 89 88 f8 01 00 00 mov %rcx,0x1f8(%rax) keys['C'] = actionSetup; 21417f: 48 8b 45 f8 mov -0x8(%rbp),%rax 214183: 48 b9 70 56 21 00 00 00 00 00 movabs $0x215670,%rcx 21418d: 48 89 88 18 02 00 00 mov %rcx,0x218(%rax) keys['F'] = Action_follow; 214194: 48 8b 45 f8 mov -0x8(%rbp),%rax 214198: 48 b9 40 40 21 00 00 00 00 00 movabs $0x214040,%rcx 2141a2: 48 89 88 30 02 00 00 mov %rcx,0x230(%rax) keys['H'] = actionToggleUserlandThreads; 2141a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2141ad: 48 b9 90 56 21 00 00 00 00 00 movabs $0x215690,%rcx 2141b7: 48 89 88 40 02 00 00 mov %rcx,0x240(%rax) keys['I'] = actionInvertSortOrder; 2141be: 48 8b 45 f8 mov -0x8(%rbp),%rax 2141c2: 48 b9 c0 56 21 00 00 00 00 00 movabs $0x2156c0,%rcx 2141cc: 48 89 88 48 02 00 00 mov %rcx,0x248(%rax) keys['K'] = actionToggleKernelThreads; 2141d3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2141d7: 48 b9 00 57 21 00 00 00 00 00 movabs $0x215700,%rcx 2141e1: 48 89 88 58 02 00 00 mov %rcx,0x258(%rax) keys['M'] = actionSortByMemory; 2141e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2141ec: 48 b9 30 57 21 00 00 00 00 00 movabs $0x215730,%rcx 2141f6: 48 89 88 68 02 00 00 mov %rcx,0x268(%rax) keys['N'] = actionSortByPID; 2141fd: 48 8b 45 f8 mov -0x8(%rbp),%rax 214201: 48 b9 60 57 21 00 00 00 00 00 movabs $0x215760,%rcx 21420b: 48 89 88 70 02 00 00 mov %rcx,0x270(%rax) keys['P'] = actionSortByCPU; 214212: 48 8b 45 f8 mov -0x8(%rbp),%rax 214216: 48 b9 90 57 21 00 00 00 00 00 movabs $0x215790,%rcx 214220: 48 89 88 80 02 00 00 mov %rcx,0x280(%rax) keys['S'] = actionSetup; 214227: 48 8b 45 f8 mov -0x8(%rbp),%rax 21422b: 48 b9 70 56 21 00 00 00 00 00 movabs $0x215670,%rcx 214235: 48 89 88 98 02 00 00 mov %rcx,0x298(%rax) keys['T'] = actionSortByTime; 21423c: 48 8b 45 f8 mov -0x8(%rbp),%rax 214240: 48 b9 c0 57 21 00 00 00 00 00 movabs $0x2157c0,%rcx 21424a: 48 89 88 a0 02 00 00 mov %rcx,0x2a0(%rax) keys['U'] = actionUntagAll; 214251: 48 8b 45 f8 mov -0x8(%rbp),%rax 214255: 48 b9 f0 57 21 00 00 00 00 00 movabs $0x2157f0,%rcx 21425f: 48 89 88 a8 02 00 00 mov %rcx,0x2a8(%rax) keys['Z'] = actionTogglePauseProcessUpdate; 214266: 48 8b 45 f8 mov -0x8(%rbp),%rax 21426a: 48 b9 60 58 21 00 00 00 00 00 movabs $0x215860,%rcx 214274: 48 89 88 d0 02 00 00 mov %rcx,0x2d0(%rax) keys['['] = actionLowerPriority; 21427b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21427f: 48 b9 90 58 21 00 00 00 00 00 movabs $0x215890,%rcx 214289: 48 89 88 d8 02 00 00 mov %rcx,0x2d8(%rax) keys['\014'] = actionRedraw; // Ctrl+L 214290: 48 8b 45 f8 mov -0x8(%rbp),%rax 214294: 48 b9 f0 58 21 00 00 00 00 00 movabs $0x2158f0,%rcx 21429e: 48 89 48 60 mov %rcx,0x60(%rax) keys['\177'] = actionCollapseIntoParent; 2142a2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2142a6: 48 b9 20 59 21 00 00 00 00 00 movabs $0x215920,%rcx 2142b0: 48 89 88 f8 03 00 00 mov %rcx,0x3f8(%rax) keys['\\'] = actionIncFilter; 2142b7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2142bb: 48 b9 80 59 21 00 00 00 00 00 movabs $0x215980,%rcx 2142c5: 48 89 88 e0 02 00 00 mov %rcx,0x2e0(%rax) keys[']'] = actionHigherPriority; 2142cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2142d0: 48 b9 e0 59 21 00 00 00 00 00 movabs $0x2159e0,%rcx 2142da: 48 89 88 e8 02 00 00 mov %rcx,0x2e8(%rax) keys['a'] = actionSetAffinity; 2142e1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2142e5: 48 b9 40 5a 21 00 00 00 00 00 movabs $0x215a40,%rcx 2142ef: 48 89 88 08 03 00 00 mov %rcx,0x308(%rax) keys['c'] = actionTagAllChildren; 2142f6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2142fa: 48 b9 a0 5a 21 00 00 00 00 00 movabs $0x215aa0,%rcx 214304: 48 89 88 18 03 00 00 mov %rcx,0x318(%rax) keys['e'] = actionShowEnvScreen; 21430b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21430f: 48 b9 00 5b 21 00 00 00 00 00 movabs $0x215b00,%rcx 214319: 48 89 88 28 03 00 00 mov %rcx,0x328(%rax) keys['h'] = actionHelp; 214320: 48 8b 45 f8 mov -0x8(%rbp),%rax 214324: 48 b9 a0 48 21 00 00 00 00 00 movabs $0x2148a0,%rcx 21432e: 48 89 88 40 03 00 00 mov %rcx,0x340(%rax) keys['k'] = actionKill; 214335: 48 8b 45 f8 mov -0x8(%rbp),%rax 214339: 48 b9 80 5b 21 00 00 00 00 00 movabs $0x215b80,%rcx 214343: 48 89 88 58 03 00 00 mov %rcx,0x358(%rax) keys['l'] = actionLsof; 21434a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21434e: 48 b9 90 5c 21 00 00 00 00 00 movabs $0x215c90,%rcx 214358: 48 89 88 60 03 00 00 mov %rcx,0x360(%rax) keys['m'] = actionToggleMergedCommand; 21435f: 48 8b 45 f8 mov -0x8(%rbp),%rax 214363: 48 b9 30 5d 21 00 00 00 00 00 movabs $0x215d30,%rcx 21436d: 48 89 88 68 03 00 00 mov %rcx,0x368(%rax) keys['p'] = actionToggleProgramPath; 214374: 48 8b 45 f8 mov -0x8(%rbp),%rax 214378: 48 b9 60 5d 21 00 00 00 00 00 movabs $0x215d60,%rcx 214382: 48 89 88 80 03 00 00 mov %rcx,0x380(%rax) keys['q'] = actionQuit; 214389: 48 8b 45 f8 mov -0x8(%rbp),%rax 21438d: 48 b9 90 5d 21 00 00 00 00 00 movabs $0x215d90,%rcx 214397: 48 89 88 88 03 00 00 mov %rcx,0x388(%rax) keys['s'] = actionStrace; 21439e: 48 8b 45 f8 mov -0x8(%rbp),%rax 2143a2: 48 b9 a0 5d 21 00 00 00 00 00 movabs $0x215da0,%rcx 2143ac: 48 89 88 98 03 00 00 mov %rcx,0x398(%rax) keys['t'] = actionToggleTreeView; 2143b3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2143b7: 48 b9 50 5e 21 00 00 00 00 00 movabs $0x215e50,%rcx 2143c1: 48 89 88 a0 03 00 00 mov %rcx,0x3a0(%rax) keys['u'] = actionFilterByUser; 2143c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2143cc: 48 b9 a0 5e 21 00 00 00 00 00 movabs $0x215ea0,%rcx 2143d6: 48 89 88 a8 03 00 00 mov %rcx,0x3a8(%rax) keys['w'] = actionShowCommandScreen; 2143dd: 48 8b 45 f8 mov -0x8(%rbp),%rax 2143e1: 48 b9 d0 5f 21 00 00 00 00 00 movabs $0x215fd0,%rcx 2143eb: 48 89 88 b8 03 00 00 mov %rcx,0x3b8(%rax) keys['x'] = actionShowLocks; 2143f2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2143f6: 48 b9 50 60 21 00 00 00 00 00 movabs $0x216050,%rcx 214400: 48 89 88 c0 03 00 00 mov %rcx,0x3c0(%rax) keys[KEY_F(1)] = actionHelp; 214407: 48 8b 45 f8 mov -0x8(%rbp),%rax 21440b: 48 b9 a0 48 21 00 00 00 00 00 movabs $0x2148a0,%rcx 214415: 48 89 88 48 08 00 00 mov %rcx,0x848(%rax) keys[KEY_F(2)] = actionSetup; 21441c: 48 8b 45 f8 mov -0x8(%rbp),%rax 214420: 48 b9 70 56 21 00 00 00 00 00 movabs $0x215670,%rcx 21442a: 48 89 88 50 08 00 00 mov %rcx,0x850(%rax) keys[KEY_F(3)] = actionIncSearch; 214431: 48 8b 45 f8 mov -0x8(%rbp),%rax 214435: 48 b9 50 48 21 00 00 00 00 00 movabs $0x214850,%rcx 21443f: 48 89 88 58 08 00 00 mov %rcx,0x858(%rax) keys[KEY_F(4)] = actionIncFilter; 214446: 48 8b 45 f8 mov -0x8(%rbp),%rax 21444a: 48 b9 80 59 21 00 00 00 00 00 movabs $0x215980,%rcx 214454: 48 89 88 60 08 00 00 mov %rcx,0x860(%rax) keys[KEY_F(5)] = actionToggleTreeView; 21445b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21445f: 48 b9 50 5e 21 00 00 00 00 00 movabs $0x215e50,%rcx 214469: 48 89 88 68 08 00 00 mov %rcx,0x868(%rax) keys[KEY_F(6)] = actionSetSortColumn; 214470: 48 8b 45 f8 mov -0x8(%rbp),%rax 214474: 48 b9 20 46 21 00 00 00 00 00 movabs $0x214620,%rcx 21447e: 48 89 88 70 08 00 00 mov %rcx,0x870(%rax) keys[KEY_F(7)] = actionHigherPriority; 214485: 48 8b 45 f8 mov -0x8(%rbp),%rax 214489: 48 b9 e0 59 21 00 00 00 00 00 movabs $0x2159e0,%rcx 214493: 48 89 88 78 08 00 00 mov %rcx,0x878(%rax) keys[KEY_F(8)] = actionLowerPriority; 21449a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21449e: 48 b9 90 58 21 00 00 00 00 00 movabs $0x215890,%rcx 2144a8: 48 89 88 80 08 00 00 mov %rcx,0x880(%rax) keys[KEY_F(9)] = actionKill; 2144af: 48 8b 45 f8 mov -0x8(%rbp),%rax 2144b3: 48 b9 80 5b 21 00 00 00 00 00 movabs $0x215b80,%rcx 2144bd: 48 89 88 88 08 00 00 mov %rcx,0x888(%rax) keys[KEY_F(10)] = actionQuit; 2144c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2144c8: 48 b9 90 5d 21 00 00 00 00 00 movabs $0x215d90,%rcx 2144d2: 48 89 88 90 08 00 00 mov %rcx,0x890(%rax) keys[KEY_F(18)] = actionExpandCollapseOrSortColumn; 2144d9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2144dd: 48 b9 d0 60 21 00 00 00 00 00 movabs $0x2160d0,%rcx 2144e7: 48 89 88 d0 08 00 00 mov %rcx,0x8d0(%rax) keys[KEY_RECLICK] = actionExpandOrCollapse; 2144ee: 48 8b 45 f8 mov -0x8(%rbp),%rax 2144f2: 48 b9 e0 45 21 00 00 00 00 00 movabs $0x2145e0,%rcx 2144fc: 48 89 88 40 09 00 00 mov %rcx,0x940(%rax) } 214503: 5d pop %rbp 214504: c3 ret 214505: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21450f: 90 nop 0000000000214510 : static Htop_Reaction actionTag(State* st) { 214510: 55 push %rbp 214511: 48 89 e5 mov %rsp,%rbp 214514: 48 83 ec 20 sub $0x20,%rsp 214518: 48 89 7d f0 mov %rdi,-0x10(%rbp) Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 21451c: 48 8b 45 f0 mov -0x10(%rbp),%rax 214520: 48 8b 78 18 mov 0x18(%rax),%rdi 214524: e8 47 3b 01 00 call 228070 214529: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 21452d: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 214532: 0f 85 0c 00 00 00 jne 214544 return HTOP_OK; 214538: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 21453f: e9 22 00 00 00 jmp 214566 Process_toggleTag(p); 214544: 48 8b 7d e8 mov -0x18(%rbp),%rdi 214548: e8 23 a0 01 00 call 22e570 Panel_onKey((Panel*)st->mainPanel, KEY_DOWN); 21454d: 48 8b 45 f0 mov -0x10(%rbp),%rax 214551: 48 8b 78 18 mov 0x18(%rax),%rdi 214555: be 02 01 00 00 mov $0x102,%esi 21455a: e8 41 4a 01 00 call 228fa0 return HTOP_OK; 21455f: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) } 214566: 8b 45 fc mov -0x4(%rbp),%eax 214569: 48 83 c4 20 add $0x20,%rsp 21456d: 5d pop %rbp 21456e: c3 ret 21456f: 90 nop 0000000000214570 : static Htop_Reaction actionExpandOrCollapseAllBranches(State* st) { 214570: 55 push %rbp 214571: 48 89 e5 mov %rsp,%rbp 214574: 48 83 ec 10 sub $0x10,%rsp 214578: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->allBranchesCollapsed = !st->settings->allBranchesCollapsed; 21457c: 48 8b 45 f8 mov -0x8(%rbp),%rax 214580: 48 8b 00 mov (%rax),%rax 214583: 8a 48 4c mov 0x4c(%rax),%cl 214586: 80 f1 ff xor $0xff,%cl 214589: 48 8b 45 f8 mov -0x8(%rbp),%rax 21458d: 48 8b 00 mov (%rax),%rax 214590: 80 e1 01 and $0x1,%cl 214593: 88 48 4c mov %cl,0x4c(%rax) if (st->settings->allBranchesCollapsed) 214596: 48 8b 45 f8 mov -0x8(%rbp),%rax 21459a: 48 8b 00 mov (%rax),%rax 21459d: f6 40 4c 01 testb $0x1,0x4c(%rax) 2145a1: 0f 84 12 00 00 00 je 2145b9 ProcessList_collapseAllBranches(st->pl); 2145a7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2145ab: 48 8b 78 10 mov 0x10(%rax),%rdi 2145af: e8 5c bc 01 00 call 230210 2145b4: e9 0d 00 00 00 jmp 2145c6 ProcessList_expandTree(st->pl); 2145b9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2145bd: 48 8b 78 10 mov 0x10(%rax),%rdi 2145c1: e8 9a bb 01 00 call 230160 return HTOP_REFRESH | HTOP_SAVE_SETTINGS; 2145c6: b8 05 00 00 00 mov $0x5,%eax 2145cb: 48 83 c4 10 add $0x10,%rsp 2145cf: 5d pop %rbp 2145d0: c3 ret 2145d1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2145db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002145e0 : static Htop_Reaction actionExpandOrCollapse(State* st) { 2145e0: 55 push %rbp 2145e1: 48 89 e5 mov %rsp,%rbp 2145e4: 48 83 ec 10 sub $0x10,%rsp 2145e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) bool changed = expandCollapse((Panel*)st->mainPanel); 2145ec: 48 8b 45 f8 mov -0x8(%rbp),%rax 2145f0: 48 8b 78 18 mov 0x18(%rax),%rdi 2145f4: e8 27 1b 00 00 call 216120 2145f9: 24 01 and $0x1,%al 2145fb: 88 45 f7 mov %al,-0x9(%rbp) return changed ? HTOP_RECALCULATE : HTOP_OK; 2145fe: 8a 55 f7 mov -0x9(%rbp),%dl 214601: 31 c0 xor %eax,%eax 214603: b9 03 00 00 00 mov $0x3,%ecx 214608: f6 c2 01 test $0x1,%dl 21460b: 0f 45 c1 cmovne %ecx,%eax 21460e: 48 83 c4 10 add $0x10,%rsp 214612: 5d pop %rbp 214613: c3 ret 214614: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21461e: 66 90 xchg %ax,%ax 0000000000214620 : static Htop_Reaction actionSetSortColumn(State* st) { 214620: 55 push %rbp 214621: 48 89 e5 mov %rsp,%rbp 214624: 48 83 ec 70 sub $0x70,%rsp 214628: 48 89 7d f8 mov %rdi,-0x8(%rbp) Htop_Reaction reaction = HTOP_OK; 21462c: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) Panel* sortPanel = Panel_new(0, 0, 0, 0, Class(ListItem), true, FunctionBar_newEnterEsc("Sort ", "Cancel ")); 214633: 48 bf 28 33 20 00 00 00 00 00 movabs $0x203328,%rdi 21463d: 48 be a0 47 20 00 00 00 00 00 movabs $0x2047a0,%rsi 214647: e8 84 9c 00 00 call 21e2d0 21464c: 31 c9 xor %ecx,%ecx 21464e: 49 b8 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r8 214658: 41 b9 01 00 00 00 mov $0x1,%r9d 21465e: 89 cf mov %ecx,%edi 214660: 89 ce mov %ecx,%esi 214662: 89 ca mov %ecx,%edx 214664: 48 89 04 24 mov %rax,(%rsp) 214668: e8 13 35 01 00 call 227b80 21466d: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_setHeader(sortPanel, "Sort by"); 214671: 48 8b 7d e8 mov -0x18(%rbp),%rdi 214675: 48 be c9 42 20 00 00 00 00 00 movabs $0x2042c9,%rsi 21467f: e8 6c 37 01 00 call 227df0 const ProcessField* fields = st->settings->fields; 214684: 48 8b 45 f8 mov -0x8(%rbp),%rax 214688: 48 8b 00 mov (%rax),%rax 21468b: 48 8b 40 20 mov 0x20(%rax),%rax 21468f: 48 89 45 e0 mov %rax,-0x20(%rbp) Hashtable* dynamicColumns = st->settings->dynamicColumns; 214693: 48 8b 45 f8 mov -0x8(%rbp),%rax 214697: 48 8b 00 mov (%rax),%rax 21469a: 48 8b 40 18 mov 0x18(%rax),%rax 21469e: 48 89 45 d8 mov %rax,-0x28(%rbp) for (int i = 0; fields[i]; i++) { 2146a2: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 2146a9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2146ad: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 2146b1: 83 3c 88 00 cmpl $0x0,(%rax,%rcx,4) 2146b5: 0f 84 18 01 00 00 je 2147d3 char* name = NULL; 2146bb: 48 c7 45 c8 00 00 00 00 movq $0x0,-0x38(%rbp) if (fields[i] >= LAST_PROCESSFIELD) { 2146c3: 48 8b 45 e0 mov -0x20(%rbp),%rax 2146c7: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 2146cb: 83 3c 88 7f cmpl $0x7f,(%rax,%rcx,4) 2146cf: 0f 82 62 00 00 00 jb 214737 DynamicColumn* column = Hashtable_get(dynamicColumns, fields[i]); 2146d5: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2146d9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2146dd: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 2146e1: 8b 34 88 mov (%rax,%rcx,4),%esi 2146e4: e8 f7 ab 00 00 call 21f2e0 2146e9: 48 89 45 c0 mov %rax,-0x40(%rbp) if (!column) 2146ed: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 2146f2: 0f 85 05 00 00 00 jne 2146fd continue; 2146f8: e9 c8 00 00 00 jmp 2147c5 name = xStrdup(column->caption ? column->caption : column->name); 2146fd: 48 8b 45 c0 mov -0x40(%rbp),%rax 214701: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 214706: 0f 84 11 00 00 00 je 21471d 21470c: 48 8b 45 c0 mov -0x40(%rbp),%rax 214710: 48 8b 40 28 mov 0x28(%rax),%rax 214714: 48 89 45 b0 mov %rax,-0x50(%rbp) 214718: e9 08 00 00 00 jmp 214725 21471d: 48 8b 45 c0 mov -0x40(%rbp),%rax 214721: 48 89 45 b0 mov %rax,-0x50(%rbp) 214725: 48 8b 7d b0 mov -0x50(%rbp),%rdi 214729: e8 c2 48 02 00 call 238ff0 21472e: 48 89 45 c8 mov %rax,-0x38(%rbp) } else { 214732: e9 2a 00 00 00 jmp 214761 name = String_trim(Process_fields[fields[i]].name); 214737: 48 8b 45 e0 mov -0x20(%rbp),%rax 21473b: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 21473f: 8b 04 88 mov (%rax,%rcx,4),%eax 214742: 89 c1 mov %eax,%ecx 214744: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 21474e: 48 c1 e1 05 shl $0x5,%rcx 214752: 48 01 c8 add %rcx,%rax 214755: 48 8b 38 mov (%rax),%rdi 214758: e8 d3 45 02 00 call 238d30 21475d: 48 89 45 c8 mov %rax,-0x38(%rbp) Panel_add(sortPanel, (Object*) ListItem_new(name, fields[i])); 214761: 48 8b 45 e8 mov -0x18(%rbp),%rax 214765: 48 89 45 a0 mov %rax,-0x60(%rbp) 214769: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21476d: 48 8b 45 e0 mov -0x20(%rbp),%rax 214771: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 214775: 8b 34 88 mov (%rax,%rcx,4),%esi 214778: e8 d3 d5 00 00 call 221d50 21477d: 48 8b 7d a0 mov -0x60(%rbp),%rdi 214781: 48 89 c6 mov %rax,%rsi 214784: e8 57 37 01 00 call 227ee0 if (fields[i] == Settings_getActiveSortKey(st->settings)) 214789: 48 8b 45 e0 mov -0x20(%rbp),%rax 21478d: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 214791: 8b 04 88 mov (%rax,%rcx,4),%eax 214794: 89 45 ac mov %eax,-0x54(%rbp) 214797: 48 8b 45 f8 mov -0x8(%rbp),%rax 21479b: 48 8b 38 mov (%rax),%rdi 21479e: e8 dd 19 00 00 call 216180 2147a3: 89 c1 mov %eax,%ecx 2147a5: 8b 45 ac mov -0x54(%rbp),%eax 2147a8: 39 c8 cmp %ecx,%eax 2147aa: 0f 85 0c 00 00 00 jne 2147bc Panel_setSelected(sortPanel, i); 2147b0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2147b4: 8b 75 d4 mov -0x2c(%rbp),%esi 2147b7: e8 04 3a 01 00 call 2281c0 free(name); 2147bc: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2147c0: e8 9b 99 02 00 call 23e160 for (int i = 0; fields[i]; i++) { 2147c5: 8b 45 d4 mov -0x2c(%rbp),%eax 2147c8: 83 c0 01 add $0x1,%eax 2147cb: 89 45 d4 mov %eax,-0x2c(%rbp) 2147ce: e9 d6 fe ff ff jmp 2146a9 const ListItem* field = (const ListItem*) Action_pickFromVector(st, sortPanel, 14, false); 2147d3: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2147d7: 48 8b 75 e8 mov -0x18(%rbp),%rsi 2147db: ba 0e 00 00 00 mov $0xe,%edx 2147e0: 31 c9 xor %ecx,%ecx 2147e2: e8 c9 f5 ff ff call 213db0 2147e7: 48 89 45 b8 mov %rax,-0x48(%rbp) if (field) { 2147eb: 48 83 7d b8 00 cmpq $0x0,-0x48(%rbp) 2147f0: 0f 84 19 00 00 00 je 21480f reaction |= Action_setSortKey(st->settings, field->key); 2147f6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2147fa: 48 8b 38 mov (%rax),%rdi 2147fd: 48 8b 45 b8 mov -0x48(%rbp),%rax 214801: 8b 70 10 mov 0x10(%rax),%esi 214804: e8 07 f8 ff ff call 214010 214809: 0b 45 f4 or -0xc(%rbp),%eax 21480c: 89 45 f4 mov %eax,-0xc(%rbp) Object_delete(sortPanel); 21480f: 48 8b 45 e8 mov -0x18(%rbp),%rax 214813: 48 8b 00 mov (%rax),%rax 214816: 48 8b 40 10 mov 0x10(%rax),%rax 21481a: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21481e: ff d0 call *%rax if (st->pauseProcessUpdate) 214820: 48 8b 45 f8 mov -0x8(%rbp),%rax 214824: f6 40 28 01 testb $0x1,0x28(%rax) 214828: 0f 84 0d 00 00 00 je 21483b ProcessList_sort(st->pl); 21482e: 48 8b 45 f8 mov -0x8(%rbp),%rax 214832: 48 8b 78 10 mov 0x10(%rax),%rdi 214836: e8 f5 b6 01 00 call 22ff30 return reaction | HTOP_REFRESH | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; 21483b: 8b 45 f4 mov -0xc(%rbp),%eax 21483e: 83 c8 01 or $0x1,%eax 214841: 83 c8 20 or $0x20,%eax 214844: 83 c8 41 or $0x41,%eax 214847: 48 83 c4 70 add $0x70,%rsp 21484b: 5d pop %rbp 21484c: c3 ret 21484d: 0f 1f 00 nopl (%rax) 0000000000214850 : static Htop_Reaction actionIncSearch(State* st) { 214850: 55 push %rbp 214851: 48 89 e5 mov %rsp,%rbp 214854: 48 83 ec 10 sub $0x10,%rsp 214858: 48 89 7d f8 mov %rdi,-0x8(%rbp) IncSet_reset(st->mainPanel->inc, INC_SEARCH); 21485c: 48 8b 45 f8 mov -0x8(%rbp),%rax 214860: 48 8b 40 18 mov 0x18(%rax),%rax 214864: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 21486b: 31 f6 xor %esi,%esi 21486d: e8 ee bf 00 00 call 220860 IncSet_activate(st->mainPanel->inc, INC_SEARCH, (Panel*)st->mainPanel); 214872: 48 8b 45 f8 mov -0x8(%rbp),%rax 214876: 48 8b 40 18 mov 0x18(%rax),%rax 21487a: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 214881: 48 8b 45 f8 mov -0x8(%rbp),%rax 214885: 48 8b 50 18 mov 0x18(%rax),%rdx 214889: 31 f6 xor %esi,%esi 21488b: e8 60 c8 00 00 call 2210f0 return HTOP_REFRESH | HTOP_KEEP_FOLLOWING; 214890: b8 09 00 00 00 mov $0x9,%eax 214895: 48 83 c4 10 add $0x10,%rsp 214899: 5d pop %rbp 21489a: c3 ret 21489b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002148a0 : static Htop_Reaction actionHelp(State* st) { 2148a0: 55 push %rbp 2148a1: 48 89 e5 mov %rsp,%rbp 2148a4: 48 81 ec 80 00 00 00 sub $0x80,%rsp 2148ab: 48 89 7d f8 mov %rdi,-0x8(%rbp) clear(); 2148af: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2148b7: e8 b4 98 02 00 call 23e170 attrset(CRT_colors[HELP_BOLD]); 2148bc: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2148c4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2148cc: 8b b0 10 01 00 00 mov 0x110(%rax),%esi 2148d2: e8 a9 98 02 00 call 23e180 for (int i = 0; i < LINES - 1; i++) 2148d7: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 2148de: 8b 45 f4 mov -0xc(%rbp),%eax 2148e1: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 2148e8: 83 e9 01 sub $0x1,%ecx 2148eb: 39 c8 cmp %ecx,%eax 2148ed: 0f 8d 47 00 00 00 jge 21493a mvhline(i, 0, ' ', COLS); 2148f3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2148fb: 8b 75 f4 mov -0xc(%rbp),%esi 2148fe: 31 d2 xor %edx,%edx 214900: e8 8b 98 02 00 call 23e190 214905: 83 f8 ff cmp $0xffffffff,%eax 214908: 0f 85 05 00 00 00 jne 214913 21490e: e9 19 00 00 00 jmp 21492c 214913: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21491b: 8b 14 25 70 28 24 00 mov 0x242870,%edx 214922: be 20 00 00 00 mov $0x20,%esi 214927: e8 74 98 02 00 call 23e1a0 for (int i = 0; i < LINES - 1; i++) 21492c: 8b 45 f4 mov -0xc(%rbp),%eax 21492f: 83 c0 01 add $0x1,%eax 214932: 89 45 f4 mov %eax,-0xc(%rbp) 214935: e9 a4 ff ff ff jmp 2148de int line = 0; 21493a: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) mvaddstr(line++, 0, "htop " VERSION " - " COPYRIGHT); 214941: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214949: 8b 75 f0 mov -0x10(%rbp),%esi 21494c: 89 f0 mov %esi,%eax 21494e: 83 c0 01 add $0x1,%eax 214951: 89 45 f0 mov %eax,-0x10(%rbp) 214954: 31 d2 xor %edx,%edx 214956: e8 35 98 02 00 call 23e190 21495b: 83 f8 ff cmp $0xffffffff,%eax 21495e: 0f 85 05 00 00 00 jne 214969 214964: e9 1c 00 00 00 jmp 214985 214969: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214971: 48 be 3b 3e 20 00 00 00 00 00 movabs $0x203e3b,%rsi 21497b: ba ff ff ff ff mov $0xffffffff,%edx 214980: e8 2b 98 02 00 call 23e1b0 mvaddstr(line++, 0, "Released under the GNU GPLv2+. See 'man' page for more info."); 214985: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21498d: 8b 75 f0 mov -0x10(%rbp),%esi 214990: 89 f0 mov %esi,%eax 214992: 83 c0 01 add $0x1,%eax 214995: 89 45 f0 mov %eax,-0x10(%rbp) 214998: 31 d2 xor %edx,%edx 21499a: e8 f1 97 02 00 call 23e190 21499f: 83 f8 ff cmp $0xffffffff,%eax 2149a2: 0f 85 05 00 00 00 jne 2149ad 2149a8: e9 1c 00 00 00 jmp 2149c9 2149ad: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2149b5: 48 be f8 69 20 00 00 00 00 00 movabs $0x2069f8,%rsi 2149bf: ba ff ff ff ff mov $0xffffffff,%edx 2149c4: e8 e7 97 02 00 call 23e1b0 attrset(CRT_colors[DEFAULT_COLOR]); 2149c9: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2149d1: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2149d9: 8b 70 04 mov 0x4(%rax),%esi 2149dc: e8 9f 97 02 00 call 23e180 line++; 2149e1: 8b 45 f0 mov -0x10(%rbp),%eax 2149e4: 83 c0 01 add $0x1,%eax 2149e7: 89 45 f0 mov %eax,-0x10(%rbp) mvaddstr(line++, 0, "CPU usage bar: "); 2149ea: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2149f2: 8b 75 f0 mov -0x10(%rbp),%esi 2149f5: 89 f0 mov %esi,%eax 2149f7: 83 c0 01 add $0x1,%eax 2149fa: 89 45 f0 mov %eax,-0x10(%rbp) 2149fd: 31 d2 xor %edx,%edx 2149ff: e8 8c 97 02 00 call 23e190 214a04: 83 f8 ff cmp $0xffffffff,%eax 214a07: 0f 85 05 00 00 00 jne 214a12 214a0d: e9 1c 00 00 00 jmp 214a2e 214a12: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214a1a: 48 be 83 3a 20 00 00 00 00 00 movabs $0x203a83,%rsi 214a24: ba ff ff ff ff mov $0xffffffff,%edx 214a29: e8 82 97 02 00 call 23e1b0 addattrstr(CRT_colors[BAR_BORDER], "["); 214a2e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214a36: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214a3c: 48 be 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rsi 214a46: e8 95 17 00 00 call 2161e0 if (st->settings->detailedCPUTime) { 214a4b: 48 8b 45 f8 mov -0x8(%rbp),%rax 214a4f: 48 8b 00 mov (%rax),%rax 214a52: f6 40 45 01 testb $0x1,0x45(%rax) 214a56: 0f 84 ce 01 00 00 je 214c2a addattrstr(CRT_colors[CPU_NICE_TEXT], "low"); addstr("/"); 214a5c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214a64: 8b b8 20 01 00 00 mov 0x120(%rax),%edi 214a6a: 48 be a7 4c 20 00 00 00 00 00 movabs $0x204ca7,%rsi 214a74: e8 67 17 00 00 call 2161e0 214a79: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214a81: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214a8b: ba ff ff ff ff mov $0xffffffff,%edx 214a90: e8 1b 97 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_NORMAL], "normal"); addstr("/"); 214a95: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214a9d: 8b b8 24 01 00 00 mov 0x124(%rax),%edi 214aa3: 48 be 9f 49 20 00 00 00 00 00 movabs $0x20499f,%rsi 214aad: e8 2e 17 00 00 call 2161e0 214ab2: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214aba: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214ac4: ba ff ff ff ff mov $0xffffffff,%edx 214ac9: e8 e2 96 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_SYSTEM], "kernel"); addstr("/"); 214ace: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214ad6: 8b b8 28 01 00 00 mov 0x128(%rax),%edi 214adc: 48 be a5 5d 20 00 00 00 00 00 movabs $0x205da5,%rsi 214ae6: e8 f5 16 00 00 call 2161e0 214aeb: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214af3: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214afd: ba ff ff ff ff mov $0xffffffff,%edx 214b02: e8 a9 96 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_IRQ], "irq"); addstr("/"); 214b07: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214b0f: 8b b8 30 01 00 00 mov 0x130(%rax),%edi 214b15: 48 be f6 38 20 00 00 00 00 00 movabs $0x2038f6,%rsi 214b1f: e8 bc 16 00 00 call 2161e0 214b24: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214b2c: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214b36: ba ff ff ff ff mov $0xffffffff,%edx 214b3b: e8 70 96 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_SOFTIRQ], "soft-irq"); addstr("/"); 214b40: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214b48: 8b b8 34 01 00 00 mov 0x134(%rax),%edi 214b4e: 48 be d4 5b 20 00 00 00 00 00 movabs $0x205bd4,%rsi 214b58: e8 83 16 00 00 call 2161e0 214b5d: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214b65: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214b6f: ba ff ff ff ff mov $0xffffffff,%edx 214b74: e8 37 96 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_STEAL], "steal"); addstr("/"); 214b79: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214b81: 8b b8 38 01 00 00 mov 0x138(%rax),%edi 214b87: 48 be 58 6d 20 00 00 00 00 00 movabs $0x206d58,%rsi 214b91: e8 4a 16 00 00 call 2161e0 214b96: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214b9e: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214ba8: ba ff ff ff ff mov $0xffffffff,%edx 214bad: e8 fe 95 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_GUEST], "guest"); addstr("/"); 214bb2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214bba: 8b b8 3c 01 00 00 mov 0x13c(%rax),%edi 214bc0: 48 be 30 33 20 00 00 00 00 00 movabs $0x203330,%rsi 214bca: e8 11 16 00 00 call 2161e0 214bcf: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214bd7: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214be1: ba ff ff ff ff mov $0xffffffff,%edx 214be6: e8 c5 95 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_IOWAIT], "io-wait"); 214beb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214bf3: 8b b8 2c 01 00 00 mov 0x12c(%rax),%edi 214bf9: 48 be d1 42 20 00 00 00 00 00 movabs $0x2042d1,%rsi 214c03: e8 d8 15 00 00 call 2161e0 addattrstr(CRT_colors[BAR_SHADOW], " used%"); 214c08: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214c10: 8b b8 b8 00 00 00 mov 0xb8(%rax),%edi 214c16: 48 be 1e 37 20 00 00 00 00 00 movabs $0x20371e,%rsi 214c20: e8 bb 15 00 00 call 2161e0 } else { 214c25: e9 e5 00 00 00 jmp 214d0f addattrstr(CRT_colors[CPU_NICE_TEXT], "low-priority"); addstr("/"); 214c2a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214c32: 8b b8 20 01 00 00 mov 0x120(%rax),%edi 214c38: 48 be 59 4b 20 00 00 00 00 00 movabs $0x204b59,%rsi 214c42: e8 99 15 00 00 call 2161e0 214c47: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214c4f: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214c59: ba ff ff ff ff mov $0xffffffff,%edx 214c5e: e8 4d 95 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_NORMAL], "normal"); addstr("/"); 214c63: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214c6b: 8b b8 24 01 00 00 mov 0x124(%rax),%edi 214c71: 48 be 9f 49 20 00 00 00 00 00 movabs $0x20499f,%rsi 214c7b: e8 60 15 00 00 call 2161e0 214c80: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214c88: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214c92: ba ff ff ff ff mov $0xffffffff,%edx 214c97: e8 14 95 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_SYSTEM], "kernel"); addstr("/"); 214c9c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214ca4: 8b b8 28 01 00 00 mov 0x128(%rax),%edi 214caa: 48 be a5 5d 20 00 00 00 00 00 movabs $0x205da5,%rsi 214cb4: e8 27 15 00 00 call 2161e0 214cb9: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214cc1: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214ccb: ba ff ff ff ff mov $0xffffffff,%edx 214cd0: e8 db 94 02 00 call 23e1b0 addattrstr(CRT_colors[CPU_GUEST], "virtualized"); 214cd5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214cdd: 8b b8 3c 01 00 00 mov 0x13c(%rax),%edi 214ce3: 48 be 36 33 20 00 00 00 00 00 movabs $0x203336,%rsi 214ced: e8 ee 14 00 00 call 2161e0 addattrstr(CRT_colors[BAR_SHADOW], " used%"); 214cf2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214cfa: 8b b8 b8 00 00 00 mov 0xb8(%rax),%edi 214d00: 48 be 28 6c 20 00 00 00 00 00 movabs $0x206c28,%rsi 214d0a: e8 d1 14 00 00 call 2161e0 addattrstr(CRT_colors[BAR_BORDER], "]"); 214d0f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214d17: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214d1d: 48 be 7f 45 20 00 00 00 00 00 movabs $0x20457f,%rsi 214d27: e8 b4 14 00 00 call 2161e0 attrset(CRT_colors[DEFAULT_COLOR]); 214d2c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214d34: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214d3c: 8b 70 04 mov 0x4(%rax),%esi 214d3f: e8 3c 94 02 00 call 23e180 mvaddstr(line++, 0, "Memory bar: "); 214d44: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214d4c: 8b 75 f0 mov -0x10(%rbp),%esi 214d4f: 89 f0 mov %esi,%eax 214d51: 83 c0 01 add $0x1,%eax 214d54: 89 45 f0 mov %eax,-0x10(%rbp) 214d57: 31 d2 xor %edx,%edx 214d59: e8 32 94 02 00 call 23e190 214d5e: 83 f8 ff cmp $0xffffffff,%eax 214d61: 0f 85 05 00 00 00 jne 214d6c 214d67: e9 1c 00 00 00 jmp 214d88 214d6c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214d74: 48 be ab 4c 20 00 00 00 00 00 movabs $0x204cab,%rsi 214d7e: ba ff ff ff ff mov $0xffffffff,%edx 214d83: e8 28 94 02 00 call 23e1b0 addattrstr(CRT_colors[BAR_BORDER], "["); 214d88: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214d90: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214d96: 48 be 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rsi 214da0: e8 3b 14 00 00 call 2161e0 addattrstr(CRT_colors[MEMORY_USED], "used"); addstr("/"); 214da5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214dad: 8b b8 c4 00 00 00 mov 0xc4(%rax),%edi 214db3: 48 be 55 65 20 00 00 00 00 00 movabs $0x206555,%rsi 214dbd: e8 1e 14 00 00 call 2161e0 214dc2: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214dca: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214dd4: ba ff ff ff ff mov $0xffffffff,%edx 214dd9: e8 d2 93 02 00 call 23e1b0 addattrstr(CRT_colors[MEMORY_BUFFERS_TEXT], "buffers"); addstr("/"); 214dde: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214de6: 8b b8 cc 00 00 00 mov 0xcc(%rax),%edi 214dec: 48 be 00 67 20 00 00 00 00 00 movabs $0x206700,%rsi 214df6: e8 e5 13 00 00 call 2161e0 214dfb: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214e03: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214e0d: ba ff ff ff ff mov $0xffffffff,%edx 214e12: e8 99 93 02 00 call 23e1b0 addattrstr(CRT_colors[MEMORY_SHARED], "shared"); addstr("/"); 214e17: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214e1f: 8b b8 d4 00 00 00 mov 0xd4(%rax),%edi 214e25: 48 be bb 4c 20 00 00 00 00 00 movabs $0x204cbb,%rsi 214e2f: e8 ac 13 00 00 call 2161e0 214e34: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214e3c: 48 be e7 34 20 00 00 00 00 00 movabs $0x2034e7,%rsi 214e46: ba ff ff ff ff mov $0xffffffff,%edx 214e4b: e8 60 93 02 00 call 23e1b0 addattrstr(CRT_colors[MEMORY_CACHE], "cache"); 214e50: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214e58: 8b b8 d0 00 00 00 mov 0xd0(%rax),%edi 214e5e: 48 be 66 4b 20 00 00 00 00 00 movabs $0x204b66,%rsi 214e68: e8 73 13 00 00 call 2161e0 addattrstr(CRT_colors[BAR_SHADOW], " used/total"); 214e6d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214e75: 8b b8 b8 00 00 00 mov 0xb8(%rax),%edi 214e7b: 48 be 35 6a 20 00 00 00 00 00 movabs $0x206a35,%rsi 214e85: e8 56 13 00 00 call 2161e0 addattrstr(CRT_colors[BAR_BORDER], "]"); 214e8a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214e92: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214e98: 48 be 7f 45 20 00 00 00 00 00 movabs $0x20457f,%rsi 214ea2: e8 39 13 00 00 call 2161e0 attrset(CRT_colors[DEFAULT_COLOR]); 214ea7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214eaf: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214eb7: 8b 70 04 mov 0x4(%rax),%esi 214eba: e8 c1 92 02 00 call 23e180 mvaddstr(line++, 0, "Swap bar: "); 214ebf: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214ec7: 8b 75 f0 mov -0x10(%rbp),%esi 214eca: 89 f0 mov %esi,%eax 214ecc: 83 c0 01 add $0x1,%eax 214ecf: 89 45 f0 mov %eax,-0x10(%rbp) 214ed2: 31 d2 xor %edx,%edx 214ed4: e8 b7 92 02 00 call 23e190 214ed9: 83 f8 ff cmp $0xffffffff,%eax 214edc: 0f 85 05 00 00 00 jne 214ee7 214ee2: e9 1c 00 00 00 jmp 214f03 214ee7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214eef: 48 be 16 58 20 00 00 00 00 00 movabs $0x205816,%rsi 214ef9: ba ff ff ff ff mov $0xffffffff,%edx 214efe: e8 ad 92 02 00 call 23e1b0 addattrstr(CRT_colors[BAR_BORDER], "["); 214f03: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214f0b: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214f11: 48 be 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rsi 214f1b: e8 c0 12 00 00 call 2161e0 addattrstr(CRT_colors[SWAP], "used"); 214f20: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214f28: 8b 78 68 mov 0x68(%rax),%edi 214f2b: 48 be 55 65 20 00 00 00 00 00 movabs $0x206555,%rsi 214f35: e8 a6 12 00 00 call 2161e0 addattrstr(CRT_colors[BAR_SHADOW], " used/total"); 214f3a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214f42: 8b b8 b8 00 00 00 mov 0xb8(%rax),%edi 214f48: 48 be e9 34 20 00 00 00 00 00 movabs $0x2034e9,%rsi 214f52: e8 89 12 00 00 call 2161e0 addattrstr(CRT_colors[BAR_BORDER], "]"); 214f57: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214f5f: 8b b8 b4 00 00 00 mov 0xb4(%rax),%edi 214f65: 48 be 7f 45 20 00 00 00 00 00 movabs $0x20457f,%rsi 214f6f: e8 6c 12 00 00 call 2161e0 attrset(CRT_colors[DEFAULT_COLOR]); 214f74: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214f7c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 214f84: 8b 70 04 mov 0x4(%rax),%esi 214f87: e8 f4 91 02 00 call 23e180 mvaddstr(line++, 0, "Type and layout of header meters are configurable in the setup screen."); 214f8c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214f94: 8b 75 f0 mov -0x10(%rbp),%esi 214f97: 89 f0 mov %esi,%eax 214f99: 83 c0 01 add $0x1,%eax 214f9c: 89 45 f0 mov %eax,-0x10(%rbp) 214f9f: 31 d2 xor %edx,%edx 214fa1: e8 ea 91 02 00 call 23e190 214fa6: 83 f8 ff cmp $0xffffffff,%eax 214fa9: 0f 85 05 00 00 00 jne 214fb4 214faf: e9 1c 00 00 00 jmp 214fd0 214fb4: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214fbc: 48 be 84 3e 20 00 00 00 00 00 movabs $0x203e84,%rsi 214fc6: ba ff ff ff ff mov $0xffffffff,%edx 214fcb: e8 e0 91 02 00 call 23e1b0 if (CRT_colorScheme == COLORSCHEME_MONOCHROME) { 214fd0: 83 3c 25 68 1d 24 00 01 cmpl $0x1,0x241d68 214fd8: 0f 85 3c 00 00 00 jne 21501a mvaddstr(line, 0, "In monochrome, meters display as different chars, in order: |#*@$%&."); 214fde: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 214fe6: 8b 75 f0 mov -0x10(%rbp),%esi 214fe9: 31 d2 xor %edx,%edx 214feb: e8 a0 91 02 00 call 23e190 214ff0: 83 f8 ff cmp $0xffffffff,%eax 214ff3: 0f 85 05 00 00 00 jne 214ffe 214ff9: e9 1c 00 00 00 jmp 21501a 214ffe: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215006: 48 be 0b 54 20 00 00 00 00 00 movabs $0x20540b,%rsi 215010: ba ff ff ff ff mov $0xffffffff,%edx 215015: e8 96 91 02 00 call 23e1b0 line++; 21501a: 8b 45 f0 mov -0x10(%rbp),%eax 21501d: 83 c0 01 add $0x1,%eax 215020: 89 45 f0 mov %eax,-0x10(%rbp) mvaddstr(line++, 0, "Process state: R: running; S: sleeping; T: traced/stopped; Z: zombie; D: disk sleep"); 215023: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21502b: 8b 75 f0 mov -0x10(%rbp),%esi 21502e: 89 f0 mov %esi,%eax 215030: 83 c0 01 add $0x1,%eax 215033: 89 45 f0 mov %eax,-0x10(%rbp) 215036: 31 d2 xor %edx,%edx 215038: e8 53 91 02 00 call 23e190 21503d: 83 f8 ff cmp $0xffffffff,%eax 215040: 0f 85 05 00 00 00 jne 21504b 215046: e9 1c 00 00 00 jmp 215067 21504b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215053: 48 be 08 67 20 00 00 00 00 00 movabs $0x206708,%rsi 21505d: ba ff ff ff ff mov $0xffffffff,%edx 215062: e8 49 91 02 00 call 23e1b0 line++; 215067: 8b 45 f0 mov -0x10(%rbp),%eax 21506a: 83 c0 01 add $0x1,%eax 21506d: 89 45 f0 mov %eax,-0x10(%rbp) const bool readonly = Settings_isReadonly(); 215070: e8 db 10 02 00 call 236150 215075: 24 01 and $0x1,%al 215077: 88 45 ef mov %al,-0x11(%rbp) for (item = 0; helpLeft[item].key; item++) { 21507a: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 215081: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215085: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 21508f: 48 6b c9 18 imul $0x18,%rcx,%rcx 215093: 48 01 c8 add %rcx,%rax 215096: 48 83 38 00 cmpq $0x0,(%rax) 21509a: 0f 84 47 03 00 00 je 2153e7 attrset((helpLeft[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[DEFAULT_COLOR]); 2150a0: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 2150a8: 48 89 45 d8 mov %rax,-0x28(%rbp) 2150ac: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2150b0: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 2150ba: 48 6b c9 18 imul $0x18,%rcx,%rcx 2150be: 48 01 c8 add %rcx,%rax 2150c1: f6 40 08 01 testb $0x1,0x8(%rax) 2150c5: 0f 84 20 00 00 00 je 2150eb 2150cb: f6 45 ef 01 testb $0x1,-0x11(%rbp) 2150cf: 0f 84 16 00 00 00 je 2150eb 2150d5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2150dd: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 2150e3: 89 45 d4 mov %eax,-0x2c(%rbp) 2150e6: e9 0e 00 00 00 jmp 2150f9 2150eb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2150f3: 8b 40 04 mov 0x4(%rax),%eax 2150f6: 89 45 d4 mov %eax,-0x2c(%rbp) 2150f9: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2150fd: 8b 75 d4 mov -0x2c(%rbp),%esi 215100: e8 7b 90 02 00 call 23e180 mvaddstr(line + item, 10, helpLeft[item].info); 215105: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21510d: 8b 75 f0 mov -0x10(%rbp),%esi 215110: 03 75 e8 add -0x18(%rbp),%esi 215113: ba 0a 00 00 00 mov $0xa,%edx 215118: e8 73 90 02 00 call 23e190 21511d: 83 f8 ff cmp $0xffffffff,%eax 215120: 0f 85 05 00 00 00 jne 21512b 215126: e9 2b 00 00 00 jmp 215156 21512b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215133: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215137: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 215141: 48 6b c9 18 imul $0x18,%rcx,%rcx 215145: 48 01 c8 add %rcx,%rax 215148: 48 8b 70 10 mov 0x10(%rax),%rsi 21514c: ba ff ff ff ff mov $0xffffffff,%edx 215151: e8 5a 90 02 00 call 23e1b0 attrset((helpLeft[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[HELP_BOLD]); 215156: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 21515e: 48 89 45 c8 mov %rax,-0x38(%rbp) 215162: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215166: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 215170: 48 6b c9 18 imul $0x18,%rcx,%rcx 215174: 48 01 c8 add %rcx,%rax 215177: f6 40 08 01 testb $0x1,0x8(%rax) 21517b: 0f 84 20 00 00 00 je 2151a1 215181: f6 45 ef 01 testb $0x1,-0x11(%rbp) 215185: 0f 84 16 00 00 00 je 2151a1 21518b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215193: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 215199: 89 45 c4 mov %eax,-0x3c(%rbp) 21519c: e9 11 00 00 00 jmp 2151b2 2151a1: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2151a9: 8b 80 10 01 00 00 mov 0x110(%rax),%eax 2151af: 89 45 c4 mov %eax,-0x3c(%rbp) 2151b2: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2151b6: 8b 75 c4 mov -0x3c(%rbp),%esi 2151b9: e8 c2 8f 02 00 call 23e180 mvaddstr(line + item, 1, helpLeft[item].key); 2151be: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2151c6: 8b 75 f0 mov -0x10(%rbp),%esi 2151c9: 03 75 e8 add -0x18(%rbp),%esi 2151cc: ba 01 00 00 00 mov $0x1,%edx 2151d1: e8 ba 8f 02 00 call 23e190 2151d6: 83 f8 ff cmp $0xffffffff,%eax 2151d9: 0f 85 05 00 00 00 jne 2151e4 2151df: e9 2a 00 00 00 jmp 21520e 2151e4: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2151ec: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2151f0: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 2151fa: 48 6b c9 18 imul $0x18,%rcx,%rcx 2151fe: 48 01 c8 add %rcx,%rax 215201: 48 8b 30 mov (%rax),%rsi 215204: ba ff ff ff ff mov $0xffffffff,%edx 215209: e8 a2 8f 02 00 call 23e1b0 if (String_eq(helpLeft[item].key, " H: ")) { 21520e: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215212: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 21521c: 48 6b c9 18 imul $0x18,%rcx,%rcx 215220: 48 01 c8 add %rcx,%rax 215223: 48 8b 38 mov (%rax),%rdi 215226: 48 be dc 3c 20 00 00 00 00 00 movabs $0x203cdc,%rsi 215230: e8 eb 0f 00 00 call 216220 215235: a8 01 test $0x1,%al 215237: 0f 85 05 00 00 00 jne 215242 21523d: e9 af 00 00 00 jmp 2152f1 attrset((helpLeft[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[PROCESS_THREAD]); 215242: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 21524a: 48 89 45 b8 mov %rax,-0x48(%rbp) 21524e: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215252: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 21525c: 48 6b c9 18 imul $0x18,%rcx,%rcx 215260: 48 01 c8 add %rcx,%rax 215263: f6 40 08 01 testb $0x1,0x8(%rax) 215267: 0f 84 20 00 00 00 je 21528d 21526d: f6 45 ef 01 testb $0x1,-0x11(%rbp) 215271: 0f 84 16 00 00 00 je 21528d 215277: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21527f: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 215285: 89 45 b4 mov %eax,-0x4c(%rbp) 215288: e9 11 00 00 00 jmp 21529e 21528d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215295: 8b 80 a4 00 00 00 mov 0xa4(%rax),%eax 21529b: 89 45 b4 mov %eax,-0x4c(%rbp) 21529e: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2152a2: 8b 75 b4 mov -0x4c(%rbp),%esi 2152a5: e8 d6 8e 02 00 call 23e180 mvaddstr(line + item, 33, "threads"); 2152aa: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2152b2: 8b 75 f0 mov -0x10(%rbp),%esi 2152b5: 03 75 e8 add -0x18(%rbp),%esi 2152b8: ba 21 00 00 00 mov $0x21,%edx 2152bd: e8 ce 8e 02 00 call 23e190 2152c2: 83 f8 ff cmp $0xffffffff,%eax 2152c5: 0f 85 05 00 00 00 jne 2152d0 2152cb: e9 1c 00 00 00 jmp 2152ec 2152d0: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2152d8: 48 be 6c 4b 20 00 00 00 00 00 movabs $0x204b6c,%rsi 2152e2: ba ff ff ff ff mov $0xffffffff,%edx 2152e7: e8 c4 8e 02 00 call 23e1b0 } else if (String_eq(helpLeft[item].key, " K: ")) { 2152ec: e9 e3 00 00 00 jmp 2153d4 2152f1: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2152f5: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 2152ff: 48 6b c9 18 imul $0x18,%rcx,%rcx 215303: 48 01 c8 add %rcx,%rax 215306: 48 8b 38 mov (%rax),%rdi 215309: 48 be c2 4c 20 00 00 00 00 00 movabs $0x204cc2,%rsi 215313: e8 08 0f 00 00 call 216220 215318: a8 01 test $0x1,%al 21531a: 0f 85 05 00 00 00 jne 215325 215320: e9 aa 00 00 00 jmp 2153cf attrset((helpLeft[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[PROCESS_THREAD]); 215325: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 21532d: 48 89 45 a8 mov %rax,-0x58(%rbp) 215331: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215335: 48 b8 30 6e 20 00 00 00 00 00 movabs $0x206e30,%rax 21533f: 48 6b c9 18 imul $0x18,%rcx,%rcx 215343: 48 01 c8 add %rcx,%rax 215346: f6 40 08 01 testb $0x1,0x8(%rax) 21534a: 0f 84 20 00 00 00 je 215370 215350: f6 45 ef 01 testb $0x1,-0x11(%rbp) 215354: 0f 84 16 00 00 00 je 215370 21535a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215362: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 215368: 89 45 a4 mov %eax,-0x5c(%rbp) 21536b: e9 11 00 00 00 jmp 215381 215370: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215378: 8b 80 a4 00 00 00 mov 0xa4(%rax),%eax 21537e: 89 45 a4 mov %eax,-0x5c(%rbp) 215381: 48 8b 7d a8 mov -0x58(%rbp),%rdi 215385: 8b 75 a4 mov -0x5c(%rbp),%esi 215388: e8 f3 8d 02 00 call 23e180 mvaddstr(line + item, 27, "threads"); 21538d: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215395: 8b 75 f0 mov -0x10(%rbp),%esi 215398: 03 75 e8 add -0x18(%rbp),%esi 21539b: ba 1b 00 00 00 mov $0x1b,%edx 2153a0: e8 eb 8d 02 00 call 23e190 2153a5: 83 f8 ff cmp $0xffffffff,%eax 2153a8: 0f 85 05 00 00 00 jne 2153b3 2153ae: e9 1c 00 00 00 jmp 2153cf 2153b3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2153bb: 48 be 6c 4b 20 00 00 00 00 00 movabs $0x204b6c,%rsi 2153c5: ba ff ff ff ff mov $0xffffffff,%edx 2153ca: e8 e1 8d 02 00 call 23e1b0 2153cf: e9 00 00 00 00 jmp 2153d4 } 2153d4: e9 00 00 00 00 jmp 2153d9 for (item = 0; helpLeft[item].key; item++) { 2153d9: 8b 45 e8 mov -0x18(%rbp),%eax 2153dc: 83 c0 01 add $0x1,%eax 2153df: 89 45 e8 mov %eax,-0x18(%rbp) 2153e2: e9 9a fc ff ff jmp 215081 int leftHelpItems = item; 2153e7: 8b 45 e8 mov -0x18(%rbp),%eax 2153ea: 89 45 e4 mov %eax,-0x1c(%rbp) for (item = 0; helpRight[item].key; item++) { 2153ed: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 2153f4: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2153f8: 48 b8 d0 6f 20 00 00 00 00 00 movabs $0x206fd0,%rax 215402: 48 6b c9 18 imul $0x18,%rcx,%rcx 215406: 48 01 c8 add %rcx,%rax 215409: 48 83 38 00 cmpq $0x0,(%rax) 21540d: 0f 84 7c 01 00 00 je 21558f attrset((helpRight[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[HELP_BOLD]); 215413: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 21541b: 48 89 45 98 mov %rax,-0x68(%rbp) 21541f: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215423: 48 b8 d0 6f 20 00 00 00 00 00 movabs $0x206fd0,%rax 21542d: 48 6b c9 18 imul $0x18,%rcx,%rcx 215431: 48 01 c8 add %rcx,%rax 215434: f6 40 08 01 testb $0x1,0x8(%rax) 215438: 0f 84 20 00 00 00 je 21545e 21543e: f6 45 ef 01 testb $0x1,-0x11(%rbp) 215442: 0f 84 16 00 00 00 je 21545e 215448: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215450: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 215456: 89 45 94 mov %eax,-0x6c(%rbp) 215459: e9 11 00 00 00 jmp 21546f 21545e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215466: 8b 80 10 01 00 00 mov 0x110(%rax),%eax 21546c: 89 45 94 mov %eax,-0x6c(%rbp) 21546f: 48 8b 7d 98 mov -0x68(%rbp),%rdi 215473: 8b 75 94 mov -0x6c(%rbp),%esi 215476: e8 05 8d 02 00 call 23e180 mvaddstr(line + item, 41, helpRight[item].key); 21547b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215483: 8b 75 f0 mov -0x10(%rbp),%esi 215486: 03 75 e8 add -0x18(%rbp),%esi 215489: ba 29 00 00 00 mov $0x29,%edx 21548e: e8 fd 8c 02 00 call 23e190 215493: 83 f8 ff cmp $0xffffffff,%eax 215496: 0f 85 05 00 00 00 jne 2154a1 21549c: e9 2a 00 00 00 jmp 2154cb 2154a1: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2154a9: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2154ad: 48 b8 d0 6f 20 00 00 00 00 00 movabs $0x206fd0,%rax 2154b7: 48 6b c9 18 imul $0x18,%rcx,%rcx 2154bb: 48 01 c8 add %rcx,%rax 2154be: 48 8b 30 mov (%rax),%rsi 2154c1: ba ff ff ff ff mov $0xffffffff,%edx 2154c6: e8 e5 8c 02 00 call 23e1b0 attrset((helpRight[item].roInactive && readonly) ? CRT_colors[HELP_SHADOW] : CRT_colors[DEFAULT_COLOR]); 2154cb: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 2154d3: 48 89 45 88 mov %rax,-0x78(%rbp) 2154d7: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2154db: 48 b8 d0 6f 20 00 00 00 00 00 movabs $0x206fd0,%rax 2154e5: 48 6b c9 18 imul $0x18,%rcx,%rcx 2154e9: 48 01 c8 add %rcx,%rax 2154ec: f6 40 08 01 testb $0x1,0x8(%rax) 2154f0: 0f 84 20 00 00 00 je 215516 2154f6: f6 45 ef 01 testb $0x1,-0x11(%rbp) 2154fa: 0f 84 16 00 00 00 je 215516 215500: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 215508: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 21550e: 89 45 84 mov %eax,-0x7c(%rbp) 215511: e9 0e 00 00 00 jmp 215524 215516: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21551e: 8b 40 04 mov 0x4(%rax),%eax 215521: 89 45 84 mov %eax,-0x7c(%rbp) 215524: 48 8b 7d 88 mov -0x78(%rbp),%rdi 215528: 8b 75 84 mov -0x7c(%rbp),%esi 21552b: e8 50 8c 02 00 call 23e180 mvaddstr(line + item, 50, helpRight[item].info); 215530: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215538: 8b 75 f0 mov -0x10(%rbp),%esi 21553b: 03 75 e8 add -0x18(%rbp),%esi 21553e: ba 32 00 00 00 mov $0x32,%edx 215543: e8 48 8c 02 00 call 23e190 215548: 83 f8 ff cmp $0xffffffff,%eax 21554b: 0f 85 05 00 00 00 jne 215556 215551: e9 2b 00 00 00 jmp 215581 215556: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21555e: 48 63 4d e8 movslq -0x18(%rbp),%rcx 215562: 48 b8 d0 6f 20 00 00 00 00 00 movabs $0x206fd0,%rax 21556c: 48 6b c9 18 imul $0x18,%rcx,%rcx 215570: 48 01 c8 add %rcx,%rax 215573: 48 8b 70 10 mov 0x10(%rax),%rsi 215577: ba ff ff ff ff mov $0xffffffff,%edx 21557c: e8 2f 8c 02 00 call 23e1b0 for (item = 0; helpRight[item].key; item++) { 215581: 8b 45 e8 mov -0x18(%rbp),%eax 215584: 83 c0 01 add $0x1,%eax 215587: 89 45 e8 mov %eax,-0x18(%rbp) 21558a: e9 65 fe ff ff jmp 2153f4 line += MAXIMUM(leftHelpItems, item); 21558f: 8b 45 e4 mov -0x1c(%rbp),%eax 215592: 3b 45 e8 cmp -0x18(%rbp),%eax 215595: 0f 8e 0b 00 00 00 jle 2155a6 21559b: 8b 45 e4 mov -0x1c(%rbp),%eax 21559e: 89 45 80 mov %eax,-0x80(%rbp) 2155a1: e9 06 00 00 00 jmp 2155ac 2155a6: 8b 45 e8 mov -0x18(%rbp),%eax 2155a9: 89 45 80 mov %eax,-0x80(%rbp) 2155ac: 8b 45 80 mov -0x80(%rbp),%eax 2155af: 03 45 f0 add -0x10(%rbp),%eax 2155b2: 89 45 f0 mov %eax,-0x10(%rbp) line++; 2155b5: 8b 45 f0 mov -0x10(%rbp),%eax 2155b8: 83 c0 01 add $0x1,%eax 2155bb: 89 45 f0 mov %eax,-0x10(%rbp) attrset(CRT_colors[HELP_BOLD]); 2155be: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2155c6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2155ce: 8b b0 10 01 00 00 mov 0x110(%rax),%esi 2155d4: e8 a7 8b 02 00 call 23e180 mvaddstr(line++, 0, "Press any key to return."); 2155d9: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2155e1: 8b 75 f0 mov -0x10(%rbp),%esi 2155e4: 89 f0 mov %esi,%eax 2155e6: 83 c0 01 add $0x1,%eax 2155e9: 89 45 f0 mov %eax,-0x10(%rbp) 2155ec: 31 d2 xor %edx,%edx 2155ee: e8 9d 8b 02 00 call 23e190 2155f3: 83 f8 ff cmp $0xffffffff,%eax 2155f6: 0f 85 05 00 00 00 jne 215601 2155fc: e9 1c 00 00 00 jmp 21561d 215601: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215609: 48 be dd 5b 20 00 00 00 00 00 movabs $0x205bdd,%rsi 215613: ba ff ff ff ff mov $0xffffffff,%edx 215618: e8 93 8b 02 00 call 23e1b0 attrset(CRT_colors[DEFAULT_COLOR]); 21561d: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215625: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21562d: 8b 70 04 mov 0x4(%rax),%esi 215630: e8 4b 8b 02 00 call 23e180 refresh(); 215635: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21563d: e8 7e 8b 02 00 call 23e1c0 CRT_readKey(); 215642: e8 59 70 00 00 call 21c6a0 clear(); 215647: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21564f: e8 1c 8b 02 00 call 23e170 return HTOP_RECALCULATE | HTOP_REDRAW_BAR | HTOP_KEEP_FOLLOWING; 215654: b8 2b 00 00 00 mov $0x2b,%eax 215659: 48 81 c4 80 00 00 00 add $0x80,%rsp 215660: 5d pop %rbp 215661: c3 ret 215662: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21566c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000215670 : static Htop_Reaction actionSetup(State* st) { 215670: 55 push %rbp 215671: 48 89 e5 mov %rsp,%rbp 215674: 48 83 ec 10 sub $0x10,%rsp 215678: 48 89 7d f8 mov %rdi,-0x8(%rbp) Action_runSetup(st); 21567c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 215680: e8 cb 0b 00 00 call 216250 return HTOP_REFRESH | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR | HTOP_RESIZE; 215685: b8 e1 00 00 00 mov $0xe1,%eax 21568a: 48 83 c4 10 add $0x10,%rsp 21568e: 5d pop %rbp 21568f: c3 ret 0000000000215690 : static Htop_Reaction actionToggleUserlandThreads(State* st) { 215690: 55 push %rbp 215691: 48 89 e5 mov %rsp,%rbp 215694: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->hideUserlandThreads = !st->settings->hideUserlandThreads; 215698: 48 8b 45 f8 mov -0x8(%rbp),%rax 21569c: 48 8b 00 mov (%rax),%rax 21569f: 8a 48 51 mov 0x51(%rax),%cl 2156a2: 80 f1 ff xor $0xff,%cl 2156a5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2156a9: 48 8b 00 mov (%rax),%rax 2156ac: 80 e1 01 and $0x1,%cl 2156af: 88 48 51 mov %cl,0x51(%rax) return HTOP_RECALCULATE | HTOP_SAVE_SETTINGS | HTOP_KEEP_FOLLOWING; 2156b2: b8 0f 00 00 00 mov $0xf,%eax 2156b7: 5d pop %rbp 2156b8: c3 ret 2156b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002156c0 : static Htop_Reaction actionInvertSortOrder(State* st) { 2156c0: 55 push %rbp 2156c1: 48 89 e5 mov %rsp,%rbp 2156c4: 48 83 ec 10 sub $0x10,%rsp 2156c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Settings_invertSortOrder(st->settings); 2156cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2156d0: 48 8b 38 mov (%rax),%rdi 2156d3: e8 58 09 02 00 call 236030 if (st->pauseProcessUpdate) 2156d8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2156dc: f6 40 28 01 testb $0x1,0x28(%rax) 2156e0: 0f 84 0d 00 00 00 je 2156f3 ProcessList_sort(st->pl); 2156e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2156ea: 48 8b 78 10 mov 0x10(%rax),%rdi 2156ee: e8 3d a8 01 00 call 22ff30 return HTOP_REFRESH | HTOP_SAVE_SETTINGS | HTOP_KEEP_FOLLOWING; 2156f3: b8 0d 00 00 00 mov $0xd,%eax 2156f8: 48 83 c4 10 add $0x10,%rsp 2156fc: 5d pop %rbp 2156fd: c3 ret 2156fe: 66 90 xchg %ax,%ax 0000000000215700 : static Htop_Reaction actionToggleKernelThreads(State* st) { 215700: 55 push %rbp 215701: 48 89 e5 mov %rsp,%rbp 215704: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->hideKernelThreads = !st->settings->hideKernelThreads; 215708: 48 8b 45 f8 mov -0x8(%rbp),%rax 21570c: 48 8b 00 mov (%rax),%rax 21570f: 8a 48 50 mov 0x50(%rax),%cl 215712: 80 f1 ff xor $0xff,%cl 215715: 48 8b 45 f8 mov -0x8(%rbp),%rax 215719: 48 8b 00 mov (%rax),%rax 21571c: 80 e1 01 and $0x1,%cl 21571f: 88 48 50 mov %cl,0x50(%rax) return HTOP_RECALCULATE | HTOP_SAVE_SETTINGS | HTOP_KEEP_FOLLOWING; 215722: b8 0f 00 00 00 mov $0xf,%eax 215727: 5d pop %rbp 215728: c3 ret 215729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000215730 : static Htop_Reaction actionSortByMemory(State* st) { 215730: 55 push %rbp 215731: 48 89 e5 mov %rsp,%rbp 215734: 48 83 ec 10 sub $0x10,%rsp 215738: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Action_setSortKey(st->settings, PERCENT_MEM); 21573c: 48 8b 45 f8 mov -0x8(%rbp),%rax 215740: 48 8b 38 mov (%rax),%rdi 215743: be 30 00 00 00 mov $0x30,%esi 215748: e8 c3 e8 ff ff call 214010 21574d: 48 83 c4 10 add $0x10,%rsp 215751: 5d pop %rbp 215752: c3 ret 215753: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21575d: 0f 1f 00 nopl (%rax) 0000000000215760 : static Htop_Reaction actionSortByPID(State* st) { 215760: 55 push %rbp 215761: 48 89 e5 mov %rsp,%rbp 215764: 48 83 ec 10 sub $0x10,%rsp 215768: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Action_setSortKey(st->settings, PID); 21576c: 48 8b 45 f8 mov -0x8(%rbp),%rax 215770: 48 8b 38 mov (%rax),%rdi 215773: be 01 00 00 00 mov $0x1,%esi 215778: e8 93 e8 ff ff call 214010 21577d: 48 83 c4 10 add $0x10,%rsp 215781: 5d pop %rbp 215782: c3 ret 215783: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21578d: 0f 1f 00 nopl (%rax) 0000000000215790 : static Htop_Reaction actionSortByCPU(State* st) { 215790: 55 push %rbp 215791: 48 89 e5 mov %rsp,%rbp 215794: 48 83 ec 10 sub $0x10,%rsp 215798: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Action_setSortKey(st->settings, PERCENT_CPU); 21579c: 48 8b 45 f8 mov -0x8(%rbp),%rax 2157a0: 48 8b 38 mov (%rax),%rdi 2157a3: be 2f 00 00 00 mov $0x2f,%esi 2157a8: e8 63 e8 ff ff call 214010 2157ad: 48 83 c4 10 add $0x10,%rsp 2157b1: 5d pop %rbp 2157b2: c3 ret 2157b3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2157bd: 0f 1f 00 nopl (%rax) 00000000002157c0 : static Htop_Reaction actionSortByTime(State* st) { 2157c0: 55 push %rbp 2157c1: 48 89 e5 mov %rsp,%rbp 2157c4: 48 83 ec 10 sub $0x10,%rsp 2157c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Action_setSortKey(st->settings, TIME); 2157cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2157d0: 48 8b 38 mov (%rax),%rdi 2157d3: be 32 00 00 00 mov $0x32,%esi 2157d8: e8 33 e8 ff ff call 214010 2157dd: 48 83 c4 10 add $0x10,%rsp 2157e1: 5d pop %rbp 2157e2: c3 ret 2157e3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2157ed: 0f 1f 00 nopl (%rax) 00000000002157f0 : static Htop_Reaction actionUntagAll(State* st) { 2157f0: 55 push %rbp 2157f1: 48 89 e5 mov %rsp,%rbp 2157f4: 48 83 ec 20 sub $0x20,%rsp 2157f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) for (int i = 0; i < Panel_size((Panel*)st->mainPanel); i++) { 2157fc: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 215803: 8b 45 f4 mov -0xc(%rbp),%eax 215806: 89 45 e4 mov %eax,-0x1c(%rbp) 215809: 48 8b 45 f8 mov -0x8(%rbp),%rax 21580d: 48 8b 78 18 mov 0x18(%rax),%rdi 215811: e8 8a 29 01 00 call 2281a0 215816: 89 c1 mov %eax,%ecx 215818: 8b 45 e4 mov -0x1c(%rbp),%eax 21581b: 39 c8 cmp %ecx,%eax 21581d: 0f 8d 2d 00 00 00 jge 215850 Process* p = (Process*) Panel_get((Panel*)st->mainPanel, i); 215823: 48 8b 45 f8 mov -0x8(%rbp),%rax 215827: 48 8b 78 18 mov 0x18(%rax),%rdi 21582b: 8b 75 f4 mov -0xc(%rbp),%esi 21582e: e8 4d 27 01 00 call 227f80 215833: 48 89 45 e8 mov %rax,-0x18(%rbp) p->tag = false; 215837: 48 8b 45 e8 mov -0x18(%rbp),%rax 21583b: c6 80 ed 00 00 00 00 movb $0x0,0xed(%rax) for (int i = 0; i < Panel_size((Panel*)st->mainPanel); i++) { 215842: 8b 45 f4 mov -0xc(%rbp),%eax 215845: 83 c0 01 add $0x1,%eax 215848: 89 45 f4 mov %eax,-0xc(%rbp) 21584b: e9 b3 ff ff ff jmp 215803 return HTOP_REFRESH; 215850: b8 01 00 00 00 mov $0x1,%eax 215855: 48 83 c4 20 add $0x20,%rsp 215859: 5d pop %rbp 21585a: c3 ret 21585b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000215860 : static Htop_Reaction actionTogglePauseProcessUpdate(State* st) { 215860: 55 push %rbp 215861: 48 89 e5 mov %rsp,%rbp 215864: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->pauseProcessUpdate = !st->pauseProcessUpdate; 215868: 48 8b 45 f8 mov -0x8(%rbp),%rax 21586c: 8a 48 28 mov 0x28(%rax),%cl 21586f: 80 f1 ff xor $0xff,%cl 215872: 48 8b 45 f8 mov -0x8(%rbp),%rax 215876: 80 e1 01 and $0x1,%cl 215879: 88 48 28 mov %cl,0x28(%rax) return HTOP_REFRESH | HTOP_REDRAW_BAR; 21587c: b8 21 00 00 00 mov $0x21,%eax 215881: 5d pop %rbp 215882: c3 ret 215883: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21588d: 0f 1f 00 nopl (%rax) 0000000000215890 : static Htop_Reaction actionLowerPriority(State* st) { 215890: 55 push %rbp 215891: 48 89 e5 mov %rsp,%rbp 215894: 48 83 ec 20 sub $0x20,%rsp 215898: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 21589c: e8 af 08 02 00 call 236150 2158a1: a8 01 test $0x1,%al 2158a3: 0f 85 05 00 00 00 jne 2158ae 2158a9: e9 0c 00 00 00 jmp 2158ba return HTOP_OK; 2158ae: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 2158b5: e9 2a 00 00 00 jmp 2158e4 bool changed = changePriority(st->mainPanel, 1); 2158ba: 48 8b 45 f0 mov -0x10(%rbp),%rax 2158be: 48 8b 78 18 mov 0x18(%rax),%rdi 2158c2: be 01 00 00 00 mov $0x1,%esi 2158c7: e8 14 0a 00 00 call 2162e0 2158cc: 24 01 and $0x1,%al 2158ce: 88 45 ef mov %al,-0x11(%rbp) return changed ? HTOP_REFRESH : HTOP_OK; 2158d1: 8a 55 ef mov -0x11(%rbp),%dl 2158d4: 31 c0 xor %eax,%eax 2158d6: b9 01 00 00 00 mov $0x1,%ecx 2158db: f6 c2 01 test $0x1,%dl 2158de: 0f 45 c1 cmovne %ecx,%eax 2158e1: 89 45 fc mov %eax,-0x4(%rbp) } 2158e4: 8b 45 fc mov -0x4(%rbp),%eax 2158e7: 48 83 c4 20 add $0x20,%rsp 2158eb: 5d pop %rbp 2158ec: c3 ret 2158ed: 0f 1f 00 nopl (%rax) 00000000002158f0 : static Htop_Reaction actionRedraw(ATTR_UNUSED State* st) { 2158f0: 55 push %rbp 2158f1: 48 89 e5 mov %rsp,%rbp 2158f4: 48 83 ec 10 sub $0x10,%rsp 2158f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) clear(); 2158fc: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215904: e8 67 88 02 00 call 23e170 return HTOP_REFRESH | HTOP_REDRAW_BAR; 215909: b8 21 00 00 00 mov $0x21,%eax 21590e: 48 83 c4 10 add $0x10,%rsp 215912: 5d pop %rbp 215913: c3 ret 215914: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21591e: 66 90 xchg %ax,%ax 0000000000215920 : static Htop_Reaction actionCollapseIntoParent(State* st) { 215920: 55 push %rbp 215921: 48 89 e5 mov %rsp,%rbp 215924: 48 83 ec 20 sub $0x20,%rsp 215928: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (!st->settings->treeView) { 21592c: 48 8b 45 f0 mov -0x10(%rbp),%rax 215930: 48 8b 00 mov (%rax),%rax 215933: f6 40 4a 01 testb $0x1,0x4a(%rax) 215937: 0f 85 0c 00 00 00 jne 215949 return HTOP_OK; 21593d: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215944: e9 25 00 00 00 jmp 21596e bool changed = collapseIntoParent((Panel*)st->mainPanel); 215949: 48 8b 45 f0 mov -0x10(%rbp),%rax 21594d: 48 8b 78 18 mov 0x18(%rax),%rdi 215951: e8 0a 0a 00 00 call 216360 215956: 24 01 and $0x1,%al 215958: 88 45 ef mov %al,-0x11(%rbp) return changed ? HTOP_RECALCULATE : HTOP_OK; 21595b: 8a 55 ef mov -0x11(%rbp),%dl 21595e: 31 c0 xor %eax,%eax 215960: b9 03 00 00 00 mov $0x3,%ecx 215965: f6 c2 01 test $0x1,%dl 215968: 0f 45 c1 cmovne %ecx,%eax 21596b: 89 45 fc mov %eax,-0x4(%rbp) } 21596e: 8b 45 fc mov -0x4(%rbp),%eax 215971: 48 83 c4 20 add $0x20,%rsp 215975: 5d pop %rbp 215976: c3 ret 215977: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000215980 : static Htop_Reaction actionIncFilter(State* st) { 215980: 55 push %rbp 215981: 48 89 e5 mov %rsp,%rbp 215984: 48 83 ec 10 sub $0x10,%rsp 215988: 48 89 7d f8 mov %rdi,-0x8(%rbp) IncSet* inc = (st->mainPanel)->inc; 21598c: 48 8b 45 f8 mov -0x8(%rbp),%rax 215990: 48 8b 40 18 mov 0x18(%rax),%rax 215994: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 21599b: 48 89 45 f0 mov %rax,-0x10(%rbp) IncSet_activate(inc, INC_FILTER, (Panel*)st->mainPanel); 21599f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2159a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2159a7: 48 8b 50 18 mov 0x18(%rax),%rdx 2159ab: be 01 00 00 00 mov $0x1,%esi 2159b0: e8 3b b7 00 00 call 2210f0 st->pl->incFilter = IncSet_filter(inc); 2159b5: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2159b9: e8 b2 0a 00 00 call 216470 2159be: 48 89 c1 mov %rax,%rcx 2159c1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2159c5: 48 8b 40 10 mov 0x10(%rax),%rax 2159c9: 48 89 48 78 mov %rcx,0x78(%rax) return HTOP_REFRESH | HTOP_KEEP_FOLLOWING; 2159cd: b8 09 00 00 00 mov $0x9,%eax 2159d2: 48 83 c4 10 add $0x10,%rsp 2159d6: 5d pop %rbp 2159d7: c3 ret 2159d8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002159e0 : static Htop_Reaction actionHigherPriority(State* st) { 2159e0: 55 push %rbp 2159e1: 48 89 e5 mov %rsp,%rbp 2159e4: 48 83 ec 20 sub $0x20,%rsp 2159e8: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 2159ec: e8 5f 07 02 00 call 236150 2159f1: a8 01 test $0x1,%al 2159f3: 0f 85 05 00 00 00 jne 2159fe 2159f9: e9 0c 00 00 00 jmp 215a0a return HTOP_OK; 2159fe: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215a05: e9 2a 00 00 00 jmp 215a34 bool changed = changePriority(st->mainPanel, -1); 215a0a: 48 8b 45 f0 mov -0x10(%rbp),%rax 215a0e: 48 8b 78 18 mov 0x18(%rax),%rdi 215a12: be ff ff ff ff mov $0xffffffff,%esi 215a17: e8 c4 08 00 00 call 2162e0 215a1c: 24 01 and $0x1,%al 215a1e: 88 45 ef mov %al,-0x11(%rbp) return changed ? HTOP_REFRESH : HTOP_OK; 215a21: 8a 55 ef mov -0x11(%rbp),%dl 215a24: 31 c0 xor %eax,%eax 215a26: b9 01 00 00 00 mov $0x1,%ecx 215a2b: f6 c2 01 test $0x1,%dl 215a2e: 0f 45 c1 cmovne %ecx,%eax 215a31: 89 45 fc mov %eax,-0x4(%rbp) } 215a34: 8b 45 fc mov -0x4(%rbp),%eax 215a37: 48 83 c4 20 add $0x20,%rsp 215a3b: 5d pop %rbp 215a3c: c3 ret 215a3d: 0f 1f 00 nopl (%rax) 0000000000215a40 : static Htop_Reaction actionSetAffinity(State* st) { 215a40: 55 push %rbp 215a41: 48 89 e5 mov %rsp,%rbp 215a44: 48 83 ec 10 sub $0x10,%rsp 215a48: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 215a4c: e8 ff 06 02 00 call 236150 215a51: a8 01 test $0x1,%al 215a53: 0f 85 05 00 00 00 jne 215a5e 215a59: e9 0c 00 00 00 jmp 215a6a return HTOP_OK; 215a5e: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215a65: e9 28 00 00 00 jmp 215a92 if (st->pl->activeCPUs == 1) 215a6a: 48 8b 45 f0 mov -0x10(%rbp),%rax 215a6e: 48 8b 40 10 mov 0x10(%rax),%rax 215a72: 83 b8 e0 00 00 00 01 cmpl $0x1,0xe0(%rax) 215a79: 0f 85 0c 00 00 00 jne 215a8b return HTOP_OK; 215a7f: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215a86: e9 07 00 00 00 jmp 215a92 return HTOP_OK; 215a8b: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) } 215a92: 8b 45 fc mov -0x4(%rbp),%eax 215a95: 48 83 c4 10 add $0x10,%rsp 215a99: 5d pop %rbp 215a9a: c3 ret 215a9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000215aa0 : static Htop_Reaction actionTagAllChildren(State* st) { 215aa0: 55 push %rbp 215aa1: 48 89 e5 mov %rsp,%rbp 215aa4: 48 83 ec 20 sub $0x20,%rsp 215aa8: 48 89 7d f0 mov %rdi,-0x10(%rbp) Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 215aac: 48 8b 45 f0 mov -0x10(%rbp),%rax 215ab0: 48 8b 78 18 mov 0x18(%rax),%rdi 215ab4: e8 b7 25 01 00 call 228070 215ab9: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 215abd: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 215ac2: 0f 85 0c 00 00 00 jne 215ad4 return HTOP_OK; 215ac8: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215acf: e9 18 00 00 00 jmp 215aec tagAllChildren((Panel*)st->mainPanel, p); 215ad4: 48 8b 45 f0 mov -0x10(%rbp),%rax 215ad8: 48 8b 78 18 mov 0x18(%rax),%rdi 215adc: 48 8b 75 e8 mov -0x18(%rbp),%rsi 215ae0: e8 cb 09 00 00 call 2164b0 return HTOP_OK; 215ae5: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) } 215aec: 8b 45 fc mov -0x4(%rbp),%eax 215aef: 48 83 c4 20 add $0x20,%rsp 215af3: 5d pop %rbp 215af4: c3 ret 215af5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 215aff: 90 nop 0000000000215b00 : static Htop_Reaction actionShowEnvScreen(State* st) { 215b00: 55 push %rbp 215b01: 48 89 e5 mov %rsp,%rbp 215b04: 48 83 ec 20 sub $0x20,%rsp 215b08: 48 89 7d f0 mov %rdi,-0x10(%rbp) Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 215b0c: 48 8b 45 f0 mov -0x10(%rbp),%rax 215b10: 48 8b 78 18 mov 0x18(%rax),%rdi 215b14: e8 57 25 01 00 call 228070 215b19: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 215b1d: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 215b22: 0f 85 0c 00 00 00 jne 215b34 return HTOP_OK; 215b28: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215b2f: e9 38 00 00 00 jmp 215b6c EnvScreen* es = EnvScreen_new(p); 215b34: 48 8b 7d e8 mov -0x18(%rbp),%rdi 215b38: e8 73 85 00 00 call 21e0b0 215b3d: 48 89 45 e0 mov %rax,-0x20(%rbp) InfoScreen_run((InfoScreen*)es); 215b41: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215b45: e8 66 bd 00 00 call 2218b0 EnvScreen_delete((Object*)es); 215b4a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215b4e: e8 bd 85 00 00 call 21e110 clear(); 215b53: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215b5b: e8 10 86 02 00 call 23e170 CRT_enableDelay(); 215b60: e8 bb 6b 00 00 call 21c720 return HTOP_REFRESH | HTOP_REDRAW_BAR; 215b65: c7 45 fc 21 00 00 00 movl $0x21,-0x4(%rbp) } 215b6c: 8b 45 fc mov -0x4(%rbp),%eax 215b6f: 48 83 c4 20 add $0x20,%rsp 215b73: 5d pop %rbp 215b74: c3 ret 215b75: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 215b7f: 90 nop 0000000000215b80 : static Htop_Reaction actionKill(State* st) { 215b80: 55 push %rbp 215b81: 48 89 e5 mov %rsp,%rbp 215b84: 48 83 ec 30 sub $0x30,%rsp 215b88: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 215b8c: e8 bf 05 02 00 call 236150 215b91: a8 01 test $0x1,%al 215b93: 0f 85 05 00 00 00 jne 215b9e 215b99: e9 0c 00 00 00 jmp 215baa return HTOP_OK; 215b9e: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215ba5: e9 d5 00 00 00 jmp 215c7f Panel* signalsPanel = SignalsPanel_new(); 215baa: e8 01 0f 02 00 call 236ab0 215baf: 48 89 45 e8 mov %rax,-0x18(%rbp) const ListItem* sgn = (ListItem*) Action_pickFromVector(st, signalsPanel, 14, true); 215bb3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 215bb7: 48 8b 75 e8 mov -0x18(%rbp),%rsi 215bbb: ba 0e 00 00 00 mov $0xe,%edx 215bc0: b9 01 00 00 00 mov $0x1,%ecx 215bc5: e8 e6 e1 ff ff call 213db0 215bca: 48 89 45 e0 mov %rax,-0x20(%rbp) if (sgn && sgn->key != 0) { 215bce: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 215bd3: 0f 84 96 00 00 00 je 215c6f 215bd9: 48 8b 45 e0 mov -0x20(%rbp),%rax 215bdd: 83 78 10 00 cmpl $0x0,0x10(%rax) 215be1: 0f 84 88 00 00 00 je 215c6f Panel_setHeader((Panel*)st->mainPanel, "Sending..."); 215be7: 48 8b 45 f0 mov -0x10(%rbp),%rax 215beb: 48 8b 78 18 mov 0x18(%rax),%rdi 215bef: 48 be 4f 6c 20 00 00 00 00 00 movabs $0x206c4f,%rsi 215bf9: e8 f2 21 01 00 call 227df0 Panel_draw((Panel*)st->mainPanel, false, true, true, State_hideFunctionBar(st)); 215bfe: 48 8b 45 f0 mov -0x10(%rbp),%rax 215c02: 48 8b 40 18 mov 0x18(%rax),%rax 215c06: 48 89 45 d0 mov %rax,-0x30(%rbp) 215c0a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 215c0e: e8 8d 09 00 00 call 2165a0 215c13: 48 8b 7d d0 mov -0x30(%rbp),%rdi 215c17: 31 c9 xor %ecx,%ecx 215c19: 44 0f b6 c0 movzbl %al,%r8d 215c1d: 41 83 e0 01 and $0x1,%r8d 215c21: 31 f6 xor %esi,%esi 215c23: b9 01 00 00 00 mov $0x1,%ecx 215c28: 89 ca mov %ecx,%edx 215c2a: e8 41 26 01 00 call 228270 refresh(); 215c2f: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215c37: e8 84 85 02 00 call 23e1c0 MainPanel_foreachProcess(st->mainPanel, Process_sendSignal, (Arg) { .i = sgn->key }, NULL); 215c3c: 48 8b 45 f0 mov -0x10(%rbp),%rax 215c40: 48 8b 78 18 mov 0x18(%rax),%rdi 215c44: 48 8b 45 e0 mov -0x20(%rbp),%rax 215c48: 8b 40 10 mov 0x10(%rax),%eax 215c4b: 89 45 d8 mov %eax,-0x28(%rbp) 215c4e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 215c52: 48 be 90 e6 22 00 00 00 00 00 movabs $0x22e690,%rsi 215c5c: 31 c0 xor %eax,%eax 215c5e: 89 c1 mov %eax,%ecx 215c60: e8 fb c7 00 00 call 222460 napms(500); 215c65: bf f4 01 00 00 mov $0x1f4,%edi 215c6a: e8 61 85 02 00 call 23e1d0 Panel_delete((Object*)signalsPanel); 215c6f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 215c73: e8 88 1c 01 00 call 227900 return HTOP_REFRESH | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; 215c78: c7 45 fc 61 00 00 00 movl $0x61,-0x4(%rbp) } 215c7f: 8b 45 fc mov -0x4(%rbp),%eax 215c82: 48 83 c4 30 add $0x30,%rsp 215c86: 5d pop %rbp 215c87: c3 ret 215c88: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000215c90 : static Htop_Reaction actionLsof(State* st) { 215c90: 55 push %rbp 215c91: 48 89 e5 mov %rsp,%rbp 215c94: 48 83 ec 20 sub $0x20,%rsp 215c98: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 215c9c: e8 af 04 02 00 call 236150 215ca1: a8 01 test $0x1,%al 215ca3: 0f 85 05 00 00 00 jne 215cae 215ca9: e9 0c 00 00 00 jmp 215cba return HTOP_OK; 215cae: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215cb5: e9 60 00 00 00 jmp 215d1a const Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 215cba: 48 8b 45 f0 mov -0x10(%rbp),%rax 215cbe: 48 8b 78 18 mov 0x18(%rax),%rdi 215cc2: e8 a9 23 01 00 call 228070 215cc7: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 215ccb: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 215cd0: 0f 85 0c 00 00 00 jne 215ce2 return HTOP_OK; 215cd6: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215cdd: e9 38 00 00 00 jmp 215d1a OpenFilesScreen* ofs = OpenFilesScreen_new(p); 215ce2: 48 8b 7d e8 mov -0x18(%rbp),%rdi 215ce6: e8 e5 06 01 00 call 2263d0 215ceb: 48 89 45 e0 mov %rax,-0x20(%rbp) InfoScreen_run((InfoScreen*)ofs); 215cef: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215cf3: e8 b8 bb 00 00 call 2218b0 OpenFilesScreen_delete((Object*)ofs); 215cf8: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215cfc: e8 9f 07 01 00 call 2264a0 clear(); 215d01: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215d09: e8 62 84 02 00 call 23e170 CRT_enableDelay(); 215d0e: e8 0d 6a 00 00 call 21c720 return HTOP_REFRESH | HTOP_REDRAW_BAR; 215d13: c7 45 fc 21 00 00 00 movl $0x21,-0x4(%rbp) } 215d1a: 8b 45 fc mov -0x4(%rbp),%eax 215d1d: 48 83 c4 20 add $0x20,%rsp 215d21: 5d pop %rbp 215d22: c3 ret 215d23: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 215d2d: 0f 1f 00 nopl (%rax) 0000000000215d30 : static Htop_Reaction actionToggleMergedCommand(State* st) { 215d30: 55 push %rbp 215d31: 48 89 e5 mov %rsp,%rbp 215d34: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->showMergedCommand = !st->settings->showMergedCommand; 215d38: 48 8b 45 f8 mov -0x8(%rbp),%rax 215d3c: 48 8b 00 mov (%rax),%rax 215d3f: 8a 48 5e mov 0x5e(%rax),%cl 215d42: 80 f1 ff xor $0xff,%cl 215d45: 48 8b 45 f8 mov -0x8(%rbp),%rax 215d49: 48 8b 00 mov (%rax),%rax 215d4c: 80 e1 01 and $0x1,%cl 215d4f: 88 48 5e mov %cl,0x5e(%rax) return HTOP_REFRESH | HTOP_SAVE_SETTINGS; 215d52: b8 05 00 00 00 mov $0x5,%eax 215d57: 5d pop %rbp 215d58: c3 ret 215d59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000215d60 : static Htop_Reaction actionToggleProgramPath(State* st) { 215d60: 55 push %rbp 215d61: 48 89 e5 mov %rsp,%rbp 215d64: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->showProgramPath = !st->settings->showProgramPath; 215d68: 48 8b 45 f8 mov -0x8(%rbp),%rax 215d6c: 48 8b 00 mov (%rax),%rax 215d6f: 8a 48 4d mov 0x4d(%rax),%cl 215d72: 80 f1 ff xor $0xff,%cl 215d75: 48 8b 45 f8 mov -0x8(%rbp),%rax 215d79: 48 8b 00 mov (%rax),%rax 215d7c: 80 e1 01 and $0x1,%cl 215d7f: 88 48 4d mov %cl,0x4d(%rax) return HTOP_REFRESH | HTOP_SAVE_SETTINGS; 215d82: b8 05 00 00 00 mov $0x5,%eax 215d87: 5d pop %rbp 215d88: c3 ret 215d89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000215d90 : static Htop_Reaction actionQuit(ATTR_UNUSED State* st) { 215d90: 55 push %rbp 215d91: 48 89 e5 mov %rsp,%rbp 215d94: 48 89 7d f8 mov %rdi,-0x8(%rbp) return HTOP_QUIT; 215d98: b8 10 00 00 00 mov $0x10,%eax 215d9d: 5d pop %rbp 215d9e: c3 ret 215d9f: 90 nop 0000000000215da0 : static Htop_Reaction actionStrace(State* st) { 215da0: 55 push %rbp 215da1: 48 89 e5 mov %rsp,%rbp 215da4: 48 83 ec 30 sub $0x30,%rsp 215da8: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Settings_isReadonly()) 215dac: e8 9f 03 02 00 call 236150 215db1: a8 01 test $0x1,%al 215db3: 0f 85 05 00 00 00 jne 215dbe 215db9: e9 0c 00 00 00 jmp 215dca return HTOP_OK; 215dbe: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215dc5: e9 78 00 00 00 jmp 215e42 const Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 215dca: 48 8b 45 f0 mov -0x10(%rbp),%rax 215dce: 48 8b 78 18 mov 0x18(%rax),%rdi 215dd2: e8 99 22 01 00 call 228070 215dd7: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 215ddb: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 215de0: 0f 85 0c 00 00 00 jne 215df2 return HTOP_OK; 215de6: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215ded: e9 50 00 00 00 jmp 215e42 TraceScreen* ts = TraceScreen_new(p); 215df2: 48 8b 7d e8 mov -0x18(%rbp),%rdi 215df6: e8 35 17 02 00 call 237530 215dfb: 48 89 45 e0 mov %rax,-0x20(%rbp) bool ok = TraceScreen_forkTracer(ts); 215dff: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215e03: e8 38 18 02 00 call 237640 215e08: 24 01 and $0x1,%al 215e0a: 88 45 df mov %al,-0x21(%rbp) if (ok) { 215e0d: f6 45 df 01 testb $0x1,-0x21(%rbp) 215e11: 0f 84 09 00 00 00 je 215e20 InfoScreen_run((InfoScreen*)ts); 215e17: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215e1b: e8 90 ba 00 00 call 2218b0 TraceScreen_delete((Object*)ts); 215e20: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215e24: e8 97 17 02 00 call 2375c0 clear(); 215e29: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 215e31: e8 3a 83 02 00 call 23e170 CRT_enableDelay(); 215e36: e8 e5 68 00 00 call 21c720 return HTOP_REFRESH | HTOP_REDRAW_BAR; 215e3b: c7 45 fc 21 00 00 00 movl $0x21,-0x4(%rbp) } 215e42: 8b 45 fc mov -0x4(%rbp),%eax 215e45: 48 83 c4 30 add $0x30,%rsp 215e49: 5d pop %rbp 215e4a: c3 ret 215e4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000215e50 : static Htop_Reaction actionToggleTreeView(State* st) { 215e50: 55 push %rbp 215e51: 48 89 e5 mov %rsp,%rbp 215e54: 48 83 ec 10 sub $0x10,%rsp 215e58: 48 89 7d f8 mov %rdi,-0x8(%rbp) st->settings->treeView = !st->settings->treeView; 215e5c: 48 8b 45 f8 mov -0x8(%rbp),%rax 215e60: 48 8b 00 mov (%rax),%rax 215e63: 8a 48 4a mov 0x4a(%rax),%cl 215e66: 80 f1 ff xor $0xff,%cl 215e69: 48 8b 45 f8 mov -0x8(%rbp),%rax 215e6d: 48 8b 00 mov (%rax),%rax 215e70: 80 e1 01 and $0x1,%cl 215e73: 88 48 4a mov %cl,0x4a(%rax) if (!st->settings->allBranchesCollapsed) 215e76: 48 8b 45 f8 mov -0x8(%rbp),%rax 215e7a: 48 8b 00 mov (%rax),%rax 215e7d: f6 40 4c 01 testb $0x1,0x4c(%rax) 215e81: 0f 85 0d 00 00 00 jne 215e94 ProcessList_expandTree(st->pl); 215e87: 48 8b 45 f8 mov -0x8(%rbp),%rax 215e8b: 48 8b 78 10 mov 0x10(%rax),%rdi 215e8f: e8 cc a2 01 00 call 230160 return HTOP_REFRESH | HTOP_SAVE_SETTINGS | HTOP_KEEP_FOLLOWING | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; 215e94: b8 6d 00 00 00 mov $0x6d,%eax 215e99: 48 83 c4 10 add $0x10,%rsp 215e9d: 5d pop %rbp 215e9e: c3 ret 215e9f: 90 nop 0000000000215ea0 : static Htop_Reaction actionFilterByUser(State* st) { 215ea0: 55 push %rbp 215ea1: 48 89 e5 mov %rsp,%rbp 215ea4: 48 83 ec 30 sub $0x30,%rsp 215ea8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* usersPanel = Panel_new(0, 0, 0, 0, Class(ListItem), true, FunctionBar_newEnterEsc("Show ", "Cancel ")); 215eac: 48 bf b2 47 20 00 00 00 00 00 movabs $0x2047b2,%rdi 215eb6: 48 be a0 47 20 00 00 00 00 00 movabs $0x2047a0,%rsi 215ec0: e8 0b 84 00 00 call 21e2d0 215ec5: 31 c9 xor %ecx,%ecx 215ec7: 49 b8 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r8 215ed1: 41 b9 01 00 00 00 mov $0x1,%r9d 215ed7: 89 cf mov %ecx,%edi 215ed9: 89 ce mov %ecx,%esi 215edb: 89 ca mov %ecx,%edx 215edd: 48 89 04 24 mov %rax,(%rsp) 215ee1: e8 9a 1c 01 00 call 227b80 215ee6: 48 89 45 f0 mov %rax,-0x10(%rbp) Panel_setHeader(usersPanel, "Show processes of:"); 215eea: 48 8b 7d f0 mov -0x10(%rbp),%rdi 215eee: 48 be cc 49 20 00 00 00 00 00 movabs $0x2049cc,%rsi 215ef8: e8 f3 1e 01 00 call 227df0 UsersTable_foreach(st->ut, addUserToVector, usersPanel); 215efd: 48 8b 45 f8 mov -0x8(%rbp),%rax 215f01: 48 8b 78 08 mov 0x8(%rax),%rdi 215f05: 48 8b 55 f0 mov -0x10(%rbp),%rdx 215f09: 48 be f0 65 21 00 00 00 00 00 movabs $0x2165f0,%rsi 215f13: e8 38 21 02 00 call 238050 Vector_insertionSort(usersPanel->items); 215f18: 48 8b 45 f0 mov -0x10(%rbp),%rax 215f1c: 48 8b 78 18 mov 0x18(%rax),%rdi 215f20: e8 0b 24 02 00 call 238330 ListItem* allUsers = ListItem_new("All users", -1); 215f25: 48 bf 5e 5c 20 00 00 00 00 00 movabs $0x205c5e,%rdi 215f2f: be ff ff ff ff mov $0xffffffff,%esi 215f34: e8 17 be 00 00 call 221d50 215f39: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_insert(usersPanel, 0, (Object*) allUsers); 215f3d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 215f41: 48 8b 55 e8 mov -0x18(%rbp),%rdx 215f45: 31 f6 xor %esi,%esi 215f47: e8 c4 1f 01 00 call 227f10 const ListItem* picked = (ListItem*) Action_pickFromVector(st, usersPanel, 19, false); 215f4c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 215f50: 48 8b 75 f0 mov -0x10(%rbp),%rsi 215f54: ba 13 00 00 00 mov $0x13,%edx 215f59: 31 c9 xor %ecx,%ecx 215f5b: e8 50 de ff ff call 213db0 215f60: 48 89 45 e0 mov %rax,-0x20(%rbp) if (picked) { 215f64: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 215f69: 0f 84 44 00 00 00 je 215fb3 if (picked == allUsers) { 215f6f: 48 8b 45 e0 mov -0x20(%rbp),%rax 215f73: 48 3b 45 e8 cmp -0x18(%rbp),%rax 215f77: 0f 85 14 00 00 00 jne 215f91 st->pl->userId = (uid_t)-1; 215f7d: 48 8b 45 f8 mov -0x8(%rbp),%rax 215f81: 48 8b 40 10 mov 0x10(%rax),%rax 215f85: c7 40 74 ff ff ff ff movl $0xffffffff,0x74(%rax) } else { 215f8c: e9 1d 00 00 00 jmp 215fae Action_setUserOnly(ListItem_getRef(picked), &(st->pl->userId)); 215f91: 48 8b 7d e0 mov -0x20(%rbp),%rdi 215f95: e8 a6 06 00 00 call 216640 215f9a: 48 89 c7 mov %rax,%rdi 215f9d: 48 8b 45 f8 mov -0x8(%rbp),%rax 215fa1: 48 8b 70 10 mov 0x10(%rax),%rsi 215fa5: 48 83 c6 74 add $0x74,%rsi 215fa9: e8 02 e0 ff ff call 213fb0 } 215fae: e9 00 00 00 00 jmp 215fb3 Panel_delete((Object*)usersPanel); 215fb3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 215fb7: e8 44 19 01 00 call 227900 return HTOP_REFRESH | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; 215fbc: b8 61 00 00 00 mov $0x61,%eax 215fc1: 48 83 c4 30 add $0x30,%rsp 215fc5: 5d pop %rbp 215fc6: c3 ret 215fc7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000215fd0 : static Htop_Reaction actionShowCommandScreen(State* st) { 215fd0: 55 push %rbp 215fd1: 48 89 e5 mov %rsp,%rbp 215fd4: 48 83 ec 20 sub $0x20,%rsp 215fd8: 48 89 7d f0 mov %rdi,-0x10(%rbp) Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 215fdc: 48 8b 45 f0 mov -0x10(%rbp),%rax 215fe0: 48 8b 78 18 mov 0x18(%rax),%rdi 215fe4: e8 87 20 01 00 call 228070 215fe9: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 215fed: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 215ff2: 0f 85 0c 00 00 00 jne 216004 return HTOP_OK; 215ff8: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 215fff: e9 38 00 00 00 jmp 21603c CommandScreen* cmdScr = CommandScreen_new(p); 216004: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216008: e8 a3 45 00 00 call 21a5b0 21600d: 48 89 45 e0 mov %rax,-0x20(%rbp) InfoScreen_run((InfoScreen*)cmdScr); 216011: 48 8b 7d e0 mov -0x20(%rbp),%rdi 216015: e8 96 b8 00 00 call 2218b0 CommandScreen_delete((Object*)cmdScr); 21601a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21601e: e8 bd 42 00 00 call 21a2e0 clear(); 216023: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21602b: e8 40 81 02 00 call 23e170 CRT_enableDelay(); 216030: e8 eb 66 00 00 call 21c720 return HTOP_REFRESH | HTOP_REDRAW_BAR; 216035: c7 45 fc 21 00 00 00 movl $0x21,-0x4(%rbp) } 21603c: 8b 45 fc mov -0x4(%rbp),%eax 21603f: 48 83 c4 20 add $0x20,%rsp 216043: 5d pop %rbp 216044: c3 ret 216045: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21604f: 90 nop 0000000000216050 : static Htop_Reaction actionShowLocks(State* st) { 216050: 55 push %rbp 216051: 48 89 e5 mov %rsp,%rbp 216054: 48 83 ec 20 sub $0x20,%rsp 216058: 48 89 7d f0 mov %rdi,-0x10(%rbp) const Process* p = (Process*) Panel_getSelected((Panel*)st->mainPanel); 21605c: 48 8b 45 f0 mov -0x10(%rbp),%rax 216060: 48 8b 78 18 mov 0x18(%rax),%rdi 216064: e8 07 20 01 00 call 228070 216069: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 21606d: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 216072: 0f 85 0c 00 00 00 jne 216084 return HTOP_OK; 216078: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 21607f: e9 38 00 00 00 jmp 2160bc ProcessLocksScreen* pls = ProcessLocksScreen_new(p); 216084: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216088: e8 e3 b4 01 00 call 231570 21608d: 48 89 45 e0 mov %rax,-0x20(%rbp) InfoScreen_run((InfoScreen*)pls); 216091: 48 8b 7d e0 mov -0x20(%rbp),%rdi 216095: e8 16 b8 00 00 call 2218b0 ProcessLocksScreen_delete((Object*)pls); 21609a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21609e: e8 9d b5 01 00 call 231640 clear(); 2160a3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2160ab: e8 c0 80 02 00 call 23e170 CRT_enableDelay(); 2160b0: e8 6b 66 00 00 call 21c720 return HTOP_REFRESH | HTOP_REDRAW_BAR; 2160b5: c7 45 fc 21 00 00 00 movl $0x21,-0x4(%rbp) } 2160bc: 8b 45 fc mov -0x4(%rbp),%eax 2160bf: 48 83 c4 20 add $0x20,%rsp 2160c3: 5d pop %rbp 2160c4: c3 ret 2160c5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2160cf: 90 nop 00000000002160d0 : static Htop_Reaction actionExpandCollapseOrSortColumn(State* st) { 2160d0: 55 push %rbp 2160d1: 48 89 e5 mov %rsp,%rbp 2160d4: 48 83 ec 10 sub $0x10,%rsp 2160d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) return st->settings->treeView ? actionExpandOrCollapse(st) : actionSetSortColumn(st); 2160dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2160e0: 48 8b 00 mov (%rax),%rax 2160e3: f6 40 4a 01 testb $0x1,0x4a(%rax) 2160e7: 0f 84 11 00 00 00 je 2160fe 2160ed: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2160f1: e8 ea e4 ff ff call 2145e0 2160f6: 89 45 f4 mov %eax,-0xc(%rbp) 2160f9: e9 0c 00 00 00 jmp 21610a 2160fe: 48 8b 7d f8 mov -0x8(%rbp),%rdi 216102: e8 19 e5 ff ff call 214620 216107: 89 45 f4 mov %eax,-0xc(%rbp) 21610a: 8b 45 f4 mov -0xc(%rbp),%eax 21610d: 48 83 c4 10 add $0x10,%rsp 216111: 5d pop %rbp 216112: c3 ret 216113: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21611d: 0f 1f 00 nopl (%rax) 0000000000216120 : static bool expandCollapse(Panel* panel) { 216120: 55 push %rbp 216121: 48 89 e5 mov %rsp,%rbp 216124: 48 83 ec 20 sub $0x20,%rsp 216128: 48 89 7d f0 mov %rdi,-0x10(%rbp) Process* p = (Process*) Panel_getSelected(panel); 21612c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216130: e8 3b 1f 01 00 call 228070 216135: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 216139: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 21613e: 0f 85 09 00 00 00 jne 21614d return false; 216144: c6 45 ff 00 movb $0x0,-0x1(%rbp) 216148: e9 1e 00 00 00 jmp 21616b p->showChildren = !p->showChildren; 21614d: 48 8b 45 e8 mov -0x18(%rbp),%rax 216151: 8a 88 f0 00 00 00 mov 0xf0(%rax),%cl 216157: 80 f1 ff xor $0xff,%cl 21615a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21615e: 80 e1 01 and $0x1,%cl 216161: 88 88 f0 00 00 00 mov %cl,0xf0(%rax) return true; 216167: c6 45 ff 01 movb $0x1,-0x1(%rbp) } 21616b: 8a 45 ff mov -0x1(%rbp),%al 21616e: 24 01 and $0x1,%al 216170: 0f b6 c0 movzbl %al,%eax 216173: 48 83 c4 20 add $0x20,%rsp 216177: 5d pop %rbp 216178: c3 ret 216179: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000216180 : bool changed; } Settings; #define Settings_cpuId(settings, cpu) ((settings)->countCPUsFromOne ? (cpu)+1 : (cpu)) static inline ProcessField Settings_getActiveSortKey(const Settings* this) { 216180: 55 push %rbp 216181: 48 89 e5 mov %rsp,%rbp 216184: 48 89 7d f8 mov %rdi,-0x8(%rbp) return (this->treeView) 216188: 48 8b 45 f8 mov -0x8(%rbp),%rax 21618c: f6 40 4a 01 testb $0x1,0x4a(%rax) 216190: 0f 84 30 00 00 00 je 2161c6 ? (this->treeViewAlwaysByPID ? PID : this->treeSortKey) 216196: 48 8b 45 f8 mov -0x8(%rbp),%rax 21619a: f6 40 4b 01 testb $0x1,0x4b(%rax) 21619e: 0f 84 0d 00 00 00 je 2161b1 2161a4: b8 01 00 00 00 mov $0x1,%eax 2161a9: 89 45 f4 mov %eax,-0xc(%rbp) 2161ac: e9 0a 00 00 00 jmp 2161bb 2161b1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2161b5: 8b 40 40 mov 0x40(%rax),%eax 2161b8: 89 45 f4 mov %eax,-0xc(%rbp) 2161bb: 8b 45 f4 mov -0xc(%rbp),%eax 2161be: 89 45 f0 mov %eax,-0x10(%rbp) return (this->treeView) 2161c1: e9 0a 00 00 00 jmp 2161d0 : this->sortKey; 2161c6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2161ca: 8b 40 3c mov 0x3c(%rax),%eax 2161cd: 89 45 f0 mov %eax,-0x10(%rbp) 2161d0: 8b 45 f0 mov -0x10(%rbp),%eax return (this->treeView) 2161d3: 5d pop %rbp 2161d4: c3 ret 2161d5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2161df: 90 nop 00000000002161e0 : static inline void addattrstr( int attr, const char* str) { 2161e0: 55 push %rbp 2161e1: 48 89 e5 mov %rsp,%rbp 2161e4: 48 83 ec 10 sub $0x10,%rsp 2161e8: 89 7d fc mov %edi,-0x4(%rbp) 2161eb: 48 89 75 f0 mov %rsi,-0x10(%rbp) attrset(attr); 2161ef: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2161f7: 8b 75 fc mov -0x4(%rbp),%esi 2161fa: e8 81 7f 02 00 call 23e180 addstr(str); 2161ff: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 216207: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21620b: ba ff ff ff ff mov $0xffffffff,%edx 216210: e8 9b 7f 02 00 call 23e1b0 } 216215: 48 83 c4 10 add $0x10,%rsp 216219: 5d pop %rbp 21621a: c3 ret 21621b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000216220 : return strncmp(s, match, strlen(match)) == 0; } bool String_contains_i(const char* s1, const char* s2); static inline bool String_eq(const char* s1, const char* s2) { 216220: 55 push %rbp 216221: 48 89 e5 mov %rsp,%rbp 216224: 48 83 ec 10 sub $0x10,%rsp 216228: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21622c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 216230: 48 8b 7d f8 mov -0x8(%rbp),%rdi 216234: 48 8b 75 f0 mov -0x10(%rbp),%rsi 216238: e8 a3 7f 02 00 call 23e1e0 21623d: 83 f8 00 cmp $0x0,%eax 216240: 0f 94 c0 sete %al 216243: 24 01 and $0x1,%al 216245: 0f b6 c0 movzbl %al,%eax 216248: 48 83 c4 10 add $0x10,%rsp 21624c: 5d pop %rbp 21624d: c3 ret 21624e: 66 90 xchg %ax,%ax 0000000000216250 : static void Action_runSetup(State* st) { 216250: 55 push %rbp 216251: 48 89 e5 mov %rsp,%rbp 216254: 48 83 ec 10 sub $0x10,%rsp 216258: 48 89 7d f8 mov %rdi,-0x8(%rbp) ScreenManager* scr = ScreenManager_new(st->header, st->settings, st, true); 21625c: 48 8b 45 f8 mov -0x8(%rbp),%rax 216260: 48 8b 78 20 mov 0x20(%rax),%rdi 216264: 48 8b 45 f8 mov -0x8(%rbp),%rax 216268: 48 8b 30 mov (%rax),%rsi 21626b: 48 8b 55 f8 mov -0x8(%rbp),%rdx 21626f: b9 01 00 00 00 mov $0x1,%ecx 216274: e8 f7 c7 01 00 call 232a70 216279: 48 89 45 f0 mov %rax,-0x10(%rbp) CategoriesPanel_new(scr, st->settings, st->header, st->pl); 21627d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216281: 48 8b 45 f8 mov -0x8(%rbp),%rax 216285: 48 8b 30 mov (%rax),%rsi 216288: 48 8b 45 f8 mov -0x8(%rbp),%rax 21628c: 48 8b 50 20 mov 0x20(%rax),%rdx 216290: 48 8b 45 f8 mov -0x8(%rbp),%rax 216294: 48 8b 48 10 mov 0x10(%rax),%rcx 216298: e8 93 1e 00 00 call 218130 ScreenManager_run(scr, NULL, NULL); 21629d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2162a1: 31 c0 xor %eax,%eax 2162a3: 89 c2 mov %eax,%edx 2162a5: 48 89 d6 mov %rdx,%rsi 2162a8: e8 e3 cb 01 00 call 232e90 ScreenManager_delete(scr); 2162ad: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2162b1: e8 7a c8 01 00 call 232b30 if (st->settings->changed) { 2162b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2162ba: 48 8b 00 mov (%rax),%rax 2162bd: f6 40 68 01 testb $0x1,0x68(%rax) 2162c1: 0f 84 0d 00 00 00 je 2162d4 Header_writeBackToSettings(st->header); 2162c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2162cb: 48 8b 78 20 mov 0x20(%rax),%rdi 2162cf: e8 0c 99 00 00 call 21fbe0 } 2162d4: 48 83 c4 10 add $0x10,%rsp 2162d8: 5d pop %rbp 2162d9: c3 ret 2162da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002162e0 : static bool changePriority(MainPanel* panel, int delta) { 2162e0: 55 push %rbp 2162e1: 48 89 e5 mov %rsp,%rbp 2162e4: 48 83 ec 30 sub $0x30,%rsp 2162e8: 48 8b 05 41 c5 02 00 mov 0x2c541(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2162ef: 48 89 45 f8 mov %rax,-0x8(%rbp) 2162f3: 48 89 7d e8 mov %rdi,-0x18(%rbp) 2162f7: 89 75 e4 mov %esi,-0x1c(%rbp) bool ok = MainPanel_foreachProcess(panel, Process_changePriorityBy, (Arg) { .i = delta }, &anyTagged); 2162fa: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2162fe: 8b 45 e4 mov -0x1c(%rbp),%eax 216301: 89 45 d8 mov %eax,-0x28(%rbp) 216304: 48 8b 55 d8 mov -0x28(%rbp),%rdx 216308: 48 be 50 e6 22 00 00 00 00 00 movabs $0x22e650,%rsi 216312: 48 8d 4d f7 lea -0x9(%rbp),%rcx 216316: e8 45 c1 00 00 call 222460 21631b: 24 01 and $0x1,%al 21631d: 88 45 e3 mov %al,-0x1d(%rbp) if (!ok) 216320: f6 45 e3 01 testb $0x1,-0x1d(%rbp) 216324: 0f 85 05 00 00 00 jne 21632f beep(); 21632a: e8 01 7e 02 00 call 23e130 return anyTagged; 21632f: 8a 45 f7 mov -0x9(%rbp),%al 216332: 88 45 d7 mov %al,-0x29(%rbp) 216335: 48 8b 05 f4 c4 02 00 mov 0x2c4f4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21633c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 216340: 48 39 c8 cmp %rcx,%rax 216343: 0f 85 0e 00 00 00 jne 216357 216349: 8a 45 d7 mov -0x29(%rbp),%al 21634c: 24 01 and $0x1,%al 21634e: 0f b6 c0 movzbl %al,%eax 216351: 48 83 c4 30 add $0x30,%rsp 216355: 5d pop %rbp 216356: c3 ret 216357: e8 e4 7d 02 00 call 23e140 <__stack_chk_fail@plt> 21635c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000216360 : static bool collapseIntoParent(Panel* panel) { 216360: 55 push %rbp 216361: 48 89 e5 mov %rsp,%rbp 216364: 48 83 ec 30 sub $0x30,%rsp 216368: 48 89 7d f0 mov %rdi,-0x10(%rbp) const Process* p = (Process*) Panel_getSelected(panel); 21636c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216370: e8 fb 1c 01 00 call 228070 216375: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!p) 216379: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 21637e: 0f 85 09 00 00 00 jne 21638d return false; 216384: c6 45 ff 00 movb $0x0,-0x1(%rbp) 216388: e9 86 00 00 00 jmp 216413 pid_t ppid = Process_getParentPid(p); 21638d: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216391: e8 9a 00 00 00 call 216430 216396: 89 45 e4 mov %eax,-0x1c(%rbp) for (int i = 0; i < Panel_size(panel); i++) { 216399: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%rbp) 2163a0: 8b 45 e0 mov -0x20(%rbp),%eax 2163a3: 89 45 d4 mov %eax,-0x2c(%rbp) 2163a6: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2163aa: e8 f1 1d 01 00 call 2281a0 2163af: 89 c1 mov %eax,%ecx 2163b1: 8b 45 d4 mov -0x2c(%rbp),%eax 2163b4: 39 c8 cmp %ecx,%eax 2163b6: 0f 8d 53 00 00 00 jge 21640f Process* q = (Process*) Panel_get(panel, i); 2163bc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2163c0: 8b 75 e0 mov -0x20(%rbp),%esi 2163c3: e8 b8 1b 01 00 call 227f80 2163c8: 48 89 45 d8 mov %rax,-0x28(%rbp) if (q->pid == ppid) { 2163cc: 48 8b 45 d8 mov -0x28(%rbp),%rax 2163d0: 8b 40 18 mov 0x18(%rax),%eax 2163d3: 3b 45 e4 cmp -0x1c(%rbp),%eax 2163d6: 0f 85 20 00 00 00 jne 2163fc q->showChildren = false; 2163dc: 48 8b 45 d8 mov -0x28(%rbp),%rax 2163e0: c6 80 f0 00 00 00 00 movb $0x0,0xf0(%rax) Panel_setSelected(panel, i); 2163e7: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2163eb: 8b 75 e0 mov -0x20(%rbp),%esi 2163ee: e8 cd 1d 01 00 call 2281c0 return true; 2163f3: c6 45 ff 01 movb $0x1,-0x1(%rbp) 2163f7: e9 17 00 00 00 jmp 216413 } 2163fc: e9 00 00 00 00 jmp 216401 for (int i = 0; i < Panel_size(panel); i++) { 216401: 8b 45 e0 mov -0x20(%rbp),%eax 216404: 83 c0 01 add $0x1,%eax 216407: 89 45 e0 mov %eax,-0x20(%rbp) 21640a: e9 91 ff ff ff jmp 2163a0 return false; 21640f: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 216413: 8a 45 ff mov -0x1(%rbp),%al 216416: 24 01 and $0x1,%al 216418: 0f b6 c0 movzbl %al,%eax 21641b: 48 83 c4 30 add $0x30,%rsp 21641f: 5d pop %rbp 216420: c3 ret 216421: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21642b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000216430 : #define As_Process(this_) ((const ProcessClass*)((this_)->super.klass)) #define Process_getCommand(this_) (As_Process(this_)->getCommandStr ? As_Process(this_)->getCommandStr((const Process*)(this_)) : Process_getCommandStr((const Process*)(this_))) #define Process_compareByKey(p1_, p2_, key_) (As_Process(p1_)->compareByKey ? (As_Process(p1_)->compareByKey(p1_, p2_, key_)) : Process_compareByKey_Base(p1_, p2_, key_)) static inline pid_t Process_getParentPid(const Process* this) { 216430: 55 push %rbp 216431: 48 89 e5 mov %rsp,%rbp 216434: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->tgid == this->pid ? this->ppid : this->tgid; 216438: 48 8b 45 f8 mov -0x8(%rbp),%rax 21643c: 8b 40 20 mov 0x20(%rax),%eax 21643f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 216443: 3b 41 18 cmp 0x18(%rcx),%eax 216446: 0f 85 0f 00 00 00 jne 21645b 21644c: 48 8b 45 f8 mov -0x8(%rbp),%rax 216450: 8b 40 1c mov 0x1c(%rax),%eax 216453: 89 45 f4 mov %eax,-0xc(%rbp) 216456: e9 0a 00 00 00 jmp 216465 21645b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21645f: 8b 40 20 mov 0x20(%rax),%eax 216462: 89 45 f4 mov %eax,-0xc(%rbp) 216465: 8b 45 f4 mov -0xc(%rbp),%eax 216468: 5d pop %rbp 216469: c3 ret 21646a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000216470 : FunctionBar* defaultBar; bool filtering; bool found; } IncSet; static inline const char* IncSet_filter(const IncSet* this) { 216470: 55 push %rbp 216471: 48 89 e5 mov %rsp,%rbp 216474: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->filtering ? this->modes[INC_FILTER].buffer : NULL; 216478: 48 8b 45 f8 mov -0x8(%rbp),%rax 21647c: f6 80 90 00 00 00 01 testb $0x1,0x90(%rax) 216483: 0f 84 11 00 00 00 je 21649a 216489: 48 8b 45 f8 mov -0x8(%rbp),%rax 21648d: 48 83 c0 40 add $0x40,%rax 216491: 48 89 45 f0 mov %rax,-0x10(%rbp) 216495: e9 0b 00 00 00 jmp 2164a5 21649a: 31 c0 xor %eax,%eax 21649c: 48 89 45 f0 mov %rax,-0x10(%rbp) 2164a0: e9 00 00 00 00 jmp 2164a5 2164a5: 48 8b 45 f0 mov -0x10(%rbp),%rax 2164a9: 5d pop %rbp 2164aa: c3 ret 2164ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002164b0 : static void tagAllChildren(Panel* panel, Process* parent) { 2164b0: 55 push %rbp 2164b1: 48 89 e5 mov %rsp,%rbp 2164b4: 48 83 ec 30 sub $0x30,%rsp 2164b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2164bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) parent->tag = true; 2164c0: 48 8b 45 f0 mov -0x10(%rbp),%rax 2164c4: c6 80 ed 00 00 00 01 movb $0x1,0xed(%rax) pid_t ppid = parent->pid; 2164cb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2164cf: 8b 40 18 mov 0x18(%rax),%eax 2164d2: 89 45 ec mov %eax,-0x14(%rbp) for (int i = 0; i < Panel_size(panel); i++) { 2164d5: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 2164dc: 8b 45 e8 mov -0x18(%rbp),%eax 2164df: 89 45 dc mov %eax,-0x24(%rbp) 2164e2: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2164e6: e8 b5 1c 01 00 call 2281a0 2164eb: 89 c1 mov %eax,%ecx 2164ed: 8b 45 dc mov -0x24(%rbp),%eax 2164f0: 39 c8 cmp %ecx,%eax 2164f2: 0f 8d 5a 00 00 00 jge 216552 Process* p = (Process*) Panel_get(panel, i); 2164f8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2164fc: 8b 75 e8 mov -0x18(%rbp),%esi 2164ff: e8 7c 1a 01 00 call 227f80 216504: 48 89 45 e0 mov %rax,-0x20(%rbp) if (!p->tag && Process_isChildOf(p, ppid)) { 216508: 48 8b 45 e0 mov -0x20(%rbp),%rax 21650c: f6 80 ed 00 00 00 01 testb $0x1,0xed(%rax) 216513: 0f 85 26 00 00 00 jne 21653f 216519: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21651d: 8b 75 ec mov -0x14(%rbp),%esi 216520: e8 3b 00 00 00 call 216560 216525: a8 01 test $0x1,%al 216527: 0f 85 05 00 00 00 jne 216532 21652d: e9 0d 00 00 00 jmp 21653f tagAllChildren(panel, p); 216532: 48 8b 7d f8 mov -0x8(%rbp),%rdi 216536: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21653a: e8 71 ff ff ff call 2164b0 } 21653f: e9 00 00 00 00 jmp 216544 for (int i = 0; i < Panel_size(panel); i++) { 216544: 8b 45 e8 mov -0x18(%rbp),%eax 216547: 83 c0 01 add $0x1,%eax 21654a: 89 45 e8 mov %eax,-0x18(%rbp) 21654d: e9 8a ff ff ff jmp 2164dc } 216552: 48 83 c4 30 add $0x30,%rsp 216556: 5d pop %rbp 216557: c3 ret 216558: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000216560 : } static inline bool Process_isChildOf(const Process* this, pid_t pid) { 216560: 55 push %rbp 216561: 48 89 e5 mov %rsp,%rbp 216564: 48 83 ec 10 sub $0x10,%rsp 216568: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21656c: 89 75 f4 mov %esi,-0xc(%rbp) return pid == Process_getParentPid(this); 21656f: 8b 45 f4 mov -0xc(%rbp),%eax 216572: 89 45 f0 mov %eax,-0x10(%rbp) 216575: 48 8b 7d f8 mov -0x8(%rbp),%rdi 216579: e8 b2 fe ff ff call 216430 21657e: 89 c1 mov %eax,%ecx 216580: 8b 45 f0 mov -0x10(%rbp),%eax 216583: 39 c8 cmp %ecx,%eax 216585: 0f 94 c0 sete %al 216588: 24 01 and $0x1,%al 21658a: 0f b6 c0 movzbl %al,%eax 21658d: 48 83 c4 10 add $0x10,%rsp 216591: 5d pop %rbp 216592: c3 ret 216593: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21659d: 0f 1f 00 nopl (%rax) 00000000002165a0 : Header* header; bool pauseProcessUpdate; bool hideProcessSelection; } State; static inline bool State_hideFunctionBar(const State* st) { 2165a0: 55 push %rbp 2165a1: 48 89 e5 mov %rsp,%rbp 2165a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return st->settings->hideFunctionBar == 2 || (st->settings->hideFunctionBar == 1 && st->hideProcessSelection); 2165a8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2165ac: 48 8b 08 mov (%rax),%rcx 2165af: b0 01 mov $0x1,%al 2165b1: 83 79 64 02 cmpl $0x2,0x64(%rcx) 2165b5: 88 45 f7 mov %al,-0x9(%rbp) 2165b8: 0f 84 26 00 00 00 je 2165e4 2165be: 48 8b 45 f8 mov -0x8(%rbp),%rax 2165c2: 48 8b 08 mov (%rax),%rcx 2165c5: 31 c0 xor %eax,%eax 2165c7: 83 79 64 01 cmpl $0x1,0x64(%rcx) 2165cb: 88 45 f6 mov %al,-0xa(%rbp) 2165ce: 0f 85 0a 00 00 00 jne 2165de 2165d4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2165d8: 8a 40 29 mov 0x29(%rax),%al 2165db: 88 45 f6 mov %al,-0xa(%rbp) 2165de: 8a 45 f6 mov -0xa(%rbp),%al 2165e1: 88 45 f7 mov %al,-0x9(%rbp) 2165e4: 8a 45 f7 mov -0x9(%rbp),%al 2165e7: 24 01 and $0x1,%al 2165e9: 0f b6 c0 movzbl %al,%eax 2165ec: 5d pop %rbp 2165ed: c3 ret 2165ee: 66 90 xchg %ax,%ax 00000000002165f0 : static void addUserToVector(ht_key_t key, void* userCast, void* panelCast) { 2165f0: 55 push %rbp 2165f1: 48 89 e5 mov %rsp,%rbp 2165f4: 48 83 ec 30 sub $0x30,%rsp 2165f8: 89 7d fc mov %edi,-0x4(%rbp) 2165fb: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2165ff: 48 89 55 e8 mov %rdx,-0x18(%rbp) const char* user = userCast; 216603: 48 8b 45 f0 mov -0x10(%rbp),%rax 216607: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel* panel = panelCast; 21660b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21660f: 48 89 45 d8 mov %rax,-0x28(%rbp) Panel_add(panel, (Object*) ListItem_new(user, key)); 216613: 48 8b 45 d8 mov -0x28(%rbp),%rax 216617: 48 89 45 d0 mov %rax,-0x30(%rbp) 21661b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21661f: 8b 75 fc mov -0x4(%rbp),%esi 216622: e8 29 b7 00 00 call 221d50 216627: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21662b: 48 89 c6 mov %rax,%rsi 21662e: e8 ad 18 01 00 call 227ee0 } 216633: 48 83 c4 30 add $0x30,%rsp 216637: 5d pop %rbp 216638: c3 ret 216639: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000216640 : ListItem* ListItem_new(const char* value, int key); void ListItem_append(ListItem* this, const char* text); static inline const char* ListItem_getRef(const ListItem* this) { 216640: 55 push %rbp 216641: 48 89 e5 mov %rsp,%rbp 216644: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->value; 216648: 48 8b 45 f8 mov -0x8(%rbp),%rax 21664c: 48 8b 40 08 mov 0x8(%rax),%rax 216650: 5d pop %rbp 216651: c3 ret 216652: cc int3 216653: cc int3 216654: cc int3 216655: cc int3 216656: cc int3 216657: cc int3 216658: cc int3 216659: cc int3 21665a: cc int3 21665b: cc int3 21665c: cc int3 21665d: cc int3 21665e: cc int3 21665f: cc int3 0000000000216660 : #elif defined(HAVE_AFFINITY) #include #endif Affinity* Affinity_new(ProcessList* pl) { 216660: 55 push %rbp 216661: 48 89 e5 mov %rsp,%rbp 216664: 48 83 ec 10 sub $0x10,%rsp 216668: 48 89 7d f8 mov %rdi,-0x8(%rbp) Affinity* this = xCalloc(1, sizeof(Affinity)); 21666c: bf 01 00 00 00 mov $0x1,%edi 216671: be 18 00 00 00 mov $0x18,%esi 216676: e8 75 24 02 00 call 238af0 21667b: 48 89 45 f0 mov %rax,-0x10(%rbp) this->size = 8; 21667f: 48 8b 45 f0 mov -0x10(%rbp),%rax 216683: c7 40 08 08 00 00 00 movl $0x8,0x8(%rax) this->cpus = xCalloc(this->size, sizeof(unsigned int)); 21668a: 48 8b 45 f0 mov -0x10(%rbp),%rax 21668e: 8b 40 08 mov 0x8(%rax),%eax 216691: 89 c7 mov %eax,%edi 216693: be 04 00 00 00 mov $0x4,%esi 216698: e8 53 24 02 00 call 238af0 21669d: 48 89 c1 mov %rax,%rcx 2166a0: 48 8b 45 f0 mov -0x10(%rbp),%rax 2166a4: 48 89 48 10 mov %rcx,0x10(%rax) this->pl = pl; 2166a8: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2166ac: 48 8b 45 f0 mov -0x10(%rbp),%rax 2166b0: 48 89 08 mov %rcx,(%rax) return this; 2166b3: 48 8b 45 f0 mov -0x10(%rbp),%rax 2166b7: 48 83 c4 10 add $0x10,%rsp 2166bb: 5d pop %rbp 2166bc: c3 ret 2166bd: 0f 1f 00 nopl (%rax) 00000000002166c0 : } void Affinity_delete(Affinity* this) { 2166c0: 55 push %rbp 2166c1: 48 89 e5 mov %rsp,%rbp 2166c4: 48 83 ec 10 sub $0x10,%rsp 2166c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(this->cpus); 2166cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2166d0: 48 8b 78 10 mov 0x10(%rax),%rdi 2166d4: e8 87 7a 02 00 call 23e160 free(this); 2166d9: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2166dd: e8 7e 7a 02 00 call 23e160 } 2166e2: 48 83 c4 10 add $0x10,%rsp 2166e6: 5d pop %rbp 2166e7: c3 ret 2166e8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002166f0 : void Affinity_add(Affinity* this, unsigned int id) { 2166f0: 55 push %rbp 2166f1: 48 89 e5 mov %rsp,%rbp 2166f4: 48 83 ec 10 sub $0x10,%rsp 2166f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2166fc: 89 75 f4 mov %esi,-0xc(%rbp) if (this->used == this->size) { 2166ff: 48 8b 45 f8 mov -0x8(%rbp),%rax 216703: 8b 40 0c mov 0xc(%rax),%eax 216706: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21670a: 3b 41 08 cmp 0x8(%rcx),%eax 21670d: 0f 85 32 00 00 00 jne 216745 this->size *= 2; 216713: 48 8b 45 f8 mov -0x8(%rbp),%rax 216717: 8b 48 08 mov 0x8(%rax),%ecx 21671a: c1 e1 01 shl $0x1,%ecx 21671d: 89 48 08 mov %ecx,0x8(%rax) this->cpus = xRealloc(this->cpus, sizeof(unsigned int) * this->size); 216720: 48 8b 45 f8 mov -0x8(%rbp),%rax 216724: 48 8b 78 10 mov 0x10(%rax),%rdi 216728: 48 8b 45 f8 mov -0x8(%rbp),%rax 21672c: 8b 40 08 mov 0x8(%rax),%eax 21672f: 89 c6 mov %eax,%esi 216731: 48 c1 e6 02 shl $0x2,%rsi 216735: e8 16 24 02 00 call 238b50 21673a: 48 89 c1 mov %rax,%rcx 21673d: 48 8b 45 f8 mov -0x8(%rbp),%rax 216741: 48 89 48 10 mov %rcx,0x10(%rax) } this->cpus[this->used] = id; 216745: 8b 55 f4 mov -0xc(%rbp),%edx 216748: 48 8b 45 f8 mov -0x8(%rbp),%rax 21674c: 48 8b 40 10 mov 0x10(%rax),%rax 216750: 48 8b 4d f8 mov -0x8(%rbp),%rcx 216754: 8b 49 0c mov 0xc(%rcx),%ecx 216757: 89 14 88 mov %edx,(%rax,%rcx,4) this->used++; 21675a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21675e: 8b 48 0c mov 0xc(%rax),%ecx 216761: 83 c1 01 add $0x1,%ecx 216764: 89 48 0c mov %ecx,0xc(%rax) } 216767: 48 83 c4 10 add $0x10,%rsp 21676b: 5d pop %rbp 21676c: c3 ret 21676d: cc int3 21676e: cc int3 21676f: cc int3 0000000000216770 : hwloc_const_cpuset_t allCpuset; hwloc_bitmap_t workCpuset; #endif } AffinityPanel; static void AffinityPanel_delete(Object* cast) { 216770: 55 push %rbp 216771: 48 89 e5 mov %rsp,%rbp 216774: 48 83 ec 20 sub $0x20,%rsp 216778: 48 89 7d f8 mov %rdi,-0x8(%rbp) AffinityPanel* this = (AffinityPanel*) cast; 21677c: 48 8b 45 f8 mov -0x8(%rbp),%rax 216780: 48 89 45 f0 mov %rax,-0x10(%rbp) Panel* super = (Panel*) this; 216784: 48 8b 45 f0 mov -0x10(%rbp),%rax 216788: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 21678c: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216790: e8 eb 15 01 00 call 227d80 Vector_delete(this->cpuids); 216795: 48 8b 45 f0 mov -0x10(%rbp),%rax 216799: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 2167a0: e8 6b 19 02 00 call 238110 #ifdef HAVE_LIBHWLOC hwloc_bitmap_free(this->workCpuset); MaskItem_delete((Object*) this->topoRoot); #endif free(this); 2167a5: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2167a9: e8 b2 79 02 00 call 23e160 } 2167ae: 48 83 c4 20 add $0x20,%rsp 2167b2: 5d pop %rbp 2167b3: c3 ret 2167b4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2167be: 66 90 xchg %ax,%ax 00000000002167c0 : Panel_setSelected(super, oldSelected); super->needsRedraw = true; } static HandlerResult AffinityPanel_eventHandler(Panel* super, int ch) { 2167c0: 55 push %rbp 2167c1: 48 89 e5 mov %rsp,%rbp 2167c4: 48 83 ec 30 sub $0x30,%rsp 2167c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2167cc: 89 75 f4 mov %esi,-0xc(%rbp) AffinityPanel* this = (AffinityPanel*) super; 2167cf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2167d3: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 2167d7: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) MaskItem* selected = (MaskItem*) Panel_getSelected(super); 2167de: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2167e2: e8 89 18 01 00 call 228070 2167e7: 48 89 45 d8 mov %rax,-0x28(%rbp) bool keepSelected = true; 2167eb: c6 45 d7 01 movb $0x1,-0x29(%rbp) switch(ch) { 2167ef: 8b 45 f4 mov -0xc(%rbp),%eax 2167f2: 89 45 d0 mov %eax,-0x30(%rbp) 2167f5: 83 e8 0a sub $0xa,%eax 2167f8: 0f 84 87 00 00 00 je 216885 2167fe: e9 00 00 00 00 jmp 216803 216803: 8b 45 d0 mov -0x30(%rbp),%eax 216806: 83 e8 0d sub $0xd,%eax 216809: 0f 84 76 00 00 00 je 216885 21680f: e9 00 00 00 00 jmp 216814 216814: 8b 45 d0 mov -0x30(%rbp),%eax 216817: 83 e8 20 sub $0x20,%eax 21681a: 0f 84 3e 00 00 00 je 21685e 216820: e9 00 00 00 00 jmp 216825 216825: 8b 45 d0 mov -0x30(%rbp),%eax 216828: 2d 28 01 00 00 sub $0x128,%eax 21682d: 0f 84 2b 00 00 00 je 21685e 216833: e9 00 00 00 00 jmp 216838 216838: 8b 45 d0 mov -0x30(%rbp),%eax 21683b: 2d 57 01 00 00 sub $0x157,%eax 216840: 0f 84 3f 00 00 00 je 216885 216846: e9 00 00 00 00 jmp 21684b 21684b: 8b 45 d0 mov -0x30(%rbp),%eax 21684e: 2d 99 01 00 00 sub $0x199,%eax 216853: 0f 85 33 00 00 00 jne 21688c 216859: e9 00 00 00 00 jmp 21685e in the top cpuset. */ hwloc_bitmap_or(this->workCpuset, this->workCpuset, selected->cpuset); selected->value = 2; } #else selected->value = selected->value ? 0 : 2; /* toggle between 0 and 2 */ 21685e: 48 8b 45 d8 mov -0x28(%rbp),%rax 216862: 8b 50 18 mov 0x18(%rax),%edx 216865: b9 02 00 00 00 mov $0x2,%ecx 21686a: 31 c0 xor %eax,%eax 21686c: 83 fa 00 cmp $0x0,%edx 21686f: 0f 45 c8 cmovne %eax,%ecx 216872: 48 8b 45 d8 mov -0x28(%rbp),%rax 216876: 89 48 18 mov %ecx,0x18(%rax) #endif result = HANDLED; 216879: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; 216880: e9 07 00 00 00 jmp 21688c #endif case 0x0a: case 0x0d: case KEY_ENTER: result = BREAK_LOOP; 216885: c7 45 e4 04 00 00 00 movl $0x4,-0x1c(%rbp) break; } if (HANDLED == result) 21688c: b8 01 00 00 00 mov $0x1,%eax 216891: 3b 45 e4 cmp -0x1c(%rbp),%eax 216894: 0f 85 11 00 00 00 jne 2168ab AffinityPanel_update(this, keepSelected); 21689a: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21689e: 8a 45 d7 mov -0x29(%rbp),%al 2168a1: 24 01 and $0x1,%al 2168a3: 0f b6 f0 movzbl %al,%esi 2168a6: e8 55 03 00 00 call 216c00 return result; 2168ab: 8b 45 e4 mov -0x1c(%rbp),%eax 2168ae: 48 83 c4 30 add $0x30,%rsp 2168b2: 5d pop %rbp 2168b3: c3 ret 2168b4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2168be: 66 90 xchg %ax,%ax 00000000002168c0 : NULL }; static const char* const AffinityPanelKeys[] = {"Enter", "Esc", "F1", "F2", "F3"}; static const int AffinityPanelEvents[] = {13, 27, KEY_F(1), KEY_F(2), KEY_F(3)}; Panel* AffinityPanel_new(ProcessList* pl, const Affinity* affinity, int* width) { 2168c0: 55 push %rbp 2168c1: 48 89 e5 mov %rsp,%rbp 2168c4: 48 81 ec 90 00 00 00 sub $0x90,%rsp 2168cb: 48 8b 05 5e bf 02 00 mov 0x2bf5e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2168d2: 48 89 45 f8 mov %rax,-0x8(%rbp) 2168d6: 48 89 7d d8 mov %rdi,-0x28(%rbp) 2168da: 48 89 75 d0 mov %rsi,-0x30(%rbp) 2168de: 48 89 55 c8 mov %rdx,-0x38(%rbp) AffinityPanel* this = AllocThis(AffinityPanel); 2168e2: bf f8 26 00 00 mov $0x26f8,%edi 2168e7: e8 74 21 02 00 call 238a60 2168ec: 48 89 45 c0 mov %rax,-0x40(%rbp) 2168f0: 48 8b 45 c0 mov -0x40(%rbp),%rax 2168f4: 48 b9 50 71 20 00 00 00 00 00 movabs $0x207150,%rcx 2168fe: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 216901: 48 8b 45 c0 mov -0x40(%rbp),%rax 216905: 48 89 45 b8 mov %rax,-0x48(%rbp) Panel_init(super, 1, 1, 1, 1, Class(MaskItem), false, FunctionBar_new(AffinityPanelFunctions, AffinityPanelKeys, AffinityPanelEvents)); 216909: 48 8b 45 b8 mov -0x48(%rbp),%rax 21690d: 48 89 45 98 mov %rax,-0x68(%rbp) 216911: 48 bf b0 71 20 00 00 00 00 00 movabs $0x2071b0,%rdi 21691b: 48 be d0 71 20 00 00 00 00 00 movabs $0x2071d0,%rsi 216925: 48 ba 00 72 20 00 00 00 00 00 movabs $0x207200,%rdx 21692f: e8 1c 7a 00 00 call 21e350 216934: 48 8b 7d 98 mov -0x68(%rbp),%rdi 216938: 41 b8 01 00 00 00 mov $0x1,%r8d 21693e: 49 b9 88 71 20 00 00 00 00 00 movabs $0x207188,%r9 216948: 31 c9 xor %ecx,%ecx 21694a: 44 89 c6 mov %r8d,%esi 21694d: 44 89 c2 mov %r8d,%edx 216950: 44 89 c1 mov %r8d,%ecx 216953: c7 04 24 00 00 00 00 movl $0x0,(%rsp) 21695a: 48 89 44 24 08 mov %rax,0x8(%rsp) 21695f: e8 9c 12 01 00 call 227c00 this->pl = pl; 216964: 48 8b 4d d8 mov -0x28(%rbp),%rcx 216968: 48 8b 45 c0 mov -0x40(%rbp),%rax 21696c: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) /* defaults to 15, this also includes the gap between the panels, * but this will be added by the caller */ this->width = 14; 216973: 48 8b 45 c0 mov -0x40(%rbp),%rax 216977: c7 80 f0 26 00 00 0e 00 00 00 movl $0xe,0x26f0(%rax) this->cpuids = Vector_new(Class(MaskItem), true, DEFAULT_SIZE); 216981: 48 bf 88 71 20 00 00 00 00 00 movabs $0x207188,%rdi 21698b: be 01 00 00 00 mov $0x1,%esi 216990: ba ff ff ff ff mov $0xffffffff,%edx 216995: e8 e6 16 02 00 call 238080 21699a: 48 89 c1 mov %rax,%rcx 21699d: 48 8b 45 c0 mov -0x40(%rbp),%rax 2169a1: 48 89 88 e8 26 00 00 mov %rcx,0x26e8(%rax) #ifdef HAVE_LIBHWLOC this->topoView = pl->settings->topologyAffinity; #else this->topoView = false; 2169a8: 48 8b 45 c0 mov -0x40(%rbp),%rax 2169ac: c6 80 e0 26 00 00 00 movb $0x0,0x26e0(%rax) #ifdef HAVE_LIBHWLOC this->allCpuset = hwloc_topology_get_complete_cpuset(pl->topology); this->workCpuset = hwloc_bitmap_alloc(); #endif Panel_setHeader(super, "Use CPUs:"); 2169b3: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2169b7: 48 be ba 47 20 00 00 00 00 00 movabs $0x2047ba,%rsi 2169c1: e8 2a 14 01 00 call 227df0 unsigned int curCpu = 0; 2169c6: c7 45 b4 00 00 00 00 movl $0x0,-0x4c(%rbp) for (unsigned int i = 0; i < pl->existingCPUs; i++) { 2169cd: c7 45 b0 00 00 00 00 movl $0x0,-0x50(%rbp) 2169d4: 8b 45 b0 mov -0x50(%rbp),%eax 2169d7: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2169db: 3b 81 e4 00 00 00 cmp 0xe4(%rcx),%eax 2169e1: 0f 83 0c 01 00 00 jae 216af3 if (!ProcessList_isCPUonline(this->pl, i)) 2169e7: 48 8b 45 c0 mov -0x40(%rbp),%rax 2169eb: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2169f2: 8b 75 b0 mov -0x50(%rbp),%esi 2169f5: e8 36 5c 02 00 call 23c630 2169fa: a8 01 test $0x1,%al 2169fc: 0f 85 05 00 00 00 jne 216a07 continue; 216a02: e9 de 00 00 00 jmp 216ae5 char number[16]; xSnprintf(number, 9, "CPU %d", Settings_cpuId(pl->settings, i)); 216a07: 48 8d 45 e0 lea -0x20(%rbp),%rax 216a0b: 48 89 45 90 mov %rax,-0x70(%rbp) 216a0f: 48 8b 45 d8 mov -0x28(%rbp),%rax 216a13: 48 8b 00 mov (%rax),%rax 216a16: f6 40 44 01 testb $0x1,0x44(%rax) 216a1a: 0f 84 0e 00 00 00 je 216a2e 216a20: 8b 45 b0 mov -0x50(%rbp),%eax 216a23: 83 c0 01 add $0x1,%eax 216a26: 89 45 8c mov %eax,-0x74(%rbp) 216a29: e9 06 00 00 00 jmp 216a34 216a2e: 8b 45 b0 mov -0x50(%rbp),%eax 216a31: 89 45 8c mov %eax,-0x74(%rbp) 216a34: 48 8b 7d 90 mov -0x70(%rbp),%rdi 216a38: 8b 4d 8c mov -0x74(%rbp),%ecx 216a3b: be 09 00 00 00 mov $0x9,%esi 216a40: 48 ba a6 45 20 00 00 00 00 00 movabs $0x2045a6,%rdx 216a4a: b0 00 mov $0x0,%al 216a4c: e8 9f 2a 02 00 call 2394f0 unsigned cpu_width = 4 + strlen(number); 216a51: 48 8d 7d e0 lea -0x20(%rbp),%rdi 216a55: e8 96 77 02 00 call 23e1f0 216a5a: 48 83 c0 04 add $0x4,%rax 216a5e: 89 45 ac mov %eax,-0x54(%rbp) if (cpu_width > this->width) { 216a61: 8b 45 ac mov -0x54(%rbp),%eax 216a64: 48 8b 4d c0 mov -0x40(%rbp),%rcx 216a68: 3b 81 f0 26 00 00 cmp 0x26f0(%rcx),%eax 216a6e: 0f 86 0d 00 00 00 jbe 216a81 this->width = cpu_width; 216a74: 8b 4d ac mov -0x54(%rbp),%ecx 216a77: 48 8b 45 c0 mov -0x40(%rbp),%rax 216a7b: 89 88 f0 26 00 00 mov %ecx,0x26f0(%rax) } bool isSet = false; 216a81: c6 45 ab 00 movb $0x0,-0x55(%rbp) if (curCpu < affinity->used && affinity->cpus[curCpu] == i) { 216a85: 8b 45 b4 mov -0x4c(%rbp),%eax 216a88: 48 8b 4d d0 mov -0x30(%rbp),%rcx 216a8c: 3b 41 0c cmp 0xc(%rcx),%eax 216a8f: 0f 83 24 00 00 00 jae 216ab9 216a95: 48 8b 45 d0 mov -0x30(%rbp),%rax 216a99: 48 8b 40 10 mov 0x10(%rax),%rax 216a9d: 8b 4d b4 mov -0x4c(%rbp),%ecx 216aa0: 8b 04 88 mov (%rax,%rcx,4),%eax 216aa3: 3b 45 b0 cmp -0x50(%rbp),%eax 216aa6: 0f 85 0d 00 00 00 jne 216ab9 #ifdef HAVE_LIBHWLOC hwloc_bitmap_set(this->workCpuset, i); #endif isSet = true; 216aac: c6 45 ab 01 movb $0x1,-0x55(%rbp) curCpu++; 216ab0: 8b 45 b4 mov -0x4c(%rbp),%eax 216ab3: 83 c0 01 add $0x1,%eax 216ab6: 89 45 b4 mov %eax,-0x4c(%rbp) } MaskItem* cpuItem = MaskItem_newSingleton(number, i, isSet); 216ab9: 48 8d 7d e0 lea -0x20(%rbp),%rdi 216abd: 8b 75 b0 mov -0x50(%rbp),%esi 216ac0: 8a 45 ab mov -0x55(%rbp),%al 216ac3: 24 01 and $0x1,%al 216ac5: 0f b6 d0 movzbl %al,%edx 216ac8: e8 83 00 00 00 call 216b50 216acd: 48 89 45 a0 mov %rax,-0x60(%rbp) Vector_add(this->cpuids, (Object*) cpuItem); 216ad1: 48 8b 45 c0 mov -0x40(%rbp),%rax 216ad5: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 216adc: 48 8b 75 a0 mov -0x60(%rbp),%rsi 216ae0: e8 fb 1c 02 00 call 2387e0 for (unsigned int i = 0; i < pl->existingCPUs; i++) { 216ae5: 8b 45 b0 mov -0x50(%rbp),%eax 216ae8: 83 c0 01 add $0x1,%eax 216aeb: 89 45 b0 mov %eax,-0x50(%rbp) 216aee: e9 e1 fe ff ff jmp 2169d4 #ifdef HAVE_LIBHWLOC this->topoRoot = AffinityPanel_buildTopology(this, hwloc_get_root_obj(pl->topology), 0, NULL); #endif if (width) { 216af3: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 216af8: 0f 84 10 00 00 00 je 216b0e *width = this->width; 216afe: 48 8b 45 c0 mov -0x40(%rbp),%rax 216b02: 8b 88 f0 26 00 00 mov 0x26f0(%rax),%ecx 216b08: 48 8b 45 c8 mov -0x38(%rbp),%rax 216b0c: 89 08 mov %ecx,(%rax) } AffinityPanel_update(this, false); 216b0e: 48 8b 7d c0 mov -0x40(%rbp),%rdi 216b12: 31 f6 xor %esi,%esi 216b14: e8 e7 00 00 00 call 216c00 return super; 216b19: 48 8b 45 b8 mov -0x48(%rbp),%rax 216b1d: 48 89 45 80 mov %rax,-0x80(%rbp) 216b21: 48 8b 05 08 bd 02 00 mov 0x2bd08(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 216b28: 48 8b 4d f8 mov -0x8(%rbp),%rcx 216b2c: 48 39 c8 cmp %rcx,%rax 216b2f: 0f 85 0d 00 00 00 jne 216b42 216b35: 48 8b 45 80 mov -0x80(%rbp),%rax 216b39: 48 81 c4 90 00 00 00 add $0x90,%rsp 216b40: 5d pop %rbp 216b41: c3 ret 216b42: e8 f9 75 02 00 call 23e140 <__stack_chk_fail@plt> 216b47: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000216b50 : static MaskItem* MaskItem_newSingleton(const char* text, int cpu, bool isSet) { 216b50: 55 push %rbp 216b51: 48 89 e5 mov %rsp,%rbp 216b54: 48 83 ec 20 sub $0x20,%rsp 216b58: 88 d0 mov %dl,%al 216b5a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 216b5e: 89 75 f4 mov %esi,-0xc(%rbp) 216b61: 24 01 and $0x1,%al 216b63: 88 45 f3 mov %al,-0xd(%rbp) MaskItem* this = AllocThis(MaskItem); 216b66: bf 30 00 00 00 mov $0x30,%edi 216b6b: e8 f0 1e 02 00 call 238a60 216b70: 48 89 45 e8 mov %rax,-0x18(%rbp) 216b74: 48 8b 45 e8 mov -0x18(%rbp),%rax 216b78: 48 b9 88 71 20 00 00 00 00 00 movabs $0x207188,%rcx 216b82: 48 89 08 mov %rcx,(%rax) this->text = xStrdup(text); 216b85: 48 8b 7d f8 mov -0x8(%rbp),%rdi 216b89: e8 62 24 02 00 call 238ff0 216b8e: 48 89 c1 mov %rax,%rcx 216b91: 48 8b 45 e8 mov -0x18(%rbp),%rax 216b95: 48 89 48 08 mov %rcx,0x8(%rax) this->indent = NULL; /* not a tree node */ 216b99: 48 8b 45 e8 mov -0x18(%rbp),%rax 216b9d: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) this->sub_tree = 0; 216ba5: 48 8b 45 e8 mov -0x18(%rbp),%rax 216ba9: c7 40 1c 00 00 00 00 movl $0x0,0x1c(%rax) this->children = Vector_new(Class(MaskItem), true, DEFAULT_SIZE); 216bb0: 48 bf 88 71 20 00 00 00 00 00 movabs $0x207188,%rdi 216bba: be 01 00 00 00 mov $0x1,%esi 216bbf: ba ff ff ff ff mov $0xffffffff,%edx 216bc4: e8 b7 14 02 00 call 238080 216bc9: 48 89 c1 mov %rax,%rcx 216bcc: 48 8b 45 e8 mov -0x18(%rbp),%rax 216bd0: 48 89 48 20 mov %rcx,0x20(%rax) this->cpu = cpu; 216bd4: 8b 4d f4 mov -0xc(%rbp),%ecx 216bd7: 48 8b 45 e8 mov -0x18(%rbp),%rax 216bdb: 89 48 28 mov %ecx,0x28(%rax) this->value = isSet ? 2 : 0; 216bde: 8a 55 f3 mov -0xd(%rbp),%dl 216be1: 31 c9 xor %ecx,%ecx 216be3: b8 02 00 00 00 mov $0x2,%eax 216be8: f6 c2 01 test $0x1,%dl 216beb: 0f 45 c8 cmovne %eax,%ecx 216bee: 48 8b 45 e8 mov -0x18(%rbp),%rax 216bf2: 89 48 18 mov %ecx,0x18(%rax) return this; 216bf5: 48 8b 45 e8 mov -0x18(%rbp),%rax 216bf9: 48 83 c4 20 add $0x20,%rsp 216bfd: 5d pop %rbp 216bfe: c3 ret 216bff: 90 nop 0000000000216c00 : static void AffinityPanel_update(AffinityPanel* this, bool keepSelected) { 216c00: 55 push %rbp 216c01: 48 89 e5 mov %rsp,%rbp 216c04: 48 83 ec 20 sub $0x20,%rsp 216c08: 40 88 f0 mov %sil,%al 216c0b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 216c0f: 24 01 and $0x1,%al 216c11: 88 45 f7 mov %al,-0x9(%rbp) Panel* super = (Panel*) this; 216c14: 48 8b 45 f8 mov -0x8(%rbp),%rax 216c18: 48 89 45 e8 mov %rax,-0x18(%rbp) FunctionBar_setLabel(super->currentBar, KEY_F(3), this->topoView ? "Collapse/Expand" : ""); 216c1c: 48 8b 45 e8 mov -0x18(%rbp),%rax 216c20: 48 8b 78 48 mov 0x48(%rax),%rdi 216c24: 48 8b 45 f8 mov -0x8(%rbp),%rax 216c28: 8a 88 e0 26 00 00 mov 0x26e0(%rax),%cl 216c2e: 48 ba ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rdx 216c38: 48 b8 91 67 20 00 00 00 00 00 movabs $0x206791,%rax 216c42: f6 c1 01 test $0x1,%cl 216c45: 48 0f 45 d0 cmovne %rax,%rdx 216c49: be 0b 01 00 00 mov $0x10b,%esi 216c4e: e8 dd 79 00 00 call 21e630 int oldSelected = Panel_getSelectedIndex(super); 216c53: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216c57: e8 24 15 01 00 call 228180 216c5c: 89 45 e4 mov %eax,-0x1c(%rbp) Panel_prune(super); 216c5f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216c63: e8 28 12 01 00 call 227e90 Panel_splice(super, this->cpuids); 216c68: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216c6c: 48 8b 45 f8 mov -0x8(%rbp),%rax 216c70: 48 8b b0 e8 26 00 00 mov 0x26e8(%rax),%rsi 216c77: e8 c4 15 01 00 call 228240 if (keepSelected) 216c7c: f6 45 f7 01 testb $0x1,-0x9(%rbp) 216c80: 0f 84 0c 00 00 00 je 216c92 Panel_setSelected(super, oldSelected); 216c86: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216c8a: 8b 75 e4 mov -0x1c(%rbp),%esi 216c8d: e8 2e 15 01 00 call 2281c0 super->needsRedraw = true; 216c92: 48 8b 45 e8 mov -0x18(%rbp),%rax 216c96: c6 40 40 01 movb $0x1,0x40(%rax) } 216c9a: 48 83 c4 20 add $0x20,%rsp 216c9e: 5d pop %rbp 216c9f: c3 ret 0000000000216ca0 : } Affinity* AffinityPanel_getAffinity(Panel* super, ProcessList* pl) { 216ca0: 55 push %rbp 216ca1: 48 89 e5 mov %rsp,%rbp 216ca4: 48 83 ec 40 sub $0x40,%rsp 216ca8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 216cac: 48 89 75 f0 mov %rsi,-0x10(%rbp) const AffinityPanel* this = (AffinityPanel*) super; 216cb0: 48 8b 45 f8 mov -0x8(%rbp),%rax 216cb4: 48 89 45 e8 mov %rax,-0x18(%rbp) Affinity* affinity = Affinity_new(pl); 216cb8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216cbc: e8 9f f9 ff ff call 216660 216cc1: 48 89 45 e0 mov %rax,-0x20(%rbp) int i; hwloc_bitmap_foreach_begin(i, this->workCpuset) Affinity_add(affinity, (unsigned)i); hwloc_bitmap_foreach_end(); #else for (int i = 0; i < Vector_size(this->cpuids); i++) { 216cc5: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 216ccc: 8b 45 dc mov -0x24(%rbp),%eax 216ccf: 89 45 cc mov %eax,-0x34(%rbp) 216cd2: 48 8b 45 e8 mov -0x18(%rbp),%rax 216cd6: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 216cdd: e8 6e 00 00 00 call 216d50 216ce2: 89 c1 mov %eax,%ecx 216ce4: 8b 45 cc mov -0x34(%rbp),%eax 216ce7: 39 c8 cmp %ecx,%eax 216ce9: 0f 8d 48 00 00 00 jge 216d37 const MaskItem* item = (const MaskItem*)Vector_get(this->cpuids, i); 216cef: 48 8b 45 e8 mov -0x18(%rbp),%rax 216cf3: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 216cfa: 8b 75 dc mov -0x24(%rbp),%esi 216cfd: e8 6e 00 00 00 call 216d70 216d02: 48 89 45 d0 mov %rax,-0x30(%rbp) if (item->value) { 216d06: 48 8b 45 d0 mov -0x30(%rbp),%rax 216d0a: 83 78 18 00 cmpl $0x0,0x18(%rax) 216d0e: 0f 84 10 00 00 00 je 216d24 Affinity_add(affinity, item->cpu); 216d14: 48 8b 7d e0 mov -0x20(%rbp),%rdi 216d18: 48 8b 45 d0 mov -0x30(%rbp),%rax 216d1c: 8b 70 28 mov 0x28(%rax),%esi 216d1f: e8 cc f9 ff ff call 2166f0 } } 216d24: e9 00 00 00 00 jmp 216d29 for (int i = 0; i < Vector_size(this->cpuids); i++) { 216d29: 8b 45 dc mov -0x24(%rbp),%eax 216d2c: 83 c0 01 add $0x1,%eax 216d2f: 89 45 dc mov %eax,-0x24(%rbp) 216d32: e9 95 ff ff ff jmp 216ccc #endif return affinity; 216d37: 48 8b 45 e0 mov -0x20(%rbp),%rax 216d3b: 48 83 c4 40 add $0x40,%rsp 216d3f: 5d pop %rbp 216d40: c3 ret 216d41: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 216d4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000216d50 : static inline Object* Vector_get(const Vector* this, int idx) { return this->array[idx]; } static inline int Vector_size(const Vector* this) { 216d50: 55 push %rbp 216d51: 48 89 e5 mov %rsp,%rbp 216d54: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 216d58: 48 8b 45 f8 mov -0x8(%rbp),%rax 216d5c: 8b 40 18 mov 0x18(%rax),%eax 216d5f: 5d pop %rbp 216d60: c3 ret 216d61: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 216d6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000216d70 : static inline Object* Vector_get(const Vector* this, int idx) { 216d70: 55 push %rbp 216d71: 48 89 e5 mov %rsp,%rbp 216d74: 48 89 7d f8 mov %rdi,-0x8(%rbp) 216d78: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 216d7b: 48 8b 45 f8 mov -0x8(%rbp),%rax 216d7f: 48 8b 00 mov (%rax),%rax 216d82: 48 63 4d f4 movslq -0xc(%rbp),%rcx 216d86: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 216d8a: 5d pop %rbp 216d8b: c3 ret 216d8c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000216d90 : static void MaskItem_display(const Object* cast, RichString* out) { 216d90: 55 push %rbp 216d91: 48 89 e5 mov %rsp,%rbp 216d94: 48 83 ec 30 sub $0x30,%rsp 216d98: 48 89 7d f8 mov %rdi,-0x8(%rbp) 216d9c: 48 89 75 f0 mov %rsi,-0x10(%rbp) const MaskItem* this = (const MaskItem*)cast; 216da0: 48 8b 45 f8 mov -0x8(%rbp),%rax 216da4: 48 89 45 e8 mov %rax,-0x18(%rbp) RichString_appendAscii(out, CRT_colors[CHECK_BOX], "["); 216da8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216dac: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216db4: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 216dba: 48 ba 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rdx 216dc4: e8 b7 b7 01 00 call 232580 if (this->value == 2) { 216dc9: 48 8b 45 e8 mov -0x18(%rbp),%rax 216dcd: 83 78 18 02 cmpl $0x2,0x18(%rax) 216dd1: 0f 85 26 00 00 00 jne 216dfd RichString_appendAscii(out, CRT_colors[CHECK_MARK], "x"); 216dd7: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216ddb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216de3: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 216de9: 48 ba 68 5c 20 00 00 00 00 00 movabs $0x205c68,%rdx 216df3: e8 88 b7 01 00 call 232580 } else if (this->value == 1) { 216df8: e9 5a 00 00 00 jmp 216e57 216dfd: 48 8b 45 e8 mov -0x18(%rbp),%rax 216e01: 83 78 18 01 cmpl $0x1,0x18(%rax) 216e05: 0f 85 26 00 00 00 jne 216e31 RichString_appendAscii(out, CRT_colors[CHECK_MARK], "o"); 216e0b: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216e0f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216e17: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 216e1d: 48 ba df 50 20 00 00 00 00 00 movabs $0x2050df,%rdx 216e27: e8 54 b7 01 00 call 232580 } else { 216e2c: e9 21 00 00 00 jmp 216e52 RichString_appendAscii(out, CRT_colors[CHECK_MARK], " "); 216e31: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216e35: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216e3d: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 216e43: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 216e4d: e8 2e b7 01 00 call 232580 216e52: e9 00 00 00 00 jmp 216e57 RichString_appendAscii(out, CRT_colors[CHECK_BOX], "]"); 216e57: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216e5b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216e63: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 216e69: 48 ba 7f 45 20 00 00 00 00 00 movabs $0x20457f,%rdx 216e73: e8 08 b7 01 00 call 232580 RichString_appendAscii(out, CRT_colors[CHECK_TEXT], " "); 216e78: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216e7c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216e84: 8b b0 00 01 00 00 mov 0x100(%rax),%esi 216e8a: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 216e94: e8 e7 b6 01 00 call 232580 if (this->indent) { 216e99: 48 8b 45 e8 mov -0x18(%rbp),%rax 216e9d: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 216ea2: 0f 84 9c 00 00 00 je 216f44 RichString_appendWide(out, CRT_colors[PROCESS_TREE], this->indent); 216ea8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216eac: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216eb4: 8b b0 84 00 00 00 mov 0x84(%rax),%esi 216eba: 48 8b 45 e8 mov -0x18(%rbp),%rax 216ebe: 48 8b 50 10 mov 0x10(%rax),%rdx 216ec2: e8 09 b4 01 00 call 2322d0 RichString_appendWide(out, CRT_colors[PROCESS_TREE], 216ec7: 48 8b 45 f0 mov -0x10(%rbp),%rax 216ecb: 48 89 45 d8 mov %rax,-0x28(%rbp) 216ecf: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216ed7: 8b 80 84 00 00 00 mov 0x84(%rax),%eax 216edd: 89 45 e4 mov %eax,-0x1c(%rbp) this->sub_tree == 2 216ee0: 48 8b 45 e8 mov -0x18(%rbp),%rax 216ee4: 83 78 1c 02 cmpl $0x2,0x1c(%rax) 216ee8: 0f 85 15 00 00 00 jne 216f03 ? CRT_treeStr[TREE_STR_OPEN] 216eee: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 216ef6: 48 8b 40 20 mov 0x20(%rax),%rax 216efa: 48 89 45 d0 mov %rax,-0x30(%rbp) this->sub_tree == 2 216efe: e9 10 00 00 00 jmp 216f13 : CRT_treeStr[TREE_STR_SHUT]); 216f03: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 216f0b: 48 8b 40 28 mov 0x28(%rax),%rax 216f0f: 48 89 45 d0 mov %rax,-0x30(%rbp) 216f13: 8b 75 e4 mov -0x1c(%rbp),%esi 216f16: 48 8b 7d d8 mov -0x28(%rbp),%rdi 216f1a: 48 8b 55 d0 mov -0x30(%rbp),%rdx RichString_appendWide(out, CRT_colors[PROCESS_TREE], 216f1e: e8 ad b3 01 00 call 2322d0 RichString_appendAscii(out, CRT_colors[CHECK_TEXT], " "); 216f23: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216f27: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216f2f: 8b b0 00 01 00 00 mov 0x100(%rax),%esi 216f35: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 216f3f: e8 3c b6 01 00 call 232580 RichString_appendWide(out, CRT_colors[CHECK_TEXT], this->text); 216f44: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216f48: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 216f50: 8b b0 00 01 00 00 mov 0x100(%rax),%esi 216f56: 48 8b 45 e8 mov -0x18(%rbp),%rax 216f5a: 48 8b 50 08 mov 0x8(%rax),%rdx 216f5e: e8 6d b3 01 00 call 2322d0 } 216f63: 48 83 c4 30 add $0x30,%rsp 216f67: 5d pop %rbp 216f68: c3 ret 216f69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000216f70 : static void MaskItem_delete(Object* cast) { 216f70: 55 push %rbp 216f71: 48 89 e5 mov %rsp,%rbp 216f74: 48 83 ec 10 sub $0x10,%rsp 216f78: 48 89 7d f8 mov %rdi,-0x8(%rbp) MaskItem* this = (MaskItem*) cast; 216f7c: 48 8b 45 f8 mov -0x8(%rbp),%rax 216f80: 48 89 45 f0 mov %rax,-0x10(%rbp) free(this->text); 216f84: 48 8b 45 f0 mov -0x10(%rbp),%rax 216f88: 48 8b 78 08 mov 0x8(%rax),%rdi 216f8c: e8 cf 71 02 00 call 23e160 free(this->indent); 216f91: 48 8b 45 f0 mov -0x10(%rbp),%rax 216f95: 48 8b 78 10 mov 0x10(%rax),%rdi 216f99: e8 c2 71 02 00 call 23e160 Vector_delete(this->children); 216f9e: 48 8b 45 f0 mov -0x10(%rbp),%rax 216fa2: 48 8b 78 20 mov 0x20(%rax),%rdi 216fa6: e8 65 11 02 00 call 238110 free(this); 216fab: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216faf: e8 ac 71 02 00 call 23e160 } 216fb4: 48 83 c4 10 add $0x10,%rsp 216fb8: 5d pop %rbp 216fb9: c3 ret 216fba: cc int3 216fbb: cc int3 216fbc: cc int3 216fbd: cc int3 216fbe: cc int3 216fbf: cc int3 0000000000216fc0 : #include "XUtils.h" static const char* const AvailableColumnsFunctions[] = {" ", " ", " ", " ", "Add ", " ", " ", " ", " ", "Done ", NULL}; static void AvailableColumnsPanel_delete(Object* object) { 216fc0: 55 push %rbp 216fc1: 48 89 e5 mov %rsp,%rbp 216fc4: 48 83 ec 20 sub $0x20,%rsp 216fc8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 216fcc: 48 8b 45 f8 mov -0x8(%rbp),%rax 216fd0: 48 89 45 f0 mov %rax,-0x10(%rbp) AvailableColumnsPanel* this = (AvailableColumnsPanel*) object; 216fd4: 48 8b 45 f8 mov -0x8(%rbp),%rax 216fd8: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 216fdc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 216fe0: e8 9b 0d 01 00 call 227d80 free(this); 216fe5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 216fe9: e8 72 71 02 00 call 23e160 } 216fee: 48 83 c4 20 add $0x20,%rsp 216ff2: 5d pop %rbp 216ff3: c3 ret 216ff4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 216ffe: 66 90 xchg %ax,%ax 0000000000217000 : else name = Process_fields[key].name; Panel_insert(this->columns, at, (Object*) ListItem_new(name, key)); } static HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) { 217000: 55 push %rbp 217001: 48 89 e5 mov %rsp,%rbp 217004: 48 83 ec 30 sub $0x30,%rsp 217008: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21700c: 89 75 f4 mov %esi,-0xc(%rbp) AvailableColumnsPanel* this = (AvailableColumnsPanel*) super; 21700f: 48 8b 45 f8 mov -0x8(%rbp),%rax 217013: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 217017: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) switch(ch) { 21701e: 8b 45 f4 mov -0xc(%rbp),%eax 217021: 89 45 d0 mov %eax,-0x30(%rbp) 217024: 83 e8 0d sub $0xd,%eax 217027: 0f 84 2b 00 00 00 je 217058 21702d: e9 00 00 00 00 jmp 217032 217032: 8b 45 d0 mov -0x30(%rbp),%eax 217035: 2d 0d 01 00 00 sub $0x10d,%eax 21703a: 0f 84 18 00 00 00 je 217058 217040: e9 00 00 00 00 jmp 217045 217045: 8b 45 d0 mov -0x30(%rbp),%eax 217048: 2d 57 01 00 00 sub $0x157,%eax 21704d: 0f 85 7a 00 00 00 jne 2170cd 217053: e9 00 00 00 00 jmp 217058 case 13: case KEY_ENTER: case KEY_F(5): { const ListItem* selected = (ListItem*) Panel_getSelected(super); 217058: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21705c: e8 0f 10 01 00 call 228070 217061: 48 89 45 d8 mov %rax,-0x28(%rbp) if (!selected) 217065: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21706a: 0f 85 05 00 00 00 jne 217075 break; 217070: e9 9d 00 00 00 jmp 217112 int at = Panel_getSelectedIndex(this->columns); 217075: 48 8b 45 e8 mov -0x18(%rbp),%rax 217079: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 217080: e8 fb 10 01 00 call 228180 217085: 89 45 d4 mov %eax,-0x2c(%rbp) AvailableColumnsPanel_insert(this, at, selected->key); 217088: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21708c: 8b 75 d4 mov -0x2c(%rbp),%esi 21708f: 48 8b 45 d8 mov -0x28(%rbp),%rax 217093: 8b 50 10 mov 0x10(%rax),%edx 217096: e8 b5 02 00 00 call 217350 Panel_setSelected(this->columns, at + 1); 21709b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21709f: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2170a6: 8b 75 d4 mov -0x2c(%rbp),%esi 2170a9: 83 c6 01 add $0x1,%esi 2170ac: e8 0f 11 01 00 call 2281c0 ColumnsPanel_update(this->columns); 2170b1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2170b5: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2170bc: e8 7f 1e 00 00 call 218f40 result = HANDLED; 2170c1: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; 2170c8: e9 45 00 00 00 jmp 217112 } default: { if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) 2170cd: 31 c0 xor %eax,%eax 2170cf: 3b 45 f4 cmp -0xc(%rbp),%eax 2170d2: 0f 8d 35 00 00 00 jge 21710d 2170d8: 81 7d f4 ff 00 00 00 cmpl $0xff,-0xc(%rbp) 2170df: 0f 8d 28 00 00 00 jge 21710d 2170e5: 8b 45 f4 mov -0xc(%rbp),%eax 2170e8: 0f b6 f8 movzbl %al,%edi 2170eb: be 00 08 00 00 mov $0x800,%esi 2170f0: e8 db 02 00 00 call 2173d0 <__sbistype> 2170f5: 83 f8 00 cmp $0x0,%eax 2170f8: 0f 84 0f 00 00 00 je 21710d result = Panel_selectByTyping(super, ch); 2170fe: 48 8b 7d f8 mov -0x8(%rbp),%rdi 217102: 8b 75 f4 mov -0xc(%rbp),%esi 217105: e8 26 08 01 00 call 227930 21710a: 89 45 e4 mov %eax,-0x1c(%rbp) break; 21710d: e9 00 00 00 00 jmp 217112 } } return result; 217112: 8b 45 e4 mov -0x1c(%rbp),%eax 217115: 48 83 c4 30 add $0x30,%rsp 217119: 5d pop %rbp 21711a: c3 ret 21711b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000217120 : Panel_add(super, (Object*) ListItem_new(description, i)); } } } AvailableColumnsPanel* AvailableColumnsPanel_new(Panel* columns, Hashtable* dynamicColumns) { 217120: 55 push %rbp 217121: 48 89 e5 mov %rsp,%rbp 217124: 48 83 ec 40 sub $0x40,%rsp 217128: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21712c: 48 89 75 f0 mov %rsi,-0x10(%rbp) AvailableColumnsPanel* this = AllocThis(AvailableColumnsPanel); 217130: bf e0 26 00 00 mov $0x26e0,%edi 217135: e8 26 19 02 00 call 238a60 21713a: 48 89 45 e8 mov %rax,-0x18(%rbp) 21713e: 48 8b 45 e8 mov -0x18(%rbp),%rax 217142: 48 b9 20 72 20 00 00 00 00 00 movabs $0x207220,%rcx 21714c: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 21714f: 48 8b 45 e8 mov -0x18(%rbp),%rax 217153: 48 89 45 e0 mov %rax,-0x20(%rbp) FunctionBar* fuBar = FunctionBar_new(AvailableColumnsFunctions, NULL, NULL); 217157: 48 bf 60 72 20 00 00 00 00 00 movabs $0x207260,%rdi 217161: 31 c0 xor %eax,%eax 217163: 89 c2 mov %eax,%edx 217165: 48 89 d6 mov %rdx,%rsi 217168: e8 e3 71 00 00 call 21e350 21716d: 48 89 45 d8 mov %rax,-0x28(%rbp) Panel_init(super, 1, 1, 1, 1, Class(ListItem), true, fuBar); 217171: 48 8b 7d e0 mov -0x20(%rbp),%rdi 217175: 48 8b 45 d8 mov -0x28(%rbp),%rax 217179: 41 b8 01 00 00 00 mov $0x1,%r8d 21717f: 49 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r9 217189: 44 89 c6 mov %r8d,%esi 21718c: 44 89 c2 mov %r8d,%edx 21718f: 44 89 c1 mov %r8d,%ecx 217192: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 217199: 48 89 44 24 08 mov %rax,0x8(%rsp) 21719e: e8 5d 0a 01 00 call 227c00 Panel_setHeader(super, "Available Columns"); 2171a3: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2171a7: 48 be 04 43 20 00 00 00 00 00 movabs $0x204304,%rsi 2171b1: e8 3a 0c 01 00 call 227df0 AvailableColumnsPanel_addPlatformColumn(super); 2171b6: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2171ba: e8 31 00 00 00 call 2171f0 AvailableColumnsPanel_addDynamicColumns(super, dynamicColumns); 2171bf: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2171c3: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2171c7: e8 54 01 00 00 call 217320 this->columns = columns; 2171cc: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2171d0: 48 8b 45 e8 mov -0x18(%rbp),%rax 2171d4: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) return this; 2171db: 48 8b 45 e8 mov -0x18(%rbp),%rax 2171df: 48 83 c4 40 add $0x40,%rsp 2171e3: 5d pop %rbp 2171e4: c3 ret 2171e5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2171ef: 90 nop 00000000002171f0 : static void AvailableColumnsPanel_addPlatformColumn(Panel* super) { 2171f0: 55 push %rbp 2171f1: 48 89 e5 mov %rsp,%rbp 2171f4: 48 81 ec 30 01 00 00 sub $0x130,%rsp 2171fb: 48 8b 05 2e b6 02 00 mov 0x2b62e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217202: 48 89 45 f8 mov %rax,-0x8(%rbp) 217206: 48 89 bd e8 fe ff ff mov %rdi,-0x118(%rbp) for (int i = 1; i < LAST_PROCESSFIELD; i++) { 21720d: c7 85 e4 fe ff ff 01 00 00 00 movl $0x1,-0x11c(%rbp) 217217: 83 bd e4 fe ff ff 7f cmpl $0x7f,-0x11c(%rbp) 21721e: 0f 8d cc 00 00 00 jge 2172f0 if (i != COMM && Process_fields[i].description) { 217224: 83 bd e4 fe ff ff 02 cmpl $0x2,-0x11c(%rbp) 21722b: 0f 84 a6 00 00 00 je 2172d7 217231: 48 63 8d e4 fe ff ff movslq -0x11c(%rbp),%rcx 217238: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 217242: 48 c1 e1 05 shl $0x5,%rcx 217246: 48 01 c8 add %rcx,%rax 217249: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21724e: 0f 84 83 00 00 00 je 2172d7 xSnprintf(description, sizeof(description), "%s - %s", Process_fields[i].name, Process_fields[i].description); 217254: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 21725b: 48 63 8d e4 fe ff ff movslq -0x11c(%rbp),%rcx 217262: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 21726c: 48 c1 e1 05 shl $0x5,%rcx 217270: 48 01 c8 add %rcx,%rax 217273: 48 8b 08 mov (%rax),%rcx 217276: 48 63 95 e4 fe ff ff movslq -0x11c(%rbp),%rdx 21727d: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 217287: 48 c1 e2 05 shl $0x5,%rdx 21728b: 48 01 d0 add %rdx,%rax 21728e: 4c 8b 40 10 mov 0x10(%rax),%r8 217292: be 00 01 00 00 mov $0x100,%esi 217297: 48 ba 06 3d 20 00 00 00 00 00 movabs $0x203d06,%rdx 2172a1: b0 00 mov $0x0,%al 2172a3: e8 48 22 02 00 call 2394f0 Panel_add(super, (Object*) ListItem_new(description, i)); 2172a8: 48 8b 85 e8 fe ff ff mov -0x118(%rbp),%rax 2172af: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) 2172b6: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 2172bd: 8b b5 e4 fe ff ff mov -0x11c(%rbp),%esi 2172c3: e8 88 aa 00 00 call 221d50 2172c8: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 2172cf: 48 89 c6 mov %rax,%rsi 2172d2: e8 09 0c 01 00 call 227ee0 } 2172d7: e9 00 00 00 00 jmp 2172dc for (int i = 1; i < LAST_PROCESSFIELD; i++) { 2172dc: 8b 85 e4 fe ff ff mov -0x11c(%rbp),%eax 2172e2: 83 c0 01 add $0x1,%eax 2172e5: 89 85 e4 fe ff ff mov %eax,-0x11c(%rbp) 2172eb: e9 27 ff ff ff jmp 217217 2172f0: 48 8b 05 39 b5 02 00 mov 0x2b539(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2172f7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2172fb: 48 39 c8 cmp %rcx,%rax 2172fe: 0f 85 09 00 00 00 jne 21730d } 217304: 48 81 c4 30 01 00 00 add $0x130,%rsp 21730b: 5d pop %rbp 21730c: c3 ret 21730d: e8 2e 6e 02 00 call 23e140 <__stack_chk_fail@plt> 217312: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21731c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000217320 : static void AvailableColumnsPanel_addDynamicColumns(Panel* super, Hashtable* dynamicColumns) { 217320: 55 push %rbp 217321: 48 89 e5 mov %rsp,%rbp 217324: 48 83 ec 10 sub $0x10,%rsp 217328: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21732c: 48 89 75 f0 mov %rsi,-0x10(%rbp) Hashtable_foreach(dynamicColumns, AvailableColumnsPanel_addDynamicColumn, super); 217330: 48 8b 7d f0 mov -0x10(%rbp),%rdi 217334: 48 8b 55 f8 mov -0x8(%rbp),%rdx 217338: 48 be c0 74 21 00 00 00 00 00 movabs $0x2174c0,%rsi 217342: e8 99 80 00 00 call 21f3e0 } 217347: 48 83 c4 10 add $0x10,%rsp 21734b: 5d pop %rbp 21734c: c3 ret 21734d: 0f 1f 00 nopl (%rax) 0000000000217350 : static void AvailableColumnsPanel_insert(AvailableColumnsPanel* this, int at, int key) { 217350: 55 push %rbp 217351: 48 89 e5 mov %rsp,%rbp 217354: 48 83 ec 30 sub $0x30,%rsp 217358: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21735c: 89 75 f4 mov %esi,-0xc(%rbp) 21735f: 89 55 f0 mov %edx,-0x10(%rbp) if (key >= LAST_PROCESSFIELD) 217362: 83 7d f0 7f cmpl $0x7f,-0x10(%rbp) 217366: 0f 8c 11 00 00 00 jl 21737d name = DynamicColumn_init(key); 21736c: 8b 7d f0 mov -0x10(%rbp),%edi 21736f: e8 6c 67 00 00 call 21dae0 217374: 48 89 45 e8 mov %rax,-0x18(%rbp) 217378: e9 1c 00 00 00 jmp 217399 name = Process_fields[key].name; 21737d: 48 63 4d f0 movslq -0x10(%rbp),%rcx 217381: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 21738b: 48 c1 e1 05 shl $0x5,%rcx 21738f: 48 01 c8 add %rcx,%rax 217392: 48 8b 00 mov (%rax),%rax 217395: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_insert(this->columns, at, (Object*) ListItem_new(name, key)); 217399: 48 8b 45 f8 mov -0x8(%rbp),%rax 21739d: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2173a4: 48 89 45 d8 mov %rax,-0x28(%rbp) 2173a8: 8b 45 f4 mov -0xc(%rbp),%eax 2173ab: 89 45 e4 mov %eax,-0x1c(%rbp) 2173ae: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2173b2: 8b 75 f0 mov -0x10(%rbp),%esi 2173b5: e8 96 a9 00 00 call 221d50 2173ba: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2173be: 8b 75 e4 mov -0x1c(%rbp),%esi 2173c1: 48 89 c2 mov %rax,%rdx 2173c4: e8 47 0b 01 00 call 227f10 } 2173c9: 48 83 c4 30 add $0x30,%rsp 2173cd: 5d pop %rbp 2173ce: c3 ret 2173cf: 90 nop 00000000002173d0 <__sbistype>: return (!!__maskrune(_c, _f)); } static __inline int __sbistype(__ct_rune_t _c, unsigned long _f) { 2173d0: 55 push %rbp 2173d1: 48 89 e5 mov %rsp,%rbp 2173d4: 48 83 ec 10 sub $0x10,%rsp 2173d8: 89 7d fc mov %edi,-0x4(%rbp) 2173db: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 2173df: 8b 7d fc mov -0x4(%rbp),%edi 2173e2: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2173e6: e8 15 00 00 00 call 217400 <__sbmaskrune> 2173eb: 83 f8 00 cmp $0x0,%eax 2173ee: 0f 95 c0 setne %al 2173f1: 34 ff xor $0xff,%al 2173f3: 34 ff xor $0xff,%al 2173f5: 24 01 and $0x1,%al 2173f7: 0f b6 c0 movzbl %al,%eax 2173fa: 48 83 c4 10 add $0x10,%rsp 2173fe: 5d pop %rbp 2173ff: c3 ret 0000000000217400 <__sbmaskrune>: { 217400: 55 push %rbp 217401: 48 89 e5 mov %rsp,%rbp 217404: 48 83 ec 20 sub $0x20,%rsp 217408: 89 7d fc mov %edi,-0x4(%rbp) 21740b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21740f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 217413: 0f 8c 10 00 00 00 jl 217429 <__sbmaskrune+0x29> 217419: 8b 45 fc mov -0x4(%rbp),%eax 21741c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 217423: 0f 8c 0b 00 00 00 jl 217434 <__sbmaskrune+0x34> 217429: 31 c0 xor %eax,%eax 21742b: 48 89 45 e8 mov %rax,-0x18(%rbp) 21742f: e9 16 00 00 00 jmp 21744a <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 217434: e8 27 00 00 00 call 217460 <__getCurrentRuneLocale> 217439: 48 63 4d fc movslq -0x4(%rbp),%rcx 21743d: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 217442: 48 23 45 f0 and -0x10(%rbp),%rax 217446: 48 89 45 e8 mov %rax,-0x18(%rbp) 21744a: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21744e: 48 83 c4 20 add $0x20,%rsp 217452: 5d pop %rbp 217453: c3 ret 217454: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21745e: 66 90 xchg %ax,%ax 0000000000217460 <__getCurrentRuneLocale>: #ifdef __RUNETYPE_INTERNAL extern const _RuneLocale *__getCurrentRuneLocale(void); #else extern _Thread_local const _RuneLocale *_ThreadRuneLocale; static __inline const _RuneLocale *__getCurrentRuneLocale(void) { 217460: 55 push %rbp 217461: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 217464: 48 8b 0d 45 88 02 00 mov 0x28845(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 21746b: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 217474: 48 8b 04 08 mov (%rax,%rcx,1),%rax 217478: 48 83 f8 00 cmp $0x0,%rax 21747c: 0f 84 1d 00 00 00 je 21749f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 217482: 48 8b 0d 27 88 02 00 mov 0x28827(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 217489: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 217492: 48 8b 04 08 mov (%rax,%rcx,1),%rax 217496: 48 89 45 f8 mov %rax,-0x8(%rbp) 21749a: e9 0c 00 00 00 jmp 2174ab <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 21749f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 2174a7: 48 89 45 f8 mov %rax,-0x8(%rbp) } 2174ab: 48 8b 45 f8 mov -0x8(%rbp),%rax 2174af: 5d pop %rbp 2174b0: c3 ret 2174b1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2174bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002174c0 : static void AvailableColumnsPanel_addDynamicColumn(ht_key_t key, void* value, void* data) { 2174c0: 55 push %rbp 2174c1: 48 89 e5 mov %rsp,%rbp 2174c4: 48 81 ec 50 01 00 00 sub $0x150,%rsp 2174cb: 48 8b 05 5e b3 02 00 mov 0x2b35e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2174d2: 48 89 45 f8 mov %rax,-0x8(%rbp) 2174d6: 89 bd ec fe ff ff mov %edi,-0x114(%rbp) 2174dc: 48 89 b5 e0 fe ff ff mov %rsi,-0x120(%rbp) 2174e3: 48 89 95 d8 fe ff ff mov %rdx,-0x128(%rbp) const DynamicColumn* column = (const DynamicColumn*) value; 2174ea: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 2174f1: 48 89 85 d0 fe ff ff mov %rax,-0x130(%rbp) Panel* super = (Panel*) data; 2174f8: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 2174ff: 48 89 85 c8 fe ff ff mov %rax,-0x138(%rbp) const char* title = column->caption ? column->caption : column->heading; 217506: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 21750d: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 217512: 0f 84 17 00 00 00 je 21752f 217518: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 21751f: 48 8b 40 28 mov 0x28(%rax),%rax 217523: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) 21752a: e9 12 00 00 00 jmp 217541 21752f: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 217536: 48 8b 40 20 mov 0x20(%rax),%rax 21753a: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) 217541: 48 8b 85 b8 fe ff ff mov -0x148(%rbp),%rax 217548: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) if (!title) 21754f: 48 83 bd c0 fe ff ff 00 cmpq $0x0,-0x140(%rbp) 217557: 0f 85 0e 00 00 00 jne 21756b title = column->name; // fallback to the only mandatory field 21755d: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 217564: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) xSnprintf(description, sizeof(description), "%s - %s", title, column->description); 21756b: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 217572: 48 8b 8d c0 fe ff ff mov -0x140(%rbp),%rcx 217579: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 217580: 4c 8b 40 30 mov 0x30(%rax),%r8 217584: be 00 01 00 00 mov $0x100,%esi 217589: 48 ba 06 3d 20 00 00 00 00 00 movabs $0x203d06,%rdx 217593: b0 00 mov $0x0,%al 217595: e8 56 1f 02 00 call 2394f0 Panel_add(super, (Object*) ListItem_new(description, key)); 21759a: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 2175a1: 48 89 85 b0 fe ff ff mov %rax,-0x150(%rbp) 2175a8: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 2175af: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 2175b5: e8 96 a7 00 00 call 221d50 2175ba: 48 8b bd b0 fe ff ff mov -0x150(%rbp),%rdi 2175c1: 48 89 c6 mov %rax,%rsi 2175c4: e8 17 09 01 00 call 227ee0 2175c9: 48 8b 05 60 b2 02 00 mov 0x2b260(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2175d0: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2175d4: 48 39 c8 cmp %rcx,%rax 2175d7: 0f 85 09 00 00 00 jne 2175e6 } 2175dd: 48 81 c4 50 01 00 00 add $0x150,%rsp 2175e4: 5d pop %rbp 2175e5: c3 ret 2175e6: e8 55 6b 02 00 call 23e140 <__stack_chk_fail@plt> 2175eb: cc int3 2175ec: cc int3 2175ed: cc int3 2175ee: cc int3 2175ef: cc int3 00000000002175f0 : #include "Platform.h" #include "ProvideCurses.h" #include "XUtils.h" static void AvailableMetersPanel_delete(Object* object) { 2175f0: 55 push %rbp 2175f1: 48 89 e5 mov %rsp,%rbp 2175f4: 48 83 ec 20 sub $0x20,%rsp 2175f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 2175fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 217600: 48 89 45 f0 mov %rax,-0x10(%rbp) AvailableMetersPanel* this = (AvailableMetersPanel*) object; 217604: 48 8b 45 f8 mov -0x8(%rbp),%rax 217608: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 21760c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 217610: e8 6b 07 01 00 call 227d80 free(this->meterPanels); 217615: 48 8b 45 e8 mov -0x18(%rbp),%rax 217619: 48 8b b8 f8 26 00 00 mov 0x26f8(%rax),%rdi 217620: e8 3b 6b 02 00 call 23e160 free(this); 217625: 48 8b 7d e8 mov -0x18(%rbp),%rdi 217629: e8 32 6b 02 00 call 23e160 } 21762e: 48 83 c4 20 add $0x20,%rsp 217632: 5d pop %rbp 217633: c3 ret 217634: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21763e: 66 90 xchg %ax,%ax 0000000000217640 : Panel_add((Panel*)panel, (Object*) Meter_toListItem(meter, false)); Panel_setSelected((Panel*)panel, Panel_size((Panel*)panel) - 1); MetersPanel_setMoving(panel, true); } static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { 217640: 55 push %rbp 217641: 48 89 e5 mov %rsp,%rbp 217644: 48 83 ec 50 sub $0x50,%rsp 217648: 48 89 7d f0 mov %rdi,-0x10(%rbp) 21764c: 89 75 ec mov %esi,-0x14(%rbp) AvailableMetersPanel* this = (AvailableMetersPanel*) super; 21764f: 48 8b 45 f0 mov -0x10(%rbp),%rax 217653: 48 89 45 e0 mov %rax,-0x20(%rbp) Header* header = this->header; 217657: 48 8b 45 e0 mov -0x20(%rbp),%rax 21765b: 48 8b 80 e8 26 00 00 mov 0x26e8(%rax),%rax 217662: 48 89 45 d8 mov %rax,-0x28(%rbp) const ListItem* selected = (ListItem*) Panel_getSelected(super); 217666: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21766a: e8 01 0a 01 00 call 228070 21766f: 48 89 45 d0 mov %rax,-0x30(%rbp) if (!selected) 217673: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 217678: 0f 85 0c 00 00 00 jne 21768a return IGNORED; 21767e: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) 217685: e9 9a 01 00 00 jmp 217824 unsigned int param = selected->key & 0xffff; 21768a: 48 8b 45 d0 mov -0x30(%rbp),%rax 21768e: 0f b7 40 10 movzwl 0x10(%rax),%eax 217692: 89 45 cc mov %eax,-0x34(%rbp) int type = selected->key >> 16; 217695: 48 8b 45 d0 mov -0x30(%rbp),%rax 217699: 8b 40 10 mov 0x10(%rax),%eax 21769c: c1 f8 10 sar $0x10,%eax 21769f: 89 45 c8 mov %eax,-0x38(%rbp) HandlerResult result = IGNORED; 2176a2: c7 45 c4 02 00 00 00 movl $0x2,-0x3c(%rbp) bool update = false; 2176a9: c6 45 c3 00 movb $0x0,-0x3d(%rbp) switch(ch) { 2176ad: 8b 45 ec mov -0x14(%rbp),%eax 2176b0: 89 45 bc mov %eax,-0x44(%rbp) 2176b3: 83 e8 0a sub $0xa,%eax 2176b6: 0f 84 ce 00 00 00 je 21778a 2176bc: e9 00 00 00 00 jmp 2176c1 2176c1: 8b 45 bc mov -0x44(%rbp),%eax 2176c4: 83 e8 0d sub $0xd,%eax 2176c7: 0f 84 bd 00 00 00 je 21778a 2176cd: e9 00 00 00 00 jmp 2176d2 2176d2: 8b 45 bc mov -0x44(%rbp),%eax 2176d5: 83 e8 4c sub $0x4c,%eax 2176d8: 0f 84 71 00 00 00 je 21774f 2176de: e9 00 00 00 00 jmp 2176e3 2176e3: 8b 45 bc mov -0x44(%rbp),%eax 2176e6: 83 e8 52 sub $0x52,%eax 2176e9: 0f 84 9b 00 00 00 je 21778a 2176ef: e9 00 00 00 00 jmp 2176f4 2176f4: 8b 45 bc mov -0x44(%rbp),%eax 2176f7: 83 e8 6c sub $0x6c,%eax 2176fa: 0f 84 4f 00 00 00 je 21774f 217700: e9 00 00 00 00 jmp 217705 217705: 8b 45 bc mov -0x44(%rbp),%eax 217708: 83 e8 72 sub $0x72,%eax 21770b: 0f 84 79 00 00 00 je 21778a 217711: e9 00 00 00 00 jmp 217716 217716: 8b 45 bc mov -0x44(%rbp),%eax 217719: 2d 0d 01 00 00 sub $0x10d,%eax 21771e: 0f 84 2b 00 00 00 je 21774f 217724: e9 00 00 00 00 jmp 217729 217729: 8b 45 bc mov -0x44(%rbp),%eax 21772c: 2d 0e 01 00 00 sub $0x10e,%eax 217731: 0f 84 53 00 00 00 je 21778a 217737: e9 00 00 00 00 jmp 21773c 21773c: 8b 45 bc mov -0x44(%rbp),%eax 21773f: 2d 57 01 00 00 sub $0x157,%eax 217744: 0f 84 40 00 00 00 je 21778a 21774a: e9 8b 00 00 00 jmp 2177da case KEY_F(5): case 'l': case 'L': { AvailableMetersPanel_addMeter(header, this->meterPanels[0], Platform_meterTypes[type], param, 0); 21774f: 48 8b 7d d8 mov -0x28(%rbp),%rdi 217753: 48 8b 45 e0 mov -0x20(%rbp),%rax 217757: 48 8b 80 f8 26 00 00 mov 0x26f8(%rax),%rax 21775e: 48 8b 30 mov (%rax),%rsi 217761: 48 63 45 c8 movslq -0x38(%rbp),%rax 217765: 48 8b 14 c5 20 ad 20 00 mov 0x20ad20(,%rax,8),%rdx 21776d: 8b 4d cc mov -0x34(%rbp),%ecx 217770: 31 c0 xor %eax,%eax 217772: 41 89 c0 mov %eax,%r8d 217775: e8 96 04 00 00 call 217c10 result = HANDLED; 21777a: c7 45 c4 01 00 00 00 movl $0x1,-0x3c(%rbp) update = true; 217781: c6 45 c3 01 movb $0x1,-0x3d(%rbp) break; 217785: e9 50 00 00 00 jmp 2177da case KEY_ENTER: case KEY_F(6): case 'r': case 'R': { AvailableMetersPanel_addMeter(header, this->meterPanels[this->columns - 1], Platform_meterTypes[type], param, this->columns - 1); 21778a: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21778e: 48 8b 45 e0 mov -0x20(%rbp),%rax 217792: 48 8b 80 f8 26 00 00 mov 0x26f8(%rax),%rax 217799: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21779d: 48 8b 89 f0 26 00 00 mov 0x26f0(%rcx),%rcx 2177a4: 48 83 e9 01 sub $0x1,%rcx 2177a8: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 2177ac: 48 63 45 c8 movslq -0x38(%rbp),%rax 2177b0: 48 8b 14 c5 20 ad 20 00 mov 0x20ad20(,%rax,8),%rdx 2177b8: 8b 4d cc mov -0x34(%rbp),%ecx 2177bb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2177bf: 4c 8b 80 f0 26 00 00 mov 0x26f0(%rax),%r8 2177c6: 49 83 e8 01 sub $0x1,%r8 2177ca: e8 41 04 00 00 call 217c10 result = (KEY_LEFT << 16) | SYNTH_KEY; 2177cf: c7 45 c4 80 00 04 01 movl $0x1040080,-0x3c(%rbp) update = true; 2177d6: c6 45 c3 01 movb $0x1,-0x3d(%rbp) break; } } if (update) { 2177da: f6 45 c3 01 testb $0x1,-0x3d(%rbp) 2177de: 0f 84 3a 00 00 00 je 21781e this->settings->changed = true; 2177e4: 48 8b 45 e0 mov -0x20(%rbp),%rax 2177e8: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 2177ef: c6 40 68 01 movb $0x1,0x68(%rax) Header_calculateHeight(header); 2177f3: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2177f7: e8 a4 7f 00 00 call 21f7a0 Header_updateData(header); 2177fc: 48 8b 7d d8 mov -0x28(%rbp),%rdi 217800: e8 4b 8b 00 00 call 220350 Header_draw(header); 217805: 48 8b 7d d8 mov -0x28(%rbp),%rdi 217809: e8 32 88 00 00 call 220040 ScreenManager_resize(this->scr); 21780e: 48 8b 45 e0 mov -0x20(%rbp),%rax 217812: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 217819: e8 32 b5 01 00 call 232d50 } return result; 21781e: 8b 45 c4 mov -0x3c(%rbp),%eax 217821: 89 45 fc mov %eax,-0x4(%rbp) } 217824: 8b 45 fc mov -0x4(%rbp),%eax 217827: 48 83 c4 50 add $0x50,%rsp 21782b: 5d pop %rbp 21782c: c3 ret 21782d: 0f 1f 00 nopl (%rax) 0000000000217830 : static void AvailableMetersPanel_addPlatformMeter(Panel* super, const MeterClass* type, unsigned int offset) { const char* label = type->description ? type->description : type->uiName; Panel_add(super, (Object*) ListItem_new(label, offset << 16)); } AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Header* header, size_t columns, MetersPanel** meterPanels, ScreenManager* scr, const ProcessList* pl) { 217830: 55 push %rbp 217831: 48 89 e5 mov %rsp,%rbp 217834: 48 83 ec 70 sub $0x70,%rsp 217838: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21783c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 217840: 48 89 55 e8 mov %rdx,-0x18(%rbp) 217844: 48 89 4d e0 mov %rcx,-0x20(%rbp) 217848: 4c 89 45 d8 mov %r8,-0x28(%rbp) 21784c: 4c 89 4d d0 mov %r9,-0x30(%rbp) AvailableMetersPanel* this = AllocThis(AvailableMetersPanel); 217850: bf 00 27 00 00 mov $0x2700,%edi 217855: e8 06 12 02 00 call 238a60 21785a: 48 89 45 c8 mov %rax,-0x38(%rbp) 21785e: 48 8b 45 c8 mov -0x38(%rbp),%rax 217862: 48 b9 b8 72 20 00 00 00 00 00 movabs $0x2072b8,%rcx 21786c: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 21786f: 48 8b 45 c8 mov -0x38(%rbp),%rax 217873: 48 89 45 c0 mov %rax,-0x40(%rbp) FunctionBar* fuBar = FunctionBar_newEnterEsc("Add ", "Done "); 217877: 48 bf 66 5a 20 00 00 00 00 00 movabs $0x205a66,%rdi 217881: 48 be df 49 20 00 00 00 00 00 movabs $0x2049df,%rsi 21788b: e8 40 6a 00 00 call 21e2d0 217890: 48 89 45 b8 mov %rax,-0x48(%rbp) Panel_init(super, 1, 1, 1, 1, Class(ListItem), true, fuBar); 217894: 48 8b 7d c0 mov -0x40(%rbp),%rdi 217898: 48 8b 45 b8 mov -0x48(%rbp),%rax 21789c: 41 b8 01 00 00 00 mov $0x1,%r8d 2178a2: 49 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r9 2178ac: 44 89 c6 mov %r8d,%esi 2178af: 44 89 c2 mov %r8d,%edx 2178b2: 44 89 c1 mov %r8d,%ecx 2178b5: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 2178bc: 48 89 44 24 08 mov %rax,0x8(%rsp) 2178c1: e8 3a 03 01 00 call 227c00 this->settings = settings; 2178c6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2178ca: 48 8b 45 c8 mov -0x38(%rbp),%rax 2178ce: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) this->header = header; 2178d5: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2178d9: 48 8b 45 c8 mov -0x38(%rbp),%rax 2178dd: 48 89 88 e8 26 00 00 mov %rcx,0x26e8(%rax) this->columns = columns; 2178e4: 48 8b 4d e8 mov -0x18(%rbp),%rcx 2178e8: 48 8b 45 c8 mov -0x38(%rbp),%rax 2178ec: 48 89 88 f0 26 00 00 mov %rcx,0x26f0(%rax) this->meterPanels = meterPanels; 2178f3: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2178f7: 48 8b 45 c8 mov -0x38(%rbp),%rax 2178fb: 48 89 88 f8 26 00 00 mov %rcx,0x26f8(%rax) this->scr = scr; 217902: 48 8b 4d d8 mov -0x28(%rbp),%rcx 217906: 48 8b 45 c8 mov -0x38(%rbp),%rax 21790a: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) Panel_setHeader(super, "Available meters"); 217911: 48 8b 7d c0 mov -0x40(%rbp),%rdi 217915: 48 be 8a 44 20 00 00 00 00 00 movabs $0x20448a,%rsi 21791f: e8 cc 04 01 00 call 227df0 // Platform_meterTypes[0] should be always (&CPUMeter_class) which we will // handle separately in the code below. Likewise, identifiers for Dynamic // Meters are handled separately - similar to CPUs, this allows generation // of multiple different Meters (also using 'param' to distinguish them). for (unsigned int i = 1; Platform_meterTypes[i]; i++) { 217924: c7 45 b4 01 00 00 00 movl $0x1,-0x4c(%rbp) 21792b: 8b 45 b4 mov -0x4c(%rbp),%eax 21792e: 48 83 3c c5 20 ad 20 00 00 cmpq $0x0,0x20ad20(,%rax,8) 217937: 0f 84 5b 00 00 00 je 217998 const MeterClass* type = Platform_meterTypes[i]; 21793d: 8b 45 b4 mov -0x4c(%rbp),%eax 217940: 48 8b 04 c5 20 ad 20 00 mov 0x20ad20(,%rax,8),%rax 217948: 48 89 45 a8 mov %rax,-0x58(%rbp) assert(type != &CPUMeter_class); if (type == &DynamicMeter_class) 21794c: 48 b8 88 87 20 00 00 00 00 00 movabs $0x208788,%rax 217956: 48 39 45 a8 cmp %rax,-0x58(%rbp) 21795a: 0f 85 15 00 00 00 jne 217975 AvailableMetersPanel_addDynamicMeters(super, pl, i); 217960: 48 8b 7d c0 mov -0x40(%rbp),%rdi 217964: 48 8b 75 d0 mov -0x30(%rbp),%rsi 217968: 8b 55 b4 mov -0x4c(%rbp),%edx 21796b: e8 50 00 00 00 call 2179c0 217970: e9 10 00 00 00 jmp 217985 else AvailableMetersPanel_addPlatformMeter(super, type, i); 217975: 48 8b 7d c0 mov -0x40(%rbp),%rdi 217979: 48 8b 75 a8 mov -0x58(%rbp),%rsi 21797d: 8b 55 b4 mov -0x4c(%rbp),%edx 217980: e8 ab 00 00 00 call 217a30 } 217985: e9 00 00 00 00 jmp 21798a for (unsigned int i = 1; Platform_meterTypes[i]; i++) { 21798a: 8b 45 b4 mov -0x4c(%rbp),%eax 21798d: 83 c0 01 add $0x1,%eax 217990: 89 45 b4 mov %eax,-0x4c(%rbp) 217993: e9 93 ff ff ff jmp 21792b AvailableMetersPanel_addCPUMeters(super, &CPUMeter_class, pl); 217998: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21799c: 48 8b 55 d0 mov -0x30(%rbp),%rdx 2179a0: 48 be 60 7c 20 00 00 00 00 00 movabs $0x207c60,%rsi 2179aa: e8 01 01 00 00 call 217ab0 return this; 2179af: 48 8b 45 c8 mov -0x38(%rbp),%rax 2179b3: 48 83 c4 70 add $0x70,%rsp 2179b7: 5d pop %rbp 2179b8: c3 ret 2179b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002179c0 : static void AvailableMetersPanel_addDynamicMeters(Panel* super, const ProcessList* pl, unsigned int offset) { 2179c0: 55 push %rbp 2179c1: 48 89 e5 mov %rsp,%rbp 2179c4: 48 83 ec 30 sub $0x30,%rsp 2179c8: 48 8b 05 61 ae 02 00 mov 0x2ae61(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2179cf: 48 89 45 f8 mov %rax,-0x8(%rbp) 2179d3: 48 89 7d e0 mov %rdi,-0x20(%rbp) 2179d7: 48 89 75 d8 mov %rsi,-0x28(%rbp) 2179db: 89 55 d4 mov %edx,-0x2c(%rbp) DynamicIterator iter = { .super = super, .id = 1, .offset = offset }; 2179de: 48 8b 45 e0 mov -0x20(%rbp),%rax 2179e2: 48 89 45 e8 mov %rax,-0x18(%rbp) 2179e6: c7 45 f0 01 00 00 00 movl $0x1,-0x10(%rbp) 2179ed: 8b 45 d4 mov -0x2c(%rbp),%eax 2179f0: 89 45 f4 mov %eax,-0xc(%rbp) Hashtable_foreach(pl->dynamicMeters, AvailableMetersPanel_addDynamicMeter, &iter); 2179f3: 48 8b 45 d8 mov -0x28(%rbp),%rax 2179f7: 48 8b 78 38 mov 0x38(%rax),%rdi 2179fb: 48 8d 55 e8 lea -0x18(%rbp),%rdx 2179ff: 48 be a0 7c 21 00 00 00 00 00 movabs $0x217ca0,%rsi 217a09: e8 d2 79 00 00 call 21f3e0 217a0e: 48 8b 05 1b ae 02 00 mov 0x2ae1b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217a15: 48 8b 4d f8 mov -0x8(%rbp),%rcx 217a19: 48 39 c8 cmp %rcx,%rax 217a1c: 0f 85 06 00 00 00 jne 217a28 } 217a22: 48 83 c4 30 add $0x30,%rsp 217a26: 5d pop %rbp 217a27: c3 ret 217a28: e8 13 67 02 00 call 23e140 <__stack_chk_fail@plt> 217a2d: 0f 1f 00 nopl (%rax) 0000000000217a30 : static void AvailableMetersPanel_addPlatformMeter(Panel* super, const MeterClass* type, unsigned int offset) { 217a30: 55 push %rbp 217a31: 48 89 e5 mov %rsp,%rbp 217a34: 48 83 ec 30 sub $0x30,%rsp 217a38: 48 89 7d f8 mov %rdi,-0x8(%rbp) 217a3c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 217a40: 89 55 ec mov %edx,-0x14(%rbp) const char* label = type->description ? type->description : type->uiName; 217a43: 48 8b 45 f0 mov -0x10(%rbp),%rax 217a47: 48 83 b8 88 00 00 00 00 cmpq $0x0,0x88(%rax) 217a4f: 0f 84 14 00 00 00 je 217a69 217a55: 48 8b 45 f0 mov -0x10(%rbp),%rax 217a59: 48 8b 80 88 00 00 00 mov 0x88(%rax),%rax 217a60: 48 89 45 d8 mov %rax,-0x28(%rbp) 217a64: e9 0c 00 00 00 jmp 217a75 217a69: 48 8b 45 f0 mov -0x10(%rbp),%rax 217a6d: 48 8b 40 78 mov 0x78(%rax),%rax 217a71: 48 89 45 d8 mov %rax,-0x28(%rbp) 217a75: 48 8b 45 d8 mov -0x28(%rbp),%rax 217a79: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_add(super, (Object*) ListItem_new(label, offset << 16)); 217a7d: 48 8b 45 f8 mov -0x8(%rbp),%rax 217a81: 48 89 45 d0 mov %rax,-0x30(%rbp) 217a85: 48 8b 7d e0 mov -0x20(%rbp),%rdi 217a89: 8b 75 ec mov -0x14(%rbp),%esi 217a8c: c1 e6 10 shl $0x10,%esi 217a8f: e8 bc a2 00 00 call 221d50 217a94: 48 8b 7d d0 mov -0x30(%rbp),%rdi 217a98: 48 89 c6 mov %rax,%rsi 217a9b: e8 40 04 01 00 call 227ee0 } 217aa0: 48 83 c4 30 add $0x30,%rsp 217aa4: 5d pop %rbp 217aa5: c3 ret 217aa6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000217ab0 : static void AvailableMetersPanel_addCPUMeters(Panel* super, const MeterClass* type, const ProcessList* pl) { 217ab0: 55 push %rbp 217ab1: 48 89 e5 mov %rsp,%rbp 217ab4: 48 81 ec 90 00 00 00 sub $0x90,%rsp 217abb: 48 8b 05 6e ad 02 00 mov 0x2ad6e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217ac2: 48 89 45 f8 mov %rax,-0x8(%rbp) 217ac6: 48 89 7d b8 mov %rdi,-0x48(%rbp) 217aca: 48 89 75 b0 mov %rsi,-0x50(%rbp) 217ace: 48 89 55 a8 mov %rdx,-0x58(%rbp) if (pl->existingCPUs > 1) { 217ad2: 48 8b 45 a8 mov -0x58(%rbp),%rax 217ad6: 83 b8 e4 00 00 00 01 cmpl $0x1,0xe4(%rax) 217add: 0f 86 d9 00 00 00 jbe 217bbc Panel_add(super, (Object*) ListItem_new("CPU average", 0)); 217ae3: 48 8b 45 b8 mov -0x48(%rbp),%rax 217ae7: 48 89 45 98 mov %rax,-0x68(%rbp) 217aeb: 48 bf 85 65 20 00 00 00 00 00 movabs $0x206585,%rdi 217af5: 31 f6 xor %esi,%esi 217af7: e8 54 a2 00 00 call 221d50 217afc: 48 8b 7d 98 mov -0x68(%rbp),%rdi 217b00: 48 89 c6 mov %rax,%rsi 217b03: e8 d8 03 01 00 call 227ee0 for (unsigned int i = 1; i <= pl->existingCPUs; i++) { 217b08: c7 45 a4 01 00 00 00 movl $0x1,-0x5c(%rbp) 217b0f: 8b 45 a4 mov -0x5c(%rbp),%eax 217b12: 48 8b 4d a8 mov -0x58(%rbp),%rcx 217b16: 3b 81 e4 00 00 00 cmp 0xe4(%rcx),%eax 217b1c: 0f 87 95 00 00 00 ja 217bb7 xSnprintf(buffer, sizeof(buffer), "%s %d", type->uiName, Settings_cpuId(pl->settings, i - 1)); 217b22: 48 8d 45 c0 lea -0x40(%rbp),%rax 217b26: 48 89 45 88 mov %rax,-0x78(%rbp) 217b2a: 48 8b 45 b0 mov -0x50(%rbp),%rax 217b2e: 48 8b 40 78 mov 0x78(%rax),%rax 217b32: 48 89 45 90 mov %rax,-0x70(%rbp) 217b36: 48 8b 45 a8 mov -0x58(%rbp),%rax 217b3a: 48 8b 00 mov (%rax),%rax 217b3d: f6 40 44 01 testb $0x1,0x44(%rax) 217b41: 0f 84 11 00 00 00 je 217b58 217b47: 8b 45 a4 mov -0x5c(%rbp),%eax 217b4a: 83 e8 01 sub $0x1,%eax 217b4d: 83 c0 01 add $0x1,%eax 217b50: 89 45 84 mov %eax,-0x7c(%rbp) 217b53: e9 09 00 00 00 jmp 217b61 217b58: 8b 45 a4 mov -0x5c(%rbp),%eax 217b5b: 83 e8 01 sub $0x1,%eax 217b5e: 89 45 84 mov %eax,-0x7c(%rbp) 217b61: 48 8b 4d 90 mov -0x70(%rbp),%rcx 217b65: 48 8b 7d 88 mov -0x78(%rbp),%rdi 217b69: 44 8b 45 84 mov -0x7c(%rbp),%r8d 217b6d: be 32 00 00 00 mov $0x32,%esi 217b72: 48 ba a1 67 20 00 00 00 00 00 movabs $0x2067a1,%rdx 217b7c: b0 00 mov $0x0,%al 217b7e: e8 6d 19 02 00 call 2394f0 Panel_add(super, (Object*) ListItem_new(buffer, i)); 217b83: 48 8b 45 b8 mov -0x48(%rbp),%rax 217b87: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 217b8e: 48 8d 7d c0 lea -0x40(%rbp),%rdi 217b92: 8b 75 a4 mov -0x5c(%rbp),%esi 217b95: e8 b6 a1 00 00 call 221d50 217b9a: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 217ba1: 48 89 c6 mov %rax,%rsi 217ba4: e8 37 03 01 00 call 227ee0 for (unsigned int i = 1; i <= pl->existingCPUs; i++) { 217ba9: 8b 45 a4 mov -0x5c(%rbp),%eax 217bac: 83 c0 01 add $0x1,%eax 217baf: 89 45 a4 mov %eax,-0x5c(%rbp) 217bb2: e9 58 ff ff ff jmp 217b0f } else { 217bb7: e9 2c 00 00 00 jmp 217be8 Panel_add(super, (Object*) ListItem_new(type->uiName, 1)); 217bbc: 48 8b 45 b8 mov -0x48(%rbp),%rax 217bc0: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 217bc7: 48 8b 45 b0 mov -0x50(%rbp),%rax 217bcb: 48 8b 78 78 mov 0x78(%rax),%rdi 217bcf: be 01 00 00 00 mov $0x1,%esi 217bd4: e8 77 a1 00 00 call 221d50 217bd9: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi 217be0: 48 89 c6 mov %rax,%rsi 217be3: e8 f8 02 01 00 call 227ee0 217be8: 48 8b 05 41 ac 02 00 mov 0x2ac41(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217bef: 48 8b 4d f8 mov -0x8(%rbp),%rcx 217bf3: 48 39 c8 cmp %rcx,%rax 217bf6: 0f 85 09 00 00 00 jne 217c05 } 217bfc: 48 81 c4 90 00 00 00 add $0x90,%rsp 217c03: 5d pop %rbp 217c04: c3 ret 217c05: e8 36 65 02 00 call 23e140 <__stack_chk_fail@plt> 217c0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000217c10 : static inline void AvailableMetersPanel_addMeter(Header* header, MetersPanel* panel, const MeterClass* type, unsigned int param, size_t column) { 217c10: 55 push %rbp 217c11: 48 89 e5 mov %rsp,%rbp 217c14: 48 83 ec 40 sub $0x40,%rsp 217c18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 217c1c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 217c20: 48 89 55 e8 mov %rdx,-0x18(%rbp) 217c24: 89 4d e4 mov %ecx,-0x1c(%rbp) 217c27: 4c 89 45 d8 mov %r8,-0x28(%rbp) const Meter* meter = Header_addMeterByClass(header, type, param, column); 217c2b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 217c2f: 48 8b 75 e8 mov -0x18(%rbp),%rsi 217c33: 8b 55 e4 mov -0x1c(%rbp),%edx 217c36: 48 8b 45 d8 mov -0x28(%rbp),%rax 217c3a: 89 c1 mov %eax,%ecx 217c3c: e8 cf 82 00 00 call 21ff10 217c41: 48 89 45 d0 mov %rax,-0x30(%rbp) Panel_add((Panel*)panel, (Object*) Meter_toListItem(meter, false)); 217c45: 48 8b 45 f0 mov -0x10(%rbp),%rax 217c49: 48 89 45 c0 mov %rax,-0x40(%rbp) 217c4d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 217c51: 31 f6 xor %esi,%esi 217c53: e8 b8 bf 00 00 call 223c10 217c58: 48 8b 7d c0 mov -0x40(%rbp),%rdi 217c5c: 48 89 c6 mov %rax,%rsi 217c5f: e8 7c 02 01 00 call 227ee0 Panel_setSelected((Panel*)panel, Panel_size((Panel*)panel) - 1); 217c64: 48 8b 45 f0 mov -0x10(%rbp),%rax 217c68: 48 89 45 c8 mov %rax,-0x38(%rbp) 217c6c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 217c70: e8 2b 05 01 00 call 2281a0 217c75: 48 8b 7d c8 mov -0x38(%rbp),%rdi 217c79: 89 c6 mov %eax,%esi 217c7b: 83 ee 01 sub $0x1,%esi 217c7e: e8 3d 05 01 00 call 2281c0 MetersPanel_setMoving(panel, true); 217c83: 48 8b 7d f0 mov -0x10(%rbp),%rdi 217c87: be 01 00 00 00 mov $0x1,%esi 217c8c: e8 1f da 00 00 call 2256b0 } 217c91: 48 83 c4 40 add $0x40,%rsp 217c95: 5d pop %rbp 217c96: c3 ret 217c97: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000217ca0 : static void AvailableMetersPanel_addDynamicMeter(ATTR_UNUSED ht_key_t key, void* value, void* data) { 217ca0: 55 push %rbp 217ca1: 48 89 e5 mov %rsp,%rbp 217ca4: 48 83 ec 50 sub $0x50,%rsp 217ca8: 89 7d fc mov %edi,-0x4(%rbp) 217cab: 48 89 75 f0 mov %rsi,-0x10(%rbp) 217caf: 48 89 55 e8 mov %rdx,-0x18(%rbp) const DynamicMeter* meter = (const DynamicMeter*)value; 217cb3: 48 8b 45 f0 mov -0x10(%rbp),%rax 217cb7: 48 89 45 e0 mov %rax,-0x20(%rbp) DynamicIterator* iter = (DynamicIterator*)data; 217cbb: 48 8b 45 e8 mov -0x18(%rbp),%rax 217cbf: 48 89 45 d8 mov %rax,-0x28(%rbp) unsigned int identifier = (iter->offset << 16) | iter->id; 217cc3: 48 8b 45 d8 mov -0x28(%rbp),%rax 217cc7: 8b 40 0c mov 0xc(%rax),%eax 217cca: c1 e0 10 shl $0x10,%eax 217ccd: 48 8b 4d d8 mov -0x28(%rbp),%rcx 217cd1: 0b 41 08 or 0x8(%rcx),%eax 217cd4: 89 45 d4 mov %eax,-0x2c(%rbp) const char* label = meter->description ? meter->description : meter->caption; 217cd7: 48 8b 45 e0 mov -0x20(%rbp),%rax 217cdb: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 217ce0: 0f 84 11 00 00 00 je 217cf7 217ce6: 48 8b 45 e0 mov -0x20(%rbp),%rax 217cea: 48 8b 40 28 mov 0x28(%rax),%rax 217cee: 48 89 45 c0 mov %rax,-0x40(%rbp) 217cf2: e9 0c 00 00 00 jmp 217d03 217cf7: 48 8b 45 e0 mov -0x20(%rbp),%rax 217cfb: 48 8b 40 20 mov 0x20(%rax),%rax 217cff: 48 89 45 c0 mov %rax,-0x40(%rbp) 217d03: 48 8b 45 c0 mov -0x40(%rbp),%rax 217d07: 48 89 45 c8 mov %rax,-0x38(%rbp) if (!label) 217d0b: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 217d10: 0f 85 08 00 00 00 jne 217d1e label = meter->name; /* last fallback to name, guaranteed set */ 217d16: 48 8b 45 e0 mov -0x20(%rbp),%rax 217d1a: 48 89 45 c8 mov %rax,-0x38(%rbp) Panel_add(iter->super, (Object*) ListItem_new(label, identifier)); 217d1e: 48 8b 45 d8 mov -0x28(%rbp),%rax 217d22: 48 8b 00 mov (%rax),%rax 217d25: 48 89 45 b8 mov %rax,-0x48(%rbp) 217d29: 48 8b 7d c8 mov -0x38(%rbp),%rdi 217d2d: 8b 75 d4 mov -0x2c(%rbp),%esi 217d30: e8 1b a0 00 00 call 221d50 217d35: 48 8b 7d b8 mov -0x48(%rbp),%rdi 217d39: 48 89 c6 mov %rax,%rsi 217d3c: e8 9f 01 01 00 call 227ee0 iter->id++; 217d41: 48 8b 45 d8 mov -0x28(%rbp),%rax 217d45: 8b 48 08 mov 0x8(%rax),%ecx 217d48: 83 c1 01 add $0x1,%ecx 217d4b: 89 48 08 mov %ecx,0x8(%rax) } 217d4e: 48 83 c4 50 add $0x50,%rsp 217d52: 5d pop %rbp 217d53: c3 ret 217d54: cc int3 217d55: cc int3 217d56: cc int3 217d57: cc int3 217d58: cc int3 217d59: cc int3 217d5a: cc int3 217d5b: cc int3 217d5c: cc int3 217d5d: cc int3 217d5e: cc int3 217d5f: cc int3 0000000000217d60 : static const int BatteryMeter_attributes[] = { BATTERY }; static void BatteryMeter_updateValues(Meter* this) { 217d60: 55 push %rbp 217d61: 48 89 e5 mov %rsp,%rbp 217d64: 48 83 ec 30 sub $0x30,%rsp 217d68: 48 8b 05 c1 aa 02 00 mov 0x2aac1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217d6f: 48 89 45 f8 mov %rax,-0x8(%rbp) 217d73: 48 89 7d e0 mov %rdi,-0x20(%rbp) ACPresence isOnAC; double percent; Platform_getBattery(&percent, &isOnAC); 217d77: 48 8d 7d e8 lea -0x18(%rbp),%rdi 217d7b: 48 8d 75 f4 lea -0xc(%rbp),%rsi 217d7f: e8 1c 27 02 00 call 23a4a0 if (isnan(percent)) { 217d84: f2 0f 10 45 e8 movsd -0x18(%rbp),%xmm0 217d89: e8 42 01 00 00 call 217ed0 <__inline_isnan> 217d8e: 83 f8 00 cmp $0x0,%eax 217d91: 0f 84 3a 00 00 00 je 217dd1 this->values[0] = NAN; 217d97: 48 8b 45 e0 mov -0x20(%rbp),%rax 217d9b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 217da2: f2 0f 10 05 de f5 fe ff movsd -0x10a22(%rip),%xmm0 # 207388 217daa: f2 0f 11 00 movsd %xmm0,(%rax) xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "N/A"); 217dae: 48 8b 7d e0 mov -0x20(%rbp),%rdi 217db2: 48 83 c7 48 add $0x48,%rdi 217db6: be 00 01 00 00 mov $0x100,%esi 217dbb: 48 ba 84 41 20 00 00 00 00 00 movabs $0x204184,%rdx 217dc5: b0 00 mov $0x0,%al 217dc7: e8 24 17 02 00 call 2394f0 return; 217dcc: e9 d9 00 00 00 jmp 217eaa } this->values[0] = percent; 217dd1: f2 0f 10 45 e8 movsd -0x18(%rbp),%xmm0 217dd6: 48 8b 45 e0 mov -0x20(%rbp),%rax 217dda: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 217de1: f2 0f 11 00 movsd %xmm0,(%rax) const char* text; switch (isOnAC) { 217de5: 8b 45 f4 mov -0xc(%rbp),%eax 217de8: 89 45 d4 mov %eax,-0x2c(%rbp) 217deb: 85 c0 test %eax,%eax 217ded: 0f 84 52 00 00 00 je 217e45 217df3: e9 00 00 00 00 jmp 217df8 217df8: 8b 45 d4 mov -0x2c(%rbp),%eax 217dfb: 83 e8 01 sub $0x1,%eax 217dfe: 0f 84 16 00 00 00 je 217e1a 217e04: e9 00 00 00 00 jmp 217e09 217e09: 8b 45 d4 mov -0x2c(%rbp),%eax 217e0c: 83 e8 02 sub $0x2,%eax 217e0f: 0f 84 5b 00 00 00 je 217e70 217e15: e9 5b 00 00 00 jmp 217e75 case AC_PRESENT: text = this->mode == TEXT_METERMODE ? " (Running on A/C)" : "(A/C)"; 217e1a: 48 8b 45 e0 mov -0x20(%rbp),%rax 217e1e: 8b 50 18 mov 0x18(%rax),%edx 217e21: 48 b8 ad 45 20 00 00 00 00 00 movabs $0x2045ad,%rax 217e2b: 48 b9 16 43 20 00 00 00 00 00 movabs $0x204316,%rcx 217e35: 83 fa 02 cmp $0x2,%edx 217e38: 48 0f 44 c1 cmove %rcx,%rax 217e3c: 48 89 45 d8 mov %rax,-0x28(%rbp) break; 217e40: e9 3e 00 00 00 jmp 217e83 case AC_ABSENT: text = this->mode == TEXT_METERMODE ? " (Running on battery)" : "(bat)"; 217e45: 48 8b 45 e0 mov -0x20(%rbp),%rax 217e49: 8b 50 18 mov 0x18(%rax),%edx 217e4c: 48 b8 c6 3a 20 00 00 00 00 00 movabs $0x203ac6,%rax 217e56: 48 b9 48 37 20 00 00 00 00 00 movabs $0x203748,%rcx 217e60: 83 fa 02 cmp $0x2,%edx 217e63: 48 0f 44 c1 cmove %rcx,%rax 217e67: 48 89 45 d8 mov %rax,-0x28(%rbp) break; 217e6b: e9 13 00 00 00 jmp 217e83 217e70: e9 00 00 00 00 jmp 217e75 case AC_ERROR: default: text = ""; 217e75: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 217e7f: 48 89 45 d8 mov %rax,-0x28(%rbp) break; } xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.1f%%%s", percent, text); 217e83: 48 8b 7d e0 mov -0x20(%rbp),%rdi 217e87: 48 83 c7 48 add $0x48,%rdi 217e8b: f2 0f 10 45 e8 movsd -0x18(%rbp),%xmm0 217e90: 48 8b 4d d8 mov -0x28(%rbp),%rcx 217e94: be 00 01 00 00 mov $0x100,%esi 217e99: 48 ba 75 6a 20 00 00 00 00 00 movabs $0x206a75,%rdx 217ea3: b0 01 mov $0x1,%al 217ea5: e8 46 16 02 00 call 2394f0 217eaa: 48 8b 05 7f a9 02 00 mov 0x2a97f(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 217eb1: 48 8b 4d f8 mov -0x8(%rbp),%rcx 217eb5: 48 39 c8 cmp %rcx,%rax 217eb8: 0f 85 06 00 00 00 jne 217ec4 } 217ebe: 48 83 c4 30 add $0x30,%rsp 217ec2: 5d pop %rbp 217ec3: c3 ret 217ec4: e8 77 62 02 00 call 23e140 <__stack_chk_fail@plt> 217ec9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000217ed0 <__inline_isnan>: int __signbitf(float) __pure2; int __signbitl(long double) __pure2; static __inline int __inline_isnan(__const double __x) { 217ed0: 55 push %rbp 217ed1: 48 89 e5 mov %rsp,%rbp 217ed4: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 217ed9: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 217ede: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 217ee3: 0f 95 c0 setne %al 217ee6: 0f 9a c1 setp %cl 217ee9: 08 c8 or %cl,%al 217eeb: 24 01 and $0x1,%al 217eed: 0f b6 c0 movzbl %al,%eax 217ef0: 5d pop %rbp 217ef1: c3 ret 217ef2: cc int3 217ef3: cc int3 217ef4: cc int3 217ef5: cc int3 217ef6: cc int3 217ef7: cc int3 217ef8: cc int3 217ef9: cc int3 217efa: cc int3 217efb: cc int3 217efc: cc int3 217efd: cc int3 217efe: cc int3 217eff: cc int3 0000000000217f00 : #include "XUtils.h" static const char* const CategoriesFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL}; static void CategoriesPanel_delete(Object* object) { 217f00: 55 push %rbp 217f01: 48 89 e5 mov %rsp,%rbp 217f04: 48 83 ec 20 sub $0x20,%rsp 217f08: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 217f0c: 48 8b 45 f8 mov -0x8(%rbp),%rax 217f10: 48 89 45 f0 mov %rax,-0x10(%rbp) CategoriesPanel* this = (CategoriesPanel*) object; 217f14: 48 8b 45 f8 mov -0x8(%rbp),%rax 217f18: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 217f1c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 217f20: e8 5b fe 00 00 call 227d80 free(this); 217f25: 48 8b 7d e8 mov -0x18(%rbp),%rdi 217f29: e8 32 62 02 00 call 23e160 } 217f2e: 48 83 c4 20 add $0x20,%rsp 217f32: 5d pop %rbp 217f33: c3 ret 217f34: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 217f3e: 66 90 xchg %ax,%ax 0000000000217f40 : { .name = "Meters", .ctor = CategoriesPanel_makeMetersPage }, { .name = "Columns", .ctor = CategoriesPanel_makeColumnsPage }, { .name = "Colors", .ctor = CategoriesPanel_makeColorsPage }, }; static HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) { 217f40: 55 push %rbp 217f41: 48 89 e5 mov %rsp,%rbp 217f44: 48 83 ec 30 sub $0x30,%rsp 217f48: 48 89 7d f8 mov %rdi,-0x8(%rbp) 217f4c: 89 75 f4 mov %esi,-0xc(%rbp) CategoriesPanel* this = (CategoriesPanel*) super; 217f4f: 48 8b 45 f8 mov -0x8(%rbp),%rax 217f53: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 217f57: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) int selected = Panel_getSelectedIndex(super); 217f5e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 217f62: e8 19 02 01 00 call 228180 217f67: 89 45 e0 mov %eax,-0x20(%rbp) switch (ch) { 217f6a: 8b 45 f4 mov -0xc(%rbp),%eax 217f6d: 89 45 d0 mov %eax,-0x30(%rbp) 217f70: 83 e8 ff sub $0xffffffff,%eax 217f73: 0f 84 79 00 00 00 je 217ff2 217f79: e9 00 00 00 00 jmp 217f7e 217f7e: 8b 45 d0 mov -0x30(%rbp),%eax 217f81: 83 e8 0e sub $0xe,%eax 217f84: 0f 84 74 00 00 00 je 217ffe 217f8a: e9 00 00 00 00 jmp 217f8f 217f8f: 8b 45 d0 mov -0x30(%rbp),%eax 217f92: 83 e8 10 sub $0x10,%eax 217f95: 0f 84 63 00 00 00 je 217ffe 217f9b: e9 00 00 00 00 jmp 217fa0 217fa0: 8b 45 d0 mov -0x30(%rbp),%eax 217fa3: 05 fe fe ff ff add $0xfffffefe,%eax 217fa8: 83 e8 02 sub $0x2,%eax 217fab: 0f 82 4d 00 00 00 jb 217ffe 217fb1: e9 00 00 00 00 jmp 217fb6 217fb6: 8b 45 d0 mov -0x30(%rbp),%eax 217fb9: 2d 06 01 00 00 sub $0x106,%eax 217fbe: 0f 84 3a 00 00 00 je 217ffe 217fc4: e9 00 00 00 00 jmp 217fc9 217fc9: 8b 45 d0 mov -0x30(%rbp),%eax 217fcc: 05 ae fe ff ff add $0xfffffeae,%eax 217fd1: 83 e8 02 sub $0x2,%eax 217fd4: 0f 82 24 00 00 00 jb 217ffe 217fda: e9 00 00 00 00 jmp 217fdf 217fdf: 8b 45 d0 mov -0x30(%rbp),%eax 217fe2: 2d 68 01 00 00 sub $0x168,%eax 217fe7: 0f 84 11 00 00 00 je 217ffe 217fed: e9 42 00 00 00 jmp 218034 case EVENT_SET_SELECTED: result = HANDLED; 217ff2: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; 217ff9: e9 8c 00 00 00 jmp 21808a case KEY_CTRL('N'): case KEY_NPAGE: case KEY_PPAGE: case KEY_HOME: case KEY_END: { int previous = selected; 217ffe: 8b 45 e0 mov -0x20(%rbp),%eax 218001: 89 45 dc mov %eax,-0x24(%rbp) Panel_onKey(super, ch); 218004: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218008: 8b 75 f4 mov -0xc(%rbp),%esi 21800b: e8 90 0f 01 00 call 228fa0 selected = Panel_getSelectedIndex(super); 218010: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218014: e8 67 01 01 00 call 228180 218019: 89 45 e0 mov %eax,-0x20(%rbp) if (previous != selected) 21801c: 8b 45 dc mov -0x24(%rbp),%eax 21801f: 3b 45 e0 cmp -0x20(%rbp),%eax 218022: 0f 84 07 00 00 00 je 21802f result = HANDLED; 218028: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; 21802f: e9 56 00 00 00 jmp 21808a } default: if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) 218034: 31 c0 xor %eax,%eax 218036: 3b 45 f4 cmp -0xc(%rbp),%eax 218039: 0f 8d 35 00 00 00 jge 218074 21803f: 81 7d f4 ff 00 00 00 cmpl $0xff,-0xc(%rbp) 218046: 0f 8d 28 00 00 00 jge 218074 21804c: 8b 45 f4 mov -0xc(%rbp),%eax 21804f: 0f b6 f8 movzbl %al,%edi 218052: be 00 08 00 00 mov $0x800,%esi 218057: e8 34 02 00 00 call 218290 <__sbistype> 21805c: 83 f8 00 cmp $0x0,%eax 21805f: 0f 84 0f 00 00 00 je 218074 result = Panel_selectByTyping(super, ch); 218065: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218069: 8b 75 f4 mov -0xc(%rbp),%esi 21806c: e8 bf f8 00 00 call 227930 218071: 89 45 e4 mov %eax,-0x1c(%rbp) if (result == BREAK_LOOP) 218074: 83 7d e4 04 cmpl $0x4,-0x1c(%rbp) 218078: 0f 85 07 00 00 00 jne 218085 result = IGNORED; 21807e: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) break; 218085: e9 00 00 00 00 jmp 21808a } if (result == HANDLED) { 21808a: 83 7d e4 01 cmpl $0x1,-0x1c(%rbp) 21808e: 0f 85 85 00 00 00 jne 218119 int size = ScreenManager_size(this->scr); 218094: 48 8b 45 e8 mov -0x18(%rbp),%rax 218098: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 21809f: e8 bc aa 01 00 call 232b60 2180a4: 89 45 d8 mov %eax,-0x28(%rbp) for (int i = 1; i < size; i++) 2180a7: c7 45 d4 01 00 00 00 movl $0x1,-0x2c(%rbp) 2180ae: 8b 45 d4 mov -0x2c(%rbp),%eax 2180b1: 3b 45 d8 cmp -0x28(%rbp),%eax 2180b4: 0f 8d 23 00 00 00 jge 2180dd ScreenManager_remove(this->scr, 1); 2180ba: 48 8b 45 e8 mov -0x18(%rbp),%rax 2180be: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2180c5: be 01 00 00 00 mov $0x1,%esi 2180ca: e8 41 ac 01 00 call 232d10 for (int i = 1; i < size; i++) 2180cf: 8b 45 d4 mov -0x2c(%rbp),%eax 2180d2: 83 c0 01 add $0x1,%eax 2180d5: 89 45 d4 mov %eax,-0x2c(%rbp) 2180d8: e9 d1 ff ff ff jmp 2180ae if (selected >= 0 && (size_t)selected < ARRAYSIZE(categoriesPanelPages)) { 2180dd: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 2180e1: 0f 8c 2d 00 00 00 jl 218114 2180e7: 48 63 45 e0 movslq -0x20(%rbp),%rax 2180eb: 48 83 f8 05 cmp $0x5,%rax 2180ef: 0f 83 1f 00 00 00 jae 218114 categoriesPanelPages[selected].ctor(this); 2180f5: 48 63 4d e0 movslq -0x20(%rbp),%rcx 2180f9: 48 b8 e0 74 20 00 00 00 00 00 movabs $0x2074e0,%rax 218103: 48 c1 e1 04 shl $0x4,%rcx 218107: 48 01 c8 add %rcx,%rax 21810a: 48 8b 40 08 mov 0x8(%rax),%rax 21810e: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218112: ff d0 call *%rax } } 218114: e9 00 00 00 00 jmp 218119 return result; 218119: 8b 45 e4 mov -0x1c(%rbp),%eax 21811c: 48 83 c4 30 add $0x30,%rsp 218120: 5d pop %rbp 218121: c3 ret 218122: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21812c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000218130 : .delete = CategoriesPanel_delete }, .eventHandler = CategoriesPanel_eventHandler }; CategoriesPanel* CategoriesPanel_new(ScreenManager* scr, Settings* settings, Header* header, ProcessList* pl) { 218130: 55 push %rbp 218131: 48 89 e5 mov %rsp,%rbp 218134: 48 83 ec 60 sub $0x60,%rsp 218138: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21813c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 218140: 48 89 55 e8 mov %rdx,-0x18(%rbp) 218144: 48 89 4d e0 mov %rcx,-0x20(%rbp) CategoriesPanel* this = AllocThis(CategoriesPanel); 218148: bf f8 26 00 00 mov $0x26f8,%edi 21814d: e8 0e 09 02 00 call 238a60 218152: 48 89 45 d8 mov %rax,-0x28(%rbp) 218156: 48 8b 45 d8 mov -0x28(%rbp),%rax 21815a: 48 b9 40 74 20 00 00 00 00 00 movabs $0x207440,%rcx 218164: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 218167: 48 8b 45 d8 mov -0x28(%rbp),%rax 21816b: 48 89 45 d0 mov %rax,-0x30(%rbp) FunctionBar* fuBar = FunctionBar_new(CategoriesFunctions, NULL, NULL); 21816f: 48 bf 80 74 20 00 00 00 00 00 movabs $0x207480,%rdi 218179: 31 c0 xor %eax,%eax 21817b: 89 c2 mov %eax,%edx 21817d: 48 89 d6 mov %rdx,%rsi 218180: e8 cb 61 00 00 call 21e350 218185: 48 89 45 c8 mov %rax,-0x38(%rbp) Panel_init(super, 1, 1, 1, 1, Class(ListItem), true, fuBar); 218189: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21818d: 48 8b 45 c8 mov -0x38(%rbp),%rax 218191: 41 b8 01 00 00 00 mov $0x1,%r8d 218197: 49 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r9 2181a1: 44 89 c6 mov %r8d,%esi 2181a4: 44 89 c2 mov %r8d,%edx 2181a7: 44 89 c1 mov %r8d,%ecx 2181aa: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 2181b1: 48 89 44 24 08 mov %rax,0x8(%rsp) 2181b6: e8 45 fa 00 00 call 227c00 this->scr = scr; 2181bb: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2181bf: 48 8b 45 d8 mov -0x28(%rbp),%rax 2181c3: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) this->settings = settings; 2181ca: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2181ce: 48 8b 45 d8 mov -0x28(%rbp),%rax 2181d2: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) this->header = header; 2181d9: 48 8b 4d e8 mov -0x18(%rbp),%rcx 2181dd: 48 8b 45 d8 mov -0x28(%rbp),%rax 2181e1: 48 89 88 e8 26 00 00 mov %rcx,0x26e8(%rax) this->pl = pl; 2181e8: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2181ec: 48 8b 45 d8 mov -0x28(%rbp),%rax 2181f0: 48 89 88 f0 26 00 00 mov %rcx,0x26f0(%rax) Panel_setHeader(super, "Setup"); 2181f7: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2181fb: 48 be 6d 5f 20 00 00 00 00 00 movabs $0x205f6d,%rsi 218205: e8 e6 fb 00 00 call 227df0 for (size_t i = 0; i < ARRAYSIZE(categoriesPanelPages); i++) 21820a: 48 c7 45 c0 00 00 00 00 movq $0x0,-0x40(%rbp) 218212: 48 83 7d c0 05 cmpq $0x5,-0x40(%rbp) 218217: 0f 83 44 00 00 00 jae 218261 Panel_add(super, (Object*) ListItem_new(categoriesPanelPages[i].name, 0)); 21821d: 48 8b 45 d0 mov -0x30(%rbp),%rax 218221: 48 89 45 b8 mov %rax,-0x48(%rbp) 218225: 48 8b 4d c0 mov -0x40(%rbp),%rcx 218229: 48 b8 e0 74 20 00 00 00 00 00 movabs $0x2074e0,%rax 218233: 48 c1 e1 04 shl $0x4,%rcx 218237: 48 01 c8 add %rcx,%rax 21823a: 48 8b 38 mov (%rax),%rdi 21823d: 31 f6 xor %esi,%esi 21823f: e8 0c 9b 00 00 call 221d50 218244: 48 8b 7d b8 mov -0x48(%rbp),%rdi 218248: 48 89 c6 mov %rax,%rsi 21824b: e8 90 fc 00 00 call 227ee0 for (size_t i = 0; i < ARRAYSIZE(categoriesPanelPages); i++) 218250: 48 8b 45 c0 mov -0x40(%rbp),%rax 218254: 48 83 c0 01 add $0x1,%rax 218258: 48 89 45 c0 mov %rax,-0x40(%rbp) 21825c: e9 b1 ff ff ff jmp 218212 ScreenManager_add(scr, super, 16); 218261: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218265: 48 8b 75 d0 mov -0x30(%rbp),%rsi 218269: ba 10 00 00 00 mov $0x10,%edx 21826e: e8 0d a9 01 00 call 232b80 categoriesPanelPages[0].ctor(this); 218273: 48 8b 04 25 e8 74 20 00 mov 0x2074e8,%rax 21827b: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21827f: ff d0 call *%rax return this; 218281: 48 8b 45 d8 mov -0x28(%rbp),%rax 218285: 48 83 c4 60 add $0x60,%rsp 218289: 5d pop %rbp 21828a: c3 ret 21828b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000218290 <__sbistype>: { 218290: 55 push %rbp 218291: 48 89 e5 mov %rsp,%rbp 218294: 48 83 ec 10 sub $0x10,%rsp 218298: 89 7d fc mov %edi,-0x4(%rbp) 21829b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 21829f: 8b 7d fc mov -0x4(%rbp),%edi 2182a2: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2182a6: e8 15 00 00 00 call 2182c0 <__sbmaskrune> 2182ab: 83 f8 00 cmp $0x0,%eax 2182ae: 0f 95 c0 setne %al 2182b1: 34 ff xor $0xff,%al 2182b3: 34 ff xor $0xff,%al 2182b5: 24 01 and $0x1,%al 2182b7: 0f b6 c0 movzbl %al,%eax 2182ba: 48 83 c4 10 add $0x10,%rsp 2182be: 5d pop %rbp 2182bf: c3 ret 00000000002182c0 <__sbmaskrune>: { 2182c0: 55 push %rbp 2182c1: 48 89 e5 mov %rsp,%rbp 2182c4: 48 83 ec 20 sub $0x20,%rsp 2182c8: 89 7d fc mov %edi,-0x4(%rbp) 2182cb: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 2182cf: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 2182d3: 0f 8c 10 00 00 00 jl 2182e9 <__sbmaskrune+0x29> 2182d9: 8b 45 fc mov -0x4(%rbp),%eax 2182dc: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 2182e3: 0f 8c 0b 00 00 00 jl 2182f4 <__sbmaskrune+0x34> 2182e9: 31 c0 xor %eax,%eax 2182eb: 48 89 45 e8 mov %rax,-0x18(%rbp) 2182ef: e9 16 00 00 00 jmp 21830a <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 2182f4: e8 27 00 00 00 call 218320 <__getCurrentRuneLocale> 2182f9: 48 63 4d fc movslq -0x4(%rbp),%rcx 2182fd: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 218302: 48 23 45 f0 and -0x10(%rbp),%rax 218306: 48 89 45 e8 mov %rax,-0x18(%rbp) 21830a: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21830e: 48 83 c4 20 add $0x20,%rsp 218312: 5d pop %rbp 218313: c3 ret 218314: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21831e: 66 90 xchg %ax,%ax 0000000000218320 <__getCurrentRuneLocale>: { 218320: 55 push %rbp 218321: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 218324: 48 8b 0d 85 79 02 00 mov 0x27985(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 21832b: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 218334: 48 8b 04 08 mov (%rax,%rcx,1),%rax 218338: 48 83 f8 00 cmp $0x0,%rax 21833c: 0f 84 1d 00 00 00 je 21835f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 218342: 48 8b 0d 67 79 02 00 mov 0x27967(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 218349: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 218352: 48 8b 04 08 mov (%rax,%rcx,1),%rax 218356: 48 89 45 f8 mov %rax,-0x8(%rbp) 21835a: e9 0c 00 00 00 jmp 21836b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 21835f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 218367: 48 89 45 f8 mov %rax,-0x8(%rbp) } 21836b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21836f: 5d pop %rbp 218370: c3 ret 218371: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21837b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000218380 : static void CategoriesPanel_makeDisplayOptionsPage(CategoriesPanel* this) { 218380: 55 push %rbp 218381: 48 89 e5 mov %rsp,%rbp 218384: 48 83 ec 10 sub $0x10,%rsp 218388: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* displayOptions = (Panel*) DisplayOptionsPanel_new(this->settings, this->scr); 21838c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218390: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 218397: 48 8b 45 f8 mov -0x8(%rbp),%rax 21839b: 48 8b b0 d8 26 00 00 mov 0x26d8(%rax),%rsi 2183a2: e8 99 50 00 00 call 21d440 2183a7: 48 89 45 f0 mov %rax,-0x10(%rbp) ScreenManager_add(this->scr, displayOptions, -1); 2183ab: 48 8b 45 f8 mov -0x8(%rbp),%rax 2183af: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2183b6: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2183ba: ba ff ff ff ff mov $0xffffffff,%edx 2183bf: e8 bc a7 01 00 call 232b80 } 2183c4: 48 83 c4 10 add $0x10,%rsp 2183c8: 5d pop %rbp 2183c9: c3 ret 2183ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002183d0 : static void CategoriesPanel_makeHeaderOptionsPage(CategoriesPanel* this) { 2183d0: 55 push %rbp 2183d1: 48 89 e5 mov %rsp,%rbp 2183d4: 48 83 ec 10 sub $0x10,%rsp 2183d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* colors = (Panel*) HeaderOptionsPanel_new(this->settings, this->scr); 2183dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2183e0: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2183e7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2183eb: 48 8b b0 d8 26 00 00 mov 0x26d8(%rax),%rsi 2183f2: e8 c9 82 00 00 call 2206c0 2183f7: 48 89 45 f0 mov %rax,-0x10(%rbp) ScreenManager_add(this->scr, colors, -1); 2183fb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2183ff: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 218406: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21840a: ba ff ff ff ff mov $0xffffffff,%edx 21840f: e8 6c a7 01 00 call 232b80 } 218414: 48 83 c4 10 add $0x10,%rsp 218418: 5d pop %rbp 218419: c3 ret 21841a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000218420 : static void CategoriesPanel_makeMetersPage(CategoriesPanel* this) { 218420: 55 push %rbp 218421: 48 89 e5 mov %rsp,%rbp 218424: 48 83 ec 60 sub $0x60,%rsp 218428: 48 8b 05 01 a4 02 00 mov 0x2a401(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21842f: 48 89 45 f8 mov %rax,-0x8(%rbp) 218433: 48 89 7d c8 mov %rdi,-0x38(%rbp) size_t columns = HeaderLayout_getColumns(this->scr->header->headerLayout); 218437: 48 8b 45 c8 mov -0x38(%rbp),%rax 21843b: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218442: 48 8b 40 20 mov 0x20(%rax),%rax 218446: 8b 78 18 mov 0x18(%rax),%edi 218449: e8 52 02 00 00 call 2186a0 21844e: 48 89 45 c0 mov %rax,-0x40(%rbp) MetersPanel** meterPanels = xMallocArray(columns, sizeof(MetersPanel*)); 218452: 48 8b 7d c0 mov -0x40(%rbp),%rdi 218456: be 08 00 00 00 mov $0x8,%esi 21845b: e8 40 06 02 00 call 238aa0 218460: 48 89 45 b8 mov %rax,-0x48(%rbp) for (size_t i = 0; i < columns; i++) { 218464: 48 c7 45 b0 00 00 00 00 movq $0x0,-0x50(%rbp) 21846c: 48 8b 45 b0 mov -0x50(%rbp),%rax 218470: 48 3b 45 c0 cmp -0x40(%rbp),%rax 218474: 0f 83 e9 00 00 00 jae 218563 xSnprintf(titleBuffer, sizeof(titleBuffer), "Column %zu", i + 1); 21847a: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21847e: 48 8b 4d b0 mov -0x50(%rbp),%rcx 218482: 48 83 c1 01 add $0x1,%rcx 218486: be 20 00 00 00 mov $0x20,%esi 21848b: 48 ba 5a 6c 20 00 00 00 00 00 movabs $0x206c5a,%rdx 218495: b0 00 mov $0x0,%al 218497: e8 54 10 02 00 call 2394f0 meterPanels[i] = MetersPanel_new(this->settings, titleBuffer, this->header->columns[i], this->scr); 21849c: 48 8b 45 c8 mov -0x38(%rbp),%rax 2184a0: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2184a7: 48 8d 75 d0 lea -0x30(%rbp),%rsi 2184ab: 48 8b 45 c8 mov -0x38(%rbp),%rax 2184af: 48 8b 80 e8 26 00 00 mov 0x26e8(%rax),%rax 2184b6: 48 8b 00 mov (%rax),%rax 2184b9: 48 8b 4d b0 mov -0x50(%rbp),%rcx 2184bd: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 2184c1: 48 8b 45 c8 mov -0x38(%rbp),%rax 2184c5: 48 8b 88 d8 26 00 00 mov 0x26d8(%rax),%rcx 2184cc: e8 0f d7 00 00 call 225be0 2184d1: 48 89 c2 mov %rax,%rdx 2184d4: 48 8b 45 b8 mov -0x48(%rbp),%rax 2184d8: 48 8b 4d b0 mov -0x50(%rbp),%rcx 2184dc: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) if (i != 0) { 2184e0: 48 83 7d b0 00 cmpq $0x0,-0x50(%rbp) 2184e5: 0f 84 46 00 00 00 je 218531 meterPanels[i]->leftNeighbor = meterPanels[i - 1]; 2184eb: 48 8b 45 b8 mov -0x48(%rbp),%rax 2184ef: 48 8b 4d b0 mov -0x50(%rbp),%rcx 2184f3: 48 83 e9 01 sub $0x1,%rcx 2184f7: 48 8b 0c c8 mov (%rax,%rcx,8),%rcx 2184fb: 48 8b 45 b8 mov -0x48(%rbp),%rax 2184ff: 48 8b 55 b0 mov -0x50(%rbp),%rdx 218503: 48 8b 04 d0 mov (%rax,%rdx,8),%rax 218507: 48 89 88 f0 26 00 00 mov %rcx,0x26f0(%rax) meterPanels[i - 1]->rightNeighbor = meterPanels[i]; 21850e: 48 8b 45 b8 mov -0x48(%rbp),%rax 218512: 48 8b 4d b0 mov -0x50(%rbp),%rcx 218516: 48 8b 0c c8 mov (%rax,%rcx,8),%rcx 21851a: 48 8b 45 b8 mov -0x48(%rbp),%rax 21851e: 48 8b 55 b0 mov -0x50(%rbp),%rdx 218522: 48 83 ea 01 sub $0x1,%rdx 218526: 48 8b 04 d0 mov (%rax,%rdx,8),%rax 21852a: 48 89 88 f8 26 00 00 mov %rcx,0x26f8(%rax) ScreenManager_add(this->scr, (Panel*) meterPanels[i], 20); 218531: 48 8b 45 c8 mov -0x38(%rbp),%rax 218535: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 21853c: 48 8b 45 b8 mov -0x48(%rbp),%rax 218540: 48 8b 4d b0 mov -0x50(%rbp),%rcx 218544: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 218548: ba 14 00 00 00 mov $0x14,%edx 21854d: e8 2e a6 01 00 call 232b80 for (size_t i = 0; i < columns; i++) { 218552: 48 8b 45 b0 mov -0x50(%rbp),%rax 218556: 48 83 c0 01 add $0x1,%rax 21855a: 48 89 45 b0 mov %rax,-0x50(%rbp) 21855e: e9 09 ff ff ff jmp 21846c Panel* availableMeters = (Panel*) AvailableMetersPanel_new(this->settings, this->header, columns, meterPanels, this->scr, this->pl); 218563: 48 8b 45 c8 mov -0x38(%rbp),%rax 218567: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 21856e: 48 8b 45 c8 mov -0x38(%rbp),%rax 218572: 48 8b b0 e8 26 00 00 mov 0x26e8(%rax),%rsi 218579: 48 8b 55 c0 mov -0x40(%rbp),%rdx 21857d: 48 8b 4d b8 mov -0x48(%rbp),%rcx 218581: 48 8b 45 c8 mov -0x38(%rbp),%rax 218585: 4c 8b 80 d8 26 00 00 mov 0x26d8(%rax),%r8 21858c: 48 8b 45 c8 mov -0x38(%rbp),%rax 218590: 4c 8b 88 f0 26 00 00 mov 0x26f0(%rax),%r9 218597: e8 94 f2 ff ff call 217830 21859c: 48 89 45 a8 mov %rax,-0x58(%rbp) ScreenManager_add(this->scr, availableMeters, -1); 2185a0: 48 8b 45 c8 mov -0x38(%rbp),%rax 2185a4: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2185ab: 48 8b 75 a8 mov -0x58(%rbp),%rsi 2185af: ba ff ff ff ff mov $0xffffffff,%edx 2185b4: e8 c7 a5 01 00 call 232b80 2185b9: 48 8b 05 70 a2 02 00 mov 0x2a270(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2185c0: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2185c4: 48 39 c8 cmp %rcx,%rax 2185c7: 0f 85 06 00 00 00 jne 2185d3 } 2185cd: 48 83 c4 60 add $0x60,%rsp 2185d1: 5d pop %rbp 2185d2: c3 ret 2185d3: e8 68 5b 02 00 call 23e140 <__stack_chk_fail@plt> 2185d8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002185e0 : static void CategoriesPanel_makeColumnsPage(CategoriesPanel* this) { 2185e0: 55 push %rbp 2185e1: 48 89 e5 mov %rsp,%rbp 2185e4: 48 83 ec 20 sub $0x20,%rsp 2185e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* columns = (Panel*) ColumnsPanel_new(this->settings); 2185ec: 48 8b 45 f8 mov -0x8(%rbp),%rax 2185f0: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2185f7: e8 44 07 00 00 call 218d40 2185fc: 48 89 45 f0 mov %rax,-0x10(%rbp) Panel* availableColumns = (Panel*) AvailableColumnsPanel_new(columns, this->settings->dynamicColumns); 218600: 48 8b 7d f0 mov -0x10(%rbp),%rdi 218604: 48 8b 45 f8 mov -0x8(%rbp),%rax 218608: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 21860f: 48 8b 70 18 mov 0x18(%rax),%rsi 218613: e8 08 eb ff ff call 217120 218618: 48 89 45 e8 mov %rax,-0x18(%rbp) ScreenManager_add(this->scr, columns, 20); 21861c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218620: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 218627: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21862b: ba 14 00 00 00 mov $0x14,%edx 218630: e8 4b a5 01 00 call 232b80 ScreenManager_add(this->scr, availableColumns, -1); 218635: 48 8b 45 f8 mov -0x8(%rbp),%rax 218639: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 218640: 48 8b 75 e8 mov -0x18(%rbp),%rsi 218644: ba ff ff ff ff mov $0xffffffff,%edx 218649: e8 32 a5 01 00 call 232b80 } 21864e: 48 83 c4 20 add $0x20,%rsp 218652: 5d pop %rbp 218653: c3 ret 218654: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21865e: 66 90 xchg %ax,%ax 0000000000218660 : static void CategoriesPanel_makeColorsPage(CategoriesPanel* this) { 218660: 55 push %rbp 218661: 48 89 e5 mov %rsp,%rbp 218664: 48 83 ec 10 sub $0x10,%rsp 218668: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* colors = (Panel*) ColorsPanel_new(this->settings); 21866c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218670: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 218677: e8 74 02 00 00 call 2188f0 21867c: 48 89 45 f0 mov %rax,-0x10(%rbp) ScreenManager_add(this->scr, colors, -1); 218680: 48 8b 45 f8 mov -0x8(%rbp),%rax 218684: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 21868b: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21868f: ba ff ff ff ff mov $0xffffffff,%edx 218694: e8 e7 a4 01 00 call 232b80 } 218699: 48 83 c4 10 add $0x10,%rsp 21869d: 5d pop %rbp 21869e: c3 ret 21869f: 90 nop 00000000002186a0 : [HF_THREE_50_25_25] = { 3, { 50, 25, 25, 0 }, "three_50_25_25", "3 columns - 50/25/25", }, [HF_THREE_40_20_40] = { 3, { 40, 20, 40, 0 }, "three_40_20_40", "3 columns - 40/20/40", }, [HF_FOUR_25_25_25_25] = { 4, { 25, 25, 25, 25 }, "four_25_25_25_25", "4 columns - 25/25/25/25", }, }; static inline size_t HeaderLayout_getColumns(HeaderLayout hLayout) { 2186a0: 55 push %rbp 2186a1: 48 89 e5 mov %rsp,%rbp 2186a4: 89 7d fc mov %edi,-0x4(%rbp) /* assert the layout is initialized */ assert(0 <= hLayout); assert(hLayout < LAST_HEADER_LAYOUT); assert(HeaderLayout_layouts[hLayout].name[0]); assert(HeaderLayout_layouts[hLayout].description[0]); return HeaderLayout_layouts[hLayout].columns; 2186a7: 8b 45 fc mov -0x4(%rbp),%eax 2186aa: 89 c1 mov %eax,%ecx 2186ac: 48 b8 30 75 20 00 00 00 00 00 movabs $0x207530,%rax 2186b6: 48 6b c9 18 imul $0x18,%rcx,%rcx 2186ba: 48 01 c8 add %rcx,%rax 2186bd: 0f b6 00 movzbl (%rax),%eax 2186c0: 5d pop %rbp 2186c1: c3 ret 2186c2: cc int3 2186c3: cc int3 2186c4: cc int3 2186c5: cc int3 2186c6: cc int3 2186c7: cc int3 2186c8: cc int3 2186c9: cc int3 2186ca: cc int3 2186cb: cc int3 2186cc: cc int3 2186cd: cc int3 2186ce: cc int3 2186cf: cc int3 00000000002186d0 : static const int ClockMeter_attributes[] = { CLOCK }; static void ClockMeter_updateValues(Meter* this) { 2186d0: 55 push %rbp 2186d1: 48 89 e5 mov %rsp,%rbp 2186d4: 48 83 ec 60 sub $0x60,%rsp 2186d8: 48 8b 05 51 a1 02 00 mov 0x2a151(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2186df: 48 89 45 f8 mov %rax,-0x8(%rbp) 2186e3: 48 89 7d b8 mov %rdi,-0x48(%rbp) const ProcessList* pl = this->pl; 2186e7: 48 8b 45 b8 mov -0x48(%rbp),%rax 2186eb: 48 8b 40 30 mov 0x30(%rax),%rax 2186ef: 48 89 45 b0 mov %rax,-0x50(%rbp) struct tm result; const struct tm* lt = localtime_r(&pl->realtime.tv_sec, &result); 2186f3: 48 8b 7d b0 mov -0x50(%rbp),%rdi 2186f7: 48 83 c7 48 add $0x48,%rdi 2186fb: 48 8d 75 c0 lea -0x40(%rbp),%rsi 2186ff: e8 fc 5a 02 00 call 23e200 218704: 48 89 45 a8 mov %rax,-0x58(%rbp) this->values[0] = lt->tm_hour * 60 + lt->tm_min; 218708: 48 8b 45 a8 mov -0x58(%rbp),%rax 21870c: 6b 40 08 3c imul $0x3c,0x8(%rax),%eax 218710: 48 8b 4d a8 mov -0x58(%rbp),%rcx 218714: 03 41 04 add 0x4(%rcx),%eax 218717: f2 0f 2a c0 cvtsi2sd %eax,%xmm0 21871b: 48 8b 45 b8 mov -0x48(%rbp),%rax 21871f: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 218726: f2 0f 11 00 movsd %xmm0,(%rax) strftime(this->txtBuffer, sizeof(this->txtBuffer), "%H:%M:%S", lt); 21872a: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21872e: 48 83 c7 48 add $0x48,%rdi 218732: 48 8b 4d a8 mov -0x58(%rbp),%rcx 218736: be 00 01 00 00 mov $0x100,%esi 21873b: 48 ba ba 5d 20 00 00 00 00 00 movabs $0x205dba,%rdx 218745: e8 c6 5a 02 00 call 23e210 21874a: 48 8b 05 df a0 02 00 mov 0x2a0df(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 218751: 48 8b 4d f8 mov -0x8(%rbp),%rcx 218755: 48 39 c8 cmp %rcx,%rax 218758: 0f 85 06 00 00 00 jne 218764 } 21875e: 48 83 c4 60 add $0x60,%rsp 218762: 5d pop %rbp 218763: c3 ret 218764: e8 d7 59 02 00 call 23e140 <__stack_chk_fail@plt> 218769: cc int3 21876a: cc int3 21876b: cc int3 21876c: cc int3 21876d: cc int3 21876e: cc int3 21876f: cc int3 0000000000218770 : "Black Night", "Broken Gray", NULL }; static void ColorsPanel_delete(Object* object) { 218770: 55 push %rbp 218771: 48 89 e5 mov %rsp,%rbp 218774: 48 83 ec 20 sub $0x20,%rsp 218778: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 21877c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218780: 48 89 45 f0 mov %rax,-0x10(%rbp) ColorsPanel* this = (ColorsPanel*) object; 218784: 48 8b 45 f8 mov -0x8(%rbp),%rax 218788: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 21878c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 218790: e8 eb f5 00 00 call 227d80 free(this); 218795: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218799: e8 c2 59 02 00 call 23e160 } 21879e: 48 83 c4 20 add $0x20,%rsp 2187a2: 5d pop %rbp 2187a3: c3 ret 2187a4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2187ae: 66 90 xchg %ax,%ax 00000000002187b0 : static HandlerResult ColorsPanel_eventHandler(Panel* super, int ch) { 2187b0: 55 push %rbp 2187b1: 48 89 e5 mov %rsp,%rbp 2187b4: 48 83 ec 30 sub $0x30,%rsp 2187b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2187bc: 89 75 f4 mov %esi,-0xc(%rbp) ColorsPanel* this = (ColorsPanel*) super; 2187bf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2187c3: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 2187c7: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) int mark; switch (ch) { 2187ce: 8b 45 f4 mov -0xc(%rbp),%eax 2187d1: 89 45 d8 mov %eax,-0x28(%rbp) 2187d4: 83 e8 0a sub $0xa,%eax 2187d7: 0f 84 60 00 00 00 je 21883d 2187dd: e9 00 00 00 00 jmp 2187e2 2187e2: 8b 45 d8 mov -0x28(%rbp),%eax 2187e5: 83 e8 0d sub $0xd,%eax 2187e8: 0f 84 4f 00 00 00 je 21883d 2187ee: e9 00 00 00 00 jmp 2187f3 2187f3: 8b 45 d8 mov -0x28(%rbp),%eax 2187f6: 83 e8 20 sub $0x20,%eax 2187f9: 0f 84 3e 00 00 00 je 21883d 2187ff: e9 00 00 00 00 jmp 218804 218804: 8b 45 d8 mov -0x28(%rbp),%eax 218807: 2d 28 01 00 00 sub $0x128,%eax 21880c: 0f 84 2b 00 00 00 je 21883d 218812: e9 00 00 00 00 jmp 218817 218817: 8b 45 d8 mov -0x28(%rbp),%eax 21881a: 2d 57 01 00 00 sub $0x157,%eax 21881f: 0f 84 18 00 00 00 je 21883d 218825: e9 00 00 00 00 jmp 21882a 21882a: 8b 45 d8 mov -0x28(%rbp),%eax 21882d: 2d 99 01 00 00 sub $0x199,%eax 218832: 0f 85 a4 00 00 00 jne 2188dc 218838: e9 00 00 00 00 jmp 21883d case 0x0d: case KEY_ENTER: case KEY_MOUSE: case KEY_RECLICK: case ' ': mark = Panel_getSelectedIndex(super); 21883d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218841: e8 3a f9 00 00 call 228180 218846: 89 45 e0 mov %eax,-0x20(%rbp) assert(mark >= 0); assert(mark < LAST_COLORSCHEME); for (int i = 0; ColorSchemeNames[i] != NULL; i++) 218849: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 218850: 48 63 45 dc movslq -0x24(%rbp),%rax 218854: 48 83 3c c5 50 77 20 00 00 cmpq $0x0,0x207750(,%rax,8) 21885d: 0f 84 24 00 00 00 je 218887 CheckItem_set((CheckItem*)Panel_get(super, i), false); 218863: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218867: 8b 75 dc mov -0x24(%rbp),%esi 21886a: e8 11 f7 00 00 call 227f80 21886f: 48 89 c7 mov %rax,%rdi 218872: 31 f6 xor %esi,%esi 218874: e8 a7 eb 00 00 call 227420 for (int i = 0; ColorSchemeNames[i] != NULL; i++) 218879: 8b 45 dc mov -0x24(%rbp),%eax 21887c: 83 c0 01 add $0x1,%eax 21887f: 89 45 dc mov %eax,-0x24(%rbp) 218882: e9 c9 ff ff ff jmp 218850 CheckItem_set((CheckItem*)Panel_get(super, mark), true); 218887: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21888b: 8b 75 e0 mov -0x20(%rbp),%esi 21888e: e8 ed f6 00 00 call 227f80 218893: 48 89 c7 mov %rax,%rdi 218896: be 01 00 00 00 mov $0x1,%esi 21889b: e8 80 eb 00 00 call 227420 this->settings->colorScheme = mark; 2188a0: 8b 4d e0 mov -0x20(%rbp),%ecx 2188a3: 48 8b 45 e8 mov -0x18(%rbp),%rax 2188a7: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2188ae: 89 48 2c mov %ecx,0x2c(%rax) this->settings->changed = true; 2188b1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2188b5: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2188bc: c6 40 68 01 movb $0x1,0x68(%rax) CRT_setColors(mark); 2188c0: 8b 7d e0 mov -0x20(%rbp),%edi 2188c3: e8 38 3b 00 00 call 21c400 clear(); 2188c8: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2188d0: e8 9b 58 02 00 call 23e170 result = HANDLED | REDRAW; 2188d5: c7 45 e4 11 00 00 00 movl $0x11,-0x1c(%rbp) } return result; 2188dc: 8b 45 e4 mov -0x1c(%rbp),%eax 2188df: 48 83 c4 30 add $0x30,%rsp 2188e3: 5d pop %rbp 2188e4: c3 ret 2188e5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2188ef: 90 nop 00000000002188f0 : .delete = ColorsPanel_delete }, .eventHandler = ColorsPanel_eventHandler }; ColorsPanel* ColorsPanel_new(Settings* settings) { 2188f0: 55 push %rbp 2188f1: 48 89 e5 mov %rsp,%rbp 2188f4: 48 83 ec 40 sub $0x40,%rsp 2188f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) ColorsPanel* this = AllocThis(ColorsPanel); 2188fc: bf e0 26 00 00 mov $0x26e0,%edi 218901: e8 5a 01 02 00 call 238a60 218906: 48 89 45 f0 mov %rax,-0x10(%rbp) 21890a: 48 8b 45 f0 mov -0x10(%rbp),%rax 21890e: 48 b9 b0 76 20 00 00 00 00 00 movabs $0x2076b0,%rcx 218918: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 21891b: 48 8b 45 f0 mov -0x10(%rbp),%rax 21891f: 48 89 45 e8 mov %rax,-0x18(%rbp) FunctionBar* fuBar = FunctionBar_new(ColorsFunctions, NULL, NULL); 218923: 48 bf f0 76 20 00 00 00 00 00 movabs $0x2076f0,%rdi 21892d: 31 c0 xor %eax,%eax 21892f: 89 c2 mov %eax,%edx 218931: 48 89 d6 mov %rdx,%rsi 218934: e8 17 5a 00 00 call 21e350 218939: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_init(super, 1, 1, 1, 1, Class(CheckItem), true, fuBar); 21893d: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218941: 48 8b 45 e0 mov -0x20(%rbp),%rax 218945: 41 b8 01 00 00 00 mov $0x1,%r8d 21894b: 49 b9 a8 9c 20 00 00 00 00 00 movabs $0x209ca8,%r9 218955: 44 89 c6 mov %r8d,%esi 218958: 44 89 c2 mov %r8d,%edx 21895b: 44 89 c1 mov %r8d,%ecx 21895e: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 218965: 48 89 44 24 08 mov %rax,0x8(%rsp) 21896a: e8 91 f2 00 00 call 227c00 this->settings = settings; 21896f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 218973: 48 8b 45 f0 mov -0x10(%rbp),%rax 218977: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) assert(ARRAYSIZE(ColorSchemeNames) == LAST_COLORSCHEME + 1); Panel_setHeader(super, "Colors"); 21897e: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218982: 48 be 42 33 20 00 00 00 00 00 movabs $0x203342,%rsi 21898c: e8 5f f4 00 00 call 227df0 for (int i = 0; ColorSchemeNames[i] != NULL; i++) { 218991: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 218998: 48 63 45 dc movslq -0x24(%rbp),%rax 21899c: 48 83 3c c5 50 77 20 00 00 cmpq $0x0,0x207750(,%rax,8) 2189a5: 0f 84 35 00 00 00 je 2189e0 Panel_add(super, (Object*) CheckItem_newByVal(ColorSchemeNames[i], false)); 2189ab: 48 8b 45 e8 mov -0x18(%rbp),%rax 2189af: 48 89 45 d0 mov %rax,-0x30(%rbp) 2189b3: 48 63 45 dc movslq -0x24(%rbp),%rax 2189b7: 48 8b 3c c5 50 77 20 00 mov 0x207750(,%rax,8),%rdi 2189bf: 31 f6 xor %esi,%esi 2189c1: e8 9a e9 00 00 call 227360 2189c6: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2189ca: 48 89 c6 mov %rax,%rsi 2189cd: e8 0e f5 00 00 call 227ee0 for (int i = 0; ColorSchemeNames[i] != NULL; i++) { 2189d2: 8b 45 dc mov -0x24(%rbp),%eax 2189d5: 83 c0 01 add $0x1,%eax 2189d8: 89 45 dc mov %eax,-0x24(%rbp) 2189db: e9 b8 ff ff ff jmp 218998 } CheckItem_set((CheckItem*)Panel_get(super, settings->colorScheme), true); 2189e0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2189e4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2189e8: 8b 70 2c mov 0x2c(%rax),%esi 2189eb: e8 90 f5 00 00 call 227f80 2189f0: 48 89 c7 mov %rax,%rdi 2189f3: be 01 00 00 00 mov $0x1,%esi 2189f8: e8 23 ea 00 00 call 227420 return this; 2189fd: 48 8b 45 f0 mov -0x10(%rbp),%rax 218a01: 48 83 c4 40 add $0x40,%rsp 218a05: 5d pop %rbp 218a06: c3 ret 218a07: cc int3 218a08: cc int3 218a09: cc int3 218a0a: cc int3 218a0b: cc int3 218a0c: cc int3 218a0d: cc int3 218a0e: cc int3 218a0f: cc int3 0000000000218a10 : #include "XUtils.h" static const char* const ColumnsFunctions[] = {" ", " ", " ", " ", " ", " ", "MoveUp", "MoveDn", "Remove", "Done ", NULL}; static void ColumnsPanel_delete(Object* object) { 218a10: 55 push %rbp 218a11: 48 89 e5 mov %rsp,%rbp 218a14: 48 83 ec 20 sub $0x20,%rsp 218a18: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 218a1c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218a20: 48 89 45 f0 mov %rax,-0x10(%rbp) ColumnsPanel* this = (ColumnsPanel*) object; 218a24: 48 8b 45 f8 mov -0x8(%rbp),%rax 218a28: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 218a2c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 218a30: e8 4b f3 00 00 call 227d80 free(this); 218a35: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218a39: e8 22 57 02 00 call 23e160 } 218a3e: 48 83 c4 20 add $0x20,%rsp 218a42: 5d pop %rbp 218a43: c3 ret 218a44: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 218a4e: 66 90 xchg %ax,%ax 0000000000218a50 : static HandlerResult ColumnsPanel_eventHandler(Panel* super, int ch) { 218a50: 55 push %rbp 218a51: 48 89 e5 mov %rsp,%rbp 218a54: 48 83 ec 40 sub $0x40,%rsp 218a58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 218a5c: 89 75 f4 mov %esi,-0xc(%rbp) ColumnsPanel* const this = (ColumnsPanel*) super; 218a5f: 48 8b 45 f8 mov -0x8(%rbp),%rax 218a63: 48 89 45 e8 mov %rax,-0x18(%rbp) int selected = Panel_getSelectedIndex(super); 218a67: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218a6b: e8 10 f7 00 00 call 228180 218a70: 89 45 e4 mov %eax,-0x1c(%rbp) HandlerResult result = IGNORED; 218a73: c7 45 e0 02 00 00 00 movl $0x2,-0x20(%rbp) int size = Panel_size(super); 218a7a: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218a7e: e8 1d f7 00 00 call 2281a0 218a83: 89 45 dc mov %eax,-0x24(%rbp) switch(ch) { 218a86: 8b 45 f4 mov -0xc(%rbp),%eax 218a89: 89 45 cc mov %eax,-0x34(%rbp) 218a8c: 83 e8 0a sub $0xa,%eax 218a8f: 0f 84 05 01 00 00 je 218b9a 218a95: e9 00 00 00 00 jmp 218a9a 218a9a: 8b 45 cc mov -0x34(%rbp),%eax 218a9d: 83 e8 0d sub $0xd,%eax 218aa0: 0f 84 f4 00 00 00 je 218b9a 218aa6: e9 00 00 00 00 jmp 218aab 218aab: 8b 45 cc mov -0x34(%rbp),%eax 218aae: 83 e8 2b sub $0x2b,%eax 218ab1: 0f 84 c5 01 00 00 je 218c7c 218ab7: e9 00 00 00 00 jmp 218abc 218abc: 8b 45 cc mov -0x34(%rbp),%eax 218abf: 83 e8 2d sub $0x2d,%eax 218ac2: 0f 84 73 01 00 00 je 218c3b 218ac8: e9 00 00 00 00 jmp 218acd 218acd: 8b 45 cc mov -0x34(%rbp),%eax 218ad0: 83 e8 5b sub $0x5b,%eax 218ad3: 0f 84 62 01 00 00 je 218c3b 218ad9: e9 00 00 00 00 jmp 218ade 218ade: 8b 45 cc mov -0x34(%rbp),%eax 218ae1: 83 e8 5d sub $0x5d,%eax 218ae4: 0f 84 92 01 00 00 je 218c7c 218aea: e9 00 00 00 00 jmp 218aef 218aef: 8b 45 cc mov -0x34(%rbp),%eax 218af2: 2d 02 01 00 00 sub $0x102,%eax 218af7: 0f 84 64 01 00 00 je 218c61 218afd: e9 00 00 00 00 jmp 218b02 218b02: 8b 45 cc mov -0x34(%rbp),%eax 218b05: 2d 03 01 00 00 sub $0x103,%eax 218b0a: 0f 84 10 01 00 00 je 218c20 218b10: e9 00 00 00 00 jmp 218b15 218b15: 8b 45 cc mov -0x34(%rbp),%eax 218b18: 2d 0f 01 00 00 sub $0x10f,%eax 218b1d: 0f 84 18 01 00 00 je 218c3b 218b23: e9 00 00 00 00 jmp 218b28 218b28: 8b 45 cc mov -0x34(%rbp),%eax 218b2b: 2d 10 01 00 00 sub $0x110,%eax 218b30: 0f 84 46 01 00 00 je 218c7c 218b36: e9 00 00 00 00 jmp 218b3b 218b3b: 8b 45 cc mov -0x34(%rbp),%eax 218b3e: 2d 11 01 00 00 sub $0x111,%eax 218b43: 0f 84 59 01 00 00 je 218ca2 218b49: e9 00 00 00 00 jmp 218b4e 218b4e: 8b 45 cc mov -0x34(%rbp),%eax 218b51: 2d 28 01 00 00 sub $0x128,%eax 218b56: 0f 84 3e 00 00 00 je 218b9a 218b5c: e9 00 00 00 00 jmp 218b61 218b61: 8b 45 cc mov -0x34(%rbp),%eax 218b64: 2d 4a 01 00 00 sub $0x14a,%eax 218b69: 0f 84 33 01 00 00 je 218ca2 218b6f: e9 00 00 00 00 jmp 218b74 218b74: 8b 45 cc mov -0x34(%rbp),%eax 218b77: 2d 57 01 00 00 sub $0x157,%eax 218b7c: 0f 84 18 00 00 00 je 218b9a 218b82: e9 00 00 00 00 jmp 218b87 218b87: 8b 45 cc mov -0x34(%rbp),%eax 218b8a: 2d 99 01 00 00 sub $0x199,%eax 218b8f: 0f 85 36 01 00 00 jne 218ccb 218b95: e9 00 00 00 00 jmp 218b9a case 0x0d: case KEY_ENTER: case KEY_MOUSE: case KEY_RECLICK: { if (selected < size - 1) { 218b9a: 8b 45 e4 mov -0x1c(%rbp),%eax 218b9d: 8b 4d dc mov -0x24(%rbp),%ecx 218ba0: 83 e9 01 sub $0x1,%ecx 218ba3: 39 c8 cmp %ecx,%eax 218ba5: 0f 8d 70 00 00 00 jge 218c1b this->moving = !(this->moving); 218bab: 48 8b 45 e8 mov -0x18(%rbp),%rax 218baf: 8a 88 e0 26 00 00 mov 0x26e0(%rax),%cl 218bb5: 80 f1 ff xor $0xff,%cl 218bb8: 48 8b 45 e8 mov -0x18(%rbp),%rax 218bbc: 80 e1 01 and $0x1,%cl 218bbf: 88 88 e0 26 00 00 mov %cl,0x26e0(%rax) Panel_setSelectionColor(super, this->moving ? PANEL_SELECTION_FOLLOW : PANEL_SELECTION_FOCUS); 218bc5: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218bc9: 48 8b 45 e8 mov -0x18(%rbp),%rax 218bcd: 8a 88 e0 26 00 00 mov 0x26e0(%rax),%cl 218bd3: be 09 00 00 00 mov $0x9,%esi 218bd8: b8 0a 00 00 00 mov $0xa,%eax 218bdd: f6 c1 01 test $0x1,%cl 218be0: 0f 45 f0 cmovne %eax,%esi 218be3: e8 e8 f1 00 00 call 227dd0 ListItem* selectedItem = (ListItem*) Panel_getSelected(super); 218be8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218bec: e8 7f f4 00 00 call 228070 218bf1: 48 89 45 d0 mov %rax,-0x30(%rbp) if (selectedItem) 218bf5: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 218bfa: 0f 84 14 00 00 00 je 218c14 selectedItem->moving = this->moving; 218c00: 48 8b 45 e8 mov -0x18(%rbp),%rax 218c04: 8a 88 e0 26 00 00 mov 0x26e0(%rax),%cl 218c0a: 48 8b 45 d0 mov -0x30(%rbp),%rax 218c0e: 80 e1 01 and $0x1,%cl 218c11: 88 48 14 mov %cl,0x14(%rax) result = HANDLED; 218c14: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) } break; 218c1b: e9 01 01 00 00 jmp 218d21 } case KEY_UP: { if (!this->moving) { 218c20: 48 8b 45 e8 mov -0x18(%rbp),%rax 218c24: f6 80 e0 26 00 00 01 testb $0x1,0x26e0(%rax) 218c2b: 0f 85 05 00 00 00 jne 218c36 break; 218c31: e9 eb 00 00 00 jmp 218d21 } } 218c36: e9 00 00 00 00 jmp 218c3b /* else fallthrough */ case KEY_F(7): case '[': case '-': { if (selected < size - 1) 218c3b: 8b 45 e4 mov -0x1c(%rbp),%eax 218c3e: 8b 4d dc mov -0x24(%rbp),%ecx 218c41: 83 e9 01 sub $0x1,%ecx 218c44: 39 c8 cmp %ecx,%eax 218c46: 0f 8d 09 00 00 00 jge 218c55 Panel_moveSelectedUp(super); 218c4c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218c50: e8 7b f4 00 00 call 2280d0 result = HANDLED; 218c55: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 218c5c: e9 c0 00 00 00 jmp 218d21 } case KEY_DOWN: { if (!this->moving) { 218c61: 48 8b 45 e8 mov -0x18(%rbp),%rax 218c65: f6 80 e0 26 00 00 01 testb $0x1,0x26e0(%rax) 218c6c: 0f 85 05 00 00 00 jne 218c77 break; 218c72: e9 aa 00 00 00 jmp 218d21 } } 218c77: e9 00 00 00 00 jmp 218c7c /* else fallthrough */ case KEY_F(8): case ']': case '+': { if (selected < size - 2) 218c7c: 8b 45 e4 mov -0x1c(%rbp),%eax 218c7f: 8b 4d dc mov -0x24(%rbp),%ecx 218c82: 83 e9 02 sub $0x2,%ecx 218c85: 39 c8 cmp %ecx,%eax 218c87: 0f 8d 09 00 00 00 jge 218c96 Panel_moveSelectedDown(super); 218c8d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218c91: e8 8a f4 00 00 call 228120 result = HANDLED; 218c96: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 218c9d: e9 7f 00 00 00 jmp 218d21 } case KEY_F(9): case KEY_DC: { if (selected < size - 1) { 218ca2: 8b 45 e4 mov -0x1c(%rbp),%eax 218ca5: 8b 4d dc mov -0x24(%rbp),%ecx 218ca8: 83 e9 01 sub $0x1,%ecx 218cab: 39 c8 cmp %ecx,%eax 218cad: 0f 8d 0c 00 00 00 jge 218cbf Panel_remove(super, selected); 218cb3: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218cb7: 8b 75 e4 mov -0x1c(%rbp),%esi 218cba: e8 11 f3 00 00 call 227fd0 } result = HANDLED; 218cbf: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 218cc6: e9 56 00 00 00 jmp 218d21 } default: { if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) 218ccb: 31 c0 xor %eax,%eax 218ccd: 3b 45 f4 cmp -0xc(%rbp),%eax 218cd0: 0f 8d 35 00 00 00 jge 218d0b 218cd6: 81 7d f4 ff 00 00 00 cmpl $0xff,-0xc(%rbp) 218cdd: 0f 8d 28 00 00 00 jge 218d0b 218ce3: 8b 45 f4 mov -0xc(%rbp),%eax 218ce6: 0f b6 f8 movzbl %al,%edi 218ce9: be 00 08 00 00 mov $0x800,%esi 218cee: e8 6d 03 00 00 call 219060 <__sbistype> 218cf3: 83 f8 00 cmp $0x0,%eax 218cf6: 0f 84 0f 00 00 00 je 218d0b result = Panel_selectByTyping(super, ch); 218cfc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218d00: 8b 75 f4 mov -0xc(%rbp),%esi 218d03: e8 28 ec 00 00 call 227930 218d08: 89 45 e0 mov %eax,-0x20(%rbp) if (result == BREAK_LOOP) 218d0b: 83 7d e0 04 cmpl $0x4,-0x20(%rbp) 218d0f: 0f 85 07 00 00 00 jne 218d1c result = IGNORED; 218d15: c7 45 e0 02 00 00 00 movl $0x2,-0x20(%rbp) break; 218d1c: e9 00 00 00 00 jmp 218d21 } } if (result == HANDLED) 218d21: 83 7d e0 01 cmpl $0x1,-0x20(%rbp) 218d25: 0f 85 09 00 00 00 jne 218d34 ColumnsPanel_update(super); 218d2b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218d2f: e8 0c 02 00 00 call 218f40 return result; 218d34: 8b 45 e0 mov -0x20(%rbp),%eax 218d37: 48 83 c4 40 add $0x40,%rsp 218d3b: 5d pop %rbp 218d3c: c3 ret 218d3d: 0f 1f 00 nopl (%rax) 0000000000218d40 : if (name == NULL) name = "- "; Panel_add(super, (Object*) ListItem_new(name, key)); } ColumnsPanel* ColumnsPanel_new(Settings* settings) { 218d40: 55 push %rbp 218d41: 48 89 e5 mov %rsp,%rbp 218d44: 48 83 ec 40 sub $0x40,%rsp 218d48: 48 89 7d f8 mov %rdi,-0x8(%rbp) ColumnsPanel* this = AllocThis(ColumnsPanel); 218d4c: bf e8 26 00 00 mov $0x26e8,%edi 218d51: e8 0a fd 01 00 call 238a60 218d56: 48 89 45 f0 mov %rax,-0x10(%rbp) 218d5a: 48 8b 45 f0 mov -0x10(%rbp),%rax 218d5e: 48 b9 90 77 20 00 00 00 00 00 movabs $0x207790,%rcx 218d68: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 218d6b: 48 8b 45 f0 mov -0x10(%rbp),%rax 218d6f: 48 89 45 e8 mov %rax,-0x18(%rbp) FunctionBar* fuBar = FunctionBar_new(ColumnsFunctions, NULL, NULL); 218d73: 48 bf d0 77 20 00 00 00 00 00 movabs $0x2077d0,%rdi 218d7d: 31 c0 xor %eax,%eax 218d7f: 89 c2 mov %eax,%edx 218d81: 48 89 d6 mov %rdx,%rsi 218d84: e8 c7 55 00 00 call 21e350 218d89: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_init(super, 1, 1, 1, 1, Class(ListItem), true, fuBar); 218d8d: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218d91: 48 8b 45 e0 mov -0x20(%rbp),%rax 218d95: 41 b8 01 00 00 00 mov $0x1,%r8d 218d9b: 49 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r9 218da5: 44 89 c6 mov %r8d,%esi 218da8: 44 89 c2 mov %r8d,%edx 218dab: 44 89 c1 mov %r8d,%ecx 218dae: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 218db5: 48 89 44 24 08 mov %rax,0x8(%rsp) 218dba: e8 41 ee 00 00 call 227c00 this->settings = settings; 218dbf: 48 8b 4d f8 mov -0x8(%rbp),%rcx 218dc3: 48 8b 45 f0 mov -0x10(%rbp),%rax 218dc7: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) this->moving = false; 218dce: 48 8b 45 f0 mov -0x10(%rbp),%rax 218dd2: c6 80 e0 26 00 00 00 movb $0x0,0x26e0(%rax) Panel_setHeader(super, "Active Columns"); 218dd9: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218ddd: 48 be 6a 5c 20 00 00 00 00 00 movabs $0x205c6a,%rsi 218de7: e8 04 f0 00 00 call 227df0 Hashtable* dynamicColumns = settings->dynamicColumns; 218dec: 48 8b 45 f8 mov -0x8(%rbp),%rax 218df0: 48 8b 40 18 mov 0x18(%rax),%rax 218df4: 48 89 45 d8 mov %rax,-0x28(%rbp) const ProcessField* fields = settings->fields; 218df8: 48 8b 45 f8 mov -0x8(%rbp),%rax 218dfc: 48 8b 40 20 mov 0x20(%rax),%rax 218e00: 48 89 45 d0 mov %rax,-0x30(%rbp) for (; *fields; fields++) 218e04: 48 8b 45 d0 mov -0x30(%rbp),%rax 218e08: 83 38 00 cmpl $0x0,(%rax) 218e0b: 0f 84 24 00 00 00 je 218e35 ColumnsPanel_add(super, *fields, dynamicColumns); 218e11: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218e15: 48 8b 45 d0 mov -0x30(%rbp),%rax 218e19: 8b 30 mov (%rax),%esi 218e1b: 48 8b 55 d8 mov -0x28(%rbp),%rdx 218e1f: e8 1c 00 00 00 call 218e40 for (; *fields; fields++) 218e24: 48 8b 45 d0 mov -0x30(%rbp),%rax 218e28: 48 83 c0 04 add $0x4,%rax 218e2c: 48 89 45 d0 mov %rax,-0x30(%rbp) 218e30: e9 cf ff ff ff jmp 218e04 return this; 218e35: 48 8b 45 f0 mov -0x10(%rbp),%rax 218e39: 48 83 c4 40 add $0x40,%rsp 218e3d: 5d pop %rbp 218e3e: c3 ret 218e3f: 90 nop 0000000000218e40 : static void ColumnsPanel_add(Panel* super, unsigned int key, Hashtable* columns) { 218e40: 55 push %rbp 218e41: 48 89 e5 mov %rsp,%rbp 218e44: 48 83 ec 40 sub $0x40,%rsp 218e48: 48 89 7d f8 mov %rdi,-0x8(%rbp) 218e4c: 89 75 f4 mov %esi,-0xc(%rbp) 218e4f: 48 89 55 e8 mov %rdx,-0x18(%rbp) if (key < LAST_PROCESSFIELD) { 218e53: 83 7d f4 7f cmpl $0x7f,-0xc(%rbp) 218e57: 0f 83 22 00 00 00 jae 218e7f name = Process_fields[key].name; 218e5d: 8b 45 f4 mov -0xc(%rbp),%eax 218e60: 89 c1 mov %eax,%ecx 218e62: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 218e6c: 48 c1 e1 05 shl $0x5,%rcx 218e70: 48 01 c8 add %rcx,%rax 218e73: 48 8b 00 mov (%rax),%rax 218e76: 48 89 45 e0 mov %rax,-0x20(%rbp) } else { 218e7a: e9 79 00 00 00 jmp 218ef8 const DynamicColumn* column = Hashtable_get(columns, key); 218e7f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 218e83: 8b 75 f4 mov -0xc(%rbp),%esi 218e86: e8 55 64 00 00 call 21f2e0 218e8b: 48 89 45 d8 mov %rax,-0x28(%rbp) if (!column) { 218e8f: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 218e94: 0f 85 0d 00 00 00 jne 218ea7 name = NULL; 218e9a: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) } else { 218ea2: e9 4c 00 00 00 jmp 218ef3 name = column->caption ? column->caption : column->heading; 218ea7: 48 8b 45 d8 mov -0x28(%rbp),%rax 218eab: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 218eb0: 0f 84 11 00 00 00 je 218ec7 218eb6: 48 8b 45 d8 mov -0x28(%rbp),%rax 218eba: 48 8b 40 28 mov 0x28(%rax),%rax 218ebe: 48 89 45 d0 mov %rax,-0x30(%rbp) 218ec2: e9 0c 00 00 00 jmp 218ed3 218ec7: 48 8b 45 d8 mov -0x28(%rbp),%rax 218ecb: 48 8b 40 20 mov 0x20(%rax),%rax 218ecf: 48 89 45 d0 mov %rax,-0x30(%rbp) 218ed3: 48 8b 45 d0 mov -0x30(%rbp),%rax 218ed7: 48 89 45 e0 mov %rax,-0x20(%rbp) if (!name) 218edb: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 218ee0: 0f 85 08 00 00 00 jne 218eee name = column->name; /* name is a mandatory field */ 218ee6: 48 8b 45 d8 mov -0x28(%rbp),%rax 218eea: 48 89 45 e0 mov %rax,-0x20(%rbp) 218eee: e9 00 00 00 00 jmp 218ef3 218ef3: e9 00 00 00 00 jmp 218ef8 if (name == NULL) 218ef8: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 218efd: 0f 85 0e 00 00 00 jne 218f11 name = "- "; 218f03: 48 b8 4b 35 20 00 00 00 00 00 movabs $0x20354b,%rax 218f0d: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_add(super, (Object*) ListItem_new(name, key)); 218f11: 48 8b 45 f8 mov -0x8(%rbp),%rax 218f15: 48 89 45 c8 mov %rax,-0x38(%rbp) 218f19: 48 8b 7d e0 mov -0x20(%rbp),%rdi 218f1d: 8b 75 f4 mov -0xc(%rbp),%esi 218f20: e8 2b 8e 00 00 call 221d50 218f25: 48 8b 7d c8 mov -0x38(%rbp),%rdi 218f29: 48 89 c6 mov %rax,%rsi 218f2c: e8 af ef 00 00 call 227ee0 } 218f31: 48 83 c4 40 add $0x40,%rsp 218f35: 5d pop %rbp 218f36: c3 ret 218f37: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000218f40 : } void ColumnsPanel_update(Panel* super) { 218f40: 55 push %rbp 218f41: 48 89 e5 mov %rsp,%rbp 218f44: 48 83 ec 20 sub $0x20,%rsp 218f48: 48 89 7d f8 mov %rdi,-0x8(%rbp) ColumnsPanel* this = (ColumnsPanel*) super; 218f4c: 48 8b 45 f8 mov -0x8(%rbp),%rax 218f50: 48 89 45 f0 mov %rax,-0x10(%rbp) int size = Panel_size(super); 218f54: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218f58: e8 43 f2 00 00 call 2281a0 218f5d: 89 45 ec mov %eax,-0x14(%rbp) this->settings->changed = true; 218f60: 48 8b 45 f0 mov -0x10(%rbp),%rax 218f64: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218f6b: c6 40 68 01 movb $0x1,0x68(%rax) this->settings->fields = xRealloc(this->settings->fields, sizeof(ProcessField) * (size + 1)); 218f6f: 48 8b 45 f0 mov -0x10(%rbp),%rax 218f73: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218f7a: 48 8b 78 20 mov 0x20(%rax),%rdi 218f7e: 8b 45 ec mov -0x14(%rbp),%eax 218f81: 83 c0 01 add $0x1,%eax 218f84: 48 63 f0 movslq %eax,%rsi 218f87: 48 c1 e6 02 shl $0x2,%rsi 218f8b: e8 c0 fb 01 00 call 238b50 218f90: 48 89 c1 mov %rax,%rcx 218f93: 48 8b 45 f0 mov -0x10(%rbp),%rax 218f97: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218f9e: 48 89 48 20 mov %rcx,0x20(%rax) this->settings->flags = 0; 218fa2: 48 8b 45 f0 mov -0x10(%rbp),%rax 218fa6: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218fad: c7 40 28 00 00 00 00 movl $0x0,0x28(%rax) for (int i = 0; i < size; i++) { 218fb4: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 218fbb: 8b 45 e8 mov -0x18(%rbp),%eax 218fbe: 3b 45 ec cmp -0x14(%rbp),%eax 218fc1: 0f 8d 71 00 00 00 jge 219038 int key = ((ListItem*) Panel_get(super, i))->key; 218fc7: 48 8b 7d f8 mov -0x8(%rbp),%rdi 218fcb: 8b 75 e8 mov -0x18(%rbp),%esi 218fce: e8 ad ef 00 00 call 227f80 218fd3: 8b 40 10 mov 0x10(%rax),%eax 218fd6: 89 45 e4 mov %eax,-0x1c(%rbp) this->settings->fields[i] = key; 218fd9: 8b 55 e4 mov -0x1c(%rbp),%edx 218fdc: 48 8b 45 f0 mov -0x10(%rbp),%rax 218fe0: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 218fe7: 48 8b 40 20 mov 0x20(%rax),%rax 218feb: 48 63 4d e8 movslq -0x18(%rbp),%rcx 218fef: 89 14 88 mov %edx,(%rax,%rcx,4) if (key < LAST_PROCESSFIELD) 218ff2: 83 7d e4 7f cmpl $0x7f,-0x1c(%rbp) 218ff6: 0f 8d 29 00 00 00 jge 219025 this->settings->flags |= Process_fields[key].flags; 218ffc: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 219000: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 21900a: 48 c1 e1 05 shl $0x5,%rcx 21900e: 48 01 c8 add %rcx,%rax 219011: 8b 48 18 mov 0x18(%rax),%ecx 219014: 48 8b 45 f0 mov -0x10(%rbp),%rax 219018: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 21901f: 0b 48 28 or 0x28(%rax),%ecx 219022: 89 48 28 mov %ecx,0x28(%rax) } 219025: e9 00 00 00 00 jmp 21902a for (int i = 0; i < size; i++) { 21902a: 8b 45 e8 mov -0x18(%rbp),%eax 21902d: 83 c0 01 add $0x1,%eax 219030: 89 45 e8 mov %eax,-0x18(%rbp) 219033: e9 83 ff ff ff jmp 218fbb this->settings->fields[size] = 0; 219038: 48 8b 45 f0 mov -0x10(%rbp),%rax 21903c: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 219043: 48 8b 40 20 mov 0x20(%rax),%rax 219047: 48 63 4d ec movslq -0x14(%rbp),%rcx 21904b: c7 04 88 00 00 00 00 movl $0x0,(%rax,%rcx,4) } 219052: 48 83 c4 20 add $0x20,%rsp 219056: 5d pop %rbp 219057: c3 ret 219058: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000219060 <__sbistype>: { 219060: 55 push %rbp 219061: 48 89 e5 mov %rsp,%rbp 219064: 48 83 ec 10 sub $0x10,%rsp 219068: 89 7d fc mov %edi,-0x4(%rbp) 21906b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 21906f: 8b 7d fc mov -0x4(%rbp),%edi 219072: 48 8b 75 f0 mov -0x10(%rbp),%rsi 219076: e8 15 00 00 00 call 219090 <__sbmaskrune> 21907b: 83 f8 00 cmp $0x0,%eax 21907e: 0f 95 c0 setne %al 219081: 34 ff xor $0xff,%al 219083: 34 ff xor $0xff,%al 219085: 24 01 and $0x1,%al 219087: 0f b6 c0 movzbl %al,%eax 21908a: 48 83 c4 10 add $0x10,%rsp 21908e: 5d pop %rbp 21908f: c3 ret 0000000000219090 <__sbmaskrune>: { 219090: 55 push %rbp 219091: 48 89 e5 mov %rsp,%rbp 219094: 48 83 ec 20 sub $0x20,%rsp 219098: 89 7d fc mov %edi,-0x4(%rbp) 21909b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21909f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 2190a3: 0f 8c 10 00 00 00 jl 2190b9 <__sbmaskrune+0x29> 2190a9: 8b 45 fc mov -0x4(%rbp),%eax 2190ac: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 2190b3: 0f 8c 0b 00 00 00 jl 2190c4 <__sbmaskrune+0x34> 2190b9: 31 c0 xor %eax,%eax 2190bb: 48 89 45 e8 mov %rax,-0x18(%rbp) 2190bf: e9 16 00 00 00 jmp 2190da <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 2190c4: e8 27 00 00 00 call 2190f0 <__getCurrentRuneLocale> 2190c9: 48 63 4d fc movslq -0x4(%rbp),%rcx 2190cd: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 2190d2: 48 23 45 f0 and -0x10(%rbp),%rax 2190d6: 48 89 45 e8 mov %rax,-0x18(%rbp) 2190da: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 2190de: 48 83 c4 20 add $0x20,%rsp 2190e2: 5d pop %rbp 2190e3: c3 ret 2190e4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2190ee: 66 90 xchg %ax,%ax 00000000002190f0 <__getCurrentRuneLocale>: { 2190f0: 55 push %rbp 2190f1: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 2190f4: 48 8b 0d b5 6b 02 00 mov 0x26bb5(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2190fb: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 219104: 48 8b 04 08 mov (%rax,%rcx,1),%rax 219108: 48 83 f8 00 cmp $0x0,%rax 21910c: 0f 84 1d 00 00 00 je 21912f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 219112: 48 8b 0d 97 6b 02 00 mov 0x26b97(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 219119: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 219122: 48 8b 04 08 mov (%rax,%rcx,1),%rax 219126: 48 89 45 f8 mov %rax,-0x8(%rbp) 21912a: e9 0c 00 00 00 jmp 21913b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 21912f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 219137: 48 89 45 f8 mov %rax,-0x8(%rbp) } 21913b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21913f: 5d pop %rbp 219140: c3 ret 219141: cc int3 219142: cc int3 219143: cc int3 219144: cc int3 219145: cc int3 219146: cc int3 219147: cc int3 219148: cc int3 219149: cc int3 21914a: cc int3 21914b: cc int3 21914c: cc int3 21914d: cc int3 21914e: cc int3 21914f: cc int3 0000000000219150 : free(*commFilter); *commFilter = NULL; } int CommandLine_run(const char* name, int argc, char** argv) { 219150: 55 push %rbp 219151: 48 89 e5 mov %rsp,%rbp 219154: 48 81 ec 00 01 00 00 sub $0x100,%rsp 21915b: 48 8b 05 ce 96 02 00 mov 0x296ce(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 219162: 48 89 45 f8 mov %rax,-0x8(%rbp) 219166: 48 89 7d 88 mov %rdi,-0x78(%rbp) 21916a: 89 75 84 mov %esi,-0x7c(%rbp) 21916d: 48 89 95 78 ff ff ff mov %rdx,-0x88(%rbp) /* initialize locale */ const char* lc_ctype; if ((lc_ctype = getenv("LC_CTYPE")) || (lc_ctype = getenv("LC_ALL"))) 219174: 48 bf 5e 58 20 00 00 00 00 00 movabs $0x20585e,%rdi 21917e: e8 9d 50 02 00 call 23e220 219183: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 21918a: 48 83 f8 00 cmp $0x0,%rax 21918e: 0f 85 20 00 00 00 jne 2191b4 219194: 48 bf 0e 3d 20 00 00 00 00 00 movabs $0x203d0e,%rdi 21919e: e8 7d 50 02 00 call 23e220 2191a3: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 2191aa: 48 83 f8 00 cmp $0x0,%rax 2191ae: 0f 84 16 00 00 00 je 2191ca setlocale(LC_CTYPE, lc_ctype); 2191b4: 48 8b b5 70 ff ff ff mov -0x90(%rbp),%rsi 2191bb: bf 02 00 00 00 mov $0x2,%edi 2191c0: e8 6b 50 02 00 call 23e230 2191c5: e9 14 00 00 00 jmp 2191de else setlocale(LC_CTYPE, ""); 2191ca: bf 02 00 00 00 mov $0x2,%edi 2191cf: 48 be ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rsi 2191d9: e8 52 50 02 00 call 23e230 CommandLineStatus status = STATUS_OK; 2191de: c7 85 6c ff ff ff 00 00 00 00 movl $0x0,-0x94(%rbp) CommandLineSettings flags = { 0 }; 2191e8: 48 8d 7d c8 lea -0x38(%rbp),%rdi 2191ec: 31 f6 xor %esi,%esi 2191ee: ba 30 00 00 00 mov $0x30,%edx 2191f3: e8 48 50 02 00 call 23e240 if ((status = parseArguments(name, argc, argv, &flags)) != STATUS_OK) 2191f8: 48 8b 7d 88 mov -0x78(%rbp),%rdi 2191fc: 8b 75 84 mov -0x7c(%rbp),%esi 2191ff: 48 8b 95 78 ff ff ff mov -0x88(%rbp),%rdx 219206: 48 8d 4d c8 lea -0x38(%rbp),%rcx 21920a: e8 f1 04 00 00 call 219700 21920f: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 219215: 83 f8 00 cmp $0x0,%eax 219218: 0f 84 1b 00 00 00 je 219239 return status != STATUS_OK_EXIT ? 1 : 0; 21921e: 8b 95 6c ff ff ff mov -0x94(%rbp),%edx 219224: 31 c0 xor %eax,%eax 219226: b9 01 00 00 00 mov $0x1,%ecx 21922b: 83 fa 02 cmp $0x2,%edx 21922e: 0f 45 c1 cmovne %ecx,%eax 219231: 89 45 94 mov %eax,-0x6c(%rbp) 219234: e9 89 04 00 00 jmp 2196c2 if (flags.readonly) 219239: f6 45 f0 01 testb $0x1,-0x10(%rbp) 21923d: 0f 84 05 00 00 00 je 219248 Settings_enableReadonly(); 219243: e8 f8 ce 01 00 call 236140 if (!Platform_init()) 219248: e8 63 06 02 00 call 2398b0 21924d: a8 01 test $0x1,%al 21924f: 0f 85 0c 00 00 00 jne 219261 return 1; 219255: c7 45 94 01 00 00 00 movl $0x1,-0x6c(%rbp) 21925c: e9 61 04 00 00 jmp 2196c2 Process_setupColumnWidths(); 219261: e8 ba 07 01 00 call 229a20 UsersTable* ut = UsersTable_new(); 219266: e8 f5 ec 01 00 call 237f60 21926b: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) Hashtable* dc = DynamicColumns_new(); 219272: e8 09 48 00 00 call 21da80 219277: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) Hashtable* dm = DynamicMeters_new(); 21927e: e8 3d 4a 00 00 call 21dcc0 219283: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) if (!dc) 21928a: 48 83 bd 58 ff ff ff 00 cmpq $0x0,-0xa8(%rbp) 219292: 0f 85 15 00 00 00 jne 2192ad dc = Hashtable_new(0, true); 219298: 31 c0 xor %eax,%eax 21929a: 89 c7 mov %eax,%edi 21929c: be 01 00 00 00 mov $0x1,%esi 2192a1: e8 6a 58 00 00 call 21eb10 2192a6: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) ProcessList* pl = ProcessList_new(ut, dm, dc, flags.pidMatchList, flags.userId); 2192ad: 48 8b bd 60 ff ff ff mov -0xa0(%rbp),%rdi 2192b4: 48 8b b5 50 ff ff ff mov -0xb0(%rbp),%rsi 2192bb: 48 8b 95 58 ff ff ff mov -0xa8(%rbp),%rdx 2192c2: 48 8b 4d c8 mov -0x38(%rbp),%rcx 2192c6: 44 8b 45 d8 mov -0x28(%rbp),%r8d 2192ca: e8 c1 12 02 00 call 23a590 2192cf: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) Settings* settings = Settings_new(pl->activeCPUs, dc); 2192d6: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 2192dd: 8b b8 e0 00 00 00 mov 0xe0(%rax),%edi 2192e3: 48 8b b5 58 ff ff ff mov -0xa8(%rbp),%rsi 2192ea: e8 61 b1 01 00 call 234450 2192ef: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) pl->settings = settings; 2192f6: 48 8b 8d 40 ff ff ff mov -0xc0(%rbp),%rcx 2192fd: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 219304: 48 89 08 mov %rcx,(%rax) Header* header = Header_new(pl, settings, 2); 219307: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 21930e: 48 8b b5 40 ff ff ff mov -0xc0(%rbp),%rsi 219315: ba 02 00 00 00 mov $0x2,%edx 21931a: e8 51 61 00 00 call 21f470 21931f: 48 89 85 38 ff ff ff mov %rax,-0xc8(%rbp) Header_populateFromSettings(header); 219326: 48 8b bd 38 ff ff ff mov -0xc8(%rbp),%rdi 21932d: e8 9e 65 00 00 call 21f8d0 if (flags.delay != -1) 219332: 83 7d e0 ff cmpl $0xffffffff,-0x20(%rbp) 219336: 0f 84 0d 00 00 00 je 219349 settings->delay = flags.delay; 21933c: 8b 4d e0 mov -0x20(%rbp),%ecx 21933f: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 219346: 89 48 30 mov %ecx,0x30(%rax) if (!flags.useColors) 219349: f6 45 e4 01 testb $0x1,-0x1c(%rbp) 21934d: 0f 85 0e 00 00 00 jne 219361 settings->colorScheme = COLORSCHEME_MONOCHROME; 219353: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 21935a: c7 40 2c 01 00 00 00 movl $0x1,0x2c(%rax) #ifdef HAVE_GETMOUSE if (!flags.enableMouse) 219361: f6 45 e5 01 testb $0x1,-0x1b(%rbp) 219365: 0f 85 0b 00 00 00 jne 219376 settings->enableMouse = false; 21936b: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 219372: c6 40 62 00 movb $0x0,0x62(%rax) #endif if (flags.treeView) 219376: f6 45 e6 01 testb $0x1,-0x1a(%rbp) 21937a: 0f 84 0b 00 00 00 je 21938b settings->treeView = true; 219380: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 219387: c6 40 4a 01 movb $0x1,0x4a(%rax) if (flags.highlightChanges) 21938b: f6 45 e8 01 testb $0x1,-0x18(%rbp) 21938f: 0f 84 0b 00 00 00 je 2193a0 settings->highlightChanges = true; 219395: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 21939c: c6 40 56 01 movb $0x1,0x56(%rax) if (flags.highlightDelaySecs != -1) 2193a0: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 2193a4: 0f 84 0d 00 00 00 je 2193b7 settings->highlightDelaySecs = flags.highlightDelaySecs; 2193aa: 8b 4d ec mov -0x14(%rbp),%ecx 2193ad: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 2193b4: 89 48 58 mov %ecx,0x58(%rax) if (flags.sortKey > 0) { 2193b7: 83 7d dc 00 cmpl $0x0,-0x24(%rbp) 2193bb: 0f 8e 24 00 00 00 jle 2193e5 // -t -s means "tree sorted by key" // -s means "list sorted by key" (previous existing behavior) if (!flags.treeView) { 2193c1: f6 45 e6 01 testb $0x1,-0x1a(%rbp) 2193c5: 0f 85 0b 00 00 00 jne 2193d6 settings->treeView = false; 2193cb: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 2193d2: c6 40 4a 00 movb $0x0,0x4a(%rax) } Settings_setSortKey(settings, flags.sortKey); 2193d6: 48 8b bd 40 ff ff ff mov -0xc0(%rbp),%rdi 2193dd: 8b 75 dc mov -0x24(%rbp),%esi 2193e0: e8 ab cc 01 00 call 236090 } CRT_init(settings, flags.allowUnicode); 2193e5: 48 8b bd 40 ff ff ff mov -0xc0(%rbp),%rdi 2193ec: 8a 45 e7 mov -0x19(%rbp),%al 2193ef: 24 01 and $0x1,%al 2193f1: 0f b6 f0 movzbl %al,%esi 2193f4: e8 d7 29 00 00 call 21bdd0 MainPanel* panel = MainPanel_new(); 2193f9: e8 42 97 00 00 call 222b40 2193fe: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) ProcessList_setPanel(pl, (Panel*) panel); 219405: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 21940c: 48 8b b5 30 ff ff ff mov -0xd0(%rbp),%rsi 219413: e8 28 66 01 00 call 22fa40 MainPanel_updateTreeFunctions(panel, settings->treeView); 219418: 48 8b bd 30 ff ff ff mov -0xd0(%rbp),%rdi 21941f: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 219426: 8a 40 4a mov 0x4a(%rax),%al 219429: 24 01 and $0x1,%al 21942b: 0f b6 f0 movzbl %al,%esi 21942e: e8 7d 8f 00 00 call 2223b0 State state = { .settings = settings, 219433: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax State state = { 21943a: 48 89 45 98 mov %rax,-0x68(%rbp) .ut = ut, 21943e: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax State state = { 219445: 48 89 45 a0 mov %rax,-0x60(%rbp) .pl = pl, 219449: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax State state = { 219450: 48 89 45 a8 mov %rax,-0x58(%rbp) .mainPanel = panel, 219454: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax State state = { 21945b: 48 89 45 b0 mov %rax,-0x50(%rbp) .header = header, 21945f: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax State state = { 219466: 48 89 45 b8 mov %rax,-0x48(%rbp) 21946a: c6 45 c0 00 movb $0x0,-0x40(%rbp) 21946e: c6 45 c1 00 movb $0x0,-0x3f(%rbp) .pauseProcessUpdate = false, .hideProcessSelection = false, }; MainPanel_setState(panel, &state); 219472: 48 8b bd 30 ff ff ff mov -0xd0(%rbp),%rdi 219479: 48 8d 75 98 lea -0x68(%rbp),%rsi 21947d: e8 ae 97 00 00 call 222c30 if (flags.commFilter) 219482: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 219487: 0f 84 11 00 00 00 je 21949e setCommFilter(&state, &(flags.commFilter)); 21948d: 48 8d 75 c8 lea -0x38(%rbp),%rsi 219491: 48 83 c6 08 add $0x8,%rsi 219495: 48 8d 7d 98 lea -0x68(%rbp),%rdi 219499: e8 12 0b 00 00 call 219fb0 ScreenManager* scr = ScreenManager_new(header, settings, &state, true); 21949e: 48 8b bd 38 ff ff ff mov -0xc8(%rbp),%rdi 2194a5: 48 8b b5 40 ff ff ff mov -0xc0(%rbp),%rsi 2194ac: 48 8d 55 98 lea -0x68(%rbp),%rdx 2194b0: b9 01 00 00 00 mov $0x1,%ecx 2194b5: e8 b6 95 01 00 call 232a70 2194ba: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) ScreenManager_add(scr, (Panel*) panel, -1); 2194c1: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi 2194c8: 48 8b b5 30 ff ff ff mov -0xd0(%rbp),%rsi 2194cf: ba ff ff ff ff mov $0xffffffff,%edx 2194d4: e8 a7 96 01 00 call 232b80 ProcessList_scan(pl, false); 2194d9: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 2194e0: 31 f6 xor %esi,%esi 2194e2: e8 89 71 01 00 call 230670 CommandLine_delay(pl, 75); 2194e7: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 2194ee: be 4b 00 00 00 mov $0x4b,%esi 2194f3: e8 28 0b 00 00 call 21a020 ProcessList_scan(pl, false); 2194f8: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 2194ff: 31 f6 xor %esi,%esi 219501: e8 6a 71 01 00 call 230670 if (settings->allBranchesCollapsed) 219506: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 21950d: f6 40 4c 01 testb $0x1,0x4c(%rax) 219511: 0f 84 0c 00 00 00 je 219523 ProcessList_collapseAllBranches(pl); 219517: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 21951e: e8 ed 6c 01 00 call 230210 ScreenManager_run(scr, NULL, NULL); 219523: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi 21952a: 31 c0 xor %eax,%eax 21952c: 89 c2 mov %eax,%edx 21952e: 48 89 d6 mov %rdx,%rsi 219531: e8 5a 99 01 00 call 232e90 attron(CRT_colors[RESET_COLOR]); 219536: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21953e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 219546: 8b 30 mov (%rax),%esi 219548: 31 c0 xor %eax,%eax 21954a: 89 c2 mov %eax,%edx 21954c: e8 ff 4c 02 00 call 23e250 mvhline(LINES - 1, 0, ' ', COLS); 219551: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 219559: 8b 34 25 80 28 24 00 mov 0x242880,%esi 219560: 83 ee 01 sub $0x1,%esi 219563: 31 d2 xor %edx,%edx 219565: e8 26 4c 02 00 call 23e190 21956a: 83 f8 ff cmp $0xffffffff,%eax 21956d: 0f 85 05 00 00 00 jne 219578 219573: e9 19 00 00 00 jmp 219591 219578: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 219580: 8b 14 25 70 28 24 00 mov 0x242870,%edx 219587: be 20 00 00 00 mov $0x20,%esi 21958c: e8 0f 4c 02 00 call 23e1a0 attroff(CRT_colors[RESET_COLOR]); 219591: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 219599: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2195a1: 8b 30 mov (%rax),%esi 2195a3: 31 c0 xor %eax,%eax 2195a5: 89 c2 mov %eax,%edx 2195a7: e8 b4 4c 02 00 call 23e260 refresh(); 2195ac: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2195b4: e8 07 4c 02 00 call 23e1c0 Platform_done(); 2195b9: e8 02 03 02 00 call 2398c0 CRT_done(); 2195be: e8 5d 30 00 00 call 21c620 if (settings->changed) { 2195c3: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 2195ca: f6 40 68 01 testb $0x1,0x68(%rax) 2195ce: 0f 84 75 00 00 00 je 219649 int r = Settings_write(settings, false); 2195d4: 48 8b bd 40 ff ff ff mov -0xc0(%rbp),%rdi 2195db: 31 f6 xor %esi,%esi 2195dd: e8 3e a4 01 00 call 233a20 2195e2: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) if (r < 0) 2195e8: 83 bd 24 ff ff ff 00 cmpl $0x0,-0xdc(%rbp) 2195ef: 0f 8d 4f 00 00 00 jge 219644 fprintf(stderr, "Can not save configuration to %s: %s\n", settings->filename, strerror(-r)); 2195f5: 48 8b 04 25 a8 28 24 00 mov 0x2428a8,%rax 2195fd: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) 219604: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 21960b: 48 8b 00 mov (%rax),%rax 21960e: 48 89 85 18 ff ff ff mov %rax,-0xe8(%rbp) 219615: 31 ff xor %edi,%edi 219617: 2b bd 24 ff ff ff sub -0xdc(%rbp),%edi 21961d: e8 4e 4c 02 00 call 23e270 219622: 48 8b bd 10 ff ff ff mov -0xf0(%rbp),%rdi 219629: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 219630: 48 89 c1 mov %rax,%rcx 219633: 48 be 67 58 20 00 00 00 00 00 movabs $0x205867,%rsi 21963d: b0 00 mov $0x0,%al 21963f: e8 3c 4c 02 00 call 23e280 } 219644: e9 00 00 00 00 jmp 219649 Header_delete(header); 219649: 48 8b bd 38 ff ff ff mov -0xc8(%rbp),%rdi 219650: e8 2b 5f 00 00 call 21f580 ProcessList_delete(pl); 219655: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 21965c: e8 8f 15 02 00 call 23abf0 ScreenManager_delete(scr); 219661: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi 219668: e8 c3 94 01 00 call 232b30 MetersPanel_cleanup(); 21966d: e8 0e c0 00 00 call 225680 UsersTable_delete(ut); 219672: 48 8b bd 60 ff ff ff mov -0xa0(%rbp),%rdi 219679: e8 22 e9 01 00 call 237fa0 if (flags.pidMatchList) 21967e: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 219683: 0f 84 09 00 00 00 je 219692 Hashtable_delete(flags.pidMatchList); 219689: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21968d: e8 be 55 00 00 call 21ec50 CRT_resetSignalHandlers(); 219692: e8 29 26 00 00 call 21bcc0 /* Delete these last, since they can get accessed in the crash handler */ Settings_delete(settings); 219697: 48 8b bd 40 ff ff ff mov -0xc0(%rbp),%rdi 21969e: e8 9d a2 01 00 call 233940 DynamicColumns_delete(dc); 2196a3: 48 8b bd 58 ff ff ff mov -0xa8(%rbp),%rdi 2196aa: e8 f1 43 00 00 call 21daa0 DynamicMeters_delete(dm); 2196af: 48 8b bd 50 ff ff ff mov -0xb0(%rbp),%rdi 2196b6: e8 25 46 00 00 call 21dce0 return 0; 2196bb: c7 45 94 00 00 00 00 movl $0x0,-0x6c(%rbp) } 2196c2: 8b 45 94 mov -0x6c(%rbp),%eax 2196c5: 89 85 0c ff ff ff mov %eax,-0xf4(%rbp) 2196cb: 48 8b 05 5e 91 02 00 mov 0x2915e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2196d2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2196d6: 48 39 c8 cmp %rcx,%rax 2196d9: 0f 85 0f 00 00 00 jne 2196ee 2196df: 8b 85 0c ff ff ff mov -0xf4(%rbp),%eax 2196e5: 48 81 c4 00 01 00 00 add $0x100,%rsp 2196ec: 5d pop %rbp 2196ed: c3 ret 2196ee: e8 4d 4a 02 00 call 23e140 <__stack_chk_fail@plt> 2196f3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2196fd: 0f 1f 00 nopl (%rax) 0000000000219700 : static CommandLineStatus parseArguments(const char* program, int argc, char** argv, CommandLineSettings* flags) { 219700: 55 push %rbp 219701: 48 89 e5 mov %rsp,%rbp 219704: 48 81 ec c0 02 00 00 sub $0x2c0,%rsp 21970b: 48 8b 05 1e 91 02 00 mov 0x2911e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 219712: 48 89 45 f8 mov %rax,-0x8(%rbp) 219716: 48 89 bd c0 fd ff ff mov %rdi,-0x240(%rbp) 21971d: 89 b5 bc fd ff ff mov %esi,-0x244(%rbp) 219723: 48 89 95 b0 fd ff ff mov %rdx,-0x250(%rbp) 21972a: 48 89 8d a8 fd ff ff mov %rcx,-0x258(%rbp) *flags = (CommandLineSettings) { 219731: 48 8b bd a8 fd ff ff mov -0x258(%rbp),%rdi 219738: 48 c7 85 e0 fd ff ff 00 00 00 00 movq $0x0,-0x220(%rbp) 219743: 48 c7 85 e8 fd ff ff 00 00 00 00 movq $0x0,-0x218(%rbp) 21974e: c7 85 f0 fd ff ff ff ff ff ff movl $0xffffffff,-0x210(%rbp) 219758: c7 85 f4 fd ff ff 00 00 00 00 movl $0x0,-0x20c(%rbp) 219762: c7 85 f8 fd ff ff ff ff ff ff movl $0xffffffff,-0x208(%rbp) 21976c: c6 85 fc fd ff ff 01 movb $0x1,-0x204(%rbp) 219773: c6 85 fd fd ff ff 01 movb $0x1,-0x203(%rbp) 21977a: c6 85 fe fd ff ff 00 movb $0x0,-0x202(%rbp) 219781: c6 85 ff fd ff ff 01 movb $0x1,-0x201(%rbp) 219788: c6 85 00 fe ff ff 00 movb $0x0,-0x200(%rbp) 21978f: c7 85 04 fe ff ff ff ff ff ff movl $0xffffffff,-0x1fc(%rbp) 219799: c6 85 08 fe ff ff 00 movb $0x0,-0x1f8(%rbp) 2197a0: 48 8d b5 e0 fd ff ff lea -0x220(%rbp),%rsi 2197a7: ba 30 00 00 00 mov $0x30,%edx 2197ac: e8 df 4a 02 00 call 23e290 const struct option long_opts[] = 2197b1: 48 8d bd 10 fe ff ff lea -0x1f0(%rbp),%rdi 2197b8: 48 be 20 7a 20 00 00 00 00 00 movabs $0x207a20,%rsi 2197c2: ba e0 01 00 00 mov $0x1e0,%edx 2197c7: e8 c4 4a 02 00 call 23e290 int opt, opti = 0; 2197cc: c7 85 dc fd ff ff 00 00 00 00 movl $0x0,-0x224(%rbp) while ((opt = getopt_long(argc, argv, "hVMCs:td:u::Up:F:H::", long_opts, &opti))) { 2197d6: 8b bd bc fd ff ff mov -0x244(%rbp),%edi 2197dc: 48 8b b5 b0 fd ff ff mov -0x250(%rbp),%rsi 2197e3: 48 8d 8d 10 fe ff ff lea -0x1f0(%rbp),%rcx 2197ea: 48 ba 9e 54 20 00 00 00 00 00 movabs $0x20549e,%rdx 2197f4: 4c 8d 85 dc fd ff ff lea -0x224(%rbp),%r8 2197fb: e8 a0 4a 02 00 call 23e2a0 219800: 89 85 a4 fd ff ff mov %eax,-0x25c(%rbp) 219806: 83 f8 00 cmp $0x0,%eax 219809: 0f 84 57 07 00 00 je 219f66 if (opt == EOF) 21980f: 83 bd a4 fd ff ff ff cmpl $0xffffffff,-0x25c(%rbp) 219816: 0f 85 05 00 00 00 jne 219821 break; 21981c: e9 45 07 00 00 jmp 219f66 switch (opt) { 219821: 8b 85 a4 fd ff ff mov -0x25c(%rbp),%eax 219827: 83 c0 bd add $0xffffffbd,%eax 21982a: 89 c1 mov %eax,%ecx 21982c: 48 89 8d 48 fd ff ff mov %rcx,-0x2b8(%rbp) 219833: 83 e8 3d sub $0x3d,%eax 219836: 0f 87 e8 06 00 00 ja 219f24 21983c: 48 8b 85 48 fd ff ff mov -0x2b8(%rbp),%rax 219843: 48 8b 04 c5 30 78 20 00 mov 0x207830(,%rax,8),%rax 21984b: ff e0 jmp *%rax printHelpFlag(program); 21984d: 48 8b bd c0 fd ff ff mov -0x240(%rbp),%rdi 219854: e8 47 08 00 00 call 21a0a0 return STATUS_OK_EXIT; 219859: c7 85 cc fd ff ff 02 00 00 00 movl $0x2,-0x234(%rbp) 219863: e9 08 07 00 00 jmp 219f70 printVersionFlag(program); 219868: 48 8b bd c0 fd ff ff mov -0x240(%rbp),%rdi 21986f: e8 7c 08 00 00 call 21a0f0 return STATUS_OK_EXIT; 219874: c7 85 cc fd ff ff 02 00 00 00 movl $0x2,-0x234(%rbp) 21987e: e9 ed 06 00 00 jmp 219f70 if (String_eq(optarg, "help")) { 219883: 48 8b 3c 25 b0 28 24 00 mov 0x2428b0,%rdi 21988b: 48 be 8e 5f 20 00 00 00 00 00 movabs $0x205f8e,%rsi 219895: e8 86 08 00 00 call 21a120 21989a: a8 01 test $0x1,%al 21989c: 0f 85 05 00 00 00 jne 2198a7 2198a2: e9 b1 00 00 00 jmp 219958 for (int j = 1; j < LAST_PROCESSFIELD; j++) { 2198a7: c7 85 a0 fd ff ff 01 00 00 00 movl $0x1,-0x260(%rbp) 2198b1: 83 bd a0 fd ff ff 7f cmpl $0x7f,-0x260(%rbp) 2198b8: 0f 8d 8b 00 00 00 jge 219949 const char* name = Process_fields[j].name; 2198be: 48 63 8d a0 fd ff ff movslq -0x260(%rbp),%rcx 2198c5: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2198cf: 48 c1 e1 05 shl $0x5,%rcx 2198d3: 48 01 c8 add %rcx,%rax 2198d6: 48 8b 00 mov (%rax),%rax 2198d9: 48 89 85 98 fd ff ff mov %rax,-0x268(%rbp) const char* description = Process_fields[j].description; 2198e0: 48 63 8d a0 fd ff ff movslq -0x260(%rbp),%rcx 2198e7: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2198f1: 48 c1 e1 05 shl $0x5,%rcx 2198f5: 48 01 c8 add %rcx,%rax 2198f8: 48 8b 40 10 mov 0x10(%rax),%rax 2198fc: 48 89 85 90 fd ff ff mov %rax,-0x270(%rbp) if (name) printf("%19s %s\n", name, description); 219903: 48 83 bd 98 fd ff ff 00 cmpq $0x0,-0x268(%rbp) 21990b: 0f 84 1f 00 00 00 je 219930 219911: 48 8b b5 98 fd ff ff mov -0x268(%rbp),%rsi 219918: 48 8b 95 90 fd ff ff mov -0x270(%rbp),%rdx 21991f: 48 bf 75 5a 20 00 00 00 00 00 movabs $0x205a75,%rdi 219929: b0 00 mov $0x0,%al 21992b: e8 80 49 02 00 call 23e2b0 } 219930: e9 00 00 00 00 jmp 219935 for (int j = 1; j < LAST_PROCESSFIELD; j++) { 219935: 8b 85 a0 fd ff ff mov -0x260(%rbp),%eax 21993b: 83 c0 01 add $0x1,%eax 21993e: 89 85 a0 fd ff ff mov %eax,-0x260(%rbp) 219944: e9 68 ff ff ff jmp 2198b1 return STATUS_OK_EXIT; 219949: c7 85 cc fd ff ff 02 00 00 00 movl $0x2,-0x234(%rbp) 219953: e9 18 06 00 00 jmp 219f70 flags->sortKey = 0; 219958: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 21995f: c7 40 14 00 00 00 00 movl $0x0,0x14(%rax) for (int j = 1; j < LAST_PROCESSFIELD; j++) { 219966: c7 85 8c fd ff ff 01 00 00 00 movl $0x1,-0x274(%rbp) 219970: 83 bd 8c fd ff ff 7f cmpl $0x7f,-0x274(%rbp) 219977: 0f 8d 8a 00 00 00 jge 219a07 if (Process_fields[j].name == NULL) 21997d: 48 63 8d 8c fd ff ff movslq -0x274(%rbp),%rcx 219984: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 21998e: 48 c1 e1 05 shl $0x5,%rcx 219992: 48 01 c8 add %rcx,%rax 219995: 48 83 38 00 cmpq $0x0,(%rax) 219999: 0f 85 05 00 00 00 jne 2199a4 continue; 21999f: e9 4f 00 00 00 jmp 2199f3 if (String_eq(optarg, Process_fields[j].name)) { 2199a4: 48 8b 3c 25 b0 28 24 00 mov 0x2428b0,%rdi 2199ac: 48 63 8d 8c fd ff ff movslq -0x274(%rbp),%rcx 2199b3: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2199bd: 48 c1 e1 05 shl $0x5,%rcx 2199c1: 48 01 c8 add %rcx,%rax 2199c4: 48 8b 30 mov (%rax),%rsi 2199c7: e8 54 07 00 00 call 21a120 2199cc: a8 01 test $0x1,%al 2199ce: 0f 85 05 00 00 00 jne 2199d9 2199d4: e9 15 00 00 00 jmp 2199ee flags->sortKey = j; 2199d9: 8b 8d 8c fd ff ff mov -0x274(%rbp),%ecx 2199df: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 2199e6: 89 48 14 mov %ecx,0x14(%rax) break; 2199e9: e9 19 00 00 00 jmp 219a07 } 2199ee: e9 00 00 00 00 jmp 2199f3 for (int j = 1; j < LAST_PROCESSFIELD; j++) { 2199f3: 8b 85 8c fd ff ff mov -0x274(%rbp),%eax 2199f9: 83 c0 01 add $0x1,%eax 2199fc: 89 85 8c fd ff ff mov %eax,-0x274(%rbp) 219a02: e9 69 ff ff ff jmp 219970 if (flags->sortKey == 0) { 219a07: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219a0e: 83 78 14 00 cmpl $0x0,0x14(%rax) 219a12: 0f 85 30 00 00 00 jne 219a48 fprintf(stderr, "Error: invalid column \"%s\".\n", optarg); 219a18: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 219a20: 48 8b 14 25 b0 28 24 00 mov 0x2428b0,%rdx 219a28: 48 be c8 45 20 00 00 00 00 00 movabs $0x2045c8,%rsi 219a32: b0 00 mov $0x0,%al 219a34: e8 47 48 02 00 call 23e280 return STATUS_ERROR_EXIT; 219a39: c7 85 cc fd ff ff 01 00 00 00 movl $0x1,-0x234(%rbp) 219a43: e9 28 05 00 00 jmp 219f70 break; 219a48: e9 14 05 00 00 jmp 219f61 if (sscanf(optarg, "%16d", &(flags->delay)) == 1) { 219a4d: 48 8b 3c 25 b0 28 24 00 mov 0x2428b0,%rdi 219a55: 48 8b 95 a8 fd ff ff mov -0x258(%rbp),%rdx 219a5c: 48 83 c2 18 add $0x18,%rdx 219a60: 48 be 70 37 20 00 00 00 00 00 movabs $0x203770,%rsi 219a6a: b0 00 mov $0x0,%al 219a6c: e8 4f 48 02 00 call 23e2c0 219a71: 83 f8 01 cmp $0x1,%eax 219a74: 0f 85 43 00 00 00 jne 219abd if (flags->delay < 1) flags->delay = 1; 219a7a: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219a81: 83 78 18 01 cmpl $0x1,0x18(%rax) 219a85: 0f 8d 0e 00 00 00 jge 219a99 219a8b: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219a92: c7 40 18 01 00 00 00 movl $0x1,0x18(%rax) if (flags->delay > 100) flags->delay = 100; 219a99: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219aa0: 83 78 18 64 cmpl $0x64,0x18(%rax) 219aa4: 0f 8e 0e 00 00 00 jle 219ab8 219aaa: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219ab1: c7 40 18 64 00 00 00 movl $0x64,0x18(%rax) } else { 219ab8: e9 30 00 00 00 jmp 219aed fprintf(stderr, "Error: invalid delay value \"%s\".\n", optarg); 219abd: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 219ac5: 48 8b 14 25 b0 28 24 00 mov 0x2428b0,%rdx 219acd: 48 be 97 58 20 00 00 00 00 00 movabs $0x205897,%rsi 219ad7: b0 00 mov $0x0,%al 219ad9: e8 a2 47 02 00 call 23e280 return STATUS_ERROR_EXIT; 219ade: c7 85 cc fd ff ff 01 00 00 00 movl $0x1,-0x234(%rbp) 219ae8: e9 83 04 00 00 jmp 219f70 break; 219aed: e9 6f 04 00 00 jmp 219f61 const char *username = optarg; 219af2: 48 8b 04 25 b0 28 24 00 mov 0x2428b0,%rax 219afa: 48 89 85 80 fd ff ff mov %rax,-0x280(%rbp) if (!username && optind < argc && argv[optind] != NULL && 219b01: 48 83 bd 80 fd ff ff 00 cmpq $0x0,-0x280(%rbp) 219b09: 0f 85 93 00 00 00 jne 219ba2 219b0f: 8b 04 25 b8 28 24 00 mov 0x2428b8,%eax 219b16: 3b 85 bc fd ff ff cmp -0x244(%rbp),%eax 219b1c: 0f 8d 80 00 00 00 jge 219ba2 219b22: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219b29: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219b31: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 219b36: 0f 84 66 00 00 00 je 219ba2 (argv[optind][0] != '\0' && argv[optind][0] != '-')) { 219b3c: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219b43: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219b4b: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219b4f: 0f be 00 movsbl (%rax),%eax 219b52: 83 f8 00 cmp $0x0,%eax 219b55: 0f 84 47 00 00 00 je 219ba2 219b5b: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219b62: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219b6a: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219b6e: 0f be 00 movsbl (%rax),%eax 219b71: 83 f8 2d cmp $0x2d,%eax if (!username && optind < argc && argv[optind] != NULL && 219b74: 0f 84 28 00 00 00 je 219ba2 username = argv[optind++]; 219b7a: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219b81: 8b 0c 25 b8 28 24 00 mov 0x2428b8,%ecx 219b88: 89 ca mov %ecx,%edx 219b8a: 83 c2 01 add $0x1,%edx 219b8d: 89 14 25 b8 28 24 00 mov %edx,0x2428b8 219b94: 48 63 c9 movslq %ecx,%rcx 219b97: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219b9b: 48 89 85 80 fd ff ff mov %rax,-0x280(%rbp) if (!username) { 219ba2: 48 83 bd 80 fd ff ff 00 cmpq $0x0,-0x280(%rbp) 219baa: 0f 85 16 00 00 00 jne 219bc6 flags->userId = geteuid(); 219bb0: e8 1b 47 02 00 call 23e2d0 219bb5: 89 c1 mov %eax,%ecx 219bb7: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219bbe: 89 48 10 mov %ecx,0x10(%rax) } else if (!Action_setUserOnly(username, &(flags->userId))) { 219bc1: e9 c2 00 00 00 jmp 219c88 219bc6: 48 8b bd 80 fd ff ff mov -0x280(%rbp),%rdi 219bcd: 48 8b b5 a8 fd ff ff mov -0x258(%rbp),%rsi 219bd4: 48 83 c6 10 add $0x10,%rsi 219bd8: e8 d3 a3 ff ff call 213fb0 219bdd: a8 01 test $0x1,%al 219bdf: 0f 85 9e 00 00 00 jne 219c83 for (const char *itr = username; *itr; ++itr) 219be5: 48 8b 85 80 fd ff ff mov -0x280(%rbp),%rax 219bec: 48 89 85 78 fd ff ff mov %rax,-0x288(%rbp) 219bf3: 48 8b 85 78 fd ff ff mov -0x288(%rbp),%rax 219bfa: 80 38 00 cmpb $0x0,(%rax) 219bfd: 0f 84 68 00 00 00 je 219c6b if (!isdigit((unsigned char)*itr)) { 219c03: 48 8b 85 78 fd ff ff mov -0x288(%rbp),%rax 219c0a: 0f b6 38 movzbl (%rax),%edi 219c0d: be 00 04 00 00 mov $0x400,%esi 219c12: e8 39 05 00 00 call 21a150 <__sbistype> 219c17: 83 f8 00 cmp $0x0,%eax 219c1a: 0f 85 2f 00 00 00 jne 219c4f fprintf(stderr, "Error: invalid user \"%s\".\n", username); 219c20: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 219c28: 48 8b 95 80 fd ff ff mov -0x280(%rbp),%rdx 219c2f: 48 be 4e 35 20 00 00 00 00 00 movabs $0x20354e,%rsi 219c39: b0 00 mov $0x0,%al 219c3b: e8 40 46 02 00 call 23e280 return STATUS_ERROR_EXIT; 219c40: c7 85 cc fd ff ff 01 00 00 00 movl $0x1,-0x234(%rbp) 219c4a: e9 21 03 00 00 jmp 219f70 if (!isdigit((unsigned char)*itr)) { 219c4f: e9 00 00 00 00 jmp 219c54 for (const char *itr = username; *itr; ++itr) 219c54: 48 8b 85 78 fd ff ff mov -0x288(%rbp),%rax 219c5b: 48 83 c0 01 add $0x1,%rax 219c5f: 48 89 85 78 fd ff ff mov %rax,-0x288(%rbp) 219c66: e9 88 ff ff ff jmp 219bf3 flags->userId = atol(username); 219c6b: 48 8b bd 80 fd ff ff mov -0x280(%rbp),%rdi 219c72: e8 69 46 02 00 call 23e2e0 219c77: 89 c1 mov %eax,%ecx 219c79: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219c80: 89 48 10 mov %ecx,0x10(%rax) 219c83: e9 00 00 00 00 jmp 219c88 break; 219c88: e9 d4 02 00 00 jmp 219f61 flags->useColors = false; 219c8d: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219c94: c6 40 1c 00 movb $0x0,0x1c(%rax) break; 219c98: e9 c4 02 00 00 jmp 219f61 flags->enableMouse = false; 219c9d: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219ca4: c6 40 1d 00 movb $0x0,0x1d(%rax) break; 219ca8: e9 b4 02 00 00 jmp 219f61 flags->allowUnicode = false; 219cad: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219cb4: c6 40 1f 00 movb $0x0,0x1f(%rax) break; 219cb8: e9 a4 02 00 00 jmp 219f61 flags->treeView = true; 219cbd: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219cc4: c6 40 1e 01 movb $0x1,0x1e(%rax) break; 219cc8: e9 94 02 00 00 jmp 219f61 char* argCopy = xStrdup(optarg); 219ccd: 48 8b 3c 25 b0 28 24 00 mov 0x2428b0,%rdi 219cd5: e8 16 f3 01 00 call 238ff0 219cda: 48 89 85 70 fd ff ff mov %rax,-0x290(%rbp) const char* pid = strtok_r(argCopy, ",", &saveptr); 219ce1: 48 8b bd 70 fd ff ff mov -0x290(%rbp),%rdi 219ce8: 48 be 43 43 20 00 00 00 00 00 movabs $0x204343,%rsi 219cf2: 48 8d 95 d0 fd ff ff lea -0x230(%rbp),%rdx 219cf9: e8 f2 45 02 00 call 23e2f0 219cfe: 48 89 85 68 fd ff ff mov %rax,-0x298(%rbp) if (!flags->pidMatchList) { 219d05: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219d0c: 48 83 38 00 cmpq $0x0,(%rax) 219d10: 0f 85 19 00 00 00 jne 219d2f flags->pidMatchList = Hashtable_new(8, false); 219d16: bf 08 00 00 00 mov $0x8,%edi 219d1b: 31 f6 xor %esi,%esi 219d1d: e8 ee 4d 00 00 call 21eb10 219d22: 48 89 c1 mov %rax,%rcx 219d25: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219d2c: 48 89 08 mov %rcx,(%rax) while(pid) { 219d2f: e9 00 00 00 00 jmp 219d34 219d34: 48 83 bd 68 fd ff ff 00 cmpq $0x0,-0x298(%rbp) 219d3c: 0f 84 52 00 00 00 je 219d94 unsigned int num_pid = atoi(pid); 219d42: 48 8b bd 68 fd ff ff mov -0x298(%rbp),%rdi 219d49: e8 b2 45 02 00 call 23e300 219d4e: 89 85 64 fd ff ff mov %eax,-0x29c(%rbp) Hashtable_put(flags->pidMatchList, num_pid, (void *) 1); 219d54: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219d5b: 48 8b 38 mov (%rax),%rdi 219d5e: 8b b5 64 fd ff ff mov -0x29c(%rbp),%esi 219d64: ba 01 00 00 00 mov $0x1,%edx 219d69: e8 c2 52 00 00 call 21f030 pid = strtok_r(NULL, ",", &saveptr); 219d6e: 31 c0 xor %eax,%eax 219d70: 89 c7 mov %eax,%edi 219d72: 48 be 43 43 20 00 00 00 00 00 movabs $0x204343,%rsi 219d7c: 48 8d 95 d0 fd ff ff lea -0x230(%rbp),%rdx 219d83: e8 68 45 02 00 call 23e2f0 219d88: 48 89 85 68 fd ff ff mov %rax,-0x298(%rbp) while(pid) { 219d8f: e9 a0 ff ff ff jmp 219d34 free(argCopy); 219d94: 48 8b bd 70 fd ff ff mov -0x290(%rbp),%rdi 219d9b: e8 c0 43 02 00 call 23e160 break; 219da0: e9 bc 01 00 00 jmp 219f61 free_and_xStrdup(&flags->commFilter, optarg); 219da5: 48 8b bd a8 fd ff ff mov -0x258(%rbp),%rdi 219dac: 48 83 c7 08 add $0x8,%rdi 219db0: 48 8b 34 25 b0 28 24 00 mov 0x2428b0,%rsi 219db8: e8 33 f8 01 00 call 2395f0 break; 219dbd: e9 9f 01 00 00 jmp 219f61 const char *delay = optarg; 219dc2: 48 8b 04 25 b0 28 24 00 mov 0x2428b0,%rax 219dca: 48 89 85 58 fd ff ff mov %rax,-0x2a8(%rbp) if (!delay && optind < argc && argv[optind] != NULL && 219dd1: 48 83 bd 58 fd ff ff 00 cmpq $0x0,-0x2a8(%rbp) 219dd9: 0f 85 93 00 00 00 jne 219e72 219ddf: 8b 04 25 b8 28 24 00 mov 0x2428b8,%eax 219de6: 3b 85 bc fd ff ff cmp -0x244(%rbp),%eax 219dec: 0f 8d 80 00 00 00 jge 219e72 219df2: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219df9: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219e01: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 219e06: 0f 84 66 00 00 00 je 219e72 (argv[optind][0] != '\0' && argv[optind][0] != '-')) { 219e0c: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219e13: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219e1b: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219e1f: 0f be 00 movsbl (%rax),%eax 219e22: 83 f8 00 cmp $0x0,%eax 219e25: 0f 84 47 00 00 00 je 219e72 219e2b: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219e32: 48 63 0c 25 b8 28 24 00 movslq 0x2428b8,%rcx 219e3a: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219e3e: 0f be 00 movsbl (%rax),%eax 219e41: 83 f8 2d cmp $0x2d,%eax if (!delay && optind < argc && argv[optind] != NULL && 219e44: 0f 84 28 00 00 00 je 219e72 delay = argv[optind++]; 219e4a: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 219e51: 8b 0c 25 b8 28 24 00 mov 0x2428b8,%ecx 219e58: 89 ca mov %ecx,%edx 219e5a: 83 c2 01 add $0x1,%edx 219e5d: 89 14 25 b8 28 24 00 mov %edx,0x2428b8 219e64: 48 63 c9 movslq %ecx,%rcx 219e67: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 219e6b: 48 89 85 58 fd ff ff mov %rax,-0x2a8(%rbp) if (delay) { 219e72: 48 83 bd 58 fd ff ff 00 cmpq $0x0,-0x2a8(%rbp) 219e7a: 0f 84 84 00 00 00 je 219f04 if (sscanf(delay, "%16d", &(flags->highlightDelaySecs)) == 1) { 219e80: 48 8b bd 58 fd ff ff mov -0x2a8(%rbp),%rdi 219e87: 48 8b 95 a8 fd ff ff mov -0x258(%rbp),%rdx 219e8e: 48 83 c2 24 add $0x24,%rdx 219e92: 48 be 70 37 20 00 00 00 00 00 movabs $0x203770,%rsi 219e9c: b0 00 mov $0x0,%al 219e9e: e8 1d 44 02 00 call 23e2c0 219ea3: 83 f8 01 cmp $0x1,%eax 219ea6: 0f 85 24 00 00 00 jne 219ed0 if (flags->highlightDelaySecs < 1) 219eac: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219eb3: 83 78 24 01 cmpl $0x1,0x24(%rax) 219eb7: 0f 8d 0e 00 00 00 jge 219ecb flags->highlightDelaySecs = 1; 219ebd: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219ec4: c7 40 24 01 00 00 00 movl $0x1,0x24(%rax) } else { 219ecb: e9 2f 00 00 00 jmp 219eff fprintf(stderr, "Error: invalid highlight delay value \"%s\".\n", delay); 219ed0: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 219ed8: 48 8b 95 58 fd ff ff mov -0x2a8(%rbp),%rdx 219edf: 48 be fa 30 20 00 00 00 00 00 movabs $0x2030fa,%rsi 219ee9: b0 00 mov $0x0,%al 219eeb: e8 90 43 02 00 call 23e280 return STATUS_ERROR_EXIT; 219ef0: c7 85 cc fd ff ff 01 00 00 00 movl $0x1,-0x234(%rbp) 219efa: e9 71 00 00 00 jmp 219f70 } 219eff: e9 00 00 00 00 jmp 219f04 flags->highlightChanges = true; 219f04: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219f0b: c6 40 20 01 movb $0x1,0x20(%rax) break; 219f0f: e9 4d 00 00 00 jmp 219f61 flags->readonly = true; 219f14: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 219f1b: c6 40 28 01 movb $0x1,0x28(%rax) break; 219f1f: e9 3d 00 00 00 jmp 219f61 if ((status = Platform_getLongOption(opt, argc, argv)) != STATUS_OK) 219f24: 8b bd a4 fd ff ff mov -0x25c(%rbp),%edi 219f2a: 8b b5 bc fd ff ff mov -0x244(%rbp),%esi 219f30: 48 8b 95 b0 fd ff ff mov -0x250(%rbp),%rdx 219f37: e8 44 02 00 00 call 21a180 219f3c: 89 85 54 fd ff ff mov %eax,-0x2ac(%rbp) 219f42: 83 f8 00 cmp $0x0,%eax 219f45: 0f 84 11 00 00 00 je 219f5c return status; 219f4b: 8b 85 54 fd ff ff mov -0x2ac(%rbp),%eax 219f51: 89 85 cc fd ff ff mov %eax,-0x234(%rbp) 219f57: e9 14 00 00 00 jmp 219f70 break; 219f5c: e9 00 00 00 00 jmp 219f61 while ((opt = getopt_long(argc, argv, "hVMCs:td:u::Up:F:H::", long_opts, &opti))) { 219f61: e9 70 f8 ff ff jmp 2197d6 return STATUS_OK; 219f66: c7 85 cc fd ff ff 00 00 00 00 movl $0x0,-0x234(%rbp) } 219f70: 8b 85 cc fd ff ff mov -0x234(%rbp),%eax 219f76: 89 85 44 fd ff ff mov %eax,-0x2bc(%rbp) 219f7c: 48 8b 05 ad 88 02 00 mov 0x288ad(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 219f83: 48 8b 4d f8 mov -0x8(%rbp),%rcx 219f87: 48 39 c8 cmp %rcx,%rax 219f8a: 0f 85 0f 00 00 00 jne 219f9f 219f90: 8b 85 44 fd ff ff mov -0x2bc(%rbp),%eax 219f96: 48 81 c4 c0 02 00 00 add $0x2c0,%rsp 219f9d: 5d pop %rbp 219f9e: c3 ret 219f9f: e8 9c 41 02 00 call 23e140 <__stack_chk_fail@plt> 219fa4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 219fae: 66 90 xchg %ax,%ax 0000000000219fb0 : static void setCommFilter(State* state, char** commFilter) { 219fb0: 55 push %rbp 219fb1: 48 89 e5 mov %rsp,%rbp 219fb4: 48 83 ec 20 sub $0x20,%rsp 219fb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 219fbc: 48 89 75 f0 mov %rsi,-0x10(%rbp) ProcessList* pl = state->pl; 219fc0: 48 8b 45 f8 mov -0x8(%rbp),%rax 219fc4: 48 8b 40 10 mov 0x10(%rax),%rax 219fc8: 48 89 45 e8 mov %rax,-0x18(%rbp) IncSet* inc = state->mainPanel->inc; 219fcc: 48 8b 45 f8 mov -0x8(%rbp),%rax 219fd0: 48 8b 40 18 mov 0x18(%rax),%rax 219fd4: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 219fdb: 48 89 45 e0 mov %rax,-0x20(%rbp) IncSet_setFilter(inc, *commFilter); 219fdf: 48 8b 7d e0 mov -0x20(%rbp),%rdi 219fe3: 48 8b 45 f0 mov -0x10(%rbp),%rax 219fe7: 48 8b 30 mov (%rax),%rsi 219fea: e8 c1 68 00 00 call 2208b0 pl->incFilter = IncSet_filter(inc); 219fef: 48 8b 7d e0 mov -0x20(%rbp),%rdi 219ff3: e8 78 02 00 00 call 21a270 219ff8: 48 89 c1 mov %rax,%rcx 219ffb: 48 8b 45 e8 mov -0x18(%rbp),%rax 219fff: 48 89 48 78 mov %rcx,0x78(%rax) free(*commFilter); 21a003: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a007: 48 8b 38 mov (%rax),%rdi 21a00a: e8 51 41 02 00 call 23e160 *commFilter = NULL; 21a00f: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a013: 48 c7 00 00 00 00 00 movq $0x0,(%rax) } 21a01a: 48 83 c4 20 add $0x20,%rsp 21a01e: 5d pop %rbp 21a01f: c3 ret 000000000021a020 : static void CommandLine_delay(ProcessList* pl, unsigned long millisec) { 21a020: 55 push %rbp 21a021: 48 89 e5 mov %rsp,%rbp 21a024: 48 83 ec 30 sub $0x30,%rsp 21a028: 48 8b 05 01 88 02 00 mov 0x28801(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a02f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21a033: 48 89 7d e0 mov %rdi,-0x20(%rbp) 21a037: 48 89 75 d8 mov %rsi,-0x28(%rbp) struct timespec req = { 21a03b: 48 c7 45 e8 00 00 00 00 movq $0x0,-0x18(%rbp) .tv_nsec = millisec * 1000000L 21a043: 48 69 45 d8 40 42 0f 00 imul $0xf4240,-0x28(%rbp),%rax struct timespec req = { 21a04b: 48 89 45 f0 mov %rax,-0x10(%rbp) while (nanosleep(&req, &req) == -1) 21a04f: 48 8d 75 e8 lea -0x18(%rbp),%rsi 21a053: 48 89 f7 mov %rsi,%rdi 21a056: e8 b5 42 02 00 call 23e310 21a05b: 83 f8 ff cmp $0xffffffff,%eax 21a05e: 0f 85 05 00 00 00 jne 21a069 continue; 21a064: e9 e6 ff ff ff jmp 21a04f Platform_gettime_realtime(&pl->realtime, &pl->realtimeMs); 21a069: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21a06d: 48 83 c7 48 add $0x48,%rdi 21a071: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21a075: 48 83 c6 58 add $0x58,%rsi 21a079: e8 32 02 00 00 call 21a2b0 21a07e: 48 8b 05 ab 87 02 00 mov 0x287ab(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a085: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21a089: 48 39 c8 cmp %rcx,%rax 21a08c: 0f 85 06 00 00 00 jne 21a098 } 21a092: 48 83 c4 30 add $0x30,%rsp 21a096: 5d pop %rbp 21a097: c3 ret 21a098: e8 a3 40 02 00 call 23e140 <__stack_chk_fail@plt> 21a09d: 0f 1f 00 nopl (%rax) 000000000021a0a0 : static void printHelpFlag(const char* name) { 21a0a0: 55 push %rbp 21a0a1: 48 89 e5 mov %rsp,%rbp 21a0a4: 48 83 ec 10 sub $0x10,%rsp 21a0a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) "-V --version Print version info\n", name); 21a0ac: 48 8b 75 f8 mov -0x8(%rbp),%rsi printf("%s " VERSION "\n" 21a0b0: 48 bf a5 5f 20 00 00 00 00 00 movabs $0x205fa5,%rdi 21a0ba: b0 00 mov $0x0,%al 21a0bc: e8 ef 41 02 00 call 23e2b0 Platform_longOptionsUsage(name); 21a0c1: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21a0c5: e8 d6 00 00 00 call 21a1a0 "See 'man %s' for more information.\n", name, name); 21a0ca: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21a0ce: 48 8b 55 f8 mov -0x8(%rbp),%rdx printf("\n" 21a0d2: 48 bf 7e 6a 20 00 00 00 00 00 movabs $0x206a7e,%rdi 21a0dc: b0 00 mov $0x0,%al 21a0de: e8 cd 41 02 00 call 23e2b0 } 21a0e3: 48 83 c4 10 add $0x10,%rsp 21a0e7: 5d pop %rbp 21a0e8: c3 ret 21a0e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021a0f0 : static void printVersionFlag(const char* name) { 21a0f0: 55 push %rbp 21a0f1: 48 89 e5 mov %rsp,%rbp 21a0f4: 48 83 ec 10 sub $0x10,%rsp 21a0f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) printf("%s " VERSION "\n", name); 21a0fc: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21a100: 48 bf 56 33 20 00 00 00 00 00 movabs $0x203356,%rdi 21a10a: b0 00 mov $0x0,%al 21a10c: e8 9f 41 02 00 call 23e2b0 } 21a111: 48 83 c4 10 add $0x10,%rsp 21a115: 5d pop %rbp 21a116: c3 ret 21a117: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000021a120 : static inline bool String_eq(const char* s1, const char* s2) { 21a120: 55 push %rbp 21a121: 48 89 e5 mov %rsp,%rbp 21a124: 48 83 ec 10 sub $0x10,%rsp 21a128: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a12c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 21a130: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21a134: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21a138: e8 a3 40 02 00 call 23e1e0 21a13d: 83 f8 00 cmp $0x0,%eax 21a140: 0f 94 c0 sete %al 21a143: 24 01 and $0x1,%al 21a145: 0f b6 c0 movzbl %al,%eax 21a148: 48 83 c4 10 add $0x10,%rsp 21a14c: 5d pop %rbp 21a14d: c3 ret 21a14e: 66 90 xchg %ax,%ax 000000000021a150 <__sbistype>: { 21a150: 55 push %rbp 21a151: 48 89 e5 mov %rsp,%rbp 21a154: 48 83 ec 10 sub $0x10,%rsp 21a158: 89 7d fc mov %edi,-0x4(%rbp) 21a15b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 21a15f: 8b 7d fc mov -0x4(%rbp),%edi 21a162: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21a166: e8 45 00 00 00 call 21a1b0 <__sbmaskrune> 21a16b: 83 f8 00 cmp $0x0,%eax 21a16e: 0f 95 c0 setne %al 21a171: 34 ff xor $0xff,%al 21a173: 34 ff xor $0xff,%al 21a175: 24 01 and $0x1,%al 21a177: 0f b6 c0 movzbl %al,%eax 21a17a: 48 83 c4 10 add $0x10,%rsp 21a17e: 5d pop %rbp 21a17f: c3 ret 000000000021a180 : #define PLATFORM_LONG_OPTIONS static inline void Platform_longOptionsUsage(ATTR_UNUSED const char* name) { } static inline CommandLineStatus Platform_getLongOption(ATTR_UNUSED int opt, ATTR_UNUSED int argc, ATTR_UNUSED char** argv) { 21a180: 55 push %rbp 21a181: 48 89 e5 mov %rsp,%rbp 21a184: 89 7d fc mov %edi,-0x4(%rbp) 21a187: 89 75 f8 mov %esi,-0x8(%rbp) 21a18a: 48 89 55 f0 mov %rdx,-0x10(%rbp) return STATUS_ERROR_EXIT; 21a18e: b8 01 00 00 00 mov $0x1,%eax 21a193: 5d pop %rbp 21a194: c3 ret 21a195: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a19f: 90 nop 000000000021a1a0 : static inline void Platform_longOptionsUsage(ATTR_UNUSED const char* name) { } 21a1a0: 55 push %rbp 21a1a1: 48 89 e5 mov %rsp,%rbp 21a1a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a1a8: 5d pop %rbp 21a1a9: c3 ret 21a1aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021a1b0 <__sbmaskrune>: { 21a1b0: 55 push %rbp 21a1b1: 48 89 e5 mov %rsp,%rbp 21a1b4: 48 83 ec 20 sub $0x20,%rsp 21a1b8: 89 7d fc mov %edi,-0x4(%rbp) 21a1bb: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21a1bf: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 21a1c3: 0f 8c 10 00 00 00 jl 21a1d9 <__sbmaskrune+0x29> 21a1c9: 8b 45 fc mov -0x4(%rbp),%eax 21a1cc: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 21a1d3: 0f 8c 0b 00 00 00 jl 21a1e4 <__sbmaskrune+0x34> 21a1d9: 31 c0 xor %eax,%eax 21a1db: 48 89 45 e8 mov %rax,-0x18(%rbp) 21a1df: e9 16 00 00 00 jmp 21a1fa <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 21a1e4: e8 27 00 00 00 call 21a210 <__getCurrentRuneLocale> 21a1e9: 48 63 4d fc movslq -0x4(%rbp),%rcx 21a1ed: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 21a1f2: 48 23 45 f0 and -0x10(%rbp),%rax 21a1f6: 48 89 45 e8 mov %rax,-0x18(%rbp) 21a1fa: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 21a1fe: 48 83 c4 20 add $0x20,%rsp 21a202: 5d pop %rbp 21a203: c3 ret 21a204: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a20e: 66 90 xchg %ax,%ax 000000000021a210 <__getCurrentRuneLocale>: { 21a210: 55 push %rbp 21a211: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 21a214: 48 8b 0d 95 5a 02 00 mov 0x25a95(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 21a21b: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 21a224: 48 8b 04 08 mov (%rax,%rcx,1),%rax 21a228: 48 83 f8 00 cmp $0x0,%rax 21a22c: 0f 84 1d 00 00 00 je 21a24f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 21a232: 48 8b 0d 77 5a 02 00 mov 0x25a77(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 21a239: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 21a242: 48 8b 04 08 mov (%rax,%rcx,1),%rax 21a246: 48 89 45 f8 mov %rax,-0x8(%rbp) 21a24a: e9 0c 00 00 00 jmp 21a25b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 21a24f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 21a257: 48 89 45 f8 mov %rax,-0x8(%rbp) } 21a25b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a25f: 5d pop %rbp 21a260: c3 ret 21a261: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a26b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021a270 : static inline const char* IncSet_filter(const IncSet* this) { 21a270: 55 push %rbp 21a271: 48 89 e5 mov %rsp,%rbp 21a274: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->filtering ? this->modes[INC_FILTER].buffer : NULL; 21a278: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a27c: f6 80 90 00 00 00 01 testb $0x1,0x90(%rax) 21a283: 0f 84 11 00 00 00 je 21a29a 21a289: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a28d: 48 83 c0 40 add $0x40,%rax 21a291: 48 89 45 f0 mov %rax,-0x10(%rbp) 21a295: e9 0b 00 00 00 jmp 21a2a5 21a29a: 31 c0 xor %eax,%eax 21a29c: 48 89 45 f0 mov %rax,-0x10(%rbp) 21a2a0: e9 00 00 00 00 jmp 21a2a5 21a2a5: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a2a9: 5d pop %rbp 21a2aa: c3 ret 21a2ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021a2b0 : } static inline void Platform_gettime_realtime(struct timeval* tv, uint64_t* msec) { 21a2b0: 55 push %rbp 21a2b1: 48 89 e5 mov %rsp,%rbp 21a2b4: 48 83 ec 10 sub $0x10,%rsp 21a2b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a2bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) Generic_gettime_realtime(tv, msec); 21a2c0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21a2c4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21a2c8: e8 23 27 02 00 call 23c9f0 } 21a2cd: 48 83 c4 10 add $0x10,%rsp 21a2d1: 5d pop %rbp 21a2d2: c3 ret 21a2d3: cc int3 21a2d4: cc int3 21a2d5: cc int3 21a2d6: cc int3 21a2d7: cc int3 21a2d8: cc int3 21a2d9: cc int3 21a2da: cc int3 21a2db: cc int3 21a2dc: cc int3 21a2dd: cc int3 21a2de: cc int3 21a2df: cc int3 000000000021a2e0 : CommandScreen* CommandScreen_new(Process* process) { CommandScreen* this = AllocThis(CommandScreen); return (CommandScreen*) InfoScreen_init(&this->super, process, NULL, LINES - 2, " "); } void CommandScreen_delete(Object* this) { 21a2e0: 55 push %rbp 21a2e1: 48 89 e5 mov %rsp,%rbp 21a2e4: 48 83 ec 10 sub $0x10,%rsp 21a2e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(InfoScreen_done((InfoScreen*)this)); 21a2ec: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21a2f0: e8 7b 71 00 00 call 221470 21a2f5: 48 89 c7 mov %rax,%rdi 21a2f8: e8 63 3e 02 00 call 23e160 } 21a2fd: 48 83 c4 10 add $0x10,%rsp 21a301: 5d pop %rbp 21a302: c3 ret 21a303: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a30d: 0f 1f 00 nopl (%rax) 000000000021a310 : static void CommandScreen_scan(InfoScreen* this) { 21a310: 55 push %rbp 21a311: 48 89 e5 mov %rsp,%rbp 21a314: 48 83 ec 60 sub $0x60,%rsp 21a318: 48 8b 05 11 85 02 00 mov 0x28511(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a31f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21a323: 48 89 7d f0 mov %rdi,-0x10(%rbp) Panel* panel = this->display; 21a327: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a32b: 48 8b 40 10 mov 0x10(%rax),%rax 21a32f: 48 89 45 e8 mov %rax,-0x18(%rbp) int idx = MAXIMUM(Panel_getSelectedIndex(panel), 0); 21a333: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21a337: e8 44 de 00 00 call 228180 21a33c: 83 f8 00 cmp $0x0,%eax 21a33f: 0f 8e 11 00 00 00 jle 21a356 21a345: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21a349: e8 32 de 00 00 call 228180 21a34e: 89 45 b8 mov %eax,-0x48(%rbp) 21a351: e9 0a 00 00 00 jmp 21a360 21a356: 31 c0 xor %eax,%eax 21a358: 89 45 b8 mov %eax,-0x48(%rbp) 21a35b: e9 00 00 00 00 jmp 21a360 21a360: 8b 45 b8 mov -0x48(%rbp),%eax 21a363: 89 45 e4 mov %eax,-0x1c(%rbp) Panel_prune(panel); 21a366: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21a36a: e8 21 db 00 00 call 227e90 const char* p = Process_getCommand(this->process); 21a36f: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a373: 48 8b 40 08 mov 0x8(%rax),%rax 21a377: 48 8b 00 mov (%rax),%rax 21a37a: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 21a37f: 0f 84 22 00 00 00 je 21a3a7 21a385: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a389: 48 8b 40 08 mov 0x8(%rax),%rax 21a38d: 48 8b 00 mov (%rax),%rax 21a390: 48 8b 40 30 mov 0x30(%rax),%rax 21a394: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21a398: 48 8b 79 08 mov 0x8(%rcx),%rdi 21a39c: ff d0 call *%rax 21a39e: 48 89 45 b0 mov %rax,-0x50(%rbp) 21a3a2: e9 11 00 00 00 jmp 21a3b8 21a3a7: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a3ab: 48 8b 78 08 mov 0x8(%rax),%rdi 21a3af: e8 cc 3f 01 00 call 22e380 21a3b4: 48 89 45 b0 mov %rax,-0x50(%rbp) 21a3b8: 48 8b 45 b0 mov -0x50(%rbp),%rax 21a3bc: 48 89 45 d8 mov %rax,-0x28(%rbp) char line[COLS + 1]; 21a3c0: 8b 05 aa 84 02 00 mov 0x284aa(%rip),%eax # 242870 21a3c6: 83 c0 01 add $0x1,%eax 21a3c9: 48 89 e1 mov %rsp,%rcx 21a3cc: 48 89 4d d0 mov %rcx,-0x30(%rbp) 21a3d0: 48 89 c2 mov %rax,%rdx 21a3d3: 48 83 c2 0f add $0xf,%rdx 21a3d7: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx 21a3db: 48 89 e1 mov %rsp,%rcx 21a3de: 48 29 d1 sub %rdx,%rcx 21a3e1: 48 89 4d a8 mov %rcx,-0x58(%rbp) 21a3e5: 48 89 cc mov %rcx,%rsp 21a3e8: 48 89 45 c8 mov %rax,-0x38(%rbp) int line_offset = 0, last_spc = -1, len; 21a3ec: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) 21a3f3: c7 45 c0 ff ff ff ff movl $0xffffffff,-0x40(%rbp) for (; *p != '\0'; p++, line_offset++) { 21a3fa: 48 8b 45 d8 mov -0x28(%rbp),%rax 21a3fe: 0f be 00 movsbl (%rax),%eax 21a401: 83 f8 00 cmp $0x0,%eax 21a404: 0f 84 c0 00 00 00 je 21a4ca 21a40a: 48 8b 45 a8 mov -0x58(%rbp),%rax line[line_offset] = *p; 21a40e: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21a412: 8a 11 mov (%rcx),%dl 21a414: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 21a418: 88 14 08 mov %dl,(%rax,%rcx,1) if (*p == ' ') { 21a41b: 48 8b 45 d8 mov -0x28(%rbp),%rax 21a41f: 0f be 00 movsbl (%rax),%eax 21a422: 83 f8 20 cmp $0x20,%eax 21a425: 0f 85 06 00 00 00 jne 21a431 last_spc = line_offset; 21a42b: 8b 45 c4 mov -0x3c(%rbp),%eax 21a42e: 89 45 c0 mov %eax,-0x40(%rbp) if (line_offset == COLS) { 21a431: 8b 45 c4 mov -0x3c(%rbp),%eax 21a434: 3b 04 25 70 28 24 00 cmp 0x242870,%eax 21a43b: 0f 85 6a 00 00 00 jne 21a4ab len = (last_spc == -1) ? line_offset : last_spc; 21a441: 83 7d c0 ff cmpl $0xffffffff,-0x40(%rbp) 21a445: 0f 85 0b 00 00 00 jne 21a456 21a44b: 8b 45 c4 mov -0x3c(%rbp),%eax 21a44e: 89 45 a4 mov %eax,-0x5c(%rbp) 21a451: e9 06 00 00 00 jmp 21a45c 21a456: 8b 45 c0 mov -0x40(%rbp),%eax 21a459: 89 45 a4 mov %eax,-0x5c(%rbp) 21a45c: 48 8b 75 a8 mov -0x58(%rbp),%rsi 21a460: 8b 45 a4 mov -0x5c(%rbp),%eax 21a463: 89 45 bc mov %eax,-0x44(%rbp) line[len] = '\0'; 21a466: 48 63 45 bc movslq -0x44(%rbp),%rax 21a46a: c6 04 06 00 movb $0x0,(%rsi,%rax,1) InfoScreen_addLine(this, line); 21a46e: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21a472: e8 39 72 00 00 call 2216b0 21a477: 48 8b 7d a8 mov -0x58(%rbp),%rdi line_offset -= len; 21a47b: 8b 4d bc mov -0x44(%rbp),%ecx 21a47e: 8b 45 c4 mov -0x3c(%rbp),%eax 21a481: 29 c8 sub %ecx,%eax 21a483: 89 45 c4 mov %eax,-0x3c(%rbp) last_spc = -1; 21a486: c7 45 c0 ff ff ff ff movl $0xffffffff,-0x40(%rbp) memcpy(line, p - line_offset, line_offset + 1); 21a48d: 48 8b 75 d8 mov -0x28(%rbp),%rsi 21a491: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 21a495: 31 c0 xor %eax,%eax 21a497: 48 29 c8 sub %rcx,%rax 21a49a: 48 01 c6 add %rax,%rsi 21a49d: 8b 45 c4 mov -0x3c(%rbp),%eax 21a4a0: 83 c0 01 add $0x1,%eax 21a4a3: 48 63 d0 movslq %eax,%rdx 21a4a6: e8 e5 3d 02 00 call 23e290 } 21a4ab: e9 00 00 00 00 jmp 21a4b0 for (; *p != '\0'; p++, line_offset++) { 21a4b0: 48 8b 45 d8 mov -0x28(%rbp),%rax 21a4b4: 48 83 c0 01 add $0x1,%rax 21a4b8: 48 89 45 d8 mov %rax,-0x28(%rbp) 21a4bc: 8b 45 c4 mov -0x3c(%rbp),%eax 21a4bf: 83 c0 01 add $0x1,%eax 21a4c2: 89 45 c4 mov %eax,-0x3c(%rbp) 21a4c5: e9 30 ff ff ff jmp 21a3fa if (line_offset > 0) { 21a4ca: 83 7d c4 00 cmpl $0x0,-0x3c(%rbp) 21a4ce: 0f 8e 15 00 00 00 jle 21a4e9 21a4d4: 48 8b 75 a8 mov -0x58(%rbp),%rsi line[line_offset] = '\0'; 21a4d8: 48 63 45 c4 movslq -0x3c(%rbp),%rax 21a4dc: c6 04 06 00 movb $0x0,(%rsi,%rax,1) InfoScreen_addLine(this, line); 21a4e0: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21a4e4: e8 c7 71 00 00 call 2216b0 Panel_setSelected(panel, idx); 21a4e9: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21a4ed: 8b 75 e4 mov -0x1c(%rbp),%esi 21a4f0: e8 cb dc 00 00 call 2281c0 } 21a4f5: 48 8b 45 d0 mov -0x30(%rbp),%rax 21a4f9: 48 89 c4 mov %rax,%rsp 21a4fc: 48 8b 05 2d 83 02 00 mov 0x2832d(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a503: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21a507: 48 39 c8 cmp %rcx,%rax 21a50a: 0f 85 05 00 00 00 jne 21a515 21a510: 48 89 ec mov %rbp,%rsp 21a513: 5d pop %rbp 21a514: c3 ret 21a515: e8 26 3c 02 00 call 23e140 <__stack_chk_fail@plt> 21a51a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021a520 : static void CommandScreen_draw(InfoScreen* this) { 21a520: 55 push %rbp 21a521: 48 89 e5 mov %rsp,%rbp 21a524: 48 83 ec 20 sub $0x20,%rsp 21a528: 48 89 7d f8 mov %rdi,-0x8(%rbp) InfoScreen_drawTitled(this, "Command of process %d - %s", this->process->pid, Process_getCommand(this->process)); 21a52c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a530: 48 89 45 e8 mov %rax,-0x18(%rbp) 21a534: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a538: 48 8b 40 08 mov 0x8(%rax),%rax 21a53c: 8b 40 18 mov 0x18(%rax),%eax 21a53f: 89 45 f4 mov %eax,-0xc(%rbp) 21a542: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a546: 48 8b 40 08 mov 0x8(%rax),%rax 21a54a: 48 8b 00 mov (%rax),%rax 21a54d: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 21a552: 0f 84 22 00 00 00 je 21a57a 21a558: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a55c: 48 8b 40 08 mov 0x8(%rax),%rax 21a560: 48 8b 00 mov (%rax),%rax 21a563: 48 8b 40 30 mov 0x30(%rax),%rax 21a567: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21a56b: 48 8b 79 08 mov 0x8(%rcx),%rdi 21a56f: ff d0 call *%rax 21a571: 48 89 45 e0 mov %rax,-0x20(%rbp) 21a575: e9 11 00 00 00 jmp 21a58b 21a57a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a57e: 48 8b 78 08 mov 0x8(%rax),%rdi 21a582: e8 f9 3d 01 00 call 22e380 21a587: 48 89 45 e0 mov %rax,-0x20(%rbp) 21a58b: 8b 55 f4 mov -0xc(%rbp),%edx 21a58e: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21a592: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21a596: 48 be c3 5d 20 00 00 00 00 00 movabs $0x205dc3,%rsi 21a5a0: b0 00 mov $0x0,%al 21a5a2: e8 09 6f 00 00 call 2214b0 } 21a5a7: 48 83 c4 20 add $0x20,%rsp 21a5ab: 5d pop %rbp 21a5ac: c3 ret 21a5ad: 0f 1f 00 nopl (%rax) 000000000021a5b0 : CommandScreen* CommandScreen_new(Process* process) { 21a5b0: 55 push %rbp 21a5b1: 48 89 e5 mov %rsp,%rbp 21a5b4: 48 83 ec 10 sub $0x10,%rsp 21a5b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) CommandScreen* this = AllocThis(CommandScreen); 21a5bc: bf 28 00 00 00 mov $0x28,%edi 21a5c1: e8 9a e4 01 00 call 238a60 21a5c6: 48 89 45 f0 mov %rax,-0x10(%rbp) 21a5ca: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a5ce: 48 b9 00 7c 20 00 00 00 00 00 movabs $0x207c00,%rcx 21a5d8: 48 89 08 mov %rcx,(%rax) return (CommandScreen*) InfoScreen_init(&this->super, process, NULL, LINES - 2, " "); 21a5db: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21a5df: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21a5e3: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 21a5ea: 83 e9 02 sub $0x2,%ecx 21a5ed: 31 c0 xor %eax,%eax 21a5ef: 89 c2 mov %eax,%edx 21a5f1: 49 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%r8 21a5fb: e8 60 6d 00 00 call 221360 21a600: 48 83 c4 10 add $0x10,%rsp 21a604: 5d pop %rbp 21a605: c3 ret 21a606: cc int3 21a607: cc int3 21a608: cc int3 21a609: cc int3 21a60a: cc int3 21a60b: cc int3 21a60c: cc int3 21a60d: cc int3 21a60e: cc int3 21a60f: cc int3 000000000021a610 : int Compat_faccessat(int dirfd, const char* pathname, int mode, int flags) { 21a610: 55 push %rbp 21a611: 48 89 e5 mov %rsp,%rbp 21a614: 48 81 ec 10 01 00 00 sub $0x110,%rsp 21a61b: 48 8b 05 0e 82 02 00 mov 0x2820e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a622: 48 89 45 f8 mov %rax,-0x8(%rbp) 21a626: 89 bd 10 ff ff ff mov %edi,-0xf0(%rbp) 21a62c: 48 89 b5 08 ff ff ff mov %rsi,-0xf8(%rbp) 21a633: 89 95 04 ff ff ff mov %edx,-0xfc(%rbp) 21a639: 89 8d 00 ff ff ff mov %ecx,-0x100(%rbp) #ifdef HAVE_FACCESSAT // Implementation note: AT_SYMLINK_NOFOLLOW unsupported on FreeBSD, fallback to lstat in that case errno = 0; 21a63f: e8 dc 3c 02 00 call 23e320 <__error@plt> 21a644: c7 00 00 00 00 00 movl $0x0,(%rax) ret = faccessat(dirfd, pathname, mode, flags); 21a64a: 8b bd 10 ff ff ff mov -0xf0(%rbp),%edi 21a650: 48 8b b5 08 ff ff ff mov -0xf8(%rbp),%rsi 21a657: 8b 95 04 ff ff ff mov -0xfc(%rbp),%edx 21a65d: 8b 8d 00 ff ff ff mov -0x100(%rbp),%ecx 21a663: e8 c8 3c 02 00 call 23e330 21a668: 89 85 fc fe ff ff mov %eax,-0x104(%rbp) if (!ret || errno != EINVAL) 21a66e: 83 bd fc fe ff ff 00 cmpl $0x0,-0x104(%rbp) 21a675: 0f 84 0e 00 00 00 je 21a689 21a67b: e8 a0 3c 02 00 call 23e320 <__error@plt> 21a680: 83 38 16 cmpl $0x16,(%rax) 21a683: 0f 84 11 00 00 00 je 21a69a return ret; 21a689: 8b 85 fc fe ff ff mov -0x104(%rbp),%eax 21a68f: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) 21a695: e9 84 00 00 00 jmp 21a71e #endif // Error out on unsupported configurations if (dirfd != (int)AT_FDCWD || mode != F_OK) { 21a69a: 83 bd 10 ff ff ff 9c cmpl $0xffffff9c,-0xf0(%rbp) 21a6a1: 0f 85 0d 00 00 00 jne 21a6b4 21a6a7: 83 bd 04 ff ff ff 00 cmpl $0x0,-0xfc(%rbp) 21a6ae: 0f 84 1a 00 00 00 je 21a6ce errno = EINVAL; 21a6b4: e8 67 3c 02 00 call 23e320 <__error@plt> 21a6b9: c7 00 16 00 00 00 movl $0x16,(%rax) return -1; 21a6bf: c7 85 14 ff ff ff ff ff ff ff movl $0xffffffff,-0xec(%rbp) 21a6c9: e9 50 00 00 00 jmp 21a71e } // Fallback to stat(2)/lstat(2) depending on flags struct stat statinfo; if (flags) { 21a6ce: 83 bd 00 ff ff ff 00 cmpl $0x0,-0x100(%rbp) 21a6d5: 0f 84 1e 00 00 00 je 21a6f9 ret = lstat(pathname, &statinfo); 21a6db: 48 8b bd 08 ff ff ff mov -0xf8(%rbp),%rdi 21a6e2: 48 8d b5 18 ff ff ff lea -0xe8(%rbp),%rsi 21a6e9: e8 52 3c 02 00 call 23e340 21a6ee: 89 85 fc fe ff ff mov %eax,-0x104(%rbp) } else { 21a6f4: e9 19 00 00 00 jmp 21a712 ret = stat(pathname, &statinfo); 21a6f9: 48 8b bd 08 ff ff ff mov -0xf8(%rbp),%rdi 21a700: 48 8d b5 18 ff ff ff lea -0xe8(%rbp),%rsi 21a707: e8 44 3c 02 00 call 23e350 21a70c: 89 85 fc fe ff ff mov %eax,-0x104(%rbp) } return ret; 21a712: 8b 85 fc fe ff ff mov -0x104(%rbp),%eax 21a718: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) } 21a71e: 8b 85 14 ff ff ff mov -0xec(%rbp),%eax 21a724: 89 85 f8 fe ff ff mov %eax,-0x108(%rbp) 21a72a: 48 8b 05 ff 80 02 00 mov 0x280ff(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a731: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21a735: 48 39 c8 cmp %rcx,%rax 21a738: 0f 85 0f 00 00 00 jne 21a74d 21a73e: 8b 85 f8 fe ff ff mov -0x108(%rbp),%eax 21a744: 48 81 c4 10 01 00 00 add $0x110,%rsp 21a74b: 5d pop %rbp 21a74c: c3 ret 21a74d: e8 ee 39 02 00 call 23e140 <__stack_chk_fail@plt> 21a752: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a75c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021a760 : int Compat_fstatat(int dirfd, const char* dirpath, const char* pathname, struct stat* statbuf, int flags) { 21a760: 55 push %rbp 21a761: 48 89 e5 mov %rsp,%rbp 21a764: 48 83 ec 30 sub $0x30,%rsp 21a768: 89 7d fc mov %edi,-0x4(%rbp) 21a76b: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21a76f: 48 89 55 e8 mov %rdx,-0x18(%rbp) 21a773: 48 89 4d e0 mov %rcx,-0x20(%rbp) 21a777: 44 89 45 dc mov %r8d,-0x24(%rbp) #ifdef HAVE_FSTATAT (void)dirpath; return fstatat(dirfd, pathname, statbuf, flags); 21a77b: 8b 7d fc mov -0x4(%rbp),%edi 21a77e: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21a782: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21a786: 8b 4d dc mov -0x24(%rbp),%ecx 21a789: e8 d2 3b 02 00 call 23e360 21a78e: 48 83 c4 30 add $0x30,%rsp 21a792: 5d pop %rbp 21a793: c3 ret 21a794: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21a79e: 66 90 xchg %ax,%ax 000000000021a7a0 : ssize_t Compat_readlinkat(int dirfd, const char* dirpath, const char* pathname, char* buf, size_t bufsize) { 21a7a0: 55 push %rbp 21a7a1: 48 89 e5 mov %rsp,%rbp 21a7a4: 48 83 ec 30 sub $0x30,%rsp 21a7a8: 89 7d fc mov %edi,-0x4(%rbp) 21a7ab: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21a7af: 48 89 55 e8 mov %rdx,-0x18(%rbp) 21a7b3: 48 89 4d e0 mov %rcx,-0x20(%rbp) 21a7b7: 4c 89 45 d8 mov %r8,-0x28(%rbp) #ifdef HAVE_READLINKAT (void)dirpath; return readlinkat(dirfd, pathname, buf, bufsize); 21a7bb: 8b 7d fc mov -0x4(%rbp),%edi 21a7be: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21a7c2: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21a7c6: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21a7ca: e8 a1 3b 02 00 call 23e370 21a7cf: 48 83 c4 30 add $0x30,%rsp 21a7d3: 5d pop %rbp 21a7d4: c3 ret 21a7d5: cc int3 21a7d6: cc int3 21a7d7: cc int3 21a7d8: cc int3 21a7d9: cc int3 21a7da: cc int3 21a7db: cc int3 21a7dc: cc int3 21a7dd: cc int3 21a7de: cc int3 21a7df: cc int3 000000000021a7e0 : cpuFrequencyBuffer, (cpuFrequencyBuffer[0] && cpuTemperatureBuffer[0]) ? " " : "", cpuTemperatureBuffer); } static void CPUMeter_display(const Object* cast, RichString* out) { 21a7e0: 55 push %rbp 21a7e1: 48 89 e5 mov %rsp,%rbp 21a7e4: 48 81 ec 80 00 00 00 sub $0x80,%rsp 21a7eb: 48 8b 05 3e 80 02 00 mov 0x2803e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21a7f2: 48 89 45 f8 mov %rax,-0x8(%rbp) 21a7f6: 48 89 7d a8 mov %rdi,-0x58(%rbp) 21a7fa: 48 89 75 a0 mov %rsi,-0x60(%rbp) char buffer[50]; int len; const Meter* this = (const Meter*)cast; 21a7fe: 48 8b 45 a8 mov -0x58(%rbp),%rax 21a802: 48 89 45 90 mov %rax,-0x70(%rbp) if (this->param > this->pl->existingCPUs) { 21a806: 48 8b 45 90 mov -0x70(%rbp),%rax 21a80a: 8b 40 1c mov 0x1c(%rax),%eax 21a80d: 48 8b 4d 90 mov -0x70(%rbp),%rcx 21a811: 48 8b 49 30 mov 0x30(%rcx),%rcx 21a815: 3b 81 e4 00 00 00 cmp 0xe4(%rcx),%eax 21a81b: 0f 86 23 00 00 00 jbe 21a844 RichString_appendAscii(out, CRT_colors[METER_SHADOW], " absent"); 21a821: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a825: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a82d: 8b 70 34 mov 0x34(%rax),%esi 21a830: 48 ba 4b 3d 20 00 00 00 00 00 movabs $0x203d4b,%rdx 21a83a: e8 41 7d 01 00 call 232580 return; 21a83f: e9 59 06 00 00 jmp 21ae9d } if (this->curItems == 0) { 21a844: 48 8b 45 90 mov -0x70(%rbp),%rax 21a848: 0f b6 40 38 movzbl 0x38(%rax),%eax 21a84c: 83 f8 00 cmp $0x0,%eax 21a84f: 0f 85 23 00 00 00 jne 21a878 RichString_appendAscii(out, CRT_colors[METER_SHADOW], " offline"); 21a855: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a859: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a861: 8b 70 34 mov 0x34(%rax),%esi 21a864: 48 ba a8 41 20 00 00 00 00 00 movabs $0x2041a8,%rdx 21a86e: e8 0d 7d 01 00 call 232580 return; 21a873: e9 25 06 00 00 jmp 21ae9d } len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_NORMAL]); 21a878: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21a87c: 48 8b 45 90 mov -0x70(%rbp),%rax 21a880: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21a887: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 21a88c: be 32 00 00 00 mov $0x32,%esi 21a891: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21a89b: b0 01 mov $0x1,%al 21a89d: e8 4e ec 01 00 call 2394f0 21a8a2: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], ":"); 21a8a5: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a8a9: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a8b1: 8b 70 38 mov 0x38(%rax),%esi 21a8b4: 48 ba ac 6c 20 00 00 00 00 00 movabs $0x206cac,%rdx 21a8be: e8 bd 7c 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_NORMAL], buffer, len); 21a8c3: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a8c7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a8cf: 8b b0 24 01 00 00 mov 0x124(%rax),%esi 21a8d5: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21a8d9: 8b 4d 9c mov -0x64(%rbp),%ecx 21a8dc: e8 3f 7e 01 00 call 232720 if (this->pl->settings->detailedCPUTime) { 21a8e1: 48 8b 45 90 mov -0x70(%rbp),%rax 21a8e5: 48 8b 40 30 mov 0x30(%rax),%rax 21a8e9: 48 8b 00 mov (%rax),%rax 21a8ec: f6 40 45 01 testb $0x1,0x45(%rax) 21a8f0: 0f 84 1f 03 00 00 je 21ac15 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_KERNEL]); 21a8f6: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21a8fa: 48 8b 45 90 mov -0x70(%rbp),%rax 21a8fe: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21a905: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 21a90a: be 32 00 00 00 mov $0x32,%esi 21a90f: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21a919: b0 01 mov $0x1,%al 21a91b: e8 d0 eb 01 00 call 2394f0 21a920: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "sy:"); 21a923: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a927: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a92f: 8b 70 38 mov 0x38(%rax),%esi 21a932: 48 ba f3 4e 20 00 00 00 00 00 movabs $0x204ef3,%rdx 21a93c: e8 3f 7c 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_SYSTEM], buffer, len); 21a941: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a945: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a94d: 8b b0 28 01 00 00 mov 0x128(%rax),%esi 21a953: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21a957: 8b 4d 9c mov -0x64(%rbp),%ecx 21a95a: e8 c1 7d 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_NICE]); 21a95f: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21a963: 48 8b 45 90 mov -0x70(%rbp),%rax 21a967: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21a96e: f2 0f 10 00 movsd (%rax),%xmm0 21a972: be 32 00 00 00 mov $0x32,%esi 21a977: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21a981: b0 01 mov $0x1,%al 21a983: e8 68 eb 01 00 call 2394f0 21a988: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "ni:"); 21a98b: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a98f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a997: 8b 70 38 mov 0x38(%rax),%esi 21a99a: 48 ba 89 39 20 00 00 00 00 00 movabs $0x203989,%rdx 21a9a4: e8 d7 7b 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_NICE_TEXT], buffer, len); 21a9a9: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a9ad: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21a9b5: 8b b0 20 01 00 00 mov 0x120(%rax),%esi 21a9bb: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21a9bf: 8b 4d 9c mov -0x64(%rbp),%ecx 21a9c2: e8 59 7d 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_IRQ]); 21a9c7: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21a9cb: 48 8b 45 90 mov -0x70(%rbp),%rax 21a9cf: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21a9d6: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 21a9db: be 32 00 00 00 mov $0x32,%esi 21a9e0: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21a9ea: b0 01 mov $0x1,%al 21a9ec: e8 ff ea 01 00 call 2394f0 21a9f1: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "hi:"); 21a9f4: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21a9f8: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21aa00: 8b 70 38 mov 0x38(%rax),%esi 21aa03: 48 ba 80 6d 20 00 00 00 00 00 movabs $0x206d80,%rdx 21aa0d: e8 6e 7b 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_IRQ], buffer, len); 21aa12: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21aa16: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21aa1e: 8b b0 30 01 00 00 mov 0x130(%rax),%esi 21aa24: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21aa28: 8b 4d 9c mov -0x64(%rbp),%ecx 21aa2b: e8 f0 7c 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_SOFTIRQ]); 21aa30: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21aa34: 48 8b 45 90 mov -0x70(%rbp),%rax 21aa38: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21aa3f: f2 0f 10 40 20 movsd 0x20(%rax),%xmm0 21aa44: be 32 00 00 00 mov $0x32,%esi 21aa49: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21aa53: b0 01 mov $0x1,%al 21aa55: e8 96 ea 01 00 call 2394f0 21aa5a: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "si:"); 21aa5d: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21aa61: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21aa69: 8b 70 38 mov 0x38(%rax),%esi 21aa6c: 48 ba 54 40 20 00 00 00 00 00 movabs $0x204054,%rdx 21aa76: e8 05 7b 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_SOFTIRQ], buffer, len); 21aa7b: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21aa7f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21aa87: 8b b0 34 01 00 00 mov 0x134(%rax),%esi 21aa8d: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21aa91: 8b 4d 9c mov -0x64(%rbp),%ecx 21aa94: e8 87 7c 01 00 call 232720 if (!isnan(this->values[CPU_METER_STEAL])) { 21aa99: 48 8b 45 90 mov -0x70(%rbp),%rax 21aa9d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21aaa4: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 21aaa9: e8 52 0d 00 00 call 21b800 <__inline_isnan> 21aaae: 83 f8 00 cmp $0x0,%eax 21aab1: 0f 85 69 00 00 00 jne 21ab20 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_STEAL]); 21aab7: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21aabb: 48 8b 45 90 mov -0x70(%rbp),%rax 21aabf: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21aac6: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 21aacb: be 32 00 00 00 mov $0x32,%esi 21aad0: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21aada: b0 01 mov $0x1,%al 21aadc: e8 0f ea 01 00 call 2394f0 21aae1: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "st:"); 21aae4: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21aae8: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21aaf0: 8b 70 38 mov 0x38(%rax),%esi 21aaf3: 48 ba 80 37 20 00 00 00 00 00 movabs $0x203780,%rdx 21aafd: e8 7e 7a 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_STEAL], buffer, len); 21ab02: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ab06: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ab0e: 8b b0 38 01 00 00 mov 0x138(%rax),%esi 21ab14: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21ab18: 8b 4d 9c mov -0x64(%rbp),%ecx 21ab1b: e8 00 7c 01 00 call 232720 } if (!isnan(this->values[CPU_METER_GUEST])) { 21ab20: 48 8b 45 90 mov -0x70(%rbp),%rax 21ab24: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ab2b: f2 0f 10 40 30 movsd 0x30(%rax),%xmm0 21ab30: e8 cb 0c 00 00 call 21b800 <__inline_isnan> 21ab35: 83 f8 00 cmp $0x0,%eax 21ab38: 0f 85 69 00 00 00 jne 21aba7 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_GUEST]); 21ab3e: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21ab42: 48 8b 45 90 mov -0x70(%rbp),%rax 21ab46: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ab4d: f2 0f 10 40 30 movsd 0x30(%rax),%xmm0 21ab52: be 32 00 00 00 mov $0x32,%esi 21ab57: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21ab61: b0 01 mov $0x1,%al 21ab63: e8 88 e9 01 00 call 2394f0 21ab68: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "gu:"); 21ab6b: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ab6f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ab77: 8b 70 38 mov 0x38(%rax),%esi 21ab7a: 48 ba 84 56 20 00 00 00 00 00 movabs $0x205684,%rdx 21ab84: e8 f7 79 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_GUEST], buffer, len); 21ab89: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ab8d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ab95: 8b b0 3c 01 00 00 mov 0x13c(%rax),%esi 21ab9b: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21ab9f: 8b 4d 9c mov -0x64(%rbp),%ecx 21aba2: e8 79 7b 01 00 call 232720 } len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_IOWAIT]); 21aba7: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21abab: 48 8b 45 90 mov -0x70(%rbp),%rax 21abaf: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21abb6: f2 0f 10 40 38 movsd 0x38(%rax),%xmm0 21abbb: be 32 00 00 00 mov $0x32,%esi 21abc0: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21abca: b0 01 mov $0x1,%al 21abcc: e8 1f e9 01 00 call 2394f0 21abd1: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "wa:"); 21abd4: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21abd8: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21abe0: 8b 70 38 mov 0x38(%rax),%esi 21abe3: 48 ba de 68 20 00 00 00 00 00 movabs $0x2068de,%rdx 21abed: e8 8e 79 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_IOWAIT], buffer, len); 21abf2: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21abf6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21abfe: 8b b0 2c 01 00 00 mov 0x12c(%rax),%esi 21ac04: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21ac08: 8b 4d 9c mov -0x64(%rbp),%ecx 21ac0b: e8 10 7b 01 00 call 232720 } else { 21ac10: e9 5d 01 00 00 jmp 21ad72 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_KERNEL]); 21ac15: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21ac19: 48 8b 45 90 mov -0x70(%rbp),%rax 21ac1d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ac24: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 21ac29: be 32 00 00 00 mov $0x32,%esi 21ac2e: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21ac38: b0 01 mov $0x1,%al 21ac3a: e8 b1 e8 01 00 call 2394f0 21ac3f: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "sys:"); 21ac42: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ac46: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ac4e: 8b 70 38 mov 0x38(%rax),%esi 21ac51: 48 ba f7 6a 20 00 00 00 00 00 movabs $0x206af7,%rdx 21ac5b: e8 20 79 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_SYSTEM], buffer, len); 21ac60: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ac64: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ac6c: 8b b0 28 01 00 00 mov 0x128(%rax),%esi 21ac72: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21ac76: 8b 4d 9c mov -0x64(%rbp),%ecx 21ac79: e8 a2 7a 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_NICE]); 21ac7e: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21ac82: 48 8b 45 90 mov -0x70(%rbp),%rax 21ac86: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ac8d: f2 0f 10 00 movsd (%rax),%xmm0 21ac91: be 32 00 00 00 mov $0x32,%esi 21ac96: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21aca0: b0 01 mov $0x1,%al 21aca2: e8 49 e8 01 00 call 2394f0 21aca7: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "low:"); 21acaa: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21acae: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21acb6: 8b 70 38 mov 0x38(%rax),%esi 21acb9: 48 ba e2 68 20 00 00 00 00 00 movabs $0x2068e2,%rdx 21acc3: e8 b8 78 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_NICE_TEXT], buffer, len); 21acc8: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21accc: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21acd4: 8b b0 20 01 00 00 mov 0x120(%rax),%esi 21acda: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21acde: 8b 4d 9c mov -0x64(%rbp),%ecx 21ace1: e8 3a 7a 01 00 call 232720 if (!isnan(this->values[CPU_METER_IRQ])) { 21ace6: 48 8b 45 90 mov -0x70(%rbp),%rax 21acea: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21acf1: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 21acf6: e8 05 0b 00 00 call 21b800 <__inline_isnan> 21acfb: 83 f8 00 cmp $0x0,%eax 21acfe: 0f 85 69 00 00 00 jne 21ad6d len = xSnprintf(buffer, sizeof(buffer), "%5.1f%% ", this->values[CPU_METER_IRQ]); 21ad04: 48 8d 7d c0 lea -0x40(%rbp),%rdi 21ad08: 48 8b 45 90 mov -0x70(%rbp),%rax 21ad0c: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ad13: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 21ad18: be 32 00 00 00 mov $0x32,%esi 21ad1d: 48 ba ea 4e 20 00 00 00 00 00 movabs $0x204eea,%rdx 21ad27: b0 01 mov $0x1,%al 21ad29: e8 c2 e7 01 00 call 2394f0 21ad2e: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendAscii(out, CRT_colors[METER_TEXT], "vir:"); 21ad31: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ad35: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ad3d: 8b 70 38 mov 0x38(%rax),%esi 21ad40: 48 ba 8d 39 20 00 00 00 00 00 movabs $0x20398d,%rdx 21ad4a: e8 31 78 01 00 call 232580 RichString_appendnAscii(out, CRT_colors[CPU_GUEST], buffer, len); 21ad4f: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ad53: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ad5b: 8b b0 3c 01 00 00 mov 0x13c(%rax),%esi 21ad61: 48 8d 55 c0 lea -0x40(%rbp),%rdx 21ad65: 8b 4d 9c mov -0x64(%rbp),%ecx 21ad68: e8 b3 79 01 00 call 232720 21ad6d: e9 00 00 00 00 jmp 21ad72 } } #ifdef BUILD_WITH_CPU_TEMP if (this->pl->settings->showCPUTemperature) { 21ad72: 48 8b 45 90 mov -0x70(%rbp),%rax 21ad76: 48 8b 40 30 mov 0x30(%rax),%rax 21ad7a: 48 8b 00 mov (%rax),%rax 21ad7d: f6 40 48 01 testb $0x1,0x48(%rax) 21ad81: 0f 84 16 01 00 00 je 21ae9d char cpuTemperatureBuffer[10]; double cpuTemperature = this->values[CPU_METER_TEMPERATURE]; 21ad87: 48 8b 45 90 mov -0x70(%rbp),%rax 21ad8b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21ad92: f2 0f 10 40 48 movsd 0x48(%rax),%xmm0 21ad97: f2 0f 11 45 88 movsd %xmm0,-0x78(%rbp) if (isnan(cpuTemperature)) { 21ad9c: f2 0f 10 45 88 movsd -0x78(%rbp),%xmm0 21ada1: e8 5a 0a 00 00 call 21b800 <__inline_isnan> 21ada6: 83 f8 00 cmp $0x0,%eax 21ada9: 0f 84 22 00 00 00 je 21add1 len = xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "N/A"); 21adaf: 48 8d 7d b6 lea -0x4a(%rbp),%rdi 21adb3: be 0a 00 00 00 mov $0xa,%esi 21adb8: 48 ba 84 41 20 00 00 00 00 00 movabs $0x204184,%rdx 21adc2: b0 00 mov $0x0,%al 21adc4: e8 27 e7 01 00 call 2394f0 21adc9: 89 45 9c mov %eax,-0x64(%rbp) } else if (this->pl->settings->degreeFahrenheit) { 21adcc: e9 93 00 00 00 jmp 21ae64 21add1: 48 8b 45 90 mov -0x70(%rbp),%rax 21add5: 48 8b 40 30 mov 0x30(%rax),%rax 21add9: 48 8b 00 mov (%rax),%rax 21addc: f6 40 49 01 testb $0x1,0x49(%rax) 21ade0: 0f 84 4f 00 00 00 je 21ae35 len = xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "%5.1f%sF", cpuTemperature * 9 / 5 + 32, CRT_degreeSign); 21ade6: 48 8d 7d b6 lea -0x4a(%rbp),%rdi 21adea: f2 0f 10 05 56 c5 fe ff movsd -0x13aaa(%rip),%xmm0 # 207348 21adf2: f2 0f 59 45 88 mulsd -0x78(%rbp),%xmm0 21adf7: f2 0f 10 0d 29 c5 fe ff movsd -0x13ad7(%rip),%xmm1 # 207328 21adff: f2 0f 5e c1 divsd %xmm1,%xmm0 21ae03: f2 0f 10 0d e5 c4 fe ff movsd -0x13b1b(%rip),%xmm1 # 2072f0 21ae0b: f2 0f 58 c1 addsd %xmm1,%xmm0 21ae0f: 48 8b 0c 25 88 21 24 00 mov 0x242188,%rcx 21ae17: be 0a 00 00 00 mov $0xa,%esi 21ae1c: 48 ba 74 35 20 00 00 00 00 00 movabs $0x203574,%rdx 21ae26: b0 01 mov $0x1,%al 21ae28: e8 c3 e6 01 00 call 2394f0 21ae2d: 89 45 9c mov %eax,-0x64(%rbp) } else { 21ae30: e9 2a 00 00 00 jmp 21ae5f len = xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "%5.1f%sC", cpuTemperature, CRT_degreeSign); 21ae35: 48 8d 7d b6 lea -0x4a(%rbp),%rdi 21ae39: f2 0f 10 45 88 movsd -0x78(%rbp),%xmm0 21ae3e: 48 8b 0c 25 88 21 24 00 mov 0x242188,%rcx 21ae46: be 0a 00 00 00 mov $0xa,%esi 21ae4b: 48 ba 53 3d 20 00 00 00 00 00 movabs $0x203d53,%rdx 21ae55: b0 01 mov $0x1,%al 21ae57: e8 94 e6 01 00 call 2394f0 21ae5c: 89 45 9c mov %eax,-0x64(%rbp) 21ae5f: e9 00 00 00 00 jmp 21ae64 } RichString_appendAscii(out, CRT_colors[METER_TEXT], "temp:"); 21ae64: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ae68: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ae70: 8b 70 38 mov 0x38(%rax),%esi 21ae73: 48 ba 92 39 20 00 00 00 00 00 movabs $0x203992,%rdx 21ae7d: e8 fe 76 01 00 call 232580 RichString_appendnWide(out, CRT_colors[METER_VALUE], cpuTemperatureBuffer, len); 21ae82: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21ae86: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ae8e: 8b 70 3c mov 0x3c(%rax),%esi 21ae91: 48 8d 55 b6 lea -0x4a(%rbp),%rdx 21ae95: 8b 4d 9c mov -0x64(%rbp),%ecx 21ae98: e8 53 76 01 00 call 2324f0 21ae9d: 48 8b 05 8c 79 02 00 mov 0x2798c(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21aea4: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21aea8: 48 39 c8 cmp %rcx,%rax 21aeab: 0f 85 09 00 00 00 jne 21aeba } #endif } 21aeb1: 48 81 c4 80 00 00 00 add $0x80,%rsp 21aeb8: 5d pop %rbp 21aeb9: c3 ret 21aeba: e8 81 32 02 00 call 23e140 <__stack_chk_fail@plt> 21aebf: 90 nop 000000000021aec0 : static void CPUMeter_init(Meter* this) { 21aec0: 55 push %rbp 21aec1: 48 89 e5 mov %rsp,%rbp 21aec4: 48 83 ec 40 sub $0x40,%rsp 21aec8: 48 8b 05 61 79 02 00 mov 0x27961(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21aecf: 48 89 45 f8 mov %rax,-0x8(%rbp) 21aed3: 48 89 7d e0 mov %rdi,-0x20(%rbp) unsigned int cpu = this->param; 21aed7: 48 8b 45 e0 mov -0x20(%rbp),%rax 21aedb: 8b 40 1c mov 0x1c(%rax),%eax 21aede: 89 45 dc mov %eax,-0x24(%rbp) if (cpu == 0) { 21aee1: 83 7d dc 00 cmpl $0x0,-0x24(%rbp) 21aee5: 0f 85 18 00 00 00 jne 21af03 Meter_setCaption(this, "Avg"); 21aeeb: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21aeef: 48 be a3 44 20 00 00 00 00 00 movabs $0x2044a3,%rsi 21aef9: e8 e2 8c 00 00 call 223be0 } else if (this->pl->activeCPUs > 1) { 21aefe: e9 7b 00 00 00 jmp 21af7e 21af03: 48 8b 45 e0 mov -0x20(%rbp),%rax 21af07: 48 8b 40 30 mov 0x30(%rax),%rax 21af0b: 83 b8 e0 00 00 00 01 cmpl $0x1,0xe0(%rax) 21af12: 0f 86 61 00 00 00 jbe 21af79 xSnprintf(caption, sizeof(caption), "%3u", Settings_cpuId(this->pl->settings, cpu - 1)); 21af18: 48 8d 45 ee lea -0x12(%rbp),%rax 21af1c: 48 89 45 d0 mov %rax,-0x30(%rbp) 21af20: 48 8b 45 e0 mov -0x20(%rbp),%rax 21af24: 48 8b 40 30 mov 0x30(%rax),%rax 21af28: 48 8b 00 mov (%rax),%rax 21af2b: f6 40 44 01 testb $0x1,0x44(%rax) 21af2f: 0f 84 11 00 00 00 je 21af46 21af35: 8b 45 dc mov -0x24(%rbp),%eax 21af38: 83 e8 01 sub $0x1,%eax 21af3b: 83 c0 01 add $0x1,%eax 21af3e: 89 45 cc mov %eax,-0x34(%rbp) 21af41: e9 09 00 00 00 jmp 21af4f 21af46: 8b 45 dc mov -0x24(%rbp),%eax 21af49: 83 e8 01 sub $0x1,%eax 21af4c: 89 45 cc mov %eax,-0x34(%rbp) 21af4f: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21af53: 8b 4d cc mov -0x34(%rbp),%ecx 21af56: be 0a 00 00 00 mov $0xa,%esi 21af5b: 48 ba b1 41 20 00 00 00 00 00 movabs $0x2041b1,%rdx 21af65: b0 00 mov $0x0,%al 21af67: e8 84 e5 01 00 call 2394f0 Meter_setCaption(this, caption); 21af6c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21af70: 48 8d 75 ee lea -0x12(%rbp),%rsi 21af74: e8 67 8c 00 00 call 223be0 21af79: e9 00 00 00 00 jmp 21af7e 21af7e: 48 8b 05 ab 78 02 00 mov 0x278ab(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21af85: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21af89: 48 39 c8 cmp %rcx,%rax 21af8c: 0f 85 06 00 00 00 jne 21af98 } 21af92: 48 83 c4 40 add $0x40,%rsp 21af96: 5d pop %rbp 21af97: c3 ret 21af98: e8 a3 31 02 00 call 23e140 <__stack_chk_fail@plt> 21af9d: 0f 1f 00 nopl (%rax) 000000000021afa0 : static void CPUMeter_updateValues(Meter* this) { 21afa0: 55 push %rbp 21afa1: 48 89 e5 mov %rsp,%rbp 21afa4: 48 81 ec a0 00 00 00 sub $0xa0,%rsp 21afab: 48 8b 05 7e 78 02 00 mov 0x2787e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21afb2: 48 89 45 f8 mov %rax,-0x8(%rbp) 21afb6: 48 89 7d c8 mov %rdi,-0x38(%rbp) memset(this->values, 0, sizeof(double) * CPU_METER_ITEMCOUNT); 21afba: 48 8b 45 c8 mov -0x38(%rbp),%rax 21afbe: 48 8b b8 48 01 00 00 mov 0x148(%rax),%rdi 21afc5: 31 f6 xor %esi,%esi 21afc7: ba 50 00 00 00 mov $0x50,%edx 21afcc: e8 6f 32 02 00 call 23e240 unsigned int cpu = this->param; 21afd1: 48 8b 45 c8 mov -0x38(%rbp),%rax 21afd5: 8b 40 1c mov 0x1c(%rax),%eax 21afd8: 89 45 c4 mov %eax,-0x3c(%rbp) if (cpu > this->pl->existingCPUs) { 21afdb: 8b 45 c4 mov -0x3c(%rbp),%eax 21afde: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21afe2: 48 8b 49 30 mov 0x30(%rcx),%rcx 21afe6: 3b 81 e4 00 00 00 cmp 0xe4(%rcx),%eax 21afec: 0f 86 23 00 00 00 jbe 21b015 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "absent"); 21aff2: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21aff6: 48 83 c7 48 add $0x48,%rdi 21affa: be 00 01 00 00 mov $0x100,%esi 21afff: 48 ba 98 39 20 00 00 00 00 00 movabs $0x203998,%rdx 21b009: b0 00 mov $0x0,%al 21b00b: e8 e0 e4 01 00 call 2394f0 return; 21b010: e9 0b 03 00 00 jmp 21b320 double percent = Platform_setCPUValues(this, cpu); 21b015: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21b019: 8b 75 c4 mov -0x3c(%rbp),%esi 21b01c: e8 ff ea 01 00 call 239b20 21b021: f2 0f 11 45 b8 movsd %xmm0,-0x48(%rbp) if (isnan(percent)) { 21b026: f2 0f 10 45 b8 movsd -0x48(%rbp),%xmm0 21b02b: e8 d0 07 00 00 call 21b800 <__inline_isnan> 21b030: 83 f8 00 cmp $0x0,%eax 21b033: 0f 84 23 00 00 00 je 21b05c xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "offline"); 21b039: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21b03d: 48 83 c7 48 add $0x48,%rdi 21b041: be 00 01 00 00 mov $0x100,%esi 21b046: 48 ba 84 6d 20 00 00 00 00 00 movabs $0x206d84,%rdx 21b050: b0 00 mov $0x0,%al 21b052: e8 99 e4 01 00 call 2394f0 return; 21b057: e9 c4 02 00 00 jmp 21b320 char cpuUsageBuffer[8] = { 0 }; 21b05c: 48 8d 7d f0 lea -0x10(%rbp),%rdi 21b060: 31 f6 xor %esi,%esi 21b062: ba 08 00 00 00 mov $0x8,%edx 21b067: e8 d4 31 02 00 call 23e240 char cpuFrequencyBuffer[16] = { 0 }; 21b06c: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21b070: 31 f6 xor %esi,%esi 21b072: ba 10 00 00 00 mov $0x10,%edx 21b077: e8 c4 31 02 00 call 23e240 char cpuTemperatureBuffer[16] = { 0 }; 21b07c: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21b080: 31 f6 xor %esi,%esi 21b082: ba 10 00 00 00 mov $0x10,%edx 21b087: e8 b4 31 02 00 call 23e240 if (this->pl->settings->showCPUUsage) { 21b08c: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b090: 48 8b 40 30 mov 0x30(%rax),%rax 21b094: 48 8b 00 mov (%rax),%rax 21b097: f6 40 46 01 testb $0x1,0x46(%rax) 21b09b: 0f 84 1f 00 00 00 je 21b0c0 xSnprintf(cpuUsageBuffer, sizeof(cpuUsageBuffer), "%.1f%%", percent); 21b0a1: 48 8d 7d f0 lea -0x10(%rbp),%rdi 21b0a5: f2 0f 10 45 b8 movsd -0x48(%rbp),%xmm0 21b0aa: be 08 00 00 00 mov $0x8,%esi 21b0af: 48 ba 5c 3d 20 00 00 00 00 00 movabs $0x203d5c,%rdx 21b0b9: b0 01 mov $0x1,%al 21b0bb: e8 30 e4 01 00 call 2394f0 if (this->pl->settings->showCPUFrequency) { 21b0c0: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b0c4: 48 8b 40 30 mov 0x30(%rax),%rax 21b0c8: 48 8b 00 mov (%rax),%rax 21b0cb: f6 40 47 01 testb $0x1,0x47(%rax) 21b0cf: 0f 84 6e 00 00 00 je 21b143 double cpuFrequency = this->values[CPU_METER_FREQUENCY]; 21b0d5: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b0d9: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21b0e0: f2 0f 10 40 40 movsd 0x40(%rax),%xmm0 21b0e5: f2 0f 11 45 b0 movsd %xmm0,-0x50(%rbp) if (isnan(cpuFrequency)) { 21b0ea: f2 0f 10 45 b0 movsd -0x50(%rbp),%xmm0 21b0ef: e8 0c 07 00 00 call 21b800 <__inline_isnan> 21b0f4: 83 f8 00 cmp $0x0,%eax 21b0f7: 0f 84 1f 00 00 00 je 21b11c xSnprintf(cpuFrequencyBuffer, sizeof(cpuFrequencyBuffer), "N/A"); 21b0fd: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21b101: be 10 00 00 00 mov $0x10,%esi 21b106: 48 ba 84 41 20 00 00 00 00 00 movabs $0x204184,%rdx 21b110: b0 00 mov $0x0,%al 21b112: e8 d9 e3 01 00 call 2394f0 } else { 21b117: e9 22 00 00 00 jmp 21b13e 21b11c: 48 8d 7d e0 lea -0x20(%rbp),%rdi xSnprintf(cpuFrequencyBuffer, sizeof(cpuFrequencyBuffer), "%4uMHz", (unsigned)cpuFrequency); 21b120: f2 48 0f 2c 45 b0 cvttsd2si -0x50(%rbp),%rax 21b126: 89 c1 mov %eax,%ecx 21b128: be 10 00 00 00 mov $0x10,%esi 21b12d: 48 ba b9 58 20 00 00 00 00 00 movabs $0x2058b9,%rdx 21b137: b0 00 mov $0x0,%al 21b139: e8 b2 e3 01 00 call 2394f0 } 21b13e: e9 00 00 00 00 jmp 21b143 if (this->pl->settings->showCPUTemperature) { 21b143: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b147: 48 8b 40 30 mov 0x30(%rax),%rax 21b14b: 48 8b 00 mov (%rax),%rax 21b14e: f6 40 48 01 testb $0x1,0x48(%rax) 21b152: 0f 84 dd 00 00 00 je 21b235 double cpuTemperature = this->values[CPU_METER_TEMPERATURE]; 21b158: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b15c: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21b163: f2 0f 10 40 48 movsd 0x48(%rax),%xmm0 21b168: f2 0f 11 45 a8 movsd %xmm0,-0x58(%rbp) if (isnan(cpuTemperature)) 21b16d: f2 0f 10 45 a8 movsd -0x58(%rbp),%xmm0 21b172: e8 89 06 00 00 call 21b800 <__inline_isnan> 21b177: 83 f8 00 cmp $0x0,%eax 21b17a: 0f 84 1f 00 00 00 je 21b19f xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "N/A"); 21b180: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21b184: be 10 00 00 00 mov $0x10,%esi 21b189: 48 ba 84 41 20 00 00 00 00 00 movabs $0x204184,%rdx 21b193: b0 00 mov $0x0,%al 21b195: e8 56 e3 01 00 call 2394f0 21b19a: e9 91 00 00 00 jmp 21b230 else if (this->pl->settings->degreeFahrenheit) 21b19f: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b1a3: 48 8b 40 30 mov 0x30(%rax),%rax 21b1a7: 48 8b 00 mov (%rax),%rax 21b1aa: f6 40 49 01 testb $0x1,0x49(%rax) 21b1ae: 0f 84 50 00 00 00 je 21b204 xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "%3d%sF", (int)(cpuTemperature * 9 / 5 + 32), CRT_degreeSign); 21b1b4: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21b1b8: f2 0f 10 05 88 c1 fe ff movsd -0x13e78(%rip),%xmm0 # 207348 21b1c0: f2 0f 59 45 a8 mulsd -0x58(%rbp),%xmm0 21b1c5: f2 0f 10 0d 5b c1 fe ff movsd -0x13ea5(%rip),%xmm1 # 207328 21b1cd: f2 0f 5e c1 divsd %xmm1,%xmm0 21b1d1: f2 0f 10 0d 17 c1 fe ff movsd -0x13ee9(%rip),%xmm1 # 2072f0 21b1d9: f2 0f 58 c1 addsd %xmm1,%xmm0 21b1dd: f2 0f 2c c8 cvttsd2si %xmm0,%ecx 21b1e1: 4c 8b 04 25 88 21 24 00 mov 0x242188,%r8 21b1e9: be 10 00 00 00 mov $0x10,%esi 21b1ee: 48 ba c0 58 20 00 00 00 00 00 movabs $0x2058c0,%rdx 21b1f8: b0 00 mov $0x0,%al 21b1fa: e8 f1 e2 01 00 call 2394f0 21b1ff: e9 27 00 00 00 jmp 21b22b xSnprintf(cpuTemperatureBuffer, sizeof(cpuTemperatureBuffer), "%d%sC", (int)cpuTemperature, CRT_degreeSign); 21b204: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21b208: f2 0f 2c 4d a8 cvttsd2si -0x58(%rbp),%ecx 21b20d: 4c 8b 04 25 88 21 24 00 mov 0x242188,%r8 21b215: be 10 00 00 00 mov $0x10,%esi 21b21a: 48 ba 88 56 20 00 00 00 00 00 movabs $0x205688,%rdx 21b224: b0 00 mov $0x0,%al 21b226: e8 c5 e2 01 00 call 2394f0 21b22b: e9 00 00 00 00 jmp 21b230 } 21b230: e9 00 00 00 00 jmp 21b235 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%s%s%s%s%s", 21b235: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b239: 48 83 c0 48 add $0x48,%rax 21b23d: 48 89 45 90 mov %rax,-0x70(%rbp) cpuUsageBuffer, 21b241: 48 8d 45 f0 lea -0x10(%rbp),%rax 21b245: 48 89 45 98 mov %rax,-0x68(%rbp) (cpuUsageBuffer[0] && (cpuFrequencyBuffer[0] || cpuTemperatureBuffer[0])) ? " " : "", 21b249: 0f be 4d f0 movsbl -0x10(%rbp),%ecx 21b24d: 31 c0 xor %eax,%eax 21b24f: 83 f9 00 cmp $0x0,%ecx 21b252: 88 45 a7 mov %al,-0x59(%rbp) 21b255: 0f 84 25 00 00 00 je 21b280 21b25b: 0f be 4d e0 movsbl -0x20(%rbp),%ecx 21b25f: b0 01 mov $0x1,%al 21b261: 83 f9 00 cmp $0x0,%ecx 21b264: 88 45 8f mov %al,-0x71(%rbp) 21b267: 0f 85 0d 00 00 00 jne 21b27a 21b26d: 0f be 45 d0 movsbl -0x30(%rbp),%eax 21b271: 83 f8 00 cmp $0x0,%eax 21b274: 0f 95 c0 setne %al 21b277: 88 45 8f mov %al,-0x71(%rbp) 21b27a: 8a 45 8f mov -0x71(%rbp),%al 21b27d: 88 45 a7 mov %al,-0x59(%rbp) 21b280: 8a 55 a7 mov -0x59(%rbp),%dl 21b283: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 21b28d: 48 b9 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rcx 21b297: f6 c2 01 test $0x1,%dl 21b29a: 48 0f 45 c1 cmovne %rcx,%rax 21b29e: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) cpuFrequencyBuffer, 21b2a5: 48 8d 45 e0 lea -0x20(%rbp),%rax 21b2a9: 48 89 45 80 mov %rax,-0x80(%rbp) (cpuFrequencyBuffer[0] && cpuTemperatureBuffer[0]) ? " " : "", 21b2ad: 0f be 4d e0 movsbl -0x20(%rbp),%ecx 21b2b1: 31 c0 xor %eax,%eax 21b2b3: 83 f9 00 cmp $0x0,%ecx 21b2b6: 88 45 8e mov %al,-0x72(%rbp) 21b2b9: 0f 84 0d 00 00 00 je 21b2cc 21b2bf: 0f be 45 d0 movsbl -0x30(%rbp),%eax 21b2c3: 83 f8 00 cmp $0x0,%eax 21b2c6: 0f 95 c0 setne %al 21b2c9: 88 45 8e mov %al,-0x72(%rbp) 21b2cc: 4c 8b 4d 80 mov -0x80(%rbp),%r9 21b2d0: 4c 8b 85 78 ff ff ff mov -0x88(%rbp),%r8 21b2d7: 48 8b 4d 98 mov -0x68(%rbp),%rcx 21b2db: 48 8b 7d 90 mov -0x70(%rbp),%rdi 21b2df: 8a 55 8e mov -0x72(%rbp),%dl 21b2e2: 49 ba ff 66 20 00 00 00 00 00 movabs $0x2066ff,%r10 21b2ec: 48 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rax 21b2f6: f6 c2 01 test $0x1,%dl 21b2f9: 4c 0f 45 d0 cmovne %rax,%r10 cpuTemperatureBuffer); 21b2fd: 48 8d 45 d0 lea -0x30(%rbp),%rax xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%s%s%s%s%s", 21b301: be 00 01 00 00 mov $0x100,%esi 21b306: 48 ba f7 4e 20 00 00 00 00 00 movabs $0x204ef7,%rdx 21b310: 4c 89 14 24 mov %r10,(%rsp) 21b314: 48 89 44 24 08 mov %rax,0x8(%rsp) 21b319: b0 00 mov $0x0,%al 21b31b: e8 d0 e1 01 00 call 2394f0 21b320: 48 8b 05 09 75 02 00 mov 0x27509(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b327: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21b32b: 48 39 c8 cmp %rcx,%rax 21b32e: 0f 85 09 00 00 00 jne 21b33d } 21b334: 48 81 c4 a0 00 00 00 add $0xa0,%rsp 21b33b: 5d pop %rbp 21b33c: c3 ret 21b33d: e8 fe 2d 02 00 call 23e140 <__stack_chk_fail@plt> 21b342: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b34c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021b350 : static void CPUMeter_getUiName(const Meter* this, char* buffer, size_t length) { 21b350: 55 push %rbp 21b351: 48 89 e5 mov %rsp,%rbp 21b354: 48 83 ec 20 sub $0x20,%rsp 21b358: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b35c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21b360: 48 89 55 e8 mov %rdx,-0x18(%rbp) if (this->param > 0) 21b364: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b368: 83 78 1c 00 cmpl $0x0,0x1c(%rax) 21b36c: 0f 86 31 00 00 00 jbe 21b3a3 xSnprintf(buffer, length, "%s %u", Meter_uiName(this), this->param); 21b372: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21b376: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21b37a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b37e: 48 8b 00 mov (%rax),%rax 21b381: 48 8b 48 78 mov 0x78(%rax),%rcx 21b385: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b389: 44 8b 40 1c mov 0x1c(%rax),%r8d 21b38d: 48 ba c7 58 20 00 00 00 00 00 movabs $0x2058c7,%rdx 21b397: b0 00 mov $0x0,%al 21b399: e8 52 e1 01 00 call 2394f0 21b39e: e9 24 00 00 00 jmp 21b3c7 xSnprintf(buffer, length, "%s", Meter_uiName(this)); 21b3a3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21b3a7: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21b3ab: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b3af: 48 8b 00 mov (%rax),%rax 21b3b2: 48 8b 48 78 mov 0x78(%rax),%rcx 21b3b6: 48 ba 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rdx 21b3c0: b0 00 mov $0x0,%al 21b3c2: e8 29 e1 01 00 call 2394f0 } 21b3c7: 48 83 c4 20 add $0x20,%rsp 21b3cb: 5d pop %rbp 21b3cc: c3 ret 21b3cd: 0f 1f 00 nopl (%rax) 000000000021b3d0 : Meter_delete((Object*)meters[i]); free(data->meters); free(data); } static void SingleColCPUsMeter_init(Meter* this) { 21b3d0: 55 push %rbp 21b3d1: 48 89 e5 mov %rsp,%rbp 21b3d4: 48 83 ec 10 sub $0x10,%rsp 21b3d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) CPUMeterCommonInit(this, 1); 21b3dc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b3e0: be 01 00 00 00 mov $0x1,%esi 21b3e5: e8 46 04 00 00 call 21b830 } 21b3ea: 48 83 c4 10 add $0x10,%rsp 21b3ee: 5d pop %rbp 21b3ef: c3 ret 000000000021b3f0 : static void AllCPUsMeter_done(Meter* this) { 21b3f0: 55 push %rbp 21b3f1: 48 89 e5 mov %rsp,%rbp 21b3f4: 48 83 ec 30 sub $0x30,%rsp 21b3f8: 48 8b 05 31 74 02 00 mov 0x27431(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b3ff: 48 89 45 f8 mov %rax,-0x8(%rbp) 21b403: 48 89 7d e8 mov %rdi,-0x18(%rbp) CPUMeterData* data = this->meterData; 21b407: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b40b: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21b412: 48 89 45 e0 mov %rax,-0x20(%rbp) Meter** meters = data->meters; 21b416: 48 8b 45 e0 mov -0x20(%rbp),%rax 21b41a: 48 8b 40 08 mov 0x8(%rax),%rax 21b41e: 48 89 45 d8 mov %rax,-0x28(%rbp) AllCPUsMeter_getRange(this, &start, &count); 21b422: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21b426: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21b42a: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21b42e: e8 8d 05 00 00 call 21b9c0 for (int i = 0; i < count; i++) 21b433: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 21b43a: 8b 45 d4 mov -0x2c(%rbp),%eax 21b43d: 3b 45 f0 cmp -0x10(%rbp),%eax 21b440: 0f 8d 1f 00 00 00 jge 21b465 Meter_delete((Object*)meters[i]); 21b446: 48 8b 45 d8 mov -0x28(%rbp),%rax 21b44a: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 21b44e: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21b452: e8 09 87 00 00 call 223b60 for (int i = 0; i < count; i++) 21b457: 8b 45 d4 mov -0x2c(%rbp),%eax 21b45a: 83 c0 01 add $0x1,%eax 21b45d: 89 45 d4 mov %eax,-0x2c(%rbp) 21b460: e9 d5 ff ff ff jmp 21b43a free(data->meters); 21b465: 48 8b 45 e0 mov -0x20(%rbp),%rax 21b469: 48 8b 78 08 mov 0x8(%rax),%rdi 21b46d: e8 ee 2c 02 00 call 23e160 free(data); 21b472: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21b476: e8 e5 2c 02 00 call 23e160 21b47b: 48 8b 05 ae 73 02 00 mov 0x273ae(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b482: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21b486: 48 39 c8 cmp %rcx,%rax 21b489: 0f 85 06 00 00 00 jne 21b495 } 21b48f: 48 83 c4 30 add $0x30,%rsp 21b493: 5d pop %rbp 21b494: c3 ret 21b495: e8 a6 2c 02 00 call 23e140 <__stack_chk_fail@plt> 21b49a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021b4a0 : static void SingleColCPUsMeter_updateMode(Meter* this, int mode) { 21b4a0: 55 push %rbp 21b4a1: 48 89 e5 mov %rsp,%rbp 21b4a4: 48 83 ec 10 sub $0x10,%rsp 21b4a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b4ac: 89 75 f4 mov %esi,-0xc(%rbp) CPUMeterCommonUpdateMode(this, mode, 1); 21b4af: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b4b3: 8b 75 f4 mov -0xc(%rbp),%esi 21b4b6: ba 01 00 00 00 mov $0x1,%edx 21b4bb: e8 d0 05 00 00 call 21ba90 } 21b4c0: 48 83 c4 10 add $0x10,%rsp 21b4c4: 5d pop %rbp 21b4c5: c3 ret 21b4c6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021b4d0 : static void AllCPUsMeter_updateValues(Meter* this) { 21b4d0: 55 push %rbp 21b4d1: 48 89 e5 mov %rsp,%rbp 21b4d4: 48 83 ec 30 sub $0x30,%rsp 21b4d8: 48 8b 05 51 73 02 00 mov 0x27351(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b4df: 48 89 45 f8 mov %rax,-0x8(%rbp) 21b4e3: 48 89 7d e8 mov %rdi,-0x18(%rbp) CPUMeterData* data = this->meterData; 21b4e7: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b4eb: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21b4f2: 48 89 45 e0 mov %rax,-0x20(%rbp) Meter** meters = data->meters; 21b4f6: 48 8b 45 e0 mov -0x20(%rbp),%rax 21b4fa: 48 8b 40 08 mov 0x8(%rax),%rax 21b4fe: 48 89 45 d8 mov %rax,-0x28(%rbp) AllCPUsMeter_getRange(this, &start, &count); 21b502: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21b506: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21b50a: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21b50e: e8 ad 04 00 00 call 21b9c0 for (int i = 0; i < count; i++) 21b513: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 21b51a: 8b 45 d4 mov -0x2c(%rbp),%eax 21b51d: 3b 45 f0 cmp -0x10(%rbp),%eax 21b520: 0f 8d 2f 00 00 00 jge 21b555 Meter_updateValues(meters[i]); 21b526: 48 8b 45 d8 mov -0x28(%rbp),%rax 21b52a: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 21b52e: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21b532: 48 8b 00 mov (%rax),%rax 21b535: 48 8b 40 38 mov 0x38(%rax),%rax 21b539: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21b53d: 48 63 55 d4 movslq -0x2c(%rbp),%rdx 21b541: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 21b545: ff d0 call *%rax for (int i = 0; i < count; i++) 21b547: 8b 45 d4 mov -0x2c(%rbp),%eax 21b54a: 83 c0 01 add $0x1,%eax 21b54d: 89 45 d4 mov %eax,-0x2c(%rbp) 21b550: e9 c5 ff ff ff jmp 21b51a 21b555: 48 8b 05 d4 72 02 00 mov 0x272d4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b55c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21b560: 48 39 c8 cmp %rcx,%rax 21b563: 0f 85 06 00 00 00 jne 21b56f } 21b569: 48 83 c4 30 add $0x30,%rsp 21b56d: 5d pop %rbp 21b56e: c3 ret 21b56f: e8 cc 2b 02 00 call 23e140 <__stack_chk_fail@plt> 21b574: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b57e: 66 90 xchg %ax,%ax 000000000021b580 : static void OctoColCPUsMeter_draw(Meter* this, int x, int y, int w) { CPUMeterCommonDraw(this, x, y, w, 8); } static void SingleColCPUsMeter_draw(Meter* this, int x, int y, int w) { 21b580: 55 push %rbp 21b581: 48 89 e5 mov %rsp,%rbp 21b584: 48 83 ec 40 sub $0x40,%rsp 21b588: 48 8b 05 a1 72 02 00 mov 0x272a1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b58f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21b593: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21b597: 89 75 e4 mov %esi,-0x1c(%rbp) 21b59a: 89 55 e0 mov %edx,-0x20(%rbp) 21b59d: 89 4d dc mov %ecx,-0x24(%rbp) CPUMeterData* data = this->meterData; 21b5a0: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b5a4: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21b5ab: 48 89 45 d0 mov %rax,-0x30(%rbp) Meter** meters = data->meters; 21b5af: 48 8b 45 d0 mov -0x30(%rbp),%rax 21b5b3: 48 8b 40 08 mov 0x8(%rax),%rax 21b5b7: 48 89 45 c8 mov %rax,-0x38(%rbp) int start, count; AllCPUsMeter_getRange(this, &start, &count); 21b5bb: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21b5bf: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21b5c3: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21b5c7: e8 f4 03 00 00 call 21b9c0 for (int i = 0; i < count; i++) { 21b5cc: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) 21b5d3: 8b 45 c4 mov -0x3c(%rbp),%eax 21b5d6: 3b 45 f0 cmp -0x10(%rbp),%eax 21b5d9: 0f 8d 4a 00 00 00 jge 21b629 meters[i]->draw(meters[i], x, y, w); 21b5df: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b5e3: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 21b5e7: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21b5eb: 48 8b 40 08 mov 0x8(%rax),%rax 21b5ef: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21b5f3: 48 63 55 c4 movslq -0x3c(%rbp),%rdx 21b5f7: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 21b5fb: 8b 75 e4 mov -0x1c(%rbp),%esi 21b5fe: 8b 55 e0 mov -0x20(%rbp),%edx 21b601: 8b 4d dc mov -0x24(%rbp),%ecx 21b604: ff d0 call *%rax y += meters[i]->h; 21b606: 48 8b 45 c8 mov -0x38(%rbp),%rax 21b60a: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 21b60e: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21b612: 8b 40 28 mov 0x28(%rax),%eax 21b615: 03 45 e0 add -0x20(%rbp),%eax 21b618: 89 45 e0 mov %eax,-0x20(%rbp) for (int i = 0; i < count; i++) { 21b61b: 8b 45 c4 mov -0x3c(%rbp),%eax 21b61e: 83 c0 01 add $0x1,%eax 21b621: 89 45 c4 mov %eax,-0x3c(%rbp) 21b624: e9 aa ff ff ff jmp 21b5d3 21b629: 48 8b 05 00 72 02 00 mov 0x27200(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b630: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21b634: 48 39 c8 cmp %rcx,%rax 21b637: 0f 85 06 00 00 00 jne 21b643 } } 21b63d: 48 83 c4 40 add $0x40,%rsp 21b641: 5d pop %rbp 21b642: c3 ret 21b643: e8 f8 2a 02 00 call 23e140 <__stack_chk_fail@plt> 21b648: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000021b650 : static void DualColCPUsMeter_init(Meter* this) { 21b650: 55 push %rbp 21b651: 48 89 e5 mov %rsp,%rbp 21b654: 48 83 ec 10 sub $0x10,%rsp 21b658: 48 89 7d f8 mov %rdi,-0x8(%rbp) CPUMeterCommonInit(this, 2); 21b65c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b660: be 02 00 00 00 mov $0x2,%esi 21b665: e8 c6 01 00 00 call 21b830 } 21b66a: 48 83 c4 10 add $0x10,%rsp 21b66e: 5d pop %rbp 21b66f: c3 ret 000000000021b670 : static void DualColCPUsMeter_updateMode(Meter* this, int mode) { 21b670: 55 push %rbp 21b671: 48 89 e5 mov %rsp,%rbp 21b674: 48 83 ec 10 sub $0x10,%rsp 21b678: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b67c: 89 75 f4 mov %esi,-0xc(%rbp) CPUMeterCommonUpdateMode(this, mode, 2); 21b67f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b683: 8b 75 f4 mov -0xc(%rbp),%esi 21b686: ba 02 00 00 00 mov $0x2,%edx 21b68b: e8 00 04 00 00 call 21ba90 } 21b690: 48 83 c4 10 add $0x10,%rsp 21b694: 5d pop %rbp 21b695: c3 ret 21b696: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021b6a0 : static void DualColCPUsMeter_draw(Meter* this, int x, int y, int w) { 21b6a0: 55 push %rbp 21b6a1: 48 89 e5 mov %rsp,%rbp 21b6a4: 48 83 ec 20 sub $0x20,%rsp 21b6a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b6ac: 89 75 f4 mov %esi,-0xc(%rbp) 21b6af: 89 55 f0 mov %edx,-0x10(%rbp) 21b6b2: 89 4d ec mov %ecx,-0x14(%rbp) CPUMeterCommonDraw(this, x, y, w, 2); 21b6b5: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b6b9: 8b 75 f4 mov -0xc(%rbp),%esi 21b6bc: 8b 55 f0 mov -0x10(%rbp),%edx 21b6bf: 8b 4d ec mov -0x14(%rbp),%ecx 21b6c2: 41 b8 02 00 00 00 mov $0x2,%r8d 21b6c8: e8 a3 04 00 00 call 21bb70 } 21b6cd: 48 83 c4 20 add $0x20,%rsp 21b6d1: 5d pop %rbp 21b6d2: c3 ret 21b6d3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b6dd: 0f 1f 00 nopl (%rax) 000000000021b6e0 : static void QuadColCPUsMeter_init(Meter* this) { 21b6e0: 55 push %rbp 21b6e1: 48 89 e5 mov %rsp,%rbp 21b6e4: 48 83 ec 10 sub $0x10,%rsp 21b6e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) CPUMeterCommonInit(this, 4); 21b6ec: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b6f0: be 04 00 00 00 mov $0x4,%esi 21b6f5: e8 36 01 00 00 call 21b830 } 21b6fa: 48 83 c4 10 add $0x10,%rsp 21b6fe: 5d pop %rbp 21b6ff: c3 ret 000000000021b700 : static void QuadColCPUsMeter_updateMode(Meter* this, int mode) { 21b700: 55 push %rbp 21b701: 48 89 e5 mov %rsp,%rbp 21b704: 48 83 ec 10 sub $0x10,%rsp 21b708: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b70c: 89 75 f4 mov %esi,-0xc(%rbp) CPUMeterCommonUpdateMode(this, mode, 4); 21b70f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b713: 8b 75 f4 mov -0xc(%rbp),%esi 21b716: ba 04 00 00 00 mov $0x4,%edx 21b71b: e8 70 03 00 00 call 21ba90 } 21b720: 48 83 c4 10 add $0x10,%rsp 21b724: 5d pop %rbp 21b725: c3 ret 21b726: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021b730 : static void QuadColCPUsMeter_draw(Meter* this, int x, int y, int w) { 21b730: 55 push %rbp 21b731: 48 89 e5 mov %rsp,%rbp 21b734: 48 83 ec 20 sub $0x20,%rsp 21b738: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b73c: 89 75 f4 mov %esi,-0xc(%rbp) 21b73f: 89 55 f0 mov %edx,-0x10(%rbp) 21b742: 89 4d ec mov %ecx,-0x14(%rbp) CPUMeterCommonDraw(this, x, y, w, 4); 21b745: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b749: 8b 75 f4 mov -0xc(%rbp),%esi 21b74c: 8b 55 f0 mov -0x10(%rbp),%edx 21b74f: 8b 4d ec mov -0x14(%rbp),%ecx 21b752: 41 b8 04 00 00 00 mov $0x4,%r8d 21b758: e8 13 04 00 00 call 21bb70 } 21b75d: 48 83 c4 20 add $0x20,%rsp 21b761: 5d pop %rbp 21b762: c3 ret 21b763: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b76d: 0f 1f 00 nopl (%rax) 000000000021b770 : static void OctoColCPUsMeter_init(Meter* this) { 21b770: 55 push %rbp 21b771: 48 89 e5 mov %rsp,%rbp 21b774: 48 83 ec 10 sub $0x10,%rsp 21b778: 48 89 7d f8 mov %rdi,-0x8(%rbp) CPUMeterCommonInit(this, 8); 21b77c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b780: be 08 00 00 00 mov $0x8,%esi 21b785: e8 a6 00 00 00 call 21b830 } 21b78a: 48 83 c4 10 add $0x10,%rsp 21b78e: 5d pop %rbp 21b78f: c3 ret 000000000021b790 : static void OctoColCPUsMeter_updateMode(Meter* this, int mode) { 21b790: 55 push %rbp 21b791: 48 89 e5 mov %rsp,%rbp 21b794: 48 83 ec 10 sub $0x10,%rsp 21b798: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b79c: 89 75 f4 mov %esi,-0xc(%rbp) CPUMeterCommonUpdateMode(this, mode, 8); 21b79f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b7a3: 8b 75 f4 mov -0xc(%rbp),%esi 21b7a6: ba 08 00 00 00 mov $0x8,%edx 21b7ab: e8 e0 02 00 00 call 21ba90 } 21b7b0: 48 83 c4 10 add $0x10,%rsp 21b7b4: 5d pop %rbp 21b7b5: c3 ret 21b7b6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021b7c0 : static void OctoColCPUsMeter_draw(Meter* this, int x, int y, int w) { 21b7c0: 55 push %rbp 21b7c1: 48 89 e5 mov %rsp,%rbp 21b7c4: 48 83 ec 20 sub $0x20,%rsp 21b7c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b7cc: 89 75 f4 mov %esi,-0xc(%rbp) 21b7cf: 89 55 f0 mov %edx,-0x10(%rbp) 21b7d2: 89 4d ec mov %ecx,-0x14(%rbp) CPUMeterCommonDraw(this, x, y, w, 8); 21b7d5: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21b7d9: 8b 75 f4 mov -0xc(%rbp),%esi 21b7dc: 8b 55 f0 mov -0x10(%rbp),%edx 21b7df: 8b 4d ec mov -0x14(%rbp),%ecx 21b7e2: 41 b8 08 00 00 00 mov $0x8,%r8d 21b7e8: e8 83 03 00 00 call 21bb70 } 21b7ed: 48 83 c4 20 add $0x20,%rsp 21b7f1: 5d pop %rbp 21b7f2: c3 ret 21b7f3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b7fd: 0f 1f 00 nopl (%rax) 000000000021b800 <__inline_isnan>: { 21b800: 55 push %rbp 21b801: 48 89 e5 mov %rsp,%rbp 21b804: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 21b809: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 21b80e: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 21b813: 0f 95 c0 setne %al 21b816: 0f 9a c1 setp %cl 21b819: 08 c8 or %cl,%al 21b81b: 24 01 and $0x1,%al 21b81d: 0f b6 c0 movzbl %al,%eax 21b820: 5d pop %rbp 21b821: c3 ret 21b822: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21b82c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021b830 : static void CPUMeterCommonInit(Meter* this, int ncol) { 21b830: 55 push %rbp 21b831: 48 89 e5 mov %rsp,%rbp 21b834: 48 83 ec 40 sub $0x40,%rsp 21b838: 48 8b 05 f1 6f 02 00 mov 0x26ff1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b83f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21b843: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21b847: 89 75 e4 mov %esi,-0x1c(%rbp) unsigned int cpus = this->pl->existingCPUs; 21b84a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b84e: 48 8b 40 30 mov 0x30(%rax),%rax 21b852: 8b 80 e4 00 00 00 mov 0xe4(%rax),%eax 21b858: 89 45 e0 mov %eax,-0x20(%rbp) CPUMeterData* data = this->meterData; 21b85b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b85f: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21b866: 48 89 45 d8 mov %rax,-0x28(%rbp) if (!data) { 21b86a: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21b86f: 0f 85 3c 00 00 00 jne 21b8b1 data = this->meterData = xMalloc(sizeof(CPUMeterData)); 21b875: bf 10 00 00 00 mov $0x10,%edi 21b87a: e8 e1 d1 01 00 call 238a60 21b87f: 48 8b 4d e8 mov -0x18(%rbp),%rcx 21b883: 48 89 81 58 01 00 00 mov %rax,0x158(%rcx) 21b88a: 48 89 45 d8 mov %rax,-0x28(%rbp) data->cpus = cpus; 21b88e: 8b 4d e0 mov -0x20(%rbp),%ecx 21b891: 48 8b 45 d8 mov -0x28(%rbp),%rax 21b895: 89 08 mov %ecx,(%rax) data->meters = xCalloc(cpus, sizeof(Meter*)); 21b897: 8b 45 e0 mov -0x20(%rbp),%eax 21b89a: 89 c7 mov %eax,%edi 21b89c: be 08 00 00 00 mov $0x8,%esi 21b8a1: e8 4a d2 01 00 call 238af0 21b8a6: 48 89 c1 mov %rax,%rcx 21b8a9: 48 8b 45 d8 mov -0x28(%rbp),%rax 21b8ad: 48 89 48 08 mov %rcx,0x8(%rax) Meter** meters = data->meters; 21b8b1: 48 8b 45 d8 mov -0x28(%rbp),%rax 21b8b5: 48 8b 40 08 mov 0x8(%rax),%rax 21b8b9: 48 89 45 d0 mov %rax,-0x30(%rbp) AllCPUsMeter_getRange(this, &start, &count); 21b8bd: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21b8c1: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21b8c5: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21b8c9: e8 f2 00 00 00 call 21b9c0 for (int i = 0; i < count; i++) { 21b8ce: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) 21b8d5: 8b 45 cc mov -0x34(%rbp),%eax 21b8d8: 3b 45 f0 cmp -0x10(%rbp),%eax 21b8db: 0f 8d 71 00 00 00 jge 21b952 if (!meters[i]) 21b8e1: 48 8b 45 d0 mov -0x30(%rbp),%rax 21b8e5: 48 63 4d cc movslq -0x34(%rbp),%rcx 21b8e9: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 21b8ee: 0f 85 2f 00 00 00 jne 21b923 meters[i] = Meter_new(this->pl, start + i + 1, (const MeterClass*) Class(CPUMeter)); 21b8f4: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b8f8: 48 8b 78 30 mov 0x30(%rax),%rdi 21b8fc: 8b 75 f4 mov -0xc(%rbp),%esi 21b8ff: 03 75 cc add -0x34(%rbp),%esi 21b902: 83 c6 01 add $0x1,%esi 21b905: 48 ba 60 7c 20 00 00 00 00 00 movabs $0x207c60,%rdx 21b90f: e8 dc 7e 00 00 call 2237f0 21b914: 48 89 c2 mov %rax,%rdx 21b917: 48 8b 45 d0 mov -0x30(%rbp),%rax 21b91b: 48 63 4d cc movslq -0x34(%rbp),%rcx 21b91f: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) Meter_init(meters[i]); 21b923: 48 8b 45 d0 mov -0x30(%rbp),%rax 21b927: 48 63 4d cc movslq -0x34(%rbp),%rcx 21b92b: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21b92f: 48 8b 00 mov (%rax),%rax 21b932: 48 8b 40 20 mov 0x20(%rax),%rax 21b936: 48 8b 4d d0 mov -0x30(%rbp),%rcx 21b93a: 48 63 55 cc movslq -0x34(%rbp),%rdx 21b93e: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 21b942: ff d0 call *%rax for (int i = 0; i < count; i++) { 21b944: 8b 45 cc mov -0x34(%rbp),%eax 21b947: 83 c0 01 add $0x1,%eax 21b94a: 89 45 cc mov %eax,-0x34(%rbp) 21b94d: e9 83 ff ff ff jmp 21b8d5 if (this->mode == 0) 21b952: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b956: 83 78 18 00 cmpl $0x0,0x18(%rax) 21b95a: 0f 85 0b 00 00 00 jne 21b96b this->mode = BAR_METERMODE; 21b960: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b964: c7 40 18 01 00 00 00 movl $0x1,0x18(%rax) int h = Meter_modes[this->mode]->h; 21b96b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b96f: 48 63 40 18 movslq 0x18(%rax),%rax 21b973: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 21b97b: 8b 40 10 mov 0x10(%rax),%eax 21b97e: 89 45 c8 mov %eax,-0x38(%rbp) this->h = h * ((count + ncol - 1) / ncol); 21b981: 8b 4d c8 mov -0x38(%rbp),%ecx 21b984: 8b 45 f0 mov -0x10(%rbp),%eax 21b987: 03 45 e4 add -0x1c(%rbp),%eax 21b98a: 83 e8 01 sub $0x1,%eax 21b98d: 99 cltd 21b98e: f7 7d e4 idivl -0x1c(%rbp) 21b991: 0f af c8 imul %eax,%ecx 21b994: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b998: 89 48 28 mov %ecx,0x28(%rax) 21b99b: 48 8b 05 8e 6e 02 00 mov 0x26e8e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21b9a2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21b9a6: 48 39 c8 cmp %rcx,%rax 21b9a9: 0f 85 06 00 00 00 jne 21b9b5 } 21b9af: 48 83 c4 40 add $0x40,%rsp 21b9b3: 5d pop %rbp 21b9b4: c3 ret 21b9b5: e8 86 27 02 00 call 23e140 <__stack_chk_fail@plt> 21b9ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021b9c0 : static void AllCPUsMeter_getRange(const Meter* this, int* start, int* count) { 21b9c0: 55 push %rbp 21b9c1: 48 89 e5 mov %rsp,%rbp 21b9c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b9c8: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21b9cc: 48 89 55 e8 mov %rdx,-0x18(%rbp) const CPUMeterData* data = this->meterData; 21b9d0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b9d4: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21b9db: 48 89 45 e0 mov %rax,-0x20(%rbp) unsigned int cpus = data->cpus; 21b9df: 48 8b 45 e0 mov -0x20(%rbp),%rax 21b9e3: 8b 00 mov (%rax),%eax 21b9e5: 89 45 dc mov %eax,-0x24(%rbp) switch(Meter_name(this)[0]) { 21b9e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b9ec: 48 8b 00 mov (%rax),%rax 21b9ef: 48 8b 40 70 mov 0x70(%rax),%rax 21b9f3: 0f be 00 movsbl (%rax),%eax 21b9f6: 89 45 d8 mov %eax,-0x28(%rbp) 21b9f9: 83 e8 41 sub $0x41,%eax 21b9fc: 0f 84 2c 00 00 00 je 21ba2e 21ba02: e9 00 00 00 00 jmp 21ba07 21ba07: 8b 45 d8 mov -0x28(%rbp),%eax 21ba0a: 83 e8 4c sub $0x4c,%eax 21ba0d: 0f 84 33 00 00 00 je 21ba46 21ba13: e9 00 00 00 00 jmp 21ba18 21ba18: 8b 45 d8 mov -0x28(%rbp),%eax 21ba1b: 83 e8 52 sub $0x52,%eax 21ba1e: 0f 84 40 00 00 00 je 21ba64 21ba24: e9 00 00 00 00 jmp 21ba29 21ba29: e9 00 00 00 00 jmp 21ba2e *start = 0; 21ba2e: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ba32: c7 00 00 00 00 00 movl $0x0,(%rax) *count = cpus; 21ba38: 8b 4d dc mov -0x24(%rbp),%ecx 21ba3b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21ba3f: 89 08 mov %ecx,(%rax) break; 21ba41: e9 39 00 00 00 jmp 21ba7f *start = 0; 21ba46: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ba4a: c7 00 00 00 00 00 movl $0x0,(%rax) *count = (cpus+1) / 2; 21ba50: 8b 4d dc mov -0x24(%rbp),%ecx 21ba53: 83 c1 01 add $0x1,%ecx 21ba56: c1 e9 01 shr $0x1,%ecx 21ba59: 48 8b 45 e8 mov -0x18(%rbp),%rax 21ba5d: 89 08 mov %ecx,(%rax) break; 21ba5f: e9 1b 00 00 00 jmp 21ba7f *start = (cpus+1) / 2; 21ba64: 8b 4d dc mov -0x24(%rbp),%ecx 21ba67: 83 c1 01 add $0x1,%ecx 21ba6a: c1 e9 01 shr $0x1,%ecx 21ba6d: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ba71: 89 08 mov %ecx,(%rax) *count = cpus / 2; 21ba73: 8b 4d dc mov -0x24(%rbp),%ecx 21ba76: c1 e9 01 shr $0x1,%ecx 21ba79: 48 8b 45 e8 mov -0x18(%rbp),%rax 21ba7d: 89 08 mov %ecx,(%rax) } 21ba7f: 5d pop %rbp 21ba80: c3 ret 21ba81: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21ba8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021ba90 : static void CPUMeterCommonUpdateMode(Meter* this, int mode, int ncol) { 21ba90: 55 push %rbp 21ba91: 48 89 e5 mov %rsp,%rbp 21ba94: 48 83 ec 40 sub $0x40,%rsp 21ba98: 48 8b 05 91 6d 02 00 mov 0x26d91(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21ba9f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21baa3: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21baa7: 89 75 e4 mov %esi,-0x1c(%rbp) 21baaa: 89 55 e0 mov %edx,-0x20(%rbp) CPUMeterData* data = this->meterData; 21baad: 48 8b 45 e8 mov -0x18(%rbp),%rax 21bab1: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21bab8: 48 89 45 d8 mov %rax,-0x28(%rbp) Meter** meters = data->meters; 21babc: 48 8b 45 d8 mov -0x28(%rbp),%rax 21bac0: 48 8b 40 08 mov 0x8(%rax),%rax 21bac4: 48 89 45 d0 mov %rax,-0x30(%rbp) this->mode = mode; 21bac8: 8b 4d e4 mov -0x1c(%rbp),%ecx 21bacb: 48 8b 45 e8 mov -0x18(%rbp),%rax 21bacf: 89 48 18 mov %ecx,0x18(%rax) int h = Meter_modes[mode]->h; 21bad2: 48 63 45 e4 movslq -0x1c(%rbp),%rax 21bad6: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 21bade: 8b 40 10 mov 0x10(%rax),%eax 21bae1: 89 45 cc mov %eax,-0x34(%rbp) AllCPUsMeter_getRange(this, &start, &count); 21bae4: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21bae8: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21baec: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21baf0: e8 cb fe ff ff call 21b9c0 for (int i = 0; i < count; i++) { 21baf5: c7 45 c8 00 00 00 00 movl $0x0,-0x38(%rbp) 21bafc: 8b 45 c8 mov -0x38(%rbp),%eax 21baff: 3b 45 f0 cmp -0x10(%rbp),%eax 21bb02: 0f 8d 22 00 00 00 jge 21bb2a Meter_setMode(meters[i], mode); 21bb08: 48 8b 45 d0 mov -0x30(%rbp),%rax 21bb0c: 48 63 4d c8 movslq -0x38(%rbp),%rcx 21bb10: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21bb14: 8b 75 e4 mov -0x1c(%rbp),%esi 21bb17: e8 04 7e 00 00 call 223920 for (int i = 0; i < count; i++) { 21bb1c: 8b 45 c8 mov -0x38(%rbp),%eax 21bb1f: 83 c0 01 add $0x1,%eax 21bb22: 89 45 c8 mov %eax,-0x38(%rbp) 21bb25: e9 d2 ff ff ff jmp 21bafc this->h = h * ((count + ncol - 1) / ncol); 21bb2a: 8b 4d cc mov -0x34(%rbp),%ecx 21bb2d: 8b 45 f0 mov -0x10(%rbp),%eax 21bb30: 03 45 e0 add -0x20(%rbp),%eax 21bb33: 83 e8 01 sub $0x1,%eax 21bb36: 99 cltd 21bb37: f7 7d e0 idivl -0x20(%rbp) 21bb3a: 0f af c8 imul %eax,%ecx 21bb3d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21bb41: 89 48 28 mov %ecx,0x28(%rax) 21bb44: 48 8b 05 e5 6c 02 00 mov 0x26ce5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21bb4b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21bb4f: 48 39 c8 cmp %rcx,%rax 21bb52: 0f 85 06 00 00 00 jne 21bb5e } 21bb58: 48 83 c4 40 add $0x40,%rsp 21bb5c: 5d pop %rbp 21bb5d: c3 ret 21bb5e: e8 dd 25 02 00 call 23e140 <__stack_chk_fail@plt> 21bb63: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21bb6d: 0f 1f 00 nopl (%rax) 000000000021bb70 : static void CPUMeterCommonDraw(Meter* this, int x, int y, int w, int ncol) { 21bb70: 55 push %rbp 21bb71: 48 89 e5 mov %rsp,%rbp 21bb74: 48 83 ec 60 sub $0x60,%rsp 21bb78: 48 8b 05 b1 6c 02 00 mov 0x26cb1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21bb7f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21bb83: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21bb87: 89 75 e4 mov %esi,-0x1c(%rbp) 21bb8a: 89 55 e0 mov %edx,-0x20(%rbp) 21bb8d: 89 4d dc mov %ecx,-0x24(%rbp) 21bb90: 44 89 45 d8 mov %r8d,-0x28(%rbp) CPUMeterData* data = this->meterData; 21bb94: 48 8b 45 e8 mov -0x18(%rbp),%rax 21bb98: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 21bb9f: 48 89 45 d0 mov %rax,-0x30(%rbp) Meter** meters = data->meters; 21bba3: 48 8b 45 d0 mov -0x30(%rbp),%rax 21bba7: 48 8b 40 08 mov 0x8(%rax),%rax 21bbab: 48 89 45 c8 mov %rax,-0x38(%rbp) AllCPUsMeter_getRange(this, &start, &count); 21bbaf: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21bbb3: 48 8d 75 f4 lea -0xc(%rbp),%rsi 21bbb7: 48 8d 55 f0 lea -0x10(%rbp),%rdx 21bbbb: e8 00 fe ff ff call 21b9c0 int colwidth = (w - ncol) / ncol + 1; 21bbc0: 8b 45 dc mov -0x24(%rbp),%eax 21bbc3: 2b 45 d8 sub -0x28(%rbp),%eax 21bbc6: 99 cltd 21bbc7: f7 7d d8 idivl -0x28(%rbp) 21bbca: 83 c0 01 add $0x1,%eax 21bbcd: 89 45 c4 mov %eax,-0x3c(%rbp) int diff = (w - (colwidth * ncol)); 21bbd0: 8b 45 dc mov -0x24(%rbp),%eax 21bbd3: 8b 4d c4 mov -0x3c(%rbp),%ecx 21bbd6: 0f af 4d d8 imul -0x28(%rbp),%ecx 21bbda: 29 c8 sub %ecx,%eax 21bbdc: 89 45 c0 mov %eax,-0x40(%rbp) int nrows = (count + ncol - 1) / ncol; 21bbdf: 8b 45 f0 mov -0x10(%rbp),%eax 21bbe2: 03 45 d8 add -0x28(%rbp),%eax 21bbe5: 83 e8 01 sub $0x1,%eax 21bbe8: 99 cltd 21bbe9: f7 7d d8 idivl -0x28(%rbp) 21bbec: 89 45 bc mov %eax,-0x44(%rbp) for (int i = 0; i < count; i++) { 21bbef: c7 45 b8 00 00 00 00 movl $0x0,-0x48(%rbp) 21bbf6: 8b 45 b8 mov -0x48(%rbp),%eax 21bbf9: 3b 45 f0 cmp -0x10(%rbp),%eax 21bbfc: 0f 8d 9e 00 00 00 jge 21bca0 int d = (i / nrows) > diff ? diff : (i / nrows); // dynamic spacer 21bc02: 8b 45 b8 mov -0x48(%rbp),%eax 21bc05: 99 cltd 21bc06: f7 7d bc idivl -0x44(%rbp) 21bc09: 3b 45 c0 cmp -0x40(%rbp),%eax 21bc0c: 0f 8e 0b 00 00 00 jle 21bc1d 21bc12: 8b 45 c0 mov -0x40(%rbp),%eax 21bc15: 89 45 a8 mov %eax,-0x58(%rbp) 21bc18: e9 0a 00 00 00 jmp 21bc27 21bc1d: 8b 45 b8 mov -0x48(%rbp),%eax 21bc20: 99 cltd 21bc21: f7 7d bc idivl -0x44(%rbp) 21bc24: 89 45 a8 mov %eax,-0x58(%rbp) 21bc27: 8b 45 a8 mov -0x58(%rbp),%eax 21bc2a: 89 45 b4 mov %eax,-0x4c(%rbp) int xpos = x + ((i / nrows) * colwidth) + d; 21bc2d: 8b 45 e4 mov -0x1c(%rbp),%eax 21bc30: 89 45 a0 mov %eax,-0x60(%rbp) 21bc33: 8b 45 b8 mov -0x48(%rbp),%eax 21bc36: 99 cltd 21bc37: f7 7d bc idivl -0x44(%rbp) 21bc3a: 89 c1 mov %eax,%ecx 21bc3c: 8b 45 a0 mov -0x60(%rbp),%eax 21bc3f: 0f af 4d c4 imul -0x3c(%rbp),%ecx 21bc43: 01 c8 add %ecx,%eax 21bc45: 03 45 b4 add -0x4c(%rbp),%eax 21bc48: 89 45 b0 mov %eax,-0x50(%rbp) int ypos = y + ((i % nrows) * meters[0]->h); 21bc4b: 8b 45 e0 mov -0x20(%rbp),%eax 21bc4e: 89 45 a4 mov %eax,-0x5c(%rbp) 21bc51: 8b 45 b8 mov -0x48(%rbp),%eax 21bc54: 99 cltd 21bc55: f7 7d bc idivl -0x44(%rbp) 21bc58: 8b 45 a4 mov -0x5c(%rbp),%eax 21bc5b: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21bc5f: 48 8b 09 mov (%rcx),%rcx 21bc62: 0f af 51 28 imul 0x28(%rcx),%edx 21bc66: 01 d0 add %edx,%eax 21bc68: 89 45 ac mov %eax,-0x54(%rbp) meters[i]->draw(meters[i], xpos, ypos, colwidth); 21bc6b: 48 8b 45 c8 mov -0x38(%rbp),%rax 21bc6f: 48 63 4d b8 movslq -0x48(%rbp),%rcx 21bc73: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21bc77: 48 8b 40 08 mov 0x8(%rax),%rax 21bc7b: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21bc7f: 48 63 55 b8 movslq -0x48(%rbp),%rdx 21bc83: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 21bc87: 8b 75 b0 mov -0x50(%rbp),%esi 21bc8a: 8b 55 ac mov -0x54(%rbp),%edx 21bc8d: 8b 4d c4 mov -0x3c(%rbp),%ecx 21bc90: ff d0 call *%rax for (int i = 0; i < count; i++) { 21bc92: 8b 45 b8 mov -0x48(%rbp),%eax 21bc95: 83 c0 01 add $0x1,%eax 21bc98: 89 45 b8 mov %eax,-0x48(%rbp) 21bc9b: e9 56 ff ff ff jmp 21bbf6 21bca0: 48 8b 05 89 6b 02 00 mov 0x26b89(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21bca7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21bcab: 48 39 c8 cmp %rcx,%rax 21bcae: 0f 85 06 00 00 00 jne 21bcba } 21bcb4: 48 83 c4 60 add $0x60,%rsp 21bcb8: 5d pop %rbp 21bcb9: c3 ret 21bcba: e8 81 24 02 00 call 23e140 <__stack_chk_fail@plt> 21bcbf: cc int3 000000000021bcc0 : signal(SIGINT, CRT_handleSIGTERM); signal(SIGTERM, CRT_handleSIGTERM); signal(SIGQUIT, CRT_handleSIGTERM); } void CRT_resetSignalHandlers(void) { 21bcc0: 55 push %rbp 21bcc1: 48 89 e5 mov %rsp,%rbp sigaction (SIGSEGV, &old_sig_handler[SIGSEGV], NULL); 21bcc4: bf 0b 00 00 00 mov $0xb,%edi 21bcc9: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bcd3: 48 81 c6 60 01 00 00 add $0x160,%rsi 21bcda: 31 c0 xor %eax,%eax 21bcdc: 89 c2 mov %eax,%edx 21bcde: e8 9d 26 02 00 call 23e380 sigaction (SIGFPE, &old_sig_handler[SIGFPE], NULL); 21bce3: bf 08 00 00 00 mov $0x8,%edi 21bce8: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bcf2: 48 81 c6 00 01 00 00 add $0x100,%rsi 21bcf9: 31 c0 xor %eax,%eax 21bcfb: 89 c2 mov %eax,%edx 21bcfd: e8 7e 26 02 00 call 23e380 sigaction (SIGILL, &old_sig_handler[SIGILL], NULL); 21bd02: bf 04 00 00 00 mov $0x4,%edi 21bd07: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bd11: 48 81 c6 80 00 00 00 add $0x80,%rsi 21bd18: 31 c0 xor %eax,%eax 21bd1a: 89 c2 mov %eax,%edx 21bd1c: e8 5f 26 02 00 call 23e380 sigaction (SIGBUS, &old_sig_handler[SIGBUS], NULL); 21bd21: bf 0a 00 00 00 mov $0xa,%edi 21bd26: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bd30: 48 81 c6 40 01 00 00 add $0x140,%rsi 21bd37: 31 c0 xor %eax,%eax 21bd39: 89 c2 mov %eax,%edx 21bd3b: e8 40 26 02 00 call 23e380 sigaction (SIGPIPE, &old_sig_handler[SIGPIPE], NULL); 21bd40: bf 0d 00 00 00 mov $0xd,%edi 21bd45: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bd4f: 48 81 c6 a0 01 00 00 add $0x1a0,%rsi 21bd56: 31 c0 xor %eax,%eax 21bd58: 89 c2 mov %eax,%edx 21bd5a: e8 21 26 02 00 call 23e380 sigaction (SIGSYS, &old_sig_handler[SIGSYS], NULL); 21bd5f: bf 0c 00 00 00 mov $0xc,%edi 21bd64: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bd6e: 48 81 c6 80 01 00 00 add $0x180,%rsi 21bd75: 31 c0 xor %eax,%eax 21bd77: 89 c2 mov %eax,%edx 21bd79: e8 02 26 02 00 call 23e380 sigaction (SIGABRT, &old_sig_handler[SIGABRT], NULL); 21bd7e: bf 06 00 00 00 mov $0x6,%edi 21bd83: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21bd8d: 48 81 c6 c0 00 00 00 add $0xc0,%rsi 21bd94: 31 c0 xor %eax,%eax 21bd96: 89 c2 mov %eax,%edx 21bd98: e8 e3 25 02 00 call 23e380 signal(SIGINT, SIG_DFL); 21bd9d: bf 02 00 00 00 mov $0x2,%edi 21bda2: 31 c0 xor %eax,%eax 21bda4: 89 c6 mov %eax,%esi 21bda6: e8 e5 25 02 00 call 23e390 signal(SIGTERM, SIG_DFL); 21bdab: bf 0f 00 00 00 mov $0xf,%edi 21bdb0: 31 c0 xor %eax,%eax 21bdb2: 89 c6 mov %eax,%esi 21bdb4: e8 d7 25 02 00 call 23e390 signal(SIGQUIT, SIG_DFL); 21bdb9: bf 03 00 00 00 mov $0x3,%edi 21bdbe: 31 c0 xor %eax,%eax 21bdc0: 89 c6 mov %eax,%esi 21bdc2: e8 c9 25 02 00 call 23e390 } 21bdc7: 5d pop %rbp 21bdc8: c3 ret 21bdc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021bdd0 : void CRT_init(const Settings* settings, bool allowUnicode) { 21bdd0: 55 push %rbp 21bdd1: 48 89 e5 mov %rsp,%rbp 21bdd4: 48 83 ec 40 sub $0x40,%rsp 21bdd8: 40 88 f0 mov %sil,%al 21bddb: 48 8b 0d 4e 6a 02 00 mov 0x26a4e(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 21bde2: 48 89 4d f8 mov %rcx,-0x8(%rbp) 21bde6: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21bdea: 24 01 and $0x1,%al 21bdec: 88 45 e7 mov %al,-0x19(%rbp) redirectStderr(); 21bdef: e8 0c 04 00 00 call 21c200 initscr(); 21bdf4: e8 a7 25 02 00 call 23e3a0 noecho(); 21bdf9: e8 b2 25 02 00 call 23e3b0 CRT_crashSettings = settings; 21bdfe: 48 8b 45 e8 mov -0x18(%rbp),%rax 21be02: 48 89 04 25 70 21 24 00 mov %rax,0x242170 CRT_delay = &(settings->delay); 21be0a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21be0e: 48 83 c0 30 add $0x30,%rax 21be12: 48 89 04 25 78 21 24 00 mov %rax,0x242178 CRT_colors = CRT_colorSchemes[settings->colorScheme]; 21be1a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21be1e: 48 63 48 2c movslq 0x2c(%rax),%rcx 21be22: 48 b8 e0 0c 24 00 00 00 00 00 movabs $0x240ce0,%rax 21be2c: 48 69 c9 90 01 00 00 imul $0x190,%rcx,%rcx 21be33: 48 01 c8 add %rcx,%rax 21be36: 48 89 04 25 80 21 24 00 mov %rax,0x242180 CRT_colorScheme = settings->colorScheme; 21be3e: 48 8b 45 e8 mov -0x18(%rbp),%rax 21be42: 8b 40 2c mov 0x2c(%rax),%eax 21be45: 89 04 25 68 1d 24 00 mov %eax,0x241d68 for (int i = 0; i < LAST_COLORELEMENT; i++) { 21be4c: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%rbp) 21be53: 83 7d e0 64 cmpl $0x64,-0x20(%rbp) 21be57: 0f 8d 47 00 00 00 jge 21bea4 unsigned int color = CRT_colorSchemes[COLORSCHEME_DEFAULT][i]; 21be5d: 48 63 45 e0 movslq -0x20(%rbp),%rax 21be61: 8b 04 85 e0 0c 24 00 mov 0x240ce0(,%rax,4),%eax 21be68: 89 45 dc mov %eax,-0x24(%rbp) CRT_colorSchemes[COLORSCHEME_BROKENGRAY][i] = color == (A_BOLD | ColorPairGrayBlack) ? ColorPair(White, Black) : color; 21be6b: 81 7d dc 00 15 20 00 cmpl $0x201500,-0x24(%rbp) 21be72: 0f 85 0a 00 00 00 jne 21be82 21be78: 31 c0 xor %eax,%eax 21be7a: 89 45 c8 mov %eax,-0x38(%rbp) 21be7d: e9 06 00 00 00 jmp 21be88 21be82: 8b 45 dc mov -0x24(%rbp),%eax 21be85: 89 45 c8 mov %eax,-0x38(%rbp) 21be88: 8b 4d c8 mov -0x38(%rbp),%ecx 21be8b: 48 63 45 e0 movslq -0x20(%rbp),%rax 21be8f: 89 0c 85 40 16 24 00 mov %ecx,0x241640(,%rax,4) for (int i = 0; i < LAST_COLORELEMENT; i++) { 21be96: 8b 45 e0 mov -0x20(%rbp),%eax 21be99: 83 c0 01 add $0x1,%eax 21be9c: 89 45 e0 mov %eax,-0x20(%rbp) 21be9f: e9 af ff ff ff jmp 21be53 } halfdelay(*CRT_delay); 21bea4: 48 8b 04 25 78 21 24 00 mov 0x242178,%rax 21beac: 8b 38 mov (%rax),%edi 21beae: e8 0d 25 02 00 call 23e3c0 nonl(); 21beb3: e8 18 25 02 00 call 23e3d0 intrflush(stdscr, false); 21beb8: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21bec0: 31 f6 xor %esi,%esi 21bec2: e8 19 25 02 00 call 23e3e0 keypad(stdscr, true); 21bec7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21becf: be 01 00 00 00 mov $0x1,%esi 21bed4: e8 17 25 02 00 call 23e3f0 #ifdef HAVE_GETMOUSE mouseinterval(0); 21bed9: 31 ff xor %edi,%edi 21bedb: e8 20 25 02 00 call 23e400 #endif curs_set(0); 21bee0: 31 ff xor %edi,%edi 21bee2: e8 29 25 02 00 call 23e410 if (has_colors()) { 21bee7: e8 34 25 02 00 call 23e420 21beec: a8 01 test $0x1,%al 21beee: 0f 85 05 00 00 00 jne 21bef9 21bef4: e9 05 00 00 00 jmp 21befe start_color(); 21bef9: e8 32 25 02 00 call 23e430 } const char* termType = getenv("TERM"); 21befe: 48 bf 7d 35 20 00 00 00 00 00 movabs $0x20357d,%rdi 21bf08: e8 13 23 02 00 call 23e220 21bf0d: 48 89 45 d0 mov %rax,-0x30(%rbp) if (termType && String_eq(termType, "linux")) { 21bf11: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 21bf16: 0f 84 30 00 00 00 je 21bf4c 21bf1c: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21bf20: 48 be cd 58 20 00 00 00 00 00 movabs $0x2058cd,%rsi 21bf2a: e8 e1 02 00 00 call 21c210 21bf2f: a8 01 test $0x1,%al 21bf31: 0f 85 05 00 00 00 jne 21bf3c 21bf37: e9 10 00 00 00 jmp 21bf4c CRT_scrollHAmount = 20; 21bf3c: c7 04 25 d8 0c 24 00 14 00 00 00 movl $0x14,0x240cd8 } else { 21bf47: e9 0b 00 00 00 jmp 21bf57 CRT_scrollHAmount = 5; 21bf4c: c7 04 25 d8 0c 24 00 05 00 00 00 movl $0x5,0x240cd8 } if (termType && (String_startsWith(termType, "xterm") || String_eq(termType, "vt220"))) { 21bf57: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 21bf5c: 0f 84 c2 01 00 00 je 21c124 21bf62: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21bf66: 48 be e5 45 20 00 00 00 00 00 movabs $0x2045e5,%rsi 21bf70: e8 cb 02 00 00 call 21c240 21bf75: a8 01 test $0x1,%al 21bf77: 0f 85 20 00 00 00 jne 21bf9d 21bf7d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21bf81: 48 be a7 44 20 00 00 00 00 00 movabs $0x2044a7,%rsi 21bf8b: e8 80 02 00 00 call 21c210 21bf90: a8 01 test $0x1,%al 21bf92: 0f 85 05 00 00 00 jne 21bf9d 21bf98: e9 87 01 00 00 jmp 21c124 #ifdef HTOP_NETBSD #define define_key(s_, k_) define_key((char*)s_, k_) IGNORE_WCASTQUAL_BEGIN #endif define_key("\033[H", KEY_HOME); 21bf9d: 48 bf 02 4f 20 00 00 00 00 00 movabs $0x204f02,%rdi 21bfa7: be 06 01 00 00 mov $0x106,%esi 21bfac: e8 8f 24 02 00 call 23e440 define_key("\033[F", KEY_END); 21bfb1: 48 bf fc 6a 20 00 00 00 00 00 movabs $0x206afc,%rdi 21bfbb: be 68 01 00 00 mov $0x168,%esi 21bfc0: e8 7b 24 02 00 call 23e440 define_key("\033[7~", KEY_HOME); 21bfc5: 48 bf 32 4d 20 00 00 00 00 00 movabs $0x204d32,%rdi 21bfcf: be 06 01 00 00 mov $0x106,%esi 21bfd4: e8 67 24 02 00 call 23e440 define_key("\033[8~", KEY_END); 21bfd9: 48 bf 63 3d 20 00 00 00 00 00 movabs $0x203d63,%rdi 21bfe3: be 68 01 00 00 mov $0x168,%esi 21bfe8: e8 53 24 02 00 call 23e440 define_key("\033OP", KEY_F(1)); 21bfed: 48 bf 8c 6d 20 00 00 00 00 00 movabs $0x206d8c,%rdi 21bff7: be 09 01 00 00 mov $0x109,%esi 21bffc: e8 3f 24 02 00 call 23e440 define_key("\033OQ", KEY_F(2)); 21c001: 48 bf 00 6b 20 00 00 00 00 00 movabs $0x206b00,%rdi 21c00b: be 0a 01 00 00 mov $0x10a,%esi 21c010: e8 2b 24 02 00 call 23e440 define_key("\033OR", KEY_F(3)); 21c015: 48 bf b9 63 20 00 00 00 00 00 movabs $0x2063b9,%rdi 21c01f: be 0b 01 00 00 mov $0x10b,%esi 21c024: e8 17 24 02 00 call 23e440 define_key("\033OS", KEY_F(4)); 21c029: 48 bf 36 51 20 00 00 00 00 00 movabs $0x205136,%rdi 21c033: be 0c 01 00 00 mov $0x10c,%esi 21c038: e8 03 24 02 00 call 23e440 define_key("\033O2R", KEY_F(15)); 21c03d: 48 bf f3 67 20 00 00 00 00 00 movabs $0x2067f3,%rdi 21c047: be 17 01 00 00 mov $0x117,%esi 21c04c: e8 ef 23 02 00 call 23e440 define_key("\033[11~", KEY_F(1)); 21c051: 48 bf b5 41 20 00 00 00 00 00 movabs $0x2041b5,%rdi 21c05b: be 09 01 00 00 mov $0x109,%esi 21c060: e8 db 23 02 00 call 23e440 define_key("\033[12~", KEY_F(2)); 21c065: 48 bf 04 6b 20 00 00 00 00 00 movabs $0x206b04,%rdi 21c06f: be 0a 01 00 00 mov $0x10a,%esi 21c074: e8 c7 23 02 00 call 23e440 define_key("\033[13~", KEY_F(3)); 21c079: 48 bf 91 65 20 00 00 00 00 00 movabs $0x206591,%rdi 21c083: be 0b 01 00 00 mov $0x10b,%esi 21c088: e8 b3 23 02 00 call 23e440 define_key("\033[14~", KEY_F(4)); 21c08d: 48 bf ae 6c 20 00 00 00 00 00 movabs $0x206cae,%rdi 21c097: be 0c 01 00 00 mov $0x10c,%esi 21c09c: e8 9f 23 02 00 call 23e440 define_key("\033[14;2~", KEY_F(15)); 21c0a1: 48 bf 93 5a 20 00 00 00 00 00 movabs $0x205a93,%rdi 21c0ab: be 17 01 00 00 mov $0x117,%esi 21c0b0: e8 8b 23 02 00 call 23e440 define_key("\033[17;2~", KEY_F(18)); 21c0b5: 48 bf 53 43 20 00 00 00 00 00 movabs $0x204353,%rdi 21c0bf: be 1a 01 00 00 mov $0x11a,%esi 21c0c4: e8 77 23 02 00 call 23e440 char sequence[3] = "\033a"; 21c0c9: 66 8b 04 25 82 35 20 00 mov 0x203582,%ax 21c0d1: 66 89 45 f5 mov %ax,-0xb(%rbp) 21c0d5: 8a 04 25 84 35 20 00 mov 0x203584,%al 21c0dc: 88 45 f7 mov %al,-0x9(%rbp) for (char c = 'a'; c <= 'z'; c++) { 21c0df: c6 45 cf 61 movb $0x61,-0x31(%rbp) 21c0e3: 0f be 45 cf movsbl -0x31(%rbp),%eax 21c0e7: 83 f8 7a cmp $0x7a,%eax 21c0ea: 0f 8f 2f 00 00 00 jg 21c11f sequence[1] = c; 21c0f0: 8a 45 cf mov -0x31(%rbp),%al 21c0f3: 88 45 f6 mov %al,-0xa(%rbp) define_key(sequence, KEY_ALT('A' + (c - 'a'))); 21c0f6: 48 8d 7d f5 lea -0xb(%rbp),%rdi 21c0fa: 0f be 75 cf movsbl -0x31(%rbp),%esi 21c0fe: 83 ee 61 sub $0x61,%esi 21c101: 83 c6 41 add $0x41,%esi 21c104: 83 ee 41 sub $0x41,%esi 21c107: 81 c6 2e 01 00 00 add $0x12e,%esi 21c10d: e8 2e 23 02 00 call 23e440 for (char c = 'a'; c <= 'z'; c++) { 21c112: 8a 45 cf mov -0x31(%rbp),%al 21c115: 04 01 add $0x1,%al 21c117: 88 45 cf mov %al,-0x31(%rbp) 21c11a: e9 c4 ff ff ff jmp 21c0e3 } #ifdef HTOP_NETBSD IGNORE_WCASTQUAL_END #undef define_key #endif } 21c11f: e9 00 00 00 00 jmp 21c124 CRT_installSignalHandlers(); 21c124: e8 67 01 00 00 call 21c290 use_default_colors(); 21c129: e8 22 23 02 00 call 23e450 if (!has_colors()) 21c12e: e8 ed 22 02 00 call 23e420 21c133: a8 01 test $0x1,%al 21c135: 0f 85 0b 00 00 00 jne 21c146 CRT_colorScheme = COLORSCHEME_MONOCHROME; 21c13b: c7 04 25 68 1d 24 00 01 00 00 00 movl $0x1,0x241d68 CRT_setColors(CRT_colorScheme); 21c146: 8b 3c 25 68 1d 24 00 mov 0x241d68,%edi 21c14d: e8 ae 02 00 00 call 21c400 #ifdef HAVE_LIBNCURSESW if (allowUnicode && String_eq(nl_langinfo(CODESET), "UTF-8")) { 21c152: f6 45 e7 01 testb $0x1,-0x19(%rbp) 21c156: 0f 84 33 00 00 00 je 21c18f 21c15c: 31 ff xor %edi,%edi 21c15e: e8 fd 22 02 00 call 23e460 21c163: 48 89 c7 mov %rax,%rdi 21c166: 48 be 06 4f 20 00 00 00 00 00 movabs $0x204f06,%rsi 21c170: e8 9b 00 00 00 call 21c210 21c175: a8 01 test $0x1,%al 21c177: 0f 85 05 00 00 00 jne 21c182 21c17d: e9 0d 00 00 00 jmp 21c18f CRT_utf8 = true; 21c182: c6 04 25 60 1d 24 00 01 movb $0x1,0x241d60 } else { 21c18a: e9 08 00 00 00 jmp 21c197 CRT_utf8 = false; 21c18f: c6 04 25 60 1d 24 00 00 movb $0x0,0x241d60 (void) allowUnicode; #endif CRT_treeStr = #ifdef HAVE_LIBNCURSESW CRT_utf8 ? CRT_treeStrUtf8 : 21c197: 8a 14 25 60 1d 24 00 mov 0x241d60,%dl 21c19e: 48 b8 20 84 20 00 00 00 00 00 movabs $0x208420,%rax 21c1a8: 48 b9 60 84 20 00 00 00 00 00 movabs $0x208460,%rcx 21c1b2: f6 c2 01 test $0x1,%dl 21c1b5: 48 0f 45 c1 cmovne %rcx,%rax CRT_treeStr = 21c1b9: 48 89 04 25 d0 0c 24 00 mov %rax,0x240cd0 #endif CRT_treeStrAscii; #ifdef HAVE_GETMOUSE #if NCURSES_MOUSE_VERSION > 1 mousemask(BUTTON1_RELEASED | BUTTON4_PRESSED | BUTTON5_PRESSED, NULL); 21c1c1: bf 01 00 21 00 mov $0x210001,%edi 21c1c6: 31 c0 xor %eax,%eax 21c1c8: 89 c6 mov %eax,%esi 21c1ca: e8 a1 22 02 00 call 23e470 #else mousemask(BUTTON1_RELEASED, NULL); #endif #endif CRT_degreeSign = initDegreeSign(); 21c1cf: e8 bc 03 00 00 call 21c590 21c1d4: 48 89 04 25 88 21 24 00 mov %rax,0x242188 21c1dc: 48 8b 05 4d 66 02 00 mov 0x2664d(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21c1e3: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21c1e7: 48 39 c8 cmp %rcx,%rax 21c1ea: 0f 85 06 00 00 00 jne 21c1f6 } 21c1f0: 48 83 c4 40 add $0x40,%rsp 21c1f4: 5d pop %rbp 21c1f5: c3 ret 21c1f6: e8 45 1f 02 00 call 23e140 <__stack_chk_fail@plt> 21c1fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021c200 : static void redirectStderr(void) { 21c200: 55 push %rbp 21c201: 48 89 e5 mov %rsp,%rbp } 21c204: 5d pop %rbp 21c205: c3 ret 21c206: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021c210 : static inline bool String_eq(const char* s1, const char* s2) { 21c210: 55 push %rbp 21c211: 48 89 e5 mov %rsp,%rbp 21c214: 48 83 ec 10 sub $0x10,%rsp 21c218: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21c21c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 21c220: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21c224: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21c228: e8 b3 1f 02 00 call 23e1e0 21c22d: 83 f8 00 cmp $0x0,%eax 21c230: 0f 94 c0 sete %al 21c233: 24 01 and $0x1,%al 21c235: 0f b6 c0 movzbl %al,%eax 21c238: 48 83 c4 10 add $0x10,%rsp 21c23c: 5d pop %rbp 21c23d: c3 ret 21c23e: 66 90 xchg %ax,%ax 000000000021c240 : static inline bool String_startsWith(const char* s, const char* match) { 21c240: 55 push %rbp 21c241: 48 89 e5 mov %rsp,%rbp 21c244: 48 83 ec 20 sub $0x20,%rsp 21c248: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21c24c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strncmp(s, match, strlen(match)) == 0; 21c250: 48 8b 45 f8 mov -0x8(%rbp),%rax 21c254: 48 89 45 e0 mov %rax,-0x20(%rbp) 21c258: 48 8b 45 f0 mov -0x10(%rbp),%rax 21c25c: 48 89 45 e8 mov %rax,-0x18(%rbp) 21c260: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21c264: e8 87 1f 02 00 call 23e1f0 21c269: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21c26d: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21c271: 48 89 c2 mov %rax,%rdx 21c274: e8 07 22 02 00 call 23e480 21c279: 83 f8 00 cmp $0x0,%eax 21c27c: 0f 94 c0 sete %al 21c27f: 24 01 and $0x1,%al 21c281: 0f b6 c0 movzbl %al,%eax 21c284: 48 83 c4 20 add $0x20,%rsp 21c288: 5d pop %rbp 21c289: c3 ret 21c28a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021c290 : static void CRT_installSignalHandlers(void) { 21c290: 55 push %rbp 21c291: 48 89 e5 mov %rsp,%rbp 21c294: 48 83 ec 30 sub $0x30,%rsp 21c298: 48 8b 05 91 65 02 00 mov 0x26591(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21c29f: 48 89 45 f8 mov %rax,-0x8(%rbp) sigemptyset (&act.sa_mask); 21c2a3: 48 8d 7d d8 lea -0x28(%rbp),%rdi 21c2a7: 48 83 c7 0c add $0xc,%rdi 21c2ab: e8 e0 21 02 00 call 23e490 act.sa_flags = (int)SA_RESETHAND | SA_NODEFER; 21c2b0: c7 45 e0 14 00 00 00 movl $0x14,-0x20(%rbp) act.sa_handler = CRT_handleSIGSEGV; 21c2b7: 48 b8 40 c7 21 00 00 00 00 00 movabs $0x21c740,%rax 21c2c1: 48 89 45 d8 mov %rax,-0x28(%rbp) sigaction (SIGSEGV, &act, &old_sig_handler[SIGSEGV]); 21c2c5: bf 0b 00 00 00 mov $0xb,%edi 21c2ca: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c2ce: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c2d8: 48 81 c2 60 01 00 00 add $0x160,%rdx 21c2df: e8 9c 20 02 00 call 23e380 sigaction (SIGFPE, &act, &old_sig_handler[SIGFPE]); 21c2e4: bf 08 00 00 00 mov $0x8,%edi 21c2e9: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c2ed: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c2f7: 48 81 c2 00 01 00 00 add $0x100,%rdx 21c2fe: e8 7d 20 02 00 call 23e380 sigaction (SIGILL, &act, &old_sig_handler[SIGILL]); 21c303: bf 04 00 00 00 mov $0x4,%edi 21c308: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c30c: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c316: 48 81 c2 80 00 00 00 add $0x80,%rdx 21c31d: e8 5e 20 02 00 call 23e380 sigaction (SIGBUS, &act, &old_sig_handler[SIGBUS]); 21c322: bf 0a 00 00 00 mov $0xa,%edi 21c327: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c32b: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c335: 48 81 c2 40 01 00 00 add $0x140,%rdx 21c33c: e8 3f 20 02 00 call 23e380 sigaction (SIGPIPE, &act, &old_sig_handler[SIGPIPE]); 21c341: bf 0d 00 00 00 mov $0xd,%edi 21c346: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c34a: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c354: 48 81 c2 a0 01 00 00 add $0x1a0,%rdx 21c35b: e8 20 20 02 00 call 23e380 sigaction (SIGSYS, &act, &old_sig_handler[SIGSYS]); 21c360: bf 0c 00 00 00 mov $0xc,%edi 21c365: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c369: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c373: 48 81 c2 80 01 00 00 add $0x180,%rdx 21c37a: e8 01 20 02 00 call 23e380 sigaction (SIGABRT, &act, &old_sig_handler[SIGABRT]); 21c37f: bf 06 00 00 00 mov $0x6,%edi 21c384: 48 8d 75 d8 lea -0x28(%rbp),%rsi 21c388: 48 ba 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rdx 21c392: 48 81 c2 c0 00 00 00 add $0xc0,%rdx 21c399: e8 e2 1f 02 00 call 23e380 signal(SIGINT, CRT_handleSIGTERM); 21c39e: bf 02 00 00 00 mov $0x2,%edi 21c3a3: 48 be 80 cb 21 00 00 00 00 00 movabs $0x21cb80,%rsi 21c3ad: e8 de 1f 02 00 call 23e390 signal(SIGTERM, CRT_handleSIGTERM); 21c3b2: bf 0f 00 00 00 mov $0xf,%edi 21c3b7: 48 be 80 cb 21 00 00 00 00 00 movabs $0x21cb80,%rsi 21c3c1: e8 ca 1f 02 00 call 23e390 signal(SIGQUIT, CRT_handleSIGTERM); 21c3c6: bf 03 00 00 00 mov $0x3,%edi 21c3cb: 48 be 80 cb 21 00 00 00 00 00 movabs $0x21cb80,%rsi 21c3d5: e8 b6 1f 02 00 call 23e390 21c3da: 48 8b 05 4f 64 02 00 mov 0x2644f(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21c3e1: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21c3e5: 48 39 c8 cmp %rcx,%rax 21c3e8: 0f 85 06 00 00 00 jne 21c3f4 } 21c3ee: 48 83 c4 30 add $0x30,%rsp 21c3f2: 5d pop %rbp 21c3f3: c3 ret 21c3f4: e8 47 1d 02 00 call 23e140 <__stack_chk_fail@plt> 21c3f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021c400 : void CRT_enableDelay() { halfdelay(*CRT_delay); } void CRT_setColors(int colorScheme) { 21c400: 55 push %rbp 21c401: 48 89 e5 mov %rsp,%rbp 21c404: 48 83 ec 20 sub $0x20,%rsp 21c408: 89 7d fc mov %edi,-0x4(%rbp) CRT_colorScheme = colorScheme; 21c40b: 8b 45 fc mov -0x4(%rbp),%eax 21c40e: 89 04 25 68 1d 24 00 mov %eax,0x241d68 for (short int i = 0; i < 8; i++) { 21c415: 66 c7 45 fa 00 00 movw $0x0,-0x6(%rbp) 21c41b: 0f bf 45 fa movswl -0x6(%rbp),%eax 21c41f: 83 f8 08 cmp $0x8,%eax 21c422: 0f 8d e7 00 00 00 jge 21c50f for (short int j = 0; j < 8; j++) { 21c428: 66 c7 45 f8 00 00 movw $0x0,-0x8(%rbp) 21c42e: 0f bf 45 f8 movswl -0x8(%rbp),%eax 21c432: 83 f8 08 cmp $0x8,%eax 21c435: 0f 8d be 00 00 00 jge 21c4f9 if (ColorIndex(i, j) != ColorIndexGrayBlack && ColorIndex(i, j) != ColorIndexWhiteDefault) { 21c43b: 0f bf 4d fa movswl -0x6(%rbp),%ecx 21c43f: b8 07 00 00 00 mov $0x7,%eax 21c444: 29 c8 sub %ecx,%eax 21c446: c1 e0 03 shl $0x3,%eax 21c449: 0f bf 4d f8 movswl -0x8(%rbp),%ecx 21c44d: 01 c8 add %ecx,%eax 21c44f: 83 f8 15 cmp $0x15,%eax 21c452: 0f 84 8b 00 00 00 je 21c4e3 21c458: 0f bf 4d fa movswl -0x6(%rbp),%ecx 21c45c: b8 07 00 00 00 mov $0x7,%eax 21c461: 29 c8 sub %ecx,%eax 21c463: c1 e0 03 shl $0x3,%eax 21c466: 0f bf 4d f8 movswl -0x8(%rbp),%ecx 21c46a: 01 c8 add %ecx,%eax 21c46c: 83 f8 31 cmp $0x31,%eax 21c46f: 0f 84 6e 00 00 00 je 21c4e3 short int bg = (colorScheme != COLORSCHEME_BLACKNIGHT) 21c475: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) 21c479: 0f 84 2c 00 00 00 je 21c4ab ? (j == 0 ? -1 : j) 21c47f: 0f bf 45 f8 movswl -0x8(%rbp),%eax 21c483: 83 f8 00 cmp $0x0,%eax 21c486: 0f 85 0d 00 00 00 jne 21c499 21c48c: b8 ff ff ff ff mov $0xffffffff,%eax 21c491: 89 45 ec mov %eax,-0x14(%rbp) 21c494: e9 07 00 00 00 jmp 21c4a0 21c499: 0f bf 45 f8 movswl -0x8(%rbp),%eax 21c49d: 89 45 ec mov %eax,-0x14(%rbp) 21c4a0: 8b 45 ec mov -0x14(%rbp),%eax 21c4a3: 89 45 e8 mov %eax,-0x18(%rbp) short int bg = (colorScheme != COLORSCHEME_BLACKNIGHT) 21c4a6: e9 07 00 00 00 jmp 21c4b2 : j; 21c4ab: 0f bf 45 f8 movswl -0x8(%rbp),%eax 21c4af: 89 45 e8 mov %eax,-0x18(%rbp) 21c4b2: 8b 45 e8 mov -0x18(%rbp),%eax short int bg = (colorScheme != COLORSCHEME_BLACKNIGHT) 21c4b5: 66 89 45 f6 mov %ax,-0xa(%rbp) init_pair(ColorIndex(i, j), i, bg); 21c4b9: 0f bf 4d fa movswl -0x6(%rbp),%ecx 21c4bd: b8 07 00 00 00 mov $0x7,%eax 21c4c2: 29 c8 sub %ecx,%eax 21c4c4: c1 e0 03 shl $0x3,%eax 21c4c7: 0f bf 4d f8 movswl -0x8(%rbp),%ecx 21c4cb: 01 c8 add %ecx,%eax 21c4cd: 66 89 c1 mov %ax,%cx 21c4d0: 66 8b 45 fa mov -0x6(%rbp),%ax 21c4d4: 0f bf f9 movswl %cx,%edi 21c4d7: 0f bf f0 movswl %ax,%esi 21c4da: 0f bf 55 f6 movswl -0xa(%rbp),%edx 21c4de: e8 bd 1f 02 00 call 23e4a0 } } 21c4e3: e9 00 00 00 00 jmp 21c4e8 for (short int j = 0; j < 8; j++) { 21c4e8: 66 8b 45 f8 mov -0x8(%rbp),%ax 21c4ec: 66 83 c0 01 add $0x1,%ax 21c4f0: 66 89 45 f8 mov %ax,-0x8(%rbp) 21c4f4: e9 35 ff ff ff jmp 21c42e } 21c4f9: e9 00 00 00 00 jmp 21c4fe for (short int i = 0; i < 8; i++) { 21c4fe: 66 8b 45 fa mov -0x6(%rbp),%ax 21c502: 66 83 c0 01 add $0x1,%ax 21c506: 66 89 45 fa mov %ax,-0x6(%rbp) 21c50a: e9 0c ff ff ff jmp 21c41b short int grayBlackFg = COLORS > 8 ? 8 : 0; 21c50f: 8b 14 25 bc 28 24 00 mov 0x2428bc,%edx 21c516: 31 c0 xor %eax,%eax 21c518: b9 08 00 00 00 mov $0x8,%ecx 21c51d: 83 fa 08 cmp $0x8,%edx 21c520: 0f 4f c1 cmovg %ecx,%eax 21c523: 66 89 45 f4 mov %ax,-0xc(%rbp) short int grayBlackBg = (colorScheme != COLORSCHEME_BLACKNIGHT) ? -1 : 0; 21c527: 8b 55 fc mov -0x4(%rbp),%edx 21c52a: 31 c0 xor %eax,%eax 21c52c: b9 ff ff ff ff mov $0xffffffff,%ecx 21c531: 83 fa 05 cmp $0x5,%edx 21c534: 0f 45 c1 cmovne %ecx,%eax 21c537: 66 89 45 f2 mov %ax,-0xe(%rbp) init_pair(ColorIndexGrayBlack, grayBlackFg, grayBlackBg); 21c53b: 66 8b 45 f4 mov -0xc(%rbp),%ax 21c53f: bf 15 00 00 00 mov $0x15,%edi 21c544: 0f bf f0 movswl %ax,%esi 21c547: 0f bf 55 f2 movswl -0xe(%rbp),%edx 21c54b: e8 50 1f 02 00 call 23e4a0 init_pair(ColorIndexWhiteDefault, White, -1); 21c550: bf 31 00 00 00 mov $0x31,%edi 21c555: be 07 00 00 00 mov $0x7,%esi 21c55a: ba ff ff ff ff mov $0xffffffff,%edx 21c55f: e8 3c 1f 02 00 call 23e4a0 CRT_colors = CRT_colorSchemes[colorScheme]; 21c564: 48 63 4d fc movslq -0x4(%rbp),%rcx 21c568: 48 b8 e0 0c 24 00 00 00 00 00 movabs $0x240ce0,%rax 21c572: 48 69 c9 90 01 00 00 imul $0x190,%rcx,%rcx 21c579: 48 01 c8 add %rcx,%rax 21c57c: 48 89 04 25 80 21 24 00 mov %rax,0x242180 } 21c584: 48 83 c4 20 add $0x20,%rsp 21c588: 5d pop %rbp 21c589: c3 ret 21c58a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021c590 : static const char* initDegreeSign(void) { 21c590: 55 push %rbp 21c591: 48 89 e5 mov %rsp,%rbp 21c594: 48 83 ec 10 sub $0x10,%rsp if (CRT_utf8) 21c598: f6 04 25 60 1d 24 00 01 testb $0x1,0x241d60 21c5a0: 0f 84 13 00 00 00 je 21c5b9 return "\xc2\xb0"; 21c5a6: 48 b8 bc 3b 20 00 00 00 00 00 movabs $0x203bbc,%rax 21c5b0: 48 89 45 f8 mov %rax,-0x8(%rbp) 21c5b4: e9 53 00 00 00 jmp 21c60c int r = snprintf(buffer, sizeof(buffer), "%lc", 176); 21c5b9: 48 bf 90 21 24 00 00 00 00 00 movabs $0x242190,%rdi 21c5c3: be 04 00 00 00 mov $0x4,%esi 21c5c8: 48 ba ad 44 20 00 00 00 00 00 movabs $0x2044ad,%rdx 21c5d2: b9 b0 00 00 00 mov $0xb0,%ecx 21c5d7: b0 00 mov $0x0,%al 21c5d9: e8 d2 1e 02 00 call 23e4b0 21c5de: 89 45 f4 mov %eax,-0xc(%rbp) if (r > 0) 21c5e1: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 21c5e5: 0f 8e 13 00 00 00 jle 21c5fe return buffer; 21c5eb: 48 b8 90 21 24 00 00 00 00 00 movabs $0x242190,%rax 21c5f5: 48 89 45 f8 mov %rax,-0x8(%rbp) 21c5f9: e9 0e 00 00 00 jmp 21c60c return ""; 21c5fe: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 21c608: 48 89 45 f8 mov %rax,-0x8(%rbp) } 21c60c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21c610: 48 83 c4 10 add $0x10,%rsp 21c614: 5d pop %rbp 21c615: c3 ret 21c616: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021c620 : void CRT_done() { 21c620: 55 push %rbp 21c621: 48 89 e5 mov %rsp,%rbp curs_set(1); 21c624: bf 01 00 00 00 mov $0x1,%edi 21c629: e8 e2 1d 02 00 call 23e410 endwin(); 21c62e: e8 8d 1e 02 00 call 23e4c0 dumpStderr(); 21c633: e8 08 00 00 00 call 21c640 } 21c638: 5d pop %rbp 21c639: c3 ret 21c63a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021c640 : static void dumpStderr(void) { 21c640: 55 push %rbp 21c641: 48 89 e5 mov %rsp,%rbp } 21c644: 5d pop %rbp 21c645: c3 ret 21c646: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021c650 : void CRT_fatalError(const char* note) { 21c650: 55 push %rbp 21c651: 48 89 e5 mov %rsp,%rbp 21c654: 48 83 ec 10 sub $0x10,%rsp 21c658: 48 89 7d f8 mov %rdi,-0x8(%rbp) const char* sysMsg = strerror(errno); 21c65c: e8 bf 1c 02 00 call 23e320 <__error@plt> 21c661: 8b 38 mov (%rax),%edi 21c663: e8 08 1c 02 00 call 23e270 21c668: 48 89 45 f0 mov %rax,-0x10(%rbp) CRT_done(); 21c66c: e8 af ff ff ff call 21c620 fprintf(stderr, "%s: %s\n", note, sysMsg); 21c671: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c679: 48 8b 55 f8 mov -0x8(%rbp),%rdx 21c67d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21c681: 48 be 05 4a 20 00 00 00 00 00 movabs $0x204a05,%rsi 21c68b: b0 00 mov $0x0,%al 21c68d: e8 ee 1b 02 00 call 23e280 exit(2); 21c692: bf 02 00 00 00 mov $0x2,%edi 21c697: e8 74 1a 02 00 call 23e110 21c69c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021c6a0 : int CRT_readKey() { 21c6a0: 55 push %rbp 21c6a1: 48 89 e5 mov %rsp,%rbp 21c6a4: 48 83 ec 10 sub $0x10,%rsp nocbreak(); 21c6a8: e8 23 1e 02 00 call 23e4d0 cbreak(); 21c6ad: e8 2e 1e 02 00 call 23e4e0 nodelay(stdscr, FALSE); 21c6b2: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21c6ba: 31 f6 xor %esi,%esi 21c6bc: e8 2f 1e 02 00 call 23e4f0 int ret = getch(); 21c6c1: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21c6c9: e8 32 1e 02 00 call 23e500 21c6ce: 89 45 fc mov %eax,-0x4(%rbp) halfdelay(*CRT_delay); 21c6d1: 48 8b 04 25 78 21 24 00 mov 0x242178,%rax 21c6d9: 8b 38 mov (%rax),%edi 21c6db: e8 e0 1c 02 00 call 23e3c0 return ret; 21c6e0: 8b 45 fc mov -0x4(%rbp),%eax 21c6e3: 48 83 c4 10 add $0x10,%rsp 21c6e7: 5d pop %rbp 21c6e8: c3 ret 21c6e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021c6f0 : void CRT_disableDelay() { 21c6f0: 55 push %rbp 21c6f1: 48 89 e5 mov %rsp,%rbp nocbreak(); 21c6f4: e8 d7 1d 02 00 call 23e4d0 cbreak(); 21c6f9: e8 e2 1d 02 00 call 23e4e0 nodelay(stdscr, TRUE); 21c6fe: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21c706: be 01 00 00 00 mov $0x1,%esi 21c70b: e8 e0 1d 02 00 call 23e4f0 } 21c710: 5d pop %rbp 21c711: c3 ret 21c712: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21c71c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021c720 : void CRT_enableDelay() { 21c720: 55 push %rbp 21c721: 48 89 e5 mov %rsp,%rbp halfdelay(*CRT_delay); 21c724: 48 8b 04 25 78 21 24 00 mov 0x242178,%rax 21c72c: 8b 38 mov (%rax),%edi 21c72e: e8 8d 1c 02 00 call 23e3c0 } 21c733: 5d pop %rbp 21c734: c3 ret 21c735: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21c73f: 90 nop 000000000021c740 : #error No implementation for print_backtrace()! #endif } #endif void CRT_handleSIGSEGV(int signal) { 21c740: 55 push %rbp 21c741: 48 89 e5 mov %rsp,%rbp 21c744: 48 83 ec 10 sub $0x10,%rsp 21c748: 89 7d fc mov %edi,-0x4(%rbp) CRT_done(); 21c74b: e8 d0 fe ff ff call 21c620 fprintf(stderr, "\n\n" 21c750: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c758: 48 be 3a 51 20 00 00 00 00 00 movabs $0x20513a,%rsi 21c762: b0 00 mov $0x0,%al 21c764: e8 17 1b 02 00 call 23e280 " - Your distribution and release (lsb_release -a)\n" " - Likely steps to reproduce (How did it happen?)\n" ); #ifdef PRINT_BACKTRACE fprintf(stderr, " - Backtrace of the issue (see below)\n"); 21c769: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c771: 48 be 97 65 20 00 00 00 00 00 movabs $0x206597,%rsi 21c77b: b0 00 mov $0x0,%al 21c77d: e8 fe 1a 02 00 call 23e280 #endif fprintf(stderr, 21c782: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c78a: 48 be 9b 5a 20 00 00 00 00 00 movabs $0x205a9b,%rsi 21c794: b0 00 mov $0x0,%al 21c796: e8 e5 1a 02 00 call 23e280 "\n" ); const char* signal_str = strsignal(signal); 21c79b: 8b 7d fc mov -0x4(%rbp),%edi 21c79e: e8 6d 1d 02 00 call 23e510 21c7a3: 48 89 45 f0 mov %rax,-0x10(%rbp) if (!signal_str) { 21c7a7: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 21c7ac: 0f 85 0e 00 00 00 jne 21c7c0 signal_str = "unknown reason"; 21c7b2: 48 b8 bd 63 20 00 00 00 00 00 movabs $0x2063bd,%rax 21c7bc: 48 89 45 f0 mov %rax,-0x10(%rbp) } fprintf(stderr, 21c7c0: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi "Error information:\n" "------------------\n" "A signal %d (%s) was received.\n" "\n", signal, signal_str 21c7c8: 8b 55 fc mov -0x4(%rbp),%edx 21c7cb: 48 8b 4d f0 mov -0x10(%rbp),%rcx fprintf(stderr, 21c7cf: 48 be 8e 56 20 00 00 00 00 00 movabs $0x20568e,%rsi 21c7d9: b0 00 mov $0x0,%al 21c7db: e8 a0 1a 02 00 call 23e280 ); fprintf(stderr, 21c7e0: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c7e8: 48 be 9f 39 20 00 00 00 00 00 movabs $0x20399f,%rsi 21c7f2: b0 00 mov $0x0,%al 21c7f4: e8 87 1a 02 00 call 23e280 "Setting information:\n" "--------------------\n"); Settings_write(CRT_crashSettings, true); 21c7f9: 48 8b 3c 25 70 21 24 00 mov 0x242170,%rdi 21c801: be 01 00 00 00 mov $0x1,%esi 21c806: e8 15 72 01 00 call 233a20 fprintf(stderr, "\n\n"); 21c80b: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c813: 48 be 0d 4a 20 00 00 00 00 00 movabs $0x204a0d,%rsi 21c81d: b0 00 mov $0x0,%al 21c81f: e8 5c 1a 02 00 call 23e280 #ifdef PRINT_BACKTRACE fprintf(stderr, 21c824: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c82c: 48 be f9 47 20 00 00 00 00 00 movabs $0x2047f9,%rsi 21c836: b0 00 mov $0x0,%al 21c838: e8 43 1a 02 00 call 23e280 "Backtrace information:\n" "----------------------\n" ); print_backtrace(); 21c83d: e8 de 00 00 00 call 21c920 fprintf(stderr, 21c842: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c84a: 48 be 33 31 20 00 00 00 00 00 movabs $0x203133,%rsi 21c854: b0 00 mov $0x0,%al 21c856: e8 25 1a 02 00 call 23e280 ); #ifdef HTOP_DARWIN fprintf(stderr, " otool -tvV `which "PACKAGE"` > ~/htop.otool\n"); #else fprintf(stderr, " objdump -d -S -w `which "PACKAGE"` > ~/htop.objdump\n"); 21c85b: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c863: 48 be 9d 5a 20 00 00 00 00 00 movabs $0x205a9d,%rsi 21c86d: b0 00 mov $0x0,%al 21c86f: e8 0c 1a 02 00 call 23e280 #endif fprintf(stderr, 21c874: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c87c: 48 be d5 56 20 00 00 00 00 00 movabs $0x2056d5,%rsi 21c886: b0 00 mov $0x0,%al 21c888: e8 f3 19 02 00 call 23e280 "\n" "Please include the generated file in your report.\n" ); #endif fprintf(stderr, 21c88d: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c895: 48 be 33 3b 20 00 00 00 00 00 movabs $0x203b33,%rsi 21c89f: b0 00 mov $0x0,%al 21c8a1: e8 da 19 02 00 call 23e280 "Thank you for helping to improve "PACKAGE"!\n" "\n" ); /* Call old sigsegv handler; may be default exit or third party one (e.g. ASAN) */ if (sigaction (signal, &old_sig_handler[signal], NULL) < 0) { 21c8a6: 8b 7d fc mov -0x4(%rbp),%edi 21c8a9: 48 63 45 fc movslq -0x4(%rbp),%rax 21c8ad: 48 be 70 1d 24 00 00 00 00 00 movabs $0x241d70,%rsi 21c8b7: 48 c1 e0 05 shl $0x5,%rax 21c8bb: 48 01 c6 add %rax,%rsi 21c8be: 31 c0 xor %eax,%eax 21c8c0: 89 c2 mov %eax,%edx 21c8c2: e8 b9 1a 02 00 call 23e380 21c8c7: 83 f8 00 cmp $0x0,%eax 21c8ca: 0f 8d 23 00 00 00 jge 21c8f3 /* This avoids an infinite loop in case the handler could not be reset. */ fprintf(stderr, 21c8d0: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c8d8: 48 be 10 4a 20 00 00 00 00 00 movabs $0x204a10,%rsi 21c8e2: b0 00 mov $0x0,%al 21c8e4: e8 97 19 02 00 call 23e280 "!!! Chained handler could not be restored. Forcing exit.\n" ); _exit(1); 21c8e9: bf 01 00 00 00 mov $0x1,%edi 21c8ee: e8 2d 1c 02 00 call 23e520 <_exit@plt> } /* Trigger the previous signal handler. */ raise(signal); 21c8f3: 8b 7d fc mov -0x4(%rbp),%edi 21c8f6: e8 35 1c 02 00 call 23e530 // Always terminate, even if installed handler returns fprintf(stderr, 21c8fb: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21c903: 48 be 0a 6b 20 00 00 00 00 00 movabs $0x206b0a,%rsi 21c90d: b0 00 mov $0x0,%al 21c90f: e8 6c 19 02 00 call 23e280 "!!! Chained handler did not exit. Forcing exit.\n" ); _exit(1); 21c914: bf 01 00 00 00 mov $0x1,%edi 21c919: e8 02 1c 02 00 call 23e520 <_exit@plt> 21c91e: 66 90 xchg %ax,%ax 000000000021c920 : static void print_backtrace(void) { 21c920: 55 push %rbp 21c921: 48 89 e5 mov %rsp,%rbp 21c924: 53 push %rbx 21c925: 48 81 ec 38 09 00 00 sub $0x938,%rsp 21c92c: 48 8b 05 fd 5e 02 00 mov 0x25efd(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21c933: 48 89 45 f0 mov %rax,-0x10(%rbp) unw_getcontext(&context); 21c937: 48 8d bd 80 fc ff ff lea -0x380(%rbp),%rdi 21c93e: e8 fd 1b 02 00 call 23e540 <_Ux86_64_getcontext@plt> unw_init_local(&cursor, &context); 21c943: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21c94a: 48 8d b5 80 fc ff ff lea -0x380(%rbp),%rsi 21c951: e8 fa 1b 02 00 call 23e550 <_ULx86_64_init_local@plt> unsigned int item = 0; 21c956: c7 85 04 f7 ff ff 00 00 00 00 movl $0x0,-0x8fc(%rbp) while (unw_step(&cursor) > 0) { 21c960: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21c967: e8 f4 1b 02 00 call 23e560 <_ULx86_64_step@plt> 21c96c: 83 f8 00 cmp $0x0,%eax 21c96f: 0f 8e dd 01 00 00 jle 21cb52 unw_get_reg(&cursor, UNW_REG_IP, &pc); 21c975: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21c97c: be 10 00 00 00 mov $0x10,%esi 21c981: 48 8d 95 78 f7 ff ff lea -0x888(%rbp),%rdx 21c988: e8 e3 1b 02 00 call 23e570 <_ULx86_64_get_reg@plt> if (pc == 0) 21c98d: 48 83 bd 78 f7 ff ff 00 cmpq $0x0,-0x888(%rbp) 21c995: 0f 85 05 00 00 00 jne 21c9a0 break; 21c99b: e9 b2 01 00 00 jmp 21cb52 char symbolName[256] = "?"; 21c9a0: 48 8d bd 80 f7 ff ff lea -0x880(%rbp),%rdi 21c9a7: 31 f6 xor %esi,%esi 21c9a9: ba 00 01 00 00 mov $0x100,%edx 21c9ae: e8 8d 18 02 00 call 23e240 21c9b3: c6 85 80 f7 ff ff 3f movb $0x3f,-0x880(%rbp) unw_word_t offset = 0; 21c9ba: 48 c7 85 70 f7 ff ff 00 00 00 00 movq $0x0,-0x890(%rbp) unw_get_proc_name(&cursor, symbolName, sizeof(symbolName), &offset); 21c9c5: 48 8d b5 80 f7 ff ff lea -0x880(%rbp),%rsi 21c9cc: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21c9d3: ba 00 01 00 00 mov $0x100,%edx 21c9d8: 48 8d 8d 70 f7 ff ff lea -0x890(%rbp),%rcx 21c9df: e8 9c 1b 02 00 call 23e580 <_ULx86_64_get_proc_name@plt> pip.unwind_info = NULL; 21c9e4: 48 c7 85 60 f7 ff ff 00 00 00 00 movq $0x0,-0x8a0(%rbp) const char* fname = "?"; 21c9ef: 48 b8 b1 44 20 00 00 00 00 00 movabs $0x2044b1,%rax 21c9f9: 48 89 85 f8 f6 ff ff mov %rax,-0x908(%rbp) const void* ptr = 0; 21ca00: 48 c7 85 f0 f6 ff ff 00 00 00 00 movq $0x0,-0x910(%rbp) if (unw_get_proc_info(&cursor, &pip) == 0) { 21ca0b: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21ca12: 48 8d b5 28 f7 ff ff lea -0x8d8(%rbp),%rsi 21ca19: e8 72 1b 02 00 call 23e590 <_ULx86_64_get_proc_info@plt> 21ca1e: 83 f8 00 cmp $0x0,%eax 21ca21: 0f 85 65 00 00 00 jne 21ca8c ptr = (const void*)(pip.start_ip + offset); 21ca27: 48 8b 85 28 f7 ff ff mov -0x8d8(%rbp),%rax 21ca2e: 48 03 85 70 f7 ff ff add -0x890(%rbp),%rax 21ca35: 48 89 85 f0 f6 ff ff mov %rax,-0x910(%rbp) if (dladdr(ptr, &dlinfo) && dlinfo.dli_fname && *dlinfo.dli_fname) 21ca3c: 48 8b bd f0 f6 ff ff mov -0x910(%rbp),%rdi 21ca43: 48 8d b5 08 f7 ff ff lea -0x8f8(%rbp),%rsi 21ca4a: e8 51 1b 02 00 call 23e5a0 21ca4f: 83 f8 00 cmp $0x0,%eax 21ca52: 0f 84 2f 00 00 00 je 21ca87 21ca58: 48 83 bd 08 f7 ff ff 00 cmpq $0x0,-0x8f8(%rbp) 21ca60: 0f 84 21 00 00 00 je 21ca87 21ca66: 48 8b 85 08 f7 ff ff mov -0x8f8(%rbp),%rax 21ca6d: 0f be 00 movsbl (%rax),%eax 21ca70: 83 f8 00 cmp $0x0,%eax 21ca73: 0f 84 0e 00 00 00 je 21ca87 fname = dlinfo.dli_fname; 21ca79: 48 8b 85 08 f7 ff ff mov -0x8f8(%rbp),%rax 21ca80: 48 89 85 f8 f6 ff ff mov %rax,-0x908(%rbp) } 21ca87: e9 00 00 00 00 jmp 21ca8c const char* frame = ""; 21ca8c: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 21ca96: 48 89 85 e8 f6 ff ff mov %rax,-0x918(%rbp) if (unw_is_signal_frame(&cursor) > 0) 21ca9d: 48 8d bd 88 f8 ff ff lea -0x778(%rbp),%rdi 21caa4: e8 07 1b 02 00 call 23e5b0 <_ULx86_64_is_signal_frame@plt> 21caa9: 83 f8 00 cmp $0x0,%eax 21caac: 0f 8e 11 00 00 00 jle 21cac3 frame = "{signal frame}"; 21cab2: 48 b8 88 37 20 00 00 00 00 00 movabs $0x203788,%rax 21cabc: 48 89 85 e8 f6 ff ff mov %rax,-0x918(%rbp) fprintf(stderr, "%2u: %#14lx %s (%s+%#lx) [%p]%s%s\n", item++, pc, fname, symbolName, offset, ptr, frame ? " " : "", frame); 21cac3: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 21cacb: 8b 95 04 f7 ff ff mov -0x8fc(%rbp),%edx 21cad1: 89 d0 mov %edx,%eax 21cad3: 83 c0 01 add $0x1,%eax 21cad6: 89 85 04 f7 ff ff mov %eax,-0x8fc(%rbp) 21cadc: 48 8b 8d 78 f7 ff ff mov -0x888(%rbp),%rcx 21cae3: 4c 8b 85 f8 f6 ff ff mov -0x908(%rbp),%r8 21caea: 4c 8d 8d 80 f7 ff ff lea -0x880(%rbp),%r9 21caf1: 48 8b 9d 70 f7 ff ff mov -0x890(%rbp),%rbx 21caf8: 4c 8b 9d f0 f6 ff ff mov -0x910(%rbp),%r11 21caff: 48 8b b5 e8 f6 ff ff mov -0x918(%rbp),%rsi 21cb06: 49 ba ff 66 20 00 00 00 00 00 movabs $0x2066ff,%r10 21cb10: 48 b8 5b 43 20 00 00 00 00 00 movabs $0x20435b,%rax 21cb1a: 48 83 fe 00 cmp $0x0,%rsi 21cb1e: 4c 0f 45 d0 cmovne %rax,%r10 21cb22: 48 8b 85 e8 f6 ff ff mov -0x918(%rbp),%rax 21cb29: 48 be 3b 6b 20 00 00 00 00 00 movabs $0x206b3b,%rsi 21cb33: 48 89 1c 24 mov %rbx,(%rsp) 21cb37: 4c 89 5c 24 08 mov %r11,0x8(%rsp) 21cb3c: 4c 89 54 24 10 mov %r10,0x10(%rsp) 21cb41: 48 89 44 24 18 mov %rax,0x18(%rsp) 21cb46: b0 00 mov $0x0,%al 21cb48: e8 33 17 02 00 call 23e280 while (unw_step(&cursor) > 0) { 21cb4d: e9 0e fe ff ff jmp 21c960 21cb52: 48 8b 05 d7 5c 02 00 mov 0x25cd7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cb59: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21cb5d: 48 39 c8 cmp %rcx,%rax 21cb60: 0f 85 0a 00 00 00 jne 21cb70 } 21cb66: 48 81 c4 38 09 00 00 add $0x938,%rsp 21cb6d: 5b pop %rbx 21cb6e: 5d pop %rbp 21cb6f: c3 ret 21cb70: e8 cb 15 02 00 call 23e140 <__stack_chk_fail@plt> 21cb75: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21cb7f: 90 nop 000000000021cb80 : static void CRT_handleSIGTERM(ATTR_UNUSED int sgn) { 21cb80: 55 push %rbp 21cb81: 48 89 e5 mov %rsp,%rbp 21cb84: 48 83 ec 10 sub $0x10,%rsp 21cb88: 89 7d fc mov %edi,-0x4(%rbp) CRT_done(); 21cb8b: e8 90 fa ff ff call 21c620 _exit(0); 21cb90: 31 ff xor %edi,%edi 21cb92: e8 89 19 02 00 call 23e520 <_exit@plt> 21cb97: cc int3 21cb98: cc int3 21cb99: cc int3 21cb9a: cc int3 21cb9b: cc int3 21cb9c: cc int3 21cb9d: cc int3 21cb9e: cc int3 21cb9f: cc int3 000000000021cba0 : static const int DateMeter_attributes[] = { DATE }; static void DateMeter_updateValues(Meter* this) { 21cba0: 55 push %rbp 21cba1: 48 89 e5 mov %rsp,%rbp 21cba4: 48 83 ec 60 sub $0x60,%rsp 21cba8: 48 8b 05 81 5c 02 00 mov 0x25c81(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cbaf: 48 89 45 f8 mov %rax,-0x8(%rbp) 21cbb3: 48 89 7d b8 mov %rdi,-0x48(%rbp) const ProcessList* pl = this->pl; 21cbb7: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cbbb: 48 8b 40 30 mov 0x30(%rax),%rax 21cbbf: 48 89 45 b0 mov %rax,-0x50(%rbp) struct tm result; const struct tm* lt = localtime_r(&pl->realtime.tv_sec, &result); 21cbc3: 48 8b 7d b0 mov -0x50(%rbp),%rdi 21cbc7: 48 83 c7 48 add $0x48,%rdi 21cbcb: 48 8d 75 c0 lea -0x40(%rbp),%rsi 21cbcf: e8 2c 16 02 00 call 23e200 21cbd4: 48 89 45 a8 mov %rax,-0x58(%rbp) this->values[0] = lt->tm_yday; 21cbd8: 48 8b 45 a8 mov -0x58(%rbp),%rax 21cbdc: f2 0f 2a 40 1c cvtsi2sdl 0x1c(%rax),%xmm0 21cbe1: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cbe5: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21cbec: f2 0f 11 00 movsd %xmm0,(%rax) int year = lt->tm_year + 1900; 21cbf0: 48 8b 45 a8 mov -0x58(%rbp),%rax 21cbf4: 8b 40 14 mov 0x14(%rax),%eax 21cbf7: 05 6c 07 00 00 add $0x76c,%eax 21cbfc: 89 45 a4 mov %eax,-0x5c(%rbp) if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { 21cbff: 8b 45 a4 mov -0x5c(%rbp),%eax 21cc02: b9 04 00 00 00 mov $0x4,%ecx 21cc07: 99 cltd 21cc08: f7 f9 idiv %ecx 21cc0a: 83 fa 00 cmp $0x0,%edx 21cc0d: 0f 85 14 00 00 00 jne 21cc27 21cc13: 8b 45 a4 mov -0x5c(%rbp),%eax 21cc16: b9 64 00 00 00 mov $0x64,%ecx 21cc1b: 99 cltd 21cc1c: f7 f9 idiv %ecx 21cc1e: 83 fa 00 cmp $0x0,%edx 21cc21: 0f 85 14 00 00 00 jne 21cc3b 21cc27: 8b 45 a4 mov -0x5c(%rbp),%eax 21cc2a: b9 90 01 00 00 mov $0x190,%ecx 21cc2f: 99 cltd 21cc30: f7 f9 idiv %ecx 21cc32: 83 fa 00 cmp $0x0,%edx 21cc35: 0f 85 19 00 00 00 jne 21cc54 this->total = 366; 21cc3b: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cc3f: f2 0f 10 05 c1 a6 fe ff movsd -0x1593f(%rip),%xmm0 # 207308 21cc47: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else { 21cc4f: e9 14 00 00 00 jmp 21cc68 this->total = 365; 21cc54: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cc58: f2 0f 10 05 a0 a6 fe ff movsd -0x15960(%rip),%xmm0 # 207300 21cc60: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } strftime(this->txtBuffer, sizeof(this->txtBuffer), "%F", lt); 21cc68: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21cc6c: 48 83 c7 48 add $0x48,%rdi 21cc70: 48 8b 4d a8 mov -0x58(%rbp),%rcx 21cc74: be 00 01 00 00 mov $0x100,%esi 21cc79: 48 ba bf 3b 20 00 00 00 00 00 movabs $0x203bbf,%rdx 21cc83: e8 88 15 02 00 call 23e210 21cc88: 48 8b 05 a1 5b 02 00 mov 0x25ba1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cc8f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21cc93: 48 39 c8 cmp %rcx,%rax 21cc96: 0f 85 06 00 00 00 jne 21cca2 } 21cc9c: 48 83 c4 60 add $0x60,%rsp 21cca0: 5d pop %rbp 21cca1: c3 ret 21cca2: e8 99 14 02 00 call 23e140 <__stack_chk_fail@plt> 21cca7: cc int3 21cca8: cc int3 21cca9: cc int3 21ccaa: cc int3 21ccab: cc int3 21ccac: cc int3 21ccad: cc int3 21ccae: cc int3 21ccaf: cc int3 000000000021ccb0 : static const int DateTimeMeter_attributes[] = { DATETIME }; static void DateTimeMeter_updateValues(Meter* this) { 21ccb0: 55 push %rbp 21ccb1: 48 89 e5 mov %rsp,%rbp 21ccb4: 48 83 ec 60 sub $0x60,%rsp 21ccb8: 48 8b 05 71 5b 02 00 mov 0x25b71(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21ccbf: 48 89 45 f8 mov %rax,-0x8(%rbp) 21ccc3: 48 89 7d b8 mov %rdi,-0x48(%rbp) const ProcessList* pl = this->pl; 21ccc7: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cccb: 48 8b 40 30 mov 0x30(%rax),%rax 21cccf: 48 89 45 b0 mov %rax,-0x50(%rbp) struct tm result; const struct tm* lt = localtime_r(&pl->realtime.tv_sec, &result); 21ccd3: 48 8b 7d b0 mov -0x50(%rbp),%rdi 21ccd7: 48 83 c7 48 add $0x48,%rdi 21ccdb: 48 8d 75 c0 lea -0x40(%rbp),%rsi 21ccdf: e8 1c 15 02 00 call 23e200 21cce4: 48 89 45 a8 mov %rax,-0x58(%rbp) int year = lt->tm_year + 1900; 21cce8: 48 8b 45 a8 mov -0x58(%rbp),%rax 21ccec: 8b 40 14 mov 0x14(%rax),%eax 21ccef: 05 6c 07 00 00 add $0x76c,%eax 21ccf4: 89 45 a4 mov %eax,-0x5c(%rbp) if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { 21ccf7: 8b 45 a4 mov -0x5c(%rbp),%eax 21ccfa: b9 04 00 00 00 mov $0x4,%ecx 21ccff: 99 cltd 21cd00: f7 f9 idiv %ecx 21cd02: 83 fa 00 cmp $0x0,%edx 21cd05: 0f 85 14 00 00 00 jne 21cd1f 21cd0b: 8b 45 a4 mov -0x5c(%rbp),%eax 21cd0e: b9 64 00 00 00 mov $0x64,%ecx 21cd13: 99 cltd 21cd14: f7 f9 idiv %ecx 21cd16: 83 fa 00 cmp $0x0,%edx 21cd19: 0f 85 14 00 00 00 jne 21cd33 21cd1f: 8b 45 a4 mov -0x5c(%rbp),%eax 21cd22: b9 90 01 00 00 mov $0x190,%ecx 21cd27: 99 cltd 21cd28: f7 f9 idiv %ecx 21cd2a: 83 fa 00 cmp $0x0,%edx 21cd2d: 0f 85 19 00 00 00 jne 21cd4c this->total = 366; 21cd33: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cd37: f2 0f 10 05 c9 a5 fe ff movsd -0x15a37(%rip),%xmm0 # 207308 21cd3f: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else { 21cd47: e9 14 00 00 00 jmp 21cd60 this->total = 365; 21cd4c: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cd50: f2 0f 10 05 a8 a5 fe ff movsd -0x15a58(%rip),%xmm0 # 207300 21cd58: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } this->values[0] = lt->tm_yday; 21cd60: 48 8b 45 a8 mov -0x58(%rbp),%rax 21cd64: f2 0f 2a 40 1c cvtsi2sdl 0x1c(%rax),%xmm0 21cd69: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cd6d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21cd74: f2 0f 11 00 movsd %xmm0,(%rax) strftime(this->txtBuffer, sizeof(this->txtBuffer), "%F %H:%M:%S", lt); 21cd78: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21cd7c: 48 83 c7 48 add $0x48,%rdi 21cd80: 48 8b 4d a8 mov -0x58(%rbp),%rcx 21cd84: be 00 01 00 00 mov $0x100,%esi 21cd89: 48 ba bb 41 20 00 00 00 00 00 movabs $0x2041bb,%rdx 21cd93: e8 78 14 02 00 call 23e210 21cd98: 48 8b 05 91 5a 02 00 mov 0x25a91(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cd9f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21cda3: 48 39 c8 cmp %rcx,%rax 21cda6: 0f 85 06 00 00 00 jne 21cdb2 } 21cdac: 48 83 c4 60 add $0x60,%rsp 21cdb0: 5d pop %rbp 21cdb1: c3 ret 21cdb2: e8 89 13 02 00 call 23e140 <__stack_chk_fail@plt> 21cdb7: cc int3 21cdb8: cc int3 21cdb9: cc int3 21cdba: cc int3 21cdbb: cc int3 21cdbc: cc int3 21cdbd: cc int3 21cdbe: cc int3 21cdbf: cc int3 000000000021cdc0 : Meter_humanUnit(bufferRead, cached_read_diff, sizeof(bufferRead)); Meter_humanUnit(bufferWrite, cached_write_diff, sizeof(bufferWrite)); snprintf(this->txtBuffer, sizeof(this->txtBuffer), "%sB %sB %.1f%%", bufferRead, bufferWrite, cached_utilisation_diff); } static void DiskIOMeter_display(ATTR_UNUSED const Object* cast, RichString* out) { 21cdc0: 55 push %rbp 21cdc1: 48 89 e5 mov %rsp,%rbp 21cdc4: 48 83 ec 40 sub $0x40,%rsp 21cdc8: 48 8b 05 61 5a 02 00 mov 0x25a61(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cdcf: 48 89 45 f8 mov %rax,-0x8(%rbp) 21cdd3: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21cdd7: 48 89 75 d0 mov %rsi,-0x30(%rbp) if (!hasData) { 21cddb: f6 04 25 98 21 24 00 01 testb $0x1,0x242198 21cde3: 0f 85 23 00 00 00 jne 21ce0c RichString_writeAscii(out, CRT_colors[METER_VALUE_ERROR], "no data"); 21cde9: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21cded: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21cdf5: 8b 70 40 mov 0x40(%rax),%esi 21cdf8: 48 ba 68 3d 20 00 00 00 00 00 movabs $0x203d68,%rdx 21ce02: e8 59 59 01 00 call 232760 return; 21ce07: e9 04 01 00 00 jmp 21cf10 } char buffer[16]; int len; int color = cached_utilisation_diff > 40.0 ? METER_VALUE_NOTICE : METER_VALUE; 21ce0c: f2 0f 10 04 25 a0 21 24 00 movsd 0x2421a0,%xmm0 21ce15: f2 0f 10 0d 3b a5 fe ff movsd -0x15ac5(%rip),%xmm1 # 207358 21ce1d: b8 0f 00 00 00 mov $0xf,%eax 21ce22: b9 13 00 00 00 mov $0x13,%ecx 21ce27: 66 0f 2e c1 ucomisd %xmm1,%xmm0 21ce2b: 0f 47 c1 cmova %ecx,%eax 21ce2e: 89 45 c8 mov %eax,-0x38(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%.1f%%", cached_utilisation_diff); 21ce31: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21ce35: f2 0f 10 04 25 a0 21 24 00 movsd 0x2421a0,%xmm0 21ce3e: be 10 00 00 00 mov $0x10,%esi 21ce43: 48 ba 5c 3d 20 00 00 00 00 00 movabs $0x203d5c,%rdx 21ce4d: b0 01 mov $0x1,%al 21ce4f: e8 9c c6 01 00 call 2394f0 21ce54: 89 45 cc mov %eax,-0x34(%rbp) RichString_appendnAscii(out, CRT_colors[color], buffer, len); 21ce57: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21ce5b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ce63: 48 63 4d c8 movslq -0x38(%rbp),%rcx 21ce67: 8b 34 88 mov (%rax,%rcx,4),%esi 21ce6a: 48 8d 55 e0 lea -0x20(%rbp),%rdx 21ce6e: 8b 4d cc mov -0x34(%rbp),%ecx 21ce71: e8 aa 58 01 00 call 232720 RichString_appendAscii(out, CRT_colors[METER_TEXT], " read: "); 21ce76: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21ce7a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ce82: 8b 70 38 mov 0x38(%rax),%esi 21ce85: 48 ba b3 54 20 00 00 00 00 00 movabs $0x2054b3,%rdx 21ce8f: e8 ec 56 01 00 call 232580 Meter_humanUnit(buffer, cached_read_diff, sizeof(buffer)); 21ce94: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21ce98: 8b 04 25 a8 21 24 00 mov 0x2421a8,%eax 21ce9f: 89 c6 mov %eax,%esi 21cea1: ba 10 00 00 00 mov $0x10,%edx 21cea6: e8 65 6b 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOREAD], buffer); 21ceab: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21ceaf: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ceb7: 8b 70 44 mov 0x44(%rax),%esi 21ceba: 48 8d 55 e0 lea -0x20(%rbp),%rdx 21cebe: e8 bd 56 01 00 call 232580 RichString_appendAscii(out, CRT_colors[METER_TEXT], " write: "); 21cec3: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21cec7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21cecf: 8b 70 38 mov 0x38(%rax),%esi 21ced2: 48 ba e7 68 20 00 00 00 00 00 movabs $0x2068e7,%rdx 21cedc: e8 9f 56 01 00 call 232580 Meter_humanUnit(buffer, cached_write_diff, sizeof(buffer)); 21cee1: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21cee5: 8b 04 25 ac 21 24 00 mov 0x2421ac,%eax 21ceec: 89 c6 mov %eax,%esi 21ceee: ba 10 00 00 00 mov $0x10,%edx 21cef3: e8 18 6b 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOWRITE], buffer); 21cef8: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21cefc: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21cf04: 8b 70 48 mov 0x48(%rax),%esi 21cf07: 48 8d 55 e0 lea -0x20(%rbp),%rdx 21cf0b: e8 70 56 01 00 call 232580 21cf10: 48 8b 05 19 59 02 00 mov 0x25919(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cf17: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21cf1b: 48 39 c8 cmp %rcx,%rax 21cf1e: 0f 85 06 00 00 00 jne 21cf2a } 21cf24: 48 83 c4 40 add $0x40,%rsp 21cf28: 5d pop %rbp 21cf29: c3 ret 21cf2a: e8 11 12 02 00 call 23e140 <__stack_chk_fail@plt> 21cf2f: 90 nop 000000000021cf30 : static void DiskIOMeter_updateValues(Meter* this) { 21cf30: 55 push %rbp 21cf31: 48 89 e5 mov %rsp,%rbp 21cf34: 48 83 ec 60 sub $0x60,%rsp 21cf38: 48 8b 05 f1 58 02 00 mov 0x258f1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21cf3f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21cf43: 48 89 7d c0 mov %rdi,-0x40(%rbp) const ProcessList* pl = this->pl; 21cf47: 48 8b 45 c0 mov -0x40(%rbp),%rax 21cf4b: 48 8b 40 30 mov 0x30(%rax),%rax 21cf4f: 48 89 45 b8 mov %rax,-0x48(%rbp) uint64_t passedTimeInMs = pl->realtimeMs - cached_last_update; 21cf53: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cf57: 48 8b 40 58 mov 0x58(%rax),%rax 21cf5b: 48 2b 04 25 b0 21 24 00 sub 0x2421b0,%rax 21cf63: 48 89 45 b0 mov %rax,-0x50(%rbp) if (passedTimeInMs > 500) { 21cf67: 48 81 7d b0 f4 01 00 00 cmpq $0x1f4,-0x50(%rbp) 21cf6f: 0f 86 a8 01 00 00 jbe 21d11d cached_last_update = pl->realtimeMs; 21cf75: 48 8b 45 b8 mov -0x48(%rbp),%rax 21cf79: 48 8b 40 58 mov 0x58(%rax),%rax 21cf7d: 48 89 04 25 b0 21 24 00 mov %rax,0x2421b0 hasData = Platform_getDiskIO(&data); 21cf85: 48 8d 7d c8 lea -0x38(%rbp),%rdi 21cf89: e8 b2 d0 01 00 call 23a040 21cf8e: 24 01 and $0x1,%al 21cf90: 88 04 25 98 21 24 00 mov %al,0x242198 if (!hasData) { 21cf97: f6 04 25 98 21 24 00 01 testb $0x1,0x242198 21cf9f: 0f 85 35 00 00 00 jne 21cfda this->values[0] = 0; 21cfa5: 48 8b 45 c0 mov -0x40(%rbp),%rax 21cfa9: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21cfb0: 0f 57 c0 xorps %xmm0,%xmm0 21cfb3: f2 0f 11 00 movsd %xmm0,(%rax) xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "no data"); 21cfb7: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21cfbb: 48 83 c7 48 add $0x48,%rdi 21cfbf: be 00 01 00 00 mov $0x100,%esi 21cfc4: 48 ba 68 3d 20 00 00 00 00 00 movabs $0x203d68,%rdx 21cfce: b0 00 mov $0x0,%al 21cfd0: e8 1b c5 01 00 call 2394f0 return; 21cfd5: e9 2b 02 00 00 jmp 21d205 if (data.totalBytesRead > cached_read_total) { 21cfda: 48 8b 45 c8 mov -0x38(%rbp),%rax 21cfde: 48 3b 04 25 b8 21 24 00 cmp 0x2421b8,%rax 21cfe6: 0f 86 2c 00 00 00 jbe 21d018 diff = data.totalBytesRead - cached_read_total; 21cfec: 48 8b 45 c8 mov -0x38(%rbp),%rax 21cff0: 48 2b 04 25 b8 21 24 00 sub 0x2421b8,%rax 21cff8: 48 89 45 a8 mov %rax,-0x58(%rbp) diff /= 1024; /* Meter_humanUnit() expects unit in kilo */ 21cffc: 48 8b 45 a8 mov -0x58(%rbp),%rax 21d000: 48 c1 e8 0a shr $0xa,%rax 21d004: 48 89 45 a8 mov %rax,-0x58(%rbp) cached_read_diff = (uint32_t)diff; 21d008: 48 8b 45 a8 mov -0x58(%rbp),%rax 21d00c: 89 04 25 a8 21 24 00 mov %eax,0x2421a8 } else { 21d013: e9 0b 00 00 00 jmp 21d023 cached_read_diff = 0; 21d018: c7 04 25 a8 21 24 00 00 00 00 00 movl $0x0,0x2421a8 cached_read_total = data.totalBytesRead; 21d023: 48 8b 45 c8 mov -0x38(%rbp),%rax 21d027: 48 89 04 25 b8 21 24 00 mov %rax,0x2421b8 if (data.totalBytesWritten > cached_write_total) { 21d02f: 48 8b 45 d0 mov -0x30(%rbp),%rax 21d033: 48 3b 04 25 c0 21 24 00 cmp 0x2421c0,%rax 21d03b: 0f 86 2c 00 00 00 jbe 21d06d diff = data.totalBytesWritten - cached_write_total; 21d041: 48 8b 45 d0 mov -0x30(%rbp),%rax 21d045: 48 2b 04 25 c0 21 24 00 sub 0x2421c0,%rax 21d04d: 48 89 45 a8 mov %rax,-0x58(%rbp) diff /= 1024; /* Meter_humanUnit() expects unit in kilo */ 21d051: 48 8b 45 a8 mov -0x58(%rbp),%rax 21d055: 48 c1 e8 0a shr $0xa,%rax 21d059: 48 89 45 a8 mov %rax,-0x58(%rbp) cached_write_diff = (uint32_t)diff; 21d05d: 48 8b 45 a8 mov -0x58(%rbp),%rax 21d061: 89 04 25 ac 21 24 00 mov %eax,0x2421ac } else { 21d068: e9 0b 00 00 00 jmp 21d078 cached_write_diff = 0; 21d06d: c7 04 25 ac 21 24 00 00 00 00 00 movl $0x0,0x2421ac cached_write_total = data.totalBytesWritten; 21d078: 48 8b 45 d0 mov -0x30(%rbp),%rax 21d07c: 48 89 04 25 c0 21 24 00 mov %rax,0x2421c0 if (data.totalMsTimeSpend > cached_msTimeSpend_total) { 21d084: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d088: 48 3b 04 25 c8 21 24 00 cmp 0x2421c8,%rax 21d090: 0f 86 6f 00 00 00 jbe 21d105 diff = data.totalMsTimeSpend - cached_msTimeSpend_total; 21d096: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d09a: 48 8b 0d 27 51 02 00 mov 0x25127(%rip),%rcx # 2421c8 21d0a1: 48 29 c8 sub %rcx,%rax 21d0a4: 48 89 45 a8 mov %rax,-0x58(%rbp) cached_utilisation_diff = 100.0 * (double)diff / passedTimeInMs; 21d0a8: 0f 28 1d 31 b5 fe ff movaps -0x14acf(%rip),%xmm3 # 2085e0 21d0af: f3 0f 7e 45 a8 movq -0x58(%rbp),%xmm0 21d0b4: 66 0f 62 c3 punpckldq %xmm3,%xmm0 21d0b8: 66 0f 28 15 30 b5 fe ff movapd -0x14ad0(%rip),%xmm2 # 2085f0 21d0c0: 66 0f 5c c2 subpd %xmm2,%xmm0 21d0c4: 0f 28 c8 movaps %xmm0,%xmm1 21d0c7: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 21d0cb: f2 0f 58 c1 addsd %xmm1,%xmm0 21d0cf: f2 0f 10 0d c1 a2 fe ff movsd -0x15d3f(%rip),%xmm1 # 207398 21d0d7: f2 0f 59 c1 mulsd %xmm1,%xmm0 21d0db: f3 0f 7e 4d b0 movq -0x50(%rbp),%xmm1 21d0e0: 66 0f 62 cb punpckldq %xmm3,%xmm1 21d0e4: 66 0f 5c ca subpd %xmm2,%xmm1 21d0e8: 0f 28 d1 movaps %xmm1,%xmm2 21d0eb: 66 0f 15 c9 unpckhpd %xmm1,%xmm1 21d0ef: f2 0f 58 ca addsd %xmm2,%xmm1 21d0f3: f2 0f 5e c1 divsd %xmm1,%xmm0 21d0f7: f2 0f 11 04 25 a0 21 24 00 movsd %xmm0,0x2421a0 } else { 21d100: e9 0c 00 00 00 jmp 21d111 cached_utilisation_diff = 0.0; 21d105: 0f 57 c0 xorps %xmm0,%xmm0 21d108: f2 0f 11 04 25 a0 21 24 00 movsd %xmm0,0x2421a0 cached_msTimeSpend_total = data.totalMsTimeSpend; 21d111: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d115: 48 89 04 25 c8 21 24 00 mov %rax,0x2421c8 if (passedTimeInMs > 30000) { 21d11d: 48 81 7d b0 30 75 00 00 cmpq $0x7530,-0x50(%rbp) 21d125: 0f 86 08 00 00 00 jbe 21d133 hasData = false; 21d12b: c6 04 25 98 21 24 00 00 movb $0x0,0x242198 this->values[0] = cached_utilisation_diff; 21d133: f2 0f 10 04 25 a0 21 24 00 movsd 0x2421a0,%xmm0 21d13c: 48 8b 45 c0 mov -0x40(%rbp),%rax 21d140: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21d147: f2 0f 11 00 movsd %xmm0,(%rax) this->total = MAXIMUM(this->values[0], 100.0); /* fix total after (initial) spike */ 21d14b: 48 8b 45 c0 mov -0x40(%rbp),%rax 21d14f: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21d156: f2 0f 10 00 movsd (%rax),%xmm0 21d15a: f2 0f 10 0d 36 a2 fe ff movsd -0x15dca(%rip),%xmm1 # 207398 21d162: 66 0f 2e c1 ucomisd %xmm1,%xmm0 21d166: 0f 86 19 00 00 00 jbe 21d185 21d16c: 48 8b 45 c0 mov -0x40(%rbp),%rax 21d170: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 21d177: f2 0f 10 00 movsd (%rax),%xmm0 21d17b: f2 0f 11 45 a0 movsd %xmm0,-0x60(%rbp) 21d180: e9 12 00 00 00 jmp 21d197 21d185: f2 0f 10 05 0b a2 fe ff movsd -0x15df5(%rip),%xmm0 # 207398 21d18d: f2 0f 11 45 a0 movsd %xmm0,-0x60(%rbp) 21d192: e9 00 00 00 00 jmp 21d197 21d197: f2 0f 10 45 a0 movsd -0x60(%rbp),%xmm0 21d19c: 48 8b 45 c0 mov -0x40(%rbp),%rax 21d1a0: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) Meter_humanUnit(bufferRead, cached_read_diff, sizeof(bufferRead)); 21d1a8: 48 8d 7d ec lea -0x14(%rbp),%rdi 21d1ac: 8b 04 25 a8 21 24 00 mov 0x2421a8,%eax 21d1b3: 89 c6 mov %eax,%esi 21d1b5: ba 0c 00 00 00 mov $0xc,%edx 21d1ba: e8 51 68 00 00 call 223a10 Meter_humanUnit(bufferWrite, cached_write_diff, sizeof(bufferWrite)); 21d1bf: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21d1c3: 8b 04 25 ac 21 24 00 mov 0x2421ac,%eax 21d1ca: 89 c6 mov %eax,%esi 21d1cc: ba 0c 00 00 00 mov $0xc,%edx 21d1d1: e8 3a 68 00 00 call 223a10 snprintf(this->txtBuffer, sizeof(this->txtBuffer), "%sB %sB %.1f%%", bufferRead, bufferWrite, cached_utilisation_diff); 21d1d6: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21d1da: 48 83 c7 48 add $0x48,%rdi 21d1de: 48 8d 4d ec lea -0x14(%rbp),%rcx 21d1e2: 4c 8d 45 e0 lea -0x20(%rbp),%r8 21d1e6: f2 0f 10 04 25 a0 21 24 00 movsd 0x2421a0,%xmm0 21d1ef: be 00 01 00 00 mov $0x100,%esi 21d1f4: 48 ba d5 5a 20 00 00 00 00 00 movabs $0x205ad5,%rdx 21d1fe: b0 01 mov $0x1,%al 21d200: e8 ab 12 02 00 call 23e4b0 21d205: 48 8b 05 24 56 02 00 mov 0x25624(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21d20c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21d210: 48 39 c8 cmp %rcx,%rax 21d213: 0f 85 06 00 00 00 jne 21d21f } 21d219: 48 83 c4 60 add $0x60,%rsp 21d21d: 5d pop %rbp 21d21e: c3 ret 21d21f: e8 1c 0f 02 00 call 23e140 <__stack_chk_fail@plt> 21d224: cc int3 21d225: cc int3 21d226: cc int3 21d227: cc int3 21d228: cc int3 21d229: cc int3 21d22a: cc int3 21d22b: cc int3 21d22c: cc int3 21d22d: cc int3 21d22e: cc int3 21d22f: cc int3 000000000021d230 : #include "ProvideCurses.h" static const char* const DisplayOptionsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL}; static void DisplayOptionsPanel_delete(Object* object) { 21d230: 55 push %rbp 21d231: 48 89 e5 mov %rsp,%rbp 21d234: 48 83 ec 20 sub $0x20,%rsp 21d238: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 21d23c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21d240: 48 89 45 f0 mov %rax,-0x10(%rbp) DisplayOptionsPanel* this = (DisplayOptionsPanel*) object; 21d244: 48 8b 45 f8 mov -0x8(%rbp),%rax 21d248: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 21d24c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21d250: e8 2b ab 00 00 call 227d80 free(this); 21d255: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21d259: e8 02 0f 02 00 call 23e160 } 21d25e: 48 83 c4 20 add $0x20,%rsp 21d262: 5d pop %rbp 21d263: c3 ret 21d264: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21d26e: 66 90 xchg %ax,%ax 000000000021d270 : static HandlerResult DisplayOptionsPanel_eventHandler(Panel* super, int ch) { 21d270: 55 push %rbp 21d271: 48 89 e5 mov %rsp,%rbp 21d274: 48 83 ec 40 sub $0x40,%rsp 21d278: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21d27c: 89 75 f4 mov %esi,-0xc(%rbp) DisplayOptionsPanel* this = (DisplayOptionsPanel*) super; 21d27f: 48 8b 45 f8 mov -0x8(%rbp),%rax 21d283: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 21d287: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) OptionItem* selected = (OptionItem*) Panel_getSelected(super); 21d28e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21d292: e8 d9 ad 00 00 call 228070 21d297: 48 89 45 d8 mov %rax,-0x28(%rbp) switch (ch) { 21d29b: 8b 45 f4 mov -0xc(%rbp),%eax 21d29e: 89 45 cc mov %eax,-0x34(%rbp) 21d2a1: 83 e8 0a sub $0xa,%eax 21d2a4: 0f 84 82 00 00 00 je 21d32c 21d2aa: e9 00 00 00 00 jmp 21d2af 21d2af: 8b 45 cc mov -0x34(%rbp),%eax 21d2b2: 83 e8 0d sub $0xd,%eax 21d2b5: 0f 84 71 00 00 00 je 21d32c 21d2bb: e9 00 00 00 00 jmp 21d2c0 21d2c0: 8b 45 cc mov -0x34(%rbp),%eax 21d2c3: 83 e8 20 sub $0x20,%eax 21d2c6: 0f 84 60 00 00 00 je 21d32c 21d2cc: e9 00 00 00 00 jmp 21d2d1 21d2d1: 8b 45 cc mov -0x34(%rbp),%eax 21d2d4: 83 e8 2b sub $0x2b,%eax 21d2d7: 0f 84 ca 00 00 00 je 21d3a7 21d2dd: e9 00 00 00 00 jmp 21d2e2 21d2e2: 8b 45 cc mov -0x34(%rbp),%eax 21d2e5: 83 e8 2d sub $0x2d,%eax 21d2e8: 0f 84 93 00 00 00 je 21d381 21d2ee: e9 00 00 00 00 jmp 21d2f3 21d2f3: 8b 45 cc mov -0x34(%rbp),%eax 21d2f6: 2d 28 01 00 00 sub $0x128,%eax 21d2fb: 0f 84 2b 00 00 00 je 21d32c 21d301: e9 00 00 00 00 jmp 21d306 21d306: 8b 45 cc mov -0x34(%rbp),%eax 21d309: 2d 57 01 00 00 sub $0x157,%eax 21d30e: 0f 84 18 00 00 00 je 21d32c 21d314: e9 00 00 00 00 jmp 21d319 21d319: 8b 45 cc mov -0x34(%rbp),%eax 21d31c: 2d 99 01 00 00 sub $0x199,%eax 21d321: 0f 85 a6 00 00 00 jne 21d3cd 21d327: e9 00 00 00 00 jmp 21d32c case '\r': case KEY_ENTER: case KEY_MOUSE: case KEY_RECLICK: case ' ': switch (OptionItem_kind(selected)) { 21d32c: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d330: 48 8b 00 mov (%rax),%rax 21d333: 8b 40 20 mov 0x20(%rax),%eax 21d336: 89 45 c8 mov %eax,-0x38(%rbp) 21d339: 85 c0 test %eax,%eax 21d33b: 0f 84 16 00 00 00 je 21d357 21d341: e9 00 00 00 00 jmp 21d346 21d346: 8b 45 c8 mov -0x38(%rbp),%eax 21d349: 83 e8 01 sub $0x1,%eax 21d34c: 0f 84 1a 00 00 00 je 21d36c 21d352: e9 25 00 00 00 jmp 21d37c case OPTION_ITEM_CHECK: CheckItem_toggle((CheckItem*)selected); 21d357: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21d35b: e8 10 a1 00 00 call 227470 result = HANDLED; 21d360: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; 21d367: e9 10 00 00 00 jmp 21d37c case OPTION_ITEM_NUMBER: NumberItem_toggle((NumberItem*)selected); 21d36c: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21d370: e8 eb a4 00 00 call 227860 result = HANDLED; 21d375: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) break; } break; 21d37c: e9 4c 00 00 00 jmp 21d3cd case '-': if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { 21d381: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d385: 48 8b 00 mov (%rax),%rax 21d388: 83 78 20 01 cmpl $0x1,0x20(%rax) 21d38c: 0f 85 10 00 00 00 jne 21d3a2 NumberItem_decrease((NumberItem*)selected); 21d392: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21d396: e8 c5 a2 00 00 call 227660 result = HANDLED; 21d39b: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) } break; 21d3a2: e9 26 00 00 00 jmp 21d3cd case '+': if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { 21d3a7: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d3ab: 48 8b 00 mov (%rax),%rax 21d3ae: 83 78 20 01 cmpl $0x1,0x20(%rax) 21d3b2: 0f 85 10 00 00 00 jne 21d3c8 NumberItem_increase((NumberItem*)selected); 21d3b8: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21d3bc: e8 9f a3 00 00 call 227760 result = HANDLED; 21d3c1: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) } break; 21d3c8: e9 00 00 00 00 jmp 21d3cd } if (result == HANDLED) { 21d3cd: 83 7d e4 01 cmpl $0x1,-0x1c(%rbp) 21d3d1: 0f 85 56 00 00 00 jne 21d42d this->settings->changed = true; 21d3d7: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d3db: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 21d3e2: c6 40 68 01 movb $0x1,0x68(%rax) Header* header = this->scr->header; 21d3e6: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d3ea: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 21d3f1: 48 8b 40 20 mov 0x20(%rax),%rax 21d3f5: 48 89 45 d0 mov %rax,-0x30(%rbp) Header_calculateHeight(header); 21d3f9: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21d3fd: e8 9e 23 00 00 call 21f7a0 Header_reinit(header); 21d402: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21d406: e8 65 2b 00 00 call 21ff70 Header_updateData(header); 21d40b: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21d40f: e8 3c 2f 00 00 call 220350 Header_draw(header); 21d414: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21d418: e8 23 2c 00 00 call 220040 ScreenManager_resize(this->scr); 21d41d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d421: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 21d428: e8 23 59 01 00 call 232d50 } return result; 21d42d: 8b 45 e4 mov -0x1c(%rbp),%eax 21d430: 48 83 c4 40 add $0x40,%rsp 21d434: 5d pop %rbp 21d435: c3 ret 21d436: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021d440 : .delete = DisplayOptionsPanel_delete }, .eventHandler = DisplayOptionsPanel_eventHandler }; DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager* scr) { 21d440: 55 push %rbp 21d441: 48 89 e5 mov %rsp,%rbp 21d444: 48 81 ec 20 01 00 00 sub $0x120,%rsp 21d44b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21d44f: 48 89 75 f0 mov %rsi,-0x10(%rbp) DisplayOptionsPanel* this = AllocThis(DisplayOptionsPanel); 21d453: bf e8 26 00 00 mov $0x26e8,%edi 21d458: e8 03 b6 01 00 call 238a60 21d45d: 48 89 45 e8 mov %rax,-0x18(%rbp) 21d461: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d465: 48 b9 c0 86 20 00 00 00 00 00 movabs $0x2086c0,%rcx 21d46f: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 21d472: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d476: 48 89 45 e0 mov %rax,-0x20(%rbp) FunctionBar* fuBar = FunctionBar_new(DisplayOptionsFunctions, NULL, NULL); 21d47a: 48 bf 00 87 20 00 00 00 00 00 movabs $0x208700,%rdi 21d484: 31 c0 xor %eax,%eax 21d486: 89 c2 mov %eax,%edx 21d488: 48 89 d6 mov %rdx,%rsi 21d48b: e8 c0 0e 00 00 call 21e350 21d490: 48 89 45 d8 mov %rax,-0x28(%rbp) Panel_init(super, 1, 1, 1, 1, Class(OptionItem), true, fuBar); 21d494: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21d498: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d49c: 41 b8 01 00 00 00 mov $0x1,%r8d 21d4a2: 49 b9 80 9c 20 00 00 00 00 00 movabs $0x209c80,%r9 21d4ac: 44 89 c6 mov %r8d,%esi 21d4af: 44 89 c2 mov %r8d,%edx 21d4b2: 44 89 c1 mov %r8d,%ecx 21d4b5: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 21d4bc: 48 89 44 24 08 mov %rax,0x8(%rsp) 21d4c1: e8 3a a7 00 00 call 227c00 this->settings = settings; 21d4c6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21d4ca: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d4ce: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) this->scr = scr; 21d4d5: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21d4d9: 48 8b 45 e8 mov -0x18(%rbp),%rax 21d4dd: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) Panel_setHeader(super, "Display options"); 21d4e4: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21d4e8: 48 be d2 4c 20 00 00 00 00 00 movabs $0x204cd2,%rsi 21d4f2: e8 f9 a8 00 00 call 227df0 Panel_add(super, (Object*) CheckItem_newByRef("Tree view", &(settings->treeView))); 21d4f7: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d4fb: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) 21d502: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d506: 48 83 c6 4a add $0x4a,%rsi 21d50a: 48 bf ea 52 20 00 00 00 00 00 movabs $0x2052ea,%rdi 21d514: e8 d7 9d 00 00 call 2272f0 21d519: 48 8b bd f0 fe ff ff mov -0x110(%rbp),%rdi 21d520: 48 89 c6 mov %rax,%rsi 21d523: e8 b8 a9 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is always sorted by PID (htop 2 behavior)", &(settings->treeViewAlwaysByPID))); 21d528: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d52c: 48 89 85 f8 fe ff ff mov %rax,-0x108(%rbp) 21d533: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d537: 48 83 c6 4b add $0x4b,%rsi 21d53b: 48 bf 6b 33 20 00 00 00 00 00 movabs $0x20336b,%rdi 21d545: e8 a6 9d 00 00 call 2272f0 21d54a: 48 8b bd f8 fe ff ff mov -0x108(%rbp),%rdi 21d551: 48 89 c6 mov %rax,%rsi 21d554: e8 87 a9 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is collapsed by default", &(settings->allBranchesCollapsed))); 21d559: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d55d: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) 21d564: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d568: 48 83 c6 4c add $0x4c,%rsi 21d56c: 48 bf bb 54 20 00 00 00 00 00 movabs $0x2054bb,%rdi 21d576: e8 75 9d 00 00 call 2272f0 21d57b: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 21d582: 48 89 c6 mov %rax,%rsi 21d585: e8 56 a9 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Shadow other users' processes", &(settings->shadowOtherUsers))); 21d58a: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d58e: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) 21d595: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d599: 48 83 c6 4e add $0x4e,%rsi 21d59d: 48 bf b3 44 20 00 00 00 00 00 movabs $0x2044b3,%rdi 21d5a7: e8 44 9d 00 00 call 2272f0 21d5ac: 48 8b bd 08 ff ff ff mov -0xf8(%rbp),%rdi 21d5b3: 48 89 c6 mov %rax,%rsi 21d5b6: e8 25 a9 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Hide kernel threads", &(settings->hideKernelThreads))); 21d5bb: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d5bf: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) 21d5c6: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d5ca: 48 83 c6 50 add $0x50,%rsi 21d5ce: 48 bf f4 52 20 00 00 00 00 00 movabs $0x2052f4,%rdi 21d5d8: e8 13 9d 00 00 call 2272f0 21d5dd: 48 8b bd 10 ff ff ff mov -0xf0(%rbp),%rdi 21d5e4: 48 89 c6 mov %rax,%rsi 21d5e7: e8 f4 a8 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Hide userland process threads", &(settings->hideUserlandThreads))); 21d5ec: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d5f0: 48 89 85 18 ff ff ff mov %rax,-0xe8(%rbp) 21d5f7: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d5fb: 48 83 c6 51 add $0x51,%rsi 21d5ff: 48 bf c6 65 20 00 00 00 00 00 movabs $0x2065c6,%rdi 21d609: e8 e2 9c 00 00 call 2272f0 21d60e: 48 8b bd 18 ff ff ff mov -0xe8(%rbp),%rdi 21d615: 48 89 c6 mov %rax,%rsi 21d618: e8 c3 a8 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Display threads in a different color", &(settings->highlightThreads))); 21d61d: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d621: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) 21d628: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d62c: 48 83 c6 55 add $0x55,%rsi 21d630: 48 bf d1 44 20 00 00 00 00 00 movabs $0x2044d1,%rdi 21d63a: e8 b1 9c 00 00 call 2272f0 21d63f: 48 8b bd 20 ff ff ff mov -0xe0(%rbp),%rdi 21d646: 48 89 c6 mov %rax,%rsi 21d649: e8 92 a8 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Show custom thread names", &(settings->showThreadNames))); 21d64e: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d652: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) 21d659: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d65d: 48 83 c6 4f add $0x4f,%rsi 21d661: 48 bf 79 5c 20 00 00 00 00 00 movabs $0x205c79,%rdi 21d66b: e8 80 9c 00 00 call 2272f0 21d670: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi 21d677: 48 89 c6 mov %rax,%rsi 21d67a: e8 61 a8 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Show program path", &(settings->showProgramPath))); 21d67f: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d683: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) 21d68a: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d68e: 48 83 c6 4d add $0x4d,%rsi 21d692: 48 bf df 54 20 00 00 00 00 00 movabs $0x2054df,%rdi 21d69c: e8 4f 9c 00 00 call 2272f0 21d6a1: 48 8b bd 30 ff ff ff mov -0xd0(%rbp),%rdi 21d6a8: 48 89 c6 mov %rax,%rsi 21d6ab: e8 30 a8 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Highlight program \"basename\"", &(settings->highlightBaseName))); 21d6b0: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d6b4: 48 89 85 38 ff ff ff mov %rax,-0xc8(%rbp) 21d6bb: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d6bf: 48 83 c6 52 add $0x52,%rsi 21d6c3: 48 bf 37 4d 20 00 00 00 00 00 movabs $0x204d37,%rdi 21d6cd: e8 1e 9c 00 00 call 2272f0 21d6d2: 48 8b bd 38 ff ff ff mov -0xc8(%rbp),%rdi 21d6d9: 48 89 c6 mov %rax,%rsi 21d6dc: e8 ff a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Highlight out-dated/removed programs (red) / libraries (yellow)", &(settings->highlightDeletedExe))); 21d6e1: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d6e5: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 21d6ec: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d6f0: 48 83 c6 53 add $0x53,%rsi 21d6f4: 48 bf 08 53 20 00 00 00 00 00 movabs $0x205308,%rdi 21d6fe: e8 ed 9b 00 00 call 2272f0 21d703: 48 8b bd 40 ff ff ff mov -0xc0(%rbp),%rdi 21d70a: 48 89 c6 mov %rax,%rsi 21d70d: e8 ce a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Merge exe, comm and cmdline in Command", &(settings->showMergedCommand))); 21d712: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d716: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) 21d71d: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d721: 48 83 c6 5e add $0x5e,%rsi 21d725: 48 bf 0c 4f 20 00 00 00 00 00 movabs $0x204f0c,%rdi 21d72f: e8 bc 9b 00 00 call 2272f0 21d734: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 21d73b: 48 89 c6 mov %rax,%rsi 21d73e: e8 9d a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("- Try to find comm in cmdline (when Command is merged)", &(settings->findCommInCmdline))); 21d743: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d747: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) 21d74e: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d752: 48 83 c6 5c add $0x5c,%rsi 21d756: 48 bf 5e 43 20 00 00 00 00 00 movabs $0x20435e,%rdi 21d760: e8 8b 9b 00 00 call 2272f0 21d765: 48 8b bd 50 ff ff ff mov -0xb0(%rbp),%rdi 21d76c: 48 89 c6 mov %rax,%rsi 21d76f: e8 6c a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("- Try to strip exe from cmdline (when Command is merged)", &(settings->stripExeFromCmdline))); 21d774: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d778: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) 21d77f: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d783: 48 83 c6 5d add $0x5d,%rsi 21d787: 48 bf e4 5a 20 00 00 00 00 00 movabs $0x205ae4,%rdi 21d791: e8 5a 9b 00 00 call 2272f0 21d796: 48 8b bd 58 ff ff ff mov -0xa8(%rbp),%rdi 21d79d: 48 89 c6 mov %rax,%rsi 21d7a0: e8 3b a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Highlight large numbers in memory counters", &(settings->highlightMegabytes))); 21d7a5: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d7a9: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 21d7b0: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d7b4: 48 83 c6 54 add $0x54,%rsi 21d7b8: 48 bf eb 31 20 00 00 00 00 00 movabs $0x2031eb,%rdi 21d7c2: e8 29 9b 00 00 call 2272f0 21d7c7: 48 8b bd 60 ff ff ff mov -0xa0(%rbp),%rdi 21d7ce: 48 89 c6 mov %rax,%rsi 21d7d1: e8 0a a7 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Leave a margin around header", &(settings->headerMargin))); 21d7d6: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d7da: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) 21d7e1: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d7e5: 48 83 c6 61 add $0x61,%rsi 21d7e9: 48 bf 33 4f 20 00 00 00 00 00 movabs $0x204f33,%rdi 21d7f3: e8 f8 9a 00 00 call 2272f0 21d7f8: 48 8b bd 68 ff ff ff mov -0x98(%rbp),%rdi 21d7ff: 48 89 c6 mov %rax,%rsi 21d802: e8 d9 a6 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest)", &(settings->detailedCPUTime))); 21d807: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d80b: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 21d812: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d816: 48 83 c6 45 add $0x45,%rsi 21d81a: 48 bf f1 54 20 00 00 00 00 00 movabs $0x2054f1,%rdi 21d824: e8 c7 9a 00 00 call 2272f0 21d829: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi 21d830: 48 89 c6 mov %rax,%rsi 21d833: e8 a8 a6 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Count CPUs from 1 instead of 0", &(settings->countCPUsFromOne))); 21d838: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d83c: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 21d843: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d847: 48 83 c6 44 add $0x44,%rsi 21d84b: 48 bf cf 41 20 00 00 00 00 00 movabs $0x2041cf,%rdi 21d855: e8 96 9a 00 00 call 2272f0 21d85a: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 21d861: 48 89 c6 mov %rax,%rsi 21d864: e8 77 a6 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Update process names on every refresh", &(settings->updateProcessNames))); 21d869: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d86d: 48 89 45 80 mov %rax,-0x80(%rbp) 21d871: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d875: 48 83 c6 5f add $0x5f,%rsi 21d879: 48 bf 32 55 20 00 00 00 00 00 movabs $0x205532,%rdi 21d883: e8 68 9a 00 00 call 2272f0 21d888: 48 8b 7d 80 mov -0x80(%rbp),%rdi 21d88c: 48 89 c6 mov %rax,%rsi 21d88f: e8 4c a6 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Add guest time in CPU meter percentage", &(settings->accountGuestInCPUMeter))); 21d894: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d898: 48 89 45 88 mov %rax,-0x78(%rbp) 21d89c: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d8a0: 48 83 c6 60 add $0x60,%rsi 21d8a4: 48 bf 61 6b 20 00 00 00 00 00 movabs $0x206b61,%rdi 21d8ae: e8 3d 9a 00 00 call 2272f0 21d8b3: 48 8b 7d 88 mov -0x78(%rbp),%rdi 21d8b7: 48 89 c6 mov %rax,%rsi 21d8ba: e8 21 a6 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Also show CPU percentage numerically", &(settings->showCPUUsage))); 21d8bf: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d8c3: 48 89 45 90 mov %rax,-0x70(%rbp) 21d8c7: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d8cb: 48 83 c6 46 add $0x46,%rsi 21d8cf: 48 bf 70 3d 20 00 00 00 00 00 movabs $0x203d70,%rdi 21d8d9: e8 12 9a 00 00 call 2272f0 21d8de: 48 8b 7d 90 mov -0x70(%rbp),%rdi 21d8e2: 48 89 c6 mov %rax,%rsi 21d8e5: e8 f6 a5 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Also show CPU frequency", &(settings->showCPUFrequency))); 21d8ea: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d8ee: 48 89 45 98 mov %rax,-0x68(%rbp) 21d8f2: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d8f6: 48 83 c6 47 add $0x47,%rsi 21d8fa: 48 bf 0b 57 20 00 00 00 00 00 movabs $0x20570b,%rdi 21d904: e8 e7 99 00 00 call 2272f0 21d909: 48 8b 7d 98 mov -0x68(%rbp),%rdi 21d90d: 48 89 c6 mov %rax,%rsi 21d910: e8 cb a5 00 00 call 227ee0 #ifdef BUILD_WITH_CPU_TEMP Panel_add(super, (Object*) CheckItem_newByRef( 21d915: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d919: 48 89 45 a0 mov %rax,-0x60(%rbp) #elif defined(HTOP_FREEBSD) "Also show CPU temperature", #else #error Unknown temperature implementation! #endif &(settings->showCPUTemperature))); 21d91d: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d921: 48 83 c6 48 add $0x48,%rsi Panel_add(super, (Object*) CheckItem_newByRef( 21d925: 48 bf 85 35 20 00 00 00 00 00 movabs $0x203585,%rdi 21d92f: e8 bc 99 00 00 call 2272f0 21d934: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21d938: 48 89 c6 mov %rax,%rsi 21d93b: e8 a0 a5 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("- Show temperature in degree Fahrenheit instead of Celsius", &(settings->degreeFahrenheit))); 21d940: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d944: 48 89 45 a8 mov %rax,-0x58(%rbp) 21d948: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d94c: 48 83 c6 49 add $0x49,%rsi 21d950: 48 bf dc 58 20 00 00 00 00 00 movabs $0x2058dc,%rdi 21d95a: e8 91 99 00 00 call 2272f0 21d95f: 48 8b 7d a8 mov -0x58(%rbp),%rdi 21d963: 48 89 c6 mov %rax,%rsi 21d966: e8 75 a5 00 00 call 227ee0 #endif #ifdef HAVE_GETMOUSE Panel_add(super, (Object*) CheckItem_newByRef("Enable the mouse", &(settings->enableMouse))); 21d96b: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d96f: 48 89 45 b0 mov %rax,-0x50(%rbp) 21d973: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d977: 48 83 c6 62 add $0x62,%rsi 21d97b: 48 bf 54 4d 20 00 00 00 00 00 movabs $0x204d54,%rdi 21d985: e8 66 99 00 00 call 2272f0 21d98a: 48 8b 7d b0 mov -0x50(%rbp),%rdi 21d98e: 48 89 c6 mov %rax,%rsi 21d991: e8 4a a5 00 00 call 227ee0 #endif Panel_add(super, (Object*) NumberItem_newByRef("Update interval (in seconds)", &(settings->delay), -1, 1, 255)); 21d996: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d99a: 48 89 45 b8 mov %rax,-0x48(%rbp) 21d99e: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d9a2: 48 83 c6 30 add $0x30,%rsi 21d9a6: 48 bf 4a 4a 20 00 00 00 00 00 movabs $0x204a4a,%rdi 21d9b0: ba ff ff ff ff mov $0xffffffff,%edx 21d9b5: b9 01 00 00 00 mov $0x1,%ecx 21d9ba: 41 b8 ff 00 00 00 mov $0xff,%r8d 21d9c0: e8 fb 9a 00 00 call 2274c0 21d9c5: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21d9c9: 48 89 c6 mov %rax,%rsi 21d9cc: e8 0f a5 00 00 call 227ee0 Panel_add(super, (Object*) CheckItem_newByRef("Highlight new and old processes", &(settings->highlightChanges))); 21d9d1: 48 8b 45 e0 mov -0x20(%rbp),%rax 21d9d5: 48 89 45 c0 mov %rax,-0x40(%rbp) 21d9d9: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21d9dd: 48 83 c6 56 add $0x56,%rsi 21d9e1: 48 bf a1 33 20 00 00 00 00 00 movabs $0x2033a1,%rdi 21d9eb: e8 00 99 00 00 call 2272f0 21d9f0: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21d9f4: 48 89 c6 mov %rax,%rsi 21d9f7: e8 e4 a4 00 00 call 227ee0 Panel_add(super, (Object*) NumberItem_newByRef("- Highlight time (in seconds)", &(settings->highlightDelaySecs), 0, 1, 24 * 60 * 60)); 21d9fc: 48 8b 45 e0 mov -0x20(%rbp),%rax 21da00: 48 89 45 c8 mov %rax,-0x38(%rbp) 21da04: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21da08: 48 83 c6 58 add $0x58,%rsi 21da0c: 48 bf e4 65 20 00 00 00 00 00 movabs $0x2065e4,%rdi 21da16: 31 d2 xor %edx,%edx 21da18: b9 01 00 00 00 mov $0x1,%ecx 21da1d: 41 b8 80 51 01 00 mov $0x15180,%r8d 21da23: e8 98 9a 00 00 call 2274c0 21da28: 48 8b 7d c8 mov -0x38(%rbp),%rdi 21da2c: 48 89 c6 mov %rax,%rsi 21da2f: e8 ac a4 00 00 call 227ee0 Panel_add(super, (Object*) NumberItem_newByRef("Hide main function bar (0 - off, 1 - on ESC until next input, 2 - permanently)", &(settings->hideFunctionBar), 0, 0, 2)); 21da34: 48 8b 45 e0 mov -0x20(%rbp),%rax 21da38: 48 89 45 d0 mov %rax,-0x30(%rbp) 21da3c: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21da40: 48 83 c6 64 add $0x64,%rsi 21da44: 48 bf 65 4d 20 00 00 00 00 00 movabs $0x204d65,%rdi 21da4e: 31 c9 xor %ecx,%ecx 21da50: 41 b8 02 00 00 00 mov $0x2,%r8d 21da56: 89 ca mov %ecx,%edx 21da58: e8 63 9a 00 00 call 2274c0 21da5d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21da61: 48 89 c6 mov %rax,%rsi 21da64: e8 77 a4 00 00 call 227ee0 #ifdef HAVE_LIBHWLOC Panel_add(super, (Object*) CheckItem_newByRef("Show topology when selecting affinity by default", &(settings->topologyAffinity))); #endif return this; 21da69: 48 8b 45 e8 mov -0x18(%rbp),%rax 21da6d: 48 81 c4 20 01 00 00 add $0x120,%rsp 21da74: 5d pop %rbp 21da75: c3 ret 21da76: cc int3 21da77: cc int3 21da78: cc int3 21da79: cc int3 21da7a: cc int3 21da7b: cc int3 21da7c: cc int3 21da7d: cc int3 21da7e: cc int3 21da7f: cc int3 000000000021da80 : #include "Platform.h" #include "RichString.h" #include "XUtils.h" Hashtable* DynamicColumns_new(void) { 21da80: 55 push %rbp 21da81: 48 89 e5 mov %rsp,%rbp return Platform_dynamicColumns(); 21da84: e8 07 00 00 00 call 21da90 21da89: 5d pop %rbp 21da8a: c3 ret 21da8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021da90 : static inline void Platform_dynamicMeterUpdateValues(ATTR_UNUSED Meter* meter) { } static inline void Platform_dynamicMeterDisplay(ATTR_UNUSED const Meter* meter, ATTR_UNUSED RichString* out) { } static inline Hashtable* Platform_dynamicColumns(void) { return NULL; } 21da90: 55 push %rbp 21da91: 48 89 e5 mov %rsp,%rbp 21da94: 31 c0 xor %eax,%eax 21da96: 5d pop %rbp 21da97: c3 ret 21da98: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000021daa0 : } void DynamicColumns_delete(Hashtable* dynamics) { 21daa0: 55 push %rbp 21daa1: 48 89 e5 mov %rsp,%rbp 21daa4: 48 83 ec 10 sub $0x10,%rsp 21daa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (dynamics) { 21daac: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 21dab1: 0f 84 12 00 00 00 je 21dac9 Platform_dynamicColumnsDone(dynamics); 21dab7: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dabb: e8 10 00 00 00 call 21dad0 Hashtable_delete(dynamics); 21dac0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dac4: e8 87 11 00 00 call 21ec50 } } 21dac9: 48 83 c4 10 add $0x10,%rsp 21dacd: 5d pop %rbp 21dace: c3 ret 21dacf: 90 nop 000000000021dad0 : static inline const char* Platform_dynamicColumnInit(ATTR_UNUSED unsigned int key) { return NULL; } static inline void Platform_dynamicColumnsDone(ATTR_UNUSED Hashtable* table) { } 21dad0: 55 push %rbp 21dad1: 48 89 e5 mov %rsp,%rbp 21dad4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dad8: 5d pop %rbp 21dad9: c3 ret 21dada: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021dae0 : const char* DynamicColumn_init(unsigned int key) { 21dae0: 55 push %rbp 21dae1: 48 89 e5 mov %rsp,%rbp 21dae4: 48 83 ec 10 sub $0x10,%rsp 21dae8: 89 7d fc mov %edi,-0x4(%rbp) return Platform_dynamicColumnInit(key); 21daeb: 8b 7d fc mov -0x4(%rbp),%edi 21daee: e8 0d 00 00 00 call 21db00 21daf3: 48 83 c4 10 add $0x10,%rsp 21daf7: 5d pop %rbp 21daf8: c3 ret 21daf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021db00 : static inline const char* Platform_dynamicColumnInit(ATTR_UNUSED unsigned int key) { return NULL; } 21db00: 55 push %rbp 21db01: 48 89 e5 mov %rsp,%rbp 21db04: 89 7d fc mov %edi,-0x4(%rbp) 21db07: 31 c0 xor %eax,%eax 21db09: 5d pop %rbp 21db0a: c3 ret 21db0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021db10 : iter->data = column; iter->key = key; } } const DynamicColumn* DynamicColumn_search(Hashtable* dynamics, const char* name, unsigned int* key) { 21db10: 55 push %rbp 21db11: 48 89 e5 mov %rsp,%rbp 21db14: 48 83 ec 40 sub $0x40,%rsp 21db18: 48 8b 05 11 4d 02 00 mov 0x24d11(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21db1f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21db23: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21db27: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21db2b: 48 89 55 c8 mov %rdx,-0x38(%rbp) DynamicIterator iter = { .key = 0, .data = NULL, .name = name }; 21db2f: 48 8b 45 d0 mov -0x30(%rbp),%rax 21db33: 48 89 45 e0 mov %rax,-0x20(%rbp) 21db37: 48 c7 45 e8 00 00 00 00 movq $0x0,-0x18(%rbp) 21db3f: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) if (dynamics) 21db46: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21db4b: 0f 84 17 00 00 00 je 21db68 Hashtable_foreach(dynamics, DynamicColumn_compare, &iter); 21db51: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21db55: 48 8d 55 e0 lea -0x20(%rbp),%rdx 21db59: 48 be b0 db 21 00 00 00 00 00 movabs $0x21dbb0,%rsi 21db63: e8 78 18 00 00 call 21f3e0 if (key) 21db68: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 21db6d: 0f 84 09 00 00 00 je 21db7c *key = iter.key; 21db73: 8b 4d f0 mov -0x10(%rbp),%ecx 21db76: 48 8b 45 c8 mov -0x38(%rbp),%rax 21db7a: 89 08 mov %ecx,(%rax) return iter.data; 21db7c: 48 8b 45 e8 mov -0x18(%rbp),%rax 21db80: 48 89 45 c0 mov %rax,-0x40(%rbp) 21db84: 48 8b 05 a5 4c 02 00 mov 0x24ca5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21db8b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21db8f: 48 39 c8 cmp %rcx,%rax 21db92: 0f 85 0a 00 00 00 jne 21dba2 21db98: 48 8b 45 c0 mov -0x40(%rbp),%rax 21db9c: 48 83 c4 40 add $0x40,%rsp 21dba0: 5d pop %rbp 21dba1: c3 ret 21dba2: e8 99 05 02 00 call 23e140 <__stack_chk_fail@plt> 21dba7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000021dbb0 : static void DynamicColumn_compare(ht_key_t key, void* value, void* data) { 21dbb0: 55 push %rbp 21dbb1: 48 89 e5 mov %rsp,%rbp 21dbb4: 48 83 ec 30 sub $0x30,%rsp 21dbb8: 89 7d fc mov %edi,-0x4(%rbp) 21dbbb: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21dbbf: 48 89 55 e8 mov %rdx,-0x18(%rbp) const DynamicColumn* column = (const DynamicColumn*)value; 21dbc3: 48 8b 45 f0 mov -0x10(%rbp),%rax 21dbc7: 48 89 45 e0 mov %rax,-0x20(%rbp) DynamicIterator* iter = (DynamicIterator*)data; 21dbcb: 48 8b 45 e8 mov -0x18(%rbp),%rax 21dbcf: 48 89 45 d8 mov %rax,-0x28(%rbp) if (String_eq(iter->name, column->name)) { 21dbd3: 48 8b 45 d8 mov -0x28(%rbp),%rax 21dbd7: 48 8b 38 mov (%rax),%rdi 21dbda: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21dbde: e8 ad 00 00 00 call 21dc90 21dbe3: a8 01 test $0x1,%al 21dbe5: 0f 85 05 00 00 00 jne 21dbf0 21dbeb: e9 16 00 00 00 jmp 21dc06 iter->data = column; 21dbf0: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21dbf4: 48 8b 45 d8 mov -0x28(%rbp),%rax 21dbf8: 48 89 48 08 mov %rcx,0x8(%rax) iter->key = key; 21dbfc: 8b 4d fc mov -0x4(%rbp),%ecx 21dbff: 48 8b 45 d8 mov -0x28(%rbp),%rax 21dc03: 89 48 10 mov %ecx,0x10(%rax) } 21dc06: 48 83 c4 30 add $0x30,%rsp 21dc0a: 5d pop %rbp 21dc0b: c3 ret 21dc0c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021dc10 : } const DynamicColumn* DynamicColumn_lookup(Hashtable* dynamics, unsigned int key) { 21dc10: 55 push %rbp 21dc11: 48 89 e5 mov %rsp,%rbp 21dc14: 48 83 ec 10 sub $0x10,%rsp 21dc18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dc1c: 89 75 f4 mov %esi,-0xc(%rbp) return (const DynamicColumn*) Hashtable_get(dynamics, key); 21dc1f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dc23: 8b 75 f4 mov -0xc(%rbp),%esi 21dc26: e8 b5 16 00 00 call 21f2e0 21dc2b: 48 83 c4 10 add $0x10,%rsp 21dc2f: 5d pop %rbp 21dc30: c3 ret 21dc31: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21dc3b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021dc40 : } bool DynamicColumn_writeField(const Process* proc, RichString* str, unsigned int key) { 21dc40: 55 push %rbp 21dc41: 48 89 e5 mov %rsp,%rbp 21dc44: 48 83 ec 20 sub $0x20,%rsp 21dc48: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dc4c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21dc50: 89 55 ec mov %edx,-0x14(%rbp) return Platform_dynamicColumnWriteField(proc, str, key); 21dc53: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dc57: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21dc5b: 8b 55 ec mov -0x14(%rbp),%edx 21dc5e: e8 0d 00 00 00 call 21dc70 21dc63: 24 01 and $0x1,%al 21dc65: 0f b6 c0 movzbl %al,%eax 21dc68: 48 83 c4 20 add $0x20,%rsp 21dc6c: 5d pop %rbp 21dc6d: c3 ret 21dc6e: 66 90 xchg %ax,%ax 000000000021dc70 : static inline bool Platform_dynamicColumnWriteField(ATTR_UNUSED const Process* proc, ATTR_UNUSED RichString* str, ATTR_UNUSED unsigned int key) { return false; } 21dc70: 55 push %rbp 21dc71: 48 89 e5 mov %rsp,%rbp 21dc74: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dc78: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21dc7c: 89 55 ec mov %edx,-0x14(%rbp) 21dc7f: 31 c0 xor %eax,%eax 21dc81: 24 01 and $0x1,%al 21dc83: 0f b6 c0 movzbl %al,%eax 21dc86: 5d pop %rbp 21dc87: c3 ret 21dc88: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000021dc90 : static inline bool String_eq(const char* s1, const char* s2) { 21dc90: 55 push %rbp 21dc91: 48 89 e5 mov %rsp,%rbp 21dc94: 48 83 ec 10 sub $0x10,%rsp 21dc98: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dc9c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 21dca0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dca4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21dca8: e8 33 05 02 00 call 23e1e0 21dcad: 83 f8 00 cmp $0x0,%eax 21dcb0: 0f 94 c0 sete %al 21dcb3: 24 01 and $0x1,%al 21dcb5: 0f b6 c0 movzbl %al,%eax 21dcb8: 48 83 c4 10 add $0x10,%rsp 21dcbc: 5d pop %rbp 21dcbd: c3 ret 21dcbe: cc int3 21dcbf: cc int3 000000000021dcc0 : DYNAMIC_MAGENTA, DYNAMIC_YELLOW, DYNAMIC_WHITE }; Hashtable* DynamicMeters_new(void) { 21dcc0: 55 push %rbp 21dcc1: 48 89 e5 mov %rsp,%rbp return Platform_dynamicMeters(); 21dcc4: e8 07 00 00 00 call 21dcd0 21dcc9: 5d pop %rbp 21dcca: c3 ret 21dccb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021dcd0 : static inline Hashtable* Platform_dynamicMeters(void) { return NULL; } 21dcd0: 55 push %rbp 21dcd1: 48 89 e5 mov %rsp,%rbp 21dcd4: 31 c0 xor %eax,%eax 21dcd6: 5d pop %rbp 21dcd7: c3 ret 21dcd8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000021dce0 : } void DynamicMeters_delete(Hashtable* dynamics) { 21dce0: 55 push %rbp 21dce1: 48 89 e5 mov %rsp,%rbp 21dce4: 48 83 ec 10 sub $0x10,%rsp 21dce8: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (dynamics) { 21dcec: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 21dcf1: 0f 84 12 00 00 00 je 21dd09 Platform_dynamicMetersDone(dynamics); 21dcf7: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dcfb: e8 10 00 00 00 call 21dd10 Hashtable_delete(dynamics); 21dd00: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21dd04: e8 47 0f 00 00 call 21ec50 } } 21dd09: 48 83 c4 10 add $0x10,%rsp 21dd0d: 5d pop %rbp 21dd0e: c3 ret 21dd0f: 90 nop 000000000021dd10 : static inline void Platform_dynamicMetersDone(ATTR_UNUSED Hashtable* table) { } 21dd10: 55 push %rbp 21dd11: 48 89 e5 mov %rsp,%rbp 21dd14: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21dd18: 5d pop %rbp 21dd19: c3 ret 21dd1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021dd20 : iter->found = true; iter->key = key; } } bool DynamicMeter_search(Hashtable* dynamics, const char* name, unsigned int* key) { 21dd20: 55 push %rbp 21dd21: 48 89 e5 mov %rsp,%rbp 21dd24: 48 83 ec 40 sub $0x40,%rsp 21dd28: 48 8b 05 01 4b 02 00 mov 0x24b01(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21dd2f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21dd33: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21dd37: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21dd3b: 48 89 55 c8 mov %rdx,-0x38(%rbp) DynamicIterator iter = { .key = 0, .name = name, .found = false }; 21dd3f: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%rbp) 21dd46: 48 8b 45 d0 mov -0x30(%rbp),%rax 21dd4a: 48 89 45 e8 mov %rax,-0x18(%rbp) 21dd4e: c6 45 f0 00 movb $0x0,-0x10(%rbp) if (dynamics) 21dd52: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21dd57: 0f 84 17 00 00 00 je 21dd74 Hashtable_foreach(dynamics, DynamicMeter_compare, &iter); 21dd5d: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21dd61: 48 8d 55 e0 lea -0x20(%rbp),%rdx 21dd65: 48 be c0 dd 21 00 00 00 00 00 movabs $0x21ddc0,%rsi 21dd6f: e8 6c 16 00 00 call 21f3e0 if (key) 21dd74: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 21dd79: 0f 84 09 00 00 00 je 21dd88 *key = iter.key; 21dd7f: 8b 4d e0 mov -0x20(%rbp),%ecx 21dd82: 48 8b 45 c8 mov -0x38(%rbp),%rax 21dd86: 89 08 mov %ecx,(%rax) return iter.found; 21dd88: 8a 45 f0 mov -0x10(%rbp),%al 21dd8b: 88 45 c7 mov %al,-0x39(%rbp) 21dd8e: 48 8b 05 9b 4a 02 00 mov 0x24a9b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21dd95: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21dd99: 48 39 c8 cmp %rcx,%rax 21dd9c: 0f 85 0e 00 00 00 jne 21ddb0 21dda2: 8a 45 c7 mov -0x39(%rbp),%al 21dda5: 24 01 and $0x1,%al 21dda7: 0f b6 c0 movzbl %al,%eax 21ddaa: 48 83 c4 40 add $0x40,%rsp 21ddae: 5d pop %rbp 21ddaf: c3 ret 21ddb0: e8 8b 03 02 00 call 23e140 <__stack_chk_fail@plt> 21ddb5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21ddbf: 90 nop 000000000021ddc0 : static void DynamicMeter_compare(ht_key_t key, void* value, void* data) { 21ddc0: 55 push %rbp 21ddc1: 48 89 e5 mov %rsp,%rbp 21ddc4: 48 83 ec 30 sub $0x30,%rsp 21ddc8: 89 7d fc mov %edi,-0x4(%rbp) 21ddcb: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21ddcf: 48 89 55 e8 mov %rdx,-0x18(%rbp) const DynamicMeter* meter = (const DynamicMeter*)value; 21ddd3: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ddd7: 48 89 45 e0 mov %rax,-0x20(%rbp) DynamicIterator* iter = (DynamicIterator*)data; 21dddb: 48 8b 45 e8 mov -0x18(%rbp),%rax 21dddf: 48 89 45 d8 mov %rax,-0x28(%rbp) if (String_eq(iter->name, meter->name)) { 21dde3: 48 8b 45 d8 mov -0x28(%rbp),%rax 21dde7: 48 8b 78 08 mov 0x8(%rax),%rdi 21ddeb: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21ddef: e8 5c 02 00 00 call 21e050 21ddf4: a8 01 test $0x1,%al 21ddf6: 0f 85 05 00 00 00 jne 21de01 21ddfc: e9 11 00 00 00 jmp 21de12 iter->found = true; 21de01: 48 8b 45 d8 mov -0x28(%rbp),%rax 21de05: c6 40 10 01 movb $0x1,0x10(%rax) iter->key = key; 21de09: 8b 4d fc mov -0x4(%rbp),%ecx 21de0c: 48 8b 45 d8 mov -0x28(%rbp),%rax 21de10: 89 08 mov %ecx,(%rax) } 21de12: 48 83 c4 30 add $0x30,%rsp 21de16: 5d pop %rbp 21de17: c3 ret 21de18: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000021de20 : } const char* DynamicMeter_lookup(Hashtable* dynamics, unsigned int key) { 21de20: 55 push %rbp 21de21: 48 89 e5 mov %rsp,%rbp 21de24: 48 83 ec 20 sub $0x20,%rsp 21de28: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21de2c: 89 75 f4 mov %esi,-0xc(%rbp) const DynamicMeter* meter = Hashtable_get(dynamics, key); 21de2f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21de33: 8b 75 f4 mov -0xc(%rbp),%esi 21de36: e8 a5 14 00 00 call 21f2e0 21de3b: 48 89 45 e8 mov %rax,-0x18(%rbp) return meter ? meter->name : NULL; 21de3f: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 21de44: 0f 84 0d 00 00 00 je 21de57 21de4a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21de4e: 48 89 45 e0 mov %rax,-0x20(%rbp) 21de52: e9 0b 00 00 00 jmp 21de62 21de57: 31 c0 xor %eax,%eax 21de59: 48 89 45 e0 mov %rax,-0x20(%rbp) 21de5d: e9 00 00 00 00 jmp 21de62 21de62: 48 8b 45 e0 mov -0x20(%rbp),%rax 21de66: 48 83 c4 20 add $0x20,%rsp 21de6a: 5d pop %rbp 21de6b: c3 ret 21de6c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021de70 : static void DynamicMeter_updateValues(Meter* meter) { Platform_dynamicMeterUpdateValues(meter); } static void DynamicMeter_display(const Object* cast, RichString* out) { 21de70: 55 push %rbp 21de71: 48 89 e5 mov %rsp,%rbp 21de74: 48 83 ec 20 sub $0x20,%rsp 21de78: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21de7c: 48 89 75 f0 mov %rsi,-0x10(%rbp) const Meter* meter = (const Meter*)cast; 21de80: 48 8b 45 f8 mov -0x8(%rbp),%rax 21de84: 48 89 45 e8 mov %rax,-0x18(%rbp) Platform_dynamicMeterDisplay(meter, out); 21de88: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21de8c: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21de90: e8 eb 01 00 00 call 21e080 } 21de95: 48 83 c4 20 add $0x20,%rsp 21de99: 5d pop %rbp 21de9a: c3 ret 21de9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021dea0 : static void DynamicMeter_init(Meter* meter) { 21dea0: 55 push %rbp 21dea1: 48 89 e5 mov %rsp,%rbp 21dea4: 48 83 ec 10 sub $0x10,%rsp 21dea8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Platform_dynamicMeterInit(meter); 21deac: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21deb0: e8 db 01 00 00 call 21e090 } 21deb5: 48 83 c4 10 add $0x10,%rsp 21deb9: 5d pop %rbp 21deba: c3 ret 21debb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021dec0 : static void DynamicMeter_updateValues(Meter* meter) { 21dec0: 55 push %rbp 21dec1: 48 89 e5 mov %rsp,%rbp 21dec4: 48 83 ec 10 sub $0x10,%rsp 21dec8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Platform_dynamicMeterUpdateValues(meter); 21decc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21ded0: e8 cb 01 00 00 call 21e0a0 } 21ded5: 48 83 c4 10 add $0x10,%rsp 21ded9: 5d pop %rbp 21deda: c3 ret 21dedb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021dee0 : static const char* DynamicMeter_getCaption(const Meter* this) { 21dee0: 55 push %rbp 21dee1: 48 89 e5 mov %rsp,%rbp 21dee4: 48 83 ec 30 sub $0x30,%rsp 21dee8: 48 89 7d f0 mov %rdi,-0x10(%rbp) const ProcessList* pl = this->pl; 21deec: 48 8b 45 f0 mov -0x10(%rbp),%rax 21def0: 48 8b 40 30 mov 0x30(%rax),%rax 21def4: 48 89 45 e8 mov %rax,-0x18(%rbp) const DynamicMeter* meter = Hashtable_get(pl->dynamicMeters, this->param); 21def8: 48 8b 45 e8 mov -0x18(%rbp),%rax 21defc: 48 8b 78 38 mov 0x38(%rax),%rdi 21df00: 48 8b 45 f0 mov -0x10(%rbp),%rax 21df04: 8b 70 1c mov 0x1c(%rax),%esi 21df07: e8 d4 13 00 00 call 21f2e0 21df0c: 48 89 45 e0 mov %rax,-0x20(%rbp) if (meter) 21df10: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 21df15: 0f 84 35 00 00 00 je 21df50 return meter->caption ? meter->caption : meter->name; 21df1b: 48 8b 45 e0 mov -0x20(%rbp),%rax 21df1f: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 21df24: 0f 84 11 00 00 00 je 21df3b 21df2a: 48 8b 45 e0 mov -0x20(%rbp),%rax 21df2e: 48 8b 40 20 mov 0x20(%rax),%rax 21df32: 48 89 45 d8 mov %rax,-0x28(%rbp) 21df36: e9 08 00 00 00 jmp 21df43 21df3b: 48 8b 45 e0 mov -0x20(%rbp),%rax 21df3f: 48 89 45 d8 mov %rax,-0x28(%rbp) 21df43: 48 8b 45 d8 mov -0x28(%rbp),%rax 21df47: 48 89 45 f8 mov %rax,-0x8(%rbp) 21df4b: e9 0c 00 00 00 jmp 21df5c return this->caption; 21df50: 48 8b 45 f0 mov -0x10(%rbp),%rax 21df54: 48 8b 40 10 mov 0x10(%rax),%rax 21df58: 48 89 45 f8 mov %rax,-0x8(%rbp) } 21df5c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21df60: 48 83 c4 30 add $0x30,%rsp 21df64: 5d pop %rbp 21df65: c3 ret 21df66: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021df70 : static void DynamicMeter_getUiName(const Meter* this, char* name, size_t length) { 21df70: 55 push %rbp 21df71: 48 89 e5 mov %rsp,%rbp 21df74: 48 83 ec 40 sub $0x40,%rsp 21df78: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21df7c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21df80: 48 89 55 e8 mov %rdx,-0x18(%rbp) const ProcessList* pl = this->pl; 21df84: 48 8b 45 f8 mov -0x8(%rbp),%rax 21df88: 48 8b 40 30 mov 0x30(%rax),%rax 21df8c: 48 89 45 e0 mov %rax,-0x20(%rbp) const DynamicMeter* meter = Hashtable_get(pl->dynamicMeters, this->param); 21df90: 48 8b 45 e0 mov -0x20(%rbp),%rax 21df94: 48 8b 78 38 mov 0x38(%rax),%rdi 21df98: 48 8b 45 f8 mov -0x8(%rbp),%rax 21df9c: 8b 70 1c mov 0x1c(%rax),%esi 21df9f: e8 3c 13 00 00 call 21f2e0 21dfa4: 48 89 45 d8 mov %rax,-0x28(%rbp) if (meter) { 21dfa8: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21dfad: 0f 84 97 00 00 00 je 21e04a const char* uiName = meter->caption; 21dfb3: 48 8b 45 d8 mov -0x28(%rbp),%rax 21dfb7: 48 8b 40 20 mov 0x20(%rax),%rax 21dfbb: 48 89 45 d0 mov %rax,-0x30(%rbp) if (uiName) { 21dfbf: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 21dfc4: 0f 84 5e 00 00 00 je 21e028 int len = strlen(uiName); 21dfca: 48 8b 7d d0 mov -0x30(%rbp),%rdi 21dfce: e8 1d 02 02 00 call 23e1f0 21dfd3: 89 45 cc mov %eax,-0x34(%rbp) if (len > 2 && uiName[len - 2] == ':') 21dfd6: 83 7d cc 02 cmpl $0x2,-0x34(%rbp) 21dfda: 0f 8e 23 00 00 00 jle 21e003 21dfe0: 48 8b 45 d0 mov -0x30(%rbp),%rax 21dfe4: 8b 4d cc mov -0x34(%rbp),%ecx 21dfe7: 83 e9 02 sub $0x2,%ecx 21dfea: 48 63 c9 movslq %ecx,%rcx 21dfed: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 21dff1: 83 f8 3a cmp $0x3a,%eax 21dff4: 0f 85 09 00 00 00 jne 21e003 len -= 2; 21dffa: 8b 45 cc mov -0x34(%rbp),%eax 21dffd: 83 e8 02 sub $0x2,%eax 21e000: 89 45 cc mov %eax,-0x34(%rbp) xSnprintf(name, length, "%.*s", len, uiName); 21e003: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e007: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21e00b: 8b 4d cc mov -0x34(%rbp),%ecx 21e00e: 4c 8b 45 d0 mov -0x30(%rbp),%r8 21e012: 48 ba 9f 35 20 00 00 00 00 00 movabs $0x20359f,%rdx 21e01c: b0 00 mov $0x0,%al 21e01e: e8 cd b4 01 00 call 2394f0 } else { 21e023: e9 1d 00 00 00 jmp 21e045 xSnprintf(name, length, "%s", meter->name); 21e028: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e02c: 48 8b 75 e8 mov -0x18(%rbp),%rsi 21e030: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21e034: 48 ba 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rdx 21e03e: b0 00 mov $0x0,%al 21e040: e8 ab b4 01 00 call 2394f0 } } 21e045: e9 00 00 00 00 jmp 21e04a } 21e04a: 48 83 c4 40 add $0x40,%rsp 21e04e: 5d pop %rbp 21e04f: c3 ret 000000000021e050 : static inline bool String_eq(const char* s1, const char* s2) { 21e050: 55 push %rbp 21e051: 48 89 e5 mov %rsp,%rbp 21e054: 48 83 ec 10 sub $0x10,%rsp 21e058: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e05c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 21e060: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e064: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21e068: e8 73 01 02 00 call 23e1e0 21e06d: 83 f8 00 cmp $0x0,%eax 21e070: 0f 94 c0 sete %al 21e073: 24 01 and $0x1,%al 21e075: 0f b6 c0 movzbl %al,%eax 21e078: 48 83 c4 10 add $0x10,%rsp 21e07c: 5d pop %rbp 21e07d: c3 ret 21e07e: 66 90 xchg %ax,%ax 000000000021e080 : static inline void Platform_dynamicMeterDisplay(ATTR_UNUSED const Meter* meter, ATTR_UNUSED RichString* out) { } 21e080: 55 push %rbp 21e081: 48 89 e5 mov %rsp,%rbp 21e084: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e088: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21e08c: 5d pop %rbp 21e08d: c3 ret 21e08e: 66 90 xchg %ax,%ax 000000000021e090 : static inline void Platform_dynamicMeterInit(ATTR_UNUSED Meter* meter) { } 21e090: 55 push %rbp 21e091: 48 89 e5 mov %rsp,%rbp 21e094: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e098: 5d pop %rbp 21e099: c3 ret 21e09a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021e0a0 : static inline void Platform_dynamicMeterUpdateValues(ATTR_UNUSED Meter* meter) { } 21e0a0: 55 push %rbp 21e0a1: 48 89 e5 mov %rsp,%rbp 21e0a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e0a8: 5d pop %rbp 21e0a9: c3 ret 21e0aa: cc int3 21e0ab: cc int3 21e0ac: cc int3 21e0ad: cc int3 21e0ae: cc int3 21e0af: cc int3 000000000021e0b0 : #include "ProvideCurses.h" #include "Vector.h" #include "XUtils.h" EnvScreen* EnvScreen_new(Process* process) { 21e0b0: 55 push %rbp 21e0b1: 48 89 e5 mov %rsp,%rbp 21e0b4: 48 83 ec 10 sub $0x10,%rsp 21e0b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) EnvScreen* this = xMalloc(sizeof(EnvScreen)); 21e0bc: bf 28 00 00 00 mov $0x28,%edi 21e0c1: e8 9a a9 01 00 call 238a60 21e0c6: 48 89 45 f0 mov %rax,-0x10(%rbp) Object_setClass(this, Class(EnvScreen)); 21e0ca: 48 8b 45 f0 mov -0x10(%rbp),%rax 21e0ce: 48 b9 20 88 20 00 00 00 00 00 movabs $0x208820,%rcx 21e0d8: 48 89 08 mov %rcx,(%rax) return (EnvScreen*) InfoScreen_init(&this->super, process, NULL, LINES - 2, " "); 21e0db: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e0df: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21e0e3: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 21e0ea: 83 e9 02 sub $0x2,%ecx 21e0ed: 31 c0 xor %eax,%eax 21e0ef: 89 c2 mov %eax,%edx 21e0f1: 49 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%r8 21e0fb: e8 60 32 00 00 call 221360 21e100: 48 83 c4 10 add $0x10,%rsp 21e104: 5d pop %rbp 21e105: c3 ret 21e106: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021e110 : } void EnvScreen_delete(Object* this) { 21e110: 55 push %rbp 21e111: 48 89 e5 mov %rsp,%rbp 21e114: 48 83 ec 10 sub $0x10,%rsp 21e118: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(InfoScreen_done((InfoScreen*)this)); 21e11c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e120: e8 4b 33 00 00 call 221470 21e125: 48 89 c7 mov %rax,%rdi 21e128: e8 33 00 02 00 call 23e160 } 21e12d: 48 83 c4 10 add $0x10,%rsp 21e131: 5d pop %rbp 21e132: c3 ret 21e133: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21e13d: 0f 1f 00 nopl (%rax) 000000000021e140 : static void EnvScreen_draw(InfoScreen* this) { InfoScreen_drawTitled(this, "Environment of process %d - %s", this->process->pid, Process_getCommand(this->process)); } static void EnvScreen_scan(InfoScreen* this) { 21e140: 55 push %rbp 21e141: 48 89 e5 mov %rsp,%rbp 21e144: 48 83 ec 30 sub $0x30,%rsp 21e148: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* panel = this->display; 21e14c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e150: 48 8b 40 10 mov 0x10(%rax),%rax 21e154: 48 89 45 f0 mov %rax,-0x10(%rbp) int idx = MAXIMUM(Panel_getSelectedIndex(panel), 0); 21e158: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e15c: e8 1f a0 00 00 call 228180 21e161: 83 f8 00 cmp $0x0,%eax 21e164: 0f 8e 11 00 00 00 jle 21e17b 21e16a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e16e: e8 0d a0 00 00 call 228180 21e173: 89 45 d4 mov %eax,-0x2c(%rbp) 21e176: e9 0a 00 00 00 jmp 21e185 21e17b: 31 c0 xor %eax,%eax 21e17d: 89 45 d4 mov %eax,-0x2c(%rbp) 21e180: e9 00 00 00 00 jmp 21e185 21e185: 8b 45 d4 mov -0x2c(%rbp),%eax 21e188: 89 45 ec mov %eax,-0x14(%rbp) Panel_prune(panel); 21e18b: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e18f: e8 fc 9c 00 00 call 227e90 char* env = Platform_getProcessEnv(this->process->pid); 21e194: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e198: 48 8b 40 08 mov 0x8(%rax),%rax 21e19c: 8b 78 18 mov 0x18(%rax),%edi 21e19f: e8 4c bd 01 00 call 239ef0 21e1a4: 48 89 45 e0 mov %rax,-0x20(%rbp) if (env) { 21e1a8: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 21e1ad: 0f 84 48 00 00 00 je 21e1fb for (const char* p = env; *p; p = strrchr(p, 0) + 1) 21e1b3: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e1b7: 48 89 45 d8 mov %rax,-0x28(%rbp) 21e1bb: 48 8b 45 d8 mov -0x28(%rbp),%rax 21e1bf: 80 38 00 cmpb $0x0,(%rax) 21e1c2: 0f 84 25 00 00 00 je 21e1ed InfoScreen_addLine(this, p); 21e1c8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e1cc: 48 8b 75 d8 mov -0x28(%rbp),%rsi 21e1d0: e8 db 34 00 00 call 2216b0 for (const char* p = env; *p; p = strrchr(p, 0) + 1) 21e1d5: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21e1d9: 31 f6 xor %esi,%esi 21e1db: e8 e0 03 02 00 call 23e5c0 21e1e0: 48 83 c0 01 add $0x1,%rax 21e1e4: 48 89 45 d8 mov %rax,-0x28(%rbp) 21e1e8: e9 ce ff ff ff jmp 21e1bb free(env); 21e1ed: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21e1f1: e8 6a ff 01 00 call 23e160 } 21e1f6: e9 13 00 00 00 jmp 21e20e else { InfoScreen_addLine(this, "Could not read process environment."); 21e1fb: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e1ff: 48 be f6 44 20 00 00 00 00 00 movabs $0x2044f6,%rsi 21e209: e8 a2 34 00 00 call 2216b0 } Vector_insertionSort(this->lines); 21e20e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e212: 48 8b 78 20 mov 0x20(%rax),%rdi 21e216: e8 15 a1 01 00 call 238330 Vector_insertionSort(panel->items); 21e21b: 48 8b 45 f0 mov -0x10(%rbp),%rax 21e21f: 48 8b 78 18 mov 0x18(%rax),%rdi 21e223: e8 08 a1 01 00 call 238330 Panel_setSelected(panel, idx); 21e228: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e22c: 8b 75 ec mov -0x14(%rbp),%esi 21e22f: e8 8c 9f 00 00 call 2281c0 } 21e234: 48 83 c4 30 add $0x30,%rsp 21e238: 5d pop %rbp 21e239: c3 ret 21e23a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021e240 : static void EnvScreen_draw(InfoScreen* this) { 21e240: 55 push %rbp 21e241: 48 89 e5 mov %rsp,%rbp 21e244: 48 83 ec 20 sub $0x20,%rsp 21e248: 48 89 7d f8 mov %rdi,-0x8(%rbp) InfoScreen_drawTitled(this, "Environment of process %d - %s", this->process->pid, Process_getCommand(this->process)); 21e24c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e250: 48 89 45 e8 mov %rax,-0x18(%rbp) 21e254: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e258: 48 8b 40 08 mov 0x8(%rax),%rax 21e25c: 8b 40 18 mov 0x18(%rax),%eax 21e25f: 89 45 f4 mov %eax,-0xc(%rbp) 21e262: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e266: 48 8b 40 08 mov 0x8(%rax),%rax 21e26a: 48 8b 00 mov (%rax),%rax 21e26d: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 21e272: 0f 84 22 00 00 00 je 21e29a 21e278: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e27c: 48 8b 40 08 mov 0x8(%rax),%rax 21e280: 48 8b 00 mov (%rax),%rax 21e283: 48 8b 40 30 mov 0x30(%rax),%rax 21e287: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21e28b: 48 8b 79 08 mov 0x8(%rcx),%rdi 21e28f: ff d0 call *%rax 21e291: 48 89 45 e0 mov %rax,-0x20(%rbp) 21e295: e9 11 00 00 00 jmp 21e2ab 21e29a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e29e: 48 8b 78 08 mov 0x8(%rax),%rdi 21e2a2: e8 d9 00 01 00 call 22e380 21e2a7: 48 89 45 e0 mov %rax,-0x20(%rbp) 21e2ab: 8b 55 f4 mov -0xc(%rbp),%edx 21e2ae: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21e2b2: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21e2b6: 48 be 28 48 20 00 00 00 00 00 movabs $0x204828,%rsi 21e2c0: b0 00 mov $0x0,%al 21e2c2: e8 e9 31 00 00 call 2214b0 } 21e2c7: 48 83 c4 20 add $0x20,%rsp 21e2cb: 5d pop %rbp 21e2cc: c3 ret 21e2cd: cc int3 21e2ce: cc int3 21e2cf: cc int3 000000000021e2d0 : static const char* const FunctionBar_EnterEscKeys[] = {"Enter", "Esc", NULL}; static const int FunctionBar_EnterEscEvents[] = {13, 27}; static int currentLen = 0; FunctionBar* FunctionBar_newEnterEsc(const char* enter, const char* esc) { 21e2d0: 55 push %rbp 21e2d1: 48 89 e5 mov %rsp,%rbp 21e2d4: 48 83 ec 40 sub $0x40,%rsp 21e2d8: 48 8b 05 51 45 02 00 mov 0x24551(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21e2df: 48 89 45 f8 mov %rax,-0x8(%rbp) 21e2e3: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21e2e7: 48 89 75 d0 mov %rsi,-0x30(%rbp) const char* functions[] = {enter, esc, NULL}; 21e2eb: 48 8b 45 d8 mov -0x28(%rbp),%rax 21e2ef: 48 89 45 e0 mov %rax,-0x20(%rbp) 21e2f3: 48 8b 45 d0 mov -0x30(%rbp),%rax 21e2f7: 48 89 45 e8 mov %rax,-0x18(%rbp) 21e2fb: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) return FunctionBar_new(functions, FunctionBar_EnterEscKeys, FunctionBar_EnterEscEvents); 21e303: 48 8d 7d e0 lea -0x20(%rbp),%rdi 21e307: 48 be 60 88 20 00 00 00 00 00 movabs $0x208860,%rsi 21e311: 48 ba 78 88 20 00 00 00 00 00 movabs $0x208878,%rdx 21e31b: e8 30 00 00 00 call 21e350 21e320: 48 89 45 c8 mov %rax,-0x38(%rbp) 21e324: 48 8b 05 05 45 02 00 mov 0x24505(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21e32b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21e32f: 48 39 c8 cmp %rcx,%rax 21e332: 0f 85 0a 00 00 00 jne 21e342 21e338: 48 8b 45 c8 mov -0x38(%rbp),%rax 21e33c: 48 83 c4 40 add $0x40,%rsp 21e340: 5d pop %rbp 21e341: c3 ret 21e342: e8 f9 fd 01 00 call 23e140 <__stack_chk_fail@plt> 21e347: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000021e350 : } FunctionBar* FunctionBar_new(const char* const* functions, const char* const* keys, const int* events) { 21e350: 55 push %rbp 21e351: 48 89 e5 mov %rsp,%rbp 21e354: 48 83 ec 30 sub $0x30,%rsp 21e358: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e35c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21e360: 48 89 55 e8 mov %rdx,-0x18(%rbp) FunctionBar* this = xCalloc(1, sizeof(FunctionBar)); 21e364: bf 01 00 00 00 mov $0x1,%edi 21e369: be 28 00 00 00 mov $0x28,%esi 21e36e: e8 7d a7 01 00 call 238af0 21e373: 48 89 45 e0 mov %rax,-0x20(%rbp) this->functions = xCalloc(16, sizeof(char*)); 21e377: bf 10 00 00 00 mov $0x10,%edi 21e37c: be 08 00 00 00 mov $0x8,%esi 21e381: e8 6a a7 01 00 call 238af0 21e386: 48 89 c1 mov %rax,%rcx 21e389: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e38d: 48 89 48 08 mov %rcx,0x8(%rax) if (!functions) { 21e391: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 21e396: 0f 85 0e 00 00 00 jne 21e3aa functions = FunctionBar_FLabels; 21e39c: 48 b8 80 88 20 00 00 00 00 00 movabs $0x208880,%rax 21e3a6: 48 89 45 f8 mov %rax,-0x8(%rbp) } for (int i = 0; i < 15 && functions[i]; i++) { 21e3aa: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 21e3b1: 31 c0 xor %eax,%eax 21e3b3: 83 7d dc 0f cmpl $0xf,-0x24(%rbp) 21e3b7: 88 45 d7 mov %al,-0x29(%rbp) 21e3ba: 0f 8d 13 00 00 00 jge 21e3d3 21e3c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e3c4: 48 63 4d dc movslq -0x24(%rbp),%rcx 21e3c8: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 21e3cd: 0f 95 c0 setne %al 21e3d0: 88 45 d7 mov %al,-0x29(%rbp) 21e3d3: 8a 45 d7 mov -0x29(%rbp),%al 21e3d6: a8 01 test $0x1,%al 21e3d8: 0f 85 05 00 00 00 jne 21e3e3 21e3de: e9 32 00 00 00 jmp 21e415 this->functions[i] = xStrdup(functions[i]); 21e3e3: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e3e7: 48 63 4d dc movslq -0x24(%rbp),%rcx 21e3eb: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e3ef: e8 fc ab 01 00 call 238ff0 21e3f4: 48 89 c2 mov %rax,%rdx 21e3f7: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e3fb: 48 8b 40 08 mov 0x8(%rax),%rax 21e3ff: 48 63 4d dc movslq -0x24(%rbp),%rcx 21e403: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) for (int i = 0; i < 15 && functions[i]; i++) { 21e407: 8b 45 dc mov -0x24(%rbp),%eax 21e40a: 83 c0 01 add $0x1,%eax 21e40d: 89 45 dc mov %eax,-0x24(%rbp) 21e410: e9 9c ff ff ff jmp 21e3b1 } if (keys && events) { 21e415: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 21e41a: 0f 84 da 00 00 00 je 21e4fa 21e420: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 21e425: 0f 84 cf 00 00 00 je 21e4fa this->staticData = false; 21e42b: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e42f: c6 40 20 00 movb $0x0,0x20(%rax) this->keys.keys = xCalloc(15, sizeof(char*)); 21e433: bf 0f 00 00 00 mov $0xf,%edi 21e438: be 08 00 00 00 mov $0x8,%esi 21e43d: e8 ae a6 01 00 call 238af0 21e442: 48 89 c1 mov %rax,%rcx 21e445: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e449: 48 89 48 10 mov %rcx,0x10(%rax) this->events = xCalloc(15, sizeof(int)); 21e44d: bf 0f 00 00 00 mov $0xf,%edi 21e452: be 04 00 00 00 mov $0x4,%esi 21e457: e8 94 a6 01 00 call 238af0 21e45c: 48 89 c1 mov %rax,%rcx 21e45f: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e463: 48 89 48 18 mov %rcx,0x18(%rax) int i = 0; 21e467: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) while (i < 15 && functions[i]) { 21e46e: 31 c0 xor %eax,%eax 21e470: 83 7d d8 0f cmpl $0xf,-0x28(%rbp) 21e474: 88 45 d6 mov %al,-0x2a(%rbp) 21e477: 0f 8d 13 00 00 00 jge 21e490 21e47d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e481: 48 63 4d d8 movslq -0x28(%rbp),%rcx 21e485: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 21e48a: 0f 95 c0 setne %al 21e48d: 88 45 d6 mov %al,-0x2a(%rbp) 21e490: 8a 45 d6 mov -0x2a(%rbp),%al 21e493: a8 01 test $0x1,%al 21e495: 0f 85 05 00 00 00 jne 21e4a0 21e49b: e9 4c 00 00 00 jmp 21e4ec this->keys.keys[i] = xStrdup(keys[i]); 21e4a0: 48 8b 45 f0 mov -0x10(%rbp),%rax 21e4a4: 48 63 4d d8 movslq -0x28(%rbp),%rcx 21e4a8: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e4ac: e8 3f ab 01 00 call 238ff0 21e4b1: 48 89 c2 mov %rax,%rdx 21e4b4: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e4b8: 48 8b 40 10 mov 0x10(%rax),%rax 21e4bc: 48 63 4d d8 movslq -0x28(%rbp),%rcx 21e4c0: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->events[i] = events[i]; 21e4c4: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e4c8: 48 63 4d d8 movslq -0x28(%rbp),%rcx 21e4cc: 8b 14 88 mov (%rax,%rcx,4),%edx 21e4cf: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e4d3: 48 8b 40 18 mov 0x18(%rax),%rax 21e4d7: 48 63 4d d8 movslq -0x28(%rbp),%rcx 21e4db: 89 14 88 mov %edx,(%rax,%rcx,4) i++; 21e4de: 8b 45 d8 mov -0x28(%rbp),%eax 21e4e1: 83 c0 01 add $0x1,%eax 21e4e4: 89 45 d8 mov %eax,-0x28(%rbp) while (i < 15 && functions[i]) { 21e4e7: e9 82 ff ff ff jmp 21e46e } this->size = i; 21e4ec: 8b 4d d8 mov -0x28(%rbp),%ecx 21e4ef: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e4f3: 89 08 mov %ecx,(%rax) } else { 21e4f5: e9 36 00 00 00 jmp 21e530 this->staticData = true; 21e4fa: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e4fe: c6 40 20 01 movb $0x1,0x20(%rax) this->keys.constKeys = FunctionBar_FKeys; 21e502: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e506: 48 b9 e0 88 20 00 00 00 00 00 movabs $0x2088e0,%rcx 21e510: 48 89 48 10 mov %rcx,0x10(%rax) this->events = FunctionBar_FEvents; 21e514: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e518: 48 b9 d0 17 24 00 00 00 00 00 movabs $0x2417d0,%rcx 21e522: 48 89 48 18 mov %rcx,0x18(%rax) this->size = ARRAYSIZE(FunctionBar_FEvents); 21e526: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e52a: c7 00 0a 00 00 00 movl $0xa,(%rax) } return this; 21e530: 48 8b 45 e0 mov -0x20(%rbp),%rax 21e534: 48 83 c4 30 add $0x30,%rsp 21e538: 5d pop %rbp 21e539: c3 ret 21e53a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021e540 : } void FunctionBar_delete(FunctionBar* this) { 21e540: 55 push %rbp 21e541: 48 89 e5 mov %rsp,%rbp 21e544: 48 83 ec 20 sub $0x20,%rsp 21e548: 48 89 7d f8 mov %rdi,-0x8(%rbp) for (int i = 0; i < 15 && this->functions[i]; i++) { 21e54c: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 21e553: 31 c0 xor %eax,%eax 21e555: 83 7d f4 0f cmpl $0xf,-0xc(%rbp) 21e559: 88 45 ef mov %al,-0x11(%rbp) 21e55c: 0f 8d 17 00 00 00 jge 21e579 21e562: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e566: 48 8b 40 08 mov 0x8(%rax),%rax 21e56a: 48 63 4d f4 movslq -0xc(%rbp),%rcx 21e56e: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 21e573: 0f 95 c0 setne %al 21e576: 88 45 ef mov %al,-0x11(%rbp) 21e579: 8a 45 ef mov -0x11(%rbp),%al 21e57c: a8 01 test $0x1,%al 21e57e: 0f 85 05 00 00 00 jne 21e589 21e584: e9 23 00 00 00 jmp 21e5ac free(this->functions[i]); 21e589: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e58d: 48 8b 40 08 mov 0x8(%rax),%rax 21e591: 48 63 4d f4 movslq -0xc(%rbp),%rcx 21e595: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e599: e8 c2 fb 01 00 call 23e160 for (int i = 0; i < 15 && this->functions[i]; i++) { 21e59e: 8b 45 f4 mov -0xc(%rbp),%eax 21e5a1: 83 c0 01 add $0x1,%eax 21e5a4: 89 45 f4 mov %eax,-0xc(%rbp) 21e5a7: e9 a7 ff ff ff jmp 21e553 } free(this->functions); 21e5ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e5b0: 48 8b 78 08 mov 0x8(%rax),%rdi 21e5b4: e8 a7 fb 01 00 call 23e160 if (!this->staticData) { 21e5b9: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e5bd: f6 40 20 01 testb $0x1,0x20(%rax) 21e5c1: 0f 85 53 00 00 00 jne 21e61a for (int i = 0; i < this->size; i++) { 21e5c7: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 21e5ce: 8b 45 f0 mov -0x10(%rbp),%eax 21e5d1: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21e5d5: 3b 01 cmp (%rcx),%eax 21e5d7: 0f 8d 23 00 00 00 jge 21e600 free(this->keys.keys[i]); 21e5dd: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e5e1: 48 8b 40 10 mov 0x10(%rax),%rax 21e5e5: 48 63 4d f0 movslq -0x10(%rbp),%rcx 21e5e9: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e5ed: e8 6e fb 01 00 call 23e160 for (int i = 0; i < this->size; i++) { 21e5f2: 8b 45 f0 mov -0x10(%rbp),%eax 21e5f5: 83 c0 01 add $0x1,%eax 21e5f8: 89 45 f0 mov %eax,-0x10(%rbp) 21e5fb: e9 ce ff ff ff jmp 21e5ce } free(this->keys.keys); 21e600: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e604: 48 8b 78 10 mov 0x10(%rax),%rdi 21e608: e8 53 fb 01 00 call 23e160 free(this->events); 21e60d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e611: 48 8b 78 18 mov 0x18(%rax),%rdi 21e615: e8 46 fb 01 00 call 23e160 } free(this); 21e61a: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e61e: e8 3d fb 01 00 call 23e160 } 21e623: 48 83 c4 20 add $0x20,%rsp 21e627: 5d pop %rbp 21e628: c3 ret 21e629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000021e630 : void FunctionBar_setLabel(FunctionBar* this, int event, const char* text) { 21e630: 55 push %rbp 21e631: 48 89 e5 mov %rsp,%rbp 21e634: 48 83 ec 20 sub $0x20,%rsp 21e638: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e63c: 89 75 f4 mov %esi,-0xc(%rbp) 21e63f: 48 89 55 e8 mov %rdx,-0x18(%rbp) for (int i = 0; i < this->size; i++) { 21e643: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%rbp) 21e64a: 8b 45 e4 mov -0x1c(%rbp),%eax 21e64d: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21e651: 3b 01 cmp (%rcx),%eax 21e653: 0f 8d 61 00 00 00 jge 21e6ba if (this->events[i] == event) { 21e659: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e65d: 48 8b 40 18 mov 0x18(%rax),%rax 21e661: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21e665: 8b 04 88 mov (%rax,%rcx,4),%eax 21e668: 3b 45 f4 cmp -0xc(%rbp),%eax 21e66b: 0f 85 36 00 00 00 jne 21e6a7 free(this->functions[i]); 21e671: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e675: 48 8b 40 08 mov 0x8(%rax),%rax 21e679: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21e67d: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e681: e8 da fa 01 00 call 23e160 this->functions[i] = xStrdup(text); 21e686: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21e68a: e8 61 a9 01 00 call 238ff0 21e68f: 48 89 c2 mov %rax,%rdx 21e692: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e696: 48 8b 40 08 mov 0x8(%rax),%rax 21e69a: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21e69e: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) break; 21e6a2: e9 13 00 00 00 jmp 21e6ba } } 21e6a7: e9 00 00 00 00 jmp 21e6ac for (int i = 0; i < this->size; i++) { 21e6ac: 8b 45 e4 mov -0x1c(%rbp),%eax 21e6af: 83 c0 01 add $0x1,%eax 21e6b2: 89 45 e4 mov %eax,-0x1c(%rbp) 21e6b5: e9 90 ff ff ff jmp 21e64a } 21e6ba: 48 83 c4 20 add $0x20,%rsp 21e6be: 5d pop %rbp 21e6bf: c3 ret 000000000021e6c0 : void FunctionBar_draw(const FunctionBar* this) { 21e6c0: 55 push %rbp 21e6c1: 48 89 e5 mov %rsp,%rbp 21e6c4: 48 83 ec 10 sub $0x10,%rsp 21e6c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) FunctionBar_drawExtra(this, NULL, -1, false); 21e6cc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21e6d0: 31 c0 xor %eax,%eax 21e6d2: 89 c6 mov %eax,%esi 21e6d4: ba ff ff ff ff mov $0xffffffff,%edx 21e6d9: 31 c9 xor %ecx,%ecx 21e6db: e8 10 00 00 00 call 21e6f0 } 21e6e0: 48 83 c4 10 add $0x10,%rsp 21e6e4: 5d pop %rbp 21e6e5: c3 ret 21e6e6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021e6f0 : void FunctionBar_drawExtra(const FunctionBar* this, const char* buffer, int attr, bool setCursor) { 21e6f0: 55 push %rbp 21e6f1: 48 89 e5 mov %rsp,%rbp 21e6f4: 48 83 ec 20 sub $0x20,%rsp 21e6f8: 88 c8 mov %cl,%al 21e6fa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e6fe: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21e702: 89 55 ec mov %edx,-0x14(%rbp) 21e705: 24 01 and $0x1,%al 21e707: 88 45 eb mov %al,-0x15(%rbp) attrset(CRT_colors[FUNCTION_BAR]); 21e70a: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e712: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e71a: 8b 70 08 mov 0x8(%rax),%esi 21e71d: e8 5e fa 01 00 call 23e180 mvhline(LINES - 1, 0, ' ', COLS); 21e722: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e72a: 8b 34 25 80 28 24 00 mov 0x242880,%esi 21e731: 83 ee 01 sub $0x1,%esi 21e734: 31 d2 xor %edx,%edx 21e736: e8 55 fa 01 00 call 23e190 21e73b: 83 f8 ff cmp $0xffffffff,%eax 21e73e: 0f 85 05 00 00 00 jne 21e749 21e744: e9 19 00 00 00 jmp 21e762 21e749: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e751: 8b 14 25 70 28 24 00 mov 0x242870,%edx 21e758: be 20 00 00 00 mov $0x20,%esi 21e75d: e8 3e fa 01 00 call 23e1a0 int x = 0; 21e762: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%rbp) for (int i = 0; i < this->size; i++) { 21e769: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%rbp) 21e770: 8b 45 e0 mov -0x20(%rbp),%eax 21e773: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21e777: 3b 01 cmp (%rcx),%eax 21e779: 0f 8d 16 01 00 00 jge 21e895 attrset(CRT_colors[FUNCTION_KEY]); 21e77f: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e787: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e78f: 8b 70 0c mov 0xc(%rax),%esi 21e792: e8 e9 f9 01 00 call 23e180 mvaddstr(LINES - 1, x, this->keys.constKeys[i]); 21e797: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e79f: 8b 34 25 80 28 24 00 mov 0x242880,%esi 21e7a6: 83 ee 01 sub $0x1,%esi 21e7a9: 8b 55 e4 mov -0x1c(%rbp),%edx 21e7ac: e8 df f9 01 00 call 23e190 21e7b1: 83 f8 ff cmp $0xffffffff,%eax 21e7b4: 0f 85 05 00 00 00 jne 21e7bf 21e7ba: e9 22 00 00 00 jmp 21e7e1 21e7bf: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e7c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e7cb: 48 8b 40 10 mov 0x10(%rax),%rax 21e7cf: 48 63 4d e0 movslq -0x20(%rbp),%rcx 21e7d3: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 21e7d7: ba ff ff ff ff mov $0xffffffff,%edx 21e7dc: e8 cf f9 01 00 call 23e1b0 x += strlen(this->keys.constKeys[i]); 21e7e1: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e7e5: 48 8b 40 10 mov 0x10(%rax),%rax 21e7e9: 48 63 4d e0 movslq -0x20(%rbp),%rcx 21e7ed: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e7f1: e8 fa f9 01 00 call 23e1f0 21e7f6: 48 89 c1 mov %rax,%rcx 21e7f9: 48 63 45 e4 movslq -0x1c(%rbp),%rax 21e7fd: 48 01 c8 add %rcx,%rax 21e800: 89 45 e4 mov %eax,-0x1c(%rbp) attrset(CRT_colors[FUNCTION_BAR]); 21e803: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e80b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e813: 8b 70 08 mov 0x8(%rax),%esi 21e816: e8 65 f9 01 00 call 23e180 mvaddstr(LINES - 1, x, this->functions[i]); 21e81b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e823: 8b 34 25 80 28 24 00 mov 0x242880,%esi 21e82a: 83 ee 01 sub $0x1,%esi 21e82d: 8b 55 e4 mov -0x1c(%rbp),%edx 21e830: e8 5b f9 01 00 call 23e190 21e835: 83 f8 ff cmp $0xffffffff,%eax 21e838: 0f 85 05 00 00 00 jne 21e843 21e83e: e9 22 00 00 00 jmp 21e865 21e843: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e84b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e84f: 48 8b 40 08 mov 0x8(%rax),%rax 21e853: 48 63 4d e0 movslq -0x20(%rbp),%rcx 21e857: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 21e85b: ba ff ff ff ff mov $0xffffffff,%edx 21e860: e8 4b f9 01 00 call 23e1b0 x += strlen(this->functions[i]); 21e865: 48 8b 45 f8 mov -0x8(%rbp),%rax 21e869: 48 8b 40 08 mov 0x8(%rax),%rax 21e86d: 48 63 4d e0 movslq -0x20(%rbp),%rcx 21e871: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21e875: e8 76 f9 01 00 call 23e1f0 21e87a: 48 89 c1 mov %rax,%rcx 21e87d: 48 63 45 e4 movslq -0x1c(%rbp),%rax 21e881: 48 01 c8 add %rcx,%rax 21e884: 89 45 e4 mov %eax,-0x1c(%rbp) for (int i = 0; i < this->size; i++) { 21e887: 8b 45 e0 mov -0x20(%rbp),%eax 21e88a: 83 c0 01 add $0x1,%eax 21e88d: 89 45 e0 mov %eax,-0x20(%rbp) 21e890: e9 db fe ff ff jmp 21e770 } if (buffer) { 21e895: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 21e89a: 0f 84 8b 00 00 00 je 21e92b if (attr == -1) { 21e8a0: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 21e8a4: 0f 85 1d 00 00 00 jne 21e8c7 attrset(CRT_colors[FUNCTION_BAR]); 21e8aa: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e8b2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e8ba: 8b 70 08 mov 0x8(%rax),%esi 21e8bd: e8 be f8 01 00 call 23e180 } else { 21e8c2: e9 10 00 00 00 jmp 21e8d7 attrset(attr); 21e8c7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e8cf: 8b 75 ec mov -0x14(%rbp),%esi 21e8d2: e8 a9 f8 01 00 call 23e180 } mvaddstr(LINES - 1, x, buffer); 21e8d7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e8df: 8b 34 25 80 28 24 00 mov 0x242880,%esi 21e8e6: 83 ee 01 sub $0x1,%esi 21e8e9: 8b 55 e4 mov -0x1c(%rbp),%edx 21e8ec: e8 9f f8 01 00 call 23e190 21e8f1: 83 f8 ff cmp $0xffffffff,%eax 21e8f4: 0f 85 05 00 00 00 jne 21e8ff 21e8fa: e9 16 00 00 00 jmp 21e915 21e8ff: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e907: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21e90b: ba ff ff ff ff mov $0xffffffff,%edx 21e910: e8 9b f8 01 00 call 23e1b0 x += strlen(buffer); 21e915: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21e919: e8 d2 f8 01 00 call 23e1f0 21e91e: 48 89 c1 mov %rax,%rcx 21e921: 48 63 45 e4 movslq -0x1c(%rbp),%rax 21e925: 48 01 c8 add %rcx,%rax 21e928: 89 45 e4 mov %eax,-0x1c(%rbp) } attrset(CRT_colors[RESET_COLOR]); 21e92b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e933: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e93b: 8b 30 mov (%rax),%esi 21e93d: e8 3e f8 01 00 call 23e180 if (setCursor) { 21e942: f6 45 eb 01 testb $0x1,-0x15(%rbp) 21e946: 0f 84 19 00 00 00 je 21e965 CRT_cursorX = x; 21e94c: 8b 45 e4 mov -0x1c(%rbp),%eax 21e94f: 89 04 25 64 1d 24 00 mov %eax,0x241d64 curs_set(1); 21e956: bf 01 00 00 00 mov $0x1,%edi 21e95b: e8 b0 fa 01 00 call 23e410 } else { 21e960: e9 07 00 00 00 jmp 21e96c curs_set(0); 21e965: 31 ff xor %edi,%edi 21e967: e8 a4 fa 01 00 call 23e410 } currentLen = x; 21e96c: 8b 45 e4 mov -0x1c(%rbp),%eax 21e96f: 89 04 25 d0 21 24 00 mov %eax,0x2421d0 } 21e976: 48 83 c4 20 add $0x20,%rsp 21e97a: 5d pop %rbp 21e97b: c3 ret 21e97c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021e980 : void FunctionBar_append(const char* buffer, int attr) { 21e980: 55 push %rbp 21e981: 48 89 e5 mov %rsp,%rbp 21e984: 48 83 ec 10 sub $0x10,%rsp 21e988: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21e98c: 89 75 f4 mov %esi,-0xc(%rbp) if (attr == -1) { 21e98f: 83 7d f4 ff cmpl $0xffffffff,-0xc(%rbp) 21e993: 0f 85 1d 00 00 00 jne 21e9b6 attrset(CRT_colors[FUNCTION_BAR]); 21e999: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e9a1: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21e9a9: 8b 70 08 mov 0x8(%rax),%esi 21e9ac: e8 cf f7 01 00 call 23e180 } else { 21e9b1: e9 10 00 00 00 jmp 21e9c6 attrset(attr); 21e9b6: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e9be: 8b 75 f4 mov -0xc(%rbp),%esi 21e9c1: e8 ba f7 01 00 call 23e180 } mvaddstr(LINES - 1, currentLen + 1, buffer); 21e9c6: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e9ce: 8b 34 25 80 28 24 00 mov 0x242880,%esi 21e9d5: 83 ee 01 sub $0x1,%esi 21e9d8: 8b 14 25 d0 21 24 00 mov 0x2421d0,%edx 21e9df: 83 c2 01 add $0x1,%edx 21e9e2: e8 a9 f7 01 00 call 23e190 21e9e7: 83 f8 ff cmp $0xffffffff,%eax 21e9ea: 0f 85 05 00 00 00 jne 21e9f5 21e9f0: e9 16 00 00 00 jmp 21ea0b 21e9f5: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21e9fd: 48 8b 75 f8 mov -0x8(%rbp),%rsi 21ea01: ba ff ff ff ff mov $0xffffffff,%edx 21ea06: e8 a5 f7 01 00 call 23e1b0 attrset(CRT_colors[RESET_COLOR]); 21ea0b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 21ea13: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 21ea1b: 8b 30 mov (%rax),%esi 21ea1d: e8 5e f7 01 00 call 23e180 currentLen += strlen(buffer) + 1; 21ea22: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21ea26: e8 c5 f7 01 00 call 23e1f0 21ea2b: 48 89 c1 mov %rax,%rcx 21ea2e: 48 83 c1 01 add $0x1,%rcx 21ea32: 48 63 04 25 d0 21 24 00 movslq 0x2421d0,%rax 21ea3a: 48 01 c8 add %rcx,%rax 21ea3d: 89 04 25 d0 21 24 00 mov %eax,0x2421d0 } 21ea44: 48 83 c4 10 add $0x10,%rsp 21ea48: 5d pop %rbp 21ea49: c3 ret 21ea4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021ea50 : int FunctionBar_synthesizeEvent(const FunctionBar* this, int pos) { 21ea50: 55 push %rbp 21ea51: 48 89 e5 mov %rsp,%rbp 21ea54: 48 83 ec 20 sub $0x20,%rsp 21ea58: 48 89 7d f0 mov %rdi,-0x10(%rbp) 21ea5c: 89 75 ec mov %esi,-0x14(%rbp) int x = 0; 21ea5f: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) for (int i = 0; i < this->size; i++) { 21ea66: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%rbp) 21ea6d: 8b 45 e4 mov -0x1c(%rbp),%eax 21ea70: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21ea74: 3b 01 cmp (%rcx),%eax 21ea76: 0f 8d 7a 00 00 00 jge 21eaf6 x += strlen(this->keys.constKeys[i]); 21ea7c: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ea80: 48 8b 40 10 mov 0x10(%rax),%rax 21ea84: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21ea88: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21ea8c: e8 5f f7 01 00 call 23e1f0 21ea91: 48 89 c1 mov %rax,%rcx 21ea94: 48 63 45 e8 movslq -0x18(%rbp),%rax 21ea98: 48 01 c8 add %rcx,%rax 21ea9b: 89 45 e8 mov %eax,-0x18(%rbp) x += strlen(this->functions[i]); 21ea9e: 48 8b 45 f0 mov -0x10(%rbp),%rax 21eaa2: 48 8b 40 08 mov 0x8(%rax),%rax 21eaa6: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21eaaa: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21eaae: e8 3d f7 01 00 call 23e1f0 21eab3: 48 89 c1 mov %rax,%rcx 21eab6: 48 63 45 e8 movslq -0x18(%rbp),%rax 21eaba: 48 01 c8 add %rcx,%rax 21eabd: 89 45 e8 mov %eax,-0x18(%rbp) if (pos < x) { 21eac0: 8b 45 ec mov -0x14(%rbp),%eax 21eac3: 3b 45 e8 cmp -0x18(%rbp),%eax 21eac6: 0f 8d 17 00 00 00 jge 21eae3 return this->events[i]; 21eacc: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ead0: 48 8b 40 18 mov 0x18(%rax),%rax 21ead4: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 21ead8: 8b 04 88 mov (%rax,%rcx,4),%eax 21eadb: 89 45 fc mov %eax,-0x4(%rbp) 21eade: e9 1a 00 00 00 jmp 21eafd } } 21eae3: e9 00 00 00 00 jmp 21eae8 for (int i = 0; i < this->size; i++) { 21eae8: 8b 45 e4 mov -0x1c(%rbp),%eax 21eaeb: 83 c0 01 add $0x1,%eax 21eaee: 89 45 e4 mov %eax,-0x1c(%rbp) 21eaf1: e9 77 ff ff ff jmp 21ea6d return ERR; 21eaf6: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } 21eafd: 8b 45 fc mov -0x4(%rbp),%eax 21eb00: 48 83 c4 20 add $0x20,%rsp 21eb04: 5d pop %rbp 21eb05: c3 ret 21eb06: cc int3 21eb07: cc int3 21eb08: cc int3 21eb09: cc int3 21eb0a: cc int3 21eb0b: cc int3 21eb0c: cc int3 21eb0d: cc int3 21eb0e: cc int3 21eb0f: cc int3 000000000021eb10 : } CRT_fatalError("Hashtable: no prime found"); } Hashtable* Hashtable_new(size_t size, bool owner) { 21eb10: 55 push %rbp 21eb11: 48 89 e5 mov %rsp,%rbp 21eb14: 48 83 ec 20 sub $0x20,%rsp 21eb18: 40 88 f0 mov %sil,%al 21eb1b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21eb1f: 24 01 and $0x1,%al 21eb21: 88 45 f7 mov %al,-0x9(%rbp) Hashtable* this; this = xMalloc(sizeof(Hashtable)); 21eb24: bf 20 00 00 00 mov $0x20,%edi 21eb29: e8 32 9f 01 00 call 238a60 21eb2e: 48 89 45 e8 mov %rax,-0x18(%rbp) this->items = 0; 21eb32: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eb36: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) this->size = size ? nextPrime(size) : 13; 21eb3e: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 21eb43: 0f 84 12 00 00 00 je 21eb5b 21eb49: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21eb4d: e8 5e 00 00 00 call 21ebb0 21eb52: 48 89 45 e0 mov %rax,-0x20(%rbp) 21eb56: e9 0e 00 00 00 jmp 21eb69 21eb5b: b8 0d 00 00 00 mov $0xd,%eax 21eb60: 48 89 45 e0 mov %rax,-0x20(%rbp) 21eb64: e9 00 00 00 00 jmp 21eb69 21eb69: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21eb6d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eb71: 48 89 08 mov %rcx,(%rax) this->buckets = (HashtableItem*) xCalloc(this->size, sizeof(HashtableItem)); 21eb74: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eb78: 48 8b 38 mov (%rax),%rdi 21eb7b: be 18 00 00 00 mov $0x18,%esi 21eb80: e8 6b 9f 01 00 call 238af0 21eb85: 48 89 c1 mov %rax,%rcx 21eb88: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eb8c: 48 89 48 08 mov %rcx,0x8(%rax) this->owner = owner; 21eb90: 8a 4d f7 mov -0x9(%rbp),%cl 21eb93: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eb97: 80 e1 01 and $0x1,%cl 21eb9a: 88 48 18 mov %cl,0x18(%rax) assert(Hashtable_isConsistent(this)); return this; 21eb9d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21eba1: 48 83 c4 20 add $0x20,%rsp 21eba5: 5d pop %rbp 21eba6: c3 ret 21eba7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000021ebb0 : static size_t nextPrime(size_t n) { 21ebb0: 55 push %rbp 21ebb1: 48 89 e5 mov %rsp,%rbp 21ebb4: 48 83 ec 20 sub $0x20,%rsp 21ebb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) for (size_t i = 0; i < ARRAYSIZE(OEISprimes) && OEISprimes[i] < SIZE_MAX; i++) { 21ebbc: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 21ebc4: 31 c0 xor %eax,%eax 21ebc6: 48 83 7d f0 25 cmpq $0x25,-0x10(%rbp) 21ebcb: 88 45 ef mov %al,-0x11(%rbp) 21ebce: 0f 83 13 00 00 00 jae 21ebe7 21ebd4: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ebd8: 48 83 3c c5 40 89 20 00 ff cmpq $0xffffffffffffffff,0x208940(,%rax,8) 21ebe1: 0f 92 c0 setb %al 21ebe4: 88 45 ef mov %al,-0x11(%rbp) 21ebe7: 8a 45 ef mov -0x11(%rbp),%al 21ebea: a8 01 test $0x1,%al 21ebec: 0f 85 05 00 00 00 jne 21ebf7 21ebf2: e9 3e 00 00 00 jmp 21ec35 if (n <= OEISprimes[i]) 21ebf7: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ebfb: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21ebff: 48 3b 04 cd 40 89 20 00 cmp 0x208940(,%rcx,8),%rax 21ec07: 0f 87 12 00 00 00 ja 21ec1f return OEISprimes[i]; 21ec0d: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ec11: 48 8b 04 c5 40 89 20 00 mov 0x208940(,%rax,8),%rax 21ec19: 48 83 c4 20 add $0x20,%rsp 21ec1d: 5d pop %rbp 21ec1e: c3 ret } 21ec1f: e9 00 00 00 00 jmp 21ec24 for (size_t i = 0; i < ARRAYSIZE(OEISprimes) && OEISprimes[i] < SIZE_MAX; i++) { 21ec24: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ec28: 48 83 c0 01 add $0x1,%rax 21ec2c: 48 89 45 f0 mov %rax,-0x10(%rbp) 21ec30: e9 8f ff ff ff jmp 21ebc4 CRT_fatalError("Hashtable: no prime found"); 21ec35: 48 bf 13 68 20 00 00 00 00 00 movabs $0x206813,%rdi 21ec3f: e8 0c da ff ff call 21c650 21ec44: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21ec4e: 66 90 xchg %ax,%ax 000000000021ec50 : } void Hashtable_delete(Hashtable* this) { 21ec50: 55 push %rbp 21ec51: 48 89 e5 mov %rsp,%rbp 21ec54: 48 83 ec 10 sub $0x10,%rsp 21ec58: 48 89 7d f8 mov %rdi,-0x8(%rbp) Hashtable_clear(this); 21ec5c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21ec60: e8 2b 00 00 00 call 21ec90 free(this->buckets); 21ec65: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ec69: 48 8b 78 08 mov 0x8(%rax),%rdi 21ec6d: e8 ee f4 01 00 call 23e160 free(this); 21ec72: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21ec76: e8 e5 f4 01 00 call 23e160 } 21ec7b: 48 83 c4 10 add $0x10,%rsp 21ec7f: 5d pop %rbp 21ec80: c3 ret 21ec81: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21ec8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021ec90 : void Hashtable_clear(Hashtable* this) { 21ec90: 55 push %rbp 21ec91: 48 89 e5 mov %rsp,%rbp 21ec94: 48 83 ec 10 sub $0x10,%rsp 21ec98: 48 89 7d f8 mov %rdi,-0x8(%rbp) assert(Hashtable_isConsistent(this)); if (this->owner) 21ec9c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21eca0: f6 40 18 01 testb $0x1,0x18(%rax) 21eca4: 0f 84 48 00 00 00 je 21ecf2 for (size_t i = 0; i < this->size; i++) 21ecaa: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 21ecb2: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ecb6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21ecba: 48 3b 01 cmp (%rcx),%rax 21ecbd: 0f 83 2a 00 00 00 jae 21eced free(this->buckets[i].value); 21ecc3: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ecc7: 48 8b 40 08 mov 0x8(%rax),%rax 21eccb: 48 6b 4d f0 18 imul $0x18,-0x10(%rbp),%rcx 21ecd0: 48 01 c8 add %rcx,%rax 21ecd3: 48 8b 78 10 mov 0x10(%rax),%rdi 21ecd7: e8 84 f4 01 00 call 23e160 for (size_t i = 0; i < this->size; i++) 21ecdc: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ece0: 48 83 c0 01 add $0x1,%rax 21ece4: 48 89 45 f0 mov %rax,-0x10(%rbp) 21ece8: e9 c5 ff ff ff jmp 21ecb2 free(this->buckets[i].value); 21eced: e9 00 00 00 00 jmp 21ecf2 memset(this->buckets, 0, this->size * sizeof(HashtableItem)); 21ecf2: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ecf6: 48 8b 78 08 mov 0x8(%rax),%rdi 21ecfa: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ecfe: 48 6b 10 18 imul $0x18,(%rax),%rdx 21ed02: 31 f6 xor %esi,%esi 21ed04: e8 37 f5 01 00 call 23e240 this->items = 0; 21ed09: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed0d: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) assert(Hashtable_isConsistent(this)); } 21ed15: 48 83 c4 10 add $0x10,%rsp 21ed19: 5d pop %rbp 21ed1a: c3 ret 21ed1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021ed20 : assert(index != origIndex); } } void Hashtable_setSize(Hashtable* this, size_t size) { 21ed20: 55 push %rbp 21ed21: 48 89 e5 mov %rsp,%rbp 21ed24: 48 83 ec 30 sub $0x30,%rsp 21ed28: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21ed2c: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(Hashtable_isConsistent(this)); if (size <= this->items) 21ed30: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ed34: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21ed38: 48 3b 41 10 cmp 0x10(%rcx),%rax 21ed3c: 0f 87 05 00 00 00 ja 21ed47 return; 21ed42: e9 c5 00 00 00 jmp 21ee0c HashtableItem* oldBuckets = this->buckets; 21ed47: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed4b: 48 8b 40 08 mov 0x8(%rax),%rax 21ed4f: 48 89 45 e8 mov %rax,-0x18(%rbp) size_t oldSize = this->size; 21ed53: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed57: 48 8b 00 mov (%rax),%rax 21ed5a: 48 89 45 e0 mov %rax,-0x20(%rbp) this->size = nextPrime(size); 21ed5e: 48 8b 7d f0 mov -0x10(%rbp),%rdi 21ed62: e8 49 fe ff ff call 21ebb0 21ed67: 48 89 c1 mov %rax,%rcx 21ed6a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed6e: 48 89 08 mov %rcx,(%rax) this->buckets = (HashtableItem*) xCalloc(this->size, sizeof(HashtableItem)); 21ed71: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed75: 48 8b 38 mov (%rax),%rdi 21ed78: be 18 00 00 00 mov $0x18,%esi 21ed7d: e8 6e 9d 01 00 call 238af0 21ed82: 48 89 c1 mov %rax,%rcx 21ed85: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed89: 48 89 48 08 mov %rcx,0x8(%rax) this->items = 0; 21ed8d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed91: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) /* rehash */ for (size_t i = 0; i < oldSize; i++) { 21ed99: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 21eda1: 48 8b 45 d8 mov -0x28(%rbp),%rax 21eda5: 48 3b 45 e0 cmp -0x20(%rbp),%rax 21eda9: 0f 83 54 00 00 00 jae 21ee03 if (!oldBuckets[i].value) 21edaf: 48 8b 45 e8 mov -0x18(%rbp),%rax 21edb3: 48 6b 4d d8 18 imul $0x18,-0x28(%rbp),%rcx 21edb8: 48 01 c8 add %rcx,%rax 21edbb: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21edc0: 0f 85 05 00 00 00 jne 21edcb continue; 21edc6: e9 27 00 00 00 jmp 21edf2 insert(this, oldBuckets[i].key, oldBuckets[i].value); 21edcb: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21edcf: 48 8b 45 e8 mov -0x18(%rbp),%rax 21edd3: 48 6b 4d d8 18 imul $0x18,-0x28(%rbp),%rcx 21edd8: 48 01 c8 add %rcx,%rax 21eddb: 8b 30 mov (%rax),%esi 21eddd: 48 8b 45 e8 mov -0x18(%rbp),%rax 21ede1: 48 6b 4d d8 18 imul $0x18,-0x28(%rbp),%rcx 21ede6: 48 01 c8 add %rcx,%rax 21ede9: 48 8b 50 10 mov 0x10(%rax),%rdx 21eded: e8 2e 00 00 00 call 21ee20 for (size_t i = 0; i < oldSize; i++) { 21edf2: 48 8b 45 d8 mov -0x28(%rbp),%rax 21edf6: 48 83 c0 01 add $0x1,%rax 21edfa: 48 89 45 d8 mov %rax,-0x28(%rbp) 21edfe: e9 9e ff ff ff jmp 21eda1 } free(oldBuckets); 21ee03: 48 8b 7d e8 mov -0x18(%rbp),%rdi 21ee07: e8 54 f3 01 00 call 23e160 assert(Hashtable_isConsistent(this)); } 21ee0c: 48 83 c4 30 add $0x30,%rsp 21ee10: 5d pop %rbp 21ee11: c3 ret 21ee12: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21ee1c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021ee20 : static void insert(Hashtable* this, ht_key_t key, void* value) { 21ee20: 55 push %rbp 21ee21: 48 89 e5 mov %rsp,%rbp 21ee24: 48 83 ec 50 sub $0x50,%rsp 21ee28: 48 8b 05 01 3a 02 00 mov 0x23a01(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21ee2f: 48 89 45 f8 mov %rax,-0x8(%rbp) 21ee33: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21ee37: 89 75 d4 mov %esi,-0x2c(%rbp) 21ee3a: 48 89 55 c8 mov %rdx,-0x38(%rbp) size_t index = key % this->size; 21ee3e: 8b 45 d4 mov -0x2c(%rbp),%eax 21ee41: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21ee45: 31 d2 xor %edx,%edx 21ee47: 48 f7 31 divq (%rcx) 21ee4a: 48 89 55 c0 mov %rdx,-0x40(%rbp) size_t probe = 0; 21ee4e: 48 c7 45 b8 00 00 00 00 movq $0x0,-0x48(%rbp) if (!this->buckets[index].value) { 21ee56: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ee5a: 48 8b 40 08 mov 0x8(%rax),%rax 21ee5e: 48 6b 4d c0 18 imul $0x18,-0x40(%rbp),%rcx 21ee63: 48 01 c8 add %rcx,%rax 21ee66: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21ee6b: 0f 85 5a 00 00 00 jne 21eecb this->items++; 21ee71: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ee75: 48 8b 48 10 mov 0x10(%rax),%rcx 21ee79: 48 83 c1 01 add $0x1,%rcx 21ee7d: 48 89 48 10 mov %rcx,0x10(%rax) this->buckets[index].key = key; 21ee81: 8b 4d d4 mov -0x2c(%rbp),%ecx 21ee84: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ee88: 48 8b 40 08 mov 0x8(%rax),%rax 21ee8c: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21ee91: 48 01 d0 add %rdx,%rax 21ee94: 89 08 mov %ecx,(%rax) this->buckets[index].probe = probe; 21ee96: 48 8b 4d b8 mov -0x48(%rbp),%rcx 21ee9a: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ee9e: 48 8b 40 08 mov 0x8(%rax),%rax 21eea2: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21eea7: 48 01 d0 add %rdx,%rax 21eeaa: 48 89 48 08 mov %rcx,0x8(%rax) this->buckets[index].value = value; 21eeae: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21eeb2: 48 8b 45 d8 mov -0x28(%rbp),%rax 21eeb6: 48 8b 40 08 mov 0x8(%rax),%rax 21eeba: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21eebf: 48 01 d0 add %rdx,%rax 21eec2: 48 89 48 10 mov %rcx,0x10(%rax) return; 21eec6: e9 43 01 00 00 jmp 21f00e if (this->buckets[index].key == key) { 21eecb: 48 8b 45 d8 mov -0x28(%rbp),%rax 21eecf: 48 8b 40 08 mov 0x8(%rax),%rax 21eed3: 48 6b 4d c0 18 imul $0x18,-0x40(%rbp),%rcx 21eed8: 48 01 c8 add %rcx,%rax 21eedb: 8b 00 mov (%rax),%eax 21eedd: 3b 45 d4 cmp -0x2c(%rbp),%eax 21eee0: 0f 85 62 00 00 00 jne 21ef48 if (this->owner && this->buckets[index].value != value) 21eee6: 48 8b 45 d8 mov -0x28(%rbp),%rax 21eeea: f6 40 18 01 testb $0x1,0x18(%rax) 21eeee: 0f 84 37 00 00 00 je 21ef2b 21eef4: 48 8b 45 d8 mov -0x28(%rbp),%rax 21eef8: 48 8b 40 08 mov 0x8(%rax),%rax 21eefc: 48 6b 4d c0 18 imul $0x18,-0x40(%rbp),%rcx 21ef01: 48 01 c8 add %rcx,%rax 21ef04: 48 8b 40 10 mov 0x10(%rax),%rax 21ef08: 48 3b 45 c8 cmp -0x38(%rbp),%rax 21ef0c: 0f 84 19 00 00 00 je 21ef2b free(this->buckets[index].value); 21ef12: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ef16: 48 8b 40 08 mov 0x8(%rax),%rax 21ef1a: 48 6b 4d c0 18 imul $0x18,-0x40(%rbp),%rcx 21ef1f: 48 01 c8 add %rcx,%rax 21ef22: 48 8b 78 10 mov 0x10(%rax),%rdi 21ef26: e8 35 f2 01 00 call 23e160 this->buckets[index].value = value; 21ef2b: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21ef2f: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ef33: 48 8b 40 08 mov 0x8(%rax),%rax 21ef37: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21ef3c: 48 01 d0 add %rdx,%rax 21ef3f: 48 89 48 10 mov %rcx,0x10(%rax) return; 21ef43: e9 c6 00 00 00 jmp 21f00e if (probe > this->buckets[index].probe) { 21ef48: 48 8b 45 b8 mov -0x48(%rbp),%rax 21ef4c: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21ef50: 48 8b 49 08 mov 0x8(%rcx),%rcx 21ef54: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21ef59: 48 01 d1 add %rdx,%rcx 21ef5c: 48 3b 41 08 cmp 0x8(%rcx),%rax 21ef60: 0f 86 82 00 00 00 jbe 21efe8 HashtableItem tmp = this->buckets[index]; 21ef66: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ef6a: 48 8b 40 08 mov 0x8(%rax),%rax 21ef6e: 48 6b 4d c0 18 imul $0x18,-0x40(%rbp),%rcx 21ef73: 48 01 c8 add %rcx,%rax 21ef76: 48 8b 08 mov (%rax),%rcx 21ef79: 48 89 4d e0 mov %rcx,-0x20(%rbp) 21ef7d: 48 8b 48 08 mov 0x8(%rax),%rcx 21ef81: 48 89 4d e8 mov %rcx,-0x18(%rbp) 21ef85: 48 8b 40 10 mov 0x10(%rax),%rax 21ef89: 48 89 45 f0 mov %rax,-0x10(%rbp) this->buckets[index].key = key; 21ef8d: 8b 4d d4 mov -0x2c(%rbp),%ecx 21ef90: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ef94: 48 8b 40 08 mov 0x8(%rax),%rax 21ef98: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21ef9d: 48 01 d0 add %rdx,%rax 21efa0: 89 08 mov %ecx,(%rax) this->buckets[index].probe = probe; 21efa2: 48 8b 4d b8 mov -0x48(%rbp),%rcx 21efa6: 48 8b 45 d8 mov -0x28(%rbp),%rax 21efaa: 48 8b 40 08 mov 0x8(%rax),%rax 21efae: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21efb3: 48 01 d0 add %rdx,%rax 21efb6: 48 89 48 08 mov %rcx,0x8(%rax) this->buckets[index].value = value; 21efba: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21efbe: 48 8b 45 d8 mov -0x28(%rbp),%rax 21efc2: 48 8b 40 08 mov 0x8(%rax),%rax 21efc6: 48 6b 55 c0 18 imul $0x18,-0x40(%rbp),%rdx 21efcb: 48 01 d0 add %rdx,%rax 21efce: 48 89 48 10 mov %rcx,0x10(%rax) key = tmp.key; 21efd2: 8b 45 e0 mov -0x20(%rbp),%eax 21efd5: 89 45 d4 mov %eax,-0x2c(%rbp) probe = tmp.probe; 21efd8: 48 8b 45 e8 mov -0x18(%rbp),%rax 21efdc: 48 89 45 b8 mov %rax,-0x48(%rbp) value = tmp.value; 21efe0: 48 8b 45 f0 mov -0x10(%rbp),%rax 21efe4: 48 89 45 c8 mov %rax,-0x38(%rbp) index = (index + 1) % this->size; 21efe8: 48 8b 45 c0 mov -0x40(%rbp),%rax 21efec: 48 83 c0 01 add $0x1,%rax 21eff0: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21eff4: 31 d2 xor %edx,%edx 21eff6: 48 f7 31 divq (%rcx) 21eff9: 48 89 55 c0 mov %rdx,-0x40(%rbp) probe++; 21effd: 48 8b 45 b8 mov -0x48(%rbp),%rax 21f001: 48 83 c0 01 add $0x1,%rax 21f005: 48 89 45 b8 mov %rax,-0x48(%rbp) for (;;) { 21f009: e9 48 fe ff ff jmp 21ee56 21f00e: 48 8b 05 1b 38 02 00 mov 0x2381b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21f015: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f019: 48 39 c8 cmp %rcx,%rax 21f01c: 0f 85 06 00 00 00 jne 21f028 } 21f022: 48 83 c4 50 add $0x50,%rsp 21f026: 5d pop %rbp 21f027: c3 ret 21f028: e8 13 f1 01 00 call 23e140 <__stack_chk_fail@plt> 21f02d: 0f 1f 00 nopl (%rax) 000000000021f030 : void Hashtable_put(Hashtable* this, ht_key_t key, void* value) { 21f030: 55 push %rbp 21f031: 48 89 e5 mov %rsp,%rbp 21f034: 48 83 ec 20 sub $0x20,%rsp 21f038: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f03c: 89 75 f4 mov %esi,-0xc(%rbp) 21f03f: 48 89 55 e8 mov %rdx,-0x18(%rbp) assert(Hashtable_isConsistent(this)); assert(this->size > 0); assert(value); /* grow on load-factor > 0.7 */ if (10 * this->items > 7 * this->size) { 21f043: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f047: 48 6b 40 10 0a imul $0xa,0x10(%rax),%rax 21f04c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f050: 48 6b 09 07 imul $0x7,(%rcx),%rcx 21f054: 48 39 c8 cmp %rcx,%rax 21f057: 0f 86 3a 00 00 00 jbe 21f097 if (SIZE_MAX / 2 < this->size) 21f05d: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f061: 48 b8 ff ff ff ff ff ff ff 7f movabs $0x7fffffffffffffff,%rax 21f06b: 48 3b 01 cmp (%rcx),%rax 21f06e: 0f 83 0f 00 00 00 jae 21f083 CRT_fatalError("Hashtable: size overflow"); 21f074: 48 bf 17 59 20 00 00 00 00 00 movabs $0x205917,%rdi 21f07e: e8 cd d5 ff ff call 21c650 Hashtable_setSize(this, 2 * this->size); 21f083: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f087: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f08b: 48 8b 30 mov (%rax),%rsi 21f08e: 48 c1 e6 01 shl $0x1,%rsi 21f092: e8 89 fc ff ff call 21ed20 } insert(this, key, value); 21f097: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f09b: 8b 75 f4 mov -0xc(%rbp),%esi 21f09e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21f0a2: e8 79 fd ff ff call 21ee20 assert(Hashtable_isConsistent(this)); assert(Hashtable_get(this, key) != NULL); assert(this->size > this->items); } 21f0a7: 48 83 c4 20 add $0x20,%rsp 21f0ab: 5d pop %rbp 21f0ac: c3 ret 21f0ad: 0f 1f 00 nopl (%rax) 000000000021f0b0 : void* Hashtable_remove(Hashtable* this, ht_key_t key) { 21f0b0: 55 push %rbp 21f0b1: 48 89 e5 mov %rsp,%rbp 21f0b4: 48 83 ec 40 sub $0x40,%rsp 21f0b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f0bc: 89 75 f4 mov %esi,-0xc(%rbp) size_t index = key % this->size; 21f0bf: 8b 45 f4 mov -0xc(%rbp),%eax 21f0c2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f0c6: 31 d2 xor %edx,%edx 21f0c8: 48 f7 31 divq (%rcx) 21f0cb: 48 89 55 e8 mov %rdx,-0x18(%rbp) size_t probe = 0; 21f0cf: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) size_t origIndex = index; #endif assert(Hashtable_isConsistent(this)); void* res = NULL; 21f0d7: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) while (this->buckets[index].value) { 21f0df: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f0e3: 48 8b 40 08 mov 0x8(%rax),%rax 21f0e7: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f0ec: 48 01 c8 add %rcx,%rax 21f0ef: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21f0f4: 0f 84 a9 01 00 00 je 21f2a3 if (this->buckets[index].key == key) { 21f0fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f0fe: 48 8b 40 08 mov 0x8(%rax),%rax 21f102: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f107: 48 01 c8 add %rcx,%rax 21f10a: 8b 00 mov (%rax),%eax 21f10c: 3b 45 f4 cmp -0xc(%rbp),%eax 21f10f: 0f 85 45 01 00 00 jne 21f25a if (this->owner) { 21f115: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f119: f6 40 18 01 testb $0x1,0x18(%rax) 21f11d: 0f 84 1e 00 00 00 je 21f141 free(this->buckets[index].value); 21f123: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f127: 48 8b 40 08 mov 0x8(%rax),%rax 21f12b: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f130: 48 01 c8 add %rcx,%rax 21f133: 48 8b 78 10 mov 0x10(%rax),%rdi 21f137: e8 24 f0 01 00 call 23e160 } else { 21f13c: e9 18 00 00 00 jmp 21f159 res = this->buckets[index].value; 21f141: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f145: 48 8b 40 08 mov 0x8(%rax),%rax 21f149: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f14e: 48 01 c8 add %rcx,%rax 21f151: 48 8b 40 10 mov 0x10(%rax),%rax 21f155: 48 89 45 d8 mov %rax,-0x28(%rbp) } size_t next = (index + 1) % this->size; 21f159: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f15d: 48 83 c0 01 add $0x1,%rax 21f161: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f165: 31 d2 xor %edx,%edx 21f167: 48 f7 31 divq (%rcx) 21f16a: 48 89 55 d0 mov %rdx,-0x30(%rbp) while (this->buckets[next].value && this->buckets[next].probe > 0) { 21f16e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f172: 48 8b 48 08 mov 0x8(%rax),%rcx 21f176: 48 6b 45 d0 18 imul $0x18,-0x30(%rbp),%rax 21f17b: 48 01 c1 add %rax,%rcx 21f17e: 31 c0 xor %eax,%eax 21f180: 48 83 79 10 00 cmpq $0x0,0x10(%rcx) 21f185: 88 45 cf mov %al,-0x31(%rbp) 21f188: 0f 84 1b 00 00 00 je 21f1a9 21f18e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f192: 48 8b 40 08 mov 0x8(%rax),%rax 21f196: 48 6b 4d d0 18 imul $0x18,-0x30(%rbp),%rcx 21f19b: 48 01 c8 add %rcx,%rax 21f19e: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 21f1a3: 0f 97 c0 seta %al 21f1a6: 88 45 cf mov %al,-0x31(%rbp) 21f1a9: 8a 45 cf mov -0x31(%rbp),%al 21f1ac: a8 01 test $0x1,%al 21f1ae: 0f 85 05 00 00 00 jne 21f1b9 21f1b4: e9 74 00 00 00 jmp 21f22d this->buckets[index] = this->buckets[next]; 21f1b9: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f1bd: 48 8b 40 08 mov 0x8(%rax),%rax 21f1c1: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f1c6: 48 01 c8 add %rcx,%rax 21f1c9: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f1cd: 48 8b 49 08 mov 0x8(%rcx),%rcx 21f1d1: 48 6b 55 d0 18 imul $0x18,-0x30(%rbp),%rdx 21f1d6: 48 01 d1 add %rdx,%rcx 21f1d9: 48 8b 11 mov (%rcx),%rdx 21f1dc: 48 89 10 mov %rdx,(%rax) 21f1df: 48 8b 51 08 mov 0x8(%rcx),%rdx 21f1e3: 48 89 50 08 mov %rdx,0x8(%rax) 21f1e7: 48 8b 49 10 mov 0x10(%rcx),%rcx 21f1eb: 48 89 48 10 mov %rcx,0x10(%rax) this->buckets[index].probe -= 1; 21f1ef: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f1f3: 48 8b 40 08 mov 0x8(%rax),%rax 21f1f7: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f1fc: 48 01 c8 add %rcx,%rax 21f1ff: 48 8b 48 08 mov 0x8(%rax),%rcx 21f203: 48 83 e9 01 sub $0x1,%rcx 21f207: 48 89 48 08 mov %rcx,0x8(%rax) index = next; 21f20b: 48 8b 45 d0 mov -0x30(%rbp),%rax 21f20f: 48 89 45 e8 mov %rax,-0x18(%rbp) next = (index + 1) % this->size; 21f213: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f217: 48 83 c0 01 add $0x1,%rax 21f21b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f21f: 31 d2 xor %edx,%edx 21f221: 48 f7 31 divq (%rcx) 21f224: 48 89 55 d0 mov %rdx,-0x30(%rbp) while (this->buckets[next].value && this->buckets[next].probe > 0) { 21f228: e9 41 ff ff ff jmp 21f16e } /* set empty after backward shifting */ this->buckets[index].value = NULL; 21f22d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f231: 48 8b 40 08 mov 0x8(%rax),%rax 21f235: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f23a: 48 01 c8 add %rcx,%rax 21f23d: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) this->items--; 21f245: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f249: 48 8b 48 10 mov 0x10(%rax),%rcx 21f24d: 48 83 c1 ff add $0xffffffffffffffff,%rcx 21f251: 48 89 48 10 mov %rcx,0x10(%rax) break; 21f255: e9 49 00 00 00 jmp 21f2a3 } if (this->buckets[index].probe < probe) 21f25a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f25e: 48 8b 40 08 mov 0x8(%rax),%rax 21f262: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f267: 48 01 c8 add %rcx,%rax 21f26a: 48 8b 40 08 mov 0x8(%rax),%rax 21f26e: 48 3b 45 e0 cmp -0x20(%rbp),%rax 21f272: 0f 83 05 00 00 00 jae 21f27d break; 21f278: e9 26 00 00 00 jmp 21f2a3 index = (index + 1) % this->size; 21f27d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f281: 48 83 c0 01 add $0x1,%rax 21f285: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f289: 31 d2 xor %edx,%edx 21f28b: 48 f7 31 divq (%rcx) 21f28e: 48 89 55 e8 mov %rdx,-0x18(%rbp) probe++; 21f292: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f296: 48 83 c0 01 add $0x1,%rax 21f29a: 48 89 45 e0 mov %rax,-0x20(%rbp) while (this->buckets[index].value) { 21f29e: e9 3c fe ff ff jmp 21f0df assert(Hashtable_isConsistent(this)); assert(Hashtable_get(this, key) == NULL); /* shrink on load-factor < 0.125 */ if (8 * this->items < this->size) 21f2a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f2a7: 48 8b 40 10 mov 0x10(%rax),%rax 21f2ab: 48 c1 e0 03 shl $0x3,%rax 21f2af: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f2b3: 48 3b 01 cmp (%rcx),%rax 21f2b6: 0f 83 14 00 00 00 jae 21f2d0 Hashtable_setSize(this, this->size / 2); 21f2bc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f2c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f2c4: 48 8b 30 mov (%rax),%rsi 21f2c7: 48 c1 ee 01 shr $0x1,%rsi 21f2cb: e8 50 fa ff ff call 21ed20 return res; 21f2d0: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f2d4: 48 83 c4 40 add $0x40,%rsp 21f2d8: 5d pop %rbp 21f2d9: c3 ret 21f2da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000021f2e0 : } void* Hashtable_get(Hashtable* this, ht_key_t key) { 21f2e0: 55 push %rbp 21f2e1: 48 89 e5 mov %rsp,%rbp 21f2e4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f2e8: 89 75 f4 mov %esi,-0xc(%rbp) size_t index = key % this->size; 21f2eb: 8b 45 f4 mov -0xc(%rbp),%eax 21f2ee: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f2f2: 31 d2 xor %edx,%edx 21f2f4: 48 f7 31 divq (%rcx) 21f2f7: 48 89 55 e8 mov %rdx,-0x18(%rbp) size_t probe = 0; 21f2fb: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) void* res = NULL; 21f303: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) size_t origIndex = index; #endif assert(Hashtable_isConsistent(this)); while (this->buckets[index].value) { 21f30b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f30f: 48 8b 40 08 mov 0x8(%rax),%rax 21f313: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f318: 48 01 c8 add %rcx,%rax 21f31b: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21f320: 0f 84 a5 00 00 00 je 21f3cb if (this->buckets[index].key == key) { 21f326: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f32a: 48 8b 40 08 mov 0x8(%rax),%rax 21f32e: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f333: 48 01 c8 add %rcx,%rax 21f336: 8b 00 mov (%rax),%eax 21f338: 3b 45 f4 cmp -0xc(%rbp),%eax 21f33b: 0f 85 1d 00 00 00 jne 21f35e res = this->buckets[index].value; 21f341: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f345: 48 8b 40 08 mov 0x8(%rax),%rax 21f349: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f34e: 48 01 c8 add %rcx,%rax 21f351: 48 8b 40 10 mov 0x10(%rax),%rax 21f355: 48 89 45 d8 mov %rax,-0x28(%rbp) break; 21f359: e9 6d 00 00 00 jmp 21f3cb } if (this->buckets[index].probe < probe) 21f35e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f362: 48 8b 40 08 mov 0x8(%rax),%rax 21f366: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 21f36b: 48 01 c8 add %rcx,%rax 21f36e: 48 8b 40 08 mov 0x8(%rax),%rax 21f372: 48 3b 45 e0 cmp -0x20(%rbp),%rax 21f376: 0f 83 05 00 00 00 jae 21f381 break; 21f37c: e9 4a 00 00 00 jmp 21f3cb index = (index + 1) != this->size ? (index + 1) : 0; 21f381: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f385: 48 83 c0 01 add $0x1,%rax 21f389: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f38d: 48 3b 01 cmp (%rcx),%rax 21f390: 0f 84 11 00 00 00 je 21f3a7 21f396: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f39a: 48 83 c0 01 add $0x1,%rax 21f39e: 48 89 45 d0 mov %rax,-0x30(%rbp) 21f3a2: e9 0b 00 00 00 jmp 21f3b2 21f3a7: 31 c0 xor %eax,%eax 21f3a9: 48 89 45 d0 mov %rax,-0x30(%rbp) 21f3ad: e9 00 00 00 00 jmp 21f3b2 21f3b2: 48 8b 45 d0 mov -0x30(%rbp),%rax 21f3b6: 48 89 45 e8 mov %rax,-0x18(%rbp) probe++; 21f3ba: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f3be: 48 83 c0 01 add $0x1,%rax 21f3c2: 48 89 45 e0 mov %rax,-0x20(%rbp) while (this->buckets[index].value) { 21f3c6: e9 40 ff ff ff jmp 21f30b assert(index != origIndex); } return res; 21f3cb: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f3cf: 5d pop %rbp 21f3d0: c3 ret 21f3d1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21f3db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021f3e0 : } void Hashtable_foreach(Hashtable* this, Hashtable_PairFunction f, void* userData) { 21f3e0: 55 push %rbp 21f3e1: 48 89 e5 mov %rsp,%rbp 21f3e4: 48 83 ec 30 sub $0x30,%rsp 21f3e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f3ec: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21f3f0: 48 89 55 e8 mov %rdx,-0x18(%rbp) assert(Hashtable_isConsistent(this)); for (size_t i = 0; i < this->size; i++) { 21f3f4: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) 21f3fc: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f400: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f404: 48 3b 01 cmp (%rcx),%rax 21f407: 0f 83 51 00 00 00 jae 21f45e HashtableItem* walk = &this->buckets[i]; 21f40d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f411: 48 8b 40 08 mov 0x8(%rax),%rax 21f415: 48 6b 4d e0 18 imul $0x18,-0x20(%rbp),%rcx 21f41a: 48 01 c8 add %rcx,%rax 21f41d: 48 89 45 d8 mov %rax,-0x28(%rbp) if (walk->value) 21f421: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f425: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 21f42a: 0f 84 18 00 00 00 je 21f448 f(walk->key, walk->value, userData); 21f430: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f434: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f438: 8b 39 mov (%rcx),%edi 21f43a: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f43e: 48 8b 71 10 mov 0x10(%rcx),%rsi 21f442: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21f446: ff d0 call *%rax } 21f448: e9 00 00 00 00 jmp 21f44d for (size_t i = 0; i < this->size; i++) { 21f44d: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f451: 48 83 c0 01 add $0x1,%rax 21f455: 48 89 45 e0 mov %rax,-0x20(%rbp) 21f459: e9 9e ff ff ff jmp 21f3fc assert(Hashtable_isConsistent(this)); } 21f45e: 48 83 c4 30 add $0x30,%rsp 21f462: 5d pop %rbp 21f463: c3 ret 21f464: cc int3 21f465: cc int3 21f466: cc int3 21f467: cc int3 21f468: cc int3 21f469: cc int3 21f46a: cc int3 21f46b: cc int3 21f46c: cc int3 21f46d: cc int3 21f46e: cc int3 21f46f: cc int3 000000000021f470 : #include "Platform.h" #include "ProvideCurses.h" #include "XUtils.h" Header* Header_new(ProcessList* pl, Settings* settings, HeaderLayout hLayout) { 21f470: 55 push %rbp 21f471: 48 89 e5 mov %rsp,%rbp 21f474: 48 83 ec 30 sub $0x30,%rsp 21f478: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f47c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21f480: 89 55 ec mov %edx,-0x14(%rbp) Header* this = xCalloc(1, sizeof(Header)); 21f483: bf 01 00 00 00 mov $0x1,%edi 21f488: be 28 00 00 00 mov $0x28,%esi 21f48d: e8 5e 96 01 00 call 238af0 21f492: 48 89 45 e0 mov %rax,-0x20(%rbp) this->columns = xMallocArray(HeaderLayout_getColumns(hLayout), sizeof(Vector*)); 21f496: 8b 7d ec mov -0x14(%rbp),%edi 21f499: e8 b2 00 00 00 call 21f550 21f49e: 48 89 c7 mov %rax,%rdi 21f4a1: be 08 00 00 00 mov $0x8,%esi 21f4a6: e8 f5 95 01 00 call 238aa0 21f4ab: 48 89 c1 mov %rax,%rcx 21f4ae: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f4b2: 48 89 08 mov %rcx,(%rax) this->settings = settings; 21f4b5: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21f4b9: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f4bd: 48 89 48 08 mov %rcx,0x8(%rax) this->pl = pl; 21f4c1: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21f4c5: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f4c9: 48 89 48 10 mov %rcx,0x10(%rax) this->headerLayout = hLayout; 21f4cd: 8b 4d ec mov -0x14(%rbp),%ecx 21f4d0: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f4d4: 89 48 18 mov %ecx,0x18(%rax) Header_forEachColumn(this, i) { 21f4d7: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 21f4df: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f4e3: 8b 78 18 mov 0x18(%rax),%edi 21f4e6: e8 65 00 00 00 call 21f550 21f4eb: 48 89 45 d0 mov %rax,-0x30(%rbp) 21f4ef: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f4f3: 48 3b 45 d0 cmp -0x30(%rbp),%rax 21f4f7: 0f 83 3c 00 00 00 jae 21f539 this->columns[i] = Vector_new(Class(Meter), true, DEFAULT_SIZE); 21f4fd: 48 bf 60 92 20 00 00 00 00 00 movabs $0x209260,%rdi 21f507: be 01 00 00 00 mov $0x1,%esi 21f50c: ba ff ff ff ff mov $0xffffffff,%edx 21f511: e8 6a 8b 01 00 call 238080 21f516: 48 89 c2 mov %rax,%rdx 21f519: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f51d: 48 8b 00 mov (%rax),%rax 21f520: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f524: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) Header_forEachColumn(this, i) { 21f528: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f52c: 48 83 c0 01 add $0x1,%rax 21f530: 48 89 45 d8 mov %rax,-0x28(%rbp) 21f534: e9 b6 ff ff ff jmp 21f4ef } return this; 21f539: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f53d: 48 83 c4 30 add $0x30,%rsp 21f541: 5d pop %rbp 21f542: c3 ret 21f543: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21f54d: 0f 1f 00 nopl (%rax) 000000000021f550 : static inline size_t HeaderLayout_getColumns(HeaderLayout hLayout) { 21f550: 55 push %rbp 21f551: 48 89 e5 mov %rsp,%rbp 21f554: 89 7d fc mov %edi,-0x4(%rbp) return HeaderLayout_layouts[hLayout].columns; 21f557: 8b 45 fc mov -0x4(%rbp),%eax 21f55a: 89 c1 mov %eax,%ecx 21f55c: 48 b8 90 8a 20 00 00 00 00 00 movabs $0x208a90,%rax 21f566: 48 6b c9 18 imul $0x18,%rcx,%rcx 21f56a: 48 01 c8 add %rcx,%rax 21f56d: 0f b6 00 movzbl (%rax),%eax 21f570: 5d pop %rbp 21f571: c3 ret 21f572: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21f57c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021f580 : } void Header_delete(Header* this) { 21f580: 55 push %rbp 21f581: 48 89 e5 mov %rsp,%rbp 21f584: 48 83 ec 20 sub $0x20,%rsp 21f588: 48 89 7d f8 mov %rdi,-0x8(%rbp) Header_forEachColumn(this, i) { 21f58c: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 21f594: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f598: 8b 78 18 mov 0x18(%rax),%edi 21f59b: e8 b0 ff ff ff call 21f550 21f5a0: 48 89 45 e8 mov %rax,-0x18(%rbp) 21f5a4: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f5a8: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21f5ac: 0f 83 25 00 00 00 jae 21f5d7 Vector_delete(this->columns[i]); 21f5b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f5b6: 48 8b 00 mov (%rax),%rax 21f5b9: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21f5bd: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21f5c1: e8 4a 8b 01 00 call 238110 Header_forEachColumn(this, i) { 21f5c6: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f5ca: 48 83 c0 01 add $0x1,%rax 21f5ce: 48 89 45 f0 mov %rax,-0x10(%rbp) 21f5d2: e9 cd ff ff ff jmp 21f5a4 } free(this->columns); 21f5d7: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f5db: 48 8b 38 mov (%rax),%rdi 21f5de: e8 7d eb 01 00 call 23e160 free(this); 21f5e3: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f5e7: e8 74 eb 01 00 call 23e160 } 21f5ec: 48 83 c4 20 add $0x20,%rsp 21f5f0: 5d pop %rbp 21f5f1: c3 ret 21f5f2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21f5fc: 0f 1f 40 00 nopl 0x0(%rax) 000000000021f600 : void Header_setLayout(Header* this, HeaderLayout hLayout) { 21f600: 55 push %rbp 21f601: 48 89 e5 mov %rsp,%rbp 21f604: 48 83 ec 40 sub $0x40,%rsp 21f608: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f60c: 89 75 f4 mov %esi,-0xc(%rbp) size_t oldColumns = HeaderLayout_getColumns(this->headerLayout); 21f60f: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f613: 8b 78 18 mov 0x18(%rax),%edi 21f616: e8 35 ff ff ff call 21f550 21f61b: 48 89 45 e8 mov %rax,-0x18(%rbp) size_t newColumns = HeaderLayout_getColumns(hLayout); 21f61f: 8b 7d f4 mov -0xc(%rbp),%edi 21f622: e8 29 ff ff ff call 21f550 21f627: 48 89 45 e0 mov %rax,-0x20(%rbp) this->headerLayout = hLayout; 21f62b: 8b 4d f4 mov -0xc(%rbp),%ecx 21f62e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f632: 89 48 18 mov %ecx,0x18(%rax) if (newColumns == oldColumns) 21f635: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f639: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21f63d: 0f 85 05 00 00 00 jne 21f648 return; 21f643: e9 51 01 00 00 jmp 21f799 if (newColumns > oldColumns) { 21f648: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f64c: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21f650: 0f 86 76 00 00 00 jbe 21f6cc this->columns = xReallocArray(this->columns, newColumns, sizeof(Vector*)); 21f656: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f65a: 48 8b 38 mov (%rax),%rdi 21f65d: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21f661: ba 08 00 00 00 mov $0x8,%edx 21f666: e8 35 95 01 00 call 238ba0 21f66b: 48 89 c1 mov %rax,%rcx 21f66e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f672: 48 89 08 mov %rcx,(%rax) for (size_t i = oldColumns; i < newColumns; i++) 21f675: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f679: 48 89 45 d8 mov %rax,-0x28(%rbp) 21f67d: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f681: 48 3b 45 e0 cmp -0x20(%rbp),%rax 21f685: 0f 83 3c 00 00 00 jae 21f6c7 this->columns[i] = Vector_new(Class(Meter), true, DEFAULT_SIZE); 21f68b: 48 bf 60 92 20 00 00 00 00 00 movabs $0x209260,%rdi 21f695: be 01 00 00 00 mov $0x1,%esi 21f69a: ba ff ff ff ff mov $0xffffffff,%edx 21f69f: e8 dc 89 01 00 call 238080 21f6a4: 48 89 c2 mov %rax,%rdx 21f6a7: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f6ab: 48 8b 00 mov (%rax),%rax 21f6ae: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f6b2: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) for (size_t i = oldColumns; i < newColumns; i++) 21f6b6: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f6ba: 48 83 c0 01 add $0x1,%rax 21f6be: 48 89 45 d8 mov %rax,-0x28(%rbp) 21f6c2: e9 b6 ff ff ff jmp 21f67d } else { 21f6c7: e9 c4 00 00 00 jmp 21f790 // move meters from to-be-deleted columns into last one for (size_t i = newColumns; i < oldColumns; i++) { 21f6cc: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f6d0: 48 89 45 d0 mov %rax,-0x30(%rbp) 21f6d4: 48 8b 45 d0 mov -0x30(%rbp),%rax 21f6d8: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21f6dc: 0f 83 8f 00 00 00 jae 21f771 for (int j = this->columns[i]->items - 1; j >= 0; j--) { 21f6e2: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f6e6: 48 8b 00 mov (%rax),%rax 21f6e9: 48 8b 4d d0 mov -0x30(%rbp),%rcx 21f6ed: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21f6f1: 8b 40 18 mov 0x18(%rax),%eax 21f6f4: 83 e8 01 sub $0x1,%eax 21f6f7: 89 45 cc mov %eax,-0x34(%rbp) 21f6fa: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) 21f6fe: 0f 8c 48 00 00 00 jl 21f74c Vector_add(this->columns[newColumns - 1], Vector_take(this->columns[i], j)); 21f704: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f708: 48 8b 00 mov (%rax),%rax 21f70b: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21f70f: 48 83 e9 01 sub $0x1,%rcx 21f713: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21f717: 48 89 45 c0 mov %rax,-0x40(%rbp) 21f71b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f71f: 48 8b 00 mov (%rax),%rax 21f722: 48 8b 4d d0 mov -0x30(%rbp),%rcx 21f726: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21f72a: 8b 75 cc mov -0x34(%rbp),%esi 21f72d: e8 2e 8e 01 00 call 238560 21f732: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21f736: 48 89 c6 mov %rax,%rsi 21f739: e8 a2 90 01 00 call 2387e0 for (int j = this->columns[i]->items - 1; j >= 0; j--) { 21f73e: 8b 45 cc mov -0x34(%rbp),%eax 21f741: 83 c0 ff add $0xffffffff,%eax 21f744: 89 45 cc mov %eax,-0x34(%rbp) 21f747: e9 ae ff ff ff jmp 21f6fa } Vector_delete(this->columns[i]); 21f74c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f750: 48 8b 00 mov (%rax),%rax 21f753: 48 8b 4d d0 mov -0x30(%rbp),%rcx 21f757: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21f75b: e8 b0 89 01 00 call 238110 for (size_t i = newColumns; i < oldColumns; i++) { 21f760: 48 8b 45 d0 mov -0x30(%rbp),%rax 21f764: 48 83 c0 01 add $0x1,%rax 21f768: 48 89 45 d0 mov %rax,-0x30(%rbp) 21f76c: e9 63 ff ff ff jmp 21f6d4 } this->columns = xReallocArray(this->columns, newColumns, sizeof(Vector*)); 21f771: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f775: 48 8b 38 mov (%rax),%rdi 21f778: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21f77c: ba 08 00 00 00 mov $0x8,%edx 21f781: e8 1a 94 01 00 call 238ba0 21f786: 48 89 c1 mov %rax,%rcx 21f789: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f78d: 48 89 08 mov %rcx,(%rax) } Header_calculateHeight(this); 21f790: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f794: e8 07 00 00 00 call 21f7a0 } 21f799: 48 83 c4 40 add $0x40,%rsp 21f79d: 5d pop %rbp 21f79e: c3 ret 21f79f: 90 nop 000000000021f7a0 : } return HeaderLayout_getColumns(this->headerLayout) - curColumn; } int Header_calculateHeight(Header* this) { 21f7a0: 55 push %rbp 21f7a1: 48 89 e5 mov %rsp,%rbp 21f7a4: 48 83 ec 40 sub $0x40,%rsp 21f7a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) const int pad = this->settings->headerMargin ? 2 : 0; 21f7ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f7b0: 48 8b 40 08 mov 0x8(%rax),%rax 21f7b4: 8a 50 61 mov 0x61(%rax),%dl 21f7b7: 31 c0 xor %eax,%eax 21f7b9: b9 02 00 00 00 mov $0x2,%ecx 21f7be: f6 c2 01 test $0x1,%dl 21f7c1: 0f 45 c1 cmovne %ecx,%eax 21f7c4: 89 45 f4 mov %eax,-0xc(%rbp) int maxHeight = pad; 21f7c7: 8b 45 f4 mov -0xc(%rbp),%eax 21f7ca: 89 45 f0 mov %eax,-0x10(%rbp) Header_forEachColumn(this, col) { 21f7cd: 48 c7 45 e8 00 00 00 00 movq $0x0,-0x18(%rbp) 21f7d5: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f7d9: 8b 78 18 mov 0x18(%rax),%edi 21f7dc: e8 6f fd ff ff call 21f550 21f7e1: 48 89 45 e0 mov %rax,-0x20(%rbp) 21f7e5: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f7e9: 48 3b 45 e0 cmp -0x20(%rbp),%rax 21f7ed: 0f 83 be 00 00 00 jae 21f8b1 const Vector* meters = this->columns[col]; 21f7f3: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f7f7: 48 8b 00 mov (%rax),%rax 21f7fa: 48 8b 4d e8 mov -0x18(%rbp),%rcx 21f7fe: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21f802: 48 89 45 d8 mov %rax,-0x28(%rbp) int height = pad; 21f806: 8b 45 f4 mov -0xc(%rbp),%eax 21f809: 89 45 d4 mov %eax,-0x2c(%rbp) for (int i = 0; i < Vector_size(meters); i++) { 21f80c: c7 45 d0 00 00 00 00 movl $0x0,-0x30(%rbp) 21f813: 8b 45 d0 mov -0x30(%rbp),%eax 21f816: 89 45 c4 mov %eax,-0x3c(%rbp) 21f819: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21f81d: e8 ae 06 00 00 call 21fed0 21f822: 89 c1 mov %eax,%ecx 21f824: 8b 45 c4 mov -0x3c(%rbp),%eax 21f827: 39 c8 cmp %ecx,%eax 21f829: 0f 8d 4e 00 00 00 jge 21f87d Meter* meter = (Meter*) Vector_get(meters, i); 21f82f: 48 8b 7d d8 mov -0x28(%rbp),%rdi 21f833: 8b 75 d0 mov -0x30(%rbp),%esi 21f836: e8 b5 06 00 00 call 21fef0 21f83b: 48 89 45 c8 mov %rax,-0x38(%rbp) meter->columnWidthCount = calcColumnWidthCount(this, meter, pad, col, height); 21f83f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f843: 48 8b 75 c8 mov -0x38(%rbp),%rsi 21f847: 8b 55 f4 mov -0xc(%rbp),%edx 21f84a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f84e: 89 c1 mov %eax,%ecx 21f850: 44 8b 45 d4 mov -0x2c(%rbp),%r8d 21f854: e8 a7 0b 00 00 call 220400 21f859: 89 c1 mov %eax,%ecx 21f85b: 48 8b 45 c8 mov -0x38(%rbp),%rax 21f85f: 89 48 2c mov %ecx,0x2c(%rax) height += meter->h; 21f862: 48 8b 45 c8 mov -0x38(%rbp),%rax 21f866: 8b 40 28 mov 0x28(%rax),%eax 21f869: 03 45 d4 add -0x2c(%rbp),%eax 21f86c: 89 45 d4 mov %eax,-0x2c(%rbp) for (int i = 0; i < Vector_size(meters); i++) { 21f86f: 8b 45 d0 mov -0x30(%rbp),%eax 21f872: 83 c0 01 add $0x1,%eax 21f875: 89 45 d0 mov %eax,-0x30(%rbp) 21f878: e9 96 ff ff ff jmp 21f813 } maxHeight = MAXIMUM(maxHeight, height); 21f87d: 8b 45 f0 mov -0x10(%rbp),%eax 21f880: 3b 45 d4 cmp -0x2c(%rbp),%eax 21f883: 0f 8e 0b 00 00 00 jle 21f894 21f889: 8b 45 f0 mov -0x10(%rbp),%eax 21f88c: 89 45 c0 mov %eax,-0x40(%rbp) 21f88f: e9 06 00 00 00 jmp 21f89a 21f894: 8b 45 d4 mov -0x2c(%rbp),%eax 21f897: 89 45 c0 mov %eax,-0x40(%rbp) 21f89a: 8b 45 c0 mov -0x40(%rbp),%eax 21f89d: 89 45 f0 mov %eax,-0x10(%rbp) Header_forEachColumn(this, col) { 21f8a0: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f8a4: 48 83 c0 01 add $0x1,%rax 21f8a8: 48 89 45 e8 mov %rax,-0x18(%rbp) 21f8ac: e9 34 ff ff ff jmp 21f7e5 } this->height = maxHeight; 21f8b1: 8b 4d f0 mov -0x10(%rbp),%ecx 21f8b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f8b8: 89 48 20 mov %ecx,0x20(%rax) this->pad = pad; 21f8bb: 8b 4d f4 mov -0xc(%rbp),%ecx 21f8be: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f8c2: 89 48 1c mov %ecx,0x1c(%rax) return maxHeight; 21f8c5: 8b 45 f0 mov -0x10(%rbp),%eax 21f8c8: 48 83 c4 40 add $0x40,%rsp 21f8cc: 5d pop %rbp 21f8cd: c3 ret 21f8ce: 66 90 xchg %ax,%ax 000000000021f8d0 : void Header_populateFromSettings(Header* this) { 21f8d0: 55 push %rbp 21f8d1: 48 89 e5 mov %rsp,%rbp 21f8d4: 48 83 ec 30 sub $0x30,%rsp 21f8d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Header_setLayout(this, this->settings->hLayout); 21f8dc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f8e0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f8e4: 48 8b 40 08 mov 0x8(%rax),%rax 21f8e8: 8b 70 0c mov 0xc(%rax),%esi 21f8eb: e8 10 fd ff ff call 21f600 Header_forEachColumn(this, col) { 21f8f0: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 21f8f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f8fc: 8b 78 18 mov 0x18(%rax),%edi 21f8ff: e8 4c fc ff ff call 21f550 21f904: 48 89 45 e8 mov %rax,-0x18(%rbp) 21f908: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f90c: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21f910: 0f 83 9a 00 00 00 jae 21f9b0 const MeterColumnSetting* colSettings = &this->settings->hColumns[col]; 21f916: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f91a: 48 8b 40 08 mov 0x8(%rax),%rax 21f91e: 48 8b 40 10 mov 0x10(%rax),%rax 21f922: 48 6b 4d f0 18 imul $0x18,-0x10(%rbp),%rcx 21f927: 48 01 c8 add %rcx,%rax 21f92a: 48 89 45 e0 mov %rax,-0x20(%rbp) Vector_prune(this->columns[col]); 21f92e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f932: 48 8b 00 mov (%rax),%rax 21f935: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21f939: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21f93d: e8 7e 88 01 00 call 2381c0 for (size_t i = 0; i < colSettings->len; i++) { 21f942: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 21f94a: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f94e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21f952: 48 3b 01 cmp (%rcx),%rax 21f955: 0f 83 3f 00 00 00 jae 21f99a Header_addMeterByName(this, colSettings->names[i], colSettings->modes[i], col); 21f95b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f95f: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f963: 48 8b 40 08 mov 0x8(%rax),%rax 21f967: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f96b: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 21f96f: 48 8b 45 e0 mov -0x20(%rbp),%rax 21f973: 48 8b 40 10 mov 0x10(%rax),%rax 21f977: 48 8b 4d d8 mov -0x28(%rbp),%rcx 21f97b: 8b 14 88 mov (%rax,%rcx,4),%edx 21f97e: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f982: 89 c1 mov %eax,%ecx 21f984: e8 37 00 00 00 call 21f9c0 for (size_t i = 0; i < colSettings->len; i++) { 21f989: 48 8b 45 d8 mov -0x28(%rbp),%rax 21f98d: 48 83 c0 01 add $0x1,%rax 21f991: 48 89 45 d8 mov %rax,-0x28(%rbp) 21f995: e9 b0 ff ff ff jmp 21f94a } 21f99a: e9 00 00 00 00 jmp 21f99f Header_forEachColumn(this, col) { 21f99f: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f9a3: 48 83 c0 01 add $0x1,%rax 21f9a7: 48 89 45 f0 mov %rax,-0x10(%rbp) 21f9ab: e9 58 ff ff ff jmp 21f908 Header_calculateHeight(this); 21f9b0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 21f9b4: e8 e7 fd ff ff call 21f7a0 } 21f9b9: 48 83 c4 30 add $0x30,%rsp 21f9bd: 5d pop %rbp 21f9be: c3 ret 21f9bf: 90 nop 000000000021f9c0 : static void Header_addMeterByName(Header* this, const char* name, MeterModeId mode, unsigned int column) { 21f9c0: 55 push %rbp 21f9c1: 48 89 e5 mov %rsp,%rbp 21f9c4: 48 81 ec 90 00 00 00 sub $0x90,%rsp 21f9cb: 48 8b 05 5e 2e 02 00 mov 0x22e5e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21f9d2: 48 89 45 f8 mov %rax,-0x8(%rbp) 21f9d6: 48 89 7d c0 mov %rdi,-0x40(%rbp) 21f9da: 48 89 75 b8 mov %rsi,-0x48(%rbp) 21f9de: 89 55 b4 mov %edx,-0x4c(%rbp) 21f9e1: 89 4d b0 mov %ecx,-0x50(%rbp) Vector* meters = this->columns[column]; 21f9e4: 48 8b 45 c0 mov -0x40(%rbp),%rax 21f9e8: 48 8b 00 mov (%rax),%rax 21f9eb: 8b 4d b0 mov -0x50(%rbp),%ecx 21f9ee: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21f9f2: 48 89 45 a8 mov %rax,-0x58(%rbp) const char* paren = strchr(name, '('); 21f9f6: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21f9fa: be 28 00 00 00 mov $0x28,%esi 21f9ff: e8 cc eb 01 00 call 23e5d0 21fa04: 48 89 45 a0 mov %rax,-0x60(%rbp) unsigned int param = 0; 21fa08: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) if (paren) { 21fa0f: 48 83 7d a0 00 cmpq $0x0,-0x60(%rbp) 21fa14: 0f 84 cb 00 00 00 je 21fae5 int ok = sscanf(paren, "(%10u)", ¶m); // CPUMeter 21fa1a: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21fa1e: 48 be eb 45 20 00 00 00 00 00 movabs $0x2045eb,%rsi 21fa28: 48 8d 55 cc lea -0x34(%rbp),%rdx 21fa2c: b0 00 mov $0x0,%al 21fa2e: e8 8d e8 01 00 call 23e2c0 21fa33: 89 45 94 mov %eax,-0x6c(%rbp) if (!ok) { 21fa36: 83 7d 94 00 cmpl $0x0,-0x6c(%rbp) 21fa3a: 0f 85 91 00 00 00 jne 21fad1 char dynamic[32] = {0}; 21fa40: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21fa44: 31 f6 xor %esi,%esi 21fa46: ba 20 00 00 00 mov $0x20,%edx 21fa4b: e8 f0 e7 01 00 call 23e240 if (sscanf(paren, "(%30s)", dynamic)) { // DynamicMeter 21fa50: 48 8b 7d a0 mov -0x60(%rbp),%rdi 21fa54: 48 8d 55 d0 lea -0x30(%rbp),%rdx 21fa58: 48 be 95 43 20 00 00 00 00 00 movabs $0x204395,%rsi 21fa62: b0 00 mov $0x0,%al 21fa64: e8 57 e8 01 00 call 23e2c0 21fa69: 83 f8 00 cmp $0x0,%eax 21fa6c: 0f 84 53 00 00 00 je 21fac5 if ((end = strrchr(dynamic, ')')) == NULL) 21fa72: 48 8d 7d d0 lea -0x30(%rbp),%rdi 21fa76: be 29 00 00 00 mov $0x29,%esi 21fa7b: e8 40 eb 01 00 call 23e5c0 21fa80: 48 89 45 88 mov %rax,-0x78(%rbp) 21fa84: 48 83 f8 00 cmp $0x0,%rax 21fa88: 0f 85 05 00 00 00 jne 21fa93 return; // htoprc parse failure 21fa8e: e9 1d 01 00 00 jmp 21fbb0 *end = '\0'; 21fa93: 48 8b 45 88 mov -0x78(%rbp),%rax 21fa97: c6 00 00 movb $0x0,(%rax) if (!DynamicMeter_search(this->pl->dynamicMeters, dynamic, ¶m)) 21fa9a: 48 8b 45 c0 mov -0x40(%rbp),%rax 21fa9e: 48 8b 40 10 mov 0x10(%rax),%rax 21faa2: 48 8b 78 38 mov 0x38(%rax),%rdi 21faa6: 48 8d 75 d0 lea -0x30(%rbp),%rsi 21faaa: 48 8d 55 cc lea -0x34(%rbp),%rdx 21faae: e8 6d e2 ff ff call 21dd20 21fab3: a8 01 test $0x1,%al 21fab5: 0f 85 05 00 00 00 jne 21fac0 return; // name lookup failure 21fabb: e9 f0 00 00 00 jmp 21fbb0 } else { 21fac0: e9 07 00 00 00 jmp 21facc param = 0; 21fac5: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) } 21facc: e9 00 00 00 00 jmp 21fad1 nameLen = paren - name; 21fad1: 48 8b 45 a0 mov -0x60(%rbp),%rax 21fad5: 48 8b 4d b8 mov -0x48(%rbp),%rcx 21fad9: 48 29 c8 sub %rcx,%rax 21fadc: 48 89 45 98 mov %rax,-0x68(%rbp) } else { 21fae0: e9 0d 00 00 00 jmp 21faf2 nameLen = strlen(name); 21fae5: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21fae9: e8 02 e7 01 00 call 23e1f0 21faee: 48 89 45 98 mov %rax,-0x68(%rbp) for (const MeterClass* const* type = Platform_meterTypes; *type; type++) { 21faf2: 48 b8 20 ad 20 00 00 00 00 00 movabs $0x20ad20,%rax 21fafc: 48 89 45 80 mov %rax,-0x80(%rbp) 21fb00: 48 8b 45 80 mov -0x80(%rbp),%rax 21fb04: 48 83 38 00 cmpq $0x0,(%rax) 21fb08: 0f 84 a2 00 00 00 je 21fbb0 if (0 == strncmp(name, (*type)->name, nameLen) && (*type)->name[nameLen] == '\0') { 21fb0e: 48 8b 7d b8 mov -0x48(%rbp),%rdi 21fb12: 48 8b 45 80 mov -0x80(%rbp),%rax 21fb16: 48 8b 00 mov (%rax),%rax 21fb19: 48 8b 70 70 mov 0x70(%rax),%rsi 21fb1d: 48 8b 55 98 mov -0x68(%rbp),%rdx 21fb21: e8 5a e9 01 00 call 23e480 21fb26: 89 c1 mov %eax,%ecx 21fb28: 31 c0 xor %eax,%eax 21fb2a: 39 c8 cmp %ecx,%eax 21fb2c: 0f 85 68 00 00 00 jne 21fb9a 21fb32: 48 8b 45 80 mov -0x80(%rbp),%rax 21fb36: 48 8b 00 mov (%rax),%rax 21fb39: 48 8b 40 70 mov 0x70(%rax),%rax 21fb3d: 48 8b 4d 98 mov -0x68(%rbp),%rcx 21fb41: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 21fb45: 83 f8 00 cmp $0x0,%eax 21fb48: 0f 85 4c 00 00 00 jne 21fb9a Meter* meter = Meter_new(this->pl, param, *type); 21fb4e: 48 8b 45 c0 mov -0x40(%rbp),%rax 21fb52: 48 8b 78 10 mov 0x10(%rax),%rdi 21fb56: 8b 75 cc mov -0x34(%rbp),%esi 21fb59: 48 8b 45 80 mov -0x80(%rbp),%rax 21fb5d: 48 8b 10 mov (%rax),%rdx 21fb60: e8 8b 3c 00 00 call 2237f0 21fb65: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) if (mode != 0) { 21fb6c: 83 7d b4 00 cmpl $0x0,-0x4c(%rbp) 21fb70: 0f 84 0f 00 00 00 je 21fb85 Meter_setMode(meter, mode); 21fb76: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 21fb7d: 8b 75 b4 mov -0x4c(%rbp),%esi 21fb80: e8 9b 3d 00 00 call 223920 Vector_add(meters, meter); 21fb85: 48 8b 7d a8 mov -0x58(%rbp),%rdi 21fb89: 48 8b b5 78 ff ff ff mov -0x88(%rbp),%rsi 21fb90: e8 4b 8c 01 00 call 2387e0 break; 21fb95: e9 16 00 00 00 jmp 21fbb0 } 21fb9a: e9 00 00 00 00 jmp 21fb9f for (const MeterClass* const* type = Platform_meterTypes; *type; type++) { 21fb9f: 48 8b 45 80 mov -0x80(%rbp),%rax 21fba3: 48 83 c0 08 add $0x8,%rax 21fba7: 48 89 45 80 mov %rax,-0x80(%rbp) 21fbab: e9 50 ff ff ff jmp 21fb00 21fbb0: 48 8b 05 79 2c 02 00 mov 0x22c79(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21fbb7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21fbbb: 48 39 c8 cmp %rcx,%rax 21fbbe: 0f 85 09 00 00 00 jne 21fbcd } 21fbc4: 48 81 c4 90 00 00 00 add $0x90,%rsp 21fbcb: 5d pop %rbp 21fbcc: c3 ret 21fbcd: e8 6e e5 01 00 call 23e140 <__stack_chk_fail@plt> 21fbd2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21fbdc: 0f 1f 40 00 nopl 0x0(%rax) 000000000021fbe0 : void Header_writeBackToSettings(const Header* this) { 21fbe0: 55 push %rbp 21fbe1: 48 89 e5 mov %rsp,%rbp 21fbe4: 48 83 ec 70 sub $0x70,%rsp 21fbe8: 48 8b 05 41 2c 02 00 mov 0x22c41(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21fbef: 48 89 45 f8 mov %rax,-0x8(%rbp) 21fbf3: 48 89 7d e8 mov %rdi,-0x18(%rbp) Settings_setHeaderLayout(this->settings, this->headerLayout); 21fbf7: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fbfb: 48 8b 78 08 mov 0x8(%rax),%rdi 21fbff: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fc03: 8b 70 18 mov 0x18(%rax),%esi 21fc06: e8 65 65 01 00 call 236170 Header_forEachColumn(this, col) { 21fc0b: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) 21fc13: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fc17: 8b 78 18 mov 0x18(%rax),%edi 21fc1a: e8 31 f9 ff ff call 21f550 21fc1f: 48 89 45 d8 mov %rax,-0x28(%rbp) 21fc23: 48 8b 45 e0 mov -0x20(%rbp),%rax 21fc27: 48 3b 45 d8 cmp -0x28(%rbp),%rax 21fc2b: 0f 83 76 02 00 00 jae 21fea7 MeterColumnSetting* colSettings = &this->settings->hColumns[col]; 21fc31: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fc35: 48 8b 40 08 mov 0x8(%rax),%rax 21fc39: 48 8b 40 10 mov 0x10(%rax),%rax 21fc3d: 48 6b 4d e0 18 imul $0x18,-0x20(%rbp),%rcx 21fc42: 48 01 c8 add %rcx,%rax 21fc45: 48 89 45 d0 mov %rax,-0x30(%rbp) if (colSettings->names) { 21fc49: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fc4d: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 21fc52: 0f 84 4c 00 00 00 je 21fca4 for (size_t j = 0; j < colSettings->len; j++) 21fc58: 48 c7 45 c8 00 00 00 00 movq $0x0,-0x38(%rbp) 21fc60: 48 8b 45 c8 mov -0x38(%rbp),%rax 21fc64: 48 8b 4d d0 mov -0x30(%rbp),%rcx 21fc68: 48 3b 01 cmp (%rcx),%rax 21fc6b: 0f 83 26 00 00 00 jae 21fc97 free(colSettings->names[j]); 21fc71: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fc75: 48 8b 40 08 mov 0x8(%rax),%rax 21fc79: 48 8b 4d c8 mov -0x38(%rbp),%rcx 21fc7d: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21fc81: e8 da e4 01 00 call 23e160 for (size_t j = 0; j < colSettings->len; j++) 21fc86: 48 8b 45 c8 mov -0x38(%rbp),%rax 21fc8a: 48 83 c0 01 add $0x1,%rax 21fc8e: 48 89 45 c8 mov %rax,-0x38(%rbp) 21fc92: e9 c9 ff ff ff jmp 21fc60 free(colSettings->names); 21fc97: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fc9b: 48 8b 78 08 mov 0x8(%rax),%rdi 21fc9f: e8 bc e4 01 00 call 23e160 free(colSettings->modes); 21fca4: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fca8: 48 8b 78 10 mov 0x10(%rax),%rdi 21fcac: e8 af e4 01 00 call 23e160 const Vector* vec = this->columns[col]; 21fcb1: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fcb5: 48 8b 00 mov (%rax),%rax 21fcb8: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21fcbc: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21fcc0: 48 89 45 c0 mov %rax,-0x40(%rbp) int len = Vector_size(vec); 21fcc4: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21fcc8: e8 03 02 00 00 call 21fed0 21fccd: 89 45 bc mov %eax,-0x44(%rbp) colSettings->names = len ? xCalloc(len + 1, sizeof(char*)) : NULL; 21fcd0: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 21fcd4: 0f 84 1c 00 00 00 je 21fcf6 21fcda: 8b 45 bc mov -0x44(%rbp),%eax 21fcdd: 83 c0 01 add $0x1,%eax 21fce0: 48 63 f8 movslq %eax,%rdi 21fce3: be 08 00 00 00 mov $0x8,%esi 21fce8: e8 03 8e 01 00 call 238af0 21fced: 48 89 45 a0 mov %rax,-0x60(%rbp) 21fcf1: e9 0b 00 00 00 jmp 21fd01 21fcf6: 31 c0 xor %eax,%eax 21fcf8: 48 89 45 a0 mov %rax,-0x60(%rbp) 21fcfc: e9 00 00 00 00 jmp 21fd01 21fd01: 48 8b 4d a0 mov -0x60(%rbp),%rcx 21fd05: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fd09: 48 89 48 08 mov %rcx,0x8(%rax) colSettings->modes = len ? xCalloc(len, sizeof(int)) : NULL; 21fd0d: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 21fd11: 0f 84 17 00 00 00 je 21fd2e 21fd17: 48 63 7d bc movslq -0x44(%rbp),%rdi 21fd1b: be 04 00 00 00 mov $0x4,%esi 21fd20: e8 cb 8d 01 00 call 238af0 21fd25: 48 89 45 98 mov %rax,-0x68(%rbp) 21fd29: e9 0b 00 00 00 jmp 21fd39 21fd2e: 31 c0 xor %eax,%eax 21fd30: 48 89 45 98 mov %rax,-0x68(%rbp) 21fd34: e9 00 00 00 00 jmp 21fd39 21fd39: 48 8b 4d 98 mov -0x68(%rbp),%rcx 21fd3d: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fd41: 48 89 48 10 mov %rcx,0x10(%rax) colSettings->len = len; 21fd45: 48 63 4d bc movslq -0x44(%rbp),%rcx 21fd49: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fd4d: 48 89 08 mov %rcx,(%rax) for (int i = 0; i < len; i++) { 21fd50: c7 45 b8 00 00 00 00 movl $0x0,-0x48(%rbp) 21fd57: 8b 45 b8 mov -0x48(%rbp),%eax 21fd5a: 3b 45 bc cmp -0x44(%rbp),%eax 21fd5d: 0f 8d 2e 01 00 00 jge 21fe91 const Meter* meter = (Meter*) Vector_get(vec, i); 21fd63: 48 8b 7d c0 mov -0x40(%rbp),%rdi 21fd67: 8b 75 b8 mov -0x48(%rbp),%esi 21fd6a: e8 81 01 00 00 call 21fef0 21fd6f: 48 89 45 b0 mov %rax,-0x50(%rbp) if (meter->param && As_Meter(meter) == &DynamicMeter_class) { 21fd73: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fd77: 83 78 1c 00 cmpl $0x0,0x1c(%rax) 21fd7b: 0f 84 5f 00 00 00 je 21fde0 21fd81: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fd85: 48 8b 00 mov (%rax),%rax 21fd88: 48 b9 88 87 20 00 00 00 00 00 movabs $0x208788,%rcx 21fd92: 48 39 c8 cmp %rcx,%rax 21fd95: 0f 85 45 00 00 00 jne 21fde0 const char* dynamic = DynamicMeter_lookup(this->pl->dynamicMeters, meter->param); 21fd9b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fd9f: 48 8b 40 10 mov 0x10(%rax),%rax 21fda3: 48 8b 78 38 mov 0x38(%rax),%rdi 21fda7: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fdab: 8b 70 1c mov 0x1c(%rax),%esi 21fdae: e8 6d e0 ff ff call 21de20 21fdb3: 48 89 45 a8 mov %rax,-0x58(%rbp) xAsprintf(&name, "%s(%s)", As_Meter(meter)->name, dynamic); 21fdb7: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fdbb: 48 8b 00 mov (%rax),%rax 21fdbe: 48 8b 50 70 mov 0x70(%rax),%rdx 21fdc2: 48 8b 4d a8 mov -0x58(%rbp),%rcx 21fdc6: 48 8d 7d f0 lea -0x10(%rbp),%rdi 21fdca: 48 be f1 41 20 00 00 00 00 00 movabs $0x2041f1,%rsi 21fdd4: b0 00 mov $0x0,%al 21fdd6: e8 15 96 01 00 call 2393f0 } else if (meter->param && As_Meter(meter) == &CPUMeter_class) { 21fddb: e9 79 00 00 00 jmp 21fe59 21fde0: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fde4: 83 78 1c 00 cmpl $0x0,0x1c(%rax) 21fde8: 0f 84 46 00 00 00 je 21fe34 21fdee: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fdf2: 48 8b 00 mov (%rax),%rax 21fdf5: 48 b9 60 7c 20 00 00 00 00 00 movabs $0x207c60,%rcx 21fdff: 48 39 c8 cmp %rcx,%rax 21fe02: 0f 85 2c 00 00 00 jne 21fe34 xAsprintf(&name, "%s(%u)", As_Meter(meter)->name, meter->param); 21fe08: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fe0c: 48 8b 00 mov (%rax),%rax 21fe0f: 48 8b 50 70 mov 0x70(%rax),%rdx 21fe13: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fe17: 8b 48 1c mov 0x1c(%rax),%ecx 21fe1a: 48 8d 7d f0 lea -0x10(%rbp),%rdi 21fe1e: 48 be f8 41 20 00 00 00 00 00 movabs $0x2041f8,%rsi 21fe28: b0 00 mov $0x0,%al 21fe2a: e8 c1 95 01 00 call 2393f0 } else { 21fe2f: e9 20 00 00 00 jmp 21fe54 xAsprintf(&name, "%s", As_Meter(meter)->name); 21fe34: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fe38: 48 8b 00 mov (%rax),%rax 21fe3b: 48 8b 50 70 mov 0x70(%rax),%rdx 21fe3f: 48 8d 7d f0 lea -0x10(%rbp),%rdi 21fe43: 48 be 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rsi 21fe4d: b0 00 mov $0x0,%al 21fe4f: e8 9c 95 01 00 call 2393f0 21fe54: e9 00 00 00 00 jmp 21fe59 colSettings->names[i] = name; 21fe59: 48 8b 55 f0 mov -0x10(%rbp),%rdx 21fe5d: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fe61: 48 8b 40 08 mov 0x8(%rax),%rax 21fe65: 48 63 4d b8 movslq -0x48(%rbp),%rcx 21fe69: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) colSettings->modes[i] = meter->mode; 21fe6d: 48 8b 45 b0 mov -0x50(%rbp),%rax 21fe71: 8b 50 18 mov 0x18(%rax),%edx 21fe74: 48 8b 45 d0 mov -0x30(%rbp),%rax 21fe78: 48 8b 40 10 mov 0x10(%rax),%rax 21fe7c: 48 63 4d b8 movslq -0x48(%rbp),%rcx 21fe80: 89 14 88 mov %edx,(%rax,%rcx,4) for (int i = 0; i < len; i++) { 21fe83: 8b 45 b8 mov -0x48(%rbp),%eax 21fe86: 83 c0 01 add $0x1,%eax 21fe89: 89 45 b8 mov %eax,-0x48(%rbp) 21fe8c: e9 c6 fe ff ff jmp 21fd57 } 21fe91: e9 00 00 00 00 jmp 21fe96 Header_forEachColumn(this, col) { 21fe96: 48 8b 45 e0 mov -0x20(%rbp),%rax 21fe9a: 48 83 c0 01 add $0x1,%rax 21fe9e: 48 89 45 e0 mov %rax,-0x20(%rbp) 21fea2: e9 7c fd ff ff jmp 21fc23 21fea7: 48 8b 05 82 29 02 00 mov 0x22982(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 21feae: 48 8b 4d f8 mov -0x8(%rbp),%rcx 21feb2: 48 39 c8 cmp %rcx,%rax 21feb5: 0f 85 06 00 00 00 jne 21fec1 } 21febb: 48 83 c4 70 add $0x70,%rsp 21febf: 5d pop %rbp 21fec0: c3 ret 21fec1: e8 7a e2 01 00 call 23e140 <__stack_chk_fail@plt> 21fec6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000021fed0 : static inline int Vector_size(const Vector* this) { 21fed0: 55 push %rbp 21fed1: 48 89 e5 mov %rsp,%rbp 21fed4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 21fed8: 48 8b 45 f8 mov -0x8(%rbp),%rax 21fedc: 8b 40 18 mov 0x18(%rax),%eax 21fedf: 5d pop %rbp 21fee0: c3 ret 21fee1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 21feeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000021fef0 : static inline Object* Vector_get(const Vector* this, int idx) { 21fef0: 55 push %rbp 21fef1: 48 89 e5 mov %rsp,%rbp 21fef4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21fef8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 21fefb: 48 8b 45 f8 mov -0x8(%rbp),%rax 21feff: 48 8b 00 mov (%rax),%rax 21ff02: 48 63 4d f4 movslq -0xc(%rbp),%rcx 21ff06: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21ff0a: 5d pop %rbp 21ff0b: c3 ret 21ff0c: 0f 1f 40 00 nopl 0x0(%rax) 000000000021ff10 : Meter* Header_addMeterByClass(Header* this, const MeterClass* type, unsigned int param, unsigned int column) { 21ff10: 55 push %rbp 21ff11: 48 89 e5 mov %rsp,%rbp 21ff14: 48 83 ec 30 sub $0x30,%rsp 21ff18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21ff1c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21ff20: 89 55 ec mov %edx,-0x14(%rbp) 21ff23: 89 4d e8 mov %ecx,-0x18(%rbp) Vector* meters = this->columns[column]; 21ff26: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ff2a: 48 8b 00 mov (%rax),%rax 21ff2d: 8b 4d e8 mov -0x18(%rbp),%ecx 21ff30: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 21ff34: 48 89 45 e0 mov %rax,-0x20(%rbp) Meter* meter = Meter_new(this->pl, param, type); 21ff38: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ff3c: 48 8b 78 10 mov 0x10(%rax),%rdi 21ff40: 8b 75 ec mov -0x14(%rbp),%esi 21ff43: 48 8b 55 f0 mov -0x10(%rbp),%rdx 21ff47: e8 a4 38 00 00 call 2237f0 21ff4c: 48 89 45 d8 mov %rax,-0x28(%rbp) Vector_add(meters, meter); 21ff50: 48 8b 7d e0 mov -0x20(%rbp),%rdi 21ff54: 48 8b 75 d8 mov -0x28(%rbp),%rsi 21ff58: e8 83 88 01 00 call 2387e0 return meter; 21ff5d: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ff61: 48 83 c4 30 add $0x30,%rsp 21ff65: 5d pop %rbp 21ff66: c3 ret 21ff67: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000021ff70 : void Header_reinit(Header* this) { 21ff70: 55 push %rbp 21ff71: 48 89 e5 mov %rsp,%rbp 21ff74: 48 83 ec 30 sub $0x30,%rsp 21ff78: 48 89 7d f8 mov %rdi,-0x8(%rbp) Header_forEachColumn(this, col) { 21ff7c: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 21ff84: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ff88: 8b 78 18 mov 0x18(%rax),%edi 21ff8b: e8 c0 f5 ff ff call 21f550 21ff90: 48 89 45 e8 mov %rax,-0x18(%rbp) 21ff94: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ff98: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21ff9c: 0f 83 95 00 00 00 jae 220037 for (int i = 0; i < Vector_size(this->columns[col]); i++) { 21ffa2: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%rbp) 21ffa9: 8b 45 e4 mov -0x1c(%rbp),%eax 21ffac: 89 45 d4 mov %eax,-0x2c(%rbp) 21ffaf: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ffb3: 48 8b 00 mov (%rax),%rax 21ffb6: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21ffba: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21ffbe: e8 0d ff ff ff call 21fed0 21ffc3: 89 c1 mov %eax,%ecx 21ffc5: 8b 45 d4 mov -0x2c(%rbp),%eax 21ffc8: 39 c8 cmp %ecx,%eax 21ffca: 0f 8d 51 00 00 00 jge 220021 Meter* meter = (Meter*) Vector_get(this->columns[col], i); 21ffd0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ffd4: 48 8b 00 mov (%rax),%rax 21ffd7: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21ffdb: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 21ffdf: 8b 75 e4 mov -0x1c(%rbp),%esi 21ffe2: e8 09 ff ff ff call 21fef0 21ffe7: 48 89 45 d8 mov %rax,-0x28(%rbp) if (Meter_initFn(meter)) { 21ffeb: 48 8b 45 d8 mov -0x28(%rbp),%rax 21ffef: 48 8b 00 mov (%rax),%rax 21fff2: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 21fff7: 0f 84 11 00 00 00 je 22000e Meter_init(meter); 21fffd: 48 8b 45 d8 mov -0x28(%rbp),%rax 220001: 48 8b 00 mov (%rax),%rax 220004: 48 8b 40 20 mov 0x20(%rax),%rax 220008: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22000c: ff d0 call *%rax } 22000e: e9 00 00 00 00 jmp 220013 for (int i = 0; i < Vector_size(this->columns[col]); i++) { 220013: 8b 45 e4 mov -0x1c(%rbp),%eax 220016: 83 c0 01 add $0x1,%eax 220019: 89 45 e4 mov %eax,-0x1c(%rbp) 22001c: e9 88 ff ff ff jmp 21ffa9 } 220021: e9 00 00 00 00 jmp 220026 Header_forEachColumn(this, col) { 220026: 48 8b 45 f0 mov -0x10(%rbp),%rax 22002a: 48 83 c0 01 add $0x1,%rax 22002e: 48 89 45 f0 mov %rax,-0x10(%rbp) 220032: e9 5d ff ff ff jmp 21ff94 } 220037: 48 83 c4 30 add $0x30,%rsp 22003b: 5d pop %rbp 22003c: c3 ret 22003d: 0f 1f 00 nopl (%rax) 0000000000220040 : void Header_draw(const Header* this) { 220040: 55 push %rbp 220041: 48 89 e5 mov %rsp,%rbp 220044: 48 81 ec 80 00 00 00 sub $0x80,%rsp 22004b: 48 89 7d f8 mov %rdi,-0x8(%rbp) const int height = this->height; 22004f: 48 8b 45 f8 mov -0x8(%rbp),%rax 220053: 8b 40 20 mov 0x20(%rax),%eax 220056: 89 45 f4 mov %eax,-0xc(%rbp) const int pad = this->pad; 220059: 48 8b 45 f8 mov -0x8(%rbp),%rax 22005d: 8b 40 1c mov 0x1c(%rax),%eax 220060: 89 45 f0 mov %eax,-0x10(%rbp) attrset(CRT_colors[RESET_COLOR]); 220063: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22006b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 220073: 8b 30 mov (%rax),%esi 220075: e8 06 e1 01 00 call 23e180 for (int y = 0; y < height; y++) { 22007a: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) 220081: 8b 45 ec mov -0x14(%rbp),%eax 220084: 3b 45 f4 cmp -0xc(%rbp),%eax 220087: 0f 8d 47 00 00 00 jge 2200d4 mvhline(y, 0, ' ', COLS); 22008d: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 220095: 8b 75 ec mov -0x14(%rbp),%esi 220098: 31 d2 xor %edx,%edx 22009a: e8 f1 e0 01 00 call 23e190 22009f: 83 f8 ff cmp $0xffffffff,%eax 2200a2: 0f 85 05 00 00 00 jne 2200ad 2200a8: e9 19 00 00 00 jmp 2200c6 2200ad: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2200b5: 8b 14 25 70 28 24 00 mov 0x242870,%edx 2200bc: be 20 00 00 00 mov $0x20,%esi 2200c1: e8 da e0 01 00 call 23e1a0 for (int y = 0; y < height; y++) { 2200c6: 8b 45 ec mov -0x14(%rbp),%eax 2200c9: 83 c0 01 add $0x1,%eax 2200cc: 89 45 ec mov %eax,-0x14(%rbp) 2200cf: e9 ad ff ff ff jmp 220081 const int width = COLS - pad; 2200d4: 8b 04 25 70 28 24 00 mov 0x242870,%eax 2200db: 2b 45 f0 sub -0x10(%rbp),%eax 2200de: 89 45 e8 mov %eax,-0x18(%rbp) int x = pad; 2200e1: 8b 45 f0 mov -0x10(%rbp),%eax 2200e4: 89 45 e4 mov %eax,-0x1c(%rbp) float roundingLoss = 0.0F; 2200e7: 0f 57 c0 xorps %xmm0,%xmm0 2200ea: f3 0f 11 45 e0 movss %xmm0,-0x20(%rbp) Header_forEachColumn(this, col) { 2200ef: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 2200f7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2200fb: 8b 78 18 mov 0x18(%rax),%edi 2200fe: e8 4d f4 ff ff call 21f550 220103: 48 89 45 d0 mov %rax,-0x30(%rbp) 220107: 48 8b 45 d8 mov -0x28(%rbp),%rax 22010b: 48 3b 45 d0 cmp -0x30(%rbp),%rax 22010f: 0f 83 27 02 00 00 jae 22033c Vector* meters = this->columns[col]; 220115: 48 8b 45 f8 mov -0x8(%rbp),%rax 220119: 48 8b 00 mov (%rax),%rax 22011c: 48 8b 4d d8 mov -0x28(%rbp),%rcx 220120: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 220124: 48 89 45 c8 mov %rax,-0x38(%rbp) float colWidth = (float)width * HeaderLayout_layouts[this->headerLayout].widths[col] / 100.0F; 220128: f3 0f 2a 45 e8 cvtsi2ssl -0x18(%rbp),%xmm0 22012d: 48 8b 45 f8 mov -0x8(%rbp),%rax 220131: 8b 40 18 mov 0x18(%rax),%eax 220134: 89 c1 mov %eax,%ecx 220136: 48 b8 90 8a 20 00 00 00 00 00 movabs $0x208a90,%rax 220140: 48 6b c9 18 imul $0x18,%rcx,%rcx 220144: 48 01 c8 add %rcx,%rax 220147: 48 8b 4d d8 mov -0x28(%rbp),%rcx 22014b: 0f b6 44 08 01 movzbl 0x1(%rax,%rcx,1),%eax 220150: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 220154: f3 0f 59 c1 mulss %xmm1,%xmm0 220158: f3 0f 10 0d 20 89 fe ff movss -0x176e0(%rip),%xmm1 # 208a80 220160: f3 0f 5e c1 divss %xmm1,%xmm0 220164: f3 0f 11 45 c4 movss %xmm0,-0x3c(%rbp) roundingLoss += colWidth - floorf(colWidth); 220169: f3 0f 10 45 c4 movss -0x3c(%rbp),%xmm0 22016e: f3 0f 11 45 a4 movss %xmm0,-0x5c(%rbp) 220173: f3 0f 10 45 c4 movss -0x3c(%rbp),%xmm0 220178: e8 63 e4 01 00 call 23e5e0 22017d: 0f 28 c8 movaps %xmm0,%xmm1 220180: f3 0f 10 45 a4 movss -0x5c(%rbp),%xmm0 220185: f3 0f 5c c1 subss %xmm1,%xmm0 220189: f3 0f 58 45 e0 addss -0x20(%rbp),%xmm0 22018e: f3 0f 11 45 e0 movss %xmm0,-0x20(%rbp) if (roundingLoss >= 1.0F) { 220193: f3 0f 10 45 e0 movss -0x20(%rbp),%xmm0 220198: f3 0f 10 0d cc 88 fe ff movss -0x17734(%rip),%xmm1 # 208a6c 2201a0: 0f 2e c1 ucomiss %xmm1,%xmm0 2201a3: 0f 82 28 00 00 00 jb 2201d1 colWidth += 1.0F; 2201a9: f3 0f 10 05 bb 88 fe ff movss -0x17745(%rip),%xmm0 # 208a6c 2201b1: f3 0f 58 45 c4 addss -0x3c(%rbp),%xmm0 2201b6: f3 0f 11 45 c4 movss %xmm0,-0x3c(%rbp) roundingLoss -= 1.0F; 2201bb: f3 0f 10 45 e0 movss -0x20(%rbp),%xmm0 2201c0: f3 0f 10 0d a4 88 fe ff movss -0x1775c(%rip),%xmm1 # 208a6c 2201c8: f3 0f 5c c1 subss %xmm1,%xmm0 2201cc: f3 0f 11 45 e0 movss %xmm0,-0x20(%rbp) for (int y = (pad / 2), i = 0; i < Vector_size(meters); i++) { 2201d1: 8b 45 f0 mov -0x10(%rbp),%eax 2201d4: b9 02 00 00 00 mov $0x2,%ecx 2201d9: 99 cltd 2201da: f7 f9 idiv %ecx 2201dc: 89 45 c0 mov %eax,-0x40(%rbp) 2201df: c7 45 bc 00 00 00 00 movl $0x0,-0x44(%rbp) 2201e6: 8b 45 bc mov -0x44(%rbp),%eax 2201e9: 89 45 a0 mov %eax,-0x60(%rbp) 2201ec: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2201f0: e8 db fc ff ff call 21fed0 2201f5: 89 c1 mov %eax,%ecx 2201f7: 8b 45 a0 mov -0x60(%rbp),%eax 2201fa: 39 c8 cmp %ecx,%eax 2201fc: 0f 8d 0c 01 00 00 jge 22030e Meter* meter = (Meter*) Vector_get(meters, i); 220202: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220206: 8b 75 bc mov -0x44(%rbp),%esi 220209: e8 e2 fc ff ff call 21fef0 22020e: 48 89 45 b0 mov %rax,-0x50(%rbp) float actualWidth = colWidth; 220212: f3 0f 10 45 c4 movss -0x3c(%rbp),%xmm0 220217: f3 0f 11 45 ac movss %xmm0,-0x54(%rbp) if (meter->mode == TEXT_METERMODE && !Meter_isMultiColumn(meter)) { 22021c: 48 8b 45 b0 mov -0x50(%rbp),%rax 220220: 83 78 18 02 cmpl $0x2,0x18(%rax) 220224: 0f 85 8b 00 00 00 jne 2202b5 22022a: 48 8b 45 b0 mov -0x50(%rbp),%rax 22022e: 48 8b 00 mov (%rax),%rax 220231: f6 80 91 00 00 00 01 testb $0x1,0x91(%rax) 220238: 0f 85 77 00 00 00 jne 2202b5 for (int j = 1; j < meter->columnWidthCount; j++) { 22023e: c7 45 a8 01 00 00 00 movl $0x1,-0x58(%rbp) 220245: 8b 45 a8 mov -0x58(%rbp),%eax 220248: 48 8b 4d b0 mov -0x50(%rbp),%rcx 22024c: 3b 41 2c cmp 0x2c(%rcx),%eax 22024f: 0f 8d 5b 00 00 00 jge 2202b0 actualWidth += (float)width * HeaderLayout_layouts[this->headerLayout].widths[col + j] / 100.0F; 220255: f3 0f 2a 45 e8 cvtsi2ssl -0x18(%rbp),%xmm0 22025a: 48 8b 45 f8 mov -0x8(%rbp),%rax 22025e: 8b 40 18 mov 0x18(%rax),%eax 220261: 89 c1 mov %eax,%ecx 220263: 48 b8 90 8a 20 00 00 00 00 00 movabs $0x208a90,%rax 22026d: 48 6b c9 18 imul $0x18,%rcx,%rcx 220271: 48 01 c8 add %rcx,%rax 220274: 48 8b 4d d8 mov -0x28(%rbp),%rcx 220278: 48 63 55 a8 movslq -0x58(%rbp),%rdx 22027c: 48 01 d1 add %rdx,%rcx 22027f: 0f b6 44 08 01 movzbl 0x1(%rax,%rcx,1),%eax 220284: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 220288: f3 0f 59 c1 mulss %xmm1,%xmm0 22028c: f3 0f 10 0d ec 87 fe ff movss -0x17814(%rip),%xmm1 # 208a80 220294: f3 0f 5e c1 divss %xmm1,%xmm0 220298: f3 0f 58 45 ac addss -0x54(%rbp),%xmm0 22029d: f3 0f 11 45 ac movss %xmm0,-0x54(%rbp) for (int j = 1; j < meter->columnWidthCount; j++) { 2202a2: 8b 45 a8 mov -0x58(%rbp),%eax 2202a5: 83 c0 01 add $0x1,%eax 2202a8: 89 45 a8 mov %eax,-0x58(%rbp) 2202ab: e9 95 ff ff ff jmp 220245 } 2202b0: e9 00 00 00 00 jmp 2202b5 meter->draw(meter, x, y, floorf(actualWidth)); 2202b5: 48 8b 45 b0 mov -0x50(%rbp),%rax 2202b9: 48 8b 40 08 mov 0x8(%rax),%rax 2202bd: 48 89 45 98 mov %rax,-0x68(%rbp) 2202c1: 48 8b 45 b0 mov -0x50(%rbp),%rax 2202c5: 48 89 45 88 mov %rax,-0x78(%rbp) 2202c9: 8b 45 e4 mov -0x1c(%rbp),%eax 2202cc: 89 45 90 mov %eax,-0x70(%rbp) 2202cf: 8b 45 c0 mov -0x40(%rbp),%eax 2202d2: 89 45 94 mov %eax,-0x6c(%rbp) 2202d5: f3 0f 10 45 ac movss -0x54(%rbp),%xmm0 2202da: e8 01 e3 01 00 call 23e5e0 2202df: 48 8b 7d 88 mov -0x78(%rbp),%rdi 2202e3: 8b 75 90 mov -0x70(%rbp),%esi 2202e6: 8b 55 94 mov -0x6c(%rbp),%edx 2202e9: 48 8b 45 98 mov -0x68(%rbp),%rax 2202ed: f3 0f 2c c8 cvttss2si %xmm0,%ecx 2202f1: ff d0 call *%rax y += meter->h; 2202f3: 48 8b 45 b0 mov -0x50(%rbp),%rax 2202f7: 8b 40 28 mov 0x28(%rax),%eax 2202fa: 03 45 c0 add -0x40(%rbp),%eax 2202fd: 89 45 c0 mov %eax,-0x40(%rbp) for (int y = (pad / 2), i = 0; i < Vector_size(meters); i++) { 220300: 8b 45 bc mov -0x44(%rbp),%eax 220303: 83 c0 01 add $0x1,%eax 220306: 89 45 bc mov %eax,-0x44(%rbp) 220309: e9 d8 fe ff ff jmp 2201e6 x += floorf(colWidth); 22030e: f3 0f 10 45 c4 movss -0x3c(%rbp),%xmm0 220313: e8 c8 e2 01 00 call 23e5e0 220318: 0f 28 c8 movaps %xmm0,%xmm1 22031b: f3 0f 2a 45 e4 cvtsi2ssl -0x1c(%rbp),%xmm0 220320: f3 0f 58 c1 addss %xmm1,%xmm0 220324: f3 0f 2c c0 cvttss2si %xmm0,%eax 220328: 89 45 e4 mov %eax,-0x1c(%rbp) Header_forEachColumn(this, col) { 22032b: 48 8b 45 d8 mov -0x28(%rbp),%rax 22032f: 48 83 c0 01 add $0x1,%rax 220333: 48 89 45 d8 mov %rax,-0x28(%rbp) 220337: e9 cb fd ff ff jmp 220107 } 22033c: 48 81 c4 80 00 00 00 add $0x80,%rsp 220343: 5d pop %rbp 220344: c3 ret 220345: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22034f: 90 nop 0000000000220350 : void Header_updateData(Header* this) { 220350: 55 push %rbp 220351: 48 89 e5 mov %rsp,%rbp 220354: 48 83 ec 30 sub $0x30,%rsp 220358: 48 89 7d f8 mov %rdi,-0x8(%rbp) Header_forEachColumn(this, col) { 22035c: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 220364: 48 8b 45 f8 mov -0x8(%rbp),%rax 220368: 8b 78 18 mov 0x18(%rax),%edi 22036b: e8 e0 f1 ff ff call 21f550 220370: 48 89 45 e8 mov %rax,-0x18(%rbp) 220374: 48 8b 45 f0 mov -0x10(%rbp),%rax 220378: 48 3b 45 e8 cmp -0x18(%rbp),%rax 22037c: 0f 83 77 00 00 00 jae 2203f9 Vector* meters = this->columns[col]; 220382: 48 8b 45 f8 mov -0x8(%rbp),%rax 220386: 48 8b 00 mov (%rax),%rax 220389: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22038d: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 220391: 48 89 45 e0 mov %rax,-0x20(%rbp) int items = Vector_size(meters); 220395: 48 8b 7d e0 mov -0x20(%rbp),%rdi 220399: e8 32 fb ff ff call 21fed0 22039e: 89 45 dc mov %eax,-0x24(%rbp) for (int i = 0; i < items; i++) { 2203a1: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 2203a8: 8b 45 d8 mov -0x28(%rbp),%eax 2203ab: 3b 45 dc cmp -0x24(%rbp),%eax 2203ae: 0f 8d 2f 00 00 00 jge 2203e3 Meter* meter = (Meter*) Vector_get(meters, i); 2203b4: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2203b8: 8b 75 d8 mov -0x28(%rbp),%esi 2203bb: e8 30 fb ff ff call 21fef0 2203c0: 48 89 45 d0 mov %rax,-0x30(%rbp) Meter_updateValues(meter); 2203c4: 48 8b 45 d0 mov -0x30(%rbp),%rax 2203c8: 48 8b 00 mov (%rax),%rax 2203cb: 48 8b 40 38 mov 0x38(%rax),%rax 2203cf: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2203d3: ff d0 call *%rax for (int i = 0; i < items; i++) { 2203d5: 8b 45 d8 mov -0x28(%rbp),%eax 2203d8: 83 c0 01 add $0x1,%eax 2203db: 89 45 d8 mov %eax,-0x28(%rbp) 2203de: e9 c5 ff ff ff jmp 2203a8 } 2203e3: e9 00 00 00 00 jmp 2203e8 Header_forEachColumn(this, col) { 2203e8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2203ec: 48 83 c0 01 add $0x1,%rax 2203f0: 48 89 45 f0 mov %rax,-0x10(%rbp) 2203f4: e9 7b ff ff ff jmp 220374 } 2203f9: 48 83 c4 30 add $0x30,%rsp 2203fd: 5d pop %rbp 2203fe: c3 ret 2203ff: 90 nop 0000000000220400 : static int calcColumnWidthCount(const Header* this, const Meter* curMeter, const int pad, const unsigned int curColumn, const int curHeight) { 220400: 55 push %rbp 220401: 48 89 e5 mov %rsp,%rbp 220404: 48 83 ec 60 sub $0x60,%rsp 220408: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22040c: 48 89 75 e8 mov %rsi,-0x18(%rbp) 220410: 89 55 e4 mov %edx,-0x1c(%rbp) 220413: 89 4d e0 mov %ecx,-0x20(%rbp) 220416: 44 89 45 dc mov %r8d,-0x24(%rbp) for (size_t i = curColumn + 1; i < HeaderLayout_getColumns(this->headerLayout); i++) { 22041a: 8b 45 e0 mov -0x20(%rbp),%eax 22041d: 83 c0 01 add $0x1,%eax 220420: 89 c0 mov %eax,%eax 220422: 48 89 45 d0 mov %rax,-0x30(%rbp) 220426: 48 8b 45 d0 mov -0x30(%rbp),%rax 22042a: 48 89 45 b0 mov %rax,-0x50(%rbp) 22042e: 48 8b 45 f0 mov -0x10(%rbp),%rax 220432: 8b 78 18 mov 0x18(%rax),%edi 220435: e8 16 f1 ff ff call 21f550 22043a: 48 89 c1 mov %rax,%rcx 22043d: 48 8b 45 b0 mov -0x50(%rbp),%rax 220441: 48 39 c8 cmp %rcx,%rax 220444: 0f 83 da 00 00 00 jae 220524 const Vector* meters = this->columns[i]; 22044a: 48 8b 45 f0 mov -0x10(%rbp),%rax 22044e: 48 8b 00 mov (%rax),%rax 220451: 48 8b 4d d0 mov -0x30(%rbp),%rcx 220455: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 220459: 48 89 45 c8 mov %rax,-0x38(%rbp) int height = pad; 22045d: 8b 45 e4 mov -0x1c(%rbp),%eax 220460: 89 45 c4 mov %eax,-0x3c(%rbp) for (int j = 0; j < Vector_size(meters); j++) { 220463: c7 45 c0 00 00 00 00 movl $0x0,-0x40(%rbp) 22046a: 8b 45 c0 mov -0x40(%rbp),%eax 22046d: 89 45 ac mov %eax,-0x54(%rbp) 220470: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220474: e8 57 fa ff ff call 21fed0 220479: 89 c1 mov %eax,%ecx 22047b: 8b 45 ac mov -0x54(%rbp),%eax 22047e: 39 c8 cmp %ecx,%eax 220480: 0f 8d 88 00 00 00 jge 22050e const Meter* meter = (const Meter*) Vector_get(meters, j); 220486: 48 8b 7d c8 mov -0x38(%rbp),%rdi 22048a: 8b 75 c0 mov -0x40(%rbp),%esi 22048d: e8 5e fa ff ff call 21fef0 220492: 48 89 45 b8 mov %rax,-0x48(%rbp) if (height >= curHeight + curMeter->h) 220496: 8b 45 c4 mov -0x3c(%rbp),%eax 220499: 8b 4d dc mov -0x24(%rbp),%ecx 22049c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2204a0: 03 4a 28 add 0x28(%rdx),%ecx 2204a3: 39 c8 cmp %ecx,%eax 2204a5: 0f 8c 05 00 00 00 jl 2204b0 break; 2204ab: e9 5e 00 00 00 jmp 22050e height += meter->h; 2204b0: 48 8b 45 b8 mov -0x48(%rbp),%rax 2204b4: 8b 40 28 mov 0x28(%rax),%eax 2204b7: 03 45 c4 add -0x3c(%rbp),%eax 2204ba: 89 45 c4 mov %eax,-0x3c(%rbp) if (height <= curHeight) 2204bd: 8b 45 c4 mov -0x3c(%rbp),%eax 2204c0: 3b 45 dc cmp -0x24(%rbp),%eax 2204c3: 0f 8f 05 00 00 00 jg 2204ce continue; 2204c9: e9 32 00 00 00 jmp 220500 if (!Object_isA((const Object*) meter, (const ObjectClass*) &BlankMeter_class)) 2204ce: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2204d2: 48 be 38 93 20 00 00 00 00 00 movabs $0x209338,%rsi 2204dc: e8 7f 5e 00 00 call 226360 2204e1: a8 01 test $0x1,%al 2204e3: 0f 85 12 00 00 00 jne 2204fb return i - curColumn; 2204e9: 48 8b 45 d0 mov -0x30(%rbp),%rax 2204ed: 8b 4d e0 mov -0x20(%rbp),%ecx 2204f0: 48 29 c8 sub %rcx,%rax 2204f3: 89 45 fc mov %eax,-0x4(%rbp) 2204f6: e9 3e 00 00 00 jmp 220539 } 2204fb: e9 00 00 00 00 jmp 220500 for (int j = 0; j < Vector_size(meters); j++) { 220500: 8b 45 c0 mov -0x40(%rbp),%eax 220503: 83 c0 01 add $0x1,%eax 220506: 89 45 c0 mov %eax,-0x40(%rbp) 220509: e9 5c ff ff ff jmp 22046a } 22050e: e9 00 00 00 00 jmp 220513 for (size_t i = curColumn + 1; i < HeaderLayout_getColumns(this->headerLayout); i++) { 220513: 48 8b 45 d0 mov -0x30(%rbp),%rax 220517: 48 83 c0 01 add $0x1,%rax 22051b: 48 89 45 d0 mov %rax,-0x30(%rbp) 22051f: e9 02 ff ff ff jmp 220426 return HeaderLayout_getColumns(this->headerLayout) - curColumn; 220524: 48 8b 45 f0 mov -0x10(%rbp),%rax 220528: 8b 78 18 mov 0x18(%rax),%edi 22052b: e8 20 f0 ff ff call 21f550 220530: 8b 4d e0 mov -0x20(%rbp),%ecx 220533: 48 29 c8 sub %rcx,%rax 220536: 89 45 fc mov %eax,-0x4(%rbp) } 220539: 8b 45 fc mov -0x4(%rbp),%eax 22053c: 48 83 c4 60 add $0x60,%rsp 220540: 5d pop %rbp 220541: c3 ret 220542: cc int3 220543: cc int3 220544: cc int3 220545: cc int3 220546: cc int3 220547: cc int3 220548: cc int3 220549: cc int3 22054a: cc int3 22054b: cc int3 22054c: cc int3 22054d: cc int3 22054e: cc int3 22054f: cc int3 0000000000220550 : #include "ProvideCurses.h" static const char* const HeaderOptionsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL}; static void HeaderOptionsPanel_delete(Object* object) { 220550: 55 push %rbp 220551: 48 89 e5 mov %rsp,%rbp 220554: 48 83 ec 20 sub $0x20,%rsp 220558: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 22055c: 48 8b 45 f8 mov -0x8(%rbp),%rax 220560: 48 89 45 f0 mov %rax,-0x10(%rbp) HeaderOptionsPanel* this = (HeaderOptionsPanel*) object; 220564: 48 8b 45 f8 mov -0x8(%rbp),%rax 220568: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 22056c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220570: e8 0b 78 00 00 call 227d80 free(this); 220575: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220579: e8 e2 db 01 00 call 23e160 } 22057e: 48 83 c4 20 add $0x20,%rsp 220582: 5d pop %rbp 220583: c3 ret 220584: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22058e: 66 90 xchg %ax,%ax 0000000000220590 : static HandlerResult HeaderOptionsPanel_eventHandler(Panel* super, int ch) { 220590: 55 push %rbp 220591: 48 89 e5 mov %rsp,%rbp 220594: 48 83 ec 30 sub $0x30,%rsp 220598: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22059c: 89 75 f4 mov %esi,-0xc(%rbp) HeaderOptionsPanel* this = (HeaderOptionsPanel*) super; 22059f: 48 8b 45 f8 mov -0x8(%rbp),%rax 2205a3: 48 89 45 e8 mov %rax,-0x18(%rbp) HandlerResult result = IGNORED; 2205a7: c7 45 e4 02 00 00 00 movl $0x2,-0x1c(%rbp) int mark; switch (ch) { 2205ae: 8b 45 f4 mov -0xc(%rbp),%eax 2205b1: 89 45 d8 mov %eax,-0x28(%rbp) 2205b4: 83 e8 0a sub $0xa,%eax 2205b7: 0f 84 60 00 00 00 je 22061d 2205bd: e9 00 00 00 00 jmp 2205c2 2205c2: 8b 45 d8 mov -0x28(%rbp),%eax 2205c5: 83 e8 0d sub $0xd,%eax 2205c8: 0f 84 4f 00 00 00 je 22061d 2205ce: e9 00 00 00 00 jmp 2205d3 2205d3: 8b 45 d8 mov -0x28(%rbp),%eax 2205d6: 83 e8 20 sub $0x20,%eax 2205d9: 0f 84 3e 00 00 00 je 22061d 2205df: e9 00 00 00 00 jmp 2205e4 2205e4: 8b 45 d8 mov -0x28(%rbp),%eax 2205e7: 2d 28 01 00 00 sub $0x128,%eax 2205ec: 0f 84 2b 00 00 00 je 22061d 2205f2: e9 00 00 00 00 jmp 2205f7 2205f7: 8b 45 d8 mov -0x28(%rbp),%eax 2205fa: 2d 57 01 00 00 sub $0x157,%eax 2205ff: 0f 84 18 00 00 00 je 22061d 220605: e9 00 00 00 00 jmp 22060a 22060a: 8b 45 d8 mov -0x28(%rbp),%eax 22060d: 2d 99 01 00 00 sub $0x199,%eax 220612: 0f 85 9c 00 00 00 jne 2206b4 220618: e9 00 00 00 00 jmp 22061d case 0x0d: case KEY_ENTER: case KEY_MOUSE: case KEY_RECLICK: case ' ': mark = Panel_getSelectedIndex(super); 22061d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220621: e8 5a 7b 00 00 call 228180 220626: 89 45 e0 mov %eax,-0x20(%rbp) assert(mark >= 0); assert(mark < LAST_HEADER_LAYOUT); for (int i = 0; i < LAST_HEADER_LAYOUT; i++) 220629: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 220630: 83 7d dc 09 cmpl $0x9,-0x24(%rbp) 220634: 0f 8d 24 00 00 00 jge 22065e CheckItem_set((CheckItem*)Panel_get(super, i), false); 22063a: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22063e: 8b 75 dc mov -0x24(%rbp),%esi 220641: e8 3a 79 00 00 call 227f80 220646: 48 89 c7 mov %rax,%rdi 220649: 31 f6 xor %esi,%esi 22064b: e8 d0 6d 00 00 call 227420 for (int i = 0; i < LAST_HEADER_LAYOUT; i++) 220650: 8b 45 dc mov -0x24(%rbp),%eax 220653: 83 c0 01 add $0x1,%eax 220656: 89 45 dc mov %eax,-0x24(%rbp) 220659: e9 d2 ff ff ff jmp 220630 CheckItem_set((CheckItem*)Panel_get(super, mark), true); 22065e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220662: 8b 75 e0 mov -0x20(%rbp),%esi 220665: e8 16 79 00 00 call 227f80 22066a: 48 89 c7 mov %rax,%rdi 22066d: be 01 00 00 00 mov $0x1,%esi 220672: e8 a9 6d 00 00 call 227420 Header_setLayout(this->scr->header, mark); 220677: 48 8b 45 e8 mov -0x18(%rbp),%rax 22067b: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 220682: 48 8b 78 20 mov 0x20(%rax),%rdi 220686: 8b 75 e0 mov -0x20(%rbp),%esi 220689: e8 72 ef ff ff call 21f600 this->settings->changed = true; 22068e: 48 8b 45 e8 mov -0x18(%rbp),%rax 220692: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 220699: c6 40 68 01 movb $0x1,0x68(%rax) ScreenManager_resize(this->scr); 22069d: 48 8b 45 e8 mov -0x18(%rbp),%rax 2206a1: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 2206a8: e8 a3 26 01 00 call 232d50 result = HANDLED; 2206ad: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) } return result; 2206b4: 8b 45 e4 mov -0x1c(%rbp),%eax 2206b7: 48 83 c4 30 add $0x30,%rsp 2206bb: 5d pop %rbp 2206bc: c3 ret 2206bd: 0f 1f 00 nopl (%rax) 00000000002206c0 : .delete = HeaderOptionsPanel_delete }, .eventHandler = HeaderOptionsPanel_eventHandler }; HeaderOptionsPanel* HeaderOptionsPanel_new(Settings* settings, ScreenManager* scr) { 2206c0: 55 push %rbp 2206c1: 48 89 e5 mov %rsp,%rbp 2206c4: 48 83 ec 50 sub $0x50,%rsp 2206c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2206cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) HeaderOptionsPanel* this = AllocThis(HeaderOptionsPanel); 2206d0: bf e8 26 00 00 mov $0x26e8,%edi 2206d5: e8 86 83 01 00 call 238a60 2206da: 48 89 45 e8 mov %rax,-0x18(%rbp) 2206de: 48 8b 45 e8 mov -0x18(%rbp),%rax 2206e2: 48 b9 70 8b 20 00 00 00 00 00 movabs $0x208b70,%rcx 2206ec: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 2206ef: 48 8b 45 e8 mov -0x18(%rbp),%rax 2206f3: 48 89 45 e0 mov %rax,-0x20(%rbp) FunctionBar* fuBar = FunctionBar_new(HeaderOptionsFunctions, NULL, NULL); 2206f7: 48 bf b0 8b 20 00 00 00 00 00 movabs $0x208bb0,%rdi 220701: 31 c0 xor %eax,%eax 220703: 89 c2 mov %eax,%edx 220705: 48 89 d6 mov %rdx,%rsi 220708: e8 43 dc ff ff call 21e350 22070d: 48 89 45 d8 mov %rax,-0x28(%rbp) Panel_init(super, 1, 1, 1, 1, Class(CheckItem), true, fuBar); 220711: 48 8b 7d e0 mov -0x20(%rbp),%rdi 220715: 48 8b 45 d8 mov -0x28(%rbp),%rax 220719: 41 b8 01 00 00 00 mov $0x1,%r8d 22071f: 49 b9 a8 9c 20 00 00 00 00 00 movabs $0x209ca8,%r9 220729: 44 89 c6 mov %r8d,%esi 22072c: 44 89 c2 mov %r8d,%edx 22072f: 44 89 c1 mov %r8d,%ecx 220732: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 220739: 48 89 44 24 08 mov %rax,0x8(%rsp) 22073e: e8 bd 74 00 00 call 227c00 this->scr = scr; 220743: 48 8b 4d f0 mov -0x10(%rbp),%rcx 220747: 48 8b 45 e8 mov -0x18(%rbp),%rax 22074b: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) this->settings = settings; 220752: 48 8b 4d f8 mov -0x8(%rbp),%rcx 220756: 48 8b 45 e8 mov -0x18(%rbp),%rax 22075a: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) Panel_setHeader(super, "Header Layout"); 220761: 48 8b 7d e0 mov -0x20(%rbp),%rdi 220765: 48 be 58 55 20 00 00 00 00 00 movabs $0x205558,%rsi 22076f: e8 7c 76 00 00 call 227df0 for (int i = 0; i < LAST_HEADER_LAYOUT; i++) { 220774: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 22077b: 83 7d d4 09 cmpl $0x9,-0x2c(%rbp) 22077f: 0f 8d 42 00 00 00 jge 2207c7 Panel_add(super, (Object*) CheckItem_newByVal(HeaderLayout_layouts[i].description, false)); 220785: 48 8b 45 e0 mov -0x20(%rbp),%rax 220789: 48 89 45 c8 mov %rax,-0x38(%rbp) 22078d: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 220791: 48 b8 10 8c 20 00 00 00 00 00 movabs $0x208c10,%rax 22079b: 48 6b c9 18 imul $0x18,%rcx,%rcx 22079f: 48 01 c8 add %rcx,%rax 2207a2: 48 8b 78 10 mov 0x10(%rax),%rdi 2207a6: 31 f6 xor %esi,%esi 2207a8: e8 b3 6b 00 00 call 227360 2207ad: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2207b1: 48 89 c6 mov %rax,%rsi 2207b4: e8 27 77 00 00 call 227ee0 for (int i = 0; i < LAST_HEADER_LAYOUT; i++) { 2207b9: 8b 45 d4 mov -0x2c(%rbp),%eax 2207bc: 83 c0 01 add $0x1,%eax 2207bf: 89 45 d4 mov %eax,-0x2c(%rbp) 2207c2: e9 b4 ff ff ff jmp 22077b } CheckItem_set((CheckItem*)Panel_get(super, scr->header->headerLayout), true); 2207c7: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2207cb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2207cf: 48 8b 40 20 mov 0x20(%rax),%rax 2207d3: 8b 70 18 mov 0x18(%rax),%esi 2207d6: e8 a5 77 00 00 call 227f80 2207db: 48 89 c7 mov %rax,%rdi 2207de: be 01 00 00 00 mov $0x1,%esi 2207e3: e8 38 6c 00 00 call 227420 return this; 2207e8: 48 8b 45 e8 mov -0x18(%rbp),%rax 2207ec: 48 83 c4 50 add $0x50,%rsp 2207f0: 5d pop %rbp 2207f1: c3 ret 2207f2: cc int3 2207f3: cc int3 2207f4: cc int3 2207f5: cc int3 2207f6: cc int3 2207f7: cc int3 2207f8: cc int3 2207f9: cc int3 2207fa: cc int3 2207fb: cc int3 2207fc: cc int3 2207fd: cc int3 2207fe: cc int3 2207ff: cc int3 0000000000220800 : static const int HostnameMeter_attributes[] = { HOSTNAME }; static void HostnameMeter_updateValues(Meter* this) { 220800: 55 push %rbp 220801: 48 89 e5 mov %rsp,%rbp 220804: 48 83 ec 10 sub $0x10,%rsp 220808: 48 89 7d f8 mov %rdi,-0x8(%rbp) Platform_getHostname(this->txtBuffer, sizeof(this->txtBuffer)); 22080c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220810: 48 83 c7 48 add $0x48,%rdi 220814: be 00 01 00 00 mov $0x100,%esi 220819: e8 12 00 00 00 call 220830 } 22081e: 48 83 c4 10 add $0x10,%rsp 220822: 5d pop %rbp 220823: c3 ret 220824: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22082e: 66 90 xchg %ax,%ax 0000000000220830 : static inline void Platform_getHostname(char* buffer, size_t size) { 220830: 55 push %rbp 220831: 48 89 e5 mov %rsp,%rbp 220834: 48 83 ec 10 sub $0x10,%rsp 220838: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22083c: 48 89 75 f0 mov %rsi,-0x10(%rbp) Generic_hostname(buffer, size); 220840: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220844: 48 8b 75 f0 mov -0x10(%rbp),%rsi 220848: e8 e3 c2 01 00 call 23cb30 } 22084d: 48 83 c4 10 add $0x10,%rsp 220851: 5d pop %rbp 220852: c3 ret 220853: cc int3 220854: cc int3 220855: cc int3 220856: cc int3 220857: cc int3 220858: cc int3 220859: cc int3 22085a: cc int3 22085b: cc int3 22085c: cc int3 22085d: cc int3 22085e: cc int3 22085f: cc int3 0000000000220860 : static void IncMode_reset(IncMode* mode) { mode->index = 0; mode->buffer[0] = 0; } void IncSet_reset(IncSet* this, IncType type) { 220860: 55 push %rbp 220861: 48 89 e5 mov %rsp,%rbp 220864: 48 83 ec 10 sub $0x10,%rsp 220868: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22086c: 89 75 f4 mov %esi,-0xc(%rbp) IncMode_reset(&this->modes[type]); 22086f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220873: 8b 45 f4 mov -0xc(%rbp),%eax 220876: 48 c1 e0 06 shl $0x6,%rax 22087a: 48 01 c7 add %rax,%rdi 22087d: e8 0e 00 00 00 call 220890 } 220882: 48 83 c4 10 add $0x10,%rsp 220886: 5d pop %rbp 220887: c3 ret 220888: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000220890 : static void IncMode_reset(IncMode* mode) { 220890: 55 push %rbp 220891: 48 89 e5 mov %rsp,%rbp 220894: 48 89 7d f8 mov %rdi,-0x8(%rbp) mode->index = 0; 220898: 48 8b 45 f8 mov -0x8(%rbp),%rax 22089c: c7 40 2c 00 00 00 00 movl $0x0,0x2c(%rax) mode->buffer[0] = 0; 2208a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2208a7: c6 00 00 movb $0x0,(%rax) } 2208aa: 5d pop %rbp 2208ab: c3 ret 2208ac: 0f 1f 40 00 nopl 0x0(%rax) 00000000002208b0 : void IncSet_setFilter(IncSet* this, const char* filter) { 2208b0: 55 push %rbp 2208b1: 48 89 e5 mov %rsp,%rbp 2208b4: 48 83 ec 20 sub $0x20,%rsp 2208b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2208bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) IncMode* mode = &this->modes[INC_FILTER]; 2208c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2208c4: 48 83 c0 40 add $0x40,%rax 2208c8: 48 89 45 e8 mov %rax,-0x18(%rbp) size_t len = String_safeStrncpy(mode->buffer, filter, sizeof(mode->buffer)); 2208cc: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2208d0: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2208d4: ba 29 00 00 00 mov $0x29,%edx 2208d9: e8 82 8a 01 00 call 239360 2208de: 48 89 45 e0 mov %rax,-0x20(%rbp) mode->index = len; 2208e2: 48 8b 45 e0 mov -0x20(%rbp),%rax 2208e6: 89 c1 mov %eax,%ecx 2208e8: 48 8b 45 e8 mov -0x18(%rbp),%rax 2208ec: 89 48 2c mov %ecx,0x2c(%rax) this->filtering = true; 2208ef: 48 8b 45 f8 mov -0x8(%rbp),%rax 2208f3: c6 80 90 00 00 00 01 movb $0x1,0x90(%rax) } 2208fa: 48 83 c4 20 add $0x20,%rsp 2208fe: 5d pop %rbp 2208ff: c3 ret 0000000000220900 : static inline void IncMode_done(IncMode* mode) { FunctionBar_delete(mode->bar); } IncSet* IncSet_new(FunctionBar* bar) { 220900: 55 push %rbp 220901: 48 89 e5 mov %rsp,%rbp 220904: 48 83 ec 10 sub $0x10,%rsp 220908: 48 89 7d f8 mov %rdi,-0x8(%rbp) IncSet* this = xMalloc(sizeof(IncSet)); 22090c: bf 98 00 00 00 mov $0x98,%edi 220911: e8 4a 81 01 00 call 238a60 220916: 48 89 45 f0 mov %rax,-0x10(%rbp) IncMode_initSearch(&(this->modes[INC_SEARCH])); 22091a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22091e: e8 4d 00 00 00 call 220970 IncMode_initFilter(&(this->modes[INC_FILTER])); 220923: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220927: 48 83 c7 40 add $0x40,%rdi 22092b: e8 a0 00 00 00 call 2209d0 this->active = NULL; 220930: 48 8b 45 f0 mov -0x10(%rbp),%rax 220934: 48 c7 80 80 00 00 00 00 00 00 00 movq $0x0,0x80(%rax) this->defaultBar = bar; 22093f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 220943: 48 8b 45 f0 mov -0x10(%rbp),%rax 220947: 48 89 88 88 00 00 00 mov %rcx,0x88(%rax) this->filtering = false; 22094e: 48 8b 45 f0 mov -0x10(%rbp),%rax 220952: c6 80 90 00 00 00 00 movb $0x0,0x90(%rax) this->found = false; 220959: 48 8b 45 f0 mov -0x10(%rbp),%rax 22095d: c6 80 91 00 00 00 00 movb $0x0,0x91(%rax) return this; 220964: 48 8b 45 f0 mov -0x10(%rbp),%rax 220968: 48 83 c4 10 add $0x10,%rsp 22096c: 5d pop %rbp 22096d: c3 ret 22096e: 66 90 xchg %ax,%ax 0000000000220970 : static inline void IncMode_initSearch(IncMode* search) { 220970: 55 push %rbp 220971: 48 89 e5 mov %rsp,%rbp 220974: 48 83 ec 10 sub $0x10,%rsp 220978: 48 89 7d f8 mov %rdi,-0x8(%rbp) memset(search, 0, sizeof(IncMode)); 22097c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220980: 31 f6 xor %esi,%esi 220982: ba 40 00 00 00 mov $0x40,%edx 220987: e8 b4 d8 01 00 call 23e240 search->bar = FunctionBar_new(searchFunctions, searchKeys, searchEvents); 22098c: 48 bf 90 8d 20 00 00 00 00 00 movabs $0x208d90,%rdi 220996: 48 be c0 8d 20 00 00 00 00 00 movabs $0x208dc0,%rsi 2209a0: 48 ba e0 8d 20 00 00 00 00 00 movabs $0x208de0,%rdx 2209aa: e8 a1 d9 ff ff call 21e350 2209af: 48 89 c1 mov %rax,%rcx 2209b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2209b6: 48 89 48 30 mov %rcx,0x30(%rax) search->isFilter = false; 2209ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 2209be: c6 40 38 00 movb $0x0,0x38(%rax) } 2209c2: 48 83 c4 10 add $0x10,%rsp 2209c6: 5d pop %rbp 2209c7: c3 ret 2209c8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002209d0 : static inline void IncMode_initFilter(IncMode* filter) { 2209d0: 55 push %rbp 2209d1: 48 89 e5 mov %rsp,%rbp 2209d4: 48 83 ec 10 sub $0x10,%rsp 2209d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) memset(filter, 0, sizeof(IncMode)); 2209dc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2209e0: 31 f6 xor %esi,%esi 2209e2: ba 40 00 00 00 mov $0x40,%edx 2209e7: e8 54 d8 01 00 call 23e240 filter->bar = FunctionBar_new(filterFunctions, filterKeys, filterEvents); 2209ec: 48 bf f0 8d 20 00 00 00 00 00 movabs $0x208df0,%rdi 2209f6: 48 be 10 8e 20 00 00 00 00 00 movabs $0x208e10,%rsi 220a00: 48 ba 28 8e 20 00 00 00 00 00 movabs $0x208e28,%rdx 220a0a: e8 41 d9 ff ff call 21e350 220a0f: 48 89 c1 mov %rax,%rcx 220a12: 48 8b 45 f8 mov -0x8(%rbp),%rax 220a16: 48 89 48 30 mov %rcx,0x30(%rax) filter->isFilter = true; 220a1a: 48 8b 45 f8 mov -0x8(%rbp),%rax 220a1e: c6 40 38 01 movb $0x1,0x38(%rax) } 220a22: 48 83 c4 10 add $0x10,%rsp 220a26: 5d pop %rbp 220a27: c3 ret 220a28: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000220a30 : } void IncSet_delete(IncSet* this) { 220a30: 55 push %rbp 220a31: 48 89 e5 mov %rsp,%rbp 220a34: 48 83 ec 10 sub $0x10,%rsp 220a38: 48 89 7d f8 mov %rdi,-0x8(%rbp) IncMode_done(&(this->modes[0])); 220a3c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220a40: e8 2b 00 00 00 call 220a70 IncMode_done(&(this->modes[1])); 220a45: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220a49: 48 83 c7 40 add $0x40,%rdi 220a4d: e8 1e 00 00 00 call 220a70 free(this); 220a52: 48 8b 7d f8 mov -0x8(%rbp),%rdi 220a56: e8 05 d7 01 00 call 23e160 } 220a5b: 48 83 c4 10 add $0x10,%rsp 220a5f: 5d pop %rbp 220a60: c3 ret 220a61: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 220a6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000220a70 : static inline void IncMode_done(IncMode* mode) { 220a70: 55 push %rbp 220a71: 48 89 e5 mov %rsp,%rbp 220a74: 48 83 ec 10 sub $0x10,%rsp 220a78: 48 89 7d f8 mov %rdi,-0x8(%rbp) FunctionBar_delete(mode->bar); 220a7c: 48 8b 45 f8 mov -0x8(%rbp),%rax 220a80: 48 8b 78 30 mov 0x30(%rax),%rdi 220a84: e8 b7 da ff ff call 21e540 } 220a89: 48 83 c4 10 add $0x10,%rsp 220a8d: 5d pop %rbp 220a8e: c3 ret 220a8f: 90 nop 0000000000220a90 : return true; } } } bool IncSet_handleKey(IncSet* this, int ch, Panel* panel, IncMode_GetPanelValue getPanelValue, Vector* lines) { 220a90: 55 push %rbp 220a91: 48 89 e5 mov %rsp,%rbp 220a94: 48 83 ec 40 sub $0x40,%rsp 220a98: 48 89 7d f0 mov %rdi,-0x10(%rbp) 220a9c: 89 75 ec mov %esi,-0x14(%rbp) 220a9f: 48 89 55 e0 mov %rdx,-0x20(%rbp) 220aa3: 48 89 4d d8 mov %rcx,-0x28(%rbp) 220aa7: 4c 89 45 d0 mov %r8,-0x30(%rbp) if (ch == ERR) 220aab: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 220aaf: 0f 85 09 00 00 00 jne 220abe return true; 220ab5: c6 45 ff 01 movb $0x1,-0x1(%rbp) 220ab9: e9 ae 02 00 00 jmp 220d6c IncMode* mode = this->active; 220abe: 48 8b 45 f0 mov -0x10(%rbp),%rax 220ac2: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 220ac9: 48 89 45 c8 mov %rax,-0x38(%rbp) int size = Panel_size(panel); 220acd: 48 8b 7d e0 mov -0x20(%rbp),%rdi 220ad1: e8 ca 76 00 00 call 2281a0 220ad6: 89 45 c4 mov %eax,-0x3c(%rbp) bool filterChanged = false; 220ad9: c6 45 c3 00 movb $0x0,-0x3d(%rbp) bool doSearch = true; 220add: c6 45 c2 01 movb $0x1,-0x3e(%rbp) if (ch == KEY_F(3) || ch == KEY_F(15)) { 220ae1: 81 7d ec 0b 01 00 00 cmpl $0x10b,-0x14(%rbp) 220ae8: 0f 84 0d 00 00 00 je 220afb 220aee: 81 7d ec 17 01 00 00 cmpl $0x117,-0x14(%rbp) 220af5: 0f 85 45 00 00 00 jne 220b40 if (size == 0) 220afb: 83 7d c4 00 cmpl $0x0,-0x3c(%rbp) 220aff: 0f 85 09 00 00 00 jne 220b0e return true; 220b05: c6 45 ff 01 movb $0x1,-0x1(%rbp) 220b09: e9 5e 02 00 00 jmp 220d6c IncMode_find(mode, panel, getPanelValue, ch == KEY_F(3) ? 1 : -1); 220b0e: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220b12: 48 8b 75 e0 mov -0x20(%rbp),%rsi 220b16: 48 8b 55 d8 mov -0x28(%rbp),%rdx 220b1a: 44 8b 45 ec mov -0x14(%rbp),%r8d 220b1e: b9 ff ff ff ff mov $0xffffffff,%ecx 220b23: b8 01 00 00 00 mov $0x1,%eax 220b28: 41 81 f8 0b 01 00 00 cmp $0x10b,%r8d 220b2f: 0f 44 c8 cmove %eax,%ecx 220b32: e8 49 02 00 00 call 220d80 doSearch = false; 220b37: c6 45 c2 00 movb $0x0,-0x3e(%rbp) } else if (0 < ch && ch < 255 && isprint((unsigned char)ch)) { 220b3b: e9 d4 01 00 00 jmp 220d14 220b40: 31 c0 xor %eax,%eax 220b42: 3b 45 ec cmp -0x14(%rbp),%eax 220b45: 0f 8d 9f 00 00 00 jge 220bea 220b4b: 81 7d ec ff 00 00 00 cmpl $0xff,-0x14(%rbp) 220b52: 0f 8d 92 00 00 00 jge 220bea 220b58: 8b 45 ec mov -0x14(%rbp),%eax 220b5b: 0f b6 f8 movzbl %al,%edi 220b5e: be 00 00 04 00 mov $0x40000,%esi 220b63: e8 e8 02 00 00 call 220e50 <__sbistype> 220b68: 83 f8 00 cmp $0x0,%eax 220b6b: 0f 84 79 00 00 00 je 220bea if (mode->index < INCMODE_MAX) { 220b71: 48 8b 45 c8 mov -0x38(%rbp),%rax 220b75: 83 78 2c 28 cmpl $0x28,0x2c(%rax) 220b79: 0f 8d 66 00 00 00 jge 220be5 mode->buffer[mode->index] = (char) ch; 220b7f: 8b 45 ec mov -0x14(%rbp),%eax 220b82: 88 c2 mov %al,%dl 220b84: 48 8b 45 c8 mov -0x38(%rbp),%rax 220b88: 48 8b 4d c8 mov -0x38(%rbp),%rcx 220b8c: 48 63 49 2c movslq 0x2c(%rcx),%rcx 220b90: 88 14 08 mov %dl,(%rax,%rcx,1) mode->index++; 220b93: 48 8b 45 c8 mov -0x38(%rbp),%rax 220b97: 8b 48 2c mov 0x2c(%rax),%ecx 220b9a: 83 c1 01 add $0x1,%ecx 220b9d: 89 48 2c mov %ecx,0x2c(%rax) mode->buffer[mode->index] = 0; 220ba0: 48 8b 45 c8 mov -0x38(%rbp),%rax 220ba4: 48 8b 4d c8 mov -0x38(%rbp),%rcx 220ba8: 48 63 49 2c movslq 0x2c(%rcx),%rcx 220bac: c6 04 08 00 movb $0x0,(%rax,%rcx,1) if (mode->isFilter) { 220bb0: 48 8b 45 c8 mov -0x38(%rbp),%rax 220bb4: f6 40 38 01 testb $0x1,0x38(%rax) 220bb8: 0f 84 22 00 00 00 je 220be0 filterChanged = true; 220bbe: c6 45 c3 01 movb $0x1,-0x3d(%rbp) if (mode->index == 1) { 220bc2: 48 8b 45 c8 mov -0x38(%rbp),%rax 220bc6: 83 78 2c 01 cmpl $0x1,0x2c(%rax) 220bca: 0f 85 0b 00 00 00 jne 220bdb this->filtering = true; 220bd0: 48 8b 45 f0 mov -0x10(%rbp),%rax 220bd4: c6 80 90 00 00 00 01 movb $0x1,0x90(%rax) } } 220bdb: e9 00 00 00 00 jmp 220be0 } 220be0: e9 00 00 00 00 jmp 220be5 } else if (ch == KEY_BACKSPACE || ch == 127) { 220be5: e9 25 01 00 00 jmp 220d0f 220bea: 81 7d ec 07 01 00 00 cmpl $0x107,-0x14(%rbp) 220bf1: 0f 84 0a 00 00 00 je 220c01 220bf7: 83 7d ec 7f cmpl $0x7f,-0x14(%rbp) 220bfb: 0f 85 72 00 00 00 jne 220c73 if (mode->index > 0) { 220c01: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c05: 83 78 2c 00 cmpl $0x0,0x2c(%rax) 220c09: 0f 8e 5b 00 00 00 jle 220c6a mode->index--; 220c0f: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c13: 8b 48 2c mov 0x2c(%rax),%ecx 220c16: 83 c1 ff add $0xffffffff,%ecx 220c19: 89 48 2c mov %ecx,0x2c(%rax) mode->buffer[mode->index] = 0; 220c1c: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c20: 48 8b 4d c8 mov -0x38(%rbp),%rcx 220c24: 48 63 49 2c movslq 0x2c(%rcx),%rcx 220c28: c6 04 08 00 movb $0x0,(%rax,%rcx,1) if (mode->isFilter) { 220c2c: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c30: f6 40 38 01 testb $0x1,0x38(%rax) 220c34: 0f 84 2b 00 00 00 je 220c65 filterChanged = true; 220c3a: c6 45 c3 01 movb $0x1,-0x3d(%rbp) if (mode->index == 0) { 220c3e: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c42: 83 78 2c 00 cmpl $0x0,0x2c(%rax) 220c46: 0f 85 14 00 00 00 jne 220c60 this->filtering = false; 220c4c: 48 8b 45 f0 mov -0x10(%rbp),%rax 220c50: c6 80 90 00 00 00 00 movb $0x0,0x90(%rax) IncMode_reset(mode); 220c57: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220c5b: e8 30 fc ff ff call 220890 } } 220c60: e9 00 00 00 00 jmp 220c65 } else { 220c65: e9 04 00 00 00 jmp 220c6e doSearch = false; 220c6a: c6 45 c2 00 movb $0x0,-0x3e(%rbp) } } else if (ch == KEY_RESIZE) { 220c6e: e9 97 00 00 00 jmp 220d0a 220c73: 81 7d ec 9a 01 00 00 cmpl $0x19a,-0x14(%rbp) 220c7a: 0f 85 15 00 00 00 jne 220c95 doSearch = (mode->index > 0); 220c80: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c84: 83 78 2c 00 cmpl $0x0,0x2c(%rax) 220c88: 0f 9f c0 setg %al 220c8b: 24 01 and $0x1,%al 220c8d: 88 45 c2 mov %al,-0x3e(%rbp) } else { 220c90: e9 70 00 00 00 jmp 220d05 if (mode->isFilter) { 220c95: 48 8b 45 c8 mov -0x38(%rbp),%rax 220c99: f6 40 38 01 testb $0x1,0x38(%rax) 220c9d: 0f 84 27 00 00 00 je 220cca filterChanged = true; 220ca3: c6 45 c3 01 movb $0x1,-0x3d(%rbp) if (ch == 27) { 220ca7: 83 7d ec 1b cmpl $0x1b,-0x14(%rbp) 220cab: 0f 85 14 00 00 00 jne 220cc5 this->filtering = false; 220cb1: 48 8b 45 f0 mov -0x10(%rbp),%rax 220cb5: c6 80 90 00 00 00 00 movb $0x0,0x90(%rax) IncMode_reset(mode); 220cbc: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220cc0: e8 cb fb ff ff call 220890 } } else { 220cc5: e9 18 00 00 00 jmp 220ce2 if (ch == 27) { 220cca: 83 7d ec 1b cmpl $0x1b,-0x14(%rbp) 220cce: 0f 85 09 00 00 00 jne 220cdd IncMode_reset(mode); 220cd4: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220cd8: e8 b3 fb ff ff call 220890 220cdd: e9 00 00 00 00 jmp 220ce2 } } this->active = NULL; 220ce2: 48 8b 45 f0 mov -0x10(%rbp),%rax 220ce6: 48 c7 80 80 00 00 00 00 00 00 00 movq $0x0,0x80(%rax) Panel_setDefaultBar(panel); 220cf1: 48 8b 45 e0 mov -0x20(%rbp),%rax 220cf5: 48 8b 48 50 mov 0x50(%rax),%rcx 220cf9: 48 8b 45 e0 mov -0x20(%rbp),%rax 220cfd: 48 89 48 48 mov %rcx,0x48(%rax) doSearch = false; 220d01: c6 45 c2 00 movb $0x0,-0x3e(%rbp) 220d05: e9 00 00 00 00 jmp 220d0a 220d0a: e9 00 00 00 00 jmp 220d0f 220d0f: e9 00 00 00 00 jmp 220d14 } if (doSearch) { 220d14: f6 45 c2 01 testb $0x1,-0x3e(%rbp) 220d18: 0f 84 20 00 00 00 je 220d3e this->found = search(mode, panel, getPanelValue); 220d1e: 48 8b 7d c8 mov -0x38(%rbp),%rdi 220d22: 48 8b 75 e0 mov -0x20(%rbp),%rsi 220d26: 48 8b 55 d8 mov -0x28(%rbp),%rdx 220d2a: e8 51 01 00 00 call 220e80 220d2f: 88 c1 mov %al,%cl 220d31: 48 8b 45 f0 mov -0x10(%rbp),%rax 220d35: 80 e1 01 and $0x1,%cl 220d38: 88 88 91 00 00 00 mov %cl,0x91(%rax) } if (filterChanged && lines) { 220d3e: f6 45 c3 01 testb $0x1,-0x3d(%rbp) 220d42: 0f 84 1c 00 00 00 je 220d64 220d48: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 220d4d: 0f 84 11 00 00 00 je 220d64 updateWeakPanel(this, panel, lines); 220d53: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220d57: 48 8b 75 e0 mov -0x20(%rbp),%rsi 220d5b: 48 8b 55 d0 mov -0x30(%rbp),%rdx 220d5f: e8 bc 01 00 00 call 220f20 } return filterChanged; 220d64: 8a 45 c3 mov -0x3d(%rbp),%al 220d67: 24 01 and $0x1,%al 220d69: 88 45 ff mov %al,-0x1(%rbp) } 220d6c: 8a 45 ff mov -0x1(%rbp),%al 220d6f: 24 01 and $0x1,%al 220d71: 0f b6 c0 movzbl %al,%eax 220d74: 48 83 c4 40 add $0x40,%rsp 220d78: 5d pop %rbp 220d79: c3 ret 220d7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000220d80 : static bool IncMode_find(const IncMode* mode, Panel* panel, IncMode_GetPanelValue getPanelValue, int step) { 220d80: 55 push %rbp 220d81: 48 89 e5 mov %rsp,%rbp 220d84: 48 83 ec 30 sub $0x30,%rsp 220d88: 48 89 7d f0 mov %rdi,-0x10(%rbp) 220d8c: 48 89 75 e8 mov %rsi,-0x18(%rbp) 220d90: 48 89 55 e0 mov %rdx,-0x20(%rbp) 220d94: 89 4d dc mov %ecx,-0x24(%rbp) int size = Panel_size(panel); 220d97: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220d9b: e8 00 74 00 00 call 2281a0 220da0: 89 45 d8 mov %eax,-0x28(%rbp) int here = Panel_getSelectedIndex(panel); 220da3: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220da7: e8 d4 73 00 00 call 228180 220dac: 89 45 d4 mov %eax,-0x2c(%rbp) int i = here; 220daf: 8b 45 d4 mov -0x2c(%rbp),%eax 220db2: 89 45 d0 mov %eax,-0x30(%rbp) i += step; 220db5: 8b 45 dc mov -0x24(%rbp),%eax 220db8: 03 45 d0 add -0x30(%rbp),%eax 220dbb: 89 45 d0 mov %eax,-0x30(%rbp) if (i == size) { 220dbe: 8b 45 d0 mov -0x30(%rbp),%eax 220dc1: 3b 45 d8 cmp -0x28(%rbp),%eax 220dc4: 0f 85 07 00 00 00 jne 220dd1 i = 0; 220dca: c7 45 d0 00 00 00 00 movl $0x0,-0x30(%rbp) if (i == -1) { 220dd1: 83 7d d0 ff cmpl $0xffffffff,-0x30(%rbp) 220dd5: 0f 85 09 00 00 00 jne 220de4 i = size - 1; 220ddb: 8b 45 d8 mov -0x28(%rbp),%eax 220dde: 83 e8 01 sub $0x1,%eax 220de1: 89 45 d0 mov %eax,-0x30(%rbp) if (i == here) { 220de4: 8b 45 d0 mov -0x30(%rbp),%eax 220de7: 3b 45 d4 cmp -0x2c(%rbp),%eax 220dea: 0f 85 09 00 00 00 jne 220df9 return false; 220df0: c6 45 ff 00 movb $0x0,-0x1(%rbp) 220df4: e9 40 00 00 00 jmp 220e39 if (String_contains_i(getPanelValue(panel, i), mode->buffer)) { 220df9: 48 8b 45 e0 mov -0x20(%rbp),%rax 220dfd: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220e01: 8b 75 d0 mov -0x30(%rbp),%esi 220e04: ff d0 call *%rax 220e06: 48 89 c7 mov %rax,%rdi 220e09: 48 8b 75 f0 mov -0x10(%rbp),%rsi 220e0d: e8 6e 7e 01 00 call 238c80 220e12: a8 01 test $0x1,%al 220e14: 0f 85 05 00 00 00 jne 220e1f 220e1a: e9 15 00 00 00 jmp 220e34 Panel_setSelected(panel, i); 220e1f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220e23: 8b 75 d0 mov -0x30(%rbp),%esi 220e26: e8 95 73 00 00 call 2281c0 return true; 220e2b: c6 45 ff 01 movb $0x1,-0x1(%rbp) 220e2f: e9 05 00 00 00 jmp 220e39 for (;;) { 220e34: e9 7c ff ff ff jmp 220db5 } 220e39: 8a 45 ff mov -0x1(%rbp),%al 220e3c: 24 01 and $0x1,%al 220e3e: 0f b6 c0 movzbl %al,%eax 220e41: 48 83 c4 30 add $0x30,%rsp 220e45: 5d pop %rbp 220e46: c3 ret 220e47: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000220e50 <__sbistype>: { 220e50: 55 push %rbp 220e51: 48 89 e5 mov %rsp,%rbp 220e54: 48 83 ec 10 sub $0x10,%rsp 220e58: 89 7d fc mov %edi,-0x4(%rbp) 220e5b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 220e5f: 8b 7d fc mov -0x4(%rbp),%edi 220e62: 48 8b 75 f0 mov -0x10(%rbp),%rsi 220e66: e8 f5 03 00 00 call 221260 <__sbmaskrune> 220e6b: 83 f8 00 cmp $0x0,%eax 220e6e: 0f 95 c0 setne %al 220e71: 34 ff xor $0xff,%al 220e73: 34 ff xor $0xff,%al 220e75: 24 01 and $0x1,%al 220e77: 0f b6 c0 movzbl %al,%eax 220e7a: 48 83 c4 10 add $0x10,%rsp 220e7e: 5d pop %rbp 220e7f: c3 ret 0000000000220e80 : static bool search(const IncMode* mode, Panel* panel, IncMode_GetPanelValue getPanelValue) { 220e80: 55 push %rbp 220e81: 48 89 e5 mov %rsp,%rbp 220e84: 48 83 ec 30 sub $0x30,%rsp 220e88: 48 89 7d f0 mov %rdi,-0x10(%rbp) 220e8c: 48 89 75 e8 mov %rsi,-0x18(%rbp) 220e90: 48 89 55 e0 mov %rdx,-0x20(%rbp) int size = Panel_size(panel); 220e94: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220e98: e8 03 73 00 00 call 2281a0 220e9d: 89 45 dc mov %eax,-0x24(%rbp) for (int i = 0; i < size; i++) { 220ea0: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 220ea7: 8b 45 d8 mov -0x28(%rbp),%eax 220eaa: 3b 45 dc cmp -0x24(%rbp),%eax 220ead: 0f 8d 4e 00 00 00 jge 220f01 if (String_contains_i(getPanelValue(panel, i), mode->buffer)) { 220eb3: 48 8b 45 e0 mov -0x20(%rbp),%rax 220eb7: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220ebb: 8b 75 d8 mov -0x28(%rbp),%esi 220ebe: ff d0 call *%rax 220ec0: 48 89 c7 mov %rax,%rdi 220ec3: 48 8b 75 f0 mov -0x10(%rbp),%rsi 220ec7: e8 b4 7d 01 00 call 238c80 220ecc: a8 01 test $0x1,%al 220ece: 0f 85 05 00 00 00 jne 220ed9 220ed4: e9 15 00 00 00 jmp 220eee Panel_setSelected(panel, i); 220ed9: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220edd: 8b 75 d8 mov -0x28(%rbp),%esi 220ee0: e8 db 72 00 00 call 2281c0 return true; 220ee5: c6 45 ff 01 movb $0x1,-0x1(%rbp) 220ee9: e9 17 00 00 00 jmp 220f05 } 220eee: e9 00 00 00 00 jmp 220ef3 for (int i = 0; i < size; i++) { 220ef3: 8b 45 d8 mov -0x28(%rbp),%eax 220ef6: 83 c0 01 add $0x1,%eax 220ef9: 89 45 d8 mov %eax,-0x28(%rbp) 220efc: e9 a6 ff ff ff jmp 220ea7 return false; 220f01: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 220f05: 8a 45 ff mov -0x1(%rbp),%al 220f08: 24 01 and $0x1,%al 220f0a: 0f b6 c0 movzbl %al,%eax 220f0d: 48 83 c4 30 add $0x30,%rsp 220f11: 5d pop %rbp 220f12: c3 ret 220f13: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 220f1d: 0f 1f 00 nopl (%rax) 0000000000220f20 : static void updateWeakPanel(const IncSet* this, Panel* panel, Vector* lines) { 220f20: 55 push %rbp 220f21: 48 89 e5 mov %rsp,%rbp 220f24: 48 83 ec 60 sub $0x60,%rsp 220f28: 48 89 7d f8 mov %rdi,-0x8(%rbp) 220f2c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 220f30: 48 89 55 e8 mov %rdx,-0x18(%rbp) const Object* selected = Panel_getSelected(panel); 220f34: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220f38: e8 33 71 00 00 call 228070 220f3d: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_prune(panel); 220f41: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220f45: e8 46 6f 00 00 call 227e90 if (this->filtering) { 220f4a: 48 8b 45 f8 mov -0x8(%rbp),%rax 220f4e: f6 80 90 00 00 00 01 testb $0x1,0x90(%rax) 220f55: 0f 84 af 00 00 00 je 22100a int n = 0; 220f5b: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) const char* incFilter = this->modes[INC_FILTER].buffer; 220f62: 48 8b 45 f8 mov -0x8(%rbp),%rax 220f66: 48 83 c0 40 add $0x40,%rax 220f6a: 48 89 45 d0 mov %rax,-0x30(%rbp) for (int i = 0; i < Vector_size(lines); i++) { 220f6e: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) 220f75: 8b 45 cc mov -0x34(%rbp),%eax 220f78: 89 45 ac mov %eax,-0x54(%rbp) 220f7b: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220f7f: e8 9c 03 00 00 call 221320 220f84: 89 c1 mov %eax,%ecx 220f86: 8b 45 ac mov -0x54(%rbp),%eax 220f89: 39 c8 cmp %ecx,%eax 220f8b: 0f 8d 74 00 00 00 jge 221005 ListItem* line = (ListItem*)Vector_get(lines, i); 220f91: 48 8b 7d e8 mov -0x18(%rbp),%rdi 220f95: 8b 75 cc mov -0x34(%rbp),%esi 220f98: e8 a3 03 00 00 call 221340 220f9d: 48 89 45 c0 mov %rax,-0x40(%rbp) if (String_contains_i(line->value, incFilter)) { 220fa1: 48 8b 45 c0 mov -0x40(%rbp),%rax 220fa5: 48 8b 78 08 mov 0x8(%rax),%rdi 220fa9: 48 8b 75 d0 mov -0x30(%rbp),%rsi 220fad: e8 ce 7c 01 00 call 238c80 220fb2: a8 01 test $0x1,%al 220fb4: 0f 85 05 00 00 00 jne 220fbf 220fba: e9 33 00 00 00 jmp 220ff2 Panel_add(panel, (Object*)line); 220fbf: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220fc3: 48 8b 75 c0 mov -0x40(%rbp),%rsi 220fc7: e8 14 6f 00 00 call 227ee0 if (selected == (Object*)line) { 220fcc: 48 8b 45 e0 mov -0x20(%rbp),%rax 220fd0: 48 8b 4d c0 mov -0x40(%rbp),%rcx 220fd4: 48 39 c8 cmp %rcx,%rax 220fd7: 0f 85 0c 00 00 00 jne 220fe9 Panel_setSelected(panel, n); 220fdd: 48 8b 7d f0 mov -0x10(%rbp),%rdi 220fe1: 8b 75 dc mov -0x24(%rbp),%esi 220fe4: e8 d7 71 00 00 call 2281c0 n++; 220fe9: 8b 45 dc mov -0x24(%rbp),%eax 220fec: 83 c0 01 add $0x1,%eax 220fef: 89 45 dc mov %eax,-0x24(%rbp) } 220ff2: e9 00 00 00 00 jmp 220ff7 for (int i = 0; i < Vector_size(lines); i++) { 220ff7: 8b 45 cc mov -0x34(%rbp),%eax 220ffa: 83 c0 01 add $0x1,%eax 220ffd: 89 45 cc mov %eax,-0x34(%rbp) 221000: e9 70 ff ff ff jmp 220f75 } else { 221005: e9 72 00 00 00 jmp 22107c for (int i = 0; i < Vector_size(lines); i++) { 22100a: c7 45 bc 00 00 00 00 movl $0x0,-0x44(%rbp) 221011: 8b 45 bc mov -0x44(%rbp),%eax 221014: 89 45 a8 mov %eax,-0x58(%rbp) 221017: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22101b: e8 00 03 00 00 call 221320 221020: 89 c1 mov %eax,%ecx 221022: 8b 45 a8 mov -0x58(%rbp),%eax 221025: 39 c8 cmp %ecx,%eax 221027: 0f 8d 4a 00 00 00 jge 221077 Object* line = Vector_get(lines, i); 22102d: 48 8b 7d e8 mov -0x18(%rbp),%rdi 221031: 8b 75 bc mov -0x44(%rbp),%esi 221034: e8 07 03 00 00 call 221340 221039: 48 89 45 b0 mov %rax,-0x50(%rbp) Panel_add(panel, line); 22103d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221041: 48 8b 75 b0 mov -0x50(%rbp),%rsi 221045: e8 96 6e 00 00 call 227ee0 if (selected == line) { 22104a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22104e: 48 3b 45 b0 cmp -0x50(%rbp),%rax 221052: 0f 85 0c 00 00 00 jne 221064 Panel_setSelected(panel, i); 221058: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22105c: 8b 75 bc mov -0x44(%rbp),%esi 22105f: e8 5c 71 00 00 call 2281c0 } 221064: e9 00 00 00 00 jmp 221069 for (int i = 0; i < Vector_size(lines); i++) { 221069: 8b 45 bc mov -0x44(%rbp),%eax 22106c: 83 c0 01 add $0x1,%eax 22106f: 89 45 bc mov %eax,-0x44(%rbp) 221072: e9 9a ff ff ff jmp 221011 221077: e9 00 00 00 00 jmp 22107c } 22107c: 48 83 c4 60 add $0x60,%rsp 221080: 5d pop %rbp 221081: c3 ret 221082: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22108c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000221090 : const char* IncSet_getListItemValue(Panel* panel, int i) { 221090: 55 push %rbp 221091: 48 89 e5 mov %rsp,%rbp 221094: 48 83 ec 20 sub $0x20,%rsp 221098: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22109c: 89 75 f4 mov %esi,-0xc(%rbp) const ListItem* l = (const ListItem*) Panel_get(panel, i); 22109f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2210a3: 8b 75 f4 mov -0xc(%rbp),%esi 2210a6: e8 d5 6e 00 00 call 227f80 2210ab: 48 89 45 e8 mov %rax,-0x18(%rbp) return l ? l->value : ""; 2210af: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 2210b4: 0f 84 11 00 00 00 je 2210cb 2210ba: 48 8b 45 e8 mov -0x18(%rbp),%rax 2210be: 48 8b 40 08 mov 0x8(%rax),%rax 2210c2: 48 89 45 e0 mov %rax,-0x20(%rbp) 2210c6: e9 13 00 00 00 jmp 2210de 2210cb: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 2210d5: 48 89 45 e0 mov %rax,-0x20(%rbp) 2210d9: e9 00 00 00 00 jmp 2210de 2210de: 48 8b 45 e0 mov -0x20(%rbp),%rax 2210e2: 48 83 c4 20 add $0x20,%rsp 2210e6: 5d pop %rbp 2210e7: c3 ret 2210e8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002210f0 : } void IncSet_activate(IncSet* this, IncType type, Panel* panel) { 2210f0: 55 push %rbp 2210f1: 48 89 e5 mov %rsp,%rbp 2210f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2210f8: 89 75 f4 mov %esi,-0xc(%rbp) 2210fb: 48 89 55 e8 mov %rdx,-0x18(%rbp) this->active = &(this->modes[type]); 2210ff: 48 8b 4d f8 mov -0x8(%rbp),%rcx 221103: 8b 45 f4 mov -0xc(%rbp),%eax 221106: 48 c1 e0 06 shl $0x6,%rax 22110a: 48 01 c1 add %rax,%rcx 22110d: 48 8b 45 f8 mov -0x8(%rbp),%rax 221111: 48 89 88 80 00 00 00 mov %rcx,0x80(%rax) panel->currentBar = this->active->bar; 221118: 48 8b 45 f8 mov -0x8(%rbp),%rax 22111c: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 221123: 48 8b 48 30 mov 0x30(%rax),%rcx 221127: 48 8b 45 e8 mov -0x18(%rbp),%rax 22112b: 48 89 48 48 mov %rcx,0x48(%rax) } 22112f: 5d pop %rbp 221130: c3 ret 221131: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22113b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000221140 : void IncSet_drawBar(const IncSet* this) { 221140: 55 push %rbp 221141: 48 89 e5 mov %rsp,%rbp 221144: 48 83 ec 20 sub $0x20,%rsp 221148: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->active) { 22114c: 48 8b 45 f8 mov -0x8(%rbp),%rax 221150: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 221158: 0f 84 7d 00 00 00 je 2211db FunctionBar_drawExtra(this->active->bar, this->active->buffer, (this->active->isFilter || this->found) ? -1 : CRT_colors[FAILED_SEARCH], true); 22115e: 48 8b 45 f8 mov -0x8(%rbp),%rax 221162: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 221169: 48 8b 40 30 mov 0x30(%rax),%rax 22116d: 48 89 45 e8 mov %rax,-0x18(%rbp) 221171: 48 8b 45 f8 mov -0x8(%rbp),%rax 221175: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22117c: 48 89 45 f0 mov %rax,-0x10(%rbp) 221180: 48 8b 45 f8 mov -0x8(%rbp),%rax 221184: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22118b: f6 40 38 01 testb $0x1,0x38(%rax) 22118f: 0f 85 11 00 00 00 jne 2211a6 221195: 48 8b 45 f8 mov -0x8(%rbp),%rax 221199: f6 80 91 00 00 00 01 testb $0x1,0x91(%rax) 2211a0: 0f 84 0d 00 00 00 je 2211b3 2211a6: b8 ff ff ff ff mov $0xffffffff,%eax 2211ab: 89 45 e4 mov %eax,-0x1c(%rbp) 2211ae: e9 0e 00 00 00 jmp 2211c1 2211b3: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2211bb: 8b 40 10 mov 0x10(%rax),%eax 2211be: 89 45 e4 mov %eax,-0x1c(%rbp) 2211c1: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2211c5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2211c9: 8b 55 e4 mov -0x1c(%rbp),%edx 2211cc: b9 01 00 00 00 mov $0x1,%ecx 2211d1: e8 1a d5 ff ff call 21e6f0 } else { 2211d6: e9 10 00 00 00 jmp 2211eb FunctionBar_draw(this->defaultBar); 2211db: 48 8b 45 f8 mov -0x8(%rbp),%rax 2211df: 48 8b b8 88 00 00 00 mov 0x88(%rax),%rdi 2211e6: e8 d5 d4 ff ff call 21e6c0 } } 2211eb: 48 83 c4 20 add $0x20,%rsp 2211ef: 5d pop %rbp 2211f0: c3 ret 2211f1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2211fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000221200 : int IncSet_synthesizeEvent(IncSet* this, int x) { 221200: 55 push %rbp 221201: 48 89 e5 mov %rsp,%rbp 221204: 48 83 ec 20 sub $0x20,%rsp 221208: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22120c: 89 75 ec mov %esi,-0x14(%rbp) if (this->active) { 22120f: 48 8b 45 f0 mov -0x10(%rbp),%rax 221213: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 22121b: 0f 84 1f 00 00 00 je 221240 return FunctionBar_synthesizeEvent(this->active->bar, x); 221221: 48 8b 45 f0 mov -0x10(%rbp),%rax 221225: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22122c: 48 8b 78 30 mov 0x30(%rax),%rdi 221230: 8b 75 ec mov -0x14(%rbp),%esi 221233: e8 18 d8 ff ff call 21ea50 221238: 89 45 fc mov %eax,-0x4(%rbp) 22123b: e9 16 00 00 00 jmp 221256 } else { return FunctionBar_synthesizeEvent(this->defaultBar, x); 221240: 48 8b 45 f0 mov -0x10(%rbp),%rax 221244: 48 8b b8 88 00 00 00 mov 0x88(%rax),%rdi 22124b: 8b 75 ec mov -0x14(%rbp),%esi 22124e: e8 fd d7 ff ff call 21ea50 221253: 89 45 fc mov %eax,-0x4(%rbp) } } 221256: 8b 45 fc mov -0x4(%rbp),%eax 221259: 48 83 c4 20 add $0x20,%rsp 22125d: 5d pop %rbp 22125e: c3 ret 22125f: 90 nop 0000000000221260 <__sbmaskrune>: { 221260: 55 push %rbp 221261: 48 89 e5 mov %rsp,%rbp 221264: 48 83 ec 20 sub $0x20,%rsp 221268: 89 7d fc mov %edi,-0x4(%rbp) 22126b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 22126f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 221273: 0f 8c 10 00 00 00 jl 221289 <__sbmaskrune+0x29> 221279: 8b 45 fc mov -0x4(%rbp),%eax 22127c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 221283: 0f 8c 0b 00 00 00 jl 221294 <__sbmaskrune+0x34> 221289: 31 c0 xor %eax,%eax 22128b: 48 89 45 e8 mov %rax,-0x18(%rbp) 22128f: e9 16 00 00 00 jmp 2212aa <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 221294: e8 27 00 00 00 call 2212c0 <__getCurrentRuneLocale> 221299: 48 63 4d fc movslq -0x4(%rbp),%rcx 22129d: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 2212a2: 48 23 45 f0 and -0x10(%rbp),%rax 2212a6: 48 89 45 e8 mov %rax,-0x18(%rbp) 2212aa: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 2212ae: 48 83 c4 20 add $0x20,%rsp 2212b2: 5d pop %rbp 2212b3: c3 ret 2212b4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2212be: 66 90 xchg %ax,%ax 00000000002212c0 <__getCurrentRuneLocale>: { 2212c0: 55 push %rbp 2212c1: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 2212c4: 48 8b 0d e5 e9 01 00 mov 0x1e9e5(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2212cb: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 2212d4: 48 8b 04 08 mov (%rax,%rcx,1),%rax 2212d8: 48 83 f8 00 cmp $0x0,%rax 2212dc: 0f 84 1d 00 00 00 je 2212ff <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 2212e2: 48 8b 0d c7 e9 01 00 mov 0x1e9c7(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2212e9: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 2212f2: 48 8b 04 08 mov (%rax,%rcx,1),%rax 2212f6: 48 89 45 f8 mov %rax,-0x8(%rbp) 2212fa: e9 0c 00 00 00 jmp 22130b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 2212ff: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 221307: 48 89 45 f8 mov %rax,-0x8(%rbp) } 22130b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22130f: 5d pop %rbp 221310: c3 ret 221311: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22131b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000221320 : static inline int Vector_size(const Vector* this) { 221320: 55 push %rbp 221321: 48 89 e5 mov %rsp,%rbp 221324: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 221328: 48 8b 45 f8 mov -0x8(%rbp),%rax 22132c: 8b 40 18 mov 0x18(%rax),%eax 22132f: 5d pop %rbp 221330: c3 ret 221331: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22133b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000221340 : static inline Object* Vector_get(const Vector* this, int idx) { 221340: 55 push %rbp 221341: 48 89 e5 mov %rsp,%rbp 221344: 48 89 7d f8 mov %rdi,-0x8(%rbp) 221348: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 22134b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22134f: 48 8b 00 mov (%rax),%rax 221352: 48 63 4d f4 movslq -0xc(%rbp),%rcx 221356: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 22135a: 5d pop %rbp 22135b: c3 ret 22135c: cc int3 22135d: cc int3 22135e: cc int3 22135f: cc int3 0000000000221360 : static const char* const InfoScreenKeys[] = {"F3", "F4", "F5", "Esc"}; static const int InfoScreenEvents[] = {KEY_F(3), KEY_F(4), KEY_F(5), 27}; InfoScreen* InfoScreen_init(InfoScreen* this, const Process* process, FunctionBar* bar, int height, const char* panelHeader) { 221360: 55 push %rbp 221361: 48 89 e5 mov %rsp,%rbp 221364: 48 83 ec 30 sub $0x30,%rsp 221368: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22136c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 221370: 48 89 55 e8 mov %rdx,-0x18(%rbp) 221374: 89 4d e4 mov %ecx,-0x1c(%rbp) 221377: 4c 89 45 d8 mov %r8,-0x28(%rbp) this->process = process; 22137b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22137f: 48 8b 45 f8 mov -0x8(%rbp),%rax 221383: 48 89 48 08 mov %rcx,0x8(%rax) if (!bar) { 221387: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 22138c: 0f 85 27 00 00 00 jne 2213b9 bar = FunctionBar_new(InfoScreenFunctions, InfoScreenKeys, InfoScreenEvents); 221392: 48 bf 40 8e 20 00 00 00 00 00 movabs $0x208e40,%rdi 22139c: 48 be 70 8e 20 00 00 00 00 00 movabs $0x208e70,%rsi 2213a6: 48 ba 90 8e 20 00 00 00 00 00 movabs $0x208e90,%rdx 2213b0: e8 9b cf ff ff call 21e350 2213b5: 48 89 45 e8 mov %rax,-0x18(%rbp) } this->display = Panel_new(0, 1, COLS, height, Class(ListItem), false, bar); 2213b9: 8b 14 25 70 28 24 00 mov 0x242870,%edx 2213c0: 8b 4d e4 mov -0x1c(%rbp),%ecx 2213c3: 48 8b 45 e8 mov -0x18(%rbp),%rax 2213c7: 45 31 c9 xor %r9d,%r9d 2213ca: be 01 00 00 00 mov $0x1,%esi 2213cf: 49 b8 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r8 2213d9: 44 89 cf mov %r9d,%edi 2213dc: 48 89 04 24 mov %rax,(%rsp) 2213e0: e8 9b 67 00 00 call 227b80 2213e5: 48 89 c1 mov %rax,%rcx 2213e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2213ec: 48 89 48 10 mov %rcx,0x10(%rax) this->inc = IncSet_new(bar); 2213f0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2213f4: e8 07 f5 ff ff call 220900 2213f9: 48 89 c1 mov %rax,%rcx 2213fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 221400: 48 89 48 18 mov %rcx,0x18(%rax) this->lines = Vector_new(Vector_type(this->display->items), true, DEFAULT_SIZE); 221404: 48 8b 45 f8 mov -0x8(%rbp),%rax 221408: 48 8b 40 10 mov 0x10(%rax),%rax 22140c: 48 8b 78 18 mov 0x18(%rax),%rdi 221410: e8 3b 00 00 00 call 221450 221415: 48 89 c7 mov %rax,%rdi 221418: be 01 00 00 00 mov $0x1,%esi 22141d: ba ff ff ff ff mov $0xffffffff,%edx 221422: e8 59 6c 01 00 call 238080 221427: 48 89 c1 mov %rax,%rcx 22142a: 48 8b 45 f8 mov -0x8(%rbp),%rax 22142e: 48 89 48 20 mov %rcx,0x20(%rax) Panel_setHeader(this->display, panelHeader); 221432: 48 8b 45 f8 mov -0x8(%rbp),%rax 221436: 48 8b 78 10 mov 0x10(%rax),%rdi 22143a: 48 8b 75 d8 mov -0x28(%rbp),%rsi 22143e: e8 ad 69 00 00 call 227df0 return this; 221443: 48 8b 45 f8 mov -0x8(%rbp),%rax 221447: 48 83 c4 30 add $0x30,%rsp 22144b: 5d pop %rbp 22144c: c3 ret 22144d: 0f 1f 00 nopl (%rax) 0000000000221450 : } #endif /* NDEBUG */ static inline const ObjectClass* Vector_type(const Vector* this) { 221450: 55 push %rbp 221451: 48 89 e5 mov %rsp,%rbp 221454: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->type; 221458: 48 8b 45 f8 mov -0x8(%rbp),%rax 22145c: 48 8b 40 08 mov 0x8(%rax),%rax 221460: 5d pop %rbp 221461: c3 ret 221462: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22146c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000221470 : } InfoScreen* InfoScreen_done(InfoScreen* this) { 221470: 55 push %rbp 221471: 48 89 e5 mov %rsp,%rbp 221474: 48 83 ec 10 sub $0x10,%rsp 221478: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel_delete((Object*)this->display); 22147c: 48 8b 45 f8 mov -0x8(%rbp),%rax 221480: 48 8b 78 10 mov 0x10(%rax),%rdi 221484: e8 77 64 00 00 call 227900 IncSet_delete(this->inc); 221489: 48 8b 45 f8 mov -0x8(%rbp),%rax 22148d: 48 8b 78 18 mov 0x18(%rax),%rdi 221491: e8 9a f5 ff ff call 220a30 Vector_delete(this->lines); 221496: 48 8b 45 f8 mov -0x8(%rbp),%rax 22149a: 48 8b 78 20 mov 0x20(%rax),%rdi 22149e: e8 6d 6c 01 00 call 238110 return this; 2214a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2214a7: 48 83 c4 10 add $0x10,%rsp 2214ab: 5d pop %rbp 2214ac: c3 ret 2214ad: 0f 1f 00 nopl (%rax) 00000000002214b0 : } void InfoScreen_drawTitled(InfoScreen* this, const char* fmt, ...) { 2214b0: 55 push %rbp 2214b1: 48 89 e5 mov %rsp,%rbp 2214b4: 48 81 ec 10 01 00 00 sub $0x110,%rsp 2214bb: 84 c0 test %al,%al 2214bd: 0f 84 2f 00 00 00 je 2214f2 2214c3: 0f 29 85 30 ff ff ff movaps %xmm0,-0xd0(%rbp) 2214ca: 0f 29 8d 40 ff ff ff movaps %xmm1,-0xc0(%rbp) 2214d1: 0f 29 95 50 ff ff ff movaps %xmm2,-0xb0(%rbp) 2214d8: 0f 29 9d 60 ff ff ff movaps %xmm3,-0xa0(%rbp) 2214df: 0f 29 a5 70 ff ff ff movaps %xmm4,-0x90(%rbp) 2214e6: 0f 29 6d 80 movaps %xmm5,-0x80(%rbp) 2214ea: 0f 29 75 90 movaps %xmm6,-0x70(%rbp) 2214ee: 0f 29 7d a0 movaps %xmm7,-0x60(%rbp) 2214f2: 4c 89 8d 28 ff ff ff mov %r9,-0xd8(%rbp) 2214f9: 4c 89 85 20 ff ff ff mov %r8,-0xe0(%rbp) 221500: 48 89 8d 18 ff ff ff mov %rcx,-0xe8(%rbp) 221507: 48 89 95 10 ff ff ff mov %rdx,-0xf0(%rbp) 22150e: 48 8b 05 1b 13 02 00 mov 0x2131b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 221515: 48 89 45 f8 mov %rax,-0x8(%rbp) 221519: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22151d: 48 89 75 d0 mov %rsi,-0x30(%rbp) 221521: 48 8d 85 00 ff ff ff lea -0x100(%rbp),%rax va_list ap; va_start(ap, fmt); 221528: 48 89 45 f0 mov %rax,-0x10(%rbp) 22152c: 48 8d 45 10 lea 0x10(%rbp),%rax 221530: 48 89 45 e8 mov %rax,-0x18(%rbp) 221534: c7 45 e4 30 00 00 00 movl $0x30,-0x1c(%rbp) 22153b: c7 45 e0 10 00 00 00 movl $0x10,-0x20(%rbp) char title[COLS + 1]; 221542: 8b 05 28 13 02 00 mov 0x21328(%rip),%eax # 242870 221548: 83 c0 01 add $0x1,%eax 22154b: 89 c6 mov %eax,%esi 22154d: 48 89 e0 mov %rsp,%rax 221550: 48 89 45 c8 mov %rax,-0x38(%rbp) 221554: 48 89 f0 mov %rsi,%rax 221557: 48 83 c0 0f add $0xf,%rax 22155b: 48 83 e0 f0 and $0xfffffffffffffff0,%rax 22155f: 48 89 e7 mov %rsp,%rdi 221562: 48 29 c7 sub %rax,%rdi 221565: 48 89 bd f8 fe ff ff mov %rdi,-0x108(%rbp) 22156c: 48 89 fc mov %rdi,%rsp 22156f: 48 89 75 c0 mov %rsi,-0x40(%rbp) int len = vsnprintf(title, sizeof(title), fmt, ap); 221573: 48 8b 55 d0 mov -0x30(%rbp),%rdx 221577: 48 8d 4d e0 lea -0x20(%rbp),%rcx 22157b: e8 70 d0 01 00 call 23e5f0 221580: 89 45 bc mov %eax,-0x44(%rbp) va_end(ap); 221583: 48 8d 45 e0 lea -0x20(%rbp),%rax if (len > COLS) { 221587: 8b 45 bc mov -0x44(%rbp),%eax 22158a: 3b 04 25 70 28 24 00 cmp 0x242870,%eax 221591: 0f 8e 25 00 00 00 jle 2215bc 221597: 48 8b bd f8 fe ff ff mov -0x108(%rbp),%rdi memset(&title[COLS - 3], '.', 3); 22159e: 8b 04 25 70 28 24 00 mov 0x242870,%eax 2215a5: 83 e8 03 sub $0x3,%eax 2215a8: 48 98 cltq 2215aa: 48 01 c7 add %rax,%rdi 2215ad: be 2e 00 00 00 mov $0x2e,%esi 2215b2: ba 03 00 00 00 mov $0x3,%edx 2215b7: e8 84 cc 01 00 call 23e240 } attrset(CRT_colors[METER_TEXT]); 2215bc: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2215c4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2215cc: 8b 70 38 mov 0x38(%rax),%esi 2215cf: e8 ac cb 01 00 call 23e180 mvhline(0, 0, ' ', COLS); 2215d4: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2215dc: 31 d2 xor %edx,%edx 2215de: 89 d6 mov %edx,%esi 2215e0: e8 ab cb 01 00 call 23e190 2215e5: 83 f8 ff cmp $0xffffffff,%eax 2215e8: 0f 85 05 00 00 00 jne 2215f3 2215ee: e9 19 00 00 00 jmp 22160c 2215f3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2215fb: 8b 14 25 70 28 24 00 mov 0x242870,%edx 221602: be 20 00 00 00 mov $0x20,%esi 221607: e8 94 cb 01 00 call 23e1a0 mvaddstr(0, 0, title); 22160c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 221614: 31 d2 xor %edx,%edx 221616: 89 d6 mov %edx,%esi 221618: e8 73 cb 01 00 call 23e190 22161d: 83 f8 ff cmp $0xffffffff,%eax 221620: 0f 85 05 00 00 00 jne 22162b 221626: e9 19 00 00 00 jmp 221644 22162b: 48 8b b5 f8 fe ff ff mov -0x108(%rbp),%rsi 221632: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22163a: ba ff ff ff ff mov $0xffffffff,%edx 22163f: e8 6c cb 01 00 call 23e1b0 attrset(CRT_colors[DEFAULT_COLOR]); 221644: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22164c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 221654: 8b 70 04 mov 0x4(%rax),%esi 221657: e8 24 cb 01 00 call 23e180 Panel_draw(this->display, true, true, true, false); 22165c: 48 8b 45 d8 mov -0x28(%rbp),%rax 221660: 48 8b 78 10 mov 0x10(%rax),%rdi 221664: b9 01 00 00 00 mov $0x1,%ecx 221669: 45 31 c0 xor %r8d,%r8d 22166c: 89 ce mov %ecx,%esi 22166e: 89 ca mov %ecx,%edx 221670: e8 fb 6b 00 00 call 228270 IncSet_drawBar(this->inc); 221675: 48 8b 45 d8 mov -0x28(%rbp),%rax 221679: 48 8b 78 18 mov 0x18(%rax),%rdi 22167d: e8 be fa ff ff call 221140 } 221682: 48 8b 45 c8 mov -0x38(%rbp),%rax 221686: 48 89 c4 mov %rax,%rsp 221689: 48 8b 05 a0 11 02 00 mov 0x211a0(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 221690: 48 8b 4d f8 mov -0x8(%rbp),%rcx 221694: 48 39 c8 cmp %rcx,%rax 221697: 0f 85 05 00 00 00 jne 2216a2 22169d: 48 89 ec mov %rbp,%rsp 2216a0: 5d pop %rbp 2216a1: c3 ret 2216a2: e8 99 ca 01 00 call 23e140 <__stack_chk_fail@plt> 2216a7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 00000000002216b0 : void InfoScreen_addLine(InfoScreen* this, const char* line) { 2216b0: 55 push %rbp 2216b1: 48 89 e5 mov %rsp,%rbp 2216b4: 48 83 ec 30 sub $0x30,%rsp 2216b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2216bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) Vector_add(this->lines, (Object*) ListItem_new(line, 0)); 2216c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2216c4: 48 8b 40 20 mov 0x20(%rax),%rax 2216c8: 48 89 45 e0 mov %rax,-0x20(%rbp) 2216cc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2216d0: 31 f6 xor %esi,%esi 2216d2: e8 79 06 00 00 call 221d50 2216d7: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2216db: 48 89 c6 mov %rax,%rsi 2216de: e8 fd 70 01 00 call 2387e0 const char* incFilter = IncSet_filter(this->inc); 2216e3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2216e7: 48 8b 78 18 mov 0x18(%rax),%rdi 2216eb: e8 70 00 00 00 call 221760 2216f0: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!incFilter || String_contains_i(line, incFilter)) { 2216f4: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 2216f9: 0f 84 1a 00 00 00 je 221719 2216ff: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221703: 48 8b 75 e8 mov -0x18(%rbp),%rsi 221707: e8 74 75 01 00 call 238c80 22170c: a8 01 test $0x1,%al 22170e: 0f 85 05 00 00 00 jne 221719 221714: e9 3f 00 00 00 jmp 221758 Panel_add(this->display, Vector_get(this->lines, Vector_size(this->lines) - 1)); 221719: 48 8b 45 f8 mov -0x8(%rbp),%rax 22171d: 48 8b 40 10 mov 0x10(%rax),%rax 221721: 48 89 45 d8 mov %rax,-0x28(%rbp) 221725: 48 8b 45 f8 mov -0x8(%rbp),%rax 221729: 48 8b 40 20 mov 0x20(%rax),%rax 22172d: 48 89 45 d0 mov %rax,-0x30(%rbp) 221731: 48 8b 45 f8 mov -0x8(%rbp),%rax 221735: 48 8b 78 20 mov 0x20(%rax),%rdi 221739: e8 82 00 00 00 call 2217c0 22173e: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221742: 89 c6 mov %eax,%esi 221744: 83 ee 01 sub $0x1,%esi 221747: e8 54 00 00 00 call 2217a0 22174c: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221750: 48 89 c6 mov %rax,%rsi 221753: e8 88 67 00 00 call 227ee0 } } 221758: 48 83 c4 30 add $0x30,%rsp 22175c: 5d pop %rbp 22175d: c3 ret 22175e: 66 90 xchg %ax,%ax 0000000000221760 : static inline const char* IncSet_filter(const IncSet* this) { 221760: 55 push %rbp 221761: 48 89 e5 mov %rsp,%rbp 221764: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->filtering ? this->modes[INC_FILTER].buffer : NULL; 221768: 48 8b 45 f8 mov -0x8(%rbp),%rax 22176c: f6 80 90 00 00 00 01 testb $0x1,0x90(%rax) 221773: 0f 84 11 00 00 00 je 22178a 221779: 48 8b 45 f8 mov -0x8(%rbp),%rax 22177d: 48 83 c0 40 add $0x40,%rax 221781: 48 89 45 f0 mov %rax,-0x10(%rbp) 221785: e9 0b 00 00 00 jmp 221795 22178a: 31 c0 xor %eax,%eax 22178c: 48 89 45 f0 mov %rax,-0x10(%rbp) 221790: e9 00 00 00 00 jmp 221795 221795: 48 8b 45 f0 mov -0x10(%rbp),%rax 221799: 5d pop %rbp 22179a: c3 ret 22179b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002217a0 : static inline Object* Vector_get(const Vector* this, int idx) { 2217a0: 55 push %rbp 2217a1: 48 89 e5 mov %rsp,%rbp 2217a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2217a8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 2217ab: 48 8b 45 f8 mov -0x8(%rbp),%rax 2217af: 48 8b 00 mov (%rax),%rax 2217b2: 48 63 4d f4 movslq -0xc(%rbp),%rcx 2217b6: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 2217ba: 5d pop %rbp 2217bb: c3 ret 2217bc: 0f 1f 40 00 nopl 0x0(%rax) 00000000002217c0 : static inline int Vector_size(const Vector* this) { 2217c0: 55 push %rbp 2217c1: 48 89 e5 mov %rsp,%rbp 2217c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 2217c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2217cc: 8b 40 18 mov 0x18(%rax),%eax 2217cf: 5d pop %rbp 2217d0: c3 ret 2217d1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2217db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002217e0 : void InfoScreen_appendLine(InfoScreen* this, const char* line) { 2217e0: 55 push %rbp 2217e1: 48 89 e5 mov %rsp,%rbp 2217e4: 48 83 ec 30 sub $0x30,%rsp 2217e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2217ec: 48 89 75 f0 mov %rsi,-0x10(%rbp) ListItem* last = (ListItem*)Vector_get(this->lines, Vector_size(this->lines) - 1); 2217f0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2217f4: 48 8b 40 20 mov 0x20(%rax),%rax 2217f8: 48 89 45 d8 mov %rax,-0x28(%rbp) 2217fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 221800: 48 8b 78 20 mov 0x20(%rax),%rdi 221804: e8 b7 ff ff ff call 2217c0 221809: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22180d: 89 c6 mov %eax,%esi 22180f: 83 ee 01 sub $0x1,%esi 221812: e8 89 ff ff ff call 2217a0 221817: 48 89 45 e8 mov %rax,-0x18(%rbp) ListItem_append(last, line); 22181b: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22181f: 48 8b 75 f0 mov -0x10(%rbp),%rsi 221823: e8 88 05 00 00 call 221db0 const char* incFilter = IncSet_filter(this->inc); 221828: 48 8b 45 f8 mov -0x8(%rbp),%rax 22182c: 48 8b 78 18 mov 0x18(%rax),%rdi 221830: e8 2b ff ff ff call 221760 221835: 48 89 45 e0 mov %rax,-0x20(%rbp) if (incFilter && Panel_get(this->display, Panel_size(this->display) - 1) != (Object*)last && String_contains_i(line, incFilter)) { 221839: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 22183e: 0f 84 5f 00 00 00 je 2218a3 221844: 48 8b 45 f8 mov -0x8(%rbp),%rax 221848: 48 8b 40 10 mov 0x10(%rax),%rax 22184c: 48 89 45 d0 mov %rax,-0x30(%rbp) 221850: 48 8b 45 f8 mov -0x8(%rbp),%rax 221854: 48 8b 78 10 mov 0x10(%rax),%rdi 221858: e8 43 69 00 00 call 2281a0 22185d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221861: 89 c6 mov %eax,%esi 221863: 83 ee 01 sub $0x1,%esi 221866: e8 15 67 00 00 call 227f80 22186b: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22186f: 48 39 c8 cmp %rcx,%rax 221872: 0f 84 2b 00 00 00 je 2218a3 221878: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22187c: 48 8b 75 e0 mov -0x20(%rbp),%rsi 221880: e8 fb 73 01 00 call 238c80 221885: a8 01 test $0x1,%al 221887: 0f 85 05 00 00 00 jne 221892 22188d: e9 11 00 00 00 jmp 2218a3 Panel_add(this->display, (Object*)last); 221892: 48 8b 45 f8 mov -0x8(%rbp),%rax 221896: 48 8b 78 10 mov 0x10(%rax),%rdi 22189a: 48 8b 75 e8 mov -0x18(%rbp),%rsi 22189e: e8 3d 66 00 00 call 227ee0 } } 2218a3: 48 83 c4 30 add $0x30,%rsp 2218a7: 5d pop %rbp 2218a8: c3 ret 2218a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002218b0 : void InfoScreen_run(InfoScreen* this) { 2218b0: 55 push %rbp 2218b1: 48 89 e5 mov %rsp,%rbp 2218b4: 48 83 ec 40 sub $0x40,%rsp 2218b8: 48 8b 05 71 0f 02 00 mov 0x20f71(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2218bf: 48 89 45 f8 mov %rax,-0x8(%rbp) 2218c3: 48 89 7d d8 mov %rdi,-0x28(%rbp) Panel* panel = this->display; 2218c7: 48 8b 45 d8 mov -0x28(%rbp),%rax 2218cb: 48 8b 40 10 mov 0x10(%rax),%rax 2218cf: 48 89 45 d0 mov %rax,-0x30(%rbp) if (As_InfoScreen(this)->scan) 2218d3: 48 8b 45 d8 mov -0x28(%rbp),%rax 2218d7: 48 8b 00 mov (%rax),%rax 2218da: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 2218df: 0f 84 11 00 00 00 je 2218f6 InfoScreen_scan(this); 2218e5: 48 8b 45 d8 mov -0x28(%rbp),%rax 2218e9: 48 8b 00 mov (%rax),%rax 2218ec: 48 8b 40 20 mov 0x20(%rax),%rax 2218f0: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2218f4: ff d0 call *%rax InfoScreen_draw(this); 2218f6: 48 8b 45 d8 mov -0x28(%rbp),%rax 2218fa: 48 8b 00 mov (%rax),%rax 2218fd: 48 8b 40 28 mov 0x28(%rax),%rax 221901: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221905: ff d0 call *%rax bool looping = true; 221907: c6 45 cf 01 movb $0x1,-0x31(%rbp) while (looping) { 22190b: f6 45 cf 01 testb $0x1,-0x31(%rbp) 22190f: 0f 84 12 04 00 00 je 221d27 Panel_draw(panel, false, true, true, false); 221915: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221919: 45 31 c0 xor %r8d,%r8d 22191c: b9 01 00 00 00 mov $0x1,%ecx 221921: 44 89 c6 mov %r8d,%esi 221924: 89 ca mov %ecx,%edx 221926: e8 45 69 00 00 call 228270 IncSet_drawBar(this->inc); 22192b: 48 8b 45 d8 mov -0x28(%rbp),%rax 22192f: 48 8b 78 18 mov 0x18(%rax),%rdi 221933: e8 08 f8 ff ff call 221140 if (this->inc->active) { 221938: 48 8b 45 d8 mov -0x28(%rbp),%rax 22193c: 48 8b 40 18 mov 0x18(%rax),%rax 221940: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 221948: 0f 84 1e 00 00 00 je 22196c (void) move(LINES - 1, CRT_cursorX); 22194e: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 221956: 8b 34 25 80 28 24 00 mov 0x242880,%esi 22195d: 83 ee 01 sub $0x1,%esi 221960: 8b 14 25 64 1d 24 00 mov 0x241d64,%edx 221967: e8 24 c8 01 00 call 23e190 } #ifdef HAVE_SET_ESCDELAY set_escdelay(25); 22196c: bf 19 00 00 00 mov $0x19,%edi 221971: e8 8a cc 01 00 call 23e600 #endif int ch = getch(); 221976: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22197e: e8 7d cb 01 00 call 23e500 221983: 89 45 c8 mov %eax,-0x38(%rbp) if (ch == ERR) { 221986: 83 7d c8 ff cmpl $0xffffffff,-0x38(%rbp) 22198a: 0f 85 2d 00 00 00 jne 2219bd if (As_InfoScreen(this)->onErr) { 221990: 48 8b 45 d8 mov -0x28(%rbp),%rax 221994: 48 8b 00 mov (%rax),%rax 221997: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22199c: 0f 84 16 00 00 00 je 2219b8 InfoScreen_onErr(this); 2219a2: 48 8b 45 d8 mov -0x28(%rbp),%rax 2219a6: 48 8b 00 mov (%rax),%rax 2219a9: 48 8b 40 30 mov 0x30(%rax),%rax 2219ad: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2219b1: ff d0 call *%rax continue; 2219b3: e9 53 ff ff ff jmp 22190b } } 2219b8: e9 00 00 00 00 jmp 2219bd #ifdef HAVE_GETMOUSE if (ch == KEY_MOUSE) { 2219bd: 81 7d c8 99 01 00 00 cmpl $0x199,-0x38(%rbp) 2219c4: 0f 85 f4 00 00 00 jne 221abe MEVENT mevent; int ok = getmouse(&mevent); 2219ca: 48 8d 7d e0 lea -0x20(%rbp),%rdi 2219ce: e8 3d cc 01 00 call 23e610 2219d3: 89 45 c4 mov %eax,-0x3c(%rbp) if (ok == OK) { 2219d6: 83 7d c4 00 cmpl $0x0,-0x3c(%rbp) 2219da: 0f 85 d9 00 00 00 jne 221ab9 if (mevent.bstate & BUTTON1_RELEASED) { 2219e0: 8b 45 f0 mov -0x10(%rbp),%eax 2219e3: 48 83 e0 01 and $0x1,%rax 2219e7: 48 83 f8 00 cmp $0x0,%rax 2219eb: 0f 84 80 00 00 00 je 221a71 if (mevent.y >= panel->y && mevent.y < LINES - 1) { 2219f1: 8b 45 e8 mov -0x18(%rbp),%eax 2219f4: 48 8b 4d d0 mov -0x30(%rbp),%rcx 2219f8: 3b 41 0c cmp 0xc(%rcx),%eax 2219fb: 0f 8c 3e 00 00 00 jl 221a3f 221a01: 8b 45 e8 mov -0x18(%rbp),%eax 221a04: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 221a0b: 83 e9 01 sub $0x1,%ecx 221a0e: 39 c8 cmp %ecx,%eax 221a10: 0f 8d 29 00 00 00 jge 221a3f Panel_setSelected(panel, mevent.y - panel->y + panel->scrollV - 1); 221a16: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221a1a: 8b 75 e8 mov -0x18(%rbp),%esi 221a1d: 48 8b 45 d0 mov -0x30(%rbp),%rax 221a21: 2b 70 0c sub 0xc(%rax),%esi 221a24: 48 8b 45 d0 mov -0x30(%rbp),%rax 221a28: 03 70 38 add 0x38(%rax),%esi 221a2b: 83 ee 01 sub $0x1,%esi 221a2e: e8 8d 67 00 00 call 2281c0 ch = 0; 221a33: c7 45 c8 00 00 00 00 movl $0x0,-0x38(%rbp) } else if (mevent.y == LINES - 1) { 221a3a: e9 2d 00 00 00 jmp 221a6c 221a3f: 8b 45 e8 mov -0x18(%rbp),%eax 221a42: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 221a49: 83 e9 01 sub $0x1,%ecx 221a4c: 39 c8 cmp %ecx,%eax 221a4e: 0f 85 13 00 00 00 jne 221a67 ch = IncSet_synthesizeEvent(this->inc, mevent.x); 221a54: 48 8b 45 d8 mov -0x28(%rbp),%rax 221a58: 48 8b 78 18 mov 0x18(%rax),%rdi 221a5c: 8b 75 e4 mov -0x1c(%rbp),%esi 221a5f: e8 9c f7 ff ff call 221200 221a64: 89 45 c8 mov %eax,-0x38(%rbp) 221a67: e9 00 00 00 00 jmp 221a6c } } 221a6c: e9 43 00 00 00 jmp 221ab4 #if NCURSES_MOUSE_VERSION > 1 else if (mevent.bstate & BUTTON4_PRESSED) { 221a71: 8b 45 f0 mov -0x10(%rbp),%eax 221a74: 48 25 00 00 01 00 and $0x10000,%rax 221a7a: 48 83 f8 00 cmp $0x0,%rax 221a7e: 0f 84 0c 00 00 00 je 221a90 ch = KEY_WHEELUP; 221a84: c7 45 c8 26 01 00 00 movl $0x126,-0x38(%rbp) } else if (mevent.bstate & BUTTON5_PRESSED) { 221a8b: e9 1f 00 00 00 jmp 221aaf 221a90: 8b 45 f0 mov -0x10(%rbp),%eax 221a93: 48 25 00 00 20 00 and $0x200000,%rax 221a99: 48 83 f8 00 cmp $0x0,%rax 221a9d: 0f 84 07 00 00 00 je 221aaa ch = KEY_WHEELDOWN; 221aa3: c7 45 c8 27 01 00 00 movl $0x127,-0x38(%rbp) 221aaa: e9 00 00 00 00 jmp 221aaf 221aaf: e9 00 00 00 00 jmp 221ab4 } #endif } 221ab4: e9 00 00 00 00 jmp 221ab9 } 221ab9: e9 00 00 00 00 jmp 221abe #endif if (this->inc->active) { 221abe: 48 8b 45 d8 mov -0x28(%rbp),%rax 221ac2: 48 8b 40 18 mov 0x18(%rax),%rax 221ac6: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 221ace: 0f 84 2b 00 00 00 je 221aff IncSet_handleKey(this->inc, ch, panel, IncSet_getListItemValue, this->lines); 221ad4: 48 8b 45 d8 mov -0x28(%rbp),%rax 221ad8: 48 8b 78 18 mov 0x18(%rax),%rdi 221adc: 8b 75 c8 mov -0x38(%rbp),%esi 221adf: 48 8b 55 d0 mov -0x30(%rbp),%rdx 221ae3: 48 8b 45 d8 mov -0x28(%rbp),%rax 221ae7: 4c 8b 40 20 mov 0x20(%rax),%r8 221aeb: 48 b9 90 10 22 00 00 00 00 00 movabs $0x221090,%rcx 221af5: e8 96 ef ff ff call 220a90 continue; 221afa: e9 0c fe ff ff jmp 22190b } switch (ch) { 221aff: 8b 45 c8 mov -0x38(%rbp),%eax 221b02: 89 45 c0 mov %eax,-0x40(%rbp) 221b05: 83 e8 ff sub $0xffffffff,%eax 221b08: 0f 84 b9 00 00 00 je 221bc7 221b0e: e9 00 00 00 00 jmp 221b13 221b13: 8b 45 c0 mov -0x40(%rbp),%eax 221b16: 83 e8 0c sub $0xc,%eax 221b19: 0f 84 33 01 00 00 je 221c52 221b1f: e9 00 00 00 00 jmp 221b24 221b24: 8b 45 c0 mov -0x40(%rbp),%eax 221b27: 83 e8 1b sub $0x1b,%eax 221b2a: 0f 84 45 01 00 00 je 221c75 221b30: e9 00 00 00 00 jmp 221b35 221b35: 8b 45 c0 mov -0x40(%rbp),%eax 221b38: 83 e8 2f sub $0x2f,%eax 221b3b: 0f 84 8b 00 00 00 je 221bcc 221b41: e9 00 00 00 00 jmp 221b46 221b46: 8b 45 c0 mov -0x40(%rbp),%eax 221b49: 83 e8 5c sub $0x5c,%eax 221b4c: 0f 84 92 00 00 00 je 221be4 221b52: e9 00 00 00 00 jmp 221b57 221b57: 8b 45 c0 mov -0x40(%rbp),%eax 221b5a: 83 e8 71 sub $0x71,%eax 221b5d: 0f 84 12 01 00 00 je 221c75 221b63: e9 00 00 00 00 jmp 221b68 221b68: 8b 45 c0 mov -0x40(%rbp),%eax 221b6b: 2d 0b 01 00 00 sub $0x10b,%eax 221b70: 0f 84 56 00 00 00 je 221bcc 221b76: e9 00 00 00 00 jmp 221b7b 221b7b: 8b 45 c0 mov -0x40(%rbp),%eax 221b7e: 2d 0c 01 00 00 sub $0x10c,%eax 221b83: 0f 84 5b 00 00 00 je 221be4 221b89: e9 00 00 00 00 jmp 221b8e 221b8e: 8b 45 c0 mov -0x40(%rbp),%eax 221b91: 2d 0d 01 00 00 sub $0x10d,%eax 221b96: 0f 84 63 00 00 00 je 221bff 221b9c: e9 00 00 00 00 jmp 221ba1 221ba1: 8b 45 c0 mov -0x40(%rbp),%eax 221ba4: 2d 12 01 00 00 sub $0x112,%eax 221ba9: 0f 84 c6 00 00 00 je 221c75 221baf: e9 00 00 00 00 jmp 221bb4 221bb4: 8b 45 c0 mov -0x40(%rbp),%eax 221bb7: 2d 9a 01 00 00 sub $0x19a,%eax 221bbc: 0f 84 bc 00 00 00 je 221c7e 221bc2: e9 17 01 00 00 jmp 221cde case ERR: continue; 221bc7: e9 3f fd ff ff jmp 22190b case KEY_F(3): case '/': IncSet_activate(this->inc, INC_SEARCH, panel); 221bcc: 48 8b 45 d8 mov -0x28(%rbp),%rax 221bd0: 48 8b 78 18 mov 0x18(%rax),%rdi 221bd4: 48 8b 55 d0 mov -0x30(%rbp),%rdx 221bd8: 31 f6 xor %esi,%esi 221bda: e8 11 f5 ff ff call 2210f0 break; 221bdf: e9 3e 01 00 00 jmp 221d22 case KEY_F(4): case '\\': IncSet_activate(this->inc, INC_FILTER, panel); 221be4: 48 8b 45 d8 mov -0x28(%rbp),%rax 221be8: 48 8b 78 18 mov 0x18(%rax),%rdi 221bec: 48 8b 55 d0 mov -0x30(%rbp),%rdx 221bf0: be 01 00 00 00 mov $0x1,%esi 221bf5: e8 f6 f4 ff ff call 2210f0 break; 221bfa: e9 23 01 00 00 jmp 221d22 case KEY_F(5): clear(); 221bff: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 221c07: e8 64 c5 01 00 call 23e170 if (As_InfoScreen(this)->scan) { 221c0c: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c10: 48 8b 00 mov (%rax),%rax 221c13: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 221c18: 0f 84 1e 00 00 00 je 221c3c Vector_prune(this->lines); 221c1e: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c22: 48 8b 78 20 mov 0x20(%rax),%rdi 221c26: e8 95 65 01 00 call 2381c0 InfoScreen_scan(this); 221c2b: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c2f: 48 8b 00 mov (%rax),%rax 221c32: 48 8b 40 20 mov 0x20(%rax),%rax 221c36: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221c3a: ff d0 call *%rax } InfoScreen_draw(this); 221c3c: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c40: 48 8b 00 mov (%rax),%rax 221c43: 48 8b 40 28 mov 0x28(%rax),%rax 221c47: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221c4b: ff d0 call *%rax break; 221c4d: e9 d0 00 00 00 jmp 221d22 case '\014': // Ctrl+L clear(); 221c52: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 221c5a: e8 11 c5 01 00 call 23e170 InfoScreen_draw(this); 221c5f: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c63: 48 8b 00 mov (%rax),%rax 221c66: 48 8b 40 28 mov 0x28(%rax),%rax 221c6a: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221c6e: ff d0 call *%rax break; 221c70: e9 ad 00 00 00 jmp 221d22 case 27: case 'q': case KEY_F(10): looping = false; 221c75: c6 45 cf 00 movb $0x0,-0x31(%rbp) break; 221c79: e9 a4 00 00 00 jmp 221d22 case KEY_RESIZE: Panel_resize(panel, COLS, LINES - 2); 221c7e: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221c82: 8b 34 25 70 28 24 00 mov 0x242870,%esi 221c89: 8b 14 25 80 28 24 00 mov 0x242880,%edx 221c90: 83 ea 02 sub $0x2,%edx 221c93: e8 c8 61 00 00 call 227e60 if (As_InfoScreen(this)->scan) { 221c98: 48 8b 45 d8 mov -0x28(%rbp),%rax 221c9c: 48 8b 00 mov (%rax),%rax 221c9f: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 221ca4: 0f 84 1e 00 00 00 je 221cc8 Vector_prune(this->lines); 221caa: 48 8b 45 d8 mov -0x28(%rbp),%rax 221cae: 48 8b 78 20 mov 0x20(%rax),%rdi 221cb2: e8 09 65 01 00 call 2381c0 InfoScreen_scan(this); 221cb7: 48 8b 45 d8 mov -0x28(%rbp),%rax 221cbb: 48 8b 00 mov (%rax),%rax 221cbe: 48 8b 40 20 mov 0x20(%rax),%rax 221cc2: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221cc6: ff d0 call *%rax } InfoScreen_draw(this); 221cc8: 48 8b 45 d8 mov -0x28(%rbp),%rax 221ccc: 48 8b 00 mov (%rax),%rax 221ccf: 48 8b 40 28 mov 0x28(%rax),%rax 221cd3: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221cd7: ff d0 call *%rax break; 221cd9: e9 44 00 00 00 jmp 221d22 default: if (As_InfoScreen(this)->onKey && InfoScreen_onKey(this, ch)) { 221cde: 48 8b 45 d8 mov -0x28(%rbp),%rax 221ce2: 48 8b 00 mov (%rax),%rax 221ce5: 48 83 78 38 00 cmpq $0x0,0x38(%rax) 221cea: 0f 84 26 00 00 00 je 221d16 221cf0: 48 8b 45 d8 mov -0x28(%rbp),%rax 221cf4: 48 8b 00 mov (%rax),%rax 221cf7: 48 8b 40 38 mov 0x38(%rax),%rax 221cfb: 48 8b 7d d8 mov -0x28(%rbp),%rdi 221cff: 8b 75 c8 mov -0x38(%rbp),%esi 221d02: ff d0 call *%rax 221d04: a8 01 test $0x1,%al 221d06: 0f 85 05 00 00 00 jne 221d11 221d0c: e9 05 00 00 00 jmp 221d16 continue; 221d11: e9 f5 fb ff ff jmp 22190b } Panel_onKey(panel, ch); 221d16: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221d1a: 8b 75 c8 mov -0x38(%rbp),%esi 221d1d: e8 7e 72 00 00 call 228fa0 while (looping) { 221d22: e9 e4 fb ff ff jmp 22190b 221d27: 48 8b 05 02 0b 02 00 mov 0x20b02(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 221d2e: 48 8b 4d f8 mov -0x8(%rbp),%rcx 221d32: 48 39 c8 cmp %rcx,%rax 221d35: 0f 85 06 00 00 00 jne 221d41 } } } 221d3b: 48 83 c4 40 add $0x40,%rsp 221d3f: 5d pop %rbp 221d40: c3 ret 221d41: e8 fa c3 01 00 call 23e140 <__stack_chk_fail@plt> 221d46: cc int3 221d47: cc int3 221d48: cc int3 221d49: cc int3 221d4a: cc int3 221d4b: cc int3 221d4c: cc int3 221d4d: cc int3 221d4e: cc int3 221d4f: cc int3 0000000000221d50 : "+ "); } RichString_appendWide(out, CRT_colors[DEFAULT_COLOR], this->value); } ListItem* ListItem_new(const char* value, int key) { 221d50: 55 push %rbp 221d51: 48 89 e5 mov %rsp,%rbp 221d54: 48 83 ec 20 sub $0x20,%rsp 221d58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 221d5c: 89 75 f4 mov %esi,-0xc(%rbp) ListItem* this = AllocThis(ListItem); 221d5f: bf 18 00 00 00 mov $0x18,%edi 221d64: e8 f7 6c 01 00 call 238a60 221d69: 48 89 45 e8 mov %rax,-0x18(%rbp) 221d6d: 48 8b 45 e8 mov -0x18(%rbp),%rax 221d71: 48 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%rcx 221d7b: 48 89 08 mov %rcx,(%rax) this->value = xStrdup(value); 221d7e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 221d82: e8 69 72 01 00 call 238ff0 221d87: 48 89 c1 mov %rax,%rcx 221d8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 221d8e: 48 89 48 08 mov %rcx,0x8(%rax) this->key = key; 221d92: 8b 4d f4 mov -0xc(%rbp),%ecx 221d95: 48 8b 45 e8 mov -0x18(%rbp),%rax 221d99: 89 48 10 mov %ecx,0x10(%rax) this->moving = false; 221d9c: 48 8b 45 e8 mov -0x18(%rbp),%rax 221da0: c6 40 14 00 movb $0x0,0x14(%rax) return this; 221da4: 48 8b 45 e8 mov -0x18(%rbp),%rax 221da8: 48 83 c4 20 add $0x20,%rsp 221dac: 5d pop %rbp 221dad: c3 ret 221dae: 66 90 xchg %ax,%ax 0000000000221db0 : } void ListItem_append(ListItem* this, const char* text) { 221db0: 55 push %rbp 221db1: 48 89 e5 mov %rsp,%rbp 221db4: 48 83 ec 30 sub $0x30,%rsp 221db8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 221dbc: 48 89 75 f0 mov %rsi,-0x10(%rbp) size_t oldLen = strlen(this->value); 221dc0: 48 8b 45 f8 mov -0x8(%rbp),%rax 221dc4: 48 8b 78 08 mov 0x8(%rax),%rdi 221dc8: e8 23 c4 01 00 call 23e1f0 221dcd: 48 89 45 e8 mov %rax,-0x18(%rbp) size_t textLen = strlen(text); 221dd1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221dd5: e8 16 c4 01 00 call 23e1f0 221dda: 48 89 45 e0 mov %rax,-0x20(%rbp) size_t newLen = oldLen + textLen; 221dde: 48 8b 45 e8 mov -0x18(%rbp),%rax 221de2: 48 03 45 e0 add -0x20(%rbp),%rax 221de6: 48 89 45 d8 mov %rax,-0x28(%rbp) this->value = xRealloc(this->value, newLen + 1); 221dea: 48 8b 45 f8 mov -0x8(%rbp),%rax 221dee: 48 8b 78 08 mov 0x8(%rax),%rdi 221df2: 48 8b 75 d8 mov -0x28(%rbp),%rsi 221df6: 48 83 c6 01 add $0x1,%rsi 221dfa: e8 51 6d 01 00 call 238b50 221dff: 48 89 c1 mov %rax,%rcx 221e02: 48 8b 45 f8 mov -0x8(%rbp),%rax 221e06: 48 89 48 08 mov %rcx,0x8(%rax) memcpy(this->value + oldLen, text, textLen); 221e0a: 48 8b 45 f8 mov -0x8(%rbp),%rax 221e0e: 48 8b 78 08 mov 0x8(%rax),%rdi 221e12: 48 03 7d e8 add -0x18(%rbp),%rdi 221e16: 48 8b 75 f0 mov -0x10(%rbp),%rsi 221e1a: 48 8b 55 e0 mov -0x20(%rbp),%rdx 221e1e: e8 6d c4 01 00 call 23e290 this->value[newLen] = '\0'; 221e23: 48 8b 45 f8 mov -0x8(%rbp),%rax 221e27: 48 8b 40 08 mov 0x8(%rax),%rax 221e2b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 221e2f: c6 04 08 00 movb $0x0,(%rax,%rcx,1) } 221e33: 48 83 c4 30 add $0x30,%rsp 221e37: 5d pop %rbp 221e38: c3 ret 221e39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000221e40 : static void ListItem_display(const Object* cast, RichString* out) { 221e40: 55 push %rbp 221e41: 48 89 e5 mov %rsp,%rbp 221e44: 48 83 ec 20 sub $0x20,%rsp 221e48: 48 89 7d f8 mov %rdi,-0x8(%rbp) 221e4c: 48 89 75 f0 mov %rsi,-0x10(%rbp) const ListItem* const this = (const ListItem*)cast; 221e50: 48 8b 45 f8 mov -0x8(%rbp),%rax 221e54: 48 89 45 e8 mov %rax,-0x18(%rbp) if (this->moving) { 221e58: 48 8b 45 e8 mov -0x18(%rbp),%rax 221e5c: f6 40 14 01 testb $0x1,0x14(%rax) 221e60: 0f 84 36 00 00 00 je 221e9c RichString_writeWide(out, CRT_colors[DEFAULT_COLOR], 221e66: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221e6a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 221e72: 8b 70 04 mov 0x4(%rax),%esi CRT_utf8 ? "↕ " : 221e75: 8a 0c 25 60 1d 24 00 mov 0x241d60,%cl 221e7c: 48 ba 53 4f 20 00 00 00 00 00 movabs $0x204f53,%rdx 221e86: 48 b8 ca 39 20 00 00 00 00 00 movabs $0x2039ca,%rax 221e90: f6 c1 01 test $0x1,%cl 221e93: 48 0f 45 d0 cmovne %rax,%rdx RichString_writeWide(out, CRT_colors[DEFAULT_COLOR], 221e97: e8 94 06 01 00 call 232530 RichString_appendWide(out, CRT_colors[DEFAULT_COLOR], this->value); 221e9c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221ea0: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 221ea8: 8b 70 04 mov 0x4(%rax),%esi 221eab: 48 8b 45 e8 mov -0x18(%rbp),%rax 221eaf: 48 8b 50 08 mov 0x8(%rax),%rdx 221eb3: e8 18 04 01 00 call 2322d0 } 221eb8: 48 83 c4 20 add $0x20,%rsp 221ebc: 5d pop %rbp 221ebd: c3 ret 221ebe: 66 90 xchg %ax,%ax 0000000000221ec0 : static void ListItem_delete(Object* cast) { 221ec0: 55 push %rbp 221ec1: 48 89 e5 mov %rsp,%rbp 221ec4: 48 83 ec 10 sub $0x10,%rsp 221ec8: 48 89 7d f8 mov %rdi,-0x8(%rbp) ListItem* this = (ListItem*)cast; 221ecc: 48 8b 45 f8 mov -0x8(%rbp),%rax 221ed0: 48 89 45 f0 mov %rax,-0x10(%rbp) free(this->value); 221ed4: 48 8b 45 f0 mov -0x10(%rbp),%rax 221ed8: 48 8b 78 08 mov 0x8(%rax),%rdi 221edc: e8 7f c2 01 00 call 23e160 free(this); 221ee1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 221ee5: e8 76 c2 01 00 call 23e160 } 221eea: 48 83 c4 10 add $0x10,%rsp 221eee: 5d pop %rbp 221eef: c3 ret 0000000000221ef0 : static int ListItem_compare(const void* cast1, const void* cast2) { 221ef0: 55 push %rbp 221ef1: 48 89 e5 mov %rsp,%rbp 221ef4: 48 83 ec 20 sub $0x20,%rsp 221ef8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 221efc: 48 89 75 f0 mov %rsi,-0x10(%rbp) const ListItem* obj1 = (const ListItem*) cast1; 221f00: 48 8b 45 f8 mov -0x8(%rbp),%rax 221f04: 48 89 45 e8 mov %rax,-0x18(%rbp) const ListItem* obj2 = (const ListItem*) cast2; 221f08: 48 8b 45 f0 mov -0x10(%rbp),%rax 221f0c: 48 89 45 e0 mov %rax,-0x20(%rbp) return strcmp(obj1->value, obj2->value); 221f10: 48 8b 45 e8 mov -0x18(%rbp),%rax 221f14: 48 8b 78 08 mov 0x8(%rax),%rdi 221f18: 48 8b 45 e0 mov -0x20(%rbp),%rax 221f1c: 48 8b 70 08 mov 0x8(%rax),%rsi 221f20: e8 bb c2 01 00 call 23e1e0 221f25: 48 83 c4 20 add $0x20,%rsp 221f29: 5d pop %rbp 221f2a: c3 ret 221f2b: cc int3 221f2c: cc int3 221f2d: cc int3 221f2e: cc int3 221f2f: cc int3 0000000000221f30 : } xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.2f/%.2f/%.2f", this->values[0], this->values[1], this->values[2]); } static void LoadAverageMeter_display(const Object* cast, RichString* out) { 221f30: 55 push %rbp 221f31: 48 89 e5 mov %rsp,%rbp 221f34: 48 83 ec 40 sub $0x40,%rsp 221f38: 48 8b 05 f1 08 02 00 mov 0x208f1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 221f3f: 48 89 45 f8 mov %rax,-0x8(%rbp) 221f43: 48 89 7d d8 mov %rdi,-0x28(%rbp) 221f47: 48 89 75 d0 mov %rsi,-0x30(%rbp) const Meter* this = (const Meter*)cast; 221f4b: 48 8b 45 d8 mov -0x28(%rbp),%rax 221f4f: 48 89 45 c8 mov %rax,-0x38(%rbp) char buffer[20]; int len; len = xSnprintf(buffer, sizeof(buffer), "%.2f ", this->values[0]); 221f53: 48 8d 7d e0 lea -0x20(%rbp),%rdi 221f57: 48 8b 45 c8 mov -0x38(%rbp),%rax 221f5b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 221f62: f2 0f 10 00 movsd (%rax),%xmm0 221f66: be 14 00 00 00 mov $0x14,%esi 221f6b: 48 ba b9 4d 20 00 00 00 00 00 movabs $0x204db9,%rdx 221f75: b0 01 mov $0x1,%al 221f77: e8 74 75 01 00 call 2394f0 221f7c: 89 45 c4 mov %eax,-0x3c(%rbp) RichString_appendnAscii(out, CRT_colors[LOAD_AVERAGE_ONE], buffer, len); 221f7f: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221f83: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 221f8b: 8b b0 f4 00 00 00 mov 0xf4(%rax),%esi 221f91: 48 8d 55 e0 lea -0x20(%rbp),%rdx 221f95: 8b 4d c4 mov -0x3c(%rbp),%ecx 221f98: e8 83 07 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%.2f ", this->values[1]); 221f9d: 48 8d 7d e0 lea -0x20(%rbp),%rdi 221fa1: 48 8b 45 c8 mov -0x38(%rbp),%rax 221fa5: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 221fac: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 221fb1: be 14 00 00 00 mov $0x14,%esi 221fb6: 48 ba b9 4d 20 00 00 00 00 00 movabs $0x204db9,%rdx 221fc0: b0 01 mov $0x1,%al 221fc2: e8 29 75 01 00 call 2394f0 221fc7: 89 45 c4 mov %eax,-0x3c(%rbp) RichString_appendnAscii(out, CRT_colors[LOAD_AVERAGE_FIVE], buffer, len); 221fca: 48 8b 7d d0 mov -0x30(%rbp),%rdi 221fce: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 221fd6: 8b b0 f0 00 00 00 mov 0xf0(%rax),%esi 221fdc: 48 8d 55 e0 lea -0x20(%rbp),%rdx 221fe0: 8b 4d c4 mov -0x3c(%rbp),%ecx 221fe3: e8 38 07 01 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%.2f ", this->values[2]); 221fe8: 48 8d 7d e0 lea -0x20(%rbp),%rdi 221fec: 48 8b 45 c8 mov -0x38(%rbp),%rax 221ff0: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 221ff7: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 221ffc: be 14 00 00 00 mov $0x14,%esi 222001: 48 ba b9 4d 20 00 00 00 00 00 movabs $0x204db9,%rdx 22200b: b0 01 mov $0x1,%al 22200d: e8 de 74 01 00 call 2394f0 222012: 89 45 c4 mov %eax,-0x3c(%rbp) RichString_appendnAscii(out, CRT_colors[LOAD_AVERAGE_FIFTEEN], buffer, len); 222015: 48 8b 7d d0 mov -0x30(%rbp),%rdi 222019: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 222021: 8b b0 ec 00 00 00 mov 0xec(%rax),%esi 222027: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22202b: 8b 4d c4 mov -0x3c(%rbp),%ecx 22202e: e8 ed 06 01 00 call 232720 222033: 48 8b 05 f6 07 02 00 mov 0x207f6(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22203a: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22203e: 48 39 c8 cmp %rcx,%rax 222041: 0f 85 06 00 00 00 jne 22204d } 222047: 48 83 c4 40 add $0x40,%rsp 22204b: 5d pop %rbp 22204c: c3 ret 22204d: e8 ee c0 01 00 call 23e140 <__stack_chk_fail@plt> 222052: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22205c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000222060 : static void LoadAverageMeter_updateValues(Meter* this) { 222060: 55 push %rbp 222061: 48 89 e5 mov %rsp,%rbp 222064: 48 83 ec 10 sub $0x10,%rsp 222068: 48 89 7d f8 mov %rdi,-0x8(%rbp) Platform_getLoadAverage(&this->values[0], &this->values[1], &this->values[2]); 22206c: 48 8b 45 f8 mov -0x8(%rbp),%rax 222070: 48 8b b8 48 01 00 00 mov 0x148(%rax),%rdi 222077: 48 8b 45 f8 mov -0x8(%rbp),%rax 22207b: 48 8b b0 48 01 00 00 mov 0x148(%rax),%rsi 222082: 48 83 c6 08 add $0x8,%rsi 222086: 48 8b 45 f8 mov -0x8(%rbp),%rax 22208a: 48 8b 90 48 01 00 00 mov 0x148(%rax),%rdx 222091: 48 83 c2 10 add $0x10,%rdx 222095: e8 f6 78 01 00 call 239990 this->curItems = 1; 22209a: 48 8b 45 f8 mov -0x8(%rbp),%rax 22209e: c6 40 38 01 movb $0x1,0x38(%rax) if (this->values[0] < 1.0) { 2220a2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2220a6: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2220ad: f2 0f 10 05 7b 52 fe ff movsd -0x1ad85(%rip),%xmm0 # 207330 2220b5: 66 0f 2e 00 ucomisd (%rax),%xmm0 2220b9: 0f 86 2b 00 00 00 jbe 2220ea this->curAttributes = OK_attributes; 2220bf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2220c3: 48 b9 08 90 20 00 00 00 00 00 movabs $0x209008,%rcx 2220cd: 48 89 48 40 mov %rcx,0x40(%rax) this->total = 1.0; 2220d1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2220d5: f2 0f 10 05 53 52 fe ff movsd -0x1adad(%rip),%xmm0 # 207330 2220dd: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else if (this->values[0] < this->pl->activeCPUs) { 2220e5: e9 8a 00 00 00 jmp 222174 2220ea: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2220ee: 48 8b 41 30 mov 0x30(%rcx),%rax 2220f2: 48 8b 89 48 01 00 00 mov 0x148(%rcx),%rcx 2220f9: f2 0f 10 09 movsd (%rcx),%xmm1 2220fd: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 222103: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 222108: 66 0f 2e c1 ucomisd %xmm1,%xmm0 22210c: 0f 86 30 00 00 00 jbe 222142 this->curAttributes = Medium_attributes; 222112: 48 8b 45 f8 mov -0x8(%rbp),%rax 222116: 48 c7 40 40 0c 90 20 00 movq $0x20900c,0x40(%rax) this->total = this->pl->activeCPUs; 22211e: 48 8b 45 f8 mov -0x8(%rbp),%rax 222122: 48 8b 40 30 mov 0x30(%rax),%rax 222126: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 22212c: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 222131: 48 8b 45 f8 mov -0x8(%rbp),%rax 222135: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else { 22213d: e9 2d 00 00 00 jmp 22216f this->curAttributes = High_attributes; 222142: 48 8b 45 f8 mov -0x8(%rbp),%rax 222146: 48 c7 40 40 10 90 20 00 movq $0x209010,0x40(%rax) this->total = 2 * this->pl->activeCPUs; 22214e: 48 8b 45 f8 mov -0x8(%rbp),%rax 222152: 48 8b 40 30 mov 0x30(%rax),%rax 222156: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 22215c: 01 c0 add %eax,%eax 22215e: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 222163: 48 8b 45 f8 mov -0x8(%rbp),%rax 222167: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) 22216f: e9 00 00 00 00 jmp 222174 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.2f/%.2f/%.2f", this->values[0], this->values[1], this->values[2]); 222174: 48 8b 7d f8 mov -0x8(%rbp),%rdi 222178: 48 83 c7 48 add $0x48,%rdi 22217c: 48 8b 45 f8 mov -0x8(%rbp),%rax 222180: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 222187: f2 0f 10 00 movsd (%rax),%xmm0 22218b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22218f: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 222196: f2 0f 10 48 08 movsd 0x8(%rax),%xmm1 22219b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22219f: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2221a6: f2 0f 10 50 10 movsd 0x10(%rax),%xmm2 2221ab: be 00 01 00 00 mov $0x100,%esi 2221b0: 48 ba 1e 32 20 00 00 00 00 00 movabs $0x20321e,%rdx 2221ba: b0 03 mov $0x3,%al 2221bc: e8 2f 73 01 00 call 2394f0 } 2221c1: 48 83 c4 10 add $0x10,%rsp 2221c5: 5d pop %rbp 2221c6: c3 ret 2221c7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 00000000002221d0 : } xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.2f", this->values[0]); } static void LoadMeter_display(const Object* cast, RichString* out) { 2221d0: 55 push %rbp 2221d1: 48 89 e5 mov %rsp,%rbp 2221d4: 48 83 ec 40 sub $0x40,%rsp 2221d8: 48 8b 05 51 06 02 00 mov 0x20651(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2221df: 48 89 45 f8 mov %rax,-0x8(%rbp) 2221e3: 48 89 7d d8 mov %rdi,-0x28(%rbp) 2221e7: 48 89 75 d0 mov %rsi,-0x30(%rbp) const Meter* this = (const Meter*)cast; 2221eb: 48 8b 45 d8 mov -0x28(%rbp),%rax 2221ef: 48 89 45 c8 mov %rax,-0x38(%rbp) char buffer[20]; int len; len = xSnprintf(buffer, sizeof(buffer), "%.2f ", this->values[0]); 2221f3: 48 8d 7d e0 lea -0x20(%rbp),%rdi 2221f7: 48 8b 45 c8 mov -0x38(%rbp),%rax 2221fb: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 222202: f2 0f 10 00 movsd (%rax),%xmm0 222206: be 14 00 00 00 mov $0x14,%esi 22220b: 48 ba b9 4d 20 00 00 00 00 00 movabs $0x204db9,%rdx 222215: b0 01 mov $0x1,%al 222217: e8 d4 72 01 00 call 2394f0 22221c: 89 45 c4 mov %eax,-0x3c(%rbp) RichString_appendnAscii(out, CRT_colors[LOAD], buffer, len); 22221f: 48 8b 7d d0 mov -0x30(%rbp),%rdi 222223: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22222b: 8b b0 e8 00 00 00 mov 0xe8(%rax),%esi 222231: 48 8d 55 e0 lea -0x20(%rbp),%rdx 222235: 8b 4d c4 mov -0x3c(%rbp),%ecx 222238: e8 e3 04 01 00 call 232720 22223d: 48 8b 05 ec 05 02 00 mov 0x205ec(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 222244: 48 8b 4d f8 mov -0x8(%rbp),%rcx 222248: 48 39 c8 cmp %rcx,%rax 22224b: 0f 85 06 00 00 00 jne 222257 } 222251: 48 83 c4 40 add $0x40,%rsp 222255: 5d pop %rbp 222256: c3 ret 222257: e8 e4 be 01 00 call 23e140 <__stack_chk_fail@plt> 22225c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000222260 : static void LoadMeter_updateValues(Meter* this) { 222260: 55 push %rbp 222261: 48 89 e5 mov %rsp,%rbp 222264: 48 83 ec 20 sub $0x20,%rsp 222268: 48 8b 05 c1 05 02 00 mov 0x205c1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22226f: 48 89 45 f8 mov %rax,-0x8(%rbp) 222273: 48 89 7d e0 mov %rdi,-0x20(%rbp) Platform_getLoadAverage(&this->values[0], &five, &fifteen); 222277: 48 8b 45 e0 mov -0x20(%rbp),%rax 22227b: 48 8b b8 48 01 00 00 mov 0x148(%rax),%rdi 222282: 48 8d 75 f0 lea -0x10(%rbp),%rsi 222286: 48 8d 55 e8 lea -0x18(%rbp),%rdx 22228a: e8 01 77 01 00 call 239990 if (this->values[0] < 1.0) { 22228f: 48 8b 45 e0 mov -0x20(%rbp),%rax 222293: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 22229a: f2 0f 10 05 8e 50 fe ff movsd -0x1af72(%rip),%xmm0 # 207330 2222a2: 66 0f 2e 00 ucomisd (%rax),%xmm0 2222a6: 0f 86 2b 00 00 00 jbe 2222d7 this->curAttributes = OK_attributes; 2222ac: 48 8b 45 e0 mov -0x20(%rbp),%rax 2222b0: 48 b9 08 90 20 00 00 00 00 00 movabs $0x209008,%rcx 2222ba: 48 89 48 40 mov %rcx,0x40(%rax) this->total = 1.0; 2222be: 48 8b 45 e0 mov -0x20(%rbp),%rax 2222c2: f2 0f 10 05 66 50 fe ff movsd -0x1af9a(%rip),%xmm0 # 207330 2222ca: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else if (this->values[0] < this->pl->activeCPUs) { 2222d2: e9 8a 00 00 00 jmp 222361 2222d7: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2222db: 48 8b 41 30 mov 0x30(%rcx),%rax 2222df: 48 8b 89 48 01 00 00 mov 0x148(%rcx),%rcx 2222e6: f2 0f 10 09 movsd (%rcx),%xmm1 2222ea: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 2222f0: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 2222f5: 66 0f 2e c1 ucomisd %xmm1,%xmm0 2222f9: 0f 86 30 00 00 00 jbe 22232f this->curAttributes = Medium_attributes; 2222ff: 48 8b 45 e0 mov -0x20(%rbp),%rax 222303: 48 c7 40 40 0c 90 20 00 movq $0x20900c,0x40(%rax) this->total = this->pl->activeCPUs; 22230b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22230f: 48 8b 40 30 mov 0x30(%rax),%rax 222313: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 222319: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 22231e: 48 8b 45 e0 mov -0x20(%rbp),%rax 222322: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } else { 22232a: e9 2d 00 00 00 jmp 22235c this->curAttributes = High_attributes; 22232f: 48 8b 45 e0 mov -0x20(%rbp),%rax 222333: 48 c7 40 40 10 90 20 00 movq $0x209010,0x40(%rax) this->total = 2 * this->pl->activeCPUs; 22233b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22233f: 48 8b 40 30 mov 0x30(%rax),%rax 222343: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 222349: 01 c0 add %eax,%eax 22234b: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 222350: 48 8b 45 e0 mov -0x20(%rbp),%rax 222354: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) 22235c: e9 00 00 00 00 jmp 222361 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.2f", this->values[0]); 222361: 48 8b 7d e0 mov -0x20(%rbp),%rdi 222365: 48 83 c7 48 add $0x48,%rdi 222369: 48 8b 45 e0 mov -0x20(%rbp),%rax 22236d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 222374: f2 0f 10 00 movsd (%rax),%xmm0 222378: be 00 01 00 00 mov $0x100,%esi 22237d: 48 ba a4 35 20 00 00 00 00 00 movabs $0x2035a4,%rdx 222387: b0 01 mov $0x1,%al 222389: e8 62 71 01 00 call 2394f0 22238e: 48 8b 05 9b 04 02 00 mov 0x2049b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 222395: 48 8b 4d f8 mov -0x8(%rbp),%rcx 222399: 48 39 c8 cmp %rcx,%rax 22239c: 0f 85 06 00 00 00 jne 2223a8 } 2223a2: 48 83 c4 20 add $0x20,%rsp 2223a6: 5d pop %rbp 2223a7: c3 ret 2223a8: e8 93 bd 01 00 call 23e140 <__stack_chk_fail@plt> 2223ad: cc int3 2223ae: cc int3 2223af: cc int3 00000000002223b0 : static const char* const MainFunctions[] = {"Help ", "Setup ", "Search", "Filter", "Tree ", "SortBy", "Nice -", "Nice +", "Kill ", "Quit ", NULL}; static const char* const MainFunctions_ro[] = {"Help ", "Setup ", "Search", "Filter", "Tree ", "SortBy", " ", " ", " ", "Quit ", NULL}; void MainPanel_updateTreeFunctions(MainPanel* this, bool mode) { 2223b0: 55 push %rbp 2223b1: 48 89 e5 mov %rsp,%rbp 2223b4: 48 83 ec 20 sub $0x20,%rsp 2223b8: 40 88 f0 mov %sil,%al 2223bb: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2223bf: 24 01 and $0x1,%al 2223c1: 88 45 f7 mov %al,-0x9(%rbp) FunctionBar* bar = MainPanel_getFunctionBar(this); 2223c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2223c8: 48 8b 40 50 mov 0x50(%rax),%rax 2223cc: 48 89 45 e8 mov %rax,-0x18(%rbp) FunctionBar_setLabel(bar, KEY_F(5), mode ? "List " : "Tree "); 2223d0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2223d4: 8a 4d f7 mov -0x9(%rbp),%cl 2223d7: 48 ba 8f 6b 20 00 00 00 00 00 movabs $0x206b8f,%rdx 2223e1: 48 b8 c2 3b 20 00 00 00 00 00 movabs $0x203bc2,%rax 2223eb: f6 c1 01 test $0x1,%cl 2223ee: 48 0f 45 d0 cmovne %rax,%rdx 2223f2: be 0d 01 00 00 mov $0x10d,%esi 2223f7: e8 34 c2 ff ff call 21e630 } 2223fc: 48 83 c4 20 add $0x20,%rsp 222400: 5d pop %rbp 222401: c3 ret 222402: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22240c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000222410 : Panel_setSelectionColor(super, PANEL_SELECTION_FOCUS); } return result; } int MainPanel_selectedPid(MainPanel* this) { 222410: 55 push %rbp 222411: 48 89 e5 mov %rsp,%rbp 222414: 48 83 ec 20 sub $0x20,%rsp 222418: 48 89 7d f0 mov %rdi,-0x10(%rbp) const Process* p = (const Process*) Panel_getSelected((Panel*)this); 22241c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 222420: e8 4b 5c 00 00 call 228070 222425: 48 89 45 e8 mov %rax,-0x18(%rbp) if (p) { 222429: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 22242e: 0f 84 0f 00 00 00 je 222443 return p->pid; 222434: 48 8b 45 e8 mov -0x18(%rbp),%rax 222438: 8b 40 18 mov 0x18(%rax),%eax 22243b: 89 45 fc mov %eax,-0x4(%rbp) 22243e: e9 07 00 00 00 jmp 22244a } return -1; 222443: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } 22244a: 8b 45 fc mov -0x4(%rbp),%eax 22244d: 48 83 c4 20 add $0x20,%rsp 222451: 5d pop %rbp 222452: c3 ret 222453: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22245d: 0f 1f 00 nopl (%rax) 0000000000222460 : bool MainPanel_foreachProcess(MainPanel* this, MainPanel_ForeachProcessFn fn, Arg arg, bool* wasAnyTagged) { 222460: 55 push %rbp 222461: 48 89 e5 mov %rsp,%rbp 222464: 48 83 ec 50 sub $0x50,%rsp 222468: 48 89 55 f8 mov %rdx,-0x8(%rbp) 22246c: 48 89 7d f0 mov %rdi,-0x10(%rbp) 222470: 48 89 75 e8 mov %rsi,-0x18(%rbp) 222474: 48 89 4d e0 mov %rcx,-0x20(%rbp) Panel* super = (Panel*) this; 222478: 48 8b 45 f0 mov -0x10(%rbp),%rax 22247c: 48 89 45 d8 mov %rax,-0x28(%rbp) bool ok = true; 222480: c6 45 d7 01 movb $0x1,-0x29(%rbp) bool anyTagged = false; 222484: c6 45 d6 00 movb $0x0,-0x2a(%rbp) for (int i = 0; i < Panel_size(super); i++) { 222488: c7 45 d0 00 00 00 00 movl $0x0,-0x30(%rbp) 22248f: 8b 45 d0 mov -0x30(%rbp),%eax 222492: 89 45 bc mov %eax,-0x44(%rbp) 222495: 48 8b 7d d8 mov -0x28(%rbp),%rdi 222499: e8 02 5d 00 00 call 2281a0 22249e: 89 c1 mov %eax,%ecx 2224a0: 8b 45 bc mov -0x44(%rbp),%eax 2224a3: 39 c8 cmp %ecx,%eax 2224a5: 0f 8d 69 00 00 00 jge 222514 Process* p = (Process*) Panel_get(super, i); 2224ab: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2224af: 8b 75 d0 mov -0x30(%rbp),%esi 2224b2: e8 c9 5a 00 00 call 227f80 2224b7: 48 89 45 c8 mov %rax,-0x38(%rbp) if (p->tag) { 2224bb: 48 8b 45 c8 mov -0x38(%rbp),%rax 2224bf: f6 80 ed 00 00 00 01 testb $0x1,0xed(%rax) 2224c6: 0f 84 35 00 00 00 je 222501 ok = fn(p, arg) && ok; 2224cc: 48 8b 45 e8 mov -0x18(%rbp),%rax 2224d0: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2224d4: 48 8b 75 f8 mov -0x8(%rbp),%rsi 2224d8: ff d0 call *%rax 2224da: 88 c1 mov %al,%cl 2224dc: 31 c0 xor %eax,%eax 2224de: f6 c1 01 test $0x1,%cl 2224e1: 88 45 bb mov %al,-0x45(%rbp) 2224e4: 0f 85 05 00 00 00 jne 2224ef 2224ea: e9 06 00 00 00 jmp 2224f5 2224ef: 8a 45 d7 mov -0x29(%rbp),%al 2224f2: 88 45 bb mov %al,-0x45(%rbp) 2224f5: 8a 45 bb mov -0x45(%rbp),%al 2224f8: 24 01 and $0x1,%al 2224fa: 88 45 d7 mov %al,-0x29(%rbp) anyTagged = true; 2224fd: c6 45 d6 01 movb $0x1,-0x2a(%rbp) } } 222501: e9 00 00 00 00 jmp 222506 for (int i = 0; i < Panel_size(super); i++) { 222506: 8b 45 d0 mov -0x30(%rbp),%eax 222509: 83 c0 01 add $0x1,%eax 22250c: 89 45 d0 mov %eax,-0x30(%rbp) 22250f: e9 7b ff ff ff jmp 22248f if (!anyTagged) { 222514: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 222518: 0f 85 45 00 00 00 jne 222563 Process* p = (Process*) Panel_getSelected(super); 22251e: 48 8b 7d d8 mov -0x28(%rbp),%rdi 222522: e8 49 5b 00 00 call 228070 222527: 48 89 45 c0 mov %rax,-0x40(%rbp) if (p) { 22252b: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 222530: 0f 84 28 00 00 00 je 22255e ok &= fn(p, arg); 222536: 48 8b 45 e8 mov -0x18(%rbp),%rax 22253a: 48 8b 7d c0 mov -0x40(%rbp),%rdi 22253e: 48 8b 75 f8 mov -0x8(%rbp),%rsi 222542: ff d0 call *%rax 222544: 24 01 and $0x1,%al 222546: 0f b6 c8 movzbl %al,%ecx 222549: 8a 45 d7 mov -0x29(%rbp),%al 22254c: 24 01 and $0x1,%al 22254e: 0f b6 c0 movzbl %al,%eax 222551: 21 c8 and %ecx,%eax 222553: 83 f8 00 cmp $0x0,%eax 222556: 0f 95 c0 setne %al 222559: 24 01 and $0x1,%al 22255b: 88 45 d7 mov %al,-0x29(%rbp) } } 22255e: e9 00 00 00 00 jmp 222563 if (wasAnyTagged) 222563: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 222568: 0f 84 0c 00 00 00 je 22257a *wasAnyTagged = anyTagged; 22256e: 8a 4d d6 mov -0x2a(%rbp),%cl 222571: 48 8b 45 e0 mov -0x20(%rbp),%rax 222575: 80 e1 01 and $0x1,%cl 222578: 88 08 mov %cl,(%rax) return ok; 22257a: 8a 45 d7 mov -0x29(%rbp),%al 22257d: 24 01 and $0x1,%al 22257f: 0f b6 c0 movzbl %al,%eax 222582: 48 83 c4 50 add $0x50,%rsp 222586: 5d pop %rbp 222587: c3 ret 222588: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000222590 : void MainPanel_setState(MainPanel* this, State* state) { this->state = state; } void MainPanel_delete(Object* object) { 222590: 55 push %rbp 222591: 48 89 e5 mov %rsp,%rbp 222594: 48 83 ec 20 sub $0x20,%rsp 222598: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 22259c: 48 8b 45 f8 mov -0x8(%rbp),%rax 2225a0: 48 89 45 f0 mov %rax,-0x10(%rbp) MainPanel* this = (MainPanel*) object; 2225a4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2225a8: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 2225ac: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2225b0: e8 cb 57 00 00 call 227d80 IncSet_delete(this->inc); 2225b5: 48 8b 45 e8 mov -0x18(%rbp),%rax 2225b9: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2225c0: e8 6b e4 ff ff call 220a30 free(this->keys); 2225c5: 48 8b 45 e8 mov -0x18(%rbp),%rax 2225c9: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 2225d0: e8 8b bb 01 00 call 23e160 free(this); 2225d5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2225d9: e8 82 bb 01 00 call 23e160 } 2225de: 48 83 c4 20 add $0x20,%rsp 2225e2: 5d pop %rbp 2225e3: c3 ret 2225e4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2225ee: 66 90 xchg %ax,%ax 00000000002225f0 : static HandlerResult MainPanel_eventHandler(Panel* super, int ch) { 2225f0: 55 push %rbp 2225f1: 48 89 e5 mov %rsp,%rbp 2225f4: 48 83 ec 50 sub $0x50,%rsp 2225f8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 2225fc: 89 75 ec mov %esi,-0x14(%rbp) MainPanel* this = (MainPanel*) super; 2225ff: 48 8b 45 f0 mov -0x10(%rbp),%rax 222603: 48 89 45 e0 mov %rax,-0x20(%rbp) HandlerResult result = IGNORED; 222607: c7 45 dc 02 00 00 00 movl $0x2,-0x24(%rbp) Htop_Reaction reaction = HTOP_OK; 22260e: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) if (ch == KEY_RESIZE) 222615: 81 7d ec 9a 01 00 00 cmpl $0x19a,-0x14(%rbp) 22261c: 0f 85 0c 00 00 00 jne 22262e return IGNORED; 222622: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) 222629: e9 33 04 00 00 jmp 222a61 bool needReset = ch != ERR; 22262e: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 222632: 0f 95 c0 setne %al 222635: 24 01 and $0x1,%al 222637: 88 45 d7 mov %al,-0x29(%rbp) if (!(ch != KEY_MOUSE || this->state->settings->enableMouse)) 22263a: 81 7d ec 99 01 00 00 cmpl $0x199,-0x14(%rbp) 222641: 0f 85 1c 00 00 00 jne 222663 222647: 48 8b 45 e0 mov -0x20(%rbp),%rax 22264b: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222652: 48 8b 00 mov (%rax),%rax 222655: f6 40 62 01 testb $0x1,0x62(%rax) 222659: 0f 85 04 00 00 00 jne 222663 needReset = false; 22265f: c6 45 d7 00 movb $0x0,-0x29(%rbp) if (needReset) 222663: f6 45 d7 01 testb $0x1,-0x29(%rbp) 222667: 0f 84 0f 00 00 00 je 22267c this->state->hideProcessSelection = false; 22266d: 48 8b 45 e0 mov -0x20(%rbp),%rax 222671: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222678: c6 40 29 00 movb $0x0,0x29(%rax) if (EVENT_IS_HEADER_CLICK(ch)) { 22267c: 81 7d ec f0 d8 ff ff cmpl $0xffffd8f0,-0x14(%rbp) 222683: 0f 8c f8 00 00 00 jl 222781 222689: 81 7d ec d8 dc ff ff cmpl $0xffffdcd8,-0x14(%rbp) 222690: 0f 8f eb 00 00 00 jg 222781 int x = EVENT_HEADER_CLICK_GET_X(ch); 222696: 8b 45 ec mov -0x14(%rbp),%eax 222699: 05 10 27 00 00 add $0x2710,%eax 22269e: 89 45 d0 mov %eax,-0x30(%rbp) const ProcessList* pl = this->state->pl; 2226a1: 48 8b 45 e0 mov -0x20(%rbp),%rax 2226a5: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2226ac: 48 8b 40 10 mov 0x10(%rax),%rax 2226b0: 48 89 45 c8 mov %rax,-0x38(%rbp) Settings* settings = this->state->settings; 2226b4: 48 8b 45 e0 mov -0x20(%rbp),%rax 2226b8: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2226bf: 48 8b 00 mov (%rax),%rax 2226c2: 48 89 45 c0 mov %rax,-0x40(%rbp) int hx = super->scrollH + x + 1; 2226c6: 48 8b 45 f0 mov -0x10(%rbp),%rax 2226ca: 8b 40 3c mov 0x3c(%rax),%eax 2226cd: 03 45 d0 add -0x30(%rbp),%eax 2226d0: 83 c0 01 add $0x1,%eax 2226d3: 89 45 bc mov %eax,-0x44(%rbp) ProcessField field = ProcessList_keyAt(pl, hx); 2226d6: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2226da: 8b 75 bc mov -0x44(%rbp),%esi 2226dd: e8 ce d9 00 00 call 2300b0 2226e2: 89 45 b8 mov %eax,-0x48(%rbp) if (settings->treeView && settings->treeViewAlwaysByPID) { 2226e5: 48 8b 45 c0 mov -0x40(%rbp),%rax 2226e9: f6 40 4a 01 testb $0x1,0x4a(%rax) 2226ed: 0f 84 38 00 00 00 je 22272b 2226f3: 48 8b 45 c0 mov -0x40(%rbp),%rax 2226f7: f6 40 4b 01 testb $0x1,0x4b(%rax) 2226fb: 0f 84 2a 00 00 00 je 22272b settings->treeView = false; 222701: 48 8b 45 c0 mov -0x40(%rbp),%rax 222705: c6 40 4a 00 movb $0x0,0x4a(%rax) settings->direction = 1; 222709: 48 8b 45 c0 mov -0x40(%rbp),%rax 22270d: c7 40 34 01 00 00 00 movl $0x1,0x34(%rax) reaction |= Action_setSortKey(settings, field); 222714: 48 8b 7d c0 mov -0x40(%rbp),%rdi 222718: 8b 75 b8 mov -0x48(%rbp),%esi 22271b: e8 f0 18 ff ff call 214010 222720: 0b 45 d8 or -0x28(%rbp),%eax 222723: 89 45 d8 mov %eax,-0x28(%rbp) } else if (field == Settings_getActiveSortKey(settings)) { 222726: e9 41 00 00 00 jmp 22276c 22272b: 8b 45 b8 mov -0x48(%rbp),%eax 22272e: 89 45 b0 mov %eax,-0x50(%rbp) 222731: 48 8b 7d c0 mov -0x40(%rbp),%rdi 222735: e8 16 05 00 00 call 222c50 22273a: 89 c1 mov %eax,%ecx 22273c: 8b 45 b0 mov -0x50(%rbp),%eax 22273f: 39 c8 cmp %ecx,%eax 222741: 0f 85 0e 00 00 00 jne 222755 Settings_invertSortOrder(settings); 222747: 48 8b 7d c0 mov -0x40(%rbp),%rdi 22274b: e8 e0 38 01 00 call 236030 } else { 222750: e9 12 00 00 00 jmp 222767 reaction |= Action_setSortKey(settings, field); 222755: 48 8b 7d c0 mov -0x40(%rbp),%rdi 222759: 8b 75 b8 mov -0x48(%rbp),%esi 22275c: e8 af 18 ff ff call 214010 222761: 0b 45 d8 or -0x28(%rbp),%eax 222764: 89 45 d8 mov %eax,-0x28(%rbp) 222767: e9 00 00 00 00 jmp 22276c reaction |= HTOP_RECALCULATE | HTOP_REDRAW_BAR | HTOP_SAVE_SETTINGS; 22276c: 8b 45 d8 mov -0x28(%rbp),%eax 22276f: 83 c8 27 or $0x27,%eax 222772: 89 45 d8 mov %eax,-0x28(%rbp) result = HANDLED; 222775: c7 45 dc 01 00 00 00 movl $0x1,-0x24(%rbp) } else if (ch != ERR && this->inc->active) { 22277c: e9 db 01 00 00 jmp 22295c 222781: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 222785: 0f 84 be 00 00 00 je 222849 22278b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22278f: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 222796: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 22279e: 0f 84 a5 00 00 00 je 222849 bool filterChanged = IncSet_handleKey(this->inc, ch, super, MainPanel_getValue, NULL); 2227a4: 48 8b 45 e0 mov -0x20(%rbp),%rax 2227a8: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2227af: 8b 75 ec mov -0x14(%rbp),%esi 2227b2: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2227b6: 48 b9 b0 2c 22 00 00 00 00 00 movabs $0x222cb0,%rcx 2227c0: 31 c0 xor %eax,%eax 2227c2: 41 89 c0 mov %eax,%r8d 2227c5: e8 c6 e2 ff ff call 220a90 2227ca: 24 01 and $0x1,%al 2227cc: 88 45 b7 mov %al,-0x49(%rbp) if (filterChanged) { 2227cf: f6 45 b7 01 testb $0x1,-0x49(%rbp) 2227d3: 0f 84 2d 00 00 00 je 222806 this->state->pl->incFilter = IncSet_filter(this->inc); 2227d9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2227dd: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 2227e4: e8 37 05 00 00 call 222d20 2227e9: 48 89 c1 mov %rax,%rcx 2227ec: 48 8b 45 e0 mov -0x20(%rbp),%rax 2227f0: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 2227f7: 48 8b 40 10 mov 0x10(%rax),%rax 2227fb: 48 89 48 78 mov %rcx,0x78(%rax) reaction = HTOP_REFRESH | HTOP_REDRAW_BAR; 2227ff: c7 45 d8 21 00 00 00 movl $0x21,-0x28(%rbp) if (this->inc->found) { 222806: 48 8b 45 e0 mov -0x20(%rbp),%rax 22280a: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 222811: f6 80 91 00 00 00 01 testb $0x1,0x91(%rax) 222818: 0f 84 1f 00 00 00 je 22283d reaction |= Action_follow(this->state); 22281e: 48 8b 45 e0 mov -0x20(%rbp),%rax 222822: 48 8b b8 d8 26 00 00 mov 0x26d8(%rax),%rdi 222829: e8 12 18 ff ff call 214040 22282e: 0b 45 d8 or -0x28(%rbp),%eax 222831: 89 45 d8 mov %eax,-0x28(%rbp) reaction |= HTOP_KEEP_FOLLOWING; 222834: 8b 45 d8 mov -0x28(%rbp),%eax 222837: 83 c8 08 or $0x8,%eax 22283a: 89 45 d8 mov %eax,-0x28(%rbp) result = HANDLED; 22283d: c7 45 dc 01 00 00 00 movl $0x1,-0x24(%rbp) } else if (ch == 27) { 222844: e9 0e 01 00 00 jmp 222957 222849: 83 7d ec 1b cmpl $0x1b,-0x14(%rbp) 22284d: 0f 85 1b 00 00 00 jne 22286e this->state->hideProcessSelection = true; 222853: 48 8b 45 e0 mov -0x20(%rbp),%rax 222857: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 22285e: c6 40 29 01 movb $0x1,0x29(%rax) return HANDLED; 222862: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) 222869: e9 f3 01 00 00 jmp 222a61 } else if (ch != ERR && ch > 0 && ch < KEY_MAX && this->keys[ch]) { 22286e: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 222872: 0f 84 63 00 00 00 je 2228db 222878: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 22287c: 0f 8e 59 00 00 00 jle 2228db 222882: 81 7d ec ff 01 00 00 cmpl $0x1ff,-0x14(%rbp) 222889: 0f 8d 4c 00 00 00 jge 2228db 22288f: 48 8b 45 e0 mov -0x20(%rbp),%rax 222893: 48 8b 80 e8 26 00 00 mov 0x26e8(%rax),%rax 22289a: 48 63 4d ec movslq -0x14(%rbp),%rcx 22289e: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 2228a3: 0f 84 32 00 00 00 je 2228db reaction |= (this->keys[ch])(this->state); 2228a9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2228ad: 48 8b 80 e8 26 00 00 mov 0x26e8(%rax),%rax 2228b4: 48 63 4d ec movslq -0x14(%rbp),%rcx 2228b8: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 2228bc: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2228c0: 48 8b b9 d8 26 00 00 mov 0x26d8(%rcx),%rdi 2228c7: ff d0 call *%rax 2228c9: 0b 45 d8 or -0x28(%rbp),%eax 2228cc: 89 45 d8 mov %eax,-0x28(%rbp) result = HANDLED; 2228cf: c7 45 dc 01 00 00 00 movl $0x1,-0x24(%rbp) } else if (0 < ch && ch < 255 && isdigit((unsigned char)ch)) { 2228d6: e9 72 00 00 00 jmp 22294d 2228db: 31 c0 xor %eax,%eax 2228dd: 3b 45 ec cmp -0x14(%rbp),%eax 2228e0: 0f 8d 37 00 00 00 jge 22291d 2228e6: 81 7d ec ff 00 00 00 cmpl $0xff,-0x14(%rbp) 2228ed: 0f 8d 2a 00 00 00 jge 22291d 2228f3: 8b 45 ec mov -0x14(%rbp),%eax 2228f6: 0f b6 f8 movzbl %al,%edi 2228f9: be 00 04 00 00 mov $0x400,%esi 2228fe: e8 5d 04 00 00 call 222d60 <__sbistype> 222903: 83 f8 00 cmp $0x0,%eax 222906: 0f 84 11 00 00 00 je 22291d MainPanel_pidSearch(this, ch); 22290c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 222910: 8b 75 ec mov -0x14(%rbp),%esi 222913: e8 78 04 00 00 call 222d90 } else { 222918: e9 2b 00 00 00 jmp 222948 if (ch != ERR) { 22291d: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 222921: 0f 84 13 00 00 00 je 22293a this->pidSearch = 0; 222927: 48 8b 45 e0 mov -0x20(%rbp),%rax 22292b: c7 80 f0 26 00 00 00 00 00 00 movl $0x0,0x26f0(%rax) } else { 222935: e9 09 00 00 00 jmp 222943 reaction |= HTOP_KEEP_FOLLOWING; 22293a: 8b 45 d8 mov -0x28(%rbp),%eax 22293d: 83 c8 08 or $0x8,%eax 222940: 89 45 d8 mov %eax,-0x28(%rbp) 222943: e9 00 00 00 00 jmp 222948 222948: e9 00 00 00 00 jmp 22294d 22294d: e9 00 00 00 00 jmp 222952 222952: e9 00 00 00 00 jmp 222957 222957: e9 00 00 00 00 jmp 22295c if (reaction & HTOP_REDRAW_BAR) { 22295c: 8b 45 d8 mov -0x28(%rbp),%eax 22295f: 83 e0 20 and $0x20,%eax 222962: 83 f8 00 cmp $0x0,%eax 222965: 0f 84 1f 00 00 00 je 22298a MainPanel_updateTreeFunctions(this, this->state->settings->treeView); 22296b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22296f: 48 8b 45 e0 mov -0x20(%rbp),%rax 222973: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 22297a: 48 8b 00 mov (%rax),%rax 22297d: 8a 40 4a mov 0x4a(%rax),%al 222980: 24 01 and $0x1,%al 222982: 0f b6 f0 movzbl %al,%esi 222985: e8 26 fa ff ff call 2223b0 if (reaction & HTOP_RESIZE) { 22298a: 8b 45 d8 mov -0x28(%rbp),%eax 22298d: 25 e1 00 00 00 and $0xe1,%eax 222992: 83 f8 00 cmp $0x0,%eax 222995: 0f 84 09 00 00 00 je 2229a4 result |= RESIZE; 22299b: 8b 45 dc mov -0x24(%rbp),%eax 22299e: 83 c8 40 or $0x40,%eax 2229a1: 89 45 dc mov %eax,-0x24(%rbp) if (reaction & HTOP_UPDATE_PANELHDR) { 2229a4: 8b 45 d8 mov -0x28(%rbp),%eax 2229a7: 83 e0 41 and $0x41,%eax 2229aa: 83 f8 00 cmp $0x0,%eax 2229ad: 0f 84 09 00 00 00 je 2229bc result |= REDRAW; 2229b3: 8b 45 dc mov -0x24(%rbp),%eax 2229b6: 83 c8 10 or $0x10,%eax 2229b9: 89 45 dc mov %eax,-0x24(%rbp) if (reaction & HTOP_REFRESH) { 2229bc: 8b 45 d8 mov -0x28(%rbp),%eax 2229bf: 83 e0 01 and $0x1,%eax 2229c2: 83 f8 00 cmp $0x0,%eax 2229c5: 0f 84 09 00 00 00 je 2229d4 result |= REFRESH; 2229cb: 8b 45 dc mov -0x24(%rbp),%eax 2229ce: 83 c8 08 or $0x8,%eax 2229d1: 89 45 dc mov %eax,-0x24(%rbp) if (reaction & HTOP_RECALCULATE) { 2229d4: 8b 45 d8 mov -0x28(%rbp),%eax 2229d7: 83 e0 03 and $0x3,%eax 2229da: 83 f8 00 cmp $0x0,%eax 2229dd: 0f 84 09 00 00 00 je 2229ec result |= RESCAN; 2229e3: 8b 45 dc mov -0x24(%rbp),%eax 2229e6: 83 c8 20 or $0x20,%eax 2229e9: 89 45 dc mov %eax,-0x24(%rbp) if (reaction & HTOP_SAVE_SETTINGS) { 2229ec: 8b 45 d8 mov -0x28(%rbp),%eax 2229ef: 83 e0 04 and $0x4,%eax 2229f2: 83 f8 00 cmp $0x0,%eax 2229f5: 0f 84 12 00 00 00 je 222a0d this->state->settings->changed = true; 2229fb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2229ff: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222a06: 48 8b 00 mov (%rax),%rax 222a09: c6 40 68 01 movb $0x1,0x68(%rax) if (reaction & HTOP_QUIT) { 222a0d: 8b 45 d8 mov -0x28(%rbp),%eax 222a10: 83 e0 10 and $0x10,%eax 222a13: 83 f8 00 cmp $0x0,%eax 222a16: 0f 84 0c 00 00 00 je 222a28 return BREAK_LOOP; 222a1c: c7 45 fc 04 00 00 00 movl $0x4,-0x4(%rbp) 222a23: e9 39 00 00 00 jmp 222a61 if (!(reaction & HTOP_KEEP_FOLLOWING)) { 222a28: 8b 45 d8 mov -0x28(%rbp),%eax 222a2b: 83 e0 08 and $0x8,%eax 222a2e: 83 f8 00 cmp $0x0,%eax 222a31: 0f 85 24 00 00 00 jne 222a5b this->state->pl->following = -1; 222a37: 48 8b 45 e0 mov -0x20(%rbp),%rax 222a3b: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222a42: 48 8b 40 10 mov 0x10(%rax),%rax 222a46: c7 40 70 ff ff ff ff movl $0xffffffff,0x70(%rax) Panel_setSelectionColor(super, PANEL_SELECTION_FOCUS); 222a4d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 222a51: be 09 00 00 00 mov $0x9,%esi 222a56: e8 75 53 00 00 call 227dd0 return result; 222a5b: 8b 45 dc mov -0x24(%rbp),%eax 222a5e: 89 45 fc mov %eax,-0x4(%rbp) } 222a61: 8b 45 fc mov -0x4(%rbp),%eax 222a64: 48 83 c4 50 add $0x50,%rsp 222a68: 5d pop %rbp 222a69: c3 ret 222a6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000222a70 : static void MainPanel_drawFunctionBar(Panel* super, bool hideFunctionBar) { 222a70: 55 push %rbp 222a71: 48 89 e5 mov %rsp,%rbp 222a74: 48 83 ec 20 sub $0x20,%rsp 222a78: 40 88 f0 mov %sil,%al 222a7b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 222a7f: 24 01 and $0x1,%al 222a81: 88 45 f7 mov %al,-0x9(%rbp) MainPanel* this = (MainPanel*) super; 222a84: 48 8b 45 f8 mov -0x8(%rbp),%rax 222a88: 48 89 45 e8 mov %rax,-0x18(%rbp) if (hideFunctionBar && !this->inc->active) 222a8c: f6 45 f7 01 testb $0x1,-0x9(%rbp) 222a90: 0f 84 1e 00 00 00 je 222ab4 222a96: 48 8b 45 e8 mov -0x18(%rbp),%rax 222a9a: 48 8b 80 e0 26 00 00 mov 0x26e0(%rax),%rax 222aa1: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 222aa9: 0f 85 05 00 00 00 jne 222ab4 return; 222aaf: e9 3f 00 00 00 jmp 222af3 IncSet_drawBar(this->inc); 222ab4: 48 8b 45 e8 mov -0x18(%rbp),%rax 222ab8: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 222abf: e8 7c e6 ff ff call 221140 if (this->state->pauseProcessUpdate) { 222ac4: 48 8b 45 e8 mov -0x18(%rbp),%rax 222ac8: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222acf: f6 40 28 01 testb $0x1,0x28(%rax) 222ad3: 0f 84 1a 00 00 00 je 222af3 FunctionBar_append("PAUSED", CRT_colors[PAUSED]); 222ad9: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 222ae1: 8b 70 18 mov 0x18(%rax),%esi 222ae4: 48 bf 92 5c 20 00 00 00 00 00 movabs $0x205c92,%rdi 222aee: e8 8d be ff ff call 21e980 } 222af3: 48 83 c4 20 add $0x20,%rsp 222af7: 5d pop %rbp 222af8: c3 ret 222af9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000222b00 : static void MainPanel_printHeader(Panel* super) { 222b00: 55 push %rbp 222b01: 48 89 e5 mov %rsp,%rbp 222b04: 48 83 ec 10 sub $0x10,%rsp 222b08: 48 89 7d f8 mov %rdi,-0x8(%rbp) MainPanel* this = (MainPanel*) super; 222b0c: 48 8b 45 f8 mov -0x8(%rbp),%rax 222b10: 48 89 45 f0 mov %rax,-0x10(%rbp) ProcessList_printHeader(this->state->pl, &super->header); 222b14: 48 8b 45 f0 mov -0x10(%rbp),%rax 222b18: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 222b1f: 48 8b 78 10 mov 0x10(%rax),%rdi 222b23: 48 8b 75 f8 mov -0x8(%rbp),%rsi 222b27: 48 83 c6 58 add $0x58,%rsi 222b2b: e8 30 cf 00 00 call 22fa60 } 222b30: 48 83 c4 10 add $0x10,%rsp 222b34: 5d pop %rbp 222b35: c3 ret 222b36: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000222b40 : MainPanel* MainPanel_new() { 222b40: 55 push %rbp 222b41: 48 89 e5 mov %rsp,%rbp 222b44: 48 83 ec 20 sub $0x20,%rsp MainPanel* this = AllocThis(MainPanel); 222b48: bf f8 26 00 00 mov $0x26f8,%edi 222b4d: e8 0e 5f 01 00 call 238a60 222b52: 48 89 45 f8 mov %rax,-0x8(%rbp) 222b56: 48 8b 45 f8 mov -0x8(%rbp),%rax 222b5a: 48 b9 20 90 20 00 00 00 00 00 movabs $0x209020,%rcx 222b64: 48 89 08 mov %rcx,(%rax) Panel_init((Panel*) this, 1, 1, 1, 1, Class(Process), false, FunctionBar_new(Settings_isReadonly() ? MainFunctions_ro : MainFunctions, NULL, NULL)); 222b67: 48 8b 45 f8 mov -0x8(%rbp),%rax 222b6b: 48 89 45 f0 mov %rax,-0x10(%rbp) 222b6f: e8 dc 35 01 00 call 236150 222b74: 88 c1 mov %al,%cl 222b76: 48 bf c0 90 20 00 00 00 00 00 movabs $0x2090c0,%rdi 222b80: 48 b8 60 90 20 00 00 00 00 00 movabs $0x209060,%rax 222b8a: f6 c1 01 test $0x1,%cl 222b8d: 48 0f 45 f8 cmovne %rax,%rdi 222b91: 31 c0 xor %eax,%eax 222b93: 89 c2 mov %eax,%edx 222b95: 48 89 d6 mov %rdx,%rsi 222b98: e8 b3 b7 ff ff call 21e350 222b9d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 222ba1: 41 b8 01 00 00 00 mov $0x1,%r8d 222ba7: 49 b9 f0 a5 20 00 00 00 00 00 movabs $0x20a5f0,%r9 222bb1: 31 c9 xor %ecx,%ecx 222bb3: 44 89 c6 mov %r8d,%esi 222bb6: 44 89 c2 mov %r8d,%edx 222bb9: 44 89 c1 mov %r8d,%ecx 222bbc: c7 04 24 00 00 00 00 movl $0x0,(%rsp) 222bc3: 48 89 44 24 08 mov %rax,0x8(%rsp) 222bc8: e8 33 50 00 00 call 227c00 this->keys = xCalloc(KEY_MAX, sizeof(Htop_Action)); 222bcd: bf ff 01 00 00 mov $0x1ff,%edi 222bd2: be 08 00 00 00 mov $0x8,%esi 222bd7: e8 14 5f 01 00 call 238af0 222bdc: 48 89 c1 mov %rax,%rcx 222bdf: 48 8b 45 f8 mov -0x8(%rbp),%rax 222be3: 48 89 88 e8 26 00 00 mov %rcx,0x26e8(%rax) this->inc = IncSet_new(MainPanel_getFunctionBar(this)); 222bea: 48 8b 45 f8 mov -0x8(%rbp),%rax 222bee: 48 8b 78 50 mov 0x50(%rax),%rdi 222bf2: e8 09 dd ff ff call 220900 222bf7: 48 89 c1 mov %rax,%rcx 222bfa: 48 8b 45 f8 mov -0x8(%rbp),%rax 222bfe: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) Action_setBindings(this->keys); 222c05: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c09: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 222c10: e8 7b 14 ff ff call 214090 Platform_setBindings(this->keys); 222c15: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c19: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 222c20: e8 ab 6c 01 00 call 2398d0 return this; 222c25: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c29: 48 83 c4 20 add $0x20,%rsp 222c2d: 5d pop %rbp 222c2e: c3 ret 222c2f: 90 nop 0000000000222c30 : void MainPanel_setState(MainPanel* this, State* state) { 222c30: 55 push %rbp 222c31: 48 89 e5 mov %rsp,%rbp 222c34: 48 89 7d f8 mov %rdi,-0x8(%rbp) 222c38: 48 89 75 f0 mov %rsi,-0x10(%rbp) this->state = state; 222c3c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 222c40: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c44: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) } 222c4b: 5d pop %rbp 222c4c: c3 ret 222c4d: 0f 1f 00 nopl (%rax) 0000000000222c50 : static inline ProcessField Settings_getActiveSortKey(const Settings* this) { 222c50: 55 push %rbp 222c51: 48 89 e5 mov %rsp,%rbp 222c54: 48 89 7d f8 mov %rdi,-0x8(%rbp) return (this->treeView) 222c58: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c5c: f6 40 4a 01 testb $0x1,0x4a(%rax) 222c60: 0f 84 30 00 00 00 je 222c96 ? (this->treeViewAlwaysByPID ? PID : this->treeSortKey) 222c66: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c6a: f6 40 4b 01 testb $0x1,0x4b(%rax) 222c6e: 0f 84 0d 00 00 00 je 222c81 222c74: b8 01 00 00 00 mov $0x1,%eax 222c79: 89 45 f4 mov %eax,-0xc(%rbp) 222c7c: e9 0a 00 00 00 jmp 222c8b 222c81: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c85: 8b 40 40 mov 0x40(%rax),%eax 222c88: 89 45 f4 mov %eax,-0xc(%rbp) 222c8b: 8b 45 f4 mov -0xc(%rbp),%eax 222c8e: 89 45 f0 mov %eax,-0x10(%rbp) return (this->treeView) 222c91: e9 0a 00 00 00 jmp 222ca0 : this->sortKey; 222c96: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c9a: 8b 40 3c mov 0x3c(%rax),%eax 222c9d: 89 45 f0 mov %eax,-0x10(%rbp) 222ca0: 8b 45 f0 mov -0x10(%rbp),%eax return (this->treeView) 222ca3: 5d pop %rbp 222ca4: c3 ret 222ca5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 222caf: 90 nop 0000000000222cb0 : static const char* MainPanel_getValue(Panel* this, int i) { 222cb0: 55 push %rbp 222cb1: 48 89 e5 mov %rsp,%rbp 222cb4: 48 83 ec 20 sub $0x20,%rsp 222cb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 222cbc: 89 75 f4 mov %esi,-0xc(%rbp) const Process* p = (const Process*) Panel_get(this, i); 222cbf: 48 8b 7d f8 mov -0x8(%rbp),%rdi 222cc3: 8b 75 f4 mov -0xc(%rbp),%esi 222cc6: e8 b5 52 00 00 call 227f80 222ccb: 48 89 45 e8 mov %rax,-0x18(%rbp) return Process_getCommand(p); 222ccf: 48 8b 45 e8 mov -0x18(%rbp),%rax 222cd3: 48 8b 00 mov (%rax),%rax 222cd6: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 222cdb: 0f 84 1a 00 00 00 je 222cfb 222ce1: 48 8b 45 e8 mov -0x18(%rbp),%rax 222ce5: 48 8b 00 mov (%rax),%rax 222ce8: 48 8b 40 30 mov 0x30(%rax),%rax 222cec: 48 8b 7d e8 mov -0x18(%rbp),%rdi 222cf0: ff d0 call *%rax 222cf2: 48 89 45 e0 mov %rax,-0x20(%rbp) 222cf6: e9 0d 00 00 00 jmp 222d08 222cfb: 48 8b 7d e8 mov -0x18(%rbp),%rdi 222cff: e8 7c b6 00 00 call 22e380 222d04: 48 89 45 e0 mov %rax,-0x20(%rbp) 222d08: 48 8b 45 e0 mov -0x20(%rbp),%rax 222d0c: 48 83 c4 20 add $0x20,%rsp 222d10: 5d pop %rbp 222d11: c3 ret 222d12: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 222d1c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000222d20 : static inline const char* IncSet_filter(const IncSet* this) { 222d20: 55 push %rbp 222d21: 48 89 e5 mov %rsp,%rbp 222d24: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->filtering ? this->modes[INC_FILTER].buffer : NULL; 222d28: 48 8b 45 f8 mov -0x8(%rbp),%rax 222d2c: f6 80 90 00 00 00 01 testb $0x1,0x90(%rax) 222d33: 0f 84 11 00 00 00 je 222d4a 222d39: 48 8b 45 f8 mov -0x8(%rbp),%rax 222d3d: 48 83 c0 40 add $0x40,%rax 222d41: 48 89 45 f0 mov %rax,-0x10(%rbp) 222d45: e9 0b 00 00 00 jmp 222d55 222d4a: 31 c0 xor %eax,%eax 222d4c: 48 89 45 f0 mov %rax,-0x10(%rbp) 222d50: e9 00 00 00 00 jmp 222d55 222d55: 48 8b 45 f0 mov -0x10(%rbp),%rax 222d59: 5d pop %rbp 222d5a: c3 ret 222d5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000222d60 <__sbistype>: { 222d60: 55 push %rbp 222d61: 48 89 e5 mov %rsp,%rbp 222d64: 48 83 ec 10 sub $0x10,%rsp 222d68: 89 7d fc mov %edi,-0x4(%rbp) 222d6b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 222d6f: 8b 7d fc mov -0x4(%rbp),%edi 222d72: 48 8b 75 f0 mov -0x10(%rbp),%rsi 222d76: e8 f5 00 00 00 call 222e70 <__sbmaskrune> 222d7b: 83 f8 00 cmp $0x0,%eax 222d7e: 0f 95 c0 setne %al 222d81: 34 ff xor $0xff,%al 222d83: 34 ff xor $0xff,%al 222d85: 24 01 and $0x1,%al 222d87: 0f b6 c0 movzbl %al,%eax 222d8a: 48 83 c4 10 add $0x10,%rsp 222d8e: 5d pop %rbp 222d8f: c3 ret 0000000000222d90 : static void MainPanel_pidSearch(MainPanel* this, int ch) { 222d90: 55 push %rbp 222d91: 48 89 e5 mov %rsp,%rbp 222d94: 48 83 ec 30 sub $0x30,%rsp 222d98: 48 89 7d f8 mov %rdi,-0x8(%rbp) 222d9c: 89 75 f4 mov %esi,-0xc(%rbp) Panel* super = (Panel*) this; 222d9f: 48 8b 45 f8 mov -0x8(%rbp),%rax 222da3: 48 89 45 e8 mov %rax,-0x18(%rbp) pid_t pid = ch - 48 + this->pidSearch; 222da7: 8b 45 f4 mov -0xc(%rbp),%eax 222daa: 83 e8 30 sub $0x30,%eax 222dad: 48 8b 4d f8 mov -0x8(%rbp),%rcx 222db1: 03 81 f0 26 00 00 add 0x26f0(%rcx),%eax 222db7: 89 45 e4 mov %eax,-0x1c(%rbp) for (int i = 0; i < Panel_size(super); i++) { 222dba: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%rbp) 222dc1: 8b 45 e0 mov -0x20(%rbp),%eax 222dc4: 89 45 d4 mov %eax,-0x2c(%rbp) 222dc7: 48 8b 7d e8 mov -0x18(%rbp),%rdi 222dcb: e8 d0 53 00 00 call 2281a0 222dd0: 89 c1 mov %eax,%ecx 222dd2: 8b 45 d4 mov -0x2c(%rbp),%eax 222dd5: 39 c8 cmp %ecx,%eax 222dd7: 0f 8d 4f 00 00 00 jge 222e2c const Process* p = (const Process*) Panel_get(super, i); 222ddd: 48 8b 7d e8 mov -0x18(%rbp),%rdi 222de1: 8b 75 e0 mov -0x20(%rbp),%esi 222de4: e8 97 51 00 00 call 227f80 222de9: 48 89 45 d8 mov %rax,-0x28(%rbp) if (p && p->pid == pid) { 222ded: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 222df2: 0f 84 21 00 00 00 je 222e19 222df8: 48 8b 45 d8 mov -0x28(%rbp),%rax 222dfc: 8b 40 18 mov 0x18(%rax),%eax 222dff: 3b 45 e4 cmp -0x1c(%rbp),%eax 222e02: 0f 85 11 00 00 00 jne 222e19 Panel_setSelected(super, i); 222e08: 48 8b 7d e8 mov -0x18(%rbp),%rdi 222e0c: 8b 75 e0 mov -0x20(%rbp),%esi 222e0f: e8 ac 53 00 00 call 2281c0 break; 222e14: e9 13 00 00 00 jmp 222e2c } 222e19: e9 00 00 00 00 jmp 222e1e for (int i = 0; i < Panel_size(super); i++) { 222e1e: 8b 45 e0 mov -0x20(%rbp),%eax 222e21: 83 c0 01 add $0x1,%eax 222e24: 89 45 e0 mov %eax,-0x20(%rbp) 222e27: e9 95 ff ff ff jmp 222dc1 this->pidSearch = pid * 10; 222e2c: 6b 4d e4 0a imul $0xa,-0x1c(%rbp),%ecx 222e30: 48 8b 45 f8 mov -0x8(%rbp),%rax 222e34: 89 88 f0 26 00 00 mov %ecx,0x26f0(%rax) if (this->pidSearch > 10000000) { 222e3a: 48 8b 45 f8 mov -0x8(%rbp),%rax 222e3e: 81 b8 f0 26 00 00 80 96 98 00 cmpl $0x989680,0x26f0(%rax) 222e48: 0f 8e 0e 00 00 00 jle 222e5c this->pidSearch = 0; 222e4e: 48 8b 45 f8 mov -0x8(%rbp),%rax 222e52: c7 80 f0 26 00 00 00 00 00 00 movl $0x0,0x26f0(%rax) } 222e5c: 48 83 c4 30 add $0x30,%rsp 222e60: 5d pop %rbp 222e61: c3 ret 222e62: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 222e6c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000222e70 <__sbmaskrune>: { 222e70: 55 push %rbp 222e71: 48 89 e5 mov %rsp,%rbp 222e74: 48 83 ec 20 sub $0x20,%rsp 222e78: 89 7d fc mov %edi,-0x4(%rbp) 222e7b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 222e7f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 222e83: 0f 8c 10 00 00 00 jl 222e99 <__sbmaskrune+0x29> 222e89: 8b 45 fc mov -0x4(%rbp),%eax 222e8c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 222e93: 0f 8c 0b 00 00 00 jl 222ea4 <__sbmaskrune+0x34> 222e99: 31 c0 xor %eax,%eax 222e9b: 48 89 45 e8 mov %rax,-0x18(%rbp) 222e9f: e9 16 00 00 00 jmp 222eba <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 222ea4: e8 27 00 00 00 call 222ed0 <__getCurrentRuneLocale> 222ea9: 48 63 4d fc movslq -0x4(%rbp),%rcx 222ead: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 222eb2: 48 23 45 f0 and -0x10(%rbp),%rax 222eb6: 48 89 45 e8 mov %rax,-0x18(%rbp) 222eba: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 222ebe: 48 83 c4 20 add $0x20,%rsp 222ec2: 5d pop %rbp 222ec3: c3 ret 222ec4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 222ece: 66 90 xchg %ax,%ax 0000000000222ed0 <__getCurrentRuneLocale>: { 222ed0: 55 push %rbp 222ed1: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 222ed4: 48 8b 0d d5 cd 01 00 mov 0x1cdd5(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 222edb: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 222ee4: 48 8b 04 08 mov (%rax,%rcx,1),%rax 222ee8: 48 83 f8 00 cmp $0x0,%rax 222eec: 0f 84 1d 00 00 00 je 222f0f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 222ef2: 48 8b 0d b7 cd 01 00 mov 0x1cdb7(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 222ef9: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 222f02: 48 8b 04 08 mov (%rax,%rcx,1),%rax 222f06: 48 89 45 f8 mov %rax,-0x8(%rbp) 222f0a: e9 0c 00 00 00 jmp 222f1b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 222f0f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 222f17: 48 89 45 f8 mov %rax,-0x8(%rbp) } 222f1b: 48 8b 45 f8 mov -0x8(%rbp),%rax 222f1f: 5d pop %rbp 222f20: c3 ret 222f21: cc int3 222f22: cc int3 222f23: cc int3 222f24: cc int3 222f25: cc int3 222f26: cc int3 222f27: cc int3 222f28: cc int3 222f29: cc int3 222f2a: cc int3 222f2b: cc int3 222f2c: cc int3 222f2d: cc int3 222f2e: cc int3 222f2f: cc int3 0000000000222f30 : METER_BUFFER_APPEND_CHR(buffer, size, '/'); Meter_humanUnit(buffer, this->total, size); } static void MemoryMeter_display(const Object* cast, RichString* out) { 222f30: 55 push %rbp 222f31: 48 89 e5 mov %rsp,%rbp 222f34: 48 83 ec 70 sub $0x70,%rsp 222f38: 48 8b 05 f1 f8 01 00 mov 0x1f8f1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 222f3f: 48 89 45 f8 mov %rax,-0x8(%rbp) 222f43: 48 89 7d b8 mov %rdi,-0x48(%rbp) 222f47: 48 89 75 b0 mov %rsi,-0x50(%rbp) char buffer[50]; const Meter* this = (const Meter*)cast; 222f4b: 48 8b 45 b8 mov -0x48(%rbp),%rax 222f4f: 48 89 45 a8 mov %rax,-0x58(%rbp) RichString_writeAscii(out, CRT_colors[METER_TEXT], ":"); 222f53: 48 8b 7d b0 mov -0x50(%rbp),%rdi 222f57: 48 8b 05 22 f2 01 00 mov 0x1f222(%rip),%rax # 242180 222f5e: 8b 70 38 mov 0x38(%rax),%esi 222f61: ba ac 6c 20 00 mov $0x206cac,%edx 222f66: e8 f5 f7 00 00 call 232760 Meter_humanUnit(buffer, this->total, sizeof(buffer)); 222f6b: 48 8b 45 a8 mov -0x58(%rbp),%rax 222f6f: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 222f77: f2 0f 10 15 e1 43 fe ff movsd -0x1bc1f(%rip),%xmm2 # 207360 222f7f: f2 0f 11 55 98 movsd %xmm2,-0x68(%rbp) 222f84: 0f 28 c8 movaps %xmm0,%xmm1 222f87: f2 0f 5c ca subsd %xmm2,%xmm1 222f8b: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 222f90: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 222f95: 48 89 f1 mov %rsi,%rcx 222f98: 48 c1 f9 3f sar $0x3f,%rcx 222f9c: 48 21 c8 and %rcx,%rax 222f9f: 48 09 c6 or %rax,%rsi 222fa2: 48 8d 7d c0 lea -0x40(%rbp),%rdi 222fa6: 48 89 7d a0 mov %rdi,-0x60(%rbp) 222faa: ba 32 00 00 00 mov $0x32,%edx 222faf: 48 89 55 90 mov %rdx,-0x70(%rbp) 222fb3: e8 58 0a 00 00 call 223a10 222fb8: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 222fbc: 48 8b 7d b0 mov -0x50(%rbp),%rdi 222fc0: 48 8b 05 b9 f1 01 00 mov 0x1f1b9(%rip),%rax # 242180 222fc7: 8b 70 3c mov 0x3c(%rax),%esi 222fca: e8 b1 f5 00 00 call 232580 222fcf: 48 8b 55 90 mov -0x70(%rbp),%rdx 222fd3: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 222fd8: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[0], sizeof(buffer)); 222fdc: 48 8b 45 a8 mov -0x58(%rbp),%rax 222fe0: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 222fe7: f2 0f 10 00 movsd (%rax),%xmm0 222feb: 0f 28 c8 movaps %xmm0,%xmm1 222fee: f2 0f 5c ca subsd %xmm2,%xmm1 222ff2: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 222ff7: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 222ffc: 48 89 f1 mov %rsi,%rcx 222fff: 48 c1 f9 3f sar $0x3f,%rcx 223003: 48 21 c8 and %rcx,%rax 223006: 48 09 c6 or %rax,%rsi 223009: e8 02 0a 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " used:"); 22300e: 48 8b 7d b0 mov -0x50(%rbp),%rdi 223012: 48 8b 05 67 f1 01 00 mov 0x1f167(%rip),%rax # 242180 223019: 8b 70 38 mov 0x38(%rax),%esi 22301c: ba 46 5e 20 00 mov $0x205e46,%edx 223021: e8 5a f5 00 00 call 232580 223026: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[MEMORY_USED], buffer); 22302a: 48 8b 7d b0 mov -0x50(%rbp),%rdi 22302e: 48 8b 05 4b f1 01 00 mov 0x1f14b(%rip),%rax # 242180 223035: 8b b0 c4 00 00 00 mov 0xc4(%rax),%esi 22303b: e8 40 f5 00 00 call 232580 223040: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 223045: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[1], sizeof(buffer)); 223049: 48 8b 45 a8 mov -0x58(%rbp),%rax 22304d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 223054: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 223059: 0f 28 c8 movaps %xmm0,%xmm1 22305c: f2 0f 5c ca subsd %xmm2,%xmm1 223060: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 223065: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 22306a: 48 89 f1 mov %rsi,%rcx 22306d: 48 c1 f9 3f sar $0x3f,%rcx 223071: 48 21 c8 and %rcx,%rax 223074: 48 09 c6 or %rax,%rsi 223077: ba 32 00 00 00 mov $0x32,%edx 22307c: e8 8f 09 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " buffers:"); 223081: 48 8b 7d b0 mov -0x50(%rbp),%rdi 223085: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22308d: 8b 70 38 mov 0x38(%rax),%esi 223090: 48 ba 1d 45 20 00 00 00 00 00 movabs $0x20451d,%rdx 22309a: e8 e1 f4 00 00 call 232580 RichString_appendAscii(out, CRT_colors[MEMORY_BUFFERS_TEXT], buffer); 22309f: 48 8b 7d b0 mov -0x50(%rbp),%rdi 2230a3: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2230ab: 8b b0 cc 00 00 00 mov 0xcc(%rax),%esi 2230b1: 48 8d 55 c0 lea -0x40(%rbp),%rdx 2230b5: e8 c6 f4 00 00 call 232580 /* shared memory is not supported on all platforms */ if (!isnan(this->values[2])) { 2230ba: 48 8b 45 a8 mov -0x58(%rbp),%rax 2230be: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2230c5: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 2230ca: e8 31 03 00 00 call 223400 <__inline_isnan> 2230cf: 83 f8 00 cmp $0x0,%eax 2230d2: 0f 85 7d 00 00 00 jne 223155 2230d8: 48 8d 7d c0 lea -0x40(%rbp),%rdi Meter_humanUnit(buffer, this->values[2], sizeof(buffer)); 2230dc: 48 8b 45 a8 mov -0x58(%rbp),%rax 2230e0: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2230e7: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 2230ec: f2 0f 10 15 6c 42 fe ff movsd -0x1bd94(%rip),%xmm2 # 207360 2230f4: 0f 28 c8 movaps %xmm0,%xmm1 2230f7: f2 0f 5c ca subsd %xmm2,%xmm1 2230fb: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 223100: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 223105: 48 89 f1 mov %rsi,%rcx 223108: 48 c1 f9 3f sar $0x3f,%rcx 22310c: 48 21 c8 and %rcx,%rax 22310f: 48 09 c6 or %rax,%rsi 223112: ba 32 00 00 00 mov $0x32,%edx 223117: e8 f4 08 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " shared:"); 22311c: 48 8b 7d b0 mov -0x50(%rbp),%rdi 223120: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223128: 8b 70 38 mov 0x38(%rax),%esi 22312b: 48 ba 19 69 20 00 00 00 00 00 movabs $0x206919,%rdx 223135: e8 46 f4 00 00 call 232580 RichString_appendAscii(out, CRT_colors[MEMORY_SHARED], buffer); 22313a: 48 8b 7d b0 mov -0x50(%rbp),%rdi 22313e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223146: 8b b0 d4 00 00 00 mov 0xd4(%rax),%esi 22314c: 48 8d 55 c0 lea -0x40(%rbp),%rdx 223150: e8 2b f4 00 00 call 232580 223155: 48 8d 7d c0 lea -0x40(%rbp),%rdi } Meter_humanUnit(buffer, this->values[3], sizeof(buffer)); 223159: 48 8b 45 a8 mov -0x58(%rbp),%rax 22315d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 223164: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 223169: f2 0f 10 15 ef 41 fe ff movsd -0x1be11(%rip),%xmm2 # 207360 223171: 0f 28 c8 movaps %xmm0,%xmm1 223174: f2 0f 5c ca subsd %xmm2,%xmm1 223178: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 22317d: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 223182: 48 89 f1 mov %rsi,%rcx 223185: 48 c1 f9 3f sar $0x3f,%rcx 223189: 48 21 c8 and %rcx,%rax 22318c: 48 09 c6 or %rax,%rsi 22318f: ba 32 00 00 00 mov $0x32,%edx 223194: e8 77 08 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " cache:"); 223199: 48 8b 7d b0 mov -0x50(%rbp),%rdi 22319d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2231a5: 8b 70 38 mov 0x38(%rax),%esi 2231a8: 48 ba 23 57 20 00 00 00 00 00 movabs $0x205723,%rdx 2231b2: e8 c9 f3 00 00 call 232580 RichString_appendAscii(out, CRT_colors[MEMORY_CACHE], buffer); 2231b7: 48 8b 7d b0 mov -0x50(%rbp),%rdi 2231bb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2231c3: 8b b0 d0 00 00 00 mov 0xd0(%rax),%esi 2231c9: 48 8d 55 c0 lea -0x40(%rbp),%rdx 2231cd: e8 ae f3 00 00 call 232580 /* available memory is not supported on all platforms */ if (!isnan(this->values[4])) { 2231d2: 48 8b 45 a8 mov -0x58(%rbp),%rax 2231d6: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2231dd: f2 0f 10 40 20 movsd 0x20(%rax),%xmm0 2231e2: e8 19 02 00 00 call 223400 <__inline_isnan> 2231e7: 83 f8 00 cmp $0x0,%eax 2231ea: 0f 85 7a 00 00 00 jne 22326a 2231f0: 48 8d 7d c0 lea -0x40(%rbp),%rdi Meter_humanUnit(buffer, this->values[4], sizeof(buffer)); 2231f4: 48 8b 45 a8 mov -0x58(%rbp),%rax 2231f8: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2231ff: f2 0f 10 40 20 movsd 0x20(%rax),%xmm0 223204: f2 0f 10 15 54 41 fe ff movsd -0x1beac(%rip),%xmm2 # 207360 22320c: 0f 28 c8 movaps %xmm0,%xmm1 22320f: f2 0f 5c ca subsd %xmm2,%xmm1 223213: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 223218: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 22321d: 48 89 f1 mov %rsi,%rcx 223220: 48 c1 f9 3f sar $0x3f,%rcx 223224: 48 21 c8 and %rcx,%rax 223227: 48 09 c6 or %rax,%rsi 22322a: ba 32 00 00 00 mov $0x32,%edx 22322f: e8 dc 07 00 00 call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " available:"); 223234: 48 8b 7d b0 mov -0x50(%rbp),%rdi 223238: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223240: 8b 70 38 mov 0x38(%rax),%esi 223243: 48 ba 02 66 20 00 00 00 00 00 movabs $0x206602,%rdx 22324d: e8 2e f3 00 00 call 232580 RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 223252: 48 8b 7d b0 mov -0x50(%rbp),%rdi 223256: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22325e: 8b 70 3c mov 0x3c(%rax),%esi 223261: 48 8d 55 c0 lea -0x40(%rbp),%rdx 223265: e8 16 f3 00 00 call 232580 22326a: 48 8b 05 bf f5 01 00 mov 0x1f5bf(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 223271: 48 8b 4d f8 mov -0x8(%rbp),%rcx 223275: 48 39 c8 cmp %rcx,%rax 223278: 0f 85 06 00 00 00 jne 223284 } } 22327e: 48 83 c4 70 add $0x70,%rsp 223282: 5d pop %rbp 223283: c3 ret 223284: e8 b7 ae 01 00 call 23e140 <__stack_chk_fail@plt> 223289: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000223290 : static void MemoryMeter_updateValues(Meter* this) { 223290: 55 push %rbp 223291: 48 89 e5 mov %rsp,%rbp 223294: 48 83 ec 20 sub $0x20,%rsp 223298: 48 89 7d f8 mov %rdi,-0x8(%rbp) char* buffer = this->txtBuffer; 22329c: 48 8b 45 f8 mov -0x8(%rbp),%rax 2232a0: 48 83 c0 48 add $0x48,%rax 2232a4: 48 89 45 f0 mov %rax,-0x10(%rbp) size_t size = sizeof(this->txtBuffer); 2232a8: 48 c7 45 e8 00 01 00 00 movq $0x100,-0x18(%rbp) this->values[2] = NAN; 2232b0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2232b4: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2232bb: 48 b9 00 00 00 00 00 00 f8 7f movabs $0x7ff8000000000000,%rcx 2232c5: 48 89 48 10 mov %rcx,0x10(%rax) this->values[4] = NAN; 2232c9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2232cd: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2232d4: 48 89 48 20 mov %rcx,0x20(%rax) Platform_setMemoryValues(this); 2232d8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2232dc: e8 0f 6a 01 00 call 239cf0 this->curItems = 4; 2232e1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2232e5: c6 40 38 04 movb $0x4,0x38(%rax) written = Meter_humanUnit(buffer, this->values[0], size); 2232e9: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2232ed: 48 8b 45 f8 mov -0x8(%rbp),%rax 2232f1: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2232f8: f2 0f 10 00 movsd (%rax),%xmm0 2232fc: f2 0f 10 15 5c 40 fe ff movsd -0x1bfa4(%rip),%xmm2 # 207360 223304: 0f 28 c8 movaps %xmm0,%xmm1 223307: f2 0f 5c ca subsd %xmm2,%xmm1 22330b: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 223310: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 223315: 48 89 f1 mov %rsi,%rcx 223318: 48 c1 f9 3f sar $0x3f,%rcx 22331c: 48 21 c8 and %rcx,%rax 22331f: 48 09 c6 or %rax,%rsi 223322: 48 8b 55 e8 mov -0x18(%rbp),%rdx 223326: e8 e5 06 00 00 call 223a10 22332b: 89 45 e4 mov %eax,-0x1c(%rbp) METER_BUFFER_CHECK(buffer, size, written); 22332e: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 223332: 0f 8c 0e 00 00 00 jl 223346 223338: 48 63 45 e4 movslq -0x1c(%rbp),%rax 22333c: 48 3b 45 e8 cmp -0x18(%rbp),%rax 223340: 0f 82 05 00 00 00 jb 22334b 223346: e9 ae 00 00 00 jmp 2233f9 22334b: 8b 4d e4 mov -0x1c(%rbp),%ecx 22334e: 48 8b 45 f0 mov -0x10(%rbp),%rax 223352: 48 63 c9 movslq %ecx,%rcx 223355: 48 01 c8 add %rcx,%rax 223358: 48 89 45 f0 mov %rax,-0x10(%rbp) 22335c: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 223360: 48 8b 45 e8 mov -0x18(%rbp),%rax 223364: 48 29 c8 sub %rcx,%rax 223367: 48 89 45 e8 mov %rax,-0x18(%rbp) METER_BUFFER_APPEND_CHR(buffer, size, '/'); 22336b: e9 00 00 00 00 jmp 223370 223370: 48 83 7d e8 02 cmpq $0x2,-0x18(%rbp) 223375: 0f 83 05 00 00 00 jae 223380 22337b: e9 79 00 00 00 jmp 2233f9 223380: 48 8b 45 f0 mov -0x10(%rbp),%rax 223384: 48 89 c1 mov %rax,%rcx 223387: 48 83 c1 01 add $0x1,%rcx 22338b: 48 89 4d f0 mov %rcx,-0x10(%rbp) 22338f: c6 00 2f movb $0x2f,(%rax) 223392: 48 8b 45 f0 mov -0x10(%rbp),%rax 223396: c6 00 00 movb $0x0,(%rax) 223399: 48 8b 45 e8 mov -0x18(%rbp),%rax 22339d: 48 83 c0 ff add $0xffffffffffffffff,%rax 2233a1: 48 89 45 e8 mov %rax,-0x18(%rbp) 2233a5: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 2233aa: 0f 85 05 00 00 00 jne 2233b5 2233b0: e9 44 00 00 00 jmp 2233f9 2233b5: e9 00 00 00 00 jmp 2233ba Meter_humanUnit(buffer, this->total, size); 2233ba: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2233be: 48 8b 45 f8 mov -0x8(%rbp),%rax 2233c2: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 2233ca: f2 0f 10 15 8e 3f fe ff movsd -0x1c072(%rip),%xmm2 # 207360 2233d2: 0f 28 c8 movaps %xmm0,%xmm1 2233d5: f2 0f 5c ca subsd %xmm2,%xmm1 2233d9: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 2233de: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 2233e3: 48 89 f1 mov %rsi,%rcx 2233e6: 48 c1 f9 3f sar $0x3f,%rcx 2233ea: 48 21 c8 and %rcx,%rax 2233ed: 48 09 c6 or %rax,%rsi 2233f0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2233f4: e8 17 06 00 00 call 223a10 } 2233f9: 48 83 c4 20 add $0x20,%rsp 2233fd: 5d pop %rbp 2233fe: c3 ret 2233ff: 90 nop 0000000000223400 <__inline_isnan>: { 223400: 55 push %rbp 223401: 48 89 e5 mov %rsp,%rbp 223404: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 223409: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 22340e: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 223413: 0f 95 c0 setne %al 223416: 0f 9a c1 setp %cl 223419: 08 c8 or %cl,%al 22341b: 24 01 and $0x1,%al 22341d: 0f b6 c0 movzbl %al,%eax 223420: 5d pop %rbp 223421: c3 ret 223422: cc int3 223423: cc int3 223424: cc int3 223425: cc int3 223426: cc int3 223427: cc int3 223428: cc int3 223429: cc int3 22342a: cc int3 22342b: cc int3 22342c: cc int3 22342d: cc int3 22342e: cc int3 22342f: cc int3 0000000000223430 : data->memoryMeter->draw(data->memoryMeter, x, y, colwidth); assert(data->swapMeter->draw); data->swapMeter->draw(data->swapMeter, x + colwidth + diff, y, colwidth); } static void MemorySwapMeter_init(Meter* this) { 223430: 55 push %rbp 223431: 48 89 e5 mov %rsp,%rbp 223434: 48 83 ec 20 sub $0x20,%rsp 223438: 48 89 7d f8 mov %rdi,-0x8(%rbp) MemorySwapMeterData* data = this->meterData; 22343c: 48 8b 45 f8 mov -0x8(%rbp),%rax 223440: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 223447: 48 89 45 f0 mov %rax,-0x10(%rbp) if (!data) { 22344b: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 223450: 0f 85 30 00 00 00 jne 223486 data = this->meterData = xMalloc(sizeof(MemorySwapMeterData)); 223456: bf 10 00 00 00 mov $0x10,%edi 22345b: e8 00 56 01 00 call 238a60 223460: 48 8b 4d f8 mov -0x8(%rbp),%rcx 223464: 48 89 81 58 01 00 00 mov %rax,0x158(%rcx) 22346b: 48 89 45 f0 mov %rax,-0x10(%rbp) data->memoryMeter = NULL; 22346f: 48 8b 45 f0 mov -0x10(%rbp),%rax 223473: 48 c7 00 00 00 00 00 movq $0x0,(%rax) data->swapMeter = NULL; 22347a: 48 8b 45 f0 mov -0x10(%rbp),%rax 22347e: 48 c7 40 08 00 00 00 00 movq $0x0,0x8(%rax) } if (!data->memoryMeter) 223486: 48 8b 45 f0 mov -0x10(%rbp),%rax 22348a: 48 83 38 00 cmpq $0x0,(%rax) 22348e: 0f 85 23 00 00 00 jne 2234b7 data->memoryMeter = Meter_new(this->pl, 0, (const MeterClass*) Class(MemoryMeter)); 223494: 48 8b 45 f8 mov -0x8(%rbp),%rax 223498: 48 8b 78 30 mov 0x30(%rax),%rdi 22349c: 31 f6 xor %esi,%esi 22349e: 48 ba 30 91 20 00 00 00 00 00 movabs $0x209130,%rdx 2234a8: e8 43 03 00 00 call 2237f0 2234ad: 48 89 c1 mov %rax,%rcx 2234b0: 48 8b 45 f0 mov -0x10(%rbp),%rax 2234b4: 48 89 08 mov %rcx,(%rax) if (!data->swapMeter) 2234b7: 48 8b 45 f0 mov -0x10(%rbp),%rax 2234bb: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 2234c0: 0f 85 24 00 00 00 jne 2234ea data->swapMeter = Meter_new(this->pl, 0, (const MeterClass*) Class(SwapMeter)); 2234c6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2234ca: 48 8b 78 30 mov 0x30(%rax),%rdi 2234ce: 31 f6 xor %esi,%esi 2234d0: 48 ba 70 a7 20 00 00 00 00 00 movabs $0x20a770,%rdx 2234da: e8 11 03 00 00 call 2237f0 2234df: 48 89 c1 mov %rax,%rcx 2234e2: 48 8b 45 f0 mov -0x10(%rbp),%rax 2234e6: 48 89 48 08 mov %rcx,0x8(%rax) if (Meter_initFn(data->memoryMeter)) 2234ea: 48 8b 45 f0 mov -0x10(%rbp),%rax 2234ee: 48 8b 00 mov (%rax),%rax 2234f1: 48 8b 00 mov (%rax),%rax 2234f4: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 2234f9: 0f 84 17 00 00 00 je 223516 Meter_init(data->memoryMeter); 2234ff: 48 8b 45 f0 mov -0x10(%rbp),%rax 223503: 48 8b 00 mov (%rax),%rax 223506: 48 8b 00 mov (%rax),%rax 223509: 48 8b 40 20 mov 0x20(%rax),%rax 22350d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 223511: 48 8b 39 mov (%rcx),%rdi 223514: ff d0 call *%rax if (Meter_initFn(data->swapMeter)) 223516: 48 8b 45 f0 mov -0x10(%rbp),%rax 22351a: 48 8b 40 08 mov 0x8(%rax),%rax 22351e: 48 8b 00 mov (%rax),%rax 223521: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 223526: 0f 84 19 00 00 00 je 223545 Meter_init(data->swapMeter); 22352c: 48 8b 45 f0 mov -0x10(%rbp),%rax 223530: 48 8b 40 08 mov 0x8(%rax),%rax 223534: 48 8b 00 mov (%rax),%rax 223537: 48 8b 40 20 mov 0x20(%rax),%rax 22353b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22353f: 48 8b 79 08 mov 0x8(%rcx),%rdi 223543: ff d0 call *%rax if (this->mode == 0) 223545: 48 8b 45 f8 mov -0x8(%rbp),%rax 223549: 83 78 18 00 cmpl $0x0,0x18(%rax) 22354d: 0f 85 0b 00 00 00 jne 22355e this->mode = BAR_METERMODE; 223553: 48 8b 45 f8 mov -0x8(%rbp),%rax 223557: c7 40 18 01 00 00 00 movl $0x1,0x18(%rax) this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h); 22355e: 48 8b 45 f0 mov -0x10(%rbp),%rax 223562: 48 8b 00 mov (%rax),%rax 223565: 48 63 40 18 movslq 0x18(%rax),%rax 223569: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 223571: 8b 40 10 mov 0x10(%rax),%eax 223574: 48 8b 4d f0 mov -0x10(%rbp),%rcx 223578: 48 8b 49 08 mov 0x8(%rcx),%rcx 22357c: 48 63 49 18 movslq 0x18(%rcx),%rcx 223580: 48 8b 0c cd 00 93 20 00 mov 0x209300(,%rcx,8),%rcx 223588: 3b 41 10 cmp 0x10(%rcx),%eax 22358b: 0f 8e 1e 00 00 00 jle 2235af 223591: 48 8b 45 f0 mov -0x10(%rbp),%rax 223595: 48 8b 00 mov (%rax),%rax 223598: 48 63 40 18 movslq 0x18(%rax),%rax 22359c: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 2235a4: 8b 40 10 mov 0x10(%rax),%eax 2235a7: 89 45 ec mov %eax,-0x14(%rbp) 2235aa: e9 1a 00 00 00 jmp 2235c9 2235af: 48 8b 45 f0 mov -0x10(%rbp),%rax 2235b3: 48 8b 40 08 mov 0x8(%rax),%rax 2235b7: 48 63 40 18 movslq 0x18(%rax),%rax 2235bb: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 2235c3: 8b 40 10 mov 0x10(%rax),%eax 2235c6: 89 45 ec mov %eax,-0x14(%rbp) 2235c9: 8b 4d ec mov -0x14(%rbp),%ecx 2235cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2235d0: 89 48 28 mov %ecx,0x28(%rax) } 2235d3: 48 83 c4 20 add $0x20,%rsp 2235d7: 5d pop %rbp 2235d8: c3 ret 2235d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002235e0 : Meter_setMode(data->swapMeter, mode); this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h); } static void MemorySwapMeter_done(Meter* this) { 2235e0: 55 push %rbp 2235e1: 48 89 e5 mov %rsp,%rbp 2235e4: 48 83 ec 10 sub $0x10,%rsp 2235e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) MemorySwapMeterData* data = this->meterData; 2235ec: 48 8b 45 f8 mov -0x8(%rbp),%rax 2235f0: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 2235f7: 48 89 45 f0 mov %rax,-0x10(%rbp) Meter_delete((Object*)data->swapMeter); 2235fb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2235ff: 48 8b 78 08 mov 0x8(%rax),%rdi 223603: e8 58 05 00 00 call 223b60 Meter_delete((Object*)data->memoryMeter); 223608: 48 8b 45 f0 mov -0x10(%rbp),%rax 22360c: 48 8b 38 mov (%rax),%rdi 22360f: e8 4c 05 00 00 call 223b60 free(data); 223614: 48 8b 7d f0 mov -0x10(%rbp),%rdi 223618: e8 43 ab 01 00 call 23e160 } 22361d: 48 83 c4 10 add $0x10,%rsp 223621: 5d pop %rbp 223622: c3 ret 223623: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22362d: 0f 1f 00 nopl (%rax) 0000000000223630 : static void MemorySwapMeter_updateMode(Meter* this, int mode) { 223630: 55 push %rbp 223631: 48 89 e5 mov %rsp,%rbp 223634: 48 83 ec 20 sub $0x20,%rsp 223638: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22363c: 89 75 f4 mov %esi,-0xc(%rbp) MemorySwapMeterData* data = this->meterData; 22363f: 48 8b 45 f8 mov -0x8(%rbp),%rax 223643: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 22364a: 48 89 45 e8 mov %rax,-0x18(%rbp) this->mode = mode; 22364e: 8b 4d f4 mov -0xc(%rbp),%ecx 223651: 48 8b 45 f8 mov -0x8(%rbp),%rax 223655: 89 48 18 mov %ecx,0x18(%rax) Meter_setMode(data->memoryMeter, mode); 223658: 48 8b 45 e8 mov -0x18(%rbp),%rax 22365c: 48 8b 38 mov (%rax),%rdi 22365f: 8b 75 f4 mov -0xc(%rbp),%esi 223662: e8 b9 02 00 00 call 223920 Meter_setMode(data->swapMeter, mode); 223667: 48 8b 45 e8 mov -0x18(%rbp),%rax 22366b: 48 8b 78 08 mov 0x8(%rax),%rdi 22366f: 8b 75 f4 mov -0xc(%rbp),%esi 223672: e8 a9 02 00 00 call 223920 this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h); 223677: 48 8b 45 e8 mov -0x18(%rbp),%rax 22367b: 48 8b 00 mov (%rax),%rax 22367e: 48 63 40 18 movslq 0x18(%rax),%rax 223682: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 22368a: 8b 40 10 mov 0x10(%rax),%eax 22368d: 48 8b 4d e8 mov -0x18(%rbp),%rcx 223691: 48 8b 49 08 mov 0x8(%rcx),%rcx 223695: 48 63 49 18 movslq 0x18(%rcx),%rcx 223699: 48 8b 0c cd 00 93 20 00 mov 0x209300(,%rcx,8),%rcx 2236a1: 3b 41 10 cmp 0x10(%rcx),%eax 2236a4: 0f 8e 1e 00 00 00 jle 2236c8 2236aa: 48 8b 45 e8 mov -0x18(%rbp),%rax 2236ae: 48 8b 00 mov (%rax),%rax 2236b1: 48 63 40 18 movslq 0x18(%rax),%rax 2236b5: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 2236bd: 8b 40 10 mov 0x10(%rax),%eax 2236c0: 89 45 e4 mov %eax,-0x1c(%rbp) 2236c3: e9 1a 00 00 00 jmp 2236e2 2236c8: 48 8b 45 e8 mov -0x18(%rbp),%rax 2236cc: 48 8b 40 08 mov 0x8(%rax),%rax 2236d0: 48 63 40 18 movslq 0x18(%rax),%rax 2236d4: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 2236dc: 8b 40 10 mov 0x10(%rax),%eax 2236df: 89 45 e4 mov %eax,-0x1c(%rbp) 2236e2: 8b 4d e4 mov -0x1c(%rbp),%ecx 2236e5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2236e9: 89 48 28 mov %ecx,0x28(%rax) } 2236ec: 48 83 c4 20 add $0x20,%rsp 2236f0: 5d pop %rbp 2236f1: c3 ret 2236f2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2236fc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000223700 : static void MemorySwapMeter_updateValues(Meter* this) { 223700: 55 push %rbp 223701: 48 89 e5 mov %rsp,%rbp 223704: 48 83 ec 10 sub $0x10,%rsp 223708: 48 89 7d f8 mov %rdi,-0x8(%rbp) MemorySwapMeterData* data = this->meterData; 22370c: 48 8b 45 f8 mov -0x8(%rbp),%rax 223710: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 223717: 48 89 45 f0 mov %rax,-0x10(%rbp) Meter_updateValues(data->memoryMeter); 22371b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22371f: 48 8b 00 mov (%rax),%rax 223722: 48 8b 00 mov (%rax),%rax 223725: 48 8b 40 38 mov 0x38(%rax),%rax 223729: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22372d: 48 8b 39 mov (%rcx),%rdi 223730: ff d0 call *%rax Meter_updateValues(data->swapMeter); 223732: 48 8b 45 f0 mov -0x10(%rbp),%rax 223736: 48 8b 40 08 mov 0x8(%rax),%rax 22373a: 48 8b 00 mov (%rax),%rax 22373d: 48 8b 40 38 mov 0x38(%rax),%rax 223741: 48 8b 4d f0 mov -0x10(%rbp),%rcx 223745: 48 8b 79 08 mov 0x8(%rcx),%rdi 223749: ff d0 call *%rax } 22374b: 48 83 c4 10 add $0x10,%rsp 22374f: 5d pop %rbp 223750: c3 ret 223751: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22375b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000223760 : static void MemorySwapMeter_draw(Meter* this, int x, int y, int w) { 223760: 55 push %rbp 223761: 48 89 e5 mov %rsp,%rbp 223764: 48 83 ec 30 sub $0x30,%rsp 223768: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22376c: 89 75 f4 mov %esi,-0xc(%rbp) 22376f: 89 55 f0 mov %edx,-0x10(%rbp) 223772: 89 4d ec mov %ecx,-0x14(%rbp) MemorySwapMeterData* data = this->meterData; 223775: 48 8b 45 f8 mov -0x8(%rbp),%rax 223779: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 223780: 48 89 45 e0 mov %rax,-0x20(%rbp) const int colwidth = w / 2; 223784: 8b 45 ec mov -0x14(%rbp),%eax 223787: b9 02 00 00 00 mov $0x2,%ecx 22378c: 99 cltd 22378d: f7 f9 idiv %ecx 22378f: 89 45 dc mov %eax,-0x24(%rbp) const int diff = w - colwidth * 2; 223792: 8b 45 ec mov -0x14(%rbp),%eax 223795: 8b 4d dc mov -0x24(%rbp),%ecx 223798: c1 e1 01 shl $0x1,%ecx 22379b: 29 c8 sub %ecx,%eax 22379d: 89 45 d8 mov %eax,-0x28(%rbp) data->memoryMeter->draw(data->memoryMeter, x, y, colwidth); 2237a0: 48 8b 45 e0 mov -0x20(%rbp),%rax 2237a4: 48 8b 00 mov (%rax),%rax 2237a7: 48 8b 40 08 mov 0x8(%rax),%rax 2237ab: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2237af: 48 8b 39 mov (%rcx),%rdi 2237b2: 8b 75 f4 mov -0xc(%rbp),%esi 2237b5: 8b 55 f0 mov -0x10(%rbp),%edx 2237b8: 8b 4d dc mov -0x24(%rbp),%ecx 2237bb: ff d0 call *%rax data->swapMeter->draw(data->swapMeter, x + colwidth + diff, y, colwidth); 2237bd: 48 8b 45 e0 mov -0x20(%rbp),%rax 2237c1: 48 8b 40 08 mov 0x8(%rax),%rax 2237c5: 48 8b 40 08 mov 0x8(%rax),%rax 2237c9: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2237cd: 48 8b 79 08 mov 0x8(%rcx),%rdi 2237d1: 8b 75 f4 mov -0xc(%rbp),%esi 2237d4: 03 75 dc add -0x24(%rbp),%esi 2237d7: 03 75 d8 add -0x28(%rbp),%esi 2237da: 8b 55 f0 mov -0x10(%rbp),%edx 2237dd: 8b 4d dc mov -0x24(%rbp),%ecx 2237e0: ff d0 call *%rax } 2237e2: 48 83 c4 30 add $0x30,%rsp 2237e6: 5d pop %rbp 2237e7: c3 ret 2237e8: cc int3 2237e9: cc int3 2237ea: cc int3 2237eb: cc int3 2237ec: cc int3 2237ed: cc int3 2237ee: cc int3 2237ef: cc int3 00000000002237f0 : .super = { .extends = Class(Object) } }; Meter* Meter_new(const struct ProcessList_* pl, unsigned int param, const MeterClass* type) { 2237f0: 55 push %rbp 2237f1: 48 89 e5 mov %rsp,%rbp 2237f4: 48 83 ec 30 sub $0x30,%rsp 2237f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2237fc: 89 75 f4 mov %esi,-0xc(%rbp) 2237ff: 48 89 55 e8 mov %rdx,-0x18(%rbp) Meter* this = xCalloc(1, sizeof(Meter)); 223803: bf 01 00 00 00 mov $0x1,%edi 223808: be 60 01 00 00 mov $0x160,%esi 22380d: e8 de 52 01 00 call 238af0 223812: 48 89 45 e0 mov %rax,-0x20(%rbp) Object_setClass(this, type); 223816: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22381a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22381e: 48 89 08 mov %rcx,(%rax) this->h = 1; 223821: 48 8b 45 e0 mov -0x20(%rbp),%rax 223825: c7 40 28 01 00 00 00 movl $0x1,0x28(%rax) this->param = param; 22382c: 8b 4d f4 mov -0xc(%rbp),%ecx 22382f: 48 8b 45 e0 mov -0x20(%rbp),%rax 223833: 89 48 1c mov %ecx,0x1c(%rax) this->pl = pl; 223836: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22383a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22383e: 48 89 48 30 mov %rcx,0x30(%rax) this->curItems = type->maxItems; 223842: 48 8b 45 e8 mov -0x18(%rbp),%rax 223846: 8a 88 90 00 00 00 mov 0x90(%rax),%cl 22384c: 48 8b 45 e0 mov -0x20(%rbp),%rax 223850: 88 48 38 mov %cl,0x38(%rax) this->curAttributes = NULL; 223853: 48 8b 45 e0 mov -0x20(%rbp),%rax 223857: 48 c7 40 40 00 00 00 00 movq $0x0,0x40(%rax) this->values = type->maxItems ? xCalloc(type->maxItems, sizeof(double)) : NULL; 22385f: 48 8b 45 e8 mov -0x18(%rbp),%rax 223863: 0f b6 80 90 00 00 00 movzbl 0x90(%rax),%eax 22386a: 83 f8 00 cmp $0x0,%eax 22386d: 0f 84 20 00 00 00 je 223893 223873: 48 8b 45 e8 mov -0x18(%rbp),%rax 223877: 0f b6 80 90 00 00 00 movzbl 0x90(%rax),%eax 22387e: 89 c7 mov %eax,%edi 223880: be 08 00 00 00 mov $0x8,%esi 223885: e8 66 52 01 00 call 238af0 22388a: 48 89 45 d8 mov %rax,-0x28(%rbp) 22388e: e9 0b 00 00 00 jmp 22389e 223893: 31 c0 xor %eax,%eax 223895: 48 89 45 d8 mov %rax,-0x28(%rbp) 223899: e9 00 00 00 00 jmp 22389e 22389e: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2238a2: 48 8b 45 e0 mov -0x20(%rbp),%rax 2238a6: 48 89 88 48 01 00 00 mov %rcx,0x148(%rax) this->total = type->total; 2238ad: 48 8b 45 e8 mov -0x18(%rbp),%rax 2238b1: f2 0f 10 40 60 movsd 0x60(%rax),%xmm0 2238b6: 48 8b 45 e0 mov -0x20(%rbp),%rax 2238ba: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->caption = xStrdup(type->caption); 2238c2: 48 8b 45 e8 mov -0x18(%rbp),%rax 2238c6: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 2238cd: e8 1e 57 01 00 call 238ff0 2238d2: 48 89 c1 mov %rax,%rcx 2238d5: 48 8b 45 e0 mov -0x20(%rbp),%rax 2238d9: 48 89 48 10 mov %rcx,0x10(%rax) if (Meter_initFn(this)) { 2238dd: 48 8b 45 e0 mov -0x20(%rbp),%rax 2238e1: 48 8b 00 mov (%rax),%rax 2238e4: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 2238e9: 0f 84 11 00 00 00 je 223900 Meter_init(this); 2238ef: 48 8b 45 e0 mov -0x20(%rbp),%rax 2238f3: 48 8b 00 mov (%rax),%rax 2238f6: 48 8b 40 20 mov 0x20(%rax),%rax 2238fa: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2238fe: ff d0 call *%rax } Meter_setMode(this, type->defaultMode); 223900: 48 8b 7d e0 mov -0x20(%rbp),%rdi 223904: 48 8b 45 e8 mov -0x18(%rbp),%rax 223908: 8b 70 58 mov 0x58(%rax),%esi 22390b: e8 10 00 00 00 call 223920 return this; 223910: 48 8b 45 e0 mov -0x20(%rbp),%rax 223914: 48 83 c4 30 add $0x30,%rsp 223918: 5d pop %rbp 223919: c3 ret 22391a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000223920 : } else { RichString_writeWide(out, CRT_colors[Meter_attributes(this)[0]], this->txtBuffer); } } void Meter_setMode(Meter* this, int modeIndex) { 223920: 55 push %rbp 223921: 48 89 e5 mov %rsp,%rbp 223924: 48 83 ec 20 sub $0x20,%rsp 223928: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22392c: 89 75 f4 mov %esi,-0xc(%rbp) if (modeIndex > 0 && modeIndex == this->mode) { 22392f: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 223933: 0f 8e 15 00 00 00 jle 22394e 223939: 8b 45 f4 mov -0xc(%rbp),%eax 22393c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 223940: 3b 41 18 cmp 0x18(%rcx),%eax 223943: 0f 85 05 00 00 00 jne 22394e return; 223949: e9 b0 00 00 00 jmp 2239fe } if (!modeIndex) { 22394e: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 223952: 0f 85 07 00 00 00 jne 22395f modeIndex = 1; 223958: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%rbp) } assert(modeIndex < LAST_METERMODE); if (Meter_defaultMode(this) == CUSTOM_METERMODE) { 22395f: 48 8b 45 f8 mov -0x8(%rbp),%rax 223963: 48 8b 00 mov (%rax),%rax 223966: 83 78 58 00 cmpl $0x0,0x58(%rax) 22396a: 0f 85 3e 00 00 00 jne 2239ae this->draw = Meter_drawFn(this); 223970: 48 8b 45 f8 mov -0x8(%rbp),%rax 223974: 48 8b 00 mov (%rax),%rax 223977: 48 8b 48 40 mov 0x40(%rax),%rcx 22397b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22397f: 48 89 48 08 mov %rcx,0x8(%rax) if (Meter_updateModeFn(this)) { 223983: 48 8b 45 f8 mov -0x8(%rbp),%rax 223987: 48 8b 00 mov (%rax),%rax 22398a: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22398f: 0f 84 14 00 00 00 je 2239a9 Meter_updateMode(this, modeIndex); 223995: 48 8b 45 f8 mov -0x8(%rbp),%rax 223999: 48 8b 00 mov (%rax),%rax 22399c: 48 8b 40 30 mov 0x30(%rax),%rax 2239a0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2239a4: 8b 75 f4 mov -0xc(%rbp),%esi 2239a7: ff d0 call *%rax } } else { 2239a9: e9 46 00 00 00 jmp 2239f4 assert(modeIndex >= 1); free(this->drawData); 2239ae: 48 8b 45 f8 mov -0x8(%rbp),%rax 2239b2: 48 8b 78 20 mov 0x20(%rax),%rdi 2239b6: e8 a5 a7 01 00 call 23e160 this->drawData = NULL; 2239bb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2239bf: 48 c7 40 20 00 00 00 00 movq $0x0,0x20(%rax) const MeterMode* mode = Meter_modes[modeIndex]; 2239c7: 48 63 45 f4 movslq -0xc(%rbp),%rax 2239cb: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 2239d3: 48 89 45 e8 mov %rax,-0x18(%rbp) this->draw = mode->draw; 2239d7: 48 8b 45 e8 mov -0x18(%rbp),%rax 2239db: 48 8b 08 mov (%rax),%rcx 2239de: 48 8b 45 f8 mov -0x8(%rbp),%rax 2239e2: 48 89 48 08 mov %rcx,0x8(%rax) this->h = mode->h; 2239e6: 48 8b 45 e8 mov -0x18(%rbp),%rax 2239ea: 8b 48 10 mov 0x10(%rax),%ecx 2239ed: 48 8b 45 f8 mov -0x8(%rbp),%rax 2239f1: 89 48 28 mov %ecx,0x28(%rax) } this->mode = modeIndex; 2239f4: 8b 4d f4 mov -0xc(%rbp),%ecx 2239f7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2239fb: 89 48 18 mov %ecx,0x18(%rax) } 2239fe: 48 83 c4 20 add $0x20,%rsp 223a02: 5d pop %rbp 223a03: c3 ret 223a04: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 223a0e: 66 90 xchg %ax,%ax 0000000000223a10 : int Meter_humanUnit(char* buffer, unsigned long int value, size_t size) { 223a10: 55 push %rbp 223a11: 48 89 e5 mov %rsp,%rbp 223a14: 48 83 ec 30 sub $0x30,%rsp 223a18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 223a1c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 223a20: 48 89 55 e8 mov %rdx,-0x18(%rbp) const char* prefix = "KMGTPEZY"; 223a24: 48 b8 d6 39 20 00 00 00 00 00 movabs $0x2039d6,%rax 223a2e: 48 89 45 e0 mov %rax,-0x20(%rbp) unsigned long int powi = 1; 223a32: 48 c7 45 d8 01 00 00 00 movq $0x1,-0x28(%rbp) unsigned int powj = 1, precision = 2; 223a3a: c7 45 d4 01 00 00 00 movl $0x1,-0x2c(%rbp) 223a41: c7 45 d0 02 00 00 00 movl $0x2,-0x30(%rbp) if (value / 1024 < powi) 223a48: 48 8b 45 f0 mov -0x10(%rbp),%rax 223a4c: 48 c1 e8 0a shr $0xa,%rax 223a50: 48 3b 45 d8 cmp -0x28(%rbp),%rax 223a54: 0f 83 05 00 00 00 jae 223a5f break; 223a5a: e9 33 00 00 00 jmp 223a92 if (prefix[1] == '\0') 223a5f: 48 8b 45 e0 mov -0x20(%rbp),%rax 223a63: 0f be 40 01 movsbl 0x1(%rax),%eax 223a67: 83 f8 00 cmp $0x0,%eax 223a6a: 0f 85 05 00 00 00 jne 223a75 break; 223a70: e9 1d 00 00 00 jmp 223a92 powi *= 1024; 223a75: 48 8b 45 d8 mov -0x28(%rbp),%rax 223a79: 48 c1 e0 0a shl $0xa,%rax 223a7d: 48 89 45 d8 mov %rax,-0x28(%rbp) ++prefix; 223a81: 48 8b 45 e0 mov -0x20(%rbp),%rax 223a85: 48 83 c0 01 add $0x1,%rax 223a89: 48 89 45 e0 mov %rax,-0x20(%rbp) for (;;) { 223a8d: e9 b6 ff ff ff jmp 223a48 if (*prefix == 'K') 223a92: 48 8b 45 e0 mov -0x20(%rbp),%rax 223a96: 0f be 00 movsbl (%rax),%eax 223a99: 83 f8 4b cmp $0x4b,%eax 223a9c: 0f 85 07 00 00 00 jne 223aa9 precision = 0; 223aa2: c7 45 d0 00 00 00 00 movl $0x0,-0x30(%rbp) for (; precision > 0; precision--) { 223aa9: e9 00 00 00 00 jmp 223aae 223aae: 83 7d d0 00 cmpl $0x0,-0x30(%rbp) 223ab2: 0f 86 37 00 00 00 jbe 223aef powj *= 10; 223ab8: 6b 45 d4 0a imul $0xa,-0x2c(%rbp),%eax 223abc: 89 45 d4 mov %eax,-0x2c(%rbp) if (value / powi < powj) 223abf: 48 8b 45 f0 mov -0x10(%rbp),%rax 223ac3: 31 c9 xor %ecx,%ecx 223ac5: 89 ca mov %ecx,%edx 223ac7: 48 f7 75 d8 divq -0x28(%rbp) 223acb: 8b 4d d4 mov -0x2c(%rbp),%ecx 223ace: 48 39 c8 cmp %rcx,%rax 223ad1: 0f 83 05 00 00 00 jae 223adc break; 223ad7: e9 13 00 00 00 jmp 223aef } 223adc: e9 00 00 00 00 jmp 223ae1 for (; precision > 0; precision--) { 223ae1: 8b 45 d0 mov -0x30(%rbp),%eax 223ae4: 83 c0 ff add $0xffffffff,%eax 223ae7: 89 45 d0 mov %eax,-0x30(%rbp) 223aea: e9 bf ff ff ff jmp 223aae return snprintf(buffer, size, "%.*f%c", precision, (double) value / powi, *prefix); 223aef: 48 8b 7d f8 mov -0x8(%rbp),%rdi 223af3: 48 8b 75 e8 mov -0x18(%rbp),%rsi 223af7: 8b 4d d0 mov -0x30(%rbp),%ecx 223afa: f3 0f 7e 45 f0 movq -0x10(%rbp),%xmm0 223aff: 0f 28 1d da 4a fe ff movaps -0x1b526(%rip),%xmm3 # 2085e0 223b06: 66 0f 62 c3 punpckldq %xmm3,%xmm0 223b0a: 66 0f 28 15 de 4a fe ff movapd -0x1b522(%rip),%xmm2 # 2085f0 223b12: 66 0f 5c c2 subpd %xmm2,%xmm0 223b16: 0f 28 c8 movaps %xmm0,%xmm1 223b19: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 223b1d: f2 0f 58 c1 addsd %xmm1,%xmm0 223b21: f3 0f 7e 4d d8 movq -0x28(%rbp),%xmm1 223b26: 66 0f 62 cb punpckldq %xmm3,%xmm1 223b2a: 66 0f 5c ca subpd %xmm2,%xmm1 223b2e: 0f 28 d1 movaps %xmm1,%xmm2 223b31: 66 0f 15 c9 unpckhpd %xmm1,%xmm1 223b35: f2 0f 58 ca addsd %xmm2,%xmm1 223b39: f2 0f 5e c1 divsd %xmm1,%xmm0 223b3d: 48 8b 45 e0 mov -0x20(%rbp),%rax 223b41: 44 0f be 00 movsbl (%rax),%r8d 223b45: 48 ba b6 4b 20 00 00 00 00 00 movabs $0x204bb6,%rdx 223b4f: b0 01 mov $0x1,%al 223b51: e8 5a a9 01 00 call 23e4b0 223b56: 48 83 c4 30 add $0x30,%rsp 223b5a: 5d pop %rbp 223b5b: c3 ret 223b5c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000223b60 : void Meter_delete(Object* cast) { 223b60: 55 push %rbp 223b61: 48 89 e5 mov %rsp,%rbp 223b64: 48 83 ec 10 sub $0x10,%rsp 223b68: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!cast) 223b6c: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 223b71: 0f 85 05 00 00 00 jne 223b7c return; 223b77: e9 5e 00 00 00 jmp 223bda Meter* this = (Meter*) cast; 223b7c: 48 8b 45 f8 mov -0x8(%rbp),%rax 223b80: 48 89 45 f0 mov %rax,-0x10(%rbp) if (Meter_doneFn(this)) { 223b84: 48 8b 45 f0 mov -0x10(%rbp),%rax 223b88: 48 8b 00 mov (%rax),%rax 223b8b: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 223b90: 0f 84 11 00 00 00 je 223ba7 Meter_done(this); 223b96: 48 8b 45 f0 mov -0x10(%rbp),%rax 223b9a: 48 8b 00 mov (%rax),%rax 223b9d: 48 8b 40 28 mov 0x28(%rax),%rax 223ba1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 223ba5: ff d0 call *%rax free(this->drawData); 223ba7: 48 8b 45 f0 mov -0x10(%rbp),%rax 223bab: 48 8b 78 20 mov 0x20(%rax),%rdi 223baf: e8 ac a5 01 00 call 23e160 free(this->caption); 223bb4: 48 8b 45 f0 mov -0x10(%rbp),%rax 223bb8: 48 8b 78 10 mov 0x10(%rax),%rdi 223bbc: e8 9f a5 01 00 call 23e160 free(this->values); 223bc1: 48 8b 45 f0 mov -0x10(%rbp),%rax 223bc5: 48 8b b8 48 01 00 00 mov 0x148(%rax),%rdi 223bcc: e8 8f a5 01 00 call 23e160 free(this); 223bd1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 223bd5: e8 86 a5 01 00 call 23e160 } 223bda: 48 83 c4 10 add $0x10,%rsp 223bde: 5d pop %rbp 223bdf: c3 ret 0000000000223be0 : void Meter_setCaption(Meter* this, const char* caption) { 223be0: 55 push %rbp 223be1: 48 89 e5 mov %rsp,%rbp 223be4: 48 83 ec 10 sub $0x10,%rsp 223be8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 223bec: 48 89 75 f0 mov %rsi,-0x10(%rbp) free_and_xStrdup(&this->caption, caption); 223bf0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 223bf4: 48 83 c7 10 add $0x10,%rdi 223bf8: 48 8b 75 f0 mov -0x10(%rbp),%rsi 223bfc: e8 ef 59 01 00 call 2395f0 } 223c01: 48 83 c4 10 add $0x10,%rsp 223c05: 5d pop %rbp 223c06: c3 ret 223c07: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000223c10 : ListItem* Meter_toListItem(const Meter* this, bool moving) { 223c10: 55 push %rbp 223c11: 48 89 e5 mov %rsp,%rbp 223c14: 48 81 ec a0 00 00 00 sub $0xa0,%rsp 223c1b: 40 88 f0 mov %sil,%al 223c1e: 48 8b 0d 0b ec 01 00 mov 0x1ec0b(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 223c25: 48 89 4d f8 mov %rcx,-0x8(%rbp) 223c29: 48 89 bd 78 ff ff ff mov %rdi,-0x88(%rbp) 223c30: 24 01 and $0x1,%al 223c32: 88 85 77 ff ff ff mov %al,-0x89(%rbp) char mode[20]; if (this->mode) { 223c38: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 223c3f: 83 78 18 00 cmpl $0x0,0x18(%rax) 223c43: 0f 84 36 00 00 00 je 223c7f xSnprintf(mode, sizeof(mode), " [%s]", Meter_modes[this->mode]->uiName); 223c49: 48 8d 7d e0 lea -0x20(%rbp),%rdi 223c4d: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 223c54: 48 63 40 18 movslq 0x18(%rax),%rax 223c58: 48 8b 04 c5 00 93 20 00 mov 0x209300(,%rax,8),%rax 223c60: 48 8b 48 08 mov 0x8(%rax),%rcx 223c64: be 14 00 00 00 mov $0x14,%esi 223c69: 48 ba b4 6c 20 00 00 00 00 00 movabs $0x206cb4,%rdx 223c73: b0 00 mov $0x0,%al 223c75: e8 76 58 01 00 call 2394f0 } else { 223c7a: e9 04 00 00 00 jmp 223c83 mode[0] = '\0'; 223c7f: c6 45 e0 00 movb $0x0,-0x20(%rbp) } char name[32]; if (Meter_getUiNameFn(this)) 223c83: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 223c8a: 48 8b 00 mov (%rax),%rax 223c8d: 48 83 78 50 00 cmpq $0x0,0x50(%rax) 223c92: 0f 84 25 00 00 00 je 223cbd Meter_getUiName(this, name, sizeof(name)); 223c98: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 223c9f: 48 8b 00 mov (%rax),%rax 223ca2: 48 8b 40 50 mov 0x50(%rax),%rax 223ca6: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 223cad: 48 8d 75 c0 lea -0x40(%rbp),%rsi 223cb1: ba 20 00 00 00 mov $0x20,%edx 223cb6: ff d0 call *%rax 223cb8: e9 28 00 00 00 jmp 223ce5 else xSnprintf(name, sizeof(name), "%s", Meter_uiName(this)); 223cbd: 48 8d 7d c0 lea -0x40(%rbp),%rdi 223cc1: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 223cc8: 48 8b 00 mov (%rax),%rax 223ccb: 48 8b 48 78 mov 0x78(%rax),%rcx 223ccf: be 20 00 00 00 mov $0x20,%esi 223cd4: 48 ba 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rdx 223cde: b0 00 mov $0x0,%al 223ce0: e8 0b 58 01 00 call 2394f0 char buffer[50]; xSnprintf(buffer, sizeof(buffer), "%s%s", name, mode); 223ce5: 48 8d 7d 80 lea -0x80(%rbp),%rdi 223ce9: 48 8d 4d c0 lea -0x40(%rbp),%rcx 223ced: 4c 8d 45 e0 lea -0x20(%rbp),%r8 223cf1: be 32 00 00 00 mov $0x32,%esi 223cf6: 48 ba 22 69 20 00 00 00 00 00 movabs $0x206922,%rdx 223d00: b0 00 mov $0x0,%al 223d02: e8 e9 57 01 00 call 2394f0 ListItem* li = ListItem_new(buffer, 0); 223d07: 48 8d 7d 80 lea -0x80(%rbp),%rdi 223d0b: 31 f6 xor %esi,%esi 223d0d: e8 3e e0 ff ff call 221d50 223d12: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) li->moving = moving; 223d19: 8a 8d 77 ff ff ff mov -0x89(%rbp),%cl 223d1f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 223d26: 80 e1 01 and $0x1,%cl 223d29: 88 48 14 mov %cl,0x14(%rax) return li; 223d2c: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 223d33: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 223d3a: 48 8b 05 ef ea 01 00 mov 0x1eaef(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 223d41: 48 8b 4d f8 mov -0x8(%rbp),%rcx 223d45: 48 39 c8 cmp %rcx,%rax 223d48: 0f 85 10 00 00 00 jne 223d5e 223d4e: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 223d55: 48 81 c4 a0 00 00 00 add $0xa0,%rsp 223d5c: 5d pop %rbp 223d5d: c3 ret 223d5e: e8 dd a3 01 00 call 23e140 <__stack_chk_fail@plt> 223d63: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 223d6d: 0f 1f 00 nopl (%rax) 0000000000223d70 : static void BlankMeter_updateValues(Meter* this) { this->txtBuffer[0] = '\0'; } static void BlankMeter_display(ATTR_UNUSED const Object* cast, ATTR_UNUSED RichString* out) { 223d70: 55 push %rbp 223d71: 48 89 e5 mov %rsp,%rbp 223d74: 48 89 7d f8 mov %rdi,-0x8(%rbp) 223d78: 48 89 75 f0 mov %rsi,-0x10(%rbp) } 223d7c: 5d pop %rbp 223d7d: c3 ret 223d7e: 66 90 xchg %ax,%ax 0000000000223d80 : static void BlankMeter_updateValues(Meter* this) { 223d80: 55 push %rbp 223d81: 48 89 e5 mov %rsp,%rbp 223d84: 48 89 7d f8 mov %rdi,-0x8(%rbp) this->txtBuffer[0] = '\0'; 223d88: 48 8b 45 f8 mov -0x8(%rbp),%rax 223d8c: c6 40 48 00 movb $0x0,0x48(%rax) } 223d90: 5d pop %rbp 223d91: c3 ret 223d92: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 223d9c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000223da0 : static void BarMeterMode_draw(Meter* this, int x, int y, int w) { 223da0: 55 push %rbp 223da1: 48 89 e5 mov %rsp,%rbp 223da4: 48 81 ec e0 27 00 00 sub $0x27e0,%rsp 223dab: 48 8b 05 7e ea 01 00 mov 0x1ea7e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 223db2: 48 89 45 f8 mov %rax,-0x8(%rbp) 223db6: 48 89 bd e8 d8 ff ff mov %rdi,-0x2718(%rbp) 223dbd: 89 b5 e4 d8 ff ff mov %esi,-0x271c(%rbp) 223dc3: 89 95 e0 d8 ff ff mov %edx,-0x2720(%rbp) 223dc9: 89 8d dc d8 ff ff mov %ecx,-0x2724(%rbp) const char* caption = Meter_getCaption(this); 223dcf: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 223dd6: 48 8b 00 mov (%rax),%rax 223dd9: 48 83 78 48 00 cmpq $0x0,0x48(%rax) 223dde: 0f 84 23 00 00 00 je 223e07 223de4: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 223deb: 48 8b 00 mov (%rax),%rax 223dee: 48 8b 40 48 mov 0x48(%rax),%rax 223df2: 48 8b bd e8 d8 ff ff mov -0x2718(%rbp),%rdi 223df9: ff d0 call *%rax 223dfb: 48 89 85 98 d8 ff ff mov %rax,-0x2768(%rbp) 223e02: e9 12 00 00 00 jmp 223e19 223e07: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 223e0e: 48 8b 40 10 mov 0x10(%rax),%rax 223e12: 48 89 85 98 d8 ff ff mov %rax,-0x2768(%rbp) 223e19: 48 8b 85 98 d8 ff ff mov -0x2768(%rbp),%rax 223e20: 48 89 85 d0 d8 ff ff mov %rax,-0x2730(%rbp) w -= 2; 223e27: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 223e2d: 83 e8 02 sub $0x2,%eax 223e30: 89 85 dc d8 ff ff mov %eax,-0x2724(%rbp) attrset(CRT_colors[METER_TEXT]); 223e36: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223e3e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223e46: 8b 70 38 mov 0x38(%rax),%esi 223e49: e8 32 a3 01 00 call 23e180 int captionLen = 3; 223e4e: c7 85 cc d8 ff ff 03 00 00 00 movl $0x3,-0x2734(%rbp) mvaddnstr(y, x, caption, captionLen); 223e58: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223e60: 8b b5 e0 d8 ff ff mov -0x2720(%rbp),%esi 223e66: 8b 95 e4 d8 ff ff mov -0x271c(%rbp),%edx 223e6c: e8 1f a3 01 00 call 23e190 223e71: 83 f8 ff cmp $0xffffffff,%eax 223e74: 0f 85 05 00 00 00 jne 223e7f 223e7a: e9 1a 00 00 00 jmp 223e99 223e7f: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223e87: 48 8b b5 d0 d8 ff ff mov -0x2730(%rbp),%rsi 223e8e: 8b 95 cc d8 ff ff mov -0x2734(%rbp),%edx 223e94: e8 17 a3 01 00 call 23e1b0 x += captionLen; 223e99: 8b 85 cc d8 ff ff mov -0x2734(%rbp),%eax 223e9f: 03 85 e4 d8 ff ff add -0x271c(%rbp),%eax 223ea5: 89 85 e4 d8 ff ff mov %eax,-0x271c(%rbp) w -= captionLen; 223eab: 8b 8d cc d8 ff ff mov -0x2734(%rbp),%ecx 223eb1: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 223eb7: 29 c8 sub %ecx,%eax 223eb9: 89 85 dc d8 ff ff mov %eax,-0x2724(%rbp) attrset(CRT_colors[BAR_BORDER]); 223ebf: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223ec7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223ecf: 8b b0 b4 00 00 00 mov 0xb4(%rax),%esi 223ed5: e8 a6 a2 01 00 call 23e180 mvaddch(y, x, '['); 223eda: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223ee2: 8b b5 e0 d8 ff ff mov -0x2720(%rbp),%esi 223ee8: 8b 95 e4 d8 ff ff mov -0x271c(%rbp),%edx 223eee: e8 9d a2 01 00 call 23e190 223ef3: 83 f8 ff cmp $0xffffffff,%eax 223ef6: 0f 85 05 00 00 00 jne 223f01 223efc: e9 12 00 00 00 jmp 223f13 223f01: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223f09: be 5b 00 00 00 mov $0x5b,%esi 223f0e: e8 0d a7 01 00 call 23e620 mvaddch(y, x + MAXIMUM(w, 0), ']'); 223f13: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 223f1b: 48 89 85 88 d8 ff ff mov %rax,-0x2778(%rbp) 223f22: 8b 85 e0 d8 ff ff mov -0x2720(%rbp),%eax 223f28: 89 85 90 d8 ff ff mov %eax,-0x2770(%rbp) 223f2e: 8b 85 e4 d8 ff ff mov -0x271c(%rbp),%eax 223f34: 89 85 94 d8 ff ff mov %eax,-0x276c(%rbp) 223f3a: 83 bd dc d8 ff ff 00 cmpl $0x0,-0x2724(%rbp) 223f41: 0f 8e 11 00 00 00 jle 223f58 223f47: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 223f4d: 89 85 84 d8 ff ff mov %eax,-0x277c(%rbp) 223f53: e9 0d 00 00 00 jmp 223f65 223f58: 31 c0 xor %eax,%eax 223f5a: 89 85 84 d8 ff ff mov %eax,-0x277c(%rbp) 223f60: e9 00 00 00 00 jmp 223f65 223f65: 8b b5 90 d8 ff ff mov -0x2770(%rbp),%esi 223f6b: 48 8b bd 88 d8 ff ff mov -0x2778(%rbp),%rdi 223f72: 8b 95 94 d8 ff ff mov -0x276c(%rbp),%edx 223f78: 8b 85 84 d8 ff ff mov -0x277c(%rbp),%eax 223f7e: 01 c2 add %eax,%edx 223f80: e8 0b a2 01 00 call 23e190 223f85: 83 f8 ff cmp $0xffffffff,%eax 223f88: 0f 85 05 00 00 00 jne 223f93 223f8e: e9 12 00 00 00 jmp 223fa5 223f93: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223f9b: be 5d 00 00 00 mov $0x5d,%esi 223fa0: e8 7b a6 01 00 call 23e620 attrset(CRT_colors[RESET_COLOR]); 223fa5: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 223fad: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 223fb5: 8b 30 mov (%rax),%esi 223fb7: e8 c4 a1 01 00 call 23e180 w--; 223fbc: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 223fc2: 83 c0 ff add $0xffffffff,%eax 223fc5: 89 85 dc d8 ff ff mov %eax,-0x2724(%rbp) x++; 223fcb: 8b 85 e4 d8 ff ff mov -0x271c(%rbp),%eax 223fd1: 83 c0 01 add $0x1,%eax 223fd4: 89 85 e4 d8 ff ff mov %eax,-0x271c(%rbp) if (w < 1) 223fda: 83 bd dc d8 ff ff 01 cmpl $0x1,-0x2724(%rbp) 223fe1: 0f 8d 05 00 00 00 jge 223fec return; 223fe7: e9 41 08 00 00 jmp 22482d RichString_begin(bar); 223fec: e9 00 00 00 00 jmp 223ff1 223ff1: c7 85 80 d9 ff ff 00 00 00 00 movl $0x0,-0x2680(%rbp) 223ffb: 48 8d 85 80 d9 ff ff lea -0x2680(%rbp),%rax 224002: 48 83 c0 10 add $0x10,%rax 224006: 48 89 85 88 d9 ff ff mov %rax,-0x2678(%rbp) 22400d: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 224014: 48 89 85 78 d8 ff ff mov %rax,-0x2788(%rbp) 22401b: 48 8d bd 60 d9 ff ff lea -0x26a0(%rbp),%rdi 224022: 31 f6 xor %esi,%esi 224024: ba 1c 00 00 00 mov $0x1c,%edx 224029: e8 12 a2 01 00 call 23e240 22402e: 48 8b 85 78 d8 ff ff mov -0x2788(%rbp),%rax 224035: 48 8b 8d 60 d9 ff ff mov -0x26a0(%rbp),%rcx 22403c: 48 89 08 mov %rcx,(%rax) 22403f: 48 8b 8d 68 d9 ff ff mov -0x2698(%rbp),%rcx 224046: 48 89 48 08 mov %rcx,0x8(%rax) 22404a: 48 8b 8d 70 d9 ff ff mov -0x2690(%rbp),%rcx 224051: 48 89 48 10 mov %rcx,0x10(%rax) 224055: 8b 8d 78 d9 ff ff mov -0x2688(%rbp),%ecx 22405b: 89 48 18 mov %ecx,0x18(%rax) 22405e: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) RichString_appendChr(&bar, 0, ' ', w); 224065: 8b 8d dc d8 ff ff mov -0x2724(%rbp),%ecx 22406b: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 224072: 31 f6 xor %esi,%esi 224074: ba 20 00 00 00 mov $0x20,%edx 224079: e8 62 e0 00 00 call 2320e0 RichString_appendWide(&bar, 0, this->txtBuffer); 22407e: 48 8b 95 e8 d8 ff ff mov -0x2718(%rbp),%rdx 224085: 48 83 c2 48 add $0x48,%rdx 224089: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 224090: 31 f6 xor %esi,%esi 224092: e8 39 e2 00 00 call 2322d0 int startPos = RichString_sizeVal(bar) - w; 224097: 8b 85 80 d9 ff ff mov -0x2680(%rbp),%eax 22409d: 2b 85 dc d8 ff ff sub -0x2724(%rbp),%eax 2240a3: 89 85 c8 d8 ff ff mov %eax,-0x2738(%rbp) if (startPos > w) { 2240a9: 8b 85 c8 d8 ff ff mov -0x2738(%rbp),%eax 2240af: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 2240b5: 0f 8e 18 01 00 00 jle 2241d3 for (int pos = 2 * w; pos > w; pos--) { 2240bb: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 2240c1: c1 e0 01 shl $0x1,%eax 2240c4: 89 85 c4 d8 ff ff mov %eax,-0x273c(%rbp) 2240ca: 8b 85 c4 d8 ff ff mov -0x273c(%rbp),%eax 2240d0: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 2240d6: 0f 8e bc 00 00 00 jle 224198 if (RichString_getCharVal(bar, pos) == ' ') { 2240dc: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2240e3: 48 63 8d c4 d8 ff ff movslq -0x273c(%rbp),%rcx 2240ea: 48 6b c9 1c imul $0x1c,%rcx,%rcx 2240ee: 48 01 c8 add %rcx,%rax 2240f1: 83 78 04 20 cmpl $0x20,0x4(%rax) 2240f5: 0f 85 84 00 00 00 jne 22417f while (pos > w && RichString_getCharVal(bar, pos - 1) == ' ') 2240fb: e9 00 00 00 00 jmp 224100 224100: 8b 8d c4 d8 ff ff mov -0x273c(%rbp),%ecx 224106: 31 c0 xor %eax,%eax 224108: 3b 8d dc d8 ff ff cmp -0x2724(%rbp),%ecx 22410e: 88 85 77 d8 ff ff mov %al,-0x2789(%rbp) 224114: 0f 8e 27 00 00 00 jle 224141 22411a: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 224121: 8b 8d c4 d8 ff ff mov -0x273c(%rbp),%ecx 224127: 83 e9 01 sub $0x1,%ecx 22412a: 48 63 c9 movslq %ecx,%rcx 22412d: 48 6b c9 1c imul $0x1c,%rcx,%rcx 224131: 48 01 c8 add %rcx,%rax 224134: 83 78 04 20 cmpl $0x20,0x4(%rax) 224138: 0f 94 c0 sete %al 22413b: 88 85 77 d8 ff ff mov %al,-0x2789(%rbp) 224141: 8a 85 77 d8 ff ff mov -0x2789(%rbp),%al 224147: a8 01 test $0x1,%al 224149: 0f 85 05 00 00 00 jne 224154 22414f: e9 14 00 00 00 jmp 224168 pos--; 224154: 8b 85 c4 d8 ff ff mov -0x273c(%rbp),%eax 22415a: 83 c0 ff add $0xffffffff,%eax 22415d: 89 85 c4 d8 ff ff mov %eax,-0x273c(%rbp) while (pos > w && RichString_getCharVal(bar, pos - 1) == ' ') 224163: e9 98 ff ff ff jmp 224100 startPos = pos - w; 224168: 8b 85 c4 d8 ff ff mov -0x273c(%rbp),%eax 22416e: 2b 85 dc d8 ff ff sub -0x2724(%rbp),%eax 224174: 89 85 c8 d8 ff ff mov %eax,-0x2738(%rbp) break; 22417a: e9 19 00 00 00 jmp 224198 } 22417f: e9 00 00 00 00 jmp 224184 for (int pos = 2 * w; pos > w; pos--) { 224184: 8b 85 c4 d8 ff ff mov -0x273c(%rbp),%eax 22418a: 83 c0 ff add $0xffffffff,%eax 22418d: 89 85 c4 d8 ff ff mov %eax,-0x273c(%rbp) 224193: e9 32 ff ff ff jmp 2240ca startPos = MINIMUM(startPos, w); 224198: 8b 85 c8 d8 ff ff mov -0x2738(%rbp),%eax 22419e: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 2241a4: 0f 8d 11 00 00 00 jge 2241bb 2241aa: 8b 85 c8 d8 ff ff mov -0x2738(%rbp),%eax 2241b0: 89 85 70 d8 ff ff mov %eax,-0x2790(%rbp) 2241b6: e9 0c 00 00 00 jmp 2241c7 2241bb: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 2241c1: 89 85 70 d8 ff ff mov %eax,-0x2790(%rbp) 2241c7: 8b 85 70 d8 ff ff mov -0x2790(%rbp),%eax 2241cd: 89 85 c8 d8 ff ff mov %eax,-0x2738(%rbp) int offset = 0; 2241d3: c7 85 c0 d8 ff ff 00 00 00 00 movl $0x0,-0x2740(%rbp) for (uint8_t i = 0; i < this->curItems; i++) { 2241dd: c6 85 bf d8 ff ff 00 movb $0x0,-0x2741(%rbp) 2241e4: 0f b6 85 bf d8 ff ff movzbl -0x2741(%rbp),%eax 2241eb: 48 8b 8d e8 d8 ff ff mov -0x2718(%rbp),%rcx 2241f2: 0f b6 49 38 movzbl 0x38(%rcx),%ecx 2241f6: 39 c8 cmp %ecx,%eax 2241f8: 0f 8d 2c 03 00 00 jge 22452a double value = this->values[i]; 2241fe: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 224205: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 22420c: 0f b6 8d bf d8 ff ff movzbl -0x2741(%rbp),%ecx 224213: f2 0f 10 04 c8 movsd (%rax,%rcx,8),%xmm0 224218: f2 0f 11 85 b0 d8 ff ff movsd %xmm0,-0x2750(%rbp) value = CLAMP(value, 0.0, this->total); 224220: f2 0f 10 85 b0 d8 ff ff movsd -0x2750(%rbp),%xmm0 224228: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 22422f: 66 0f 2e 80 50 01 00 00 ucomisd 0x150(%rax),%xmm0 224237: 0f 86 1c 00 00 00 jbe 224259 22423d: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 224244: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 22424c: f2 0f 11 85 68 d8 ff ff movsd %xmm0,-0x2798(%rbp) 224254: e9 4a 00 00 00 jmp 2242a3 224259: f2 0f 10 85 b0 d8 ff ff movsd -0x2750(%rbp),%xmm0 224261: 0f 57 c9 xorps %xmm1,%xmm1 224264: 66 0f 2e c1 ucomisd %xmm1,%xmm0 224268: 0f 86 15 00 00 00 jbe 224283 22426e: f2 0f 10 85 b0 d8 ff ff movsd -0x2750(%rbp),%xmm0 224276: f2 0f 11 85 60 d8 ff ff movsd %xmm0,-0x27a0(%rbp) 22427e: e9 10 00 00 00 jmp 224293 224283: 0f 57 c0 xorps %xmm0,%xmm0 224286: f2 0f 11 85 60 d8 ff ff movsd %xmm0,-0x27a0(%rbp) 22428e: e9 00 00 00 00 jmp 224293 224293: f2 0f 10 85 60 d8 ff ff movsd -0x27a0(%rbp),%xmm0 22429b: f2 0f 11 85 68 d8 ff ff movsd %xmm0,-0x2798(%rbp) 2242a3: f2 0f 10 85 68 d8 ff ff movsd -0x2798(%rbp),%xmm0 2242ab: f2 0f 11 85 b0 d8 ff ff movsd %xmm0,-0x2750(%rbp) if (value > 0) { 2242b3: f2 0f 10 85 b0 d8 ff ff movsd -0x2750(%rbp),%xmm0 2242bb: 0f 57 c9 xorps %xmm1,%xmm1 2242be: 66 0f 2e c1 ucomisd %xmm1,%xmm0 2242c2: 0f 86 3f 00 00 00 jbe 224307 blockSizes[i] = ceil((value / this->total) * w); 2242c8: f2 0f 10 85 b0 d8 ff ff movsd -0x2750(%rbp),%xmm0 2242d0: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 2242d7: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 2242df: f2 0f 2a 8d dc d8 ff ff cvtsi2sdl -0x2724(%rbp),%xmm1 2242e7: f2 0f 59 c1 mulsd %xmm1,%xmm0 2242eb: e8 40 a3 01 00 call 23e630 2242f0: f2 0f 2c c8 cvttsd2si %xmm0,%ecx 2242f4: 0f b6 85 bf d8 ff ff movzbl -0x2741(%rbp),%eax 2242fb: 89 8c 85 30 d9 ff ff mov %ecx,-0x26d0(%rbp,%rax,4) } else { 224302: e9 12 00 00 00 jmp 224319 blockSizes[i] = 0; 224307: 0f b6 85 bf d8 ff ff movzbl -0x2741(%rbp),%eax 22430e: c7 84 85 30 d9 ff ff 00 00 00 00 movl $0x0,-0x26d0(%rbp,%rax,4) int nextOffset = offset + blockSizes[i]; 224319: 8b 85 c0 d8 ff ff mov -0x2740(%rbp),%eax 22431f: 0f b6 8d bf d8 ff ff movzbl -0x2741(%rbp),%ecx 224326: 03 84 8d 30 d9 ff ff add -0x26d0(%rbp,%rcx,4),%eax 22432d: 89 85 ac d8 ff ff mov %eax,-0x2754(%rbp) nextOffset = CLAMP(nextOffset, 0, w); 224333: 8b 85 ac d8 ff ff mov -0x2754(%rbp),%eax 224339: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 22433f: 0f 8e 11 00 00 00 jle 224356 224345: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 22434b: 89 85 5c d8 ff ff mov %eax,-0x27a4(%rbp) 224351: e9 37 00 00 00 jmp 22438d 224356: 83 bd ac d8 ff ff 00 cmpl $0x0,-0x2754(%rbp) 22435d: 0f 8e 11 00 00 00 jle 224374 224363: 8b 85 ac d8 ff ff mov -0x2754(%rbp),%eax 224369: 89 85 58 d8 ff ff mov %eax,-0x27a8(%rbp) 22436f: e9 0d 00 00 00 jmp 224381 224374: 31 c0 xor %eax,%eax 224376: 89 85 58 d8 ff ff mov %eax,-0x27a8(%rbp) 22437c: e9 00 00 00 00 jmp 224381 224381: 8b 85 58 d8 ff ff mov -0x27a8(%rbp),%eax 224387: 89 85 5c d8 ff ff mov %eax,-0x27a4(%rbp) 22438d: 8b 85 5c d8 ff ff mov -0x27a4(%rbp),%eax 224393: 89 85 ac d8 ff ff mov %eax,-0x2754(%rbp) for (int j = offset; j < nextOffset; j++) 224399: 8b 85 c0 d8 ff ff mov -0x2740(%rbp),%eax 22439f: 89 85 a8 d8 ff ff mov %eax,-0x2758(%rbp) 2243a5: 8b 85 a8 d8 ff ff mov -0x2758(%rbp),%eax 2243ab: 3b 85 ac d8 ff ff cmp -0x2754(%rbp),%eax 2243b1: 0f 8d 54 01 00 00 jge 22450b if (RichString_getCharVal(bar, startPos + j) == ' ') { 2243b7: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2243be: 8b 8d c8 d8 ff ff mov -0x2738(%rbp),%ecx 2243c4: 03 8d a8 d8 ff ff add -0x2758(%rbp),%ecx 2243ca: 48 63 c9 movslq %ecx,%rcx 2243cd: 48 6b c9 1c imul $0x1c,%rcx,%rcx 2243d1: 48 01 c8 add %rcx,%rax 2243d4: 83 78 04 20 cmpl $0x20,0x4(%rax) 2243d8: 0f 85 14 01 00 00 jne 2244f2 if (CRT_colorScheme == COLORSCHEME_MONOCHROME) { 2243de: 83 3c 25 68 1d 24 00 01 cmpl $0x1,0x241d68 2243e6: 0f 85 86 00 00 00 jne 224472 RichString_setChar(&bar, startPos + j, BarMeterMode_characters[i]); 2243ec: e9 00 00 00 00 jmp 2243f1 2243f1: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2243f8: 8b 8d c8 d8 ff ff mov -0x2738(%rbp),%ecx 2243fe: 03 8d a8 d8 ff ff add -0x2758(%rbp),%ecx 224404: 48 63 c9 movslq %ecx,%rcx 224407: 48 6b c9 1c imul $0x1c,%rcx,%rcx 22440b: 48 01 c8 add %rcx,%rax 22440e: 48 89 85 50 d8 ff ff mov %rax,-0x27b0(%rbp) 224415: 48 8d bd 10 d9 ff ff lea -0x26f0(%rbp),%rdi 22441c: 31 f6 xor %esi,%esi 22441e: ba 1c 00 00 00 mov $0x1c,%edx 224423: e8 18 9e 01 00 call 23e240 224428: 48 8b 85 50 d8 ff ff mov -0x27b0(%rbp),%rax 22442f: 0f b6 8d bf d8 ff ff movzbl -0x2741(%rbp),%ecx 224436: 0f be 0c 0d d0 93 20 00 movsbl 0x2093d0(,%rcx,1),%ecx 22443e: 89 8d 14 d9 ff ff mov %ecx,-0x26ec(%rbp) 224444: 48 8b 8d 10 d9 ff ff mov -0x26f0(%rbp),%rcx 22444b: 48 89 08 mov %rcx,(%rax) 22444e: 48 8b 8d 18 d9 ff ff mov -0x26e8(%rbp),%rcx 224455: 48 89 48 08 mov %rcx,0x8(%rax) 224459: 48 8b 8d 20 d9 ff ff mov -0x26e0(%rbp),%rcx 224460: 48 89 48 10 mov %rcx,0x10(%rax) 224464: 8b 8d 28 d9 ff ff mov -0x26d8(%rbp),%ecx 22446a: 89 48 18 mov %ecx,0x18(%rax) } else { 22446d: e9 7b 00 00 00 jmp 2244ed RichString_setChar(&bar, startPos + j, '|'); 224472: e9 00 00 00 00 jmp 224477 224477: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 22447e: 8b 8d c8 d8 ff ff mov -0x2738(%rbp),%ecx 224484: 03 8d a8 d8 ff ff add -0x2758(%rbp),%ecx 22448a: 48 63 c9 movslq %ecx,%rcx 22448d: 48 6b c9 1c imul $0x1c,%rcx,%rcx 224491: 48 01 c8 add %rcx,%rax 224494: 48 89 85 48 d8 ff ff mov %rax,-0x27b8(%rbp) 22449b: 48 8d bd f0 d8 ff ff lea -0x2710(%rbp),%rdi 2244a2: 31 f6 xor %esi,%esi 2244a4: ba 1c 00 00 00 mov $0x1c,%edx 2244a9: e8 92 9d 01 00 call 23e240 2244ae: 48 8b 85 48 d8 ff ff mov -0x27b8(%rbp),%rax 2244b5: c7 85 f4 d8 ff ff 7c 00 00 00 movl $0x7c,-0x270c(%rbp) 2244bf: 48 8b 8d f0 d8 ff ff mov -0x2710(%rbp),%rcx 2244c6: 48 89 08 mov %rcx,(%rax) 2244c9: 48 8b 8d f8 d8 ff ff mov -0x2708(%rbp),%rcx 2244d0: 48 89 48 08 mov %rcx,0x8(%rax) 2244d4: 48 8b 8d 00 d9 ff ff mov -0x2700(%rbp),%rcx 2244db: 48 89 48 10 mov %rcx,0x10(%rax) 2244df: 8b 8d 08 d9 ff ff mov -0x26f8(%rbp),%ecx 2244e5: 89 48 18 mov %ecx,0x18(%rax) 2244e8: e9 00 00 00 00 jmp 2244ed } 2244ed: e9 00 00 00 00 jmp 2244f2 if (RichString_getCharVal(bar, startPos + j) == ' ') { 2244f2: e9 00 00 00 00 jmp 2244f7 for (int j = offset; j < nextOffset; j++) 2244f7: 8b 85 a8 d8 ff ff mov -0x2758(%rbp),%eax 2244fd: 83 c0 01 add $0x1,%eax 224500: 89 85 a8 d8 ff ff mov %eax,-0x2758(%rbp) 224506: e9 9a fe ff ff jmp 2243a5 offset = nextOffset; 22450b: 8b 85 ac d8 ff ff mov -0x2754(%rbp),%eax 224511: 89 85 c0 d8 ff ff mov %eax,-0x2740(%rbp) for (uint8_t i = 0; i < this->curItems; i++) { 224517: 8a 85 bf d8 ff ff mov -0x2741(%rbp),%al 22451d: 04 01 add $0x1,%al 22451f: 88 85 bf d8 ff ff mov %al,-0x2741(%rbp) 224525: e9 ba fc ff ff jmp 2241e4 offset = 0; 22452a: c7 85 c0 d8 ff ff 00 00 00 00 movl $0x0,-0x2740(%rbp) for (uint8_t i = 0; i < this->curItems; i++) { 224534: c6 85 a7 d8 ff ff 00 movb $0x0,-0x2759(%rbp) 22453b: 0f b6 85 a7 d8 ff ff movzbl -0x2759(%rbp),%eax 224542: 48 8b 8d e8 d8 ff ff mov -0x2718(%rbp),%rcx 224549: 0f b6 49 38 movzbl 0x38(%rcx),%ecx 22454d: 39 c8 cmp %ecx,%eax 22454f: 0f 8d ed 01 00 00 jge 224742 int attr = this->curAttributes ? this->curAttributes[i] : Meter_attributes(this)[i]; 224555: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 22455c: 48 83 78 40 00 cmpq $0x0,0x40(%rax) 224561: 0f 84 20 00 00 00 je 224587 224567: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 22456e: 48 8b 40 40 mov 0x40(%rax),%rax 224572: 0f b6 8d a7 d8 ff ff movzbl -0x2759(%rbp),%ecx 224579: 8b 04 88 mov (%rax,%rcx,4),%eax 22457c: 89 85 44 d8 ff ff mov %eax,-0x27bc(%rbp) 224582: e9 1e 00 00 00 jmp 2245a5 224587: 48 8b 85 e8 d8 ff ff mov -0x2718(%rbp),%rax 22458e: 48 8b 00 mov (%rax),%rax 224591: 48 8b 40 68 mov 0x68(%rax),%rax 224595: 0f b6 8d a7 d8 ff ff movzbl -0x2759(%rbp),%ecx 22459c: 8b 04 88 mov (%rax,%rcx,4),%eax 22459f: 89 85 44 d8 ff ff mov %eax,-0x27bc(%rbp) 2245a5: 8b 85 44 d8 ff ff mov -0x27bc(%rbp),%eax 2245ab: 89 85 a0 d8 ff ff mov %eax,-0x2760(%rbp) RichString_setAttrn(&bar, CRT_colors[attr], startPos + offset, blockSizes[i]); 2245b1: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2245b9: 48 63 8d a0 d8 ff ff movslq -0x2760(%rbp),%rcx 2245c0: 8b 34 88 mov (%rax,%rcx,4),%esi 2245c3: 8b 95 c8 d8 ff ff mov -0x2738(%rbp),%edx 2245c9: 03 95 c0 d8 ff ff add -0x2740(%rbp),%edx 2245cf: 0f b6 85 a7 d8 ff ff movzbl -0x2759(%rbp),%eax 2245d6: 8b 8c 85 30 d9 ff ff mov -0x26d0(%rbp,%rax,4),%ecx 2245dd: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 2245e4: e8 57 da 00 00 call 232040 RichString_printoffnVal(bar, y, x + offset, startPos + offset, MINIMUM(blockSizes[i], w - offset)); 2245e9: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2245f1: 8b b5 e0 d8 ff ff mov -0x2720(%rbp),%esi 2245f7: 8b 95 e4 d8 ff ff mov -0x271c(%rbp),%edx 2245fd: 03 95 c0 d8 ff ff add -0x2740(%rbp),%edx 224603: e8 88 9b 01 00 call 23e190 224608: 83 f8 ff cmp $0xffffffff,%eax 22460b: 0f 85 05 00 00 00 jne 224616 224611: e9 99 00 00 00 jmp 2246af 224616: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 22461e: 48 89 85 30 d8 ff ff mov %rax,-0x27d0(%rbp) 224625: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 22462c: 8b 8d c8 d8 ff ff mov -0x2738(%rbp),%ecx 224632: 03 8d c0 d8 ff ff add -0x2740(%rbp),%ecx 224638: 48 63 c9 movslq %ecx,%rcx 22463b: 48 6b c9 1c imul $0x1c,%rcx,%rcx 22463f: 48 01 c8 add %rcx,%rax 224642: 48 89 85 38 d8 ff ff mov %rax,-0x27c8(%rbp) 224649: 0f b6 85 a7 d8 ff ff movzbl -0x2759(%rbp),%eax 224650: 8b 84 85 30 d9 ff ff mov -0x26d0(%rbp,%rax,4),%eax 224657: 8b 8d dc d8 ff ff mov -0x2724(%rbp),%ecx 22465d: 2b 8d c0 d8 ff ff sub -0x2740(%rbp),%ecx 224663: 39 c8 cmp %ecx,%eax 224665: 0f 8d 19 00 00 00 jge 224684 22466b: 0f b6 85 a7 d8 ff ff movzbl -0x2759(%rbp),%eax 224672: 8b 84 85 30 d9 ff ff mov -0x26d0(%rbp,%rax,4),%eax 224679: 89 85 2c d8 ff ff mov %eax,-0x27d4(%rbp) 22467f: e9 12 00 00 00 jmp 224696 224684: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 22468a: 2b 85 c0 d8 ff ff sub -0x2740(%rbp),%eax 224690: 89 85 2c d8 ff ff mov %eax,-0x27d4(%rbp) 224696: 48 8b b5 38 d8 ff ff mov -0x27c8(%rbp),%rsi 22469d: 48 8b bd 30 d8 ff ff mov -0x27d0(%rbp),%rdi 2246a4: 8b 95 2c d8 ff ff mov -0x27d4(%rbp),%edx 2246aa: e8 91 9f 01 00 call 23e640 offset += blockSizes[i]; 2246af: 0f b6 85 a7 d8 ff ff movzbl -0x2759(%rbp),%eax 2246b6: 8b 84 85 30 d9 ff ff mov -0x26d0(%rbp,%rax,4),%eax 2246bd: 03 85 c0 d8 ff ff add -0x2740(%rbp),%eax 2246c3: 89 85 c0 d8 ff ff mov %eax,-0x2740(%rbp) offset = CLAMP(offset, 0, w); 2246c9: 8b 85 c0 d8 ff ff mov -0x2740(%rbp),%eax 2246cf: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 2246d5: 0f 8e 11 00 00 00 jle 2246ec 2246db: 8b 85 dc d8 ff ff mov -0x2724(%rbp),%eax 2246e1: 89 85 28 d8 ff ff mov %eax,-0x27d8(%rbp) 2246e7: e9 37 00 00 00 jmp 224723 2246ec: 83 bd c0 d8 ff ff 00 cmpl $0x0,-0x2740(%rbp) 2246f3: 0f 8e 11 00 00 00 jle 22470a 2246f9: 8b 85 c0 d8 ff ff mov -0x2740(%rbp),%eax 2246ff: 89 85 24 d8 ff ff mov %eax,-0x27dc(%rbp) 224705: e9 0d 00 00 00 jmp 224717 22470a: 31 c0 xor %eax,%eax 22470c: 89 85 24 d8 ff ff mov %eax,-0x27dc(%rbp) 224712: e9 00 00 00 00 jmp 224717 224717: 8b 85 24 d8 ff ff mov -0x27dc(%rbp),%eax 22471d: 89 85 28 d8 ff ff mov %eax,-0x27d8(%rbp) 224723: 8b 85 28 d8 ff ff mov -0x27d8(%rbp),%eax 224729: 89 85 c0 d8 ff ff mov %eax,-0x2740(%rbp) for (uint8_t i = 0; i < this->curItems; i++) { 22472f: 8a 85 a7 d8 ff ff mov -0x2759(%rbp),%al 224735: 04 01 add $0x1,%al 224737: 88 85 a7 d8 ff ff mov %al,-0x2759(%rbp) 22473d: e9 f9 fd ff ff jmp 22453b if (offset < w) { 224742: 8b 85 c0 d8 ff ff mov -0x2740(%rbp),%eax 224748: 3b 85 dc d8 ff ff cmp -0x2724(%rbp),%eax 22474e: 0f 8d 94 00 00 00 jge 2247e8 RichString_setAttrn(&bar, CRT_colors[BAR_SHADOW], startPos + offset, w - offset); 224754: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22475c: 8b b0 b8 00 00 00 mov 0xb8(%rax),%esi 224762: 8b 95 c8 d8 ff ff mov -0x2738(%rbp),%edx 224768: 03 95 c0 d8 ff ff add -0x2740(%rbp),%edx 22476e: 8b 8d dc d8 ff ff mov -0x2724(%rbp),%ecx 224774: 2b 8d c0 d8 ff ff sub -0x2740(%rbp),%ecx 22477a: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 224781: e8 ba d8 00 00 call 232040 RichString_printoffnVal(bar, y, x + offset, startPos + offset, w - offset); 224786: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22478e: 8b b5 e0 d8 ff ff mov -0x2720(%rbp),%esi 224794: 8b 95 e4 d8 ff ff mov -0x271c(%rbp),%edx 22479a: 03 95 c0 d8 ff ff add -0x2740(%rbp),%edx 2247a0: e8 eb 99 01 00 call 23e190 2247a5: 83 f8 ff cmp $0xffffffff,%eax 2247a8: 0f 85 05 00 00 00 jne 2247b3 2247ae: e9 35 00 00 00 jmp 2247e8 2247b3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2247bb: 48 8b b5 88 d9 ff ff mov -0x2678(%rbp),%rsi 2247c2: 8b 85 c8 d8 ff ff mov -0x2738(%rbp),%eax 2247c8: 03 85 c0 d8 ff ff add -0x2740(%rbp),%eax 2247ce: 48 98 cltq 2247d0: 48 6b c0 1c imul $0x1c,%rax,%rax 2247d4: 48 01 c6 add %rax,%rsi 2247d7: 8b 95 dc d8 ff ff mov -0x2724(%rbp),%edx 2247dd: 2b 95 c0 d8 ff ff sub -0x2740(%rbp),%edx 2247e3: e8 58 9e 01 00 call 23e640 RichString_delete(&bar); 2247e8: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 2247ef: e8 6c da 00 00 call 232260 move(y, x + w + 1); 2247f4: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2247fc: 8b b5 e0 d8 ff ff mov -0x2720(%rbp),%esi 224802: 8b 95 e4 d8 ff ff mov -0x271c(%rbp),%edx 224808: 03 95 dc d8 ff ff add -0x2724(%rbp),%edx 22480e: 83 c2 01 add $0x1,%edx 224811: e8 7a 99 01 00 call 23e190 attrset(CRT_colors[RESET_COLOR]); 224816: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22481e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 224826: 8b 30 mov (%rax),%esi 224828: e8 53 99 01 00 call 23e180 22482d: 48 8b 05 fc df 01 00 mov 0x1dffc(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 224834: 48 8b 4d f8 mov -0x8(%rbp),%rcx 224838: 48 39 c8 cmp %rcx,%rax 22483b: 0f 85 09 00 00 00 jne 22484a } 224841: 48 81 c4 e0 27 00 00 add $0x27e0,%rsp 224848: 5d pop %rbp 224849: c3 ret 22484a: e8 f1 98 01 00 call 23e140 <__stack_chk_fail@plt> 22484f: 90 nop 0000000000224850 : static void TextMeterMode_draw(Meter* this, int x, int y, int w) { 224850: 55 push %rbp 224851: 48 89 e5 mov %rsp,%rbp 224854: 48 81 ec e0 26 00 00 sub $0x26e0,%rsp 22485b: 48 8b 05 ce df 01 00 mov 0x1dfce(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 224862: 48 89 45 f8 mov %rax,-0x8(%rbp) 224866: 48 89 bd 58 d9 ff ff mov %rdi,-0x26a8(%rbp) 22486d: 89 b5 54 d9 ff ff mov %esi,-0x26ac(%rbp) 224873: 89 95 50 d9 ff ff mov %edx,-0x26b0(%rbp) 224879: 89 8d 4c d9 ff ff mov %ecx,-0x26b4(%rbp) const char* caption = Meter_getCaption(this); 22487f: 48 8b 85 58 d9 ff ff mov -0x26a8(%rbp),%rax 224886: 48 8b 00 mov (%rax),%rax 224889: 48 83 78 48 00 cmpq $0x0,0x48(%rax) 22488e: 0f 84 23 00 00 00 je 2248b7 224894: 48 8b 85 58 d9 ff ff mov -0x26a8(%rbp),%rax 22489b: 48 8b 00 mov (%rax),%rax 22489e: 48 8b 40 48 mov 0x48(%rax),%rax 2248a2: 48 8b bd 58 d9 ff ff mov -0x26a8(%rbp),%rdi 2248a9: ff d0 call *%rax 2248ab: 48 89 85 30 d9 ff ff mov %rax,-0x26d0(%rbp) 2248b2: e9 12 00 00 00 jmp 2248c9 2248b7: 48 8b 85 58 d9 ff ff mov -0x26a8(%rbp),%rax 2248be: 48 8b 40 10 mov 0x10(%rax),%rax 2248c2: 48 89 85 30 d9 ff ff mov %rax,-0x26d0(%rbp) 2248c9: 48 8b 85 30 d9 ff ff mov -0x26d0(%rbp),%rax 2248d0: 48 89 85 40 d9 ff ff mov %rax,-0x26c0(%rbp) attrset(CRT_colors[METER_TEXT]); 2248d7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2248df: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2248e7: 8b 70 38 mov 0x38(%rax),%esi 2248ea: e8 91 98 01 00 call 23e180 mvaddnstr(y, x, caption, w - 1); 2248ef: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2248f7: 8b b5 50 d9 ff ff mov -0x26b0(%rbp),%esi 2248fd: 8b 95 54 d9 ff ff mov -0x26ac(%rbp),%edx 224903: e8 88 98 01 00 call 23e190 224908: 83 f8 ff cmp $0xffffffff,%eax 22490b: 0f 85 05 00 00 00 jne 224916 224911: e9 1d 00 00 00 jmp 224933 224916: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22491e: 48 8b b5 40 d9 ff ff mov -0x26c0(%rbp),%rsi 224925: 8b 95 4c d9 ff ff mov -0x26b4(%rbp),%edx 22492b: 83 ea 01 sub $0x1,%edx 22492e: e8 7d 98 01 00 call 23e1b0 attrset(CRT_colors[RESET_COLOR]); 224933: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22493b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 224943: 8b 30 mov (%rax),%esi 224945: e8 36 98 01 00 call 23e180 int captionLen = strlen(caption); 22494a: 48 8b bd 40 d9 ff ff mov -0x26c0(%rbp),%rdi 224951: e8 9a 98 01 00 call 23e1f0 224956: 89 85 3c d9 ff ff mov %eax,-0x26c4(%rbp) x += captionLen; 22495c: 8b 85 3c d9 ff ff mov -0x26c4(%rbp),%eax 224962: 03 85 54 d9 ff ff add -0x26ac(%rbp),%eax 224968: 89 85 54 d9 ff ff mov %eax,-0x26ac(%rbp) w -= captionLen; 22496e: 8b 8d 3c d9 ff ff mov -0x26c4(%rbp),%ecx 224974: 8b 85 4c d9 ff ff mov -0x26b4(%rbp),%eax 22497a: 29 c8 sub %ecx,%eax 22497c: 89 85 4c d9 ff ff mov %eax,-0x26b4(%rbp) if (w <= 0) 224982: 83 bd 4c d9 ff ff 00 cmpl $0x0,-0x26b4(%rbp) 224989: 0f 8f 05 00 00 00 jg 224994 return; 22498f: e9 dc 00 00 00 jmp 224a70 RichString_begin(out); 224994: e9 00 00 00 00 jmp 224999 224999: c7 85 80 d9 ff ff 00 00 00 00 movl $0x0,-0x2680(%rbp) 2249a3: 48 8d 85 80 d9 ff ff lea -0x2680(%rbp),%rax 2249aa: 48 83 c0 10 add $0x10,%rax 2249ae: 48 89 85 88 d9 ff ff mov %rax,-0x2678(%rbp) 2249b5: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2249bc: 48 89 85 28 d9 ff ff mov %rax,-0x26d8(%rbp) 2249c3: 48 8d bd 60 d9 ff ff lea -0x26a0(%rbp),%rdi 2249ca: 31 f6 xor %esi,%esi 2249cc: ba 1c 00 00 00 mov $0x1c,%edx 2249d1: e8 6a 98 01 00 call 23e240 2249d6: 48 8b 85 28 d9 ff ff mov -0x26d8(%rbp),%rax 2249dd: 48 8b 8d 60 d9 ff ff mov -0x26a0(%rbp),%rcx 2249e4: 48 89 08 mov %rcx,(%rax) 2249e7: 48 8b 8d 68 d9 ff ff mov -0x2698(%rbp),%rcx 2249ee: 48 89 48 08 mov %rcx,0x8(%rax) 2249f2: 48 8b 8d 70 d9 ff ff mov -0x2690(%rbp),%rcx 2249f9: 48 89 48 10 mov %rcx,0x10(%rax) 2249fd: 8b 8d 78 d9 ff ff mov -0x2688(%rbp),%ecx 224a03: 89 48 18 mov %ecx,0x18(%rax) 224a06: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) Meter_displayBuffer(this, &out); 224a0d: 48 8b bd 58 d9 ff ff mov -0x26a8(%rbp),%rdi 224a14: 48 8d b5 80 d9 ff ff lea -0x2680(%rbp),%rsi 224a1b: e8 80 00 00 00 call 224aa0 RichString_printoffnVal(out, y, x, 0, w - 1); 224a20: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 224a28: 8b b5 50 d9 ff ff mov -0x26b0(%rbp),%esi 224a2e: 8b 95 54 d9 ff ff mov -0x26ac(%rbp),%edx 224a34: e8 57 97 01 00 call 23e190 224a39: 83 f8 ff cmp $0xffffffff,%eax 224a3c: 0f 85 05 00 00 00 jne 224a47 224a42: e9 1d 00 00 00 jmp 224a64 224a47: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 224a4f: 48 8b b5 88 d9 ff ff mov -0x2678(%rbp),%rsi 224a56: 8b 95 4c d9 ff ff mov -0x26b4(%rbp),%edx 224a5c: 83 ea 01 sub $0x1,%edx 224a5f: e8 dc 9b 01 00 call 23e640 RichString_delete(&out); 224a64: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 224a6b: e8 f0 d7 00 00 call 232260 224a70: 48 8b 05 b9 dd 01 00 mov 0x1ddb9(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 224a77: 48 8b 4d f8 mov -0x8(%rbp),%rcx 224a7b: 48 39 c8 cmp %rcx,%rax 224a7e: 0f 85 09 00 00 00 jne 224a8d } 224a84: 48 81 c4 e0 26 00 00 add $0x26e0,%rsp 224a8b: 5d pop %rbp 224a8c: c3 ret 224a8d: e8 ae 96 01 00 call 23e140 <__stack_chk_fail@plt> 224a92: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 224a9c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000224aa0 : static inline void Meter_displayBuffer(const Meter* this, RichString* out) { 224aa0: 55 push %rbp 224aa1: 48 89 e5 mov %rsp,%rbp 224aa4: 48 83 ec 10 sub $0x10,%rsp 224aa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 224aac: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (Object_displayFn(this)) { 224ab0: 48 8b 45 f8 mov -0x8(%rbp),%rax 224ab4: 48 8b 00 mov (%rax),%rax 224ab7: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 224abc: 0f 84 1a 00 00 00 je 224adc Object_display(this, out); 224ac2: 48 8b 45 f8 mov -0x8(%rbp),%rax 224ac6: 48 8b 00 mov (%rax),%rax 224ac9: 48 8b 40 08 mov 0x8(%rax),%rax 224acd: 48 8b 7d f8 mov -0x8(%rbp),%rdi 224ad1: 48 8b 75 f0 mov -0x10(%rbp),%rsi 224ad5: ff d0 call *%rax } else { 224ad7: e9 2a 00 00 00 jmp 224b06 RichString_writeWide(out, CRT_colors[Meter_attributes(this)[0]], this->txtBuffer); 224adc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 224ae0: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 224ae8: 48 8b 4d f8 mov -0x8(%rbp),%rcx 224aec: 48 8b 09 mov (%rcx),%rcx 224aef: 48 8b 49 68 mov 0x68(%rcx),%rcx 224af3: 48 63 09 movslq (%rcx),%rcx 224af6: 8b 34 88 mov (%rax,%rcx,4),%esi 224af9: 48 8b 55 f8 mov -0x8(%rbp),%rdx 224afd: 48 83 c2 48 add $0x48,%rdx 224b01: e8 2a da 00 00 call 232530 } 224b06: 48 83 c4 10 add $0x10,%rsp 224b0a: 5d pop %rbp 224b0b: c3 ret 224b0c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000224b10 : static void GraphMeterMode_draw(Meter* this, int x, int y, int w) { 224b10: 55 push %rbp 224b11: 48 89 e5 mov %rsp,%rbp 224b14: 48 81 ec c0 00 00 00 sub $0xc0,%rsp 224b1b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 224b1f: 89 75 f4 mov %esi,-0xc(%rbp) 224b22: 89 55 f0 mov %edx,-0x10(%rbp) 224b25: 89 4d ec mov %ecx,-0x14(%rbp) const ProcessList* pl = this->pl; 224b28: 48 8b 45 f8 mov -0x8(%rbp),%rax 224b2c: 48 8b 40 30 mov 0x30(%rax),%rax 224b30: 48 89 45 e0 mov %rax,-0x20(%rbp) if (!this->drawData) { 224b34: 48 8b 45 f8 mov -0x8(%rbp),%rax 224b38: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 224b3d: 0f 85 1a 00 00 00 jne 224b5d this->drawData = xCalloc(1, sizeof(GraphData)); 224b43: bf 01 00 00 00 mov $0x1,%edi 224b48: be 10 08 00 00 mov $0x810,%esi 224b4d: e8 9e 3f 01 00 call 238af0 224b52: 48 89 c1 mov %rax,%rcx 224b55: 48 8b 45 f8 mov -0x8(%rbp),%rax 224b59: 48 89 48 20 mov %rcx,0x20(%rax) GraphData* data = this->drawData; 224b5d: 48 8b 45 f8 mov -0x8(%rbp),%rax 224b61: 48 8b 40 20 mov 0x20(%rax),%rax 224b65: 48 89 45 d8 mov %rax,-0x28(%rbp) const int nValues = METER_GRAPHDATA_SIZE; 224b69: c7 45 d4 00 01 00 00 movl $0x100,-0x2c(%rbp) if (CRT_utf8) { 224b70: f6 04 25 60 1d 24 00 01 testb $0x1,0x241d60 224b78: 0f 84 1a 00 00 00 je 224b98 GraphMeterMode_dots = GraphMeterMode_dotsUtf8; 224b7e: 48 b8 e0 93 20 00 00 00 00 00 movabs $0x2093e0,%rax 224b88: 48 89 45 c8 mov %rax,-0x38(%rbp) GraphMeterMode_pixPerRow = PIXPERROW_UTF8; 224b8c: c7 45 c4 04 00 00 00 movl $0x4,-0x3c(%rbp) } else 224b93: e9 15 00 00 00 jmp 224bad GraphMeterMode_dots = GraphMeterMode_dotsAscii; 224b98: 48 b8 b0 94 20 00 00 00 00 00 movabs $0x2094b0,%rax 224ba2: 48 89 45 c8 mov %rax,-0x38(%rbp) GraphMeterMode_pixPerRow = PIXPERROW_ASCII; 224ba6: c7 45 c4 02 00 00 00 movl $0x2,-0x3c(%rbp) const char* caption = Meter_getCaption(this); 224bad: 48 8b 45 f8 mov -0x8(%rbp),%rax 224bb1: 48 8b 00 mov (%rax),%rax 224bb4: 48 83 78 48 00 cmpq $0x0,0x48(%rax) 224bb9: 0f 84 1d 00 00 00 je 224bdc 224bbf: 48 8b 45 f8 mov -0x8(%rbp),%rax 224bc3: 48 8b 00 mov (%rax),%rax 224bc6: 48 8b 40 48 mov 0x48(%rax),%rax 224bca: 48 8b 7d f8 mov -0x8(%rbp),%rdi 224bce: ff d0 call *%rax 224bd0: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 224bd7: e9 0f 00 00 00 jmp 224beb 224bdc: 48 8b 45 f8 mov -0x8(%rbp),%rax 224be0: 48 8b 40 10 mov 0x10(%rax),%rax 224be4: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 224beb: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 224bf2: 48 89 45 b8 mov %rax,-0x48(%rbp) attrset(CRT_colors[METER_TEXT]); 224bf6: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 224bfe: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 224c06: 8b 70 38 mov 0x38(%rax),%esi 224c09: e8 72 95 01 00 call 23e180 int captionLen = 3; 224c0e: c7 45 b4 03 00 00 00 movl $0x3,-0x4c(%rbp) mvaddnstr(y, x, caption, captionLen); 224c15: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 224c1d: 8b 75 f0 mov -0x10(%rbp),%esi 224c20: 8b 55 f4 mov -0xc(%rbp),%edx 224c23: e8 68 95 01 00 call 23e190 224c28: 83 f8 ff cmp $0xffffffff,%eax 224c2b: 0f 85 05 00 00 00 jne 224c36 224c31: e9 14 00 00 00 jmp 224c4a 224c36: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 224c3e: 48 8b 75 b8 mov -0x48(%rbp),%rsi 224c42: 8b 55 b4 mov -0x4c(%rbp),%edx 224c45: e8 66 95 01 00 call 23e1b0 x += captionLen; 224c4a: 8b 45 b4 mov -0x4c(%rbp),%eax 224c4d: 03 45 f4 add -0xc(%rbp),%eax 224c50: 89 45 f4 mov %eax,-0xc(%rbp) w -= captionLen; 224c53: 8b 4d b4 mov -0x4c(%rbp),%ecx 224c56: 8b 45 ec mov -0x14(%rbp),%eax 224c59: 29 c8 sub %ecx,%eax 224c5b: 89 45 ec mov %eax,-0x14(%rbp) if (!timercmp(&pl->realtime, &(data->time), <)) { 224c5e: 48 8b 45 e0 mov -0x20(%rbp),%rax 224c62: 48 8b 40 48 mov 0x48(%rax),%rax 224c66: 48 8b 4d d8 mov -0x28(%rbp),%rcx 224c6a: 48 3b 01 cmp (%rcx),%rax 224c6d: 0f 85 1b 00 00 00 jne 224c8e 224c73: 48 8b 45 e0 mov -0x20(%rbp),%rax 224c77: 48 8b 40 50 mov 0x50(%rax),%rax 224c7b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 224c7f: 48 3b 41 08 cmp 0x8(%rcx),%rax 224c83: 0f 8c 53 01 00 00 jl 224ddc 224c89: e9 15 00 00 00 jmp 224ca3 224c8e: 48 8b 45 e0 mov -0x20(%rbp),%rax 224c92: 48 8b 40 48 mov 0x48(%rax),%rax 224c96: 48 8b 4d d8 mov -0x28(%rbp),%rcx 224c9a: 48 3b 01 cmp (%rcx),%rax 224c9d: 0f 8c 39 01 00 00 jl 224ddc int globalDelay = this->pl->settings->delay; 224ca3: 48 8b 45 f8 mov -0x8(%rbp),%rax 224ca7: 48 8b 40 30 mov 0x30(%rax),%rax 224cab: 48 8b 00 mov (%rax),%rax 224cae: 8b 40 30 mov 0x30(%rax),%eax 224cb1: 89 45 b0 mov %eax,-0x50(%rbp) struct timeval delay = { .tv_sec = globalDelay / 10, .tv_usec = (globalDelay % 10) * 100000L }; 224cb4: 8b 45 b0 mov -0x50(%rbp),%eax 224cb7: b9 0a 00 00 00 mov $0xa,%ecx 224cbc: 99 cltd 224cbd: f7 f9 idiv %ecx 224cbf: 48 98 cltq 224cc1: 48 89 45 a0 mov %rax,-0x60(%rbp) 224cc5: 8b 45 b0 mov -0x50(%rbp),%eax 224cc8: b9 0a 00 00 00 mov $0xa,%ecx 224ccd: 99 cltd 224cce: f7 f9 idiv %ecx 224cd0: 48 63 c2 movslq %edx,%rax 224cd3: 48 69 c0 a0 86 01 00 imul $0x186a0,%rax,%rax 224cda: 48 89 45 a8 mov %rax,-0x58(%rbp) timeradd(&pl->realtime, &delay, &(data->time)); 224cde: 48 8b 45 e0 mov -0x20(%rbp),%rax 224ce2: 48 8b 48 48 mov 0x48(%rax),%rcx 224ce6: 48 03 4d a0 add -0x60(%rbp),%rcx 224cea: 48 8b 45 d8 mov -0x28(%rbp),%rax 224cee: 48 89 08 mov %rcx,(%rax) 224cf1: 48 8b 45 e0 mov -0x20(%rbp),%rax 224cf5: 48 8b 48 50 mov 0x50(%rax),%rcx 224cf9: 48 03 4d a8 add -0x58(%rbp),%rcx 224cfd: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d01: 48 89 48 08 mov %rcx,0x8(%rax) 224d05: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d09: 48 81 78 08 40 42 0f 00 cmpq $0xf4240,0x8(%rax) 224d11: 0f 8c 21 00 00 00 jl 224d38 224d17: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d1b: 48 8b 08 mov (%rax),%rcx 224d1e: 48 83 c1 01 add $0x1,%rcx 224d22: 48 89 08 mov %rcx,(%rax) 224d25: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d29: 48 8b 48 08 mov 0x8(%rax),%rcx 224d2d: 48 81 e9 40 42 0f 00 sub $0xf4240,%rcx 224d34: 48 89 48 08 mov %rcx,0x8(%rax) 224d38: e9 00 00 00 00 jmp 224d3d for (int i = 0; i < nValues - 1; i++) 224d3d: c7 45 9c 00 00 00 00 movl $0x0,-0x64(%rbp) 224d44: 81 7d 9c ff 00 00 00 cmpl $0xff,-0x64(%rbp) 224d4b: 0f 8d 2f 00 00 00 jge 224d80 data->values[i] = data->values[i + 1]; 224d51: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d55: 8b 4d 9c mov -0x64(%rbp),%ecx 224d58: 83 c1 01 add $0x1,%ecx 224d5b: 48 63 c9 movslq %ecx,%rcx 224d5e: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224d64: 48 8b 45 d8 mov -0x28(%rbp),%rax 224d68: 48 63 4d 9c movslq -0x64(%rbp),%rcx 224d6c: f2 0f 11 44 c8 10 movsd %xmm0,0x10(%rax,%rcx,8) for (int i = 0; i < nValues - 1; i++) 224d72: 8b 45 9c mov -0x64(%rbp),%eax 224d75: 83 c0 01 add $0x1,%eax 224d78: 89 45 9c mov %eax,-0x64(%rbp) 224d7b: e9 c4 ff ff ff jmp 224d44 double value = 0.0; 224d80: 0f 57 c0 xorps %xmm0,%xmm0 224d83: f2 0f 11 45 90 movsd %xmm0,-0x70(%rbp) for (uint8_t i = 0; i < this->curItems; i++) 224d88: c6 45 8f 00 movb $0x0,-0x71(%rbp) 224d8c: 0f b6 45 8f movzbl -0x71(%rbp),%eax 224d90: 48 8b 4d f8 mov -0x8(%rbp),%rcx 224d94: 0f b6 49 38 movzbl 0x38(%rcx),%ecx 224d98: 39 c8 cmp %ecx,%eax 224d9a: 0f 8d 2b 00 00 00 jge 224dcb value += this->values[i]; 224da0: 48 8b 45 f8 mov -0x8(%rbp),%rax 224da4: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 224dab: 0f b6 4d 8f movzbl -0x71(%rbp),%ecx 224daf: f2 0f 10 04 c8 movsd (%rax,%rcx,8),%xmm0 224db4: f2 0f 58 45 90 addsd -0x70(%rbp),%xmm0 224db9: f2 0f 11 45 90 movsd %xmm0,-0x70(%rbp) for (uint8_t i = 0; i < this->curItems; i++) 224dbe: 8a 45 8f mov -0x71(%rbp),%al 224dc1: 04 01 add $0x1,%al 224dc3: 88 45 8f mov %al,-0x71(%rbp) 224dc6: e9 c1 ff ff ff jmp 224d8c data->values[nValues - 1] = value; 224dcb: f2 0f 10 45 90 movsd -0x70(%rbp),%xmm0 224dd0: 48 8b 45 d8 mov -0x28(%rbp),%rax 224dd4: f2 0f 11 80 08 08 00 00 movsd %xmm0,0x808(%rax) int i = nValues - (w * 2) + 2, k = 0; 224ddc: 8b 4d ec mov -0x14(%rbp),%ecx 224ddf: c1 e1 01 shl $0x1,%ecx 224de2: b8 00 01 00 00 mov $0x100,%eax 224de7: 29 c8 sub %ecx,%eax 224de9: 83 c0 02 add $0x2,%eax 224dec: 89 45 88 mov %eax,-0x78(%rbp) 224def: c7 45 84 00 00 00 00 movl $0x0,-0x7c(%rbp) if (i < 0) { 224df6: 83 7d 88 00 cmpl $0x0,-0x78(%rbp) 224dfa: 0f 8d 17 00 00 00 jge 224e17 k = -i / 2; 224e00: 31 c0 xor %eax,%eax 224e02: 2b 45 88 sub -0x78(%rbp),%eax 224e05: b9 02 00 00 00 mov $0x2,%ecx 224e0a: 99 cltd 224e0b: f7 f9 idiv %ecx 224e0d: 89 45 84 mov %eax,-0x7c(%rbp) i = 0; 224e10: c7 45 88 00 00 00 00 movl $0x0,-0x78(%rbp) for (; i < nValues - 1; i += 2, k++) { 224e17: e9 00 00 00 00 jmp 224e1c 224e1c: 81 7d 88 ff 00 00 00 cmpl $0xff,-0x78(%rbp) 224e23: 0f 8d e8 03 00 00 jge 225211 int pix = GraphMeterMode_pixPerRow * GRAPH_HEIGHT; 224e29: 8b 45 c4 mov -0x3c(%rbp),%eax 224e2c: c1 e0 02 shl $0x2,%eax 224e2f: 89 45 80 mov %eax,-0x80(%rbp) if (this->total < 1) 224e32: 48 8b 45 f8 mov -0x8(%rbp),%rax 224e36: f2 0f 10 05 f2 24 fe ff movsd -0x1db0e(%rip),%xmm0 # 207330 224e3e: 66 0f 2e 80 50 01 00 00 ucomisd 0x150(%rax),%xmm0 224e46: 0f 86 14 00 00 00 jbe 224e60 this->total = 1; 224e4c: 48 8b 45 f8 mov -0x8(%rbp),%rax 224e50: f2 0f 10 05 d8 24 fe ff movsd -0x1db28(%rip),%xmm0 # 207330 224e58: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) int v1 = CLAMP((int) lround(data->values[i] / this->total * pix), 1, pix); 224e60: 48 8b 45 d8 mov -0x28(%rbp),%rax 224e64: 48 63 4d 88 movslq -0x78(%rbp),%rcx 224e68: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224e6e: 48 8b 45 f8 mov -0x8(%rbp),%rax 224e72: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224e7a: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224e7f: f2 0f 59 c1 mulsd %xmm1,%xmm0 224e83: e8 c8 97 01 00 call 23e650 224e88: 3b 45 80 cmp -0x80(%rbp),%eax 224e8b: 0f 8e 0e 00 00 00 jle 224e9f 224e91: 8b 45 80 mov -0x80(%rbp),%eax 224e94: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 224e9a: e9 80 00 00 00 jmp 224f1f 224e9f: 48 8b 45 d8 mov -0x28(%rbp),%rax 224ea3: 48 63 4d 88 movslq -0x78(%rbp),%rcx 224ea7: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224ead: 48 8b 45 f8 mov -0x8(%rbp),%rax 224eb1: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224eb9: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224ebe: f2 0f 59 c1 mulsd %xmm1,%xmm0 224ec2: e8 89 97 01 00 call 23e650 224ec7: 83 f8 01 cmp $0x1,%eax 224eca: 0f 8e 33 00 00 00 jle 224f03 224ed0: 48 8b 45 d8 mov -0x28(%rbp),%rax 224ed4: 48 63 4d 88 movslq -0x78(%rbp),%rcx 224ed8: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224ede: 48 8b 45 f8 mov -0x8(%rbp),%rax 224ee2: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224eea: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224eef: f2 0f 59 c1 mulsd %xmm1,%xmm0 224ef3: e8 58 97 01 00 call 23e650 224ef8: 89 85 58 ff ff ff mov %eax,-0xa8(%rbp) 224efe: e9 10 00 00 00 jmp 224f13 224f03: b8 01 00 00 00 mov $0x1,%eax 224f08: 89 85 58 ff ff ff mov %eax,-0xa8(%rbp) 224f0e: e9 00 00 00 00 jmp 224f13 224f13: 8b 85 58 ff ff ff mov -0xa8(%rbp),%eax 224f19: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 224f1f: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax 224f25: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) int v2 = CLAMP((int) lround(data->values[i + 1] / this->total * pix), 1, pix); 224f2b: 48 8b 45 d8 mov -0x28(%rbp),%rax 224f2f: 8b 4d 88 mov -0x78(%rbp),%ecx 224f32: 83 c1 01 add $0x1,%ecx 224f35: 48 63 c9 movslq %ecx,%rcx 224f38: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224f3e: 48 8b 45 f8 mov -0x8(%rbp),%rax 224f42: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224f4a: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224f4f: f2 0f 59 c1 mulsd %xmm1,%xmm0 224f53: e8 f8 96 01 00 call 23e650 224f58: 3b 45 80 cmp -0x80(%rbp),%eax 224f5b: 0f 8e 0e 00 00 00 jle 224f6f 224f61: 8b 45 80 mov -0x80(%rbp),%eax 224f64: 89 85 54 ff ff ff mov %eax,-0xac(%rbp) 224f6a: e9 8a 00 00 00 jmp 224ff9 224f6f: 48 8b 45 d8 mov -0x28(%rbp),%rax 224f73: 8b 4d 88 mov -0x78(%rbp),%ecx 224f76: 83 c1 01 add $0x1,%ecx 224f79: 48 63 c9 movslq %ecx,%rcx 224f7c: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224f82: 48 8b 45 f8 mov -0x8(%rbp),%rax 224f86: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224f8e: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224f93: f2 0f 59 c1 mulsd %xmm1,%xmm0 224f97: e8 b4 96 01 00 call 23e650 224f9c: 83 f8 01 cmp $0x1,%eax 224f9f: 0f 8e 38 00 00 00 jle 224fdd 224fa5: 48 8b 45 d8 mov -0x28(%rbp),%rax 224fa9: 8b 4d 88 mov -0x78(%rbp),%ecx 224fac: 83 c1 01 add $0x1,%ecx 224faf: 48 63 c9 movslq %ecx,%rcx 224fb2: f2 0f 10 44 c8 10 movsd 0x10(%rax,%rcx,8),%xmm0 224fb8: 48 8b 45 f8 mov -0x8(%rbp),%rax 224fbc: f2 0f 5e 80 50 01 00 00 divsd 0x150(%rax),%xmm0 224fc4: f2 0f 2a 4d 80 cvtsi2sdl -0x80(%rbp),%xmm1 224fc9: f2 0f 59 c1 mulsd %xmm1,%xmm0 224fcd: e8 7e 96 01 00 call 23e650 224fd2: 89 85 50 ff ff ff mov %eax,-0xb0(%rbp) 224fd8: e9 10 00 00 00 jmp 224fed 224fdd: b8 01 00 00 00 mov $0x1,%eax 224fe2: 89 85 50 ff ff ff mov %eax,-0xb0(%rbp) 224fe8: e9 00 00 00 00 jmp 224fed 224fed: 8b 85 50 ff ff ff mov -0xb0(%rbp),%eax 224ff3: 89 85 54 ff ff ff mov %eax,-0xac(%rbp) 224ff9: 8b 85 54 ff ff ff mov -0xac(%rbp),%eax 224fff: 89 85 78 ff ff ff mov %eax,-0x88(%rbp) int colorIdx = GRAPH_1; 225005: c7 85 74 ff ff ff 2f 00 00 00 movl $0x2f,-0x8c(%rbp) for (int line = 0; line < GRAPH_HEIGHT; line++) { 22500f: c7 85 70 ff ff ff 00 00 00 00 movl $0x0,-0x90(%rbp) 225019: 83 bd 70 ff ff ff 04 cmpl $0x4,-0x90(%rbp) 225020: 0f 8d cf 01 00 00 jge 2251f5 int line1 = CLAMP(v1 - (GraphMeterMode_pixPerRow * (GRAPH_HEIGHT - 1 - line)), 0, GraphMeterMode_pixPerRow); 225026: 8b 85 7c ff ff ff mov -0x84(%rbp),%eax 22502c: 8b 4d c4 mov -0x3c(%rbp),%ecx 22502f: ba 03 00 00 00 mov $0x3,%edx 225034: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 22503a: 0f af ca imul %edx,%ecx 22503d: 29 c8 sub %ecx,%eax 22503f: 3b 45 c4 cmp -0x3c(%rbp),%eax 225042: 0f 8e 0e 00 00 00 jle 225056 225048: 8b 45 c4 mov -0x3c(%rbp),%eax 22504b: 89 85 4c ff ff ff mov %eax,-0xb4(%rbp) 225051: e9 5f 00 00 00 jmp 2250b5 225056: 8b 85 7c ff ff ff mov -0x84(%rbp),%eax 22505c: 8b 4d c4 mov -0x3c(%rbp),%ecx 22505f: ba 03 00 00 00 mov $0x3,%edx 225064: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 22506a: 0f af ca imul %edx,%ecx 22506d: 29 c8 sub %ecx,%eax 22506f: 83 f8 00 cmp $0x0,%eax 225072: 0f 8e 24 00 00 00 jle 22509c 225078: 8b 85 7c ff ff ff mov -0x84(%rbp),%eax 22507e: 8b 4d c4 mov -0x3c(%rbp),%ecx 225081: ba 03 00 00 00 mov $0x3,%edx 225086: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 22508c: 0f af ca imul %edx,%ecx 22508f: 29 c8 sub %ecx,%eax 225091: 89 85 48 ff ff ff mov %eax,-0xb8(%rbp) 225097: e9 0d 00 00 00 jmp 2250a9 22509c: 31 c0 xor %eax,%eax 22509e: 89 85 48 ff ff ff mov %eax,-0xb8(%rbp) 2250a4: e9 00 00 00 00 jmp 2250a9 2250a9: 8b 85 48 ff ff ff mov -0xb8(%rbp),%eax 2250af: 89 85 4c ff ff ff mov %eax,-0xb4(%rbp) 2250b5: 8b 85 4c ff ff ff mov -0xb4(%rbp),%eax 2250bb: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) int line2 = CLAMP(v2 - (GraphMeterMode_pixPerRow * (GRAPH_HEIGHT - 1 - line)), 0, GraphMeterMode_pixPerRow); 2250c1: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 2250c7: 8b 4d c4 mov -0x3c(%rbp),%ecx 2250ca: ba 03 00 00 00 mov $0x3,%edx 2250cf: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 2250d5: 0f af ca imul %edx,%ecx 2250d8: 29 c8 sub %ecx,%eax 2250da: 3b 45 c4 cmp -0x3c(%rbp),%eax 2250dd: 0f 8e 0e 00 00 00 jle 2250f1 2250e3: 8b 45 c4 mov -0x3c(%rbp),%eax 2250e6: 89 85 44 ff ff ff mov %eax,-0xbc(%rbp) 2250ec: e9 5f 00 00 00 jmp 225150 2250f1: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 2250f7: 8b 4d c4 mov -0x3c(%rbp),%ecx 2250fa: ba 03 00 00 00 mov $0x3,%edx 2250ff: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 225105: 0f af ca imul %edx,%ecx 225108: 29 c8 sub %ecx,%eax 22510a: 83 f8 00 cmp $0x0,%eax 22510d: 0f 8e 24 00 00 00 jle 225137 225113: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 225119: 8b 4d c4 mov -0x3c(%rbp),%ecx 22511c: ba 03 00 00 00 mov $0x3,%edx 225121: 2b 95 70 ff ff ff sub -0x90(%rbp),%edx 225127: 0f af ca imul %edx,%ecx 22512a: 29 c8 sub %ecx,%eax 22512c: 89 85 40 ff ff ff mov %eax,-0xc0(%rbp) 225132: e9 0d 00 00 00 jmp 225144 225137: 31 c0 xor %eax,%eax 225139: 89 85 40 ff ff ff mov %eax,-0xc0(%rbp) 22513f: e9 00 00 00 00 jmp 225144 225144: 8b 85 40 ff ff ff mov -0xc0(%rbp),%eax 22514a: 89 85 44 ff ff ff mov %eax,-0xbc(%rbp) 225150: 8b 85 44 ff ff ff mov -0xbc(%rbp),%eax 225156: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) attrset(CRT_colors[colorIdx]); 22515c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225164: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22516c: 48 63 8d 74 ff ff ff movslq -0x8c(%rbp),%rcx 225173: 8b 34 88 mov (%rax,%rcx,4),%esi 225176: e8 05 90 01 00 call 23e180 mvaddstr(y + line, x + k, GraphMeterMode_dots[line1 * (GraphMeterMode_pixPerRow + 1) + line2]); 22517b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225183: 8b 75 f0 mov -0x10(%rbp),%esi 225186: 03 b5 70 ff ff ff add -0x90(%rbp),%esi 22518c: 8b 55 f4 mov -0xc(%rbp),%edx 22518f: 03 55 84 add -0x7c(%rbp),%edx 225192: e8 f9 8f 01 00 call 23e190 225197: 83 f8 ff cmp $0xffffffff,%eax 22519a: 0f 85 05 00 00 00 jne 2251a5 2251a0: e9 32 00 00 00 jmp 2251d7 2251a5: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2251ad: 48 8b 45 c8 mov -0x38(%rbp),%rax 2251b1: 8b 8d 6c ff ff ff mov -0x94(%rbp),%ecx 2251b7: 8b 55 c4 mov -0x3c(%rbp),%edx 2251ba: 83 c2 01 add $0x1,%edx 2251bd: 0f af ca imul %edx,%ecx 2251c0: 03 8d 68 ff ff ff add -0x98(%rbp),%ecx 2251c6: 48 63 c9 movslq %ecx,%rcx 2251c9: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 2251cd: ba ff ff ff ff mov $0xffffffff,%edx 2251d2: e8 d9 8f 01 00 call 23e1b0 colorIdx = GRAPH_2; 2251d7: c7 85 74 ff ff ff 30 00 00 00 movl $0x30,-0x8c(%rbp) for (int line = 0; line < GRAPH_HEIGHT; line++) { 2251e1: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 2251e7: 83 c0 01 add $0x1,%eax 2251ea: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) 2251f0: e9 24 fe ff ff jmp 225019 } 2251f5: e9 00 00 00 00 jmp 2251fa for (; i < nValues - 1; i += 2, k++) { 2251fa: 8b 45 88 mov -0x78(%rbp),%eax 2251fd: 83 c0 02 add $0x2,%eax 225200: 89 45 88 mov %eax,-0x78(%rbp) 225203: 8b 45 84 mov -0x7c(%rbp),%eax 225206: 83 c0 01 add $0x1,%eax 225209: 89 45 84 mov %eax,-0x7c(%rbp) 22520c: e9 0b fc ff ff jmp 224e1c attrset(CRT_colors[RESET_COLOR]); 225211: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225219: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225221: 8b 30 mov (%rax),%esi 225223: e8 58 8f 01 00 call 23e180 } 225228: 48 81 c4 c0 00 00 00 add $0xc0,%rsp 22522f: 5d pop %rbp 225230: c3 ret 225231: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22523b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000225240 : static void LEDMeterMode_draw(Meter* this, int x, int y, int w) { 225240: 55 push %rbp 225241: 48 89 e5 mov %rsp,%rbp 225244: 48 81 ec 10 27 00 00 sub $0x2710,%rsp 22524b: 48 8b 05 de d5 01 00 mov 0x1d5de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 225252: 48 89 45 f8 mov %rax,-0x8(%rbp) 225256: 48 89 bd 38 d9 ff ff mov %rdi,-0x26c8(%rbp) 22525d: 89 b5 34 d9 ff ff mov %esi,-0x26cc(%rbp) 225263: 89 95 30 d9 ff ff mov %edx,-0x26d0(%rbp) 225269: 89 8d 2c d9 ff ff mov %ecx,-0x26d4(%rbp) if (CRT_utf8) 22526f: f6 04 25 60 1d 24 00 01 testb $0x1,0x241d60 225277: 0f 84 17 00 00 00 je 225294 LEDMeterMode_digits = LEDMeterMode_digitsUtf8; 22527d: 48 b8 00 95 20 00 00 00 00 00 movabs $0x209500,%rax 225287: 48 89 04 25 d8 21 24 00 mov %rax,0x2421d8 22528f: e9 12 00 00 00 jmp 2252a6 LEDMeterMode_digits = LEDMeterMode_digitsAscii; 225294: 48 b8 f0 95 20 00 00 00 00 00 movabs $0x2095f0,%rax 22529e: 48 89 04 25 d8 21 24 00 mov %rax,0x2421d8 RichString_begin(out); 2252a6: e9 00 00 00 00 jmp 2252ab 2252ab: c7 85 80 d9 ff ff 00 00 00 00 movl $0x0,-0x2680(%rbp) 2252b5: 48 8d 85 80 d9 ff ff lea -0x2680(%rbp),%rax 2252bc: 48 83 c0 10 add $0x10,%rax 2252c0: 48 89 85 88 d9 ff ff mov %rax,-0x2678(%rbp) 2252c7: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2252ce: 48 89 85 08 d9 ff ff mov %rax,-0x26f8(%rbp) 2252d5: 48 8d bd 60 d9 ff ff lea -0x26a0(%rbp),%rdi 2252dc: 31 f6 xor %esi,%esi 2252de: ba 1c 00 00 00 mov $0x1c,%edx 2252e3: e8 58 8f 01 00 call 23e240 2252e8: 48 8b 85 08 d9 ff ff mov -0x26f8(%rbp),%rax 2252ef: 48 8b 8d 60 d9 ff ff mov -0x26a0(%rbp),%rcx 2252f6: 48 89 08 mov %rcx,(%rax) 2252f9: 48 8b 8d 68 d9 ff ff mov -0x2698(%rbp),%rcx 225300: 48 89 48 08 mov %rcx,0x8(%rax) 225304: 48 8b 8d 70 d9 ff ff mov -0x2690(%rbp),%rcx 22530b: 48 89 48 10 mov %rcx,0x10(%rax) 22530f: 8b 8d 78 d9 ff ff mov -0x2688(%rbp),%ecx 225315: 89 48 18 mov %ecx,0x18(%rax) 225318: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) Meter_displayBuffer(this, &out); 22531f: 48 8b bd 38 d9 ff ff mov -0x26c8(%rbp),%rdi 225326: 48 8d b5 80 d9 ff ff lea -0x2680(%rbp),%rsi 22532d: e8 6e f7 ff ff call 224aa0 CRT_utf8 ? y + 1 : 225332: f6 04 25 60 1d 24 00 01 testb $0x1,0x241d60 22533a: 0f 84 14 00 00 00 je 225354 225340: 8b 85 30 d9 ff ff mov -0x26d0(%rbp),%eax 225346: 83 c0 01 add $0x1,%eax 225349: 89 85 04 d9 ff ff mov %eax,-0x26fc(%rbp) 22534f: e9 0f 00 00 00 jmp 225363 y + 2; 225354: 8b 85 30 d9 ff ff mov -0x26d0(%rbp),%eax 22535a: 83 c0 02 add $0x2,%eax 22535d: 89 85 04 d9 ff ff mov %eax,-0x26fc(%rbp) 225363: 8b 85 04 d9 ff ff mov -0x26fc(%rbp),%eax int yText = 225369: 89 85 28 d9 ff ff mov %eax,-0x26d8(%rbp) attrset(CRT_colors[LED_COLOR]); 22536f: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225377: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22537f: 8b 70 58 mov 0x58(%rax),%esi 225382: e8 f9 8d 01 00 call 23e180 const char* caption = Meter_getCaption(this); 225387: 48 8b 85 38 d9 ff ff mov -0x26c8(%rbp),%rax 22538e: 48 8b 00 mov (%rax),%rax 225391: 48 83 78 48 00 cmpq $0x0,0x48(%rax) 225396: 0f 84 23 00 00 00 je 2253bf 22539c: 48 8b 85 38 d9 ff ff mov -0x26c8(%rbp),%rax 2253a3: 48 8b 00 mov (%rax),%rax 2253a6: 48 8b 40 48 mov 0x48(%rax),%rax 2253aa: 48 8b bd 38 d9 ff ff mov -0x26c8(%rbp),%rdi 2253b1: ff d0 call *%rax 2253b3: 48 89 85 f8 d8 ff ff mov %rax,-0x2708(%rbp) 2253ba: e9 12 00 00 00 jmp 2253d1 2253bf: 48 8b 85 38 d9 ff ff mov -0x26c8(%rbp),%rax 2253c6: 48 8b 40 10 mov 0x10(%rax),%rax 2253ca: 48 89 85 f8 d8 ff ff mov %rax,-0x2708(%rbp) 2253d1: 48 8b 85 f8 d8 ff ff mov -0x2708(%rbp),%rax 2253d8: 48 89 85 20 d9 ff ff mov %rax,-0x26e0(%rbp) mvaddstr(yText, x, caption); 2253df: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2253e7: 8b b5 28 d9 ff ff mov -0x26d8(%rbp),%esi 2253ed: 8b 95 34 d9 ff ff mov -0x26cc(%rbp),%edx 2253f3: e8 98 8d 01 00 call 23e190 2253f8: 83 f8 ff cmp $0xffffffff,%eax 2253fb: 0f 85 05 00 00 00 jne 225406 225401: e9 19 00 00 00 jmp 22541f 225406: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22540e: 48 8b b5 20 d9 ff ff mov -0x26e0(%rbp),%rsi 225415: ba ff ff ff ff mov $0xffffffff,%edx 22541a: e8 91 8d 01 00 call 23e1b0 int xx = x + strlen(caption); 22541f: 48 63 85 34 d9 ff ff movslq -0x26cc(%rbp),%rax 225426: 48 89 85 f0 d8 ff ff mov %rax,-0x2710(%rbp) 22542d: 48 8b bd 20 d9 ff ff mov -0x26e0(%rbp),%rdi 225434: e8 b7 8d 01 00 call 23e1f0 225439: 48 89 c1 mov %rax,%rcx 22543c: 48 8b 85 f0 d8 ff ff mov -0x2710(%rbp),%rax 225443: 48 01 c8 add %rcx,%rax 225446: 89 85 1c d9 ff ff mov %eax,-0x26e4(%rbp) int len = RichString_sizeVal(out); 22544c: 8b 85 80 d9 ff ff mov -0x2680(%rbp),%eax 225452: 89 85 18 d9 ff ff mov %eax,-0x26e8(%rbp) for (int i = 0; i < len; i++) { 225458: c7 85 14 d9 ff ff 00 00 00 00 movl $0x0,-0x26ec(%rbp) 225462: 8b 85 14 d9 ff ff mov -0x26ec(%rbp),%eax 225468: 3b 85 18 d9 ff ff cmp -0x26e8(%rbp),%eax 22546e: 0f 8d 28 01 00 00 jge 22559c int c = RichString_getCharVal(out, i); 225474: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 22547b: 48 63 8d 14 d9 ff ff movslq -0x26ec(%rbp),%rcx 225482: 48 6b c9 1c imul $0x1c,%rcx,%rcx 225486: 48 01 c8 add %rcx,%rax 225489: 8b 40 04 mov 0x4(%rax),%eax 22548c: 89 85 10 d9 ff ff mov %eax,-0x26f0(%rbp) if (c >= '0' && c <= '9') { 225492: 83 bd 10 d9 ff ff 30 cmpl $0x30,-0x26f0(%rbp) 225499: 0f 8c 5b 00 00 00 jl 2254fa 22549f: 83 bd 10 d9 ff ff 39 cmpl $0x39,-0x26f0(%rbp) 2254a6: 0f 8f 4e 00 00 00 jg 2254fa if (xx - x + 4 > w) 2254ac: 8b 85 1c d9 ff ff mov -0x26e4(%rbp),%eax 2254b2: 2b 85 34 d9 ff ff sub -0x26cc(%rbp),%eax 2254b8: 83 c0 04 add $0x4,%eax 2254bb: 3b 85 2c d9 ff ff cmp -0x26d4(%rbp),%eax 2254c1: 0f 8e 05 00 00 00 jle 2254cc break; 2254c7: e9 d0 00 00 00 jmp 22559c LEDMeterMode_drawDigit(xx, y, c - '0'); 2254cc: 8b bd 1c d9 ff ff mov -0x26e4(%rbp),%edi 2254d2: 8b b5 30 d9 ff ff mov -0x26d0(%rbp),%esi 2254d8: 8b 95 10 d9 ff ff mov -0x26f0(%rbp),%edx 2254de: 83 ea 30 sub $0x30,%edx 2254e1: e8 0a 01 00 00 call 2255f0 xx += 4; 2254e6: 8b 85 1c d9 ff ff mov -0x26e4(%rbp),%eax 2254ec: 83 c0 04 add $0x4,%eax 2254ef: 89 85 1c d9 ff ff mov %eax,-0x26e4(%rbp) } else { 2254f5: e9 89 00 00 00 jmp 225583 if (xx - x + 1 > w) 2254fa: 8b 85 1c d9 ff ff mov -0x26e4(%rbp),%eax 225500: 2b 85 34 d9 ff ff sub -0x26cc(%rbp),%eax 225506: 83 c0 01 add $0x1,%eax 225509: 3b 85 2c d9 ff ff cmp -0x26d4(%rbp),%eax 22550f: 0f 8e 05 00 00 00 jle 22551a break; 225515: e9 82 00 00 00 jmp 22559c const cchar_t wc = { .chars = { c, '\0' }, .attr = 0 }; /* use LED_COLOR from attrset() */ 22551a: 48 8d bd 40 d9 ff ff lea -0x26c0(%rbp),%rdi 225521: 31 f6 xor %esi,%esi 225523: ba 1c 00 00 00 mov $0x1c,%edx 225528: e8 13 8d 01 00 call 23e240 22552d: 8b 85 10 d9 ff ff mov -0x26f0(%rbp),%eax 225533: 89 85 44 d9 ff ff mov %eax,-0x26bc(%rbp) mvadd_wch(yText, xx, &wc); 225539: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225541: 8b b5 28 d9 ff ff mov -0x26d8(%rbp),%esi 225547: 8b 95 1c d9 ff ff mov -0x26e4(%rbp),%edx 22554d: e8 3e 8c 01 00 call 23e190 225552: 83 f8 ff cmp $0xffffffff,%eax 225555: 0f 85 05 00 00 00 jne 225560 22555b: e9 14 00 00 00 jmp 225574 225560: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 225568: 48 8d b5 40 d9 ff ff lea -0x26c0(%rbp),%rsi 22556f: e8 ec 90 01 00 call 23e660 xx += 1; 225574: 8b 85 1c d9 ff ff mov -0x26e4(%rbp),%eax 22557a: 83 c0 01 add $0x1,%eax 22557d: 89 85 1c d9 ff ff mov %eax,-0x26e4(%rbp) } 225583: e9 00 00 00 00 jmp 225588 for (int i = 0; i < len; i++) { 225588: 8b 85 14 d9 ff ff mov -0x26ec(%rbp),%eax 22558e: 83 c0 01 add $0x1,%eax 225591: 89 85 14 d9 ff ff mov %eax,-0x26ec(%rbp) 225597: e9 c6 fe ff ff jmp 225462 attrset(CRT_colors[RESET_COLOR]); 22559c: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2255a4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2255ac: 8b 30 mov (%rax),%esi 2255ae: e8 cd 8b 01 00 call 23e180 RichString_delete(&out); 2255b3: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 2255ba: e8 a1 cc 00 00 call 232260 2255bf: 48 8b 05 6a d2 01 00 mov 0x1d26a(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2255c6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2255ca: 48 39 c8 cmp %rcx,%rax 2255cd: 0f 85 09 00 00 00 jne 2255dc } 2255d3: 48 81 c4 10 27 00 00 add $0x2710,%rsp 2255da: 5d pop %rbp 2255db: c3 ret 2255dc: e8 5f 8b 01 00 call 23e140 <__stack_chk_fail@plt> 2255e1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2255eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002255f0 : static void LEDMeterMode_drawDigit(int x, int y, int n) { 2255f0: 55 push %rbp 2255f1: 48 89 e5 mov %rsp,%rbp 2255f4: 48 83 ec 10 sub $0x10,%rsp 2255f8: 89 7d fc mov %edi,-0x4(%rbp) 2255fb: 89 75 f8 mov %esi,-0x8(%rbp) 2255fe: 89 55 f4 mov %edx,-0xc(%rbp) for (int i = 0; i < 3; i++) 225601: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 225608: 83 7d f0 03 cmpl $0x3,-0x10(%rbp) 22560c: 0f 8d 5a 00 00 00 jge 22566c mvaddstr(y + i, x, LEDMeterMode_digits[i * 10 + n]); 225612: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22561a: 8b 75 f8 mov -0x8(%rbp),%esi 22561d: 03 75 f0 add -0x10(%rbp),%esi 225620: 8b 55 fc mov -0x4(%rbp),%edx 225623: e8 68 8b 01 00 call 23e190 225628: 83 f8 ff cmp $0xffffffff,%eax 22562b: 0f 85 05 00 00 00 jne 225636 225631: e9 28 00 00 00 jmp 22565e 225636: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22563e: 48 8b 04 25 d8 21 24 00 mov 0x2421d8,%rax 225646: 6b 4d f0 0a imul $0xa,-0x10(%rbp),%ecx 22564a: 03 4d f4 add -0xc(%rbp),%ecx 22564d: 48 63 c9 movslq %ecx,%rcx 225650: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 225654: ba ff ff ff ff mov $0xffffffff,%edx 225659: e8 52 8b 01 00 call 23e1b0 for (int i = 0; i < 3; i++) 22565e: 8b 45 f0 mov -0x10(%rbp),%eax 225661: 83 c0 01 add $0x1,%eax 225664: 89 45 f0 mov %eax,-0x10(%rbp) 225667: e9 9c ff ff ff jmp 225608 } 22566c: 48 83 c4 10 add $0x10,%rsp 225670: 5d pop %rbp 225671: c3 ret 225672: cc int3 225673: cc int3 225674: cc int3 225675: cc int3 225676: cc int3 225677: cc int3 225678: cc int3 225679: cc int3 22567a: cc int3 22567b: cc int3 22567c: cc int3 22567d: cc int3 22567e: cc int3 22567f: cc int3 0000000000225680 : static const char* const MetersMovingFunctions[] = {"Style ", "Lock ", "Up ", "Down ", "Left ", "Right ", " ", "Delete", "Done ", NULL}; static const char* const MetersMovingKeys[] = {"Space", "Enter", "Up", "Dn", "<-", "->", " ", "Del", "F10"}; static const int MetersMovingEvents[] = {' ', 13, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, ERR, KEY_DC, KEY_F(10)}; static FunctionBar* Meters_movingBar = NULL; void MetersPanel_cleanup() { 225680: 55 push %rbp 225681: 48 89 e5 mov %rsp,%rbp if (Meters_movingBar) { 225684: 48 83 3c 25 e0 21 24 00 00 cmpq $0x0,0x2421e0 22568d: 0f 84 19 00 00 00 je 2256ac FunctionBar_delete(Meters_movingBar); 225693: 48 8b 3c 25 e0 21 24 00 mov 0x2421e0,%rdi 22569b: e8 a0 8e ff ff call 21e540 Meters_movingBar = NULL; 2256a0: 48 c7 04 25 e0 21 24 00 00 00 00 00 movq $0x0,0x2421e0 } } 2256ac: 5d pop %rbp 2256ad: c3 ret 2256ae: 66 90 xchg %ax,%ax 00000000002256b0 : MetersPanel* this = (MetersPanel*) object; Panel_done(super); free(this); } void MetersPanel_setMoving(MetersPanel* this, bool moving) { 2256b0: 55 push %rbp 2256b1: 48 89 e5 mov %rsp,%rbp 2256b4: 48 83 ec 20 sub $0x20,%rsp 2256b8: 40 88 f0 mov %sil,%al 2256bb: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2256bf: 24 01 and $0x1,%al 2256c1: 88 45 f7 mov %al,-0x9(%rbp) Panel* super = (Panel*) this; 2256c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2256c8: 48 89 45 e8 mov %rax,-0x18(%rbp) this->moving = moving; 2256cc: 8a 4d f7 mov -0x9(%rbp),%cl 2256cf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2256d3: 80 e1 01 and $0x1,%cl 2256d6: 88 88 00 27 00 00 mov %cl,0x2700(%rax) ListItem* selected = (ListItem*)Panel_getSelected(super); 2256dc: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2256e0: e8 8b 29 00 00 call 228070 2256e5: 48 89 45 e0 mov %rax,-0x20(%rbp) if (selected) { 2256e9: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 2256ee: 0f 84 0d 00 00 00 je 225701 selected->moving = moving; 2256f4: 8a 4d f7 mov -0x9(%rbp),%cl 2256f7: 48 8b 45 e0 mov -0x20(%rbp),%rax 2256fb: 80 e1 01 and $0x1,%cl 2256fe: 88 48 14 mov %cl,0x14(%rax) } if (!moving) { 225701: f6 45 f7 01 testb $0x1,-0x9(%rbp) 225705: 0f 85 23 00 00 00 jne 22572e Panel_setSelectionColor(super, PANEL_SELECTION_FOCUS); 22570b: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22570f: be 09 00 00 00 mov $0x9,%esi 225714: e8 b7 26 00 00 call 227dd0 Panel_setDefaultBar(super); 225719: 48 8b 45 e8 mov -0x18(%rbp),%rax 22571d: 48 8b 48 50 mov 0x50(%rax),%rcx 225721: 48 8b 45 e8 mov -0x18(%rbp),%rax 225725: 48 89 48 48 mov %rcx,0x48(%rax) } else { 225729: e9 1e 00 00 00 jmp 22574c Panel_setSelectionColor(super, PANEL_SELECTION_FOLLOW); 22572e: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225732: be 0a 00 00 00 mov $0xa,%esi 225737: e8 94 26 00 00 call 227dd0 super->currentBar = Meters_movingBar; 22573c: 48 8b 0c 25 e0 21 24 00 mov 0x2421e0,%rcx 225744: 48 8b 45 e8 mov -0x18(%rbp),%rax 225748: 48 89 48 48 mov %rcx,0x48(%rax) } } 22574c: 48 83 c4 20 add $0x20,%rsp 225750: 5d pop %rbp 225751: c3 ret 225752: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22575c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000225760 : static void MetersPanel_delete(Object* object) { 225760: 55 push %rbp 225761: 48 89 e5 mov %rsp,%rbp 225764: 48 83 ec 20 sub $0x20,%rsp 225768: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* super = (Panel*) object; 22576c: 48 8b 45 f8 mov -0x8(%rbp),%rax 225770: 48 89 45 f0 mov %rax,-0x10(%rbp) MetersPanel* this = (MetersPanel*) object; 225774: 48 8b 45 f8 mov -0x8(%rbp),%rax 225778: 48 89 45 e8 mov %rax,-0x18(%rbp) Panel_done(super); 22577c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 225780: e8 fb 25 00 00 call 227d80 free(this); 225785: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225789: e8 d2 89 01 00 call 23e160 } 22578e: 48 83 c4 20 add $0x20,%rsp 225792: 5d pop %rbp 225793: c3 ret 225794: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22579e: 66 90 xchg %ax,%ax 00000000002257a0 : } } return false; } static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { 2257a0: 55 push %rbp 2257a1: 48 89 e5 mov %rsp,%rbp 2257a4: 48 83 ec 60 sub $0x60,%rsp 2257a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2257ac: 89 75 f4 mov %esi,-0xc(%rbp) MetersPanel* this = (MetersPanel*) super; 2257af: 48 8b 45 f8 mov -0x8(%rbp),%rax 2257b3: 48 89 45 e8 mov %rax,-0x18(%rbp) int selected = Panel_getSelectedIndex(super); 2257b7: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2257bb: e8 c0 29 00 00 call 228180 2257c0: 89 45 e4 mov %eax,-0x1c(%rbp) HandlerResult result = IGNORED; 2257c3: c7 45 e0 02 00 00 00 movl $0x2,-0x20(%rbp) bool sideMove = false; 2257ca: c6 45 df 00 movb $0x0,-0x21(%rbp) switch(ch) { 2257ce: 8b 45 f4 mov -0xc(%rbp),%eax 2257d1: 89 45 bc mov %eax,-0x44(%rbp) 2257d4: 83 e8 0a sub $0xa,%eax 2257d7: 0f 84 3a 01 00 00 je 225917 2257dd: e9 00 00 00 00 jmp 2257e2 2257e2: 8b 45 bc mov -0x44(%rbp),%eax 2257e5: 83 e8 0d sub $0xd,%eax 2257e8: 0f 84 29 01 00 00 je 225917 2257ee: e9 00 00 00 00 jmp 2257f3 2257f3: 8b 45 bc mov -0x44(%rbp),%eax 2257f6: 83 e8 20 sub $0x20,%eax 2257f9: 0f 84 5d 01 00 00 je 22595c 2257ff: e9 00 00 00 00 jmp 225804 225804: 8b 45 bc mov -0x44(%rbp),%eax 225807: 83 e8 2b sub $0x2b,%eax 22580a: 0f 84 4a 02 00 00 je 225a5a 225810: e9 00 00 00 00 jmp 225815 225815: 8b 45 bc mov -0x44(%rbp),%eax 225818: 83 e8 2d sub $0x2d,%eax 22581b: 0f 84 f6 01 00 00 je 225a17 225821: e9 00 00 00 00 jmp 225826 225826: 8b 45 bc mov -0x44(%rbp),%eax 225829: 83 e8 5b sub $0x5b,%eax 22582c: 0f 84 e5 01 00 00 je 225a17 225832: e9 00 00 00 00 jmp 225837 225837: 8b 45 bc mov -0x44(%rbp),%eax 22583a: 83 e8 5d sub $0x5d,%eax 22583d: 0f 84 17 02 00 00 je 225a5a 225843: e9 00 00 00 00 jmp 225848 225848: 8b 45 bc mov -0x44(%rbp),%eax 22584b: 83 e8 74 sub $0x74,%eax 22584e: 0f 84 08 01 00 00 je 22595c 225854: e9 00 00 00 00 jmp 225859 225859: 8b 45 bc mov -0x44(%rbp),%eax 22585c: 2d 02 01 00 00 sub $0x102,%eax 225861: 0f 84 d8 01 00 00 je 225a3f 225867: e9 00 00 00 00 jmp 22586c 22586c: 8b 45 bc mov -0x44(%rbp),%eax 22586f: 2d 03 01 00 00 sub $0x103,%eax 225874: 0f 84 82 01 00 00 je 2259fc 22587a: e9 00 00 00 00 jmp 22587f 22587f: 8b 45 bc mov -0x44(%rbp),%eax 225882: 2d 04 01 00 00 sub $0x104,%eax 225887: 0f 84 38 02 00 00 je 225ac5 22588d: e9 00 00 00 00 jmp 225892 225892: 8b 45 bc mov -0x44(%rbp),%eax 225895: 2d 05 01 00 00 sub $0x105,%eax 22589a: 0f 84 e2 01 00 00 je 225a82 2258a0: e9 00 00 00 00 jmp 2258a5 2258a5: 8b 45 bc mov -0x44(%rbp),%eax 2258a8: 2d 0c 01 00 00 sub $0x10c,%eax 2258ad: 0f 84 a9 00 00 00 je 22595c 2258b3: e9 00 00 00 00 jmp 2258b8 2258b8: 8b 45 bc mov -0x44(%rbp),%eax 2258bb: 2d 0f 01 00 00 sub $0x10f,%eax 2258c0: 0f 84 51 01 00 00 je 225a17 2258c6: e9 00 00 00 00 jmp 2258cb 2258cb: 8b 45 bc mov -0x44(%rbp),%eax 2258ce: 2d 10 01 00 00 sub $0x110,%eax 2258d3: 0f 84 81 01 00 00 je 225a5a 2258d9: e9 00 00 00 00 jmp 2258de 2258de: 8b 45 bc mov -0x44(%rbp),%eax 2258e1: 2d 11 01 00 00 sub $0x111,%eax 2258e6: 0f 84 1c 02 00 00 je 225b08 2258ec: e9 00 00 00 00 jmp 2258f1 2258f1: 8b 45 bc mov -0x44(%rbp),%eax 2258f4: 2d 4a 01 00 00 sub $0x14a,%eax 2258f9: 0f 84 09 02 00 00 je 225b08 2258ff: e9 00 00 00 00 jmp 225904 225904: 8b 45 bc mov -0x44(%rbp),%eax 225907: 2d 57 01 00 00 sub $0x157,%eax 22590c: 0f 85 68 02 00 00 jne 225b7a 225912: e9 00 00 00 00 jmp 225917 case 0x0a: case 0x0d: case KEY_ENTER: { if (!Vector_size(this->meters)) 225917: 48 8b 45 e8 mov -0x18(%rbp),%rax 22591b: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225922: e8 59 04 00 00 call 225d80 225927: 83 f8 00 cmp $0x0,%eax 22592a: 0f 85 05 00 00 00 jne 225935 break; 225930: e9 45 02 00 00 jmp 225b7a MetersPanel_setMoving(this, !(this->moving)); 225935: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225939: 48 8b 45 e8 mov -0x18(%rbp),%rax 22593d: 8a 80 00 27 00 00 mov 0x2700(%rax),%al 225943: 34 ff xor $0xff,%al 225945: 0f b6 f0 movzbl %al,%esi 225948: 83 e6 01 and $0x1,%esi 22594b: e8 60 fd ff ff call 2256b0 result = HANDLED; 225950: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 225957: e9 1e 02 00 00 jmp 225b7a } case ' ': case KEY_F(4): case 't': { if (!Vector_size(this->meters)) 22595c: 48 8b 45 e8 mov -0x18(%rbp),%rax 225960: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225967: e8 14 04 00 00 call 225d80 22596c: 83 f8 00 cmp $0x0,%eax 22596f: 0f 85 05 00 00 00 jne 22597a break; 225975: e9 00 02 00 00 jmp 225b7a Meter* meter = (Meter*) Vector_get(this->meters, selected); 22597a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22597e: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225985: 8b 75 e4 mov -0x1c(%rbp),%esi 225988: e8 13 04 00 00 call 225da0 22598d: 48 89 45 d0 mov %rax,-0x30(%rbp) int mode = meter->mode + 1; 225991: 48 8b 45 d0 mov -0x30(%rbp),%rax 225995: 8b 40 18 mov 0x18(%rax),%eax 225998: 83 c0 01 add $0x1,%eax 22599b: 89 45 cc mov %eax,-0x34(%rbp) if (mode == LAST_METERMODE) mode = 1; 22599e: 83 7d cc 05 cmpl $0x5,-0x34(%rbp) 2259a2: 0f 85 07 00 00 00 jne 2259af 2259a8: c7 45 cc 01 00 00 00 movl $0x1,-0x34(%rbp) Meter_setMode(meter, mode); 2259af: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2259b3: 8b 75 cc mov -0x34(%rbp),%esi 2259b6: e8 65 df ff ff call 223920 Panel_set(super, selected, (Object*) Meter_toListItem(meter, this->moving)); 2259bb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2259bf: 48 89 45 b0 mov %rax,-0x50(%rbp) 2259c3: 8b 45 e4 mov -0x1c(%rbp),%eax 2259c6: 89 45 b8 mov %eax,-0x48(%rbp) 2259c9: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2259cd: 48 8b 45 e8 mov -0x18(%rbp),%rax 2259d1: 8a 80 00 27 00 00 mov 0x2700(%rax),%al 2259d7: 24 01 and $0x1,%al 2259d9: 0f b6 f0 movzbl %al,%esi 2259dc: e8 2f e2 ff ff call 223c10 2259e1: 48 8b 7d b0 mov -0x50(%rbp),%rdi 2259e5: 8b 75 b8 mov -0x48(%rbp),%esi 2259e8: 48 89 c2 mov %rax,%rdx 2259eb: e8 60 25 00 00 call 227f50 result = HANDLED; 2259f0: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 2259f7: e9 7e 01 00 00 jmp 225b7a } case KEY_UP: { if (!this->moving) { 2259fc: 48 8b 45 e8 mov -0x18(%rbp),%rax 225a00: f6 80 00 27 00 00 01 testb $0x1,0x2700(%rax) 225a07: 0f 85 05 00 00 00 jne 225a12 break; 225a0d: e9 68 01 00 00 jmp 225b7a } } 225a12: e9 00 00 00 00 jmp 225a17 /* else fallthrough */ case KEY_F(7): case '[': case '-': { Vector_moveUp(this->meters, selected); 225a17: 48 8b 45 e8 mov -0x18(%rbp),%rax 225a1b: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225a22: 8b 75 e4 mov -0x1c(%rbp),%esi 225a25: e8 26 2c 01 00 call 238650 Panel_moveSelectedUp(super); 225a2a: 48 8b 7d f8 mov -0x8(%rbp),%rdi 225a2e: e8 9d 26 00 00 call 2280d0 result = HANDLED; 225a33: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 225a3a: e9 3b 01 00 00 jmp 225b7a } case KEY_DOWN: { if (!this->moving) { 225a3f: 48 8b 45 e8 mov -0x18(%rbp),%rax 225a43: f6 80 00 27 00 00 01 testb $0x1,0x2700(%rax) 225a4a: 0f 85 05 00 00 00 jne 225a55 break; 225a50: e9 25 01 00 00 jmp 225b7a } } 225a55: e9 00 00 00 00 jmp 225a5a /* else fallthrough */ case KEY_F(8): case ']': case '+': { Vector_moveDown(this->meters, selected); 225a5a: 48 8b 45 e8 mov -0x18(%rbp),%rax 225a5e: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225a65: 8b 75 e4 mov -0x1c(%rbp),%esi 225a68: e8 53 2c 01 00 call 2386c0 Panel_moveSelectedDown(super); 225a6d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 225a71: e8 aa 26 00 00 call 228120 result = HANDLED; 225a76: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; 225a7d: e9 f8 00 00 00 jmp 225b7a } case KEY_RIGHT: { sideMove = moveToNeighbor(this, this->rightNeighbor, selected); 225a82: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225a86: 48 8b 45 e8 mov -0x18(%rbp),%rax 225a8a: 48 8b b0 f8 26 00 00 mov 0x26f8(%rax),%rsi 225a91: 8b 55 e4 mov -0x1c(%rbp),%edx 225a94: e8 27 03 00 00 call 225dc0 225a99: 24 01 and $0x1,%al 225a9b: 88 45 df mov %al,-0x21(%rbp) if (this->moving && !sideMove) { 225a9e: 48 8b 45 e8 mov -0x18(%rbp),%rax 225aa2: f6 80 00 27 00 00 01 testb $0x1,0x2700(%rax) 225aa9: 0f 84 11 00 00 00 je 225ac0 225aaf: f6 45 df 01 testb $0x1,-0x21(%rbp) 225ab3: 0f 85 07 00 00 00 jne 225ac0 // lock user here until it exits positioning-mode result = HANDLED; 225ab9: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) } // if user is free, don't set HANDLED; // let ScreenManager handle focus. break; 225ac0: e9 b5 00 00 00 jmp 225b7a } case KEY_LEFT: { sideMove = moveToNeighbor(this, this->leftNeighbor, selected); 225ac5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225ac9: 48 8b 45 e8 mov -0x18(%rbp),%rax 225acd: 48 8b b0 f0 26 00 00 mov 0x26f0(%rax),%rsi 225ad4: 8b 55 e4 mov -0x1c(%rbp),%edx 225ad7: e8 e4 02 00 00 call 225dc0 225adc: 24 01 and $0x1,%al 225ade: 88 45 df mov %al,-0x21(%rbp) if (this->moving && !sideMove) { 225ae1: 48 8b 45 e8 mov -0x18(%rbp),%rax 225ae5: f6 80 00 27 00 00 01 testb $0x1,0x2700(%rax) 225aec: 0f 84 11 00 00 00 je 225b03 225af2: f6 45 df 01 testb $0x1,-0x21(%rbp) 225af6: 0f 85 07 00 00 00 jne 225b03 result = HANDLED; 225afc: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) } break; 225b03: e9 72 00 00 00 jmp 225b7a } case KEY_F(9): case KEY_DC: { if (!Vector_size(this->meters)) 225b08: 48 8b 45 e8 mov -0x18(%rbp),%rax 225b0c: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225b13: e8 68 02 00 00 call 225d80 225b18: 83 f8 00 cmp $0x0,%eax 225b1b: 0f 85 05 00 00 00 jne 225b26 break; 225b21: e9 54 00 00 00 jmp 225b7a if (selected < Vector_size(this->meters)) { 225b26: 8b 45 e4 mov -0x1c(%rbp),%eax 225b29: 89 45 ac mov %eax,-0x54(%rbp) 225b2c: 48 8b 45 e8 mov -0x18(%rbp),%rax 225b30: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225b37: e8 44 02 00 00 call 225d80 225b3c: 89 c1 mov %eax,%ecx 225b3e: 8b 45 ac mov -0x54(%rbp),%eax 225b41: 39 c8 cmp %ecx,%eax 225b43: 0f 8d 1f 00 00 00 jge 225b68 Vector_remove(this->meters, selected); 225b49: 48 8b 45 e8 mov -0x18(%rbp),%rax 225b4d: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225b54: 8b 75 e4 mov -0x1c(%rbp),%esi 225b57: e8 94 2a 01 00 call 2385f0 Panel_remove(super, selected); 225b5c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 225b60: 8b 75 e4 mov -0x1c(%rbp),%esi 225b63: e8 68 24 00 00 call 227fd0 } MetersPanel_setMoving(this, false); 225b68: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225b6c: 31 f6 xor %esi,%esi 225b6e: e8 3d fb ff ff call 2256b0 result = HANDLED; 225b73: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) break; } } if (result == HANDLED || sideMove) { 225b7a: 83 7d e0 01 cmpl $0x1,-0x20(%rbp) 225b7e: 0f 84 0a 00 00 00 je 225b8e 225b84: f6 45 df 01 testb $0x1,-0x21(%rbp) 225b88: 0f 84 3b 00 00 00 je 225bc9 Header* header = this->scr->header; 225b8e: 48 8b 45 e8 mov -0x18(%rbp),%rax 225b92: 48 8b 80 e8 26 00 00 mov 0x26e8(%rax),%rax 225b99: 48 8b 40 20 mov 0x20(%rax),%rax 225b9d: 48 89 45 c0 mov %rax,-0x40(%rbp) this->settings->changed = true; 225ba1: 48 8b 45 e8 mov -0x18(%rbp),%rax 225ba5: 48 8b 80 d8 26 00 00 mov 0x26d8(%rax),%rax 225bac: c6 40 68 01 movb $0x1,0x68(%rax) Header_calculateHeight(header); 225bb0: 48 8b 7d c0 mov -0x40(%rbp),%rdi 225bb4: e8 e7 9b ff ff call 21f7a0 ScreenManager_resize(this->scr); 225bb9: 48 8b 45 e8 mov -0x18(%rbp),%rax 225bbd: 48 8b b8 e8 26 00 00 mov 0x26e8(%rax),%rdi 225bc4: e8 87 d1 00 00 call 232d50 } return result; 225bc9: 8b 45 e0 mov -0x20(%rbp),%eax 225bcc: 48 83 c4 60 add $0x60,%rsp 225bd0: 5d pop %rbp 225bd1: c3 ret 225bd2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 225bdc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000225be0 : .delete = MetersPanel_delete }, .eventHandler = MetersPanel_eventHandler }; MetersPanel* MetersPanel_new(Settings* settings, const char* header, Vector* meters, ScreenManager* scr) { 225be0: 55 push %rbp 225be1: 48 89 e5 mov %rsp,%rbp 225be4: 48 83 ec 70 sub $0x70,%rsp 225be8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 225bec: 48 89 75 f0 mov %rsi,-0x10(%rbp) 225bf0: 48 89 55 e8 mov %rdx,-0x18(%rbp) 225bf4: 48 89 4d e0 mov %rcx,-0x20(%rbp) MetersPanel* this = AllocThis(MetersPanel); 225bf8: bf 08 27 00 00 mov $0x2708,%edi 225bfd: e8 5e 2e 01 00 call 238a60 225c02: 48 89 45 d8 mov %rax,-0x28(%rbp) 225c06: 48 8b 45 d8 mov -0x28(%rbp),%rax 225c0a: 48 b9 e0 96 20 00 00 00 00 00 movabs $0x2096e0,%rcx 225c14: 48 89 08 mov %rcx,(%rax) Panel* super = (Panel*) this; 225c17: 48 8b 45 d8 mov -0x28(%rbp),%rax 225c1b: 48 89 45 d0 mov %rax,-0x30(%rbp) FunctionBar* fuBar = FunctionBar_new(MetersFunctions, MetersKeys, MetersEvents); 225c1f: 48 bf 20 97 20 00 00 00 00 00 movabs $0x209720,%rdi 225c29: 48 be 50 97 20 00 00 00 00 00 movabs $0x209750,%rsi 225c33: 48 ba 80 97 20 00 00 00 00 00 movabs $0x209780,%rdx 225c3d: e8 0e 87 ff ff call 21e350 225c42: 48 89 45 c8 mov %rax,-0x38(%rbp) if (!Meters_movingBar) { 225c46: 48 83 3c 25 e0 21 24 00 00 cmpq $0x0,0x2421e0 225c4f: 0f 85 2b 00 00 00 jne 225c80 Meters_movingBar = FunctionBar_new(MetersMovingFunctions, MetersMovingKeys, MetersMovingEvents); 225c55: 48 bf a0 97 20 00 00 00 00 00 movabs $0x2097a0,%rdi 225c5f: 48 be f0 97 20 00 00 00 00 00 movabs $0x2097f0,%rsi 225c69: 48 ba 40 98 20 00 00 00 00 00 movabs $0x209840,%rdx 225c73: e8 d8 86 ff ff call 21e350 225c78: 48 89 04 25 e0 21 24 00 mov %rax,0x2421e0 } Panel_init(super, 1, 1, 1, 1, Class(ListItem), true, fuBar); 225c80: 48 8b 7d d0 mov -0x30(%rbp),%rdi 225c84: 48 8b 45 c8 mov -0x38(%rbp),%rax 225c88: 41 b8 01 00 00 00 mov $0x1,%r8d 225c8e: 49 b9 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r9 225c98: 44 89 c6 mov %r8d,%esi 225c9b: 44 89 c2 mov %r8d,%edx 225c9e: 44 89 c1 mov %r8d,%ecx 225ca1: c7 04 24 01 00 00 00 movl $0x1,(%rsp) 225ca8: 48 89 44 24 08 mov %rax,0x8(%rsp) 225cad: e8 4e 1f 00 00 call 227c00 this->settings = settings; 225cb2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 225cb6: 48 8b 45 d8 mov -0x28(%rbp),%rax 225cba: 48 89 88 d8 26 00 00 mov %rcx,0x26d8(%rax) this->meters = meters; 225cc1: 48 8b 4d e8 mov -0x18(%rbp),%rcx 225cc5: 48 8b 45 d8 mov -0x28(%rbp),%rax 225cc9: 48 89 88 e0 26 00 00 mov %rcx,0x26e0(%rax) this->scr = scr; 225cd0: 48 8b 4d e0 mov -0x20(%rbp),%rcx 225cd4: 48 8b 45 d8 mov -0x28(%rbp),%rax 225cd8: 48 89 88 e8 26 00 00 mov %rcx,0x26e8(%rax) this->moving = false; 225cdf: 48 8b 45 d8 mov -0x28(%rbp),%rax 225ce3: c6 80 00 27 00 00 00 movb $0x0,0x2700(%rax) this->rightNeighbor = NULL; 225cea: 48 8b 45 d8 mov -0x28(%rbp),%rax 225cee: 48 c7 80 f8 26 00 00 00 00 00 00 movq $0x0,0x26f8(%rax) this->leftNeighbor = NULL; 225cf9: 48 8b 45 d8 mov -0x28(%rbp),%rax 225cfd: 48 c7 80 f0 26 00 00 00 00 00 00 movq $0x0,0x26f0(%rax) Panel_setHeader(super, header); 225d08: 48 8b 7d d0 mov -0x30(%rbp),%rdi 225d0c: 48 8b 75 f0 mov -0x10(%rbp),%rsi 225d10: e8 db 20 00 00 call 227df0 for (int i = 0; i < Vector_size(meters); i++) { 225d15: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) 225d1c: 8b 45 c4 mov -0x3c(%rbp),%eax 225d1f: 89 45 b4 mov %eax,-0x4c(%rbp) 225d22: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225d26: e8 55 00 00 00 call 225d80 225d2b: 89 c1 mov %eax,%ecx 225d2d: 8b 45 b4 mov -0x4c(%rbp),%eax 225d30: 39 c8 cmp %ecx,%eax 225d32: 0f 8d 3d 00 00 00 jge 225d75 const Meter* meter = (const Meter*) Vector_get(meters, i); 225d38: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225d3c: 8b 75 c4 mov -0x3c(%rbp),%esi 225d3f: e8 5c 00 00 00 call 225da0 225d44: 48 89 45 b8 mov %rax,-0x48(%rbp) Panel_add(super, (Object*) Meter_toListItem(meter, false)); 225d48: 48 8b 45 d0 mov -0x30(%rbp),%rax 225d4c: 48 89 45 a8 mov %rax,-0x58(%rbp) 225d50: 48 8b 7d b8 mov -0x48(%rbp),%rdi 225d54: 31 f6 xor %esi,%esi 225d56: e8 b5 de ff ff call 223c10 225d5b: 48 8b 7d a8 mov -0x58(%rbp),%rdi 225d5f: 48 89 c6 mov %rax,%rsi 225d62: e8 79 21 00 00 call 227ee0 for (int i = 0; i < Vector_size(meters); i++) { 225d67: 8b 45 c4 mov -0x3c(%rbp),%eax 225d6a: 83 c0 01 add $0x1,%eax 225d6d: 89 45 c4 mov %eax,-0x3c(%rbp) 225d70: e9 a7 ff ff ff jmp 225d1c } return this; 225d75: 48 8b 45 d8 mov -0x28(%rbp),%rax 225d79: 48 83 c4 70 add $0x70,%rsp 225d7d: 5d pop %rbp 225d7e: c3 ret 225d7f: 90 nop 0000000000225d80 : static inline int Vector_size(const Vector* this) { 225d80: 55 push %rbp 225d81: 48 89 e5 mov %rsp,%rbp 225d84: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 225d88: 48 8b 45 f8 mov -0x8(%rbp),%rax 225d8c: 8b 40 18 mov 0x18(%rax),%eax 225d8f: 5d pop %rbp 225d90: c3 ret 225d91: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 225d9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000225da0 : static inline Object* Vector_get(const Vector* this, int idx) { 225da0: 55 push %rbp 225da1: 48 89 e5 mov %rsp,%rbp 225da4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 225da8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 225dab: 48 8b 45 f8 mov -0x8(%rbp),%rax 225daf: 48 8b 00 mov (%rax),%rax 225db2: 48 63 4d f4 movslq -0xc(%rbp),%rcx 225db6: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 225dba: 5d pop %rbp 225dbb: c3 ret 225dbc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000225dc0 : static inline bool moveToNeighbor(MetersPanel* this, MetersPanel* neighbor, int selected) { 225dc0: 55 push %rbp 225dc1: 48 89 e5 mov %rsp,%rbp 225dc4: 48 83 ec 40 sub $0x40,%rsp 225dc8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 225dcc: 48 89 75 e8 mov %rsi,-0x18(%rbp) 225dd0: 89 55 e4 mov %edx,-0x1c(%rbp) Panel* super = (Panel*) this; 225dd3: 48 8b 45 f0 mov -0x10(%rbp),%rax 225dd7: 48 89 45 d8 mov %rax,-0x28(%rbp) if (this->moving) { 225ddb: 48 8b 45 f0 mov -0x10(%rbp),%rax 225ddf: f6 80 00 27 00 00 01 testb $0x1,0x2700(%rax) 225de6: 0f 84 c8 00 00 00 je 225eb4 if (neighbor) { 225dec: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 225df1: 0f 84 b8 00 00 00 je 225eaf if (selected < Vector_size(this->meters)) { 225df7: 8b 45 e4 mov -0x1c(%rbp),%eax 225dfa: 89 45 cc mov %eax,-0x34(%rbp) 225dfd: 48 8b 45 f0 mov -0x10(%rbp),%rax 225e01: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225e08: e8 73 ff ff ff call 225d80 225e0d: 89 c1 mov %eax,%ecx 225e0f: 8b 45 cc mov -0x34(%rbp),%eax 225e12: 39 c8 cmp %ecx,%eax 225e14: 0f 8d 90 00 00 00 jge 225eaa MetersPanel_setMoving(this, false); 225e1a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 225e1e: 31 f6 xor %esi,%esi 225e20: e8 8b f8 ff ff call 2256b0 Meter* meter = (Meter*) Vector_take(this->meters, selected); 225e25: 48 8b 45 f0 mov -0x10(%rbp),%rax 225e29: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225e30: 8b 75 e4 mov -0x1c(%rbp),%esi 225e33: e8 28 27 01 00 call 238560 225e38: 48 89 45 d0 mov %rax,-0x30(%rbp) Panel_remove(super, selected); 225e3c: 48 8b 7d d8 mov -0x28(%rbp),%rdi 225e40: 8b 75 e4 mov -0x1c(%rbp),%esi 225e43: e8 88 21 00 00 call 227fd0 Vector_insert(neighbor->meters, selected, meter); 225e48: 48 8b 45 e8 mov -0x18(%rbp),%rax 225e4c: 48 8b b8 e0 26 00 00 mov 0x26e0(%rax),%rdi 225e53: 8b 75 e4 mov -0x1c(%rbp),%esi 225e56: 48 8b 55 d0 mov -0x30(%rbp),%rdx 225e5a: e8 e1 25 01 00 call 238440 Panel_insert(&(neighbor->super), selected, (Object*) Meter_toListItem(meter, false)); 225e5f: 48 8b 45 e8 mov -0x18(%rbp),%rax 225e63: 48 89 45 c0 mov %rax,-0x40(%rbp) 225e67: 8b 45 e4 mov -0x1c(%rbp),%eax 225e6a: 89 45 c8 mov %eax,-0x38(%rbp) 225e6d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 225e71: 31 f6 xor %esi,%esi 225e73: e8 98 dd ff ff call 223c10 225e78: 48 8b 7d c0 mov -0x40(%rbp),%rdi 225e7c: 8b 75 c8 mov -0x38(%rbp),%esi 225e7f: 48 89 c2 mov %rax,%rdx 225e82: e8 89 20 00 00 call 227f10 Panel_setSelected(&(neighbor->super), selected); 225e87: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225e8b: 8b 75 e4 mov -0x1c(%rbp),%esi 225e8e: e8 2d 23 00 00 call 2281c0 MetersPanel_setMoving(neighbor, true); 225e93: 48 8b 7d e8 mov -0x18(%rbp),%rdi 225e97: be 01 00 00 00 mov $0x1,%esi 225e9c: e8 0f f8 ff ff call 2256b0 return true; 225ea1: c6 45 ff 01 movb $0x1,-0x1(%rbp) 225ea5: e9 0e 00 00 00 jmp 225eb8 } 225eaa: e9 00 00 00 00 jmp 225eaf } 225eaf: e9 00 00 00 00 jmp 225eb4 return false; 225eb4: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 225eb8: 8a 45 ff mov -0x1(%rbp),%al 225ebb: 24 01 and $0x1,%al 225ebd: 0f b6 c0 movzbl %al,%eax 225ec0: 48 83 c4 40 add $0x40,%rsp 225ec4: 5d pop %rbp 225ec5: c3 ret 225ec6: cc int3 225ec7: cc int3 225ec8: cc int3 225ec9: cc int3 225eca: cc int3 225ecb: cc int3 225ecc: cc int3 225ecd: cc int3 225ece: cc int3 225ecf: cc int3 0000000000225ed0 : Meter_humanUnit(bufferBytesReceived, cached_rxb_diff, sizeof(bufferBytesReceived)); Meter_humanUnit(bufferBytesTransmitted, cached_txb_diff, sizeof(bufferBytesTransmitted)); xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "rx:%siB/s tx:%siB/s", bufferBytesReceived, bufferBytesTransmitted); } static void NetworkIOMeter_display(ATTR_UNUSED const Object* cast, RichString* out) { 225ed0: 55 push %rbp 225ed1: 48 89 e5 mov %rsp,%rbp 225ed4: 48 83 ec 70 sub $0x70,%rsp 225ed8: 48 8b 05 51 c9 01 00 mov 0x1c951(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 225edf: 48 89 45 f8 mov %rax,-0x8(%rbp) 225ee3: 48 89 7d a8 mov %rdi,-0x58(%rbp) 225ee7: 48 89 75 a0 mov %rsi,-0x60(%rbp) if (!hasData) { 225eeb: f6 04 25 e8 21 24 00 01 testb $0x1,0x2421e8 225ef3: 0f 85 23 00 00 00 jne 225f1c RichString_writeAscii(out, CRT_colors[METER_VALUE_ERROR], "no data"); 225ef9: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225efd: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225f05: 8b 70 40 mov 0x40(%rax),%esi 225f08: 48 ba 68 3d 20 00 00 00 00 00 movabs $0x203d68,%rdx 225f12: e8 49 c8 00 00 call 232760 return; 225f17: e9 1d 01 00 00 jmp 226039 } char buffer[64]; int len; RichString_writeAscii(out, CRT_colors[METER_TEXT], "rx: "); 225f1c: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225f20: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225f28: 8b 70 38 mov 0x38(%rax),%esi 225f2b: 48 ba 7d 4a 20 00 00 00 00 00 movabs $0x204a7d,%rdx 225f35: e8 26 c8 00 00 call 232760 Meter_humanUnit(buffer, cached_rxb_diff, sizeof(buffer)); 225f3a: 48 8d 7d b0 lea -0x50(%rbp),%rdi 225f3e: 8b 04 25 ec 21 24 00 mov 0x2421ec,%eax 225f45: 89 c6 mov %eax,%esi 225f47: ba 40 00 00 00 mov $0x40,%edx 225f4c: e8 bf da ff ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOREAD], buffer); 225f51: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225f55: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225f5d: 8b 70 44 mov 0x44(%rax),%esi 225f60: 48 8d 55 b0 lea -0x50(%rbp),%rdx 225f64: e8 17 c6 00 00 call 232580 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOREAD], "iB/s"); 225f69: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225f6d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225f75: 8b 70 44 mov 0x44(%rax),%esi 225f78: 48 ba a4 5c 20 00 00 00 00 00 movabs $0x205ca4,%rdx 225f82: e8 f9 c5 00 00 call 232580 RichString_appendAscii(out, CRT_colors[METER_TEXT], " tx: "); 225f87: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225f8b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225f93: 8b 70 38 mov 0x38(%rax),%esi 225f96: 48 ba 2b 46 20 00 00 00 00 00 movabs $0x20462b,%rdx 225fa0: e8 db c5 00 00 call 232580 Meter_humanUnit(buffer, cached_txb_diff, sizeof(buffer)); 225fa5: 48 8d 7d b0 lea -0x50(%rbp),%rdi 225fa9: 8b 04 25 f0 21 24 00 mov 0x2421f0,%eax 225fb0: 89 c6 mov %eax,%esi 225fb2: ba 40 00 00 00 mov $0x40,%edx 225fb7: e8 54 da ff ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOWRITE], buffer); 225fbc: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225fc0: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225fc8: 8b 70 48 mov 0x48(%rax),%esi 225fcb: 48 8d 55 b0 lea -0x50(%rbp),%rdx 225fcf: e8 ac c5 00 00 call 232580 RichString_appendAscii(out, CRT_colors[METER_VALUE_IOWRITE], "iB/s"); 225fd4: 48 8b 7d a0 mov -0x60(%rbp),%rdi 225fd8: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 225fe0: 8b 70 48 mov 0x48(%rax),%esi 225fe3: 48 ba a4 5c 20 00 00 00 00 00 movabs $0x205ca4,%rdx 225fed: e8 8e c5 00 00 call 232580 len = xSnprintf(buffer, sizeof(buffer), " (%u/%u packets) ", cached_rxp_diff, cached_txp_diff); 225ff2: 48 8d 7d b0 lea -0x50(%rbp),%rdi 225ff6: 8b 0c 25 f4 21 24 00 mov 0x2421f4,%ecx 225ffd: 44 8b 04 25 f8 21 24 00 mov 0x2421f8,%r8d 226005: be 40 00 00 00 mov $0x40,%esi 22600a: 48 ba 33 66 20 00 00 00 00 00 movabs $0x206633,%rdx 226014: b0 00 mov $0x0,%al 226016: e8 d5 34 01 00 call 2394f0 22601b: 89 45 9c mov %eax,-0x64(%rbp) RichString_appendnAscii(out, CRT_colors[METER_TEXT], buffer, len); 22601e: 48 8b 7d a0 mov -0x60(%rbp),%rdi 226022: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22602a: 8b 70 38 mov 0x38(%rax),%esi 22602d: 48 8d 55 b0 lea -0x50(%rbp),%rdx 226031: 8b 4d 9c mov -0x64(%rbp),%ecx 226034: e8 e7 c6 00 00 call 232720 226039: 48 8b 05 f0 c7 01 00 mov 0x1c7f0(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 226040: 48 8b 4d f8 mov -0x8(%rbp),%rcx 226044: 48 39 c8 cmp %rcx,%rax 226047: 0f 85 06 00 00 00 jne 226053 } 22604d: 48 83 c4 70 add $0x70,%rsp 226051: 5d pop %rbp 226052: c3 ret 226053: e8 e8 80 01 00 call 23e140 <__stack_chk_fail@plt> 226058: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000226060 : static void NetworkIOMeter_updateValues(Meter* this) { 226060: 55 push %rbp 226061: 48 89 e5 mov %rsp,%rbp 226064: 48 83 ec 60 sub $0x60,%rsp 226068: 48 8b 05 c1 c7 01 00 mov 0x1c7c1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22606f: 48 89 45 f8 mov %rax,-0x8(%rbp) 226073: 48 89 7d b8 mov %rdi,-0x48(%rbp) const ProcessList* pl = this->pl; 226077: 48 8b 45 b8 mov -0x48(%rbp),%rax 22607b: 48 8b 40 30 mov 0x30(%rax),%rax 22607f: 48 89 45 b0 mov %rax,-0x50(%rbp) uint64_t passedTimeInMs = pl->realtimeMs - cached_last_update; 226083: 48 8b 45 b0 mov -0x50(%rbp),%rax 226087: 48 8b 40 58 mov 0x58(%rax),%rax 22608b: 48 2b 04 25 00 22 24 00 sub 0x242200,%rax 226093: 48 89 45 a8 mov %rax,-0x58(%rbp) if (passedTimeInMs > 500) { 226097: 48 81 7d a8 f4 01 00 00 cmpq $0x1f4,-0x58(%rbp) 22609f: 0f 86 b7 01 00 00 jbe 22625c cached_last_update = pl->realtimeMs; 2260a5: 48 8b 45 b0 mov -0x50(%rbp),%rax 2260a9: 48 8b 40 58 mov 0x58(%rax),%rax 2260ad: 48 89 04 25 00 22 24 00 mov %rax,0x242200 hasData = Platform_getNetworkIO(&data); 2260b5: 48 8d 7d c0 lea -0x40(%rbp),%rdi 2260b9: e8 e2 41 01 00 call 23a2a0 2260be: 24 01 and $0x1,%al 2260c0: 88 04 25 e8 21 24 00 mov %al,0x2421e8 if (!hasData) { 2260c7: f6 04 25 e8 21 24 00 01 testb $0x1,0x2421e8 2260cf: 0f 85 23 00 00 00 jne 2260f8 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "no data"); 2260d5: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2260d9: 48 83 c7 48 add $0x48,%rdi 2260dd: be 00 01 00 00 mov $0x100,%esi 2260e2: 48 ba 68 3d 20 00 00 00 00 00 movabs $0x203d68,%rdx 2260ec: b0 00 mov $0x0,%al 2260ee: e8 fd 33 01 00 call 2394f0 return; 2260f3: e9 47 02 00 00 jmp 22633f if (data.bytesReceived > cached_rxb_total) { 2260f8: 48 8b 45 c0 mov -0x40(%rbp),%rax 2260fc: 48 3b 04 25 08 22 24 00 cmp 0x242208,%rax 226104: 0f 86 40 00 00 00 jbe 22614a diff = data.bytesReceived - cached_rxb_total; 22610a: 48 8b 45 c0 mov -0x40(%rbp),%rax 22610e: 48 2b 04 25 08 22 24 00 sub 0x242208,%rax 226116: 48 89 45 a0 mov %rax,-0x60(%rbp) diff /= ONE_K; /* Meter_humanUnit() expects unit in kilo */ 22611a: 48 8b 45 a0 mov -0x60(%rbp),%rax 22611e: 48 c1 e8 0a shr $0xa,%rax 226122: 48 89 45 a0 mov %rax,-0x60(%rbp) diff = (1000 * diff) / passedTimeInMs; /* convert to per second */ 226126: 48 69 45 a0 e8 03 00 00 imul $0x3e8,-0x60(%rbp),%rax 22612e: 31 c9 xor %ecx,%ecx 226130: 89 ca mov %ecx,%edx 226132: 48 f7 75 a8 divq -0x58(%rbp) 226136: 48 89 45 a0 mov %rax,-0x60(%rbp) cached_rxb_diff = (uint32_t)diff; 22613a: 48 8b 45 a0 mov -0x60(%rbp),%rax 22613e: 89 04 25 ec 21 24 00 mov %eax,0x2421ec } else { 226145: e9 0b 00 00 00 jmp 226155 cached_rxb_diff = 0; 22614a: c7 04 25 ec 21 24 00 00 00 00 00 movl $0x0,0x2421ec cached_rxb_total = data.bytesReceived; 226155: 48 8b 45 c0 mov -0x40(%rbp),%rax 226159: 48 89 04 25 08 22 24 00 mov %rax,0x242208 if (data.packetsReceived > cached_rxp_total) { 226161: 48 8b 45 c8 mov -0x38(%rbp),%rax 226165: 48 3b 04 25 10 22 24 00 cmp 0x242210,%rax 22616d: 0f 86 20 00 00 00 jbe 226193 diff = data.packetsReceived - cached_rxp_total; 226173: 48 8b 45 c8 mov -0x38(%rbp),%rax 226177: 48 2b 04 25 10 22 24 00 sub 0x242210,%rax 22617f: 48 89 45 a0 mov %rax,-0x60(%rbp) cached_rxp_diff = (uint32_t)diff; 226183: 48 8b 45 a0 mov -0x60(%rbp),%rax 226187: 89 04 25 f4 21 24 00 mov %eax,0x2421f4 } else { 22618e: e9 0b 00 00 00 jmp 22619e cached_rxp_diff = 0; 226193: c7 04 25 f4 21 24 00 00 00 00 00 movl $0x0,0x2421f4 cached_rxp_total = data.packetsReceived; 22619e: 48 8b 45 c8 mov -0x38(%rbp),%rax 2261a2: 48 89 04 25 10 22 24 00 mov %rax,0x242210 if (data.bytesTransmitted > cached_txb_total) { 2261aa: 48 8b 45 d0 mov -0x30(%rbp),%rax 2261ae: 48 3b 04 25 18 22 24 00 cmp 0x242218,%rax 2261b6: 0f 86 40 00 00 00 jbe 2261fc diff = data.bytesTransmitted - cached_txb_total; 2261bc: 48 8b 45 d0 mov -0x30(%rbp),%rax 2261c0: 48 2b 04 25 18 22 24 00 sub 0x242218,%rax 2261c8: 48 89 45 a0 mov %rax,-0x60(%rbp) diff /= ONE_K; /* Meter_humanUnit() expects unit in kilo */ 2261cc: 48 8b 45 a0 mov -0x60(%rbp),%rax 2261d0: 48 c1 e8 0a shr $0xa,%rax 2261d4: 48 89 45 a0 mov %rax,-0x60(%rbp) diff = (1000 * diff) / passedTimeInMs; /* convert to per second */ 2261d8: 48 69 45 a0 e8 03 00 00 imul $0x3e8,-0x60(%rbp),%rax 2261e0: 31 c9 xor %ecx,%ecx 2261e2: 89 ca mov %ecx,%edx 2261e4: 48 f7 75 a8 divq -0x58(%rbp) 2261e8: 48 89 45 a0 mov %rax,-0x60(%rbp) cached_txb_diff = (uint32_t)diff; 2261ec: 48 8b 45 a0 mov -0x60(%rbp),%rax 2261f0: 89 04 25 f0 21 24 00 mov %eax,0x2421f0 } else { 2261f7: e9 0b 00 00 00 jmp 226207 cached_txb_diff = 0; 2261fc: c7 04 25 f0 21 24 00 00 00 00 00 movl $0x0,0x2421f0 cached_txb_total = data.bytesTransmitted; 226207: 48 8b 45 d0 mov -0x30(%rbp),%rax 22620b: 48 89 04 25 18 22 24 00 mov %rax,0x242218 if (data.packetsTransmitted > cached_txp_total) { 226213: 48 8b 45 d8 mov -0x28(%rbp),%rax 226217: 48 3b 04 25 20 22 24 00 cmp 0x242220,%rax 22621f: 0f 86 20 00 00 00 jbe 226245 diff = data.packetsTransmitted - cached_txp_total; 226225: 48 8b 45 d8 mov -0x28(%rbp),%rax 226229: 48 2b 04 25 20 22 24 00 sub 0x242220,%rax 226231: 48 89 45 a0 mov %rax,-0x60(%rbp) cached_txp_diff = (uint32_t)diff; 226235: 48 8b 45 a0 mov -0x60(%rbp),%rax 226239: 89 04 25 f8 21 24 00 mov %eax,0x2421f8 } else { 226240: e9 0b 00 00 00 jmp 226250 cached_txp_diff = 0; 226245: c7 04 25 f8 21 24 00 00 00 00 00 movl $0x0,0x2421f8 cached_txp_total = data.packetsTransmitted; 226250: 48 8b 45 d8 mov -0x28(%rbp),%rax 226254: 48 89 04 25 20 22 24 00 mov %rax,0x242220 if (passedTimeInMs > 30000) { 22625c: 48 81 7d a8 30 75 00 00 cmpq $0x7530,-0x58(%rbp) 226264: 0f 86 08 00 00 00 jbe 226272 hasData = false; 22626a: c6 04 25 e8 21 24 00 00 movb $0x0,0x2421e8 this->values[0] = cached_rxb_diff; 226272: 8b 05 74 bf 01 00 mov 0x1bf74(%rip),%eax # 2421ec 226278: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 22627d: 48 8b 45 b8 mov -0x48(%rbp),%rax 226281: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 226288: f2 0f 11 00 movsd %xmm0,(%rax) this->values[1] = cached_txb_diff; 22628c: 8b 05 5e bf 01 00 mov 0x1bf5e(%rip),%eax # 2421f0 226292: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 226297: 48 8b 45 b8 mov -0x48(%rbp),%rax 22629b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2262a2: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) if (cached_rxb_diff + cached_txb_diff > this->total) { 2262a7: 8b 05 3f bf 01 00 mov 0x1bf3f(%rip),%eax # 2421ec 2262ad: 8b 0d 3d bf 01 00 mov 0x1bf3d(%rip),%ecx # 2421f0 2262b3: 01 c8 add %ecx,%eax 2262b5: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 2262ba: 48 8b 45 b8 mov -0x48(%rbp),%rax 2262be: 66 0f 2e 80 50 01 00 00 ucomisd 0x150(%rax),%xmm0 2262c6: 0f 86 1f 00 00 00 jbe 2262eb this->total = cached_rxb_diff + cached_txb_diff; 2262cc: 8b 05 1a bf 01 00 mov 0x1bf1a(%rip),%eax # 2421ec 2262d2: 8b 0d 18 bf 01 00 mov 0x1bf18(%rip),%ecx # 2421f0 2262d8: 01 c8 add %ecx,%eax 2262da: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 2262df: 48 8b 45 b8 mov -0x48(%rbp),%rax 2262e3: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) Meter_humanUnit(bufferBytesReceived, cached_rxb_diff, sizeof(bufferBytesReceived)); 2262eb: 48 8d 7d ec lea -0x14(%rbp),%rdi 2262ef: 8b 04 25 ec 21 24 00 mov 0x2421ec,%eax 2262f6: 89 c6 mov %eax,%esi 2262f8: ba 0c 00 00 00 mov $0xc,%edx 2262fd: e8 0e d7 ff ff call 223a10 Meter_humanUnit(bufferBytesTransmitted, cached_txb_diff, sizeof(bufferBytesTransmitted)); 226302: 48 8d 7d e0 lea -0x20(%rbp),%rdi 226306: 8b 04 25 f0 21 24 00 mov 0x2421f0,%eax 22630d: 89 c6 mov %eax,%esi 22630f: ba 0c 00 00 00 mov $0xc,%edx 226314: e8 f7 d6 ff ff call 223a10 xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "rx:%siB/s tx:%siB/s", bufferBytesReceived, bufferBytesTransmitted); 226319: 48 8b 7d b8 mov -0x48(%rbp),%rdi 22631d: 48 83 c7 48 add $0x48,%rdi 226321: 48 8d 4d ec lea -0x14(%rbp),%rcx 226325: 4c 8d 45 e0 lea -0x20(%rbp),%r8 226329: be 00 01 00 00 mov $0x100,%esi 22632e: 48 ba 9c 3d 20 00 00 00 00 00 movabs $0x203d9c,%rdx 226338: b0 00 mov $0x0,%al 22633a: e8 b1 31 01 00 call 2394f0 22633f: 48 8b 05 ea c4 01 00 mov 0x1c4ea(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 226346: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22634a: 48 39 c8 cmp %rcx,%rax 22634d: 0f 85 06 00 00 00 jne 226359 } 226353: 48 83 c4 60 add $0x60,%rsp 226357: 5d pop %rbp 226358: c3 ret 226359: e8 e2 7d 01 00 call 23e140 <__stack_chk_fail@plt> 22635e: cc int3 22635f: cc int3 0000000000226360 : const ObjectClass Object_class = { .extends = NULL }; bool Object_isA(const Object* o, const ObjectClass* klass) { 226360: 55 push %rbp 226361: 48 89 e5 mov %rsp,%rbp 226364: 48 89 7d f0 mov %rdi,-0x10(%rbp) 226368: 48 89 75 e8 mov %rsi,-0x18(%rbp) if (!o) 22636c: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 226371: 0f 85 09 00 00 00 jne 226380 return false; 226377: c6 45 ff 00 movb $0x0,-0x1(%rbp) 22637b: e9 46 00 00 00 jmp 2263c6 for (const ObjectClass* type = o->klass; type; type = type->extends) { 226380: 48 8b 45 f0 mov -0x10(%rbp),%rax 226384: 48 8b 00 mov (%rax),%rax 226387: 48 89 45 e0 mov %rax,-0x20(%rbp) 22638b: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 226390: 0f 84 2c 00 00 00 je 2263c2 if (type == klass) { 226396: 48 8b 45 e0 mov -0x20(%rbp),%rax 22639a: 48 3b 45 e8 cmp -0x18(%rbp),%rax 22639e: 0f 85 09 00 00 00 jne 2263ad return true; 2263a4: c6 45 ff 01 movb $0x1,-0x1(%rbp) 2263a8: e9 19 00 00 00 jmp 2263c6 } } 2263ad: e9 00 00 00 00 jmp 2263b2 for (const ObjectClass* type = o->klass; type; type = type->extends) { 2263b2: 48 8b 45 e0 mov -0x20(%rbp),%rax 2263b6: 48 8b 00 mov (%rax),%rax 2263b9: 48 89 45 e0 mov %rax,-0x20(%rbp) 2263bd: e9 c9 ff ff ff jmp 22638b return false; 2263c2: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 2263c6: 8a 45 ff mov -0x1(%rbp),%al 2263c9: 24 01 and $0x1,%al 2263cb: 0f b6 c0 movzbl %al,%eax 2263ce: 5d pop %rbp 2263cf: c3 ret 00000000002263d0 : static const char* getDataForType(const OpenFiles_Data* data, char type) { size_t index = getIndexForType(type); return data->data[index] ? data->data[index] : ""; } OpenFilesScreen* OpenFilesScreen_new(const Process* process) { 2263d0: 55 push %rbp 2263d1: 48 89 e5 mov %rsp,%rbp 2263d4: 48 83 ec 10 sub $0x10,%rsp 2263d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) OpenFilesScreen* this = xMalloc(sizeof(OpenFilesScreen)); 2263dc: bf 30 00 00 00 mov $0x30,%edi 2263e1: e8 7a 26 01 00 call 238a60 2263e6: 48 89 45 f0 mov %rax,-0x10(%rbp) Object_setClass(this, Class(OpenFilesScreen)); 2263ea: 48 8b 45 f0 mov -0x10(%rbp),%rax 2263ee: 48 b9 40 9c 20 00 00 00 00 00 movabs $0x209c40,%rcx 2263f8: 48 89 08 mov %rcx,(%rax) if (Process_isThread(process)) { 2263fb: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2263ff: e8 5c 00 00 00 call 226460 226404: a8 01 test $0x1,%al 226406: 0f 85 05 00 00 00 jne 226411 22640c: e9 13 00 00 00 jmp 226424 this->pid = process->tgid; 226411: 48 8b 45 f8 mov -0x8(%rbp),%rax 226415: 8b 48 20 mov 0x20(%rax),%ecx 226418: 48 8b 45 f0 mov -0x10(%rbp),%rax 22641c: 89 48 28 mov %ecx,0x28(%rax) } else { 22641f: e9 0e 00 00 00 jmp 226432 this->pid = process->pid; 226424: 48 8b 45 f8 mov -0x8(%rbp),%rax 226428: 8b 48 18 mov 0x18(%rax),%ecx 22642b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22642f: 89 48 28 mov %ecx,0x28(%rax) } return (OpenFilesScreen*) InfoScreen_init(&this->super, process, NULL, LINES - 2, " FD TYPE MODE DEVICE SIZE OFFSET NODE NAME"); 226432: 48 8b 7d f0 mov -0x10(%rbp),%rdi 226436: 48 8b 75 f8 mov -0x8(%rbp),%rsi 22643a: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 226441: 83 e9 02 sub $0x2,%ecx 226444: 31 c0 xor %eax,%eax 226446: 89 c2 mov %eax,%edx 226448: 49 b8 17 34 20 00 00 00 00 00 movabs $0x203417,%r8 226452: e8 09 af ff ff call 221360 226457: 48 83 c4 10 add $0x10,%rsp 22645b: 5d pop %rbp 22645c: c3 ret 22645d: 0f 1f 00 nopl (%rax) 0000000000226460 : static inline bool Process_isUserlandThread(const Process* this) { return this->isUserlandThread; } static inline bool Process_isThread(const Process* this) { 226460: 55 push %rbp 226461: 48 89 e5 mov %rsp,%rbp 226464: 48 83 ec 10 sub $0x10,%rsp 226468: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Process_isUserlandThread(this) || Process_isKernelThread(this); 22646c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 226470: e8 8b 03 00 00 call 226800 226475: 88 c1 mov %al,%cl 226477: b0 01 mov $0x1,%al 226479: f6 c1 01 test $0x1,%cl 22647c: 88 45 f7 mov %al,-0x9(%rbp) 22647f: 0f 85 0c 00 00 00 jne 226491 226485: 48 8b 7d f8 mov -0x8(%rbp),%rdi 226489: e8 92 03 00 00 call 226820 22648e: 88 45 f7 mov %al,-0x9(%rbp) 226491: 8a 45 f7 mov -0x9(%rbp),%al 226494: 24 01 and $0x1,%al 226496: 0f b6 c0 movzbl %al,%eax 226499: 48 83 c4 10 add $0x10,%rsp 22649d: 5d pop %rbp 22649e: c3 ret 22649f: 90 nop 00000000002264a0 : } void OpenFilesScreen_delete(Object* this) { 2264a0: 55 push %rbp 2264a1: 48 89 e5 mov %rsp,%rbp 2264a4: 48 83 ec 10 sub $0x10,%rsp 2264a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(InfoScreen_done((InfoScreen*)this)); 2264ac: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2264b0: e8 bb af ff ff call 221470 2264b5: 48 89 c7 mov %rax,%rdi 2264b8: e8 a3 7c 01 00 call 23e160 } 2264bd: 48 83 c4 10 add $0x10,%rsp 2264c1: 5d pop %rbp 2264c2: c3 ret 2264c3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2264cd: 0f 1f 00 nopl (%rax) 00000000002264d0 : static void OpenFiles_Data_clear(OpenFiles_Data* data) { for (size_t i = 0; i < ARRAYSIZE(data->data); i++) free(data->data[i]); } static void OpenFilesScreen_scan(InfoScreen* this) { 2264d0: 55 push %rbp 2264d1: 48 89 e5 mov %rsp,%rbp 2264d4: 41 56 push %r14 2264d6: 53 push %rbx 2264d7: 48 81 ec a0 00 00 00 sub $0xa0,%rsp 2264de: 48 8b 05 4b c3 01 00 mov 0x1c34b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2264e5: 48 89 45 e8 mov %rax,-0x18(%rbp) 2264e9: 48 89 7d e0 mov %rdi,-0x20(%rbp) Panel* panel = this->display; 2264ed: 48 8b 45 e0 mov -0x20(%rbp),%rax 2264f1: 48 8b 40 10 mov 0x10(%rax),%rax 2264f5: 48 89 45 d8 mov %rax,-0x28(%rbp) int idx = Panel_getSelectedIndex(panel); 2264f9: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2264fd: e8 7e 1c 00 00 call 228180 226502: 89 45 d4 mov %eax,-0x2c(%rbp) Panel_prune(panel); 226505: 48 8b 7d d8 mov -0x28(%rbp),%rdi 226509: e8 82 19 00 00 call 227e90 OpenFiles_ProcessData* pdata = OpenFilesScreen_getProcessData(((OpenFilesScreen*)this)->pid); 22650e: 48 8b 45 e0 mov -0x20(%rbp),%rax 226512: 8b 78 28 mov 0x28(%rax),%edi 226515: e8 26 03 00 00 call 226840 22651a: 48 89 45 c8 mov %rax,-0x38(%rbp) if (pdata->error == 127) { 22651e: 48 8b 45 c8 mov -0x38(%rbp),%rax 226522: 83 78 40 7f cmpl $0x7f,0x40(%rax) 226526: 0f 85 18 00 00 00 jne 226544 InfoScreen_addLine(this, "Could not execute 'lsof'. Please make sure it is available in your $PATH."); 22652c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 226530: 48 be b2 35 20 00 00 00 00 00 movabs $0x2035b2,%rsi 22653a: e8 71 b1 ff ff call 2216b0 } else if (pdata->error == 1) { 22653f: e9 d8 01 00 00 jmp 22671c 226544: 48 8b 45 c8 mov -0x38(%rbp),%rax 226548: 83 78 40 01 cmpl $0x1,0x40(%rax) 22654c: 0f 85 18 00 00 00 jne 22656a InfoScreen_addLine(this, "Failed listing open files."); 226552: 48 8b 7d e0 mov -0x20(%rbp),%rdi 226556: 48 be a9 5c 20 00 00 00 00 00 movabs $0x205ca9,%rsi 226560: e8 4b b1 ff ff call 2216b0 } else { 226565: e9 ad 01 00 00 jmp 226717 OpenFiles_FileData* fdata = pdata->files; 22656a: 48 8b 45 c8 mov -0x38(%rbp),%rax 22656e: 48 8b 40 48 mov 0x48(%rax),%rax 226572: 48 89 45 c0 mov %rax,-0x40(%rbp) while (fdata) { 226576: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 22657b: 0f 84 8d 01 00 00 je 22670e OpenFiles_Data* data = &fdata->data; 226581: 48 8b 45 c0 mov -0x40(%rbp),%rax 226585: 48 89 45 b8 mov %rax,-0x48(%rbp) size_t lenN = strlen(getDataForType(data, 'n')); 226589: 48 8b 7d b8 mov -0x48(%rbp),%rdi 22658d: be 6e 00 00 00 mov $0x6e,%esi 226592: e8 69 08 00 00 call 226e00 226597: 48 89 c7 mov %rax,%rdi 22659a: e8 51 7c 01 00 call 23e1f0 22659f: 48 89 45 b0 mov %rax,-0x50(%rbp) size_t sizeEntry = 5 + 7 + 4 + 10 + 10 + 10 + 10 + lenN + 8 /*spaces*/ + 1 /*null*/; 2265a3: 48 8b 45 b0 mov -0x50(%rbp),%rax 2265a7: 48 83 c0 41 add $0x41,%rax 2265ab: 48 89 45 a8 mov %rax,-0x58(%rbp) char entry[sizeEntry]; 2265af: 48 8b 45 a8 mov -0x58(%rbp),%rax 2265b3: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) 2265ba: 48 89 e1 mov %rsp,%rcx 2265bd: 48 89 4d a0 mov %rcx,-0x60(%rbp) 2265c1: 48 89 c2 mov %rax,%rdx 2265c4: 48 83 c2 0f add $0xf,%rdx 2265c8: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx 2265cc: 48 89 e1 mov %rsp,%rcx 2265cf: 48 29 d1 sub %rdx,%rcx 2265d2: 48 89 4d 88 mov %rcx,-0x78(%rbp) 2265d6: 48 89 cc mov %rcx,%rsp 2265d9: 48 89 45 98 mov %rax,-0x68(%rbp) xSnprintf(entry, sizeof(entry), "%5.5s %-7.7s %-4.4s %-10.10s %10.10s %10.10s %10.10s %s", getDataForType(data, 'f'), 2265dd: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2265e1: be 66 00 00 00 mov $0x66,%esi 2265e6: e8 15 08 00 00 call 226e00 2265eb: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) getDataForType(data, 't'), 2265f2: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2265f6: be 74 00 00 00 mov $0x74,%esi 2265fb: e8 00 08 00 00 call 226e00 226600: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) getDataForType(data, 'a'), 226607: 48 8b 7d b8 mov -0x48(%rbp),%rdi 22660b: be 61 00 00 00 mov $0x61,%esi 226610: e8 eb 07 00 00 call 226e00 226615: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) getDataForType(data, 'D'), 22661c: 48 8b 7d b8 mov -0x48(%rbp),%rdi 226620: be 44 00 00 00 mov $0x44,%esi 226625: e8 d6 07 00 00 call 226e00 22662a: 49 89 c6 mov %rax,%r14 getDataForType(data, 's'), 22662d: 48 8b 7d b8 mov -0x48(%rbp),%rdi 226631: be 73 00 00 00 mov $0x73,%esi 226636: e8 c5 07 00 00 call 226e00 22663b: 48 89 c3 mov %rax,%rbx getDataForType(data, 'o'), 22663e: 48 8b 7d b8 mov -0x48(%rbp),%rdi 226642: be 6f 00 00 00 mov $0x6f,%esi 226647: e8 b4 07 00 00 call 226e00 22664c: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) getDataForType(data, 'i'), 226653: 48 8b 7d b8 mov -0x48(%rbp),%rdi 226657: be 69 00 00 00 mov $0x69,%esi 22665c: e8 9f 07 00 00 call 226e00 226661: 48 89 45 80 mov %rax,-0x80(%rbp) getDataForType(data, 'n')); 226665: 48 8b 7d b8 mov -0x48(%rbp),%rdi 226669: be 6e 00 00 00 mov $0x6e,%esi 22666e: e8 8d 07 00 00 call 226e00 226673: 48 8b b5 58 ff ff ff mov -0xa8(%rbp),%rsi 22667a: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 226681: 4c 8b 85 68 ff ff ff mov -0x98(%rbp),%r8 226688: 4c 8b 8d 70 ff ff ff mov -0x90(%rbp),%r9 22668f: 4c 8b 9d 78 ff ff ff mov -0x88(%rbp),%r11 226696: 4c 8b 55 80 mov -0x80(%rbp),%r10 22669a: 48 8b 7d 88 mov -0x78(%rbp),%rdi xSnprintf(entry, sizeof(entry), "%5.5s %-7.7s %-4.4s %-10.10s %10.10s %10.10s %10.10s %s", 22669e: 48 ba 2b 69 20 00 00 00 00 00 movabs $0x20692b,%rdx 2266a8: 48 83 ec 30 sub $0x30,%rsp 2266ac: 4c 89 34 24 mov %r14,(%rsp) 2266b0: 48 89 5c 24 08 mov %rbx,0x8(%rsp) 2266b5: 4c 89 5c 24 10 mov %r11,0x10(%rsp) 2266ba: 4c 89 54 24 18 mov %r10,0x18(%rsp) 2266bf: 48 89 44 24 20 mov %rax,0x20(%rsp) 2266c4: b0 00 mov $0x0,%al 2266c6: e8 25 2e 01 00 call 2394f0 2266cb: 48 8b 75 88 mov -0x78(%rbp),%rsi 2266cf: 48 83 c4 30 add $0x30,%rsp InfoScreen_addLine(this, entry); 2266d3: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2266d7: e8 d4 af ff ff call 2216b0 OpenFiles_Data_clear(data); 2266dc: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2266e0: e8 8b 07 00 00 call 226e70 OpenFiles_FileData* old = fdata; 2266e5: 48 8b 45 c0 mov -0x40(%rbp),%rax 2266e9: 48 89 45 90 mov %rax,-0x70(%rbp) fdata = fdata->next; 2266ed: 48 8b 45 c0 mov -0x40(%rbp),%rax 2266f1: 48 8b 40 40 mov 0x40(%rax),%rax 2266f5: 48 89 45 c0 mov %rax,-0x40(%rbp) free(old); 2266f9: 48 8b 7d 90 mov -0x70(%rbp),%rdi 2266fd: e8 5e 7a 01 00 call 23e160 } 226702: 48 8b 45 a0 mov -0x60(%rbp),%rax 226706: 48 89 c4 mov %rax,%rsp while (fdata) { 226709: e9 68 fe ff ff jmp 226576 OpenFiles_Data_clear(&pdata->data); 22670e: 48 8b 7d c8 mov -0x38(%rbp),%rdi 226712: e8 59 07 00 00 call 226e70 226717: e9 00 00 00 00 jmp 22671c } free(pdata); 22671c: 48 8b 7d c8 mov -0x38(%rbp),%rdi 226720: e8 3b 7a 01 00 call 23e160 Vector_insertionSort(this->lines); 226725: 48 8b 45 e0 mov -0x20(%rbp),%rax 226729: 48 8b 78 20 mov 0x20(%rax),%rdi 22672d: e8 fe 1b 01 00 call 238330 Vector_insertionSort(panel->items); 226732: 48 8b 45 d8 mov -0x28(%rbp),%rax 226736: 48 8b 78 18 mov 0x18(%rax),%rdi 22673a: e8 f1 1b 01 00 call 238330 Panel_setSelected(panel, idx); 22673f: 48 8b 7d d8 mov -0x28(%rbp),%rdi 226743: 8b 75 d4 mov -0x2c(%rbp),%esi 226746: e8 75 1a 00 00 call 2281c0 22674b: 48 8b 05 de c0 01 00 mov 0x1c0de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 226752: 48 8b 4d e8 mov -0x18(%rbp),%rcx 226756: 48 39 c8 cmp %rcx,%rax 226759: 0f 85 09 00 00 00 jne 226768 } 22675f: 48 8d 65 f0 lea -0x10(%rbp),%rsp 226763: 5b pop %rbx 226764: 41 5e pop %r14 226766: 5d pop %rbp 226767: c3 ret 226768: e8 d3 79 01 00 call 23e140 <__stack_chk_fail@plt> 22676d: 0f 1f 00 nopl (%rax) 0000000000226770 : static void OpenFilesScreen_draw(InfoScreen* this) { 226770: 55 push %rbp 226771: 48 89 e5 mov %rsp,%rbp 226774: 48 83 ec 20 sub $0x20,%rsp 226778: 48 89 7d f8 mov %rdi,-0x8(%rbp) InfoScreen_drawTitled(this, "Snapshot of files open in process %d - %s", ((OpenFilesScreen*)this)->pid, Process_getCommand(this->process)); 22677c: 48 8b 45 f8 mov -0x8(%rbp),%rax 226780: 48 89 45 e8 mov %rax,-0x18(%rbp) 226784: 48 8b 45 f8 mov -0x8(%rbp),%rax 226788: 8b 40 28 mov 0x28(%rax),%eax 22678b: 89 45 f4 mov %eax,-0xc(%rbp) 22678e: 48 8b 45 f8 mov -0x8(%rbp),%rax 226792: 48 8b 40 08 mov 0x8(%rax),%rax 226796: 48 8b 00 mov (%rax),%rax 226799: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22679e: 0f 84 22 00 00 00 je 2267c6 2267a4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2267a8: 48 8b 40 08 mov 0x8(%rax),%rax 2267ac: 48 8b 00 mov (%rax),%rax 2267af: 48 8b 40 30 mov 0x30(%rax),%rax 2267b3: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2267b7: 48 8b 79 08 mov 0x8(%rcx),%rdi 2267bb: ff d0 call *%rax 2267bd: 48 89 45 e0 mov %rax,-0x20(%rbp) 2267c1: e9 11 00 00 00 jmp 2267d7 2267c6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2267ca: 48 8b 78 08 mov 0x8(%rax),%rdi 2267ce: e8 ad 7b 00 00 call 22e380 2267d3: 48 89 45 e0 mov %rax,-0x20(%rbp) 2267d7: 8b 55 f4 mov -0xc(%rbp),%edx 2267da: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2267de: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2267e2: 48 be 03 3c 20 00 00 00 00 00 movabs $0x203c03,%rsi 2267ec: b0 00 mov $0x0,%al 2267ee: e8 bd ac ff ff call 2214b0 } 2267f3: 48 83 c4 20 add $0x20,%rsp 2267f7: 5d pop %rbp 2267f8: c3 ret 2267f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000226800 : static inline bool Process_isUserlandThread(const Process* this) { 226800: 55 push %rbp 226801: 48 89 e5 mov %rsp,%rbp 226804: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isUserlandThread; 226808: 48 8b 45 f8 mov -0x8(%rbp),%rax 22680c: 8a 40 31 mov 0x31(%rax),%al 22680f: 24 01 and $0x1,%al 226811: 0f b6 c0 movzbl %al,%eax 226814: 5d pop %rbp 226815: c3 ret 226816: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000226820 : static inline bool Process_isKernelThread(const Process* this) { 226820: 55 push %rbp 226821: 48 89 e5 mov %rsp,%rbp 226824: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isKernelThread; 226828: 48 8b 45 f8 mov -0x8(%rbp),%rax 22682c: 8a 40 30 mov 0x30(%rax),%al 22682f: 24 01 and $0x1,%al 226831: 0f b6 c0 movzbl %al,%eax 226834: 5d pop %rbp 226835: c3 ret 226836: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000226840 : static OpenFiles_ProcessData* OpenFilesScreen_getProcessData(pid_t pid) { 226840: 55 push %rbp 226841: 48 89 e5 mov %rsp,%rbp 226844: 48 81 ec d0 01 00 00 sub $0x1d0,%rsp 22684b: 48 8b 05 de bf 01 00 mov 0x1bfde(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 226852: 48 89 45 f8 mov %rax,-0x8(%rbp) 226856: 89 bd bc fe ff ff mov %edi,-0x144(%rbp) OpenFiles_ProcessData* pdata = xCalloc(1, sizeof(OpenFiles_ProcessData)); 22685c: bf 01 00 00 00 mov $0x1,%edi 226861: be 50 00 00 00 mov $0x50,%esi 226866: e8 85 22 01 00 call 238af0 22686b: 48 89 85 b0 fe ff ff mov %rax,-0x150(%rbp) int fdpair[2] = {0, 0}; 226872: 48 8d 7d f0 lea -0x10(%rbp),%rdi 226876: 31 f6 xor %esi,%esi 226878: ba 08 00 00 00 mov $0x8,%edx 22687d: e8 be 79 01 00 call 23e240 if (pipe(fdpair) == -1) { 226882: 48 8d 7d f0 lea -0x10(%rbp),%rdi 226886: e8 e5 7d 01 00 call 23e670 22688b: 83 f8 ff cmp $0xffffffff,%eax 22688e: 0f 85 21 00 00 00 jne 2268b5 pdata->error = 1; 226894: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 22689b: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) return pdata; 2268a2: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 2268a9: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) 2268b0: e9 06 05 00 00 jmp 226dbb pid_t child = fork(); 2268b5: e8 c6 7d 01 00 call 23e680 2268ba: 89 85 ac fe ff ff mov %eax,-0x154(%rbp) if (child == -1) { 2268c0: 83 bd ac fe ff ff ff cmpl $0xffffffff,-0x154(%rbp) 2268c7: 0f 85 31 00 00 00 jne 2268fe close(fdpair[1]); 2268cd: 8b 7d f4 mov -0xc(%rbp),%edi 2268d0: e8 bb 7d 01 00 call 23e690 close(fdpair[0]); 2268d5: 8b 7d f0 mov -0x10(%rbp),%edi 2268d8: e8 b3 7d 01 00 call 23e690 pdata->error = 1; 2268dd: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 2268e4: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) return pdata; 2268eb: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 2268f2: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) 2268f9: e9 bd 04 00 00 jmp 226dbb if (child == 0) { 2268fe: 83 bd ac fe ff ff 00 cmpl $0x0,-0x154(%rbp) 226905: 0f 85 f4 00 00 00 jne 2269ff close(fdpair[0]); 22690b: 8b 7d f0 mov -0x10(%rbp),%edi 22690e: e8 7d 7d 01 00 call 23e690 dup2(fdpair[1], STDOUT_FILENO); 226913: 8b 7d f4 mov -0xc(%rbp),%edi 226916: be 01 00 00 00 mov $0x1,%esi 22691b: e8 80 7d 01 00 call 23e6a0 close(fdpair[1]); 226920: 8b 7d f4 mov -0xc(%rbp),%edi 226923: e8 68 7d 01 00 call 23e690 int fdnull = open("/dev/null", O_WRONLY); 226928: 48 bf c4 5c 20 00 00 00 00 00 movabs $0x205cc4,%rdi 226932: be 01 00 00 00 mov $0x1,%esi 226937: b0 00 mov $0x0,%al 226939: e8 72 7d 01 00 call 23e6b0 22693e: 89 85 a8 fe ff ff mov %eax,-0x158(%rbp) if (fdnull < 0) { 226944: 83 bd a8 fe ff ff 00 cmpl $0x0,-0x158(%rbp) 22694b: 0f 8d 0a 00 00 00 jge 22695b exit(1); 226951: bf 01 00 00 00 mov $0x1,%edi 226956: e8 b5 77 01 00 call 23e110 dup2(fdnull, STDERR_FILENO); 22695b: 8b bd a8 fe ff ff mov -0x158(%rbp),%edi 226961: be 02 00 00 00 mov $0x2,%esi 226966: e8 35 7d 01 00 call 23e6a0 close(fdnull); 22696b: 8b bd a8 fe ff ff mov -0x158(%rbp),%edi 226971: e8 1a 7d 01 00 call 23e690 char buffer[32] = {0}; 226976: 48 8d 7d d0 lea -0x30(%rbp),%rdi 22697a: 31 f6 xor %esi,%esi 22697c: ba 20 00 00 00 mov $0x20,%edx 226981: e8 ba 78 01 00 call 23e240 xSnprintf(buffer, sizeof(buffer), "%d", pid); 226986: 48 8d 7d d0 lea -0x30(%rbp),%rdi 22698a: 8b 8d bc fe ff ff mov -0x144(%rbp),%ecx 226990: be 20 00 00 00 mov $0x20,%esi 226995: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 22699f: b0 00 mov $0x0,%al 2269a1: e8 4a 2b 01 00 call 2394f0 execlp("lsof", "lsof", "-P", "-o", "-p", buffer, "-F", NULL); 2269a6: 4c 8d 4d d0 lea -0x30(%rbp),%r9 2269aa: 48 be 71 55 20 00 00 00 00 00 movabs $0x205571,%rsi 2269b4: 48 ba ba 37 20 00 00 00 00 00 movabs $0x2037ba,%rdx 2269be: 48 b9 36 3f 20 00 00 00 00 00 movabs $0x203f36,%rcx 2269c8: 49 b8 34 5b 20 00 00 00 00 00 movabs $0x205b34,%r8 2269d2: 48 b8 45 68 20 00 00 00 00 00 movabs $0x206845,%rax 2269dc: 31 ff xor %edi,%edi 2269de: 48 89 f7 mov %rsi,%rdi 2269e1: 48 89 04 24 mov %rax,(%rsp) 2269e5: 48 c7 44 24 08 00 00 00 00 movq $0x0,0x8(%rsp) 2269ee: b0 00 mov $0x0,%al 2269f0: e8 cb 7c 01 00 call 23e6c0 exit(127); 2269f5: bf 7f 00 00 00 mov $0x7f,%edi 2269fa: e8 11 77 01 00 call 23e110 close(fdpair[1]); 2269ff: 8b 7d f4 mov -0xc(%rbp),%edi 226a02: e8 89 7c 01 00 call 23e690 OpenFiles_Data* item = &(pdata->data); 226a07: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226a0e: 48 89 85 a0 fe ff ff mov %rax,-0x160(%rbp) OpenFiles_FileData* fdata = NULL; 226a15: 48 c7 85 98 fe ff ff 00 00 00 00 movq $0x0,-0x168(%rbp) bool lsofIncludesFileSize = false; 226a20: c6 85 97 fe ff ff 00 movb $0x0,-0x169(%rbp) FILE* fd = fdopen(fdpair[0], "r"); 226a27: 8b 7d f0 mov -0x10(%rbp),%edi 226a2a: 48 be 76 55 20 00 00 00 00 00 movabs $0x205576,%rsi 226a34: e8 97 7c 01 00 call 23e6d0 226a39: 48 89 85 88 fe ff ff mov %rax,-0x178(%rbp) if (!fd) { 226a40: 48 83 bd 88 fe ff ff 00 cmpq $0x0,-0x178(%rbp) 226a48: 0f 85 21 00 00 00 jne 226a6f pdata->error = 1; 226a4e: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226a55: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) return pdata; 226a5c: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226a63: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) 226a6a: e9 4c 03 00 00 jmp 226dbb for (;;) { 226a6f: e9 00 00 00 00 jmp 226a74 char* line = String_readLine(fd); 226a74: 48 8b bd 88 fe ff ff mov -0x178(%rbp),%rdi 226a7b: e8 b0 27 01 00 call 239230 226a80: 48 89 85 80 fe ff ff mov %rax,-0x180(%rbp) if (!line) { 226a87: 48 83 bd 80 fe ff ff 00 cmpq $0x0,-0x180(%rbp) 226a8f: 0f 85 05 00 00 00 jne 226a9a break; 226a95: e9 9d 01 00 00 jmp 226c37 unsigned char cmd = line[0]; 226a9a: 48 8b 85 80 fe ff ff mov -0x180(%rbp),%rax 226aa1: 8a 00 mov (%rax),%al 226aa3: 88 85 7f fe ff ff mov %al,-0x181(%rbp) switch (cmd) { 226aa9: 0f b6 85 7f fe ff ff movzbl -0x181(%rbp),%eax 226ab0: 83 c0 bc add $0xffffffbc,%eax 226ab3: 89 c1 mov %eax,%ecx 226ab5: 48 89 8d 48 fe ff ff mov %rcx,-0x1b8(%rbp) 226abc: 83 e8 31 sub $0x31,%eax 226abf: 0f 87 4a 01 00 00 ja 226c0f 226ac5: 48 8b 85 48 fe ff ff mov -0x1b8(%rbp),%rax 226acc: 48 8b 04 c5 28 99 20 00 mov 0x209928(,%rax,8),%rax 226ad4: ff e0 jmp *%rax OpenFiles_FileData* nextFile = xCalloc(1, sizeof(OpenFiles_FileData)); 226ad6: bf 01 00 00 00 mov $0x1,%edi 226adb: be 48 00 00 00 mov $0x48,%esi 226ae0: e8 0b 20 01 00 call 238af0 226ae5: 48 89 85 70 fe ff ff mov %rax,-0x190(%rbp) if (fdata == NULL) { 226aec: 48 83 bd 98 fe ff ff 00 cmpq $0x0,-0x168(%rbp) 226af4: 0f 85 17 00 00 00 jne 226b11 pdata->files = nextFile; 226afa: 48 8b 8d 70 fe ff ff mov -0x190(%rbp),%rcx 226b01: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226b08: 48 89 48 48 mov %rcx,0x48(%rax) } else { 226b0c: e9 12 00 00 00 jmp 226b23 fdata->next = nextFile; 226b11: 48 8b 8d 70 fe ff ff mov -0x190(%rbp),%rcx 226b18: 48 8b 85 98 fe ff ff mov -0x168(%rbp),%rax 226b1f: 48 89 48 40 mov %rcx,0x40(%rax) fdata = nextFile; 226b23: 48 8b 85 70 fe ff ff mov -0x190(%rbp),%rax 226b2a: 48 89 85 98 fe ff ff mov %rax,-0x168(%rbp) item = &(fdata->data); 226b31: 48 8b 85 98 fe ff ff mov -0x168(%rbp),%rax 226b38: 48 89 85 a0 fe ff ff mov %rax,-0x160(%rbp) size_t index = getIndexForType(cmd); 226b3f: 0f be bd 7f fe ff ff movsbl -0x181(%rbp),%edi 226b46: e8 75 03 00 00 call 226ec0 226b4b: 48 89 85 68 fe ff ff mov %rax,-0x198(%rbp) free_and_xStrdup(&item->data[index], line + 1); 226b52: 48 8b bd a0 fe ff ff mov -0x160(%rbp),%rdi 226b59: 48 8b 85 68 fe ff ff mov -0x198(%rbp),%rax 226b60: 48 c1 e0 03 shl $0x3,%rax 226b64: 48 01 c7 add %rax,%rdi 226b67: 48 8b b5 80 fe ff ff mov -0x180(%rbp),%rsi 226b6e: 48 83 c6 01 add $0x1,%rsi 226b72: e8 79 2a 01 00 call 2395f0 break; 226b77: e9 93 00 00 00 jmp 226c0f size_t index = getIndexForType(cmd); 226b7c: 0f be bd 7f fe ff ff movsbl -0x181(%rbp),%edi 226b83: e8 38 03 00 00 call 226ec0 226b88: 48 89 85 60 fe ff ff mov %rax,-0x1a0(%rbp) if (String_startsWith(line + 1, "0t")) { 226b8f: 48 8b bd 80 fe ff ff mov -0x180(%rbp),%rdi 226b96: 48 83 c7 01 add $0x1,%rdi 226b9a: 48 be 78 55 20 00 00 00 00 00 movabs $0x205578,%rsi 226ba4: e8 c7 03 00 00 call 226f70 226ba9: a8 01 test $0x1,%al 226bab: 0f 85 05 00 00 00 jne 226bb6 226bb1: e9 2a 00 00 00 jmp 226be0 free_and_xStrdup(&item->data[index], line + 3); 226bb6: 48 8b bd a0 fe ff ff mov -0x160(%rbp),%rdi 226bbd: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 226bc4: 48 c1 e0 03 shl $0x3,%rax 226bc8: 48 01 c7 add %rax,%rdi 226bcb: 48 8b b5 80 fe ff ff mov -0x180(%rbp),%rsi 226bd2: 48 83 c6 03 add $0x3,%rsi 226bd6: e8 15 2a 01 00 call 2395f0 } else { 226bdb: e9 25 00 00 00 jmp 226c05 free_and_xStrdup(&item->data[index], line + 1); 226be0: 48 8b bd a0 fe ff ff mov -0x160(%rbp),%rdi 226be7: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 226bee: 48 c1 e0 03 shl $0x3,%rax 226bf2: 48 01 c7 add %rax,%rdi 226bf5: 48 8b b5 80 fe ff ff mov -0x180(%rbp),%rsi 226bfc: 48 83 c6 01 add $0x1,%rsi 226c00: e8 eb 29 01 00 call 2395f0 break; 226c05: e9 05 00 00 00 jmp 226c0f break; 226c0a: e9 00 00 00 00 jmp 226c0f if (cmd == 's') 226c0f: 0f b6 85 7f fe ff ff movzbl -0x181(%rbp),%eax 226c16: 83 f8 73 cmp $0x73,%eax 226c19: 0f 85 07 00 00 00 jne 226c26 lsofIncludesFileSize = true; 226c1f: c6 85 97 fe ff ff 01 movb $0x1,-0x169(%rbp) free(line); 226c26: 48 8b bd 80 fe ff ff mov -0x180(%rbp),%rdi 226c2d: e8 2e 75 01 00 call 23e160 for (;;) { 226c32: e9 3d fe ff ff jmp 226a74 fclose(fd); 226c37: 48 8b bd 88 fe ff ff mov -0x178(%rbp),%rdi 226c3e: e8 9d 7a 01 00 call 23e6e0 if (waitpid(child, &wstatus, 0) == -1) { 226c43: 8b bd ac fe ff ff mov -0x154(%rbp),%edi 226c49: 48 8d b5 cc fe ff ff lea -0x134(%rbp),%rsi 226c50: 31 d2 xor %edx,%edx 226c52: e8 99 7a 01 00 call 23e6f0 226c57: 83 f8 ff cmp $0xffffffff,%eax 226c5a: 0f 85 21 00 00 00 jne 226c81 pdata->error = 1; 226c60: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226c67: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) return pdata; 226c6e: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226c75: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) 226c7c: e9 3a 01 00 00 jmp 226dbb if (!WIFEXITED(wstatus)) { 226c81: 8b 85 cc fe ff ff mov -0x134(%rbp),%eax 226c87: 83 e0 7f and $0x7f,%eax 226c8a: 83 f8 00 cmp $0x0,%eax 226c8d: 0f 84 13 00 00 00 je 226ca6 pdata->error = 1; 226c93: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226c9a: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) } else { 226ca1: e9 13 00 00 00 jmp 226cb9 pdata->error = WEXITSTATUS(wstatus); 226ca6: 8b 8d cc fe ff ff mov -0x134(%rbp),%ecx 226cac: c1 f9 08 sar $0x8,%ecx 226caf: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226cb6: 89 48 40 mov %ecx,0x40(%rax) if (lsofIncludesFileSize) 226cb9: f6 85 97 fe ff ff 01 testb $0x1,-0x169(%rbp) 226cc0: 0f 84 13 00 00 00 je 226cd9 return pdata; 226cc6: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226ccd: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) 226cd4: e9 e2 00 00 00 jmp 226dbb size_t fileSizeIndex = getIndexForType('s'); 226cd9: bf 73 00 00 00 mov $0x73,%edi 226cde: e8 dd 01 00 00 call 226ec0 226ce3: 48 89 85 58 fe ff ff mov %rax,-0x1a8(%rbp) for (fdata = pdata->files; fdata != NULL; fdata = fdata->next) { 226cea: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226cf1: 48 8b 40 48 mov 0x48(%rax),%rax 226cf5: 48 89 85 98 fe ff ff mov %rax,-0x168(%rbp) 226cfc: 48 83 bd 98 fe ff ff 00 cmpq $0x0,-0x168(%rbp) 226d04: 0f 84 a3 00 00 00 je 226dad item = &fdata->data; 226d0a: 48 8b 85 98 fe ff ff mov -0x168(%rbp),%rax 226d11: 48 89 85 a0 fe ff ff mov %rax,-0x160(%rbp) const char* filename = getDataForType(item, 'n'); 226d18: 48 8b bd a0 fe ff ff mov -0x160(%rbp),%rdi 226d1f: be 6e 00 00 00 mov $0x6e,%esi 226d24: e8 d7 00 00 00 call 226e00 226d29: 48 89 85 50 fe ff ff mov %rax,-0x1b0(%rbp) if (stat(filename, &st) == 0) { 226d30: 48 8b bd 50 fe ff ff mov -0x1b0(%rbp),%rdi 226d37: 48 8d b5 f0 fe ff ff lea -0x110(%rbp),%rsi 226d3e: e8 0d 76 01 00 call 23e350 226d43: 83 f8 00 cmp $0x0,%eax 226d46: 0f 85 45 00 00 00 jne 226d91 xSnprintf(fileSizeBuf, sizeof(fileSizeBuf), "%"PRIu64, st.st_size); /* st.st_size is long long on macOS, long on linux */ 226d4c: 48 8d bd d0 fe ff ff lea -0x130(%rbp),%rdi 226d53: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 226d5a: be 15 00 00 00 mov $0x15,%esi 226d5f: 48 ba 48 68 20 00 00 00 00 00 movabs $0x206848,%rdx 226d69: b0 00 mov $0x0,%al 226d6b: e8 80 27 01 00 call 2394f0 free_and_xStrdup(&item->data[fileSizeIndex], fileSizeBuf); 226d70: 48 8b bd a0 fe ff ff mov -0x160(%rbp),%rdi 226d77: 48 8b 85 58 fe ff ff mov -0x1a8(%rbp),%rax 226d7e: 48 c1 e0 03 shl $0x3,%rax 226d82: 48 01 c7 add %rax,%rdi 226d85: 48 8d b5 d0 fe ff ff lea -0x130(%rbp),%rsi 226d8c: e8 5f 28 01 00 call 2395f0 } 226d91: e9 00 00 00 00 jmp 226d96 for (fdata = pdata->files; fdata != NULL; fdata = fdata->next) { 226d96: 48 8b 85 98 fe ff ff mov -0x168(%rbp),%rax 226d9d: 48 8b 40 40 mov 0x40(%rax),%rax 226da1: 48 89 85 98 fe ff ff mov %rax,-0x168(%rbp) 226da8: e9 4f ff ff ff jmp 226cfc return pdata; 226dad: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 226db4: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) } 226dbb: 48 8b 85 c0 fe ff ff mov -0x140(%rbp),%rax 226dc2: 48 89 85 40 fe ff ff mov %rax,-0x1c0(%rbp) 226dc9: 48 8b 05 60 ba 01 00 mov 0x1ba60(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 226dd0: 48 8b 4d f8 mov -0x8(%rbp),%rcx 226dd4: 48 39 c8 cmp %rcx,%rax 226dd7: 0f 85 10 00 00 00 jne 226ded 226ddd: 48 8b 85 40 fe ff ff mov -0x1c0(%rbp),%rax 226de4: 48 81 c4 d0 01 00 00 add $0x1d0,%rsp 226deb: 5d pop %rbp 226dec: c3 ret 226ded: e8 4e 73 01 00 call 23e140 <__stack_chk_fail@plt> 226df2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 226dfc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000226e00 : static const char* getDataForType(const OpenFiles_Data* data, char type) { 226e00: 55 push %rbp 226e01: 48 89 e5 mov %rsp,%rbp 226e04: 48 83 ec 20 sub $0x20,%rsp 226e08: 40 88 f0 mov %sil,%al 226e0b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 226e0f: 88 45 f7 mov %al,-0x9(%rbp) size_t index = getIndexForType(type); 226e12: 0f be 7d f7 movsbl -0x9(%rbp),%edi 226e16: e8 a5 00 00 00 call 226ec0 226e1b: 48 89 45 e8 mov %rax,-0x18(%rbp) return data->data[index] ? data->data[index] : ""; 226e1f: 48 8b 45 f8 mov -0x8(%rbp),%rax 226e23: 48 8b 4d e8 mov -0x18(%rbp),%rcx 226e27: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 226e2c: 0f 84 15 00 00 00 je 226e47 226e32: 48 8b 45 f8 mov -0x8(%rbp),%rax 226e36: 48 8b 4d e8 mov -0x18(%rbp),%rcx 226e3a: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 226e3e: 48 89 45 e0 mov %rax,-0x20(%rbp) 226e42: e9 13 00 00 00 jmp 226e5a 226e47: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 226e51: 48 89 45 e0 mov %rax,-0x20(%rbp) 226e55: e9 00 00 00 00 jmp 226e5a 226e5a: 48 8b 45 e0 mov -0x20(%rbp),%rax 226e5e: 48 83 c4 20 add $0x20,%rsp 226e62: 5d pop %rbp 226e63: c3 ret 226e64: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 226e6e: 66 90 xchg %ax,%ax 0000000000226e70 : static void OpenFiles_Data_clear(OpenFiles_Data* data) { 226e70: 55 push %rbp 226e71: 48 89 e5 mov %rsp,%rbp 226e74: 48 83 ec 10 sub $0x10,%rsp 226e78: 48 89 7d f8 mov %rdi,-0x8(%rbp) for (size_t i = 0; i < ARRAYSIZE(data->data); i++) 226e7c: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 226e84: 48 83 7d f0 08 cmpq $0x8,-0x10(%rbp) 226e89: 0f 83 22 00 00 00 jae 226eb1 free(data->data[i]); 226e8f: 48 8b 45 f8 mov -0x8(%rbp),%rax 226e93: 48 8b 4d f0 mov -0x10(%rbp),%rcx 226e97: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 226e9b: e8 c0 72 01 00 call 23e160 for (size_t i = 0; i < ARRAYSIZE(data->data); i++) 226ea0: 48 8b 45 f0 mov -0x10(%rbp),%rax 226ea4: 48 83 c0 01 add $0x1,%rax 226ea8: 48 89 45 f0 mov %rax,-0x10(%rbp) 226eac: e9 d3 ff ff ff jmp 226e84 } 226eb1: 48 83 c4 10 add $0x10,%rsp 226eb5: 5d pop %rbp 226eb6: c3 ret 226eb7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000226ec0 : static size_t getIndexForType(char type) { 226ec0: 55 push %rbp 226ec1: 48 89 e5 mov %rsp,%rbp 226ec4: 48 83 ec 20 sub $0x20,%rsp 226ec8: 40 88 f8 mov %dil,%al 226ecb: 88 45 f7 mov %al,-0x9(%rbp) switch (type) { 226ece: 0f be 45 f7 movsbl -0x9(%rbp),%eax 226ed2: 83 c0 bc add $0xffffffbc,%eax 226ed5: 89 c1 mov %eax,%ecx 226ed7: 48 89 4d e8 mov %rcx,-0x18(%rbp) 226edb: 83 e8 30 sub $0x30,%eax 226ede: 0f 87 76 00 00 00 ja 226f5a 226ee4: 48 8b 45 e8 mov -0x18(%rbp),%rax 226ee8: 48 8b 04 c5 b8 9a 20 00 mov 0x209ab8(,%rax,8),%rax 226ef0: ff e0 jmp *%rax return 0; 226ef2: 48 c7 45 f8 00 00 00 00 movq $0x0,-0x8(%rbp) 226efa: e9 60 00 00 00 jmp 226f5f return 1; 226eff: 48 c7 45 f8 01 00 00 00 movq $0x1,-0x8(%rbp) 226f07: e9 53 00 00 00 jmp 226f5f return 2; 226f0c: 48 c7 45 f8 02 00 00 00 movq $0x2,-0x8(%rbp) 226f14: e9 46 00 00 00 jmp 226f5f return 3; 226f19: 48 c7 45 f8 03 00 00 00 movq $0x3,-0x8(%rbp) 226f21: e9 39 00 00 00 jmp 226f5f return 4; 226f26: 48 c7 45 f8 04 00 00 00 movq $0x4,-0x8(%rbp) 226f2e: e9 2c 00 00 00 jmp 226f5f return 5; 226f33: 48 c7 45 f8 05 00 00 00 movq $0x5,-0x8(%rbp) 226f3b: e9 1f 00 00 00 jmp 226f5f return 6; 226f40: 48 c7 45 f8 06 00 00 00 movq $0x6,-0x8(%rbp) 226f48: e9 12 00 00 00 jmp 226f5f return 7; 226f4d: 48 c7 45 f8 07 00 00 00 movq $0x7,-0x8(%rbp) 226f55: e9 05 00 00 00 jmp 226f5f abort(); 226f5a: e8 a1 77 01 00 call 23e700 } 226f5f: 48 8b 45 f8 mov -0x8(%rbp),%rax 226f63: 48 83 c4 20 add $0x20,%rsp 226f67: 5d pop %rbp 226f68: c3 ret 226f69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000226f70 : static inline bool String_startsWith(const char* s, const char* match) { 226f70: 55 push %rbp 226f71: 48 89 e5 mov %rsp,%rbp 226f74: 48 83 ec 20 sub $0x20,%rsp 226f78: 48 89 7d f8 mov %rdi,-0x8(%rbp) 226f7c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strncmp(s, match, strlen(match)) == 0; 226f80: 48 8b 45 f8 mov -0x8(%rbp),%rax 226f84: 48 89 45 e0 mov %rax,-0x20(%rbp) 226f88: 48 8b 45 f0 mov -0x10(%rbp),%rax 226f8c: 48 89 45 e8 mov %rax,-0x18(%rbp) 226f90: 48 8b 7d f0 mov -0x10(%rbp),%rdi 226f94: e8 57 72 01 00 call 23e1f0 226f99: 48 8b 7d e0 mov -0x20(%rbp),%rdi 226f9d: 48 8b 75 e8 mov -0x18(%rbp),%rsi 226fa1: 48 89 c2 mov %rax,%rdx 226fa4: e8 d7 74 01 00 call 23e480 226fa9: 83 f8 00 cmp $0x0,%eax 226fac: 0f 94 c0 sete %al 226faf: 24 01 and $0x1,%al 226fb1: 0f b6 c0 movzbl %al,%eax 226fb4: 48 83 c4 20 add $0x20,%rsp 226fb8: 5d pop %rbp 226fb9: c3 ret 226fba: cc int3 226fbb: cc int3 226fbc: cc int3 226fbd: cc int3 226fbe: cc int3 226fbf: cc int3 0000000000226fc0 : #include "Macros.h" #include "RichString.h" #include "XUtils.h" static void OptionItem_delete(Object* cast) { 226fc0: 55 push %rbp 226fc1: 48 89 e5 mov %rsp,%rbp 226fc4: 48 83 ec 10 sub $0x10,%rsp 226fc8: 48 89 7d f8 mov %rdi,-0x8(%rbp) OptionItem* this = (OptionItem*)cast; 226fcc: 48 8b 45 f8 mov -0x8(%rbp),%rax 226fd0: 48 89 45 f0 mov %rax,-0x10(%rbp) assert (this != NULL); free(this->text); 226fd4: 48 8b 45 f0 mov -0x10(%rbp),%rax 226fd8: 48 8b 78 08 mov 0x8(%rax),%rdi 226fdc: e8 7f 71 01 00 call 23e160 free(this); 226fe1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 226fe5: e8 76 71 01 00 call 23e160 } 226fea: 48 83 c4 10 add $0x10,%rsp 226fee: 5d pop %rbp 226fef: c3 ret 0000000000226ff0 : static void CheckItem_display(const Object* cast, RichString* out) { 226ff0: 55 push %rbp 226ff1: 48 89 e5 mov %rsp,%rbp 226ff4: 48 83 ec 20 sub $0x20,%rsp 226ff8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 226ffc: 48 89 75 f0 mov %rsi,-0x10(%rbp) const CheckItem* this = (const CheckItem*)cast; 227000: 48 8b 45 f8 mov -0x8(%rbp),%rax 227004: 48 89 45 e8 mov %rax,-0x18(%rbp) assert (this != NULL); RichString_writeAscii(out, CRT_colors[CHECK_BOX], "["); 227008: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22700c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227014: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 22701a: 48 ba 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rdx 227024: e8 37 b7 00 00 call 232760 if (CheckItem_get(this)) { 227029: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22702d: e8 9e 03 00 00 call 2273d0 227032: a8 01 test $0x1,%al 227034: 0f 85 05 00 00 00 jne 22703f 22703a: e9 26 00 00 00 jmp 227065 RichString_appendAscii(out, CRT_colors[CHECK_MARK], "x"); 22703f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227043: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22704b: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 227051: 48 ba 68 5c 20 00 00 00 00 00 movabs $0x205c68,%rdx 22705b: e8 20 b5 00 00 call 232580 } else { 227060: e9 21 00 00 00 jmp 227086 RichString_appendAscii(out, CRT_colors[CHECK_MARK], " "); 227065: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227069: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227071: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 227077: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 227081: e8 fa b4 00 00 call 232580 } RichString_appendAscii(out, CRT_colors[CHECK_BOX], "] "); 227086: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22708a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227092: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 227098: 48 ba 37 5b 20 00 00 00 00 00 movabs $0x205b37,%rdx 2270a2: e8 d9 b4 00 00 call 232580 RichString_appendWide(out, CRT_colors[CHECK_TEXT], this->super.text); 2270a7: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2270ab: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2270b3: 8b b0 00 01 00 00 mov 0x100(%rax),%esi 2270b9: 48 8b 45 e8 mov -0x18(%rbp),%rax 2270bd: 48 8b 50 08 mov 0x8(%rax),%rdx 2270c1: e8 0a b2 00 00 call 2322d0 } 2270c6: 48 83 c4 20 add $0x20,%rsp 2270ca: 5d pop %rbp 2270cb: c3 ret 2270cc: 0f 1f 40 00 nopl 0x0(%rax) 00000000002270d0 : static void NumberItem_display(const Object* cast, RichString* out) { 2270d0: 55 push %rbp 2270d1: 48 89 e5 mov %rsp,%rbp 2270d4: 48 83 ec 70 sub $0x70,%rsp 2270d8: 48 8b 05 51 b7 01 00 mov 0x1b751(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2270df: 48 89 45 f8 mov %rax,-0x8(%rbp) 2270e3: 48 89 7d e0 mov %rdi,-0x20(%rbp) 2270e7: 48 89 75 d8 mov %rsi,-0x28(%rbp) const NumberItem* this = (const NumberItem*)cast; 2270eb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2270ef: 48 89 45 d0 mov %rax,-0x30(%rbp) assert (this != NULL); char buffer[12]; RichString_writeAscii(out, CRT_colors[CHECK_BOX], "["); 2270f3: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2270f7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2270ff: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 227105: 48 ba 1c 37 20 00 00 00 00 00 movabs $0x20371c,%rdx 22710f: e8 4c b6 00 00 call 232760 int written; if (this->scale < 0) { 227114: 48 8b 45 d0 mov -0x30(%rbp),%rax 227118: 83 78 24 00 cmpl $0x0,0x24(%rax) 22711c: 0f 8d 6a 00 00 00 jge 22718c written = xSnprintf(buffer, sizeof(buffer), "%.*f", -this->scale, pow(10, this->scale) * NumberItem_get(this)); 227122: 48 8d 45 ec lea -0x14(%rbp),%rax 227126: 48 89 45 b8 mov %rax,-0x48(%rbp) 22712a: 48 8b 4d d0 mov -0x30(%rbp),%rcx 22712e: 31 c0 xor %eax,%eax 227130: 2b 41 24 sub 0x24(%rcx),%eax 227133: 89 45 c4 mov %eax,-0x3c(%rbp) 227136: 48 8b 45 d0 mov -0x30(%rbp),%rax 22713a: f2 0f 2a 48 24 cvtsi2sdl 0x24(%rax),%xmm1 22713f: f2 0f 10 05 c9 01 fe ff movsd -0x1fe37(%rip),%xmm0 # 207310 227147: e8 c4 75 01 00 call 23e710 22714c: f2 0f 11 45 b0 movsd %xmm0,-0x50(%rbp) 227151: 48 8b 7d d0 mov -0x30(%rbp),%rdi 227155: e8 c6 04 00 00 call 227620 22715a: f2 0f 10 45 b0 movsd -0x50(%rbp),%xmm0 22715f: 48 8b 7d b8 mov -0x48(%rbp),%rdi 227163: 8b 4d c4 mov -0x3c(%rbp),%ecx 227166: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 22716a: f2 0f 59 c1 mulsd %xmm1,%xmm0 22716e: be 0c 00 00 00 mov $0xc,%esi 227173: 48 ba 45 66 20 00 00 00 00 00 movabs $0x206645,%rdx 22717d: b0 01 mov $0x1,%al 22717f: e8 6c 23 01 00 call 2394f0 227184: 89 45 cc mov %eax,-0x34(%rbp) } else if (this->scale > 0) { 227187: e9 a2 00 00 00 jmp 22722e 22718c: 48 8b 45 d0 mov -0x30(%rbp),%rax 227190: 83 78 24 00 cmpl $0x0,0x24(%rax) 227194: 0f 8e 5f 00 00 00 jle 2271f9 written = xSnprintf(buffer, sizeof(buffer), "%d", (int) (pow(10, this->scale) * NumberItem_get(this))); 22719a: 48 8d 45 ec lea -0x14(%rbp),%rax 22719e: 48 89 45 a8 mov %rax,-0x58(%rbp) 2271a2: 48 8b 45 d0 mov -0x30(%rbp),%rax 2271a6: f2 0f 2a 48 24 cvtsi2sdl 0x24(%rax),%xmm1 2271ab: f2 0f 10 05 5d 01 fe ff movsd -0x1fea3(%rip),%xmm0 # 207310 2271b3: e8 58 75 01 00 call 23e710 2271b8: f2 0f 11 45 a0 movsd %xmm0,-0x60(%rbp) 2271bd: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2271c1: e8 5a 04 00 00 call 227620 2271c6: f2 0f 10 45 a0 movsd -0x60(%rbp),%xmm0 2271cb: 48 8b 7d a8 mov -0x58(%rbp),%rdi 2271cf: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 2271d3: f2 0f 59 c1 mulsd %xmm1,%xmm0 2271d7: f2 0f 2c c8 cvttsd2si %xmm0,%ecx 2271db: be 0c 00 00 00 mov $0xc,%esi 2271e0: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 2271ea: b0 00 mov $0x0,%al 2271ec: e8 ff 22 01 00 call 2394f0 2271f1: 89 45 cc mov %eax,-0x34(%rbp) } else { 2271f4: e9 30 00 00 00 jmp 227229 written = xSnprintf(buffer, sizeof(buffer), "%d", NumberItem_get(this)); 2271f9: 48 8d 45 ec lea -0x14(%rbp),%rax 2271fd: 48 89 45 98 mov %rax,-0x68(%rbp) 227201: 48 8b 7d d0 mov -0x30(%rbp),%rdi 227205: e8 16 04 00 00 call 227620 22720a: 48 8b 7d 98 mov -0x68(%rbp),%rdi 22720e: 89 c1 mov %eax,%ecx 227210: be 0c 00 00 00 mov $0xc,%esi 227215: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 22721f: b0 00 mov $0x0,%al 227221: e8 ca 22 01 00 call 2394f0 227226: 89 45 cc mov %eax,-0x34(%rbp) 227229: e9 00 00 00 00 jmp 22722e } RichString_appendnAscii(out, CRT_colors[CHECK_MARK], buffer, written); 22722e: 48 8b 7d d8 mov -0x28(%rbp),%rdi 227232: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22723a: 8b b0 fc 00 00 00 mov 0xfc(%rax),%esi 227240: 48 8d 55 ec lea -0x14(%rbp),%rdx 227244: 8b 4d cc mov -0x34(%rbp),%ecx 227247: e8 d4 b4 00 00 call 232720 RichString_appendAscii(out, CRT_colors[CHECK_BOX], "]"); 22724c: 48 8b 7d d8 mov -0x28(%rbp),%rdi 227250: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227258: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 22725e: 48 ba 7f 45 20 00 00 00 00 00 movabs $0x20457f,%rdx 227268: e8 13 b3 00 00 call 232580 for (int i = written; i < 5; i++) { 22726d: 8b 45 cc mov -0x34(%rbp),%eax 227270: 89 45 c8 mov %eax,-0x38(%rbp) 227273: 83 7d c8 05 cmpl $0x5,-0x38(%rbp) 227277: 0f 8d 2f 00 00 00 jge 2272ac RichString_appendAscii(out, CRT_colors[CHECK_BOX], " "); 22727d: 48 8b 7d d8 mov -0x28(%rbp),%rdi 227281: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227289: 8b b0 f8 00 00 00 mov 0xf8(%rax),%esi 22728f: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 227299: e8 e2 b2 00 00 call 232580 for (int i = written; i < 5; i++) { 22729e: 8b 45 c8 mov -0x38(%rbp),%eax 2272a1: 83 c0 01 add $0x1,%eax 2272a4: 89 45 c8 mov %eax,-0x38(%rbp) 2272a7: e9 c7 ff ff ff jmp 227273 } RichString_appendWide(out, CRT_colors[CHECK_TEXT], this->super.text); 2272ac: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2272b0: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2272b8: 8b b0 00 01 00 00 mov 0x100(%rax),%esi 2272be: 48 8b 45 d0 mov -0x30(%rbp),%rax 2272c2: 48 8b 50 08 mov 0x8(%rax),%rdx 2272c6: e8 05 b0 00 00 call 2322d0 2272cb: 48 8b 05 5e b5 01 00 mov 0x1b55e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2272d2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2272d6: 48 39 c8 cmp %rcx,%rax 2272d9: 0f 85 06 00 00 00 jne 2272e5 } 2272df: 48 83 c4 70 add $0x70,%rsp 2272e3: 5d pop %rbp 2272e4: c3 ret 2272e5: e8 56 6e 01 00 call 23e140 <__stack_chk_fail@plt> 2272ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002272f0 : .display = NumberItem_display }, .kind = OPTION_ITEM_NUMBER }; CheckItem* CheckItem_newByRef(const char* text, bool* ref) { 2272f0: 55 push %rbp 2272f1: 48 89 e5 mov %rsp,%rbp 2272f4: 48 83 ec 20 sub $0x20,%rsp 2272f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2272fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) CheckItem* this = AllocThis(CheckItem); 227300: bf 20 00 00 00 mov $0x20,%edi 227305: e8 56 17 01 00 call 238a60 22730a: 48 89 45 e8 mov %rax,-0x18(%rbp) 22730e: 48 8b 45 e8 mov -0x18(%rbp),%rax 227312: 48 b9 a8 9c 20 00 00 00 00 00 movabs $0x209ca8,%rcx 22731c: 48 89 08 mov %rcx,(%rax) this->super.text = xStrdup(text); 22731f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 227323: e8 c8 1c 01 00 call 238ff0 227328: 48 89 c1 mov %rax,%rcx 22732b: 48 8b 45 e8 mov -0x18(%rbp),%rax 22732f: 48 89 48 08 mov %rcx,0x8(%rax) this->value = false; 227333: 48 8b 45 e8 mov -0x18(%rbp),%rax 227337: c6 40 18 00 movb $0x0,0x18(%rax) this->ref = ref; 22733b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22733f: 48 8b 45 e8 mov -0x18(%rbp),%rax 227343: 48 89 48 10 mov %rcx,0x10(%rax) return this; 227347: 48 8b 45 e8 mov -0x18(%rbp),%rax 22734b: 48 83 c4 20 add $0x20,%rsp 22734f: 5d pop %rbp 227350: c3 ret 227351: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22735b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000227360 : } CheckItem* CheckItem_newByVal(const char* text, bool value) { 227360: 55 push %rbp 227361: 48 89 e5 mov %rsp,%rbp 227364: 48 83 ec 20 sub $0x20,%rsp 227368: 40 88 f0 mov %sil,%al 22736b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22736f: 24 01 and $0x1,%al 227371: 88 45 f7 mov %al,-0x9(%rbp) CheckItem* this = AllocThis(CheckItem); 227374: bf 20 00 00 00 mov $0x20,%edi 227379: e8 e2 16 01 00 call 238a60 22737e: 48 89 45 e8 mov %rax,-0x18(%rbp) 227382: 48 8b 45 e8 mov -0x18(%rbp),%rax 227386: 48 b9 a8 9c 20 00 00 00 00 00 movabs $0x209ca8,%rcx 227390: 48 89 08 mov %rcx,(%rax) this->super.text = xStrdup(text); 227393: 48 8b 7d f8 mov -0x8(%rbp),%rdi 227397: e8 54 1c 01 00 call 238ff0 22739c: 48 89 c1 mov %rax,%rcx 22739f: 48 8b 45 e8 mov -0x18(%rbp),%rax 2273a3: 48 89 48 08 mov %rcx,0x8(%rax) this->value = value; 2273a7: 8a 4d f7 mov -0x9(%rbp),%cl 2273aa: 48 8b 45 e8 mov -0x18(%rbp),%rax 2273ae: 80 e1 01 and $0x1,%cl 2273b1: 88 48 18 mov %cl,0x18(%rax) this->ref = NULL; 2273b4: 48 8b 45 e8 mov -0x18(%rbp),%rax 2273b8: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) return this; 2273c0: 48 8b 45 e8 mov -0x18(%rbp),%rax 2273c4: 48 83 c4 20 add $0x20,%rsp 2273c8: 5d pop %rbp 2273c9: c3 ret 2273ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002273d0 : } bool CheckItem_get(const CheckItem* this) { 2273d0: 55 push %rbp 2273d1: 48 89 e5 mov %rsp,%rbp 2273d4: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (this->ref) { 2273d8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2273dc: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 2273e1: 0f 84 14 00 00 00 je 2273fb return *(this->ref); 2273e7: 48 8b 45 f0 mov -0x10(%rbp),%rax 2273eb: 48 8b 40 10 mov 0x10(%rax),%rax 2273ef: 8a 00 mov (%rax),%al 2273f1: 24 01 and $0x1,%al 2273f3: 88 45 ff mov %al,-0x1(%rbp) 2273f6: e9 0c 00 00 00 jmp 227407 } else { return this->value; 2273fb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2273ff: 8a 40 18 mov 0x18(%rax),%al 227402: 24 01 and $0x1,%al 227404: 88 45 ff mov %al,-0x1(%rbp) } } 227407: 8a 45 ff mov -0x1(%rbp),%al 22740a: 24 01 and $0x1,%al 22740c: 0f b6 c0 movzbl %al,%eax 22740f: 5d pop %rbp 227410: c3 ret 227411: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22741b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000227420 : void CheckItem_set(CheckItem* this, bool value) { 227420: 55 push %rbp 227421: 48 89 e5 mov %rsp,%rbp 227424: 40 88 f0 mov %sil,%al 227427: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22742b: 24 01 and $0x1,%al 22742d: 88 45 f7 mov %al,-0x9(%rbp) if (this->ref) { 227430: 48 8b 45 f8 mov -0x8(%rbp),%rax 227434: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 227439: 0f 84 15 00 00 00 je 227454 *(this->ref) = value; 22743f: 8a 4d f7 mov -0x9(%rbp),%cl 227442: 48 8b 45 f8 mov -0x8(%rbp),%rax 227446: 48 8b 40 10 mov 0x10(%rax),%rax 22744a: 80 e1 01 and $0x1,%cl 22744d: 88 08 mov %cl,(%rax) } else { 22744f: e9 0d 00 00 00 jmp 227461 this->value = value; 227454: 8a 4d f7 mov -0x9(%rbp),%cl 227457: 48 8b 45 f8 mov -0x8(%rbp),%rax 22745b: 80 e1 01 and $0x1,%cl 22745e: 88 48 18 mov %cl,0x18(%rax) } } 227461: 5d pop %rbp 227462: c3 ret 227463: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22746d: 0f 1f 00 nopl (%rax) 0000000000227470 : void CheckItem_toggle(CheckItem* this) { 227470: 55 push %rbp 227471: 48 89 e5 mov %rsp,%rbp 227474: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->ref) { 227478: 48 8b 45 f8 mov -0x8(%rbp),%rax 22747c: 48 83 78 10 00 cmpq $0x0,0x10(%rax) 227481: 0f 84 1f 00 00 00 je 2274a6 *(this->ref) = !*(this->ref); 227487: 48 8b 45 f8 mov -0x8(%rbp),%rax 22748b: 48 8b 40 10 mov 0x10(%rax),%rax 22748f: 8a 08 mov (%rax),%cl 227491: 80 f1 ff xor $0xff,%cl 227494: 48 8b 45 f8 mov -0x8(%rbp),%rax 227498: 48 8b 40 10 mov 0x10(%rax),%rax 22749c: 80 e1 01 and $0x1,%cl 22749f: 88 08 mov %cl,(%rax) } else { 2274a1: e9 14 00 00 00 jmp 2274ba this->value = !this->value; 2274a6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2274aa: 8a 48 18 mov 0x18(%rax),%cl 2274ad: 80 f1 ff xor $0xff,%cl 2274b0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2274b4: 80 e1 01 and $0x1,%cl 2274b7: 88 48 18 mov %cl,0x18(%rax) } } 2274ba: 5d pop %rbp 2274bb: c3 ret 2274bc: 0f 1f 40 00 nopl 0x0(%rax) 00000000002274c0 : NumberItem* NumberItem_newByRef(const char* text, int* ref, int scale, int min, int max) { 2274c0: 55 push %rbp 2274c1: 48 89 e5 mov %rsp,%rbp 2274c4: 48 83 ec 30 sub $0x30,%rsp 2274c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2274cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2274d0: 89 55 ec mov %edx,-0x14(%rbp) 2274d3: 89 4d e8 mov %ecx,-0x18(%rbp) 2274d6: 44 89 45 e4 mov %r8d,-0x1c(%rbp) assert(min <= max); NumberItem* this = AllocThis(NumberItem); 2274da: bf 30 00 00 00 mov $0x30,%edi 2274df: e8 7c 15 01 00 call 238a60 2274e4: 48 89 45 d8 mov %rax,-0x28(%rbp) 2274e8: 48 8b 45 d8 mov -0x28(%rbp),%rax 2274ec: 48 b9 d0 9c 20 00 00 00 00 00 movabs $0x209cd0,%rcx 2274f6: 48 89 08 mov %rcx,(%rax) this->super.text = xStrdup(text); 2274f9: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2274fd: e8 ee 1a 01 00 call 238ff0 227502: 48 89 c1 mov %rax,%rcx 227505: 48 8b 45 d8 mov -0x28(%rbp),%rax 227509: 48 89 48 08 mov %rcx,0x8(%rax) this->value = 0; 22750d: 48 8b 45 d8 mov -0x28(%rbp),%rax 227511: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) this->ref = ref; 227518: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22751c: 48 8b 45 d8 mov -0x28(%rbp),%rax 227520: 48 89 48 18 mov %rcx,0x18(%rax) this->scale = scale; 227524: 8b 4d ec mov -0x14(%rbp),%ecx 227527: 48 8b 45 d8 mov -0x28(%rbp),%rax 22752b: 89 48 24 mov %ecx,0x24(%rax) this->min = min; 22752e: 8b 4d e8 mov -0x18(%rbp),%ecx 227531: 48 8b 45 d8 mov -0x28(%rbp),%rax 227535: 89 48 28 mov %ecx,0x28(%rax) this->max = max; 227538: 8b 4d e4 mov -0x1c(%rbp),%ecx 22753b: 48 8b 45 d8 mov -0x28(%rbp),%rax 22753f: 89 48 2c mov %ecx,0x2c(%rax) return this; 227542: 48 8b 45 d8 mov -0x28(%rbp),%rax 227546: 48 83 c4 30 add $0x30,%rsp 22754a: 5d pop %rbp 22754b: c3 ret 22754c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227550 : } NumberItem* NumberItem_newByVal(const char* text, int value, int scale, int min, int max) { 227550: 55 push %rbp 227551: 48 89 e5 mov %rsp,%rbp 227554: 48 83 ec 30 sub $0x30,%rsp 227558: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22755c: 89 75 f4 mov %esi,-0xc(%rbp) 22755f: 89 55 f0 mov %edx,-0x10(%rbp) 227562: 89 4d ec mov %ecx,-0x14(%rbp) 227565: 44 89 45 e8 mov %r8d,-0x18(%rbp) assert(min <= max); NumberItem* this = AllocThis(NumberItem); 227569: bf 30 00 00 00 mov $0x30,%edi 22756e: e8 ed 14 01 00 call 238a60 227573: 48 89 45 e0 mov %rax,-0x20(%rbp) 227577: 48 8b 45 e0 mov -0x20(%rbp),%rax 22757b: 48 b9 d0 9c 20 00 00 00 00 00 movabs $0x209cd0,%rcx 227585: 48 89 08 mov %rcx,(%rax) this->super.text = xStrdup(text); 227588: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22758c: e8 5f 1a 01 00 call 238ff0 227591: 48 89 c1 mov %rax,%rcx 227594: 48 8b 45 e0 mov -0x20(%rbp),%rax 227598: 48 89 48 08 mov %rcx,0x8(%rax) this->value = CLAMP(value, min, max); 22759c: 8b 45 f4 mov -0xc(%rbp),%eax 22759f: 3b 45 e8 cmp -0x18(%rbp),%eax 2275a2: 0f 8e 0b 00 00 00 jle 2275b3 2275a8: 8b 45 e8 mov -0x18(%rbp),%eax 2275ab: 89 45 dc mov %eax,-0x24(%rbp) 2275ae: e9 23 00 00 00 jmp 2275d6 2275b3: 8b 45 f4 mov -0xc(%rbp),%eax 2275b6: 3b 45 ec cmp -0x14(%rbp),%eax 2275b9: 0f 8e 0b 00 00 00 jle 2275ca 2275bf: 8b 45 f4 mov -0xc(%rbp),%eax 2275c2: 89 45 d8 mov %eax,-0x28(%rbp) 2275c5: e9 06 00 00 00 jmp 2275d0 2275ca: 8b 45 ec mov -0x14(%rbp),%eax 2275cd: 89 45 d8 mov %eax,-0x28(%rbp) 2275d0: 8b 45 d8 mov -0x28(%rbp),%eax 2275d3: 89 45 dc mov %eax,-0x24(%rbp) 2275d6: 8b 4d dc mov -0x24(%rbp),%ecx 2275d9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2275dd: 89 48 20 mov %ecx,0x20(%rax) this->ref = NULL; 2275e0: 48 8b 45 e0 mov -0x20(%rbp),%rax 2275e4: 48 c7 40 18 00 00 00 00 movq $0x0,0x18(%rax) this->scale = scale; 2275ec: 8b 4d f0 mov -0x10(%rbp),%ecx 2275ef: 48 8b 45 e0 mov -0x20(%rbp),%rax 2275f3: 89 48 24 mov %ecx,0x24(%rax) this->min = min; 2275f6: 8b 4d ec mov -0x14(%rbp),%ecx 2275f9: 48 8b 45 e0 mov -0x20(%rbp),%rax 2275fd: 89 48 28 mov %ecx,0x28(%rax) this->max = max; 227600: 8b 4d e8 mov -0x18(%rbp),%ecx 227603: 48 8b 45 e0 mov -0x20(%rbp),%rax 227607: 89 48 2c mov %ecx,0x2c(%rax) return this; 22760a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22760e: 48 83 c4 30 add $0x30,%rsp 227612: 5d pop %rbp 227613: c3 ret 227614: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22761e: 66 90 xchg %ax,%ax 0000000000227620 : } int NumberItem_get(const NumberItem* this) { 227620: 55 push %rbp 227621: 48 89 e5 mov %rsp,%rbp 227624: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (this->ref) { 227628: 48 8b 45 f0 mov -0x10(%rbp),%rax 22762c: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 227631: 0f 84 12 00 00 00 je 227649 return *(this->ref); 227637: 48 8b 45 f0 mov -0x10(%rbp),%rax 22763b: 48 8b 40 18 mov 0x18(%rax),%rax 22763f: 8b 00 mov (%rax),%eax 227641: 89 45 fc mov %eax,-0x4(%rbp) 227644: e9 0a 00 00 00 jmp 227653 } else { return this->value; 227649: 48 8b 45 f0 mov -0x10(%rbp),%rax 22764d: 8b 40 20 mov 0x20(%rax),%eax 227650: 89 45 fc mov %eax,-0x4(%rbp) } } 227653: 8b 45 fc mov -0x4(%rbp),%eax 227656: 5d pop %rbp 227657: c3 ret 227658: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000227660 : void NumberItem_decrease(NumberItem* this) { 227660: 55 push %rbp 227661: 48 89 e5 mov %rsp,%rbp 227664: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->ref) { 227668: 48 8b 45 f8 mov -0x8(%rbp),%rax 22766c: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 227671: 0f 84 7a 00 00 00 je 2276f1 *(this->ref) = CLAMP(*(this->ref) - 1, this->min, this->max); 227677: 48 8b 45 f8 mov -0x8(%rbp),%rax 22767b: 48 8b 40 18 mov 0x18(%rax),%rax 22767f: 8b 00 mov (%rax),%eax 227681: 83 e8 01 sub $0x1,%eax 227684: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227688: 3b 41 2c cmp 0x2c(%rcx),%eax 22768b: 0f 8e 0f 00 00 00 jle 2276a0 227691: 48 8b 45 f8 mov -0x8(%rbp),%rax 227695: 8b 40 2c mov 0x2c(%rax),%eax 227698: 89 45 f4 mov %eax,-0xc(%rbp) 22769b: e9 3f 00 00 00 jmp 2276df 2276a0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2276a4: 48 8b 40 18 mov 0x18(%rax),%rax 2276a8: 8b 00 mov (%rax),%eax 2276aa: 83 e8 01 sub $0x1,%eax 2276ad: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2276b1: 3b 41 28 cmp 0x28(%rcx),%eax 2276b4: 0f 8e 15 00 00 00 jle 2276cf 2276ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 2276be: 48 8b 40 18 mov 0x18(%rax),%rax 2276c2: 8b 00 mov (%rax),%eax 2276c4: 83 e8 01 sub $0x1,%eax 2276c7: 89 45 f0 mov %eax,-0x10(%rbp) 2276ca: e9 0a 00 00 00 jmp 2276d9 2276cf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2276d3: 8b 40 28 mov 0x28(%rax),%eax 2276d6: 89 45 f0 mov %eax,-0x10(%rbp) 2276d9: 8b 45 f0 mov -0x10(%rbp),%eax 2276dc: 89 45 f4 mov %eax,-0xc(%rbp) 2276df: 8b 4d f4 mov -0xc(%rbp),%ecx 2276e2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2276e6: 48 8b 40 18 mov 0x18(%rax),%rax 2276ea: 89 08 mov %ecx,(%rax) } else { 2276ec: e9 69 00 00 00 jmp 22775a this->value = CLAMP(this->value - 1, this->min, this->max); 2276f1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2276f5: 8b 40 20 mov 0x20(%rax),%eax 2276f8: 83 e8 01 sub $0x1,%eax 2276fb: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2276ff: 3b 41 2c cmp 0x2c(%rcx),%eax 227702: 0f 8e 0f 00 00 00 jle 227717 227708: 48 8b 45 f8 mov -0x8(%rbp),%rax 22770c: 8b 40 2c mov 0x2c(%rax),%eax 22770f: 89 45 ec mov %eax,-0x14(%rbp) 227712: e9 39 00 00 00 jmp 227750 227717: 48 8b 45 f8 mov -0x8(%rbp),%rax 22771b: 8b 40 20 mov 0x20(%rax),%eax 22771e: 83 e8 01 sub $0x1,%eax 227721: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227725: 3b 41 28 cmp 0x28(%rcx),%eax 227728: 0f 8e 12 00 00 00 jle 227740 22772e: 48 8b 45 f8 mov -0x8(%rbp),%rax 227732: 8b 40 20 mov 0x20(%rax),%eax 227735: 83 e8 01 sub $0x1,%eax 227738: 89 45 e8 mov %eax,-0x18(%rbp) 22773b: e9 0a 00 00 00 jmp 22774a 227740: 48 8b 45 f8 mov -0x8(%rbp),%rax 227744: 8b 40 28 mov 0x28(%rax),%eax 227747: 89 45 e8 mov %eax,-0x18(%rbp) 22774a: 8b 45 e8 mov -0x18(%rbp),%eax 22774d: 89 45 ec mov %eax,-0x14(%rbp) 227750: 8b 4d ec mov -0x14(%rbp),%ecx 227753: 48 8b 45 f8 mov -0x8(%rbp),%rax 227757: 89 48 20 mov %ecx,0x20(%rax) } } 22775a: 5d pop %rbp 22775b: c3 ret 22775c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227760 : void NumberItem_increase(NumberItem* this) { 227760: 55 push %rbp 227761: 48 89 e5 mov %rsp,%rbp 227764: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->ref) { 227768: 48 8b 45 f8 mov -0x8(%rbp),%rax 22776c: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 227771: 0f 84 7a 00 00 00 je 2277f1 *(this->ref) = CLAMP(*(this->ref) + 1, this->min, this->max); 227777: 48 8b 45 f8 mov -0x8(%rbp),%rax 22777b: 48 8b 40 18 mov 0x18(%rax),%rax 22777f: 8b 00 mov (%rax),%eax 227781: 83 c0 01 add $0x1,%eax 227784: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227788: 3b 41 2c cmp 0x2c(%rcx),%eax 22778b: 0f 8e 0f 00 00 00 jle 2277a0 227791: 48 8b 45 f8 mov -0x8(%rbp),%rax 227795: 8b 40 2c mov 0x2c(%rax),%eax 227798: 89 45 f4 mov %eax,-0xc(%rbp) 22779b: e9 3f 00 00 00 jmp 2277df 2277a0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2277a4: 48 8b 40 18 mov 0x18(%rax),%rax 2277a8: 8b 00 mov (%rax),%eax 2277aa: 83 c0 01 add $0x1,%eax 2277ad: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2277b1: 3b 41 28 cmp 0x28(%rcx),%eax 2277b4: 0f 8e 15 00 00 00 jle 2277cf 2277ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 2277be: 48 8b 40 18 mov 0x18(%rax),%rax 2277c2: 8b 00 mov (%rax),%eax 2277c4: 83 c0 01 add $0x1,%eax 2277c7: 89 45 f0 mov %eax,-0x10(%rbp) 2277ca: e9 0a 00 00 00 jmp 2277d9 2277cf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2277d3: 8b 40 28 mov 0x28(%rax),%eax 2277d6: 89 45 f0 mov %eax,-0x10(%rbp) 2277d9: 8b 45 f0 mov -0x10(%rbp),%eax 2277dc: 89 45 f4 mov %eax,-0xc(%rbp) 2277df: 8b 4d f4 mov -0xc(%rbp),%ecx 2277e2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2277e6: 48 8b 40 18 mov 0x18(%rax),%rax 2277ea: 89 08 mov %ecx,(%rax) } else { 2277ec: e9 69 00 00 00 jmp 22785a this->value = CLAMP(this->value + 1, this->min, this->max); 2277f1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2277f5: 8b 40 20 mov 0x20(%rax),%eax 2277f8: 83 c0 01 add $0x1,%eax 2277fb: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2277ff: 3b 41 2c cmp 0x2c(%rcx),%eax 227802: 0f 8e 0f 00 00 00 jle 227817 227808: 48 8b 45 f8 mov -0x8(%rbp),%rax 22780c: 8b 40 2c mov 0x2c(%rax),%eax 22780f: 89 45 ec mov %eax,-0x14(%rbp) 227812: e9 39 00 00 00 jmp 227850 227817: 48 8b 45 f8 mov -0x8(%rbp),%rax 22781b: 8b 40 20 mov 0x20(%rax),%eax 22781e: 83 c0 01 add $0x1,%eax 227821: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227825: 3b 41 28 cmp 0x28(%rcx),%eax 227828: 0f 8e 12 00 00 00 jle 227840 22782e: 48 8b 45 f8 mov -0x8(%rbp),%rax 227832: 8b 40 20 mov 0x20(%rax),%eax 227835: 83 c0 01 add $0x1,%eax 227838: 89 45 e8 mov %eax,-0x18(%rbp) 22783b: e9 0a 00 00 00 jmp 22784a 227840: 48 8b 45 f8 mov -0x8(%rbp),%rax 227844: 8b 40 28 mov 0x28(%rax),%eax 227847: 89 45 e8 mov %eax,-0x18(%rbp) 22784a: 8b 45 e8 mov -0x18(%rbp),%eax 22784d: 89 45 ec mov %eax,-0x14(%rbp) 227850: 8b 4d ec mov -0x14(%rbp),%ecx 227853: 48 8b 45 f8 mov -0x8(%rbp),%rax 227857: 89 48 20 mov %ecx,0x20(%rax) } } 22785a: 5d pop %rbp 22785b: c3 ret 22785c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227860 : void NumberItem_toggle(NumberItem* this) { 227860: 55 push %rbp 227861: 48 89 e5 mov %rsp,%rbp 227864: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->ref) { 227868: 48 8b 45 f8 mov -0x8(%rbp),%rax 22786c: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 227871: 0f 84 41 00 00 00 je 2278b8 if (*(this->ref) >= this->max) 227877: 48 8b 45 f8 mov -0x8(%rbp),%rax 22787b: 48 8b 40 18 mov 0x18(%rax),%rax 22787f: 8b 00 mov (%rax),%eax 227881: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227885: 3b 41 2c cmp 0x2c(%rcx),%eax 227888: 0f 8c 16 00 00 00 jl 2278a4 *(this->ref) = this->min; 22788e: 48 8b 45 f8 mov -0x8(%rbp),%rax 227892: 8b 48 28 mov 0x28(%rax),%ecx 227895: 48 8b 45 f8 mov -0x8(%rbp),%rax 227899: 48 8b 40 18 mov 0x18(%rax),%rax 22789d: 89 08 mov %ecx,(%rax) 22789f: e9 0f 00 00 00 jmp 2278b3 else *(this->ref) += 1; 2278a4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2278a8: 48 8b 40 18 mov 0x18(%rax),%rax 2278ac: 8b 08 mov (%rax),%ecx 2278ae: 83 c1 01 add $0x1,%ecx 2278b1: 89 08 mov %ecx,(%rax) } else { 2278b3: e9 39 00 00 00 jmp 2278f1 if (this->value >= this->max) 2278b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2278bc: 8b 40 20 mov 0x20(%rax),%eax 2278bf: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2278c3: 3b 41 2c cmp 0x2c(%rcx),%eax 2278c6: 0f 8c 13 00 00 00 jl 2278df this->value = this->min; 2278cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2278d0: 8b 48 28 mov 0x28(%rax),%ecx 2278d3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2278d7: 89 48 20 mov %ecx,0x20(%rax) 2278da: e9 0d 00 00 00 jmp 2278ec else this->value += 1; 2278df: 48 8b 45 f8 mov -0x8(%rbp),%rax 2278e3: 8b 48 20 mov 0x20(%rax),%ecx 2278e6: 83 c1 01 add $0x1,%ecx 2278e9: 89 48 20 mov %ecx,0x20(%rax) 2278ec: e9 00 00 00 00 jmp 2278f1 } } 2278f1: 5d pop %rbp 2278f2: c3 ret 2278f3: cc int3 2278f4: cc int3 2278f5: cc int3 2278f6: cc int3 2278f7: cc int3 2278f8: cc int3 2278f9: cc int3 2278fa: cc int3 2278fb: cc int3 2278fc: cc int3 2278fd: cc int3 2278fe: cc int3 2278ff: cc int3 0000000000227900 : Object_setClass(this, Class(Panel)); Panel_init(this, x, y, w, h, type, owner, fuBar); return this; } void Panel_delete(Object* cast) { 227900: 55 push %rbp 227901: 48 89 e5 mov %rsp,%rbp 227904: 48 83 ec 10 sub $0x10,%rsp 227908: 48 89 7d f8 mov %rdi,-0x8(%rbp) Panel* this = (Panel*)cast; 22790c: 48 8b 45 f8 mov -0x8(%rbp),%rax 227910: 48 89 45 f0 mov %rax,-0x10(%rbp) Panel_done(this); 227914: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227918: e8 63 04 00 00 call 227d80 free(this); 22791d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227921: e8 3a 68 01 00 call 23e160 } 227926: 48 83 c4 10 add $0x10,%rsp 22792a: 5d pop %rbp 22792b: c3 ret 22792c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227930 : return true; } HandlerResult Panel_selectByTyping(Panel* this, int ch) { 227930: 55 push %rbp 227931: 48 89 e5 mov %rsp,%rbp 227934: 48 83 ec 40 sub $0x40,%rsp 227938: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22793c: 89 75 ec mov %esi,-0x14(%rbp) int size = Panel_size(this); 22793f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227943: e8 58 08 00 00 call 2281a0 227948: 89 45 e8 mov %eax,-0x18(%rbp) if (!this->eventHandlerState) 22794b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22794f: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 227954: 0f 85 1a 00 00 00 jne 227974 this->eventHandlerState = xCalloc(100, sizeof(char)); 22795a: bf 64 00 00 00 mov $0x64,%edi 22795f: be 01 00 00 00 mov $0x1,%esi 227964: e8 87 11 01 00 call 238af0 227969: 48 89 c1 mov %rax,%rcx 22796c: 48 8b 45 f0 mov -0x10(%rbp),%rax 227970: 48 89 48 30 mov %rcx,0x30(%rax) char* buffer = this->eventHandlerState; 227974: 48 8b 45 f0 mov -0x10(%rbp),%rax 227978: 48 8b 40 30 mov 0x30(%rax),%rax 22797c: 48 89 45 e0 mov %rax,-0x20(%rbp) if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) { 227980: 31 c0 xor %eax,%eax 227982: 3b 45 ec cmp -0x14(%rbp),%eax 227985: 0f 8d ac 01 00 00 jge 227b37 22798b: 81 7d ec ff 00 00 00 cmpl $0xff,-0x14(%rbp) 227992: 0f 8d 9f 01 00 00 jge 227b37 227998: 8b 45 ec mov -0x14(%rbp),%eax 22799b: 0f b6 f8 movzbl %al,%edi 22799e: be 00 08 00 00 mov $0x800,%esi 2279a3: e8 88 1f 00 00 call 229930 <__sbistype> 2279a8: 83 f8 00 cmp $0x0,%eax 2279ab: 0f 84 86 01 00 00 je 227b37 int len = strlen(buffer); 2279b1: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2279b5: e8 36 68 01 00 call 23e1f0 2279ba: 89 45 dc mov %eax,-0x24(%rbp) if (!len) { 2279bd: 83 7d dc 00 cmpl $0x0,-0x24(%rbp) 2279c1: 0f 85 3e 00 00 00 jne 227a05 if ('/' == ch) { 2279c7: b8 2f 00 00 00 mov $0x2f,%eax 2279cc: 3b 45 ec cmp -0x14(%rbp),%eax 2279cf: 0f 85 0c 00 00 00 jne 2279e1 ch = '\001'; 2279d5: c7 45 ec 01 00 00 00 movl $0x1,-0x14(%rbp) } else if ('q' == ch) { 2279dc: e9 1f 00 00 00 jmp 227a00 2279e1: b8 71 00 00 00 mov $0x71,%eax 2279e6: 3b 45 ec cmp -0x14(%rbp),%eax 2279e9: 0f 85 0c 00 00 00 jne 2279fb return BREAK_LOOP; 2279ef: c7 45 fc 04 00 00 00 movl $0x4,-0x4(%rbp) 2279f6: e9 6f 01 00 00 jmp 227b6a 2279fb: e9 00 00 00 00 jmp 227a00 } } else if (1 == len && '\001' == buffer[0]) { 227a00: e9 30 00 00 00 jmp 227a35 227a05: b8 01 00 00 00 mov $0x1,%eax 227a0a: 3b 45 dc cmp -0x24(%rbp),%eax 227a0d: 0f 85 1d 00 00 00 jne 227a30 227a13: 48 8b 45 e0 mov -0x20(%rbp),%rax 227a17: 0f be 08 movsbl (%rax),%ecx 227a1a: b8 01 00 00 00 mov $0x1,%eax 227a1f: 39 c8 cmp %ecx,%eax 227a21: 0f 85 09 00 00 00 jne 227a30 len--; 227a27: 8b 45 dc mov -0x24(%rbp),%eax 227a2a: 83 c0 ff add $0xffffffff,%eax 227a2d: 89 45 dc mov %eax,-0x24(%rbp) 227a30: e9 00 00 00 00 jmp 227a35 } if (len < 99) { 227a35: 83 7d dc 63 cmpl $0x63,-0x24(%rbp) 227a39: 0f 8d 21 00 00 00 jge 227a60 buffer[len] = (char) ch; 227a3f: 8b 45 ec mov -0x14(%rbp),%eax 227a42: 88 c2 mov %al,%dl 227a44: 48 8b 45 e0 mov -0x20(%rbp),%rax 227a48: 48 63 4d dc movslq -0x24(%rbp),%rcx 227a4c: 88 14 08 mov %dl,(%rax,%rcx,1) buffer[len + 1] = '\0'; 227a4f: 48 8b 45 e0 mov -0x20(%rbp),%rax 227a53: 8b 4d dc mov -0x24(%rbp),%ecx 227a56: 83 c1 01 add $0x1,%ecx 227a59: 48 63 c9 movslq %ecx,%rcx 227a5c: c6 04 08 00 movb $0x0,(%rax,%rcx,1) } for (int try = 0; try < 2; try++) { 227a60: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 227a67: 83 7d d8 02 cmpl $0x2,-0x28(%rbp) 227a6b: 0f 8d ba 00 00 00 jge 227b2b len = strlen(buffer); 227a71: 48 8b 7d e0 mov -0x20(%rbp),%rdi 227a75: e8 76 67 01 00 call 23e1f0 227a7a: 89 45 dc mov %eax,-0x24(%rbp) for (int i = 0; i < size; i++) { 227a7d: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 227a84: 8b 45 d4 mov -0x2c(%rbp),%eax 227a87: 3b 45 e8 cmp -0x18(%rbp),%eax 227a8a: 0f 8d 7a 00 00 00 jge 227b0a const char* cur = ((ListItem*) Panel_get(this, i))->value; 227a90: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227a94: 8b 75 d4 mov -0x2c(%rbp),%esi 227a97: e8 e4 04 00 00 call 227f80 227a9c: 48 8b 40 08 mov 0x8(%rax),%rax 227aa0: 48 89 45 c8 mov %rax,-0x38(%rbp) while (*cur == ' ') cur++; 227aa4: 48 8b 45 c8 mov -0x38(%rbp),%rax 227aa8: 0f be 00 movsbl (%rax),%eax 227aab: 83 f8 20 cmp $0x20,%eax 227aae: 0f 85 11 00 00 00 jne 227ac5 227ab4: 48 8b 45 c8 mov -0x38(%rbp),%rax 227ab8: 48 83 c0 01 add $0x1,%rax 227abc: 48 89 45 c8 mov %rax,-0x38(%rbp) 227ac0: e9 df ff ff ff jmp 227aa4 if (strncasecmp(cur, buffer, len) == 0) { 227ac5: 48 8b 7d c8 mov -0x38(%rbp),%rdi 227ac9: 48 8b 75 e0 mov -0x20(%rbp),%rsi 227acd: 48 63 55 dc movslq -0x24(%rbp),%rdx 227ad1: e8 4a 6c 01 00 call 23e720 227ad6: 83 f8 00 cmp $0x0,%eax 227ad9: 0f 85 18 00 00 00 jne 227af7 Panel_setSelected(this, i); 227adf: 48 8b 7d f0 mov -0x10(%rbp),%rdi 227ae3: 8b 75 d4 mov -0x2c(%rbp),%esi 227ae6: e8 d5 06 00 00 call 2281c0 return HANDLED; 227aeb: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) 227af2: e9 73 00 00 00 jmp 227b6a } } 227af7: e9 00 00 00 00 jmp 227afc for (int i = 0; i < size; i++) { 227afc: 8b 45 d4 mov -0x2c(%rbp),%eax 227aff: 83 c0 01 add $0x1,%eax 227b02: 89 45 d4 mov %eax,-0x2c(%rbp) 227b05: e9 7a ff ff ff jmp 227a84 // if current word did not match, // retry considering the character the start of a new word. buffer[0] = (char) ch; 227b0a: 8b 45 ec mov -0x14(%rbp),%eax 227b0d: 88 c1 mov %al,%cl 227b0f: 48 8b 45 e0 mov -0x20(%rbp),%rax 227b13: 88 08 mov %cl,(%rax) buffer[1] = '\0'; 227b15: 48 8b 45 e0 mov -0x20(%rbp),%rax 227b19: c6 40 01 00 movb $0x0,0x1(%rax) for (int try = 0; try < 2; try++) { 227b1d: 8b 45 d8 mov -0x28(%rbp),%eax 227b20: 83 c0 01 add $0x1,%eax 227b23: 89 45 d8 mov %eax,-0x28(%rbp) 227b26: e9 3c ff ff ff jmp 227a67 } return HANDLED; 227b2b: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) 227b32: e9 33 00 00 00 jmp 227b6a } else if (ch != ERR) { 227b37: 83 7d ec ff cmpl $0xffffffff,-0x14(%rbp) 227b3b: 0f 84 07 00 00 00 je 227b48 buffer[0] = '\0'; 227b41: 48 8b 45 e0 mov -0x20(%rbp),%rax 227b45: c6 00 00 movb $0x0,(%rax) 227b48: e9 00 00 00 00 jmp 227b4d } if (ch == 13) { 227b4d: 83 7d ec 0d cmpl $0xd,-0x14(%rbp) 227b51: 0f 85 0c 00 00 00 jne 227b63 return BREAK_LOOP; 227b57: c7 45 fc 04 00 00 00 movl $0x4,-0x4(%rbp) 227b5e: e9 07 00 00 00 jmp 227b6a } return IGNORED; 227b63: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) } 227b6a: 8b 45 fc mov -0x4(%rbp),%eax 227b6d: 48 83 c4 40 add $0x40,%rsp 227b71: 5d pop %rbp 227b72: c3 ret 227b73: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 227b7d: 0f 1f 00 nopl (%rax) 0000000000227b80 : Panel* Panel_new(int x, int y, int w, int h, const ObjectClass* type, bool owner, FunctionBar* fuBar) { 227b80: 55 push %rbp 227b81: 48 89 e5 mov %rsp,%rbp 227b84: 48 83 ec 40 sub $0x40,%rsp 227b88: 44 88 c8 mov %r9b,%al 227b8b: 4c 8b 4d 10 mov 0x10(%rbp),%r9 227b8f: 89 7d fc mov %edi,-0x4(%rbp) 227b92: 89 75 f8 mov %esi,-0x8(%rbp) 227b95: 89 55 f4 mov %edx,-0xc(%rbp) 227b98: 89 4d f0 mov %ecx,-0x10(%rbp) 227b9b: 4c 89 45 e8 mov %r8,-0x18(%rbp) 227b9f: 24 01 and $0x1,%al 227ba1: 88 45 e7 mov %al,-0x19(%rbp) this = xMalloc(sizeof(Panel)); 227ba4: bf d8 26 00 00 mov $0x26d8,%edi 227ba9: e8 b2 0e 01 00 call 238a60 227bae: 48 89 45 d8 mov %rax,-0x28(%rbp) Object_setClass(this, Class(Panel)); 227bb2: 48 8b 45 d8 mov -0x28(%rbp),%rax 227bb6: 48 b9 f8 9c 20 00 00 00 00 00 movabs $0x209cf8,%rcx 227bc0: 48 89 08 mov %rcx,(%rax) Panel_init(this, x, y, w, h, type, owner, fuBar); 227bc3: 48 8b 7d d8 mov -0x28(%rbp),%rdi 227bc7: 8b 75 fc mov -0x4(%rbp),%esi 227bca: 8b 55 f8 mov -0x8(%rbp),%edx 227bcd: 8b 4d f4 mov -0xc(%rbp),%ecx 227bd0: 44 8b 45 f0 mov -0x10(%rbp),%r8d 227bd4: 4c 8b 4d e8 mov -0x18(%rbp),%r9 227bd8: 44 8a 55 e7 mov -0x19(%rbp),%r10b 227bdc: 48 8b 45 10 mov 0x10(%rbp),%rax 227be0: 41 80 e2 01 and $0x1,%r10b 227be4: 45 0f b6 d2 movzbl %r10b,%r10d 227be8: 44 89 14 24 mov %r10d,(%rsp) 227bec: 48 89 44 24 08 mov %rax,0x8(%rsp) 227bf1: e8 0a 00 00 00 call 227c00 return this; 227bf6: 48 8b 45 d8 mov -0x28(%rbp),%rax 227bfa: 48 83 c4 40 add $0x40,%rsp 227bfe: 5d pop %rbp 227bff: c3 ret 0000000000227c00 : void Panel_init(Panel* this, int x, int y, int w, int h, const ObjectClass* type, bool owner, FunctionBar* fuBar) { 227c00: 55 push %rbp 227c01: 48 89 e5 mov %rsp,%rbp 227c04: 48 83 ec 60 sub $0x60,%rsp 227c08: 48 8b 45 18 mov 0x18(%rbp),%rax 227c0c: 8a 45 10 mov 0x10(%rbp),%al 227c0f: 4c 8b 15 1a ac 01 00 mov 0x1ac1a(%rip),%r10 # 242830 <__stack_chk_guard@@FBSD_1.0> 227c16: 4c 89 55 f8 mov %r10,-0x8(%rbp) 227c1a: 48 89 7d d0 mov %rdi,-0x30(%rbp) 227c1e: 89 75 cc mov %esi,-0x34(%rbp) 227c21: 89 55 c8 mov %edx,-0x38(%rbp) 227c24: 89 4d c4 mov %ecx,-0x3c(%rbp) 227c27: 44 89 45 c0 mov %r8d,-0x40(%rbp) 227c2b: 4c 89 4d b8 mov %r9,-0x48(%rbp) 227c2f: 24 01 and $0x1,%al 227c31: 88 45 b7 mov %al,-0x49(%rbp) this->x = x; 227c34: 8b 4d cc mov -0x34(%rbp),%ecx 227c37: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c3b: 89 48 08 mov %ecx,0x8(%rax) this->y = y; 227c3e: 8b 4d c8 mov -0x38(%rbp),%ecx 227c41: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c45: 89 48 0c mov %ecx,0xc(%rax) this->w = w; 227c48: 8b 4d c4 mov -0x3c(%rbp),%ecx 227c4b: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c4f: 89 48 10 mov %ecx,0x10(%rax) this->h = h; 227c52: 8b 4d c0 mov -0x40(%rbp),%ecx 227c55: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c59: 89 48 14 mov %ecx,0x14(%rax) this->eventHandlerState = NULL; 227c5c: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c60: 48 c7 40 30 00 00 00 00 movq $0x0,0x30(%rax) this->items = Vector_new(type, owner, DEFAULT_SIZE); 227c68: 48 8b 7d b8 mov -0x48(%rbp),%rdi 227c6c: 8a 45 b7 mov -0x49(%rbp),%al 227c6f: ba ff ff ff ff mov $0xffffffff,%edx 227c74: 24 01 and $0x1,%al 227c76: 0f b6 f0 movzbl %al,%esi 227c79: e8 02 04 01 00 call 238080 227c7e: 48 89 c1 mov %rax,%rcx 227c81: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c85: 48 89 48 18 mov %rcx,0x18(%rax) this->scrollV = 0; 227c89: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c8d: c7 40 38 00 00 00 00 movl $0x0,0x38(%rax) this->scrollH = 0; 227c94: 48 8b 45 d0 mov -0x30(%rbp),%rax 227c98: c7 40 3c 00 00 00 00 movl $0x0,0x3c(%rax) this->selected = 0; 227c9f: 48 8b 45 d0 mov -0x30(%rbp),%rax 227ca3: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) this->oldSelected = 0; 227caa: 48 8b 45 d0 mov -0x30(%rbp),%rax 227cae: c7 40 24 00 00 00 00 movl $0x0,0x24(%rax) this->selectedLen = 0; 227cb5: 48 8b 45 d0 mov -0x30(%rbp),%rax 227cb9: c7 40 28 00 00 00 00 movl $0x0,0x28(%rax) this->needsRedraw = true; 227cc0: 48 8b 45 d0 mov -0x30(%rbp),%rax 227cc4: c6 40 40 01 movb $0x1,0x40(%rax) this->wasFocus = false; 227cc8: 48 8b 45 d0 mov -0x30(%rbp),%rax 227ccc: c6 40 41 00 movb $0x0,0x41(%rax) RichString_beginAllocated(this->header); 227cd0: 48 8b 45 d0 mov -0x30(%rbp),%rax 227cd4: c7 40 58 00 00 00 00 movl $0x0,0x58(%rax) 227cdb: 48 8b 4d d0 mov -0x30(%rbp),%rcx 227cdf: 48 83 c1 58 add $0x58,%rcx 227ce3: 48 83 c1 10 add $0x10,%rcx 227ce7: 48 8b 45 d0 mov -0x30(%rbp),%rax 227ceb: 48 89 48 60 mov %rcx,0x60(%rax) 227cef: 48 8b 45 d0 mov -0x30(%rbp),%rax 227cf3: 48 8b 40 60 mov 0x60(%rax),%rax 227cf7: 48 89 45 a8 mov %rax,-0x58(%rbp) 227cfb: 48 8d 7d d8 lea -0x28(%rbp),%rdi 227cff: 31 f6 xor %esi,%esi 227d01: ba 1c 00 00 00 mov $0x1c,%edx 227d06: e8 35 65 01 00 call 23e240 227d0b: 48 8b 45 a8 mov -0x58(%rbp),%rax 227d0f: 48 8b 4d d8 mov -0x28(%rbp),%rcx 227d13: 48 89 08 mov %rcx,(%rax) 227d16: 48 8b 4d e0 mov -0x20(%rbp),%rcx 227d1a: 48 89 48 08 mov %rcx,0x8(%rax) 227d1e: 48 8b 4d e8 mov -0x18(%rbp),%rcx 227d22: 48 89 48 10 mov %rcx,0x10(%rax) 227d26: 8b 4d f0 mov -0x10(%rbp),%ecx 227d29: 89 48 18 mov %ecx,0x18(%rax) 227d2c: 48 8b 45 d0 mov -0x30(%rbp),%rax 227d30: c7 80 cc 26 00 00 00 00 00 00 movl $0x0,0x26cc(%rax) this->defaultBar = fuBar; 227d3a: 48 8b 4d 18 mov 0x18(%rbp),%rcx 227d3e: 48 8b 45 d0 mov -0x30(%rbp),%rax 227d42: 48 89 48 50 mov %rcx,0x50(%rax) this->currentBar = fuBar; 227d46: 48 8b 4d 18 mov 0x18(%rbp),%rcx 227d4a: 48 8b 45 d0 mov -0x30(%rbp),%rax 227d4e: 48 89 48 48 mov %rcx,0x48(%rax) this->selectionColorId = PANEL_SELECTION_FOCUS; 227d52: 48 8b 45 d0 mov -0x30(%rbp),%rax 227d56: c7 80 d0 26 00 00 09 00 00 00 movl $0x9,0x26d0(%rax) 227d60: 48 8b 05 c9 aa 01 00 mov 0x1aac9(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 227d67: 48 8b 4d f8 mov -0x8(%rbp),%rcx 227d6b: 48 39 c8 cmp %rcx,%rax 227d6e: 0f 85 06 00 00 00 jne 227d7a } 227d74: 48 83 c4 60 add $0x60,%rsp 227d78: 5d pop %rbp 227d79: c3 ret 227d7a: e8 c1 63 01 00 call 23e140 <__stack_chk_fail@plt> 227d7f: 90 nop 0000000000227d80 : void Panel_done(Panel* this) { 227d80: 55 push %rbp 227d81: 48 89 e5 mov %rsp,%rbp 227d84: 48 83 ec 10 sub $0x10,%rsp 227d88: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(this->eventHandlerState); 227d8c: 48 8b 45 f8 mov -0x8(%rbp),%rax 227d90: 48 8b 78 30 mov 0x30(%rax),%rdi 227d94: e8 c7 63 01 00 call 23e160 Vector_delete(this->items); 227d99: 48 8b 45 f8 mov -0x8(%rbp),%rax 227d9d: 48 8b 78 18 mov 0x18(%rax),%rdi 227da1: e8 6a 03 01 00 call 238110 FunctionBar_delete(this->defaultBar); 227da6: 48 8b 45 f8 mov -0x8(%rbp),%rax 227daa: 48 8b 78 50 mov 0x50(%rax),%rdi 227dae: e8 8d 67 ff ff call 21e540 RichString_delete(&this->header); 227db3: 48 8b 7d f8 mov -0x8(%rbp),%rdi 227db7: 48 83 c7 58 add $0x58,%rdi 227dbb: e8 a0 a4 00 00 call 232260 } 227dc0: 48 83 c4 10 add $0x10,%rsp 227dc4: 5d pop %rbp 227dc5: c3 ret 227dc6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000227dd0 : void Panel_setSelectionColor(Panel* this, ColorElements colorId) { 227dd0: 55 push %rbp 227dd1: 48 89 e5 mov %rsp,%rbp 227dd4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227dd8: 89 75 f4 mov %esi,-0xc(%rbp) this->selectionColorId = colorId; 227ddb: 8b 4d f4 mov -0xc(%rbp),%ecx 227dde: 48 8b 45 f8 mov -0x8(%rbp),%rax 227de2: 89 88 d0 26 00 00 mov %ecx,0x26d0(%rax) } 227de8: 5d pop %rbp 227de9: c3 ret 227dea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000227df0 : inline void Panel_setHeader(Panel* this, const char* header) { 227df0: 55 push %rbp 227df1: 48 89 e5 mov %rsp,%rbp 227df4: 48 83 ec 10 sub $0x10,%rsp 227df8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227dfc: 48 89 75 f0 mov %rsi,-0x10(%rbp) RichString_writeWide(&(this->header), CRT_colors[PANEL_HEADER_FOCUS], header); 227e00: 48 8b 7d f8 mov -0x8(%rbp),%rdi 227e04: 48 83 c7 58 add $0x58,%rdi 227e08: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 227e10: 8b 70 1c mov 0x1c(%rax),%esi 227e13: 48 8b 55 f0 mov -0x10(%rbp),%rdx 227e17: e8 14 a7 00 00 call 232530 this->needsRedraw = true; 227e1c: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e20: c6 40 40 01 movb $0x1,0x40(%rax) } 227e24: 48 83 c4 10 add $0x10,%rsp 227e28: 5d pop %rbp 227e29: c3 ret 227e2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000227e30 : void Panel_move(Panel* this, int x, int y) { 227e30: 55 push %rbp 227e31: 48 89 e5 mov %rsp,%rbp 227e34: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227e38: 89 75 f4 mov %esi,-0xc(%rbp) 227e3b: 89 55 f0 mov %edx,-0x10(%rbp) this->x = x; 227e3e: 8b 4d f4 mov -0xc(%rbp),%ecx 227e41: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e45: 89 48 08 mov %ecx,0x8(%rax) this->y = y; 227e48: 8b 4d f0 mov -0x10(%rbp),%ecx 227e4b: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e4f: 89 48 0c mov %ecx,0xc(%rax) this->needsRedraw = true; 227e52: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e56: c6 40 40 01 movb $0x1,0x40(%rax) } 227e5a: 5d pop %rbp 227e5b: c3 ret 227e5c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227e60 : void Panel_resize(Panel* this, int w, int h) { 227e60: 55 push %rbp 227e61: 48 89 e5 mov %rsp,%rbp 227e64: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227e68: 89 75 f4 mov %esi,-0xc(%rbp) 227e6b: 89 55 f0 mov %edx,-0x10(%rbp) this->w = w; 227e6e: 8b 4d f4 mov -0xc(%rbp),%ecx 227e71: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e75: 89 48 10 mov %ecx,0x10(%rax) this->h = h; 227e78: 8b 4d f0 mov -0x10(%rbp),%ecx 227e7b: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e7f: 89 48 14 mov %ecx,0x14(%rax) this->needsRedraw = true; 227e82: 48 8b 45 f8 mov -0x8(%rbp),%rax 227e86: c6 40 40 01 movb $0x1,0x40(%rax) } 227e8a: 5d pop %rbp 227e8b: c3 ret 227e8c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227e90 : void Panel_prune(Panel* this) { 227e90: 55 push %rbp 227e91: 48 89 e5 mov %rsp,%rbp 227e94: 48 83 ec 10 sub $0x10,%rsp 227e98: 48 89 7d f8 mov %rdi,-0x8(%rbp) Vector_prune(this->items); 227e9c: 48 8b 45 f8 mov -0x8(%rbp),%rax 227ea0: 48 8b 78 18 mov 0x18(%rax),%rdi 227ea4: e8 17 03 01 00 call 2381c0 this->scrollV = 0; 227ea9: 48 8b 45 f8 mov -0x8(%rbp),%rax 227ead: c7 40 38 00 00 00 00 movl $0x0,0x38(%rax) this->selected = 0; 227eb4: 48 8b 45 f8 mov -0x8(%rbp),%rax 227eb8: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) this->oldSelected = 0; 227ebf: 48 8b 45 f8 mov -0x8(%rbp),%rax 227ec3: c7 40 24 00 00 00 00 movl $0x0,0x24(%rax) this->needsRedraw = true; 227eca: 48 8b 45 f8 mov -0x8(%rbp),%rax 227ece: c6 40 40 01 movb $0x1,0x40(%rax) } 227ed2: 48 83 c4 10 add $0x10,%rsp 227ed6: 5d pop %rbp 227ed7: c3 ret 227ed8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000227ee0 : void Panel_add(Panel* this, Object* o) { 227ee0: 55 push %rbp 227ee1: 48 89 e5 mov %rsp,%rbp 227ee4: 48 83 ec 10 sub $0x10,%rsp 227ee8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227eec: 48 89 75 f0 mov %rsi,-0x10(%rbp) Vector_add(this->items, o); 227ef0: 48 8b 45 f8 mov -0x8(%rbp),%rax 227ef4: 48 8b 78 18 mov 0x18(%rax),%rdi 227ef8: 48 8b 75 f0 mov -0x10(%rbp),%rsi 227efc: e8 df 08 01 00 call 2387e0 this->needsRedraw = true; 227f01: 48 8b 45 f8 mov -0x8(%rbp),%rax 227f05: c6 40 40 01 movb $0x1,0x40(%rax) } 227f09: 48 83 c4 10 add $0x10,%rsp 227f0d: 5d pop %rbp 227f0e: c3 ret 227f0f: 90 nop 0000000000227f10 : void Panel_insert(Panel* this, int i, Object* o) { 227f10: 55 push %rbp 227f11: 48 89 e5 mov %rsp,%rbp 227f14: 48 83 ec 20 sub $0x20,%rsp 227f18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227f1c: 89 75 f4 mov %esi,-0xc(%rbp) 227f1f: 48 89 55 e8 mov %rdx,-0x18(%rbp) Vector_insert(this->items, i, o); 227f23: 48 8b 45 f8 mov -0x8(%rbp),%rax 227f27: 48 8b 78 18 mov 0x18(%rax),%rdi 227f2b: 8b 75 f4 mov -0xc(%rbp),%esi 227f2e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 227f32: e8 09 05 01 00 call 238440 this->needsRedraw = true; 227f37: 48 8b 45 f8 mov -0x8(%rbp),%rax 227f3b: c6 40 40 01 movb $0x1,0x40(%rax) } 227f3f: 48 83 c4 20 add $0x20,%rsp 227f43: 5d pop %rbp 227f44: c3 ret 227f45: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 227f4f: 90 nop 0000000000227f50 : void Panel_set(Panel* this, int i, Object* o) { 227f50: 55 push %rbp 227f51: 48 89 e5 mov %rsp,%rbp 227f54: 48 83 ec 20 sub $0x20,%rsp 227f58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227f5c: 89 75 f4 mov %esi,-0xc(%rbp) 227f5f: 48 89 55 e8 mov %rdx,-0x18(%rbp) Vector_set(this->items, i, o); 227f63: 48 8b 45 f8 mov -0x8(%rbp),%rax 227f67: 48 8b 78 18 mov 0x18(%rax),%rdi 227f6b: 8b 75 f4 mov -0xc(%rbp),%esi 227f6e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 227f72: e8 c9 07 01 00 call 238740 } 227f77: 48 83 c4 20 add $0x20,%rsp 227f7b: 5d pop %rbp 227f7c: c3 ret 227f7d: 0f 1f 00 nopl (%rax) 0000000000227f80 : Object* Panel_get(Panel* this, int i) { 227f80: 55 push %rbp 227f81: 48 89 e5 mov %rsp,%rbp 227f84: 48 83 ec 10 sub $0x10,%rsp 227f88: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227f8c: 89 75 f4 mov %esi,-0xc(%rbp) return Vector_get(this->items, i); 227f8f: 48 8b 45 f8 mov -0x8(%rbp),%rax 227f93: 48 8b 78 18 mov 0x18(%rax),%rdi 227f97: 8b 75 f4 mov -0xc(%rbp),%esi 227f9a: e8 11 00 00 00 call 227fb0 227f9f: 48 83 c4 10 add $0x10,%rsp 227fa3: 5d pop %rbp 227fa4: c3 ret 227fa5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 227faf: 90 nop 0000000000227fb0 : static inline Object* Vector_get(const Vector* this, int idx) { 227fb0: 55 push %rbp 227fb1: 48 89 e5 mov %rsp,%rbp 227fb4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227fb8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 227fbb: 48 8b 45 f8 mov -0x8(%rbp),%rax 227fbf: 48 8b 00 mov (%rax),%rax 227fc2: 48 63 4d f4 movslq -0xc(%rbp),%rcx 227fc6: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 227fca: 5d pop %rbp 227fcb: c3 ret 227fcc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000227fd0 : Object* Panel_remove(Panel* this, int i) { 227fd0: 55 push %rbp 227fd1: 48 89 e5 mov %rsp,%rbp 227fd4: 48 83 ec 20 sub $0x20,%rsp 227fd8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 227fdc: 89 75 f4 mov %esi,-0xc(%rbp) this->needsRedraw = true; 227fdf: 48 8b 45 f8 mov -0x8(%rbp),%rax 227fe3: c6 40 40 01 movb $0x1,0x40(%rax) Object* removed = Vector_remove(this->items, i); 227fe7: 48 8b 45 f8 mov -0x8(%rbp),%rax 227feb: 48 8b 78 18 mov 0x18(%rax),%rdi 227fef: 8b 75 f4 mov -0xc(%rbp),%esi 227ff2: e8 f9 05 01 00 call 2385f0 227ff7: 48 89 45 e8 mov %rax,-0x18(%rbp) if (this->selected > 0 && this->selected >= Vector_size(this->items)) { 227ffb: 48 8b 45 f8 mov -0x8(%rbp),%rax 227fff: 83 78 20 00 cmpl $0x0,0x20(%rax) 228003: 0f 8e 31 00 00 00 jle 22803a 228009: 48 8b 45 f8 mov -0x8(%rbp),%rax 22800d: 8b 40 20 mov 0x20(%rax),%eax 228010: 89 45 e4 mov %eax,-0x1c(%rbp) 228013: 48 8b 45 f8 mov -0x8(%rbp),%rax 228017: 48 8b 78 18 mov 0x18(%rax),%rdi 22801b: e8 30 00 00 00 call 228050 228020: 89 c1 mov %eax,%ecx 228022: 8b 45 e4 mov -0x1c(%rbp),%eax 228025: 39 c8 cmp %ecx,%eax 228027: 0f 8c 0d 00 00 00 jl 22803a this->selected--; 22802d: 48 8b 45 f8 mov -0x8(%rbp),%rax 228031: 8b 48 20 mov 0x20(%rax),%ecx 228034: 83 c1 ff add $0xffffffff,%ecx 228037: 89 48 20 mov %ecx,0x20(%rax) return removed; 22803a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22803e: 48 83 c4 20 add $0x20,%rsp 228042: 5d pop %rbp 228043: c3 ret 228044: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22804e: 66 90 xchg %ax,%ax 0000000000228050 : static inline int Vector_size(const Vector* this) { 228050: 55 push %rbp 228051: 48 89 e5 mov %rsp,%rbp 228054: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 228058: 48 8b 45 f8 mov -0x8(%rbp),%rax 22805c: 8b 40 18 mov 0x18(%rax),%eax 22805f: 5d pop %rbp 228060: c3 ret 228061: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22806b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000228070 : Object* Panel_getSelected(Panel* this) { 228070: 55 push %rbp 228071: 48 89 e5 mov %rsp,%rbp 228074: 48 83 ec 10 sub $0x10,%rsp 228078: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (Vector_size(this->items) > 0) { 22807c: 48 8b 45 f0 mov -0x10(%rbp),%rax 228080: 48 8b 78 18 mov 0x18(%rax),%rdi 228084: e8 c7 ff ff ff call 228050 228089: 83 f8 00 cmp $0x0,%eax 22808c: 0f 8e 1d 00 00 00 jle 2280af return Vector_get(this->items, this->selected); 228092: 48 8b 45 f0 mov -0x10(%rbp),%rax 228096: 48 8b 78 18 mov 0x18(%rax),%rdi 22809a: 48 8b 45 f0 mov -0x10(%rbp),%rax 22809e: 8b 70 20 mov 0x20(%rax),%esi 2280a1: e8 0a ff ff ff call 227fb0 2280a6: 48 89 45 f8 mov %rax,-0x8(%rbp) 2280aa: e9 08 00 00 00 jmp 2280b7 return NULL; 2280af: 48 c7 45 f8 00 00 00 00 movq $0x0,-0x8(%rbp) } 2280b7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2280bb: 48 83 c4 10 add $0x10,%rsp 2280bf: 5d pop %rbp 2280c0: c3 ret 2280c1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2280cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002280d0 : void Panel_moveSelectedUp(Panel* this) { 2280d0: 55 push %rbp 2280d1: 48 89 e5 mov %rsp,%rbp 2280d4: 48 83 ec 10 sub $0x10,%rsp 2280d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Vector_moveUp(this->items, this->selected); 2280dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2280e0: 48 8b 78 18 mov 0x18(%rax),%rdi 2280e4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2280e8: 8b 70 20 mov 0x20(%rax),%esi 2280eb: e8 60 05 01 00 call 238650 if (this->selected > 0) { 2280f0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2280f4: 83 78 20 00 cmpl $0x0,0x20(%rax) 2280f8: 0f 8e 0d 00 00 00 jle 22810b this->selected--; 2280fe: 48 8b 45 f8 mov -0x8(%rbp),%rax 228102: 8b 48 20 mov 0x20(%rax),%ecx 228105: 83 c1 ff add $0xffffffff,%ecx 228108: 89 48 20 mov %ecx,0x20(%rax) } 22810b: 48 83 c4 10 add $0x10,%rsp 22810f: 5d pop %rbp 228110: c3 ret 228111: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22811b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000228120 : void Panel_moveSelectedDown(Panel* this) { 228120: 55 push %rbp 228121: 48 89 e5 mov %rsp,%rbp 228124: 48 83 ec 10 sub $0x10,%rsp 228128: 48 89 7d f8 mov %rdi,-0x8(%rbp) Vector_moveDown(this->items, this->selected); 22812c: 48 8b 45 f8 mov -0x8(%rbp),%rax 228130: 48 8b 78 18 mov 0x18(%rax),%rdi 228134: 48 8b 45 f8 mov -0x8(%rbp),%rax 228138: 8b 70 20 mov 0x20(%rax),%esi 22813b: e8 80 05 01 00 call 2386c0 if (this->selected + 1 < Vector_size(this->items)) { 228140: 48 8b 45 f8 mov -0x8(%rbp),%rax 228144: 8b 40 20 mov 0x20(%rax),%eax 228147: 83 c0 01 add $0x1,%eax 22814a: 89 45 f4 mov %eax,-0xc(%rbp) 22814d: 48 8b 45 f8 mov -0x8(%rbp),%rax 228151: 48 8b 78 18 mov 0x18(%rax),%rdi 228155: e8 f6 fe ff ff call 228050 22815a: 89 c1 mov %eax,%ecx 22815c: 8b 45 f4 mov -0xc(%rbp),%eax 22815f: 39 c8 cmp %ecx,%eax 228161: 0f 8d 0d 00 00 00 jge 228174 this->selected++; 228167: 48 8b 45 f8 mov -0x8(%rbp),%rax 22816b: 8b 48 20 mov 0x20(%rax),%ecx 22816e: 83 c1 01 add $0x1,%ecx 228171: 89 48 20 mov %ecx,0x20(%rax) } 228174: 48 83 c4 10 add $0x10,%rsp 228178: 5d pop %rbp 228179: c3 ret 22817a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000228180 : int Panel_getSelectedIndex(const Panel* this) { 228180: 55 push %rbp 228181: 48 89 e5 mov %rsp,%rbp 228184: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->selected; 228188: 48 8b 45 f8 mov -0x8(%rbp),%rax 22818c: 8b 40 20 mov 0x20(%rax),%eax 22818f: 5d pop %rbp 228190: c3 ret 228191: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22819b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002281a0 : int Panel_size(const Panel* this) { 2281a0: 55 push %rbp 2281a1: 48 89 e5 mov %rsp,%rbp 2281a4: 48 83 ec 10 sub $0x10,%rsp 2281a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Vector_size(this->items); 2281ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 2281b0: 48 8b 78 18 mov 0x18(%rax),%rdi 2281b4: e8 97 fe ff ff call 228050 2281b9: 48 83 c4 10 add $0x10,%rsp 2281bd: 5d pop %rbp 2281be: c3 ret 2281bf: 90 nop 00000000002281c0 : void Panel_setSelected(Panel* this, int selected) { 2281c0: 55 push %rbp 2281c1: 48 89 e5 mov %rsp,%rbp 2281c4: 48 83 ec 10 sub $0x10,%rsp 2281c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2281cc: 89 75 f4 mov %esi,-0xc(%rbp) int size = Vector_size(this->items); 2281cf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2281d3: 48 8b 78 18 mov 0x18(%rax),%rdi 2281d7: e8 74 fe ff ff call 228050 2281dc: 89 45 f0 mov %eax,-0x10(%rbp) if (selected >= size) { 2281df: 8b 45 f4 mov -0xc(%rbp),%eax 2281e2: 3b 45 f0 cmp -0x10(%rbp),%eax 2281e5: 0f 8c 09 00 00 00 jl 2281f4 selected = size - 1; 2281eb: 8b 45 f0 mov -0x10(%rbp),%eax 2281ee: 83 e8 01 sub $0x1,%eax 2281f1: 89 45 f4 mov %eax,-0xc(%rbp) if (selected < 0) { 2281f4: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 2281f8: 0f 8d 07 00 00 00 jge 228205 selected = 0; 2281fe: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) this->selected = selected; 228205: 8b 4d f4 mov -0xc(%rbp),%ecx 228208: 48 8b 45 f8 mov -0x8(%rbp),%rax 22820c: 89 48 20 mov %ecx,0x20(%rax) if (Panel_eventHandlerFn(this)) { 22820f: 48 8b 45 f8 mov -0x8(%rbp),%rax 228213: 48 8b 00 mov (%rax),%rax 228216: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 22821b: 0f 84 16 00 00 00 je 228237 Panel_eventHandler(this, EVENT_SET_SELECTED); 228221: 48 8b 45 f8 mov -0x8(%rbp),%rax 228225: 48 8b 00 mov (%rax),%rax 228228: 48 8b 40 20 mov 0x20(%rax),%rax 22822c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 228230: be ff ff ff ff mov $0xffffffff,%esi 228235: ff d0 call *%rax } 228237: 48 83 c4 10 add $0x10,%rsp 22823b: 5d pop %rbp 22823c: c3 ret 22823d: 0f 1f 00 nopl (%rax) 0000000000228240 : void Panel_splice(Panel* this, Vector* from) { 228240: 55 push %rbp 228241: 48 89 e5 mov %rsp,%rbp 228244: 48 83 ec 10 sub $0x10,%rsp 228248: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22824c: 48 89 75 f0 mov %rsi,-0x10(%rbp) Vector_splice(this->items, from); 228250: 48 8b 45 f8 mov -0x8(%rbp),%rax 228254: 48 8b 78 18 mov 0x18(%rax),%rdi 228258: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22825c: e8 4f 06 01 00 call 2388b0 this->needsRedraw = true; 228261: 48 8b 45 f8 mov -0x8(%rbp),%rax 228265: c6 40 40 01 movb $0x1,0x40(%rax) } 228269: 48 83 c4 10 add $0x10,%rsp 22826d: 5d pop %rbp 22826e: c3 ret 22826f: 90 nop 0000000000228270 : void Panel_draw(Panel* this, bool force_redraw, bool focus, bool highlightSelected, bool hideFunctionBar) { 228270: 55 push %rbp 228271: 48 89 e5 mov %rsp,%rbp 228274: 48 81 ec c0 74 00 00 sub $0x74c0,%rsp 22827b: 44 88 c0 mov %r8b,%al 22827e: 4c 8b 05 ab a5 01 00 mov 0x1a5ab(%rip),%r8 # 242830 <__stack_chk_guard@@FBSD_1.0> 228285: 4c 89 45 f8 mov %r8,-0x8(%rbp) 228289: 48 89 bd 28 8c ff ff mov %rdi,-0x73d8(%rbp) 228290: 40 80 e6 01 and $0x1,%sil 228294: 40 88 b5 27 8c ff ff mov %sil,-0x73d9(%rbp) 22829b: 80 e2 01 and $0x1,%dl 22829e: 88 95 26 8c ff ff mov %dl,-0x73da(%rbp) 2282a4: 80 e1 01 and $0x1,%cl 2282a7: 88 8d 25 8c ff ff mov %cl,-0x73db(%rbp) 2282ad: 24 01 and $0x1,%al 2282af: 88 85 24 8c ff ff mov %al,-0x73dc(%rbp) int size = Vector_size(this->items); 2282b5: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2282bc: 48 8b 78 18 mov 0x18(%rax),%rdi 2282c0: e8 8b fd ff ff call 228050 2282c5: 89 85 20 8c ff ff mov %eax,-0x73e0(%rbp) int scrollH = this->scrollH; 2282cb: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2282d2: 8b 40 3c mov 0x3c(%rax),%eax 2282d5: 89 85 1c 8c ff ff mov %eax,-0x73e4(%rbp) int y = this->y; 2282db: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2282e2: 8b 40 0c mov 0xc(%rax),%eax 2282e5: 89 85 18 8c ff ff mov %eax,-0x73e8(%rbp) int x = this->x; 2282eb: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2282f2: 8b 40 08 mov 0x8(%rax),%eax 2282f5: 89 85 14 8c ff ff mov %eax,-0x73ec(%rbp) int h = this->h; 2282fb: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228302: 8b 40 14 mov 0x14(%rax),%eax 228305: 89 85 10 8c ff ff mov %eax,-0x73f0(%rbp) if (hideFunctionBar) 22830b: f6 85 24 8c ff ff 01 testb $0x1,-0x73dc(%rbp) 228312: 0f 84 0f 00 00 00 je 228327 h++; 228318: 8b 85 10 8c ff ff mov -0x73f0(%rbp),%eax 22831e: 83 c0 01 add $0x1,%eax 228321: 89 85 10 8c ff ff mov %eax,-0x73f0(%rbp) const int header_attr = focus 228327: f6 85 26 8c ff ff 01 testb $0x1,-0x73da(%rbp) 22832e: 0f 84 16 00 00 00 je 22834a ? CRT_colors[PANEL_HEADER_FOCUS] 228334: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22833c: 8b 40 1c mov 0x1c(%rax),%eax 22833f: 89 85 c0 8b ff ff mov %eax,-0x7440(%rbp) const int header_attr = focus 228345: e9 11 00 00 00 jmp 22835b : CRT_colors[PANEL_HEADER_UNFOCUS]; 22834a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 228352: 8b 40 20 mov 0x20(%rax),%eax 228355: 89 85 c0 8b ff ff mov %eax,-0x7440(%rbp) 22835b: 8b 85 c0 8b ff ff mov -0x7440(%rbp),%eax const int header_attr = focus 228361: 89 85 0c 8c ff ff mov %eax,-0x73f4(%rbp) if (force_redraw) { 228367: f6 85 27 8c ff ff 01 testb $0x1,-0x73d9(%rbp) 22836e: 0f 84 4c 00 00 00 je 2283c0 if (Panel_printHeaderFn(this)) 228374: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 22837b: 48 8b 00 mov (%rax),%rax 22837e: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 228383: 0f 84 1c 00 00 00 je 2283a5 Panel_printHeader(this); 228389: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228390: 48 8b 00 mov (%rax),%rax 228393: 48 8b 40 30 mov 0x30(%rax),%rax 228397: 48 8b bd 28 8c ff ff mov -0x73d8(%rbp),%rdi 22839e: ff d0 call *%rax 2283a0: e9 16 00 00 00 jmp 2283bb RichString_setAttr(&this->header, header_attr); 2283a5: 48 8b bd 28 8c ff ff mov -0x73d8(%rbp),%rdi 2283ac: 48 83 c7 58 add $0x58,%rdi 2283b0: 8b b5 0c 8c ff ff mov -0x73f4(%rbp),%esi 2283b6: e8 e5 9e 00 00 call 2322a0 } 2283bb: e9 00 00 00 00 jmp 2283c0 int headerLen = RichString_sizeVal(this->header); 2283c0: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2283c7: 8b 40 58 mov 0x58(%rax),%eax 2283ca: 89 85 08 8c ff ff mov %eax,-0x73f8(%rbp) if (headerLen > 0) { 2283d0: 83 bd 08 8c ff ff 00 cmpl $0x0,-0x73f8(%rbp) 2283d7: 0f 8e 4f 01 00 00 jle 22852c attrset(header_attr); 2283dd: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2283e5: 8b b5 0c 8c ff ff mov -0x73f4(%rbp),%esi 2283eb: e8 90 5d 01 00 call 23e180 mvhline(y, x, ' ', this->w); 2283f0: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2283f8: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 2283fe: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228404: e8 87 5d 01 00 call 23e190 228409: 83 f8 ff cmp $0xffffffff,%eax 22840c: 0f 85 05 00 00 00 jne 228417 228412: e9 1c 00 00 00 jmp 228433 228417: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22841f: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228426: 8b 50 10 mov 0x10(%rax),%edx 228429: be 20 00 00 00 mov $0x20,%esi 22842e: e8 6d 5d 01 00 call 23e1a0 if (scrollH < headerLen) { 228433: 8b 85 1c 8c ff ff mov -0x73e4(%rbp),%eax 228439: 3b 85 08 8c ff ff cmp -0x73f8(%rbp),%eax 22843f: 0f 8d b2 00 00 00 jge 2284f7 RichString_printoffnVal(this->header, y, x, scrollH, 228445: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22844d: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228453: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228459: e8 32 5d 01 00 call 23e190 22845e: 83 f8 ff cmp $0xffffffff,%eax 228461: 0f 85 05 00 00 00 jne 22846c 228467: e9 8b 00 00 00 jmp 2284f7 22846c: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 228474: 48 89 85 b0 8b ff ff mov %rax,-0x7450(%rbp) 22847b: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228482: 48 8b 40 60 mov 0x60(%rax),%rax 228486: 48 63 8d 1c 8c ff ff movslq -0x73e4(%rbp),%rcx 22848d: 48 6b c9 1c imul $0x1c,%rcx,%rcx 228491: 48 01 c8 add %rcx,%rax 228494: 48 89 85 b8 8b ff ff mov %rax,-0x7448(%rbp) 22849b: 8b 85 08 8c ff ff mov -0x73f8(%rbp),%eax 2284a1: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 2284a7: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 2284ae: 3b 41 10 cmp 0x10(%rcx),%eax 2284b1: 0f 8d 17 00 00 00 jge 2284ce 2284b7: 8b 85 08 8c ff ff mov -0x73f8(%rbp),%eax 2284bd: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 2284c3: 89 85 ac 8b ff ff mov %eax,-0x7454(%rbp) 2284c9: e9 10 00 00 00 jmp 2284de 2284ce: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2284d5: 8b 40 10 mov 0x10(%rax),%eax 2284d8: 89 85 ac 8b ff ff mov %eax,-0x7454(%rbp) 2284de: 48 8b b5 b8 8b ff ff mov -0x7448(%rbp),%rsi 2284e5: 48 8b bd b0 8b ff ff mov -0x7450(%rbp),%rdi 2284ec: 8b 95 ac 8b ff ff mov -0x7454(%rbp),%edx 2284f2: e8 49 61 01 00 call 23e640 attrset(CRT_colors[RESET_COLOR]); 2284f7: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2284ff: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 228507: 8b 30 mov (%rax),%esi 228509: e8 72 5c 01 00 call 23e180 y++; 22850e: 8b 85 18 8c ff ff mov -0x73e8(%rbp),%eax 228514: 83 c0 01 add $0x1,%eax 228517: 89 85 18 8c ff ff mov %eax,-0x73e8(%rbp) h--; 22851d: 8b 85 10 8c ff ff mov -0x73f0(%rbp),%eax 228523: 83 c0 ff add $0xffffffff,%eax 228526: 89 85 10 8c ff ff mov %eax,-0x73f0(%rbp) if (this->scrollV < 0) { 22852c: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228533: 83 78 38 00 cmpl $0x0,0x38(%rax) 228537: 0f 8d 1e 00 00 00 jge 22855b this->scrollV = 0; 22853d: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228544: c7 40 38 00 00 00 00 movl $0x0,0x38(%rax) this->needsRedraw = true; 22854b: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228552: c6 40 40 01 movb $0x1,0x40(%rax) } else if (this->scrollV > size - h) { 228556: e9 77 00 00 00 jmp 2285d2 22855b: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228562: 8b 40 38 mov 0x38(%rax),%eax 228565: 8b 8d 20 8c ff ff mov -0x73e0(%rbp),%ecx 22856b: 2b 8d 10 8c ff ff sub -0x73f0(%rbp),%ecx 228571: 39 c8 cmp %ecx,%eax 228573: 0f 8e 54 00 00 00 jle 2285cd this->scrollV = MAXIMUM(size - h, 0); 228579: 8b 85 20 8c ff ff mov -0x73e0(%rbp),%eax 22857f: 2b 85 10 8c ff ff sub -0x73f0(%rbp),%eax 228585: 83 f8 00 cmp $0x0,%eax 228588: 0f 8e 17 00 00 00 jle 2285a5 22858e: 8b 85 20 8c ff ff mov -0x73e0(%rbp),%eax 228594: 2b 85 10 8c ff ff sub -0x73f0(%rbp),%eax 22859a: 89 85 a8 8b ff ff mov %eax,-0x7458(%rbp) 2285a0: e9 0d 00 00 00 jmp 2285b2 2285a5: 31 c0 xor %eax,%eax 2285a7: 89 85 a8 8b ff ff mov %eax,-0x7458(%rbp) 2285ad: e9 00 00 00 00 jmp 2285b2 2285b2: 8b 8d a8 8b ff ff mov -0x7458(%rbp),%ecx 2285b8: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2285bf: 89 48 38 mov %ecx,0x38(%rax) this->needsRedraw = true; 2285c2: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2285c9: c6 40 40 01 movb $0x1,0x40(%rax) 2285cd: e9 00 00 00 00 jmp 2285d2 if (this->selected < this->scrollV) { 2285d2: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2285d9: 8b 40 20 mov 0x20(%rax),%eax 2285dc: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 2285e3: 3b 41 38 cmp 0x38(%rcx),%eax 2285e6: 0f 8d 24 00 00 00 jge 228610 this->scrollV = this->selected; 2285ec: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2285f3: 8b 48 20 mov 0x20(%rax),%ecx 2285f6: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2285fd: 89 48 38 mov %ecx,0x38(%rax) this->needsRedraw = true; 228600: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228607: c6 40 40 01 movb $0x1,0x40(%rax) } else if (this->selected >= this->scrollV + h) { 22860b: e9 4f 00 00 00 jmp 22865f 228610: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228617: 8b 40 20 mov 0x20(%rax),%eax 22861a: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 228621: 8b 49 38 mov 0x38(%rcx),%ecx 228624: 03 8d 10 8c ff ff add -0x73f0(%rbp),%ecx 22862a: 39 c8 cmp %ecx,%eax 22862c: 0f 8c 28 00 00 00 jl 22865a this->scrollV = this->selected - h + 1; 228632: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228639: 8b 48 20 mov 0x20(%rax),%ecx 22863c: 2b 8d 10 8c ff ff sub -0x73f0(%rbp),%ecx 228642: 83 c1 01 add $0x1,%ecx 228645: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 22864c: 89 48 38 mov %ecx,0x38(%rax) this->needsRedraw = true; 22864f: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228656: c6 40 40 01 movb $0x1,0x40(%rax) 22865a: e9 00 00 00 00 jmp 22865f int first = this->scrollV; 22865f: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228666: 8b 40 38 mov 0x38(%rax),%eax 228669: 89 85 04 8c ff ff mov %eax,-0x73fc(%rbp) int upTo = MINIMUM(first + h, size); 22866f: 8b 85 04 8c ff ff mov -0x73fc(%rbp),%eax 228675: 03 85 10 8c ff ff add -0x73f0(%rbp),%eax 22867b: 3b 85 20 8c ff ff cmp -0x73e0(%rbp),%eax 228681: 0f 8d 17 00 00 00 jge 22869e 228687: 8b 85 04 8c ff ff mov -0x73fc(%rbp),%eax 22868d: 03 85 10 8c ff ff add -0x73f0(%rbp),%eax 228693: 89 85 a4 8b ff ff mov %eax,-0x745c(%rbp) 228699: e9 0c 00 00 00 jmp 2286aa 22869e: 8b 85 20 8c ff ff mov -0x73e0(%rbp),%eax 2286a4: 89 85 a4 8b ff ff mov %eax,-0x745c(%rbp) 2286aa: 8b 85 a4 8b ff ff mov -0x745c(%rbp),%eax 2286b0: 89 85 00 8c ff ff mov %eax,-0x7400(%rbp) int selectionColor = focus 2286b6: f6 85 26 8c ff ff 01 testb $0x1,-0x73da(%rbp) 2286bd: 0f 84 23 00 00 00 je 2286e6 ? CRT_colors[this->selectionColorId] 2286c3: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2286cb: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 2286d2: 8b 89 d0 26 00 00 mov 0x26d0(%rcx),%ecx 2286d8: 8b 04 88 mov (%rax,%rcx,4),%eax 2286db: 89 85 a0 8b ff ff mov %eax,-0x7460(%rbp) int selectionColor = focus 2286e1: e9 11 00 00 00 jmp 2286f7 : CRT_colors[PANEL_SELECTION_UNFOCUS]; 2286e6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2286ee: 8b 40 2c mov 0x2c(%rax),%eax 2286f1: 89 85 a0 8b ff ff mov %eax,-0x7460(%rbp) 2286f7: 8b 85 a0 8b ff ff mov -0x7460(%rbp),%eax int selectionColor = focus 2286fd: 89 85 fc 8b ff ff mov %eax,-0x7404(%rbp) if (this->needsRedraw || force_redraw) { 228703: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 22870a: f6 40 40 01 testb $0x1,0x40(%rax) 22870e: 0f 85 0d 00 00 00 jne 228721 228714: f6 85 27 8c ff ff 01 testb $0x1,-0x73d9(%rbp) 22871b: 0f 84 3b 03 00 00 je 228a5c int line = 0; 228721: c7 85 f8 8b ff ff 00 00 00 00 movl $0x0,-0x7408(%rbp) for (int i = first; line < h && i < upTo; i++) { 22872b: 8b 85 04 8c ff ff mov -0x73fc(%rbp),%eax 228731: 89 85 f4 8b ff ff mov %eax,-0x740c(%rbp) 228737: 8b 8d f8 8b ff ff mov -0x7408(%rbp),%ecx 22873d: 31 c0 xor %eax,%eax 22873f: 3b 8d 10 8c ff ff cmp -0x73f0(%rbp),%ecx 228745: 88 85 9f 8b ff ff mov %al,-0x7461(%rbp) 22874b: 0f 8d 15 00 00 00 jge 228766 228751: 8b 85 f4 8b ff ff mov -0x740c(%rbp),%eax 228757: 3b 85 00 8c ff ff cmp -0x7400(%rbp),%eax 22875d: 0f 9c c0 setl %al 228760: 88 85 9f 8b ff ff mov %al,-0x7461(%rbp) 228766: 8a 85 9f 8b ff ff mov -0x7461(%rbp),%al 22876c: a8 01 test $0x1,%al 22876e: 0f 85 05 00 00 00 jne 228779 228774: e9 6a 02 00 00 jmp 2289e3 const Object* itemObj = Vector_get(this->items, i); 228779: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228780: 48 8b 78 18 mov 0x18(%rax),%rdi 228784: 8b b5 f4 8b ff ff mov -0x740c(%rbp),%esi 22878a: e8 21 f8 ff ff call 227fb0 22878f: 48 89 85 e8 8b ff ff mov %rax,-0x7418(%rbp) RichString_begin(item); 228796: c7 85 80 d9 ff ff 00 00 00 00 movl $0x0,-0x2680(%rbp) 2287a0: 48 8d 85 80 d9 ff ff lea -0x2680(%rbp),%rax 2287a7: 48 83 c0 10 add $0x10,%rax 2287ab: 48 89 85 88 d9 ff ff mov %rax,-0x2678(%rbp) 2287b2: 48 8b 85 88 d9 ff ff mov -0x2678(%rbp),%rax 2287b9: 48 89 85 90 8b ff ff mov %rax,-0x7470(%rbp) 2287c0: 48 8d bd 60 d9 ff ff lea -0x26a0(%rbp),%rdi 2287c7: 31 f6 xor %esi,%esi 2287c9: ba 1c 00 00 00 mov $0x1c,%edx 2287ce: e8 6d 5a 01 00 call 23e240 2287d3: 48 8b 85 90 8b ff ff mov -0x7470(%rbp),%rax 2287da: 48 8b 8d 60 d9 ff ff mov -0x26a0(%rbp),%rcx 2287e1: 48 89 08 mov %rcx,(%rax) 2287e4: 48 8b 8d 68 d9 ff ff mov -0x2698(%rbp),%rcx 2287eb: 48 89 48 08 mov %rcx,0x8(%rax) 2287ef: 48 8b 8d 70 d9 ff ff mov -0x2690(%rbp),%rcx 2287f6: 48 89 48 10 mov %rcx,0x10(%rax) 2287fa: 8b 8d 78 d9 ff ff mov -0x2688(%rbp),%ecx 228800: 89 48 18 mov %ecx,0x18(%rax) 228803: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) Object_display(itemObj, &item); 22880a: 48 8b 85 e8 8b ff ff mov -0x7418(%rbp),%rax 228811: 48 8b 00 mov (%rax),%rax 228814: 48 8b 40 08 mov 0x8(%rax),%rax 228818: 48 8b bd e8 8b ff ff mov -0x7418(%rbp),%rdi 22881f: 48 8d b5 80 d9 ff ff lea -0x2680(%rbp),%rsi 228826: ff d0 call *%rax int itemLen = RichString_sizeVal(item); 228828: 8b 85 80 d9 ff ff mov -0x2680(%rbp),%eax 22882e: 89 85 e4 8b ff ff mov %eax,-0x741c(%rbp) int amt = MINIMUM(itemLen - scrollH, this->w); 228834: 8b 85 e4 8b ff ff mov -0x741c(%rbp),%eax 22883a: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 228840: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 228847: 3b 41 10 cmp 0x10(%rcx),%eax 22884a: 0f 8d 17 00 00 00 jge 228867 228850: 8b 85 e4 8b ff ff mov -0x741c(%rbp),%eax 228856: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 22885c: 89 85 8c 8b ff ff mov %eax,-0x7474(%rbp) 228862: e9 10 00 00 00 jmp 228877 228867: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 22886e: 8b 40 10 mov 0x10(%rax),%eax 228871: 89 85 8c 8b ff ff mov %eax,-0x7474(%rbp) 228877: 8b 85 8c 8b ff ff mov -0x7474(%rbp),%eax 22887d: 89 85 e0 8b ff ff mov %eax,-0x7420(%rbp) if (highlightSelected && i == this->selected) { 228883: f6 85 25 8c ff ff 01 testb $0x1,-0x73db(%rbp) 22888a: 0f 84 1f 00 00 00 je 2288af 228890: 8b 85 f4 8b ff ff mov -0x740c(%rbp),%eax 228896: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 22889d: 3b 41 20 cmp 0x20(%rcx),%eax 2288a0: 0f 85 09 00 00 00 jne 2288af item.highlightAttr = selectionColor; 2288a6: 8b 85 fc 8b ff ff mov -0x7404(%rbp),%eax 2288ac: 89 45 f4 mov %eax,-0xc(%rbp) if (item.highlightAttr) { 2288af: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 2288b3: 0f 84 2f 00 00 00 je 2288e8 attrset(item.highlightAttr); 2288b9: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2288c1: 8b 75 f4 mov -0xc(%rbp),%esi 2288c4: e8 b7 58 01 00 call 23e180 RichString_setAttr(&item, item.highlightAttr); 2288c9: 8b 75 f4 mov -0xc(%rbp),%esi 2288cc: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 2288d3: e8 c8 99 00 00 call 2322a0 this->selectedLen = itemLen; 2288d8: 8b 8d e4 8b ff ff mov -0x741c(%rbp),%ecx 2288de: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 2288e5: 89 48 28 mov %ecx,0x28(%rax) mvhline(y + line, x, ' ', this->w); 2288e8: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2288f0: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 2288f6: 03 b5 f8 8b ff ff add -0x7408(%rbp),%esi 2288fc: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228902: e8 89 58 01 00 call 23e190 228907: 83 f8 ff cmp $0xffffffff,%eax 22890a: 0f 85 05 00 00 00 jne 228915 228910: e9 1c 00 00 00 jmp 228931 228915: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 22891d: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228924: 8b 50 10 mov 0x10(%rax),%edx 228927: be 20 00 00 00 mov $0x20,%esi 22892c: e8 6f 58 01 00 call 23e1a0 if (amt > 0) 228931: 83 bd e0 8b ff ff 00 cmpl $0x0,-0x7420(%rbp) 228938: 0f 8e 55 00 00 00 jle 228993 RichString_printoffnVal(item, y + line, x, scrollH, amt); 22893e: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228946: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 22894c: 03 b5 f8 8b ff ff add -0x7408(%rbp),%esi 228952: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228958: e8 33 58 01 00 call 23e190 22895d: 83 f8 ff cmp $0xffffffff,%eax 228960: 0f 85 05 00 00 00 jne 22896b 228966: e9 28 00 00 00 jmp 228993 22896b: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228973: 48 8b b5 88 d9 ff ff mov -0x2678(%rbp),%rsi 22897a: 48 63 85 1c 8c ff ff movslq -0x73e4(%rbp),%rax 228981: 48 6b c0 1c imul $0x1c,%rax,%rax 228985: 48 01 c6 add %rax,%rsi 228988: 8b 95 e0 8b ff ff mov -0x7420(%rbp),%edx 22898e: e8 ad 5c 01 00 call 23e640 if (item.highlightAttr) 228993: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 228997: 0f 84 17 00 00 00 je 2289b4 attrset(CRT_colors[RESET_COLOR]); 22899d: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 2289a5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2289ad: 8b 30 mov (%rax),%esi 2289af: e8 cc 57 01 00 call 23e180 RichString_delete(&item); 2289b4: 48 8d bd 80 d9 ff ff lea -0x2680(%rbp),%rdi 2289bb: e8 a0 98 00 00 call 232260 line++; 2289c0: 8b 85 f8 8b ff ff mov -0x7408(%rbp),%eax 2289c6: 83 c0 01 add $0x1,%eax 2289c9: 89 85 f8 8b ff ff mov %eax,-0x7408(%rbp) for (int i = first; line < h && i < upTo; i++) { 2289cf: 8b 85 f4 8b ff ff mov -0x740c(%rbp),%eax 2289d5: 83 c0 01 add $0x1,%eax 2289d8: 89 85 f4 8b ff ff mov %eax,-0x740c(%rbp) 2289de: e9 54 fd ff ff jmp 228737 while (line < h) { 2289e3: e9 00 00 00 00 jmp 2289e8 2289e8: 8b 85 f8 8b ff ff mov -0x7408(%rbp),%eax 2289ee: 3b 85 10 8c ff ff cmp -0x73f0(%rbp),%eax 2289f4: 0f 8d 5d 00 00 00 jge 228a57 mvhline(y + line, x, ' ', this->w); 2289fa: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228a02: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228a08: 03 b5 f8 8b ff ff add -0x7408(%rbp),%esi 228a0e: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228a14: e8 77 57 01 00 call 23e190 228a19: 83 f8 ff cmp $0xffffffff,%eax 228a1c: 0f 85 05 00 00 00 jne 228a27 228a22: e9 1c 00 00 00 jmp 228a43 228a27: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228a2f: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228a36: 8b 50 10 mov 0x10(%rax),%edx 228a39: be 20 00 00 00 mov $0x20,%esi 228a3e: e8 5d 57 01 00 call 23e1a0 line++; 228a43: 8b 85 f8 8b ff ff mov -0x7408(%rbp),%eax 228a49: 83 c0 01 add $0x1,%eax 228a4c: 89 85 f8 8b ff ff mov %eax,-0x7408(%rbp) while (line < h) { 228a52: e9 91 ff ff ff jmp 2289e8 } else { 228a57: e9 34 04 00 00 jmp 228e90 const Object* oldObj = Vector_get(this->items, this->oldSelected); 228a5c: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228a63: 48 8b 78 18 mov 0x18(%rax),%rdi 228a67: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228a6e: 8b 70 24 mov 0x24(%rax),%esi 228a71: e8 3a f5 ff ff call 227fb0 228a76: 48 89 85 d8 8b ff ff mov %rax,-0x7428(%rbp) RichString_begin(old); 228a7d: c7 85 e8 b2 ff ff 00 00 00 00 movl $0x0,-0x4d18(%rbp) 228a87: 48 8d 85 e8 b2 ff ff lea -0x4d18(%rbp),%rax 228a8e: 48 83 c0 10 add $0x10,%rax 228a92: 48 89 85 f0 b2 ff ff mov %rax,-0x4d10(%rbp) 228a99: 48 8b 85 f0 b2 ff ff mov -0x4d10(%rbp),%rax 228aa0: 48 89 85 80 8b ff ff mov %rax,-0x7480(%rbp) 228aa7: 48 8d bd c8 b2 ff ff lea -0x4d38(%rbp),%rdi 228aae: 31 f6 xor %esi,%esi 228ab0: ba 1c 00 00 00 mov $0x1c,%edx 228ab5: e8 86 57 01 00 call 23e240 228aba: 48 8b 85 80 8b ff ff mov -0x7480(%rbp),%rax 228ac1: 48 8b 8d c8 b2 ff ff mov -0x4d38(%rbp),%rcx 228ac8: 48 89 08 mov %rcx,(%rax) 228acb: 48 8b 8d d0 b2 ff ff mov -0x4d30(%rbp),%rcx 228ad2: 48 89 48 08 mov %rcx,0x8(%rax) 228ad6: 48 8b 8d d8 b2 ff ff mov -0x4d28(%rbp),%rcx 228add: 48 89 48 10 mov %rcx,0x10(%rax) 228ae1: 8b 8d e0 b2 ff ff mov -0x4d20(%rbp),%ecx 228ae7: 89 48 18 mov %ecx,0x18(%rax) 228aea: c7 85 5c d9 ff ff 00 00 00 00 movl $0x0,-0x26a4(%rbp) Object_display(oldObj, &old); 228af4: 48 8b 85 d8 8b ff ff mov -0x7428(%rbp),%rax 228afb: 48 8b 00 mov (%rax),%rax 228afe: 48 8b 40 08 mov 0x8(%rax),%rax 228b02: 48 8b bd d8 8b ff ff mov -0x7428(%rbp),%rdi 228b09: 48 8d b5 e8 b2 ff ff lea -0x4d18(%rbp),%rsi 228b10: ff d0 call *%rax int oldLen = RichString_sizeVal(old); 228b12: 8b 85 e8 b2 ff ff mov -0x4d18(%rbp),%eax 228b18: 89 85 d4 8b ff ff mov %eax,-0x742c(%rbp) const Object* newObj = Vector_get(this->items, this->selected); 228b1e: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228b25: 48 8b 78 18 mov 0x18(%rax),%rdi 228b29: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228b30: 8b 70 20 mov 0x20(%rax),%esi 228b33: e8 78 f4 ff ff call 227fb0 228b38: 48 89 85 c8 8b ff ff mov %rax,-0x7438(%rbp) RichString_begin(new); 228b3f: c7 85 50 8c ff ff 00 00 00 00 movl $0x0,-0x73b0(%rbp) 228b49: 48 8d 85 50 8c ff ff lea -0x73b0(%rbp),%rax 228b50: 48 83 c0 10 add $0x10,%rax 228b54: 48 89 85 58 8c ff ff mov %rax,-0x73a8(%rbp) 228b5b: 48 8b 85 58 8c ff ff mov -0x73a8(%rbp),%rax 228b62: 48 89 85 78 8b ff ff mov %rax,-0x7488(%rbp) 228b69: 48 8d bd 30 8c ff ff lea -0x73d0(%rbp),%rdi 228b70: 31 f6 xor %esi,%esi 228b72: ba 1c 00 00 00 mov $0x1c,%edx 228b77: e8 c4 56 01 00 call 23e240 228b7c: 48 8b 85 78 8b ff ff mov -0x7488(%rbp),%rax 228b83: 48 8b 8d 30 8c ff ff mov -0x73d0(%rbp),%rcx 228b8a: 48 89 08 mov %rcx,(%rax) 228b8d: 48 8b 8d 38 8c ff ff mov -0x73c8(%rbp),%rcx 228b94: 48 89 48 08 mov %rcx,0x8(%rax) 228b98: 48 8b 8d 40 8c ff ff mov -0x73c0(%rbp),%rcx 228b9f: 48 89 48 10 mov %rcx,0x10(%rax) 228ba3: 8b 8d 48 8c ff ff mov -0x73b8(%rbp),%ecx 228ba9: 89 48 18 mov %ecx,0x18(%rax) 228bac: c7 85 c4 b2 ff ff 00 00 00 00 movl $0x0,-0x4d3c(%rbp) Object_display(newObj, &new); 228bb6: 48 8b 85 c8 8b ff ff mov -0x7438(%rbp),%rax 228bbd: 48 8b 00 mov (%rax),%rax 228bc0: 48 8b 40 08 mov 0x8(%rax),%rax 228bc4: 48 8b bd c8 8b ff ff mov -0x7438(%rbp),%rdi 228bcb: 48 8d b5 50 8c ff ff lea -0x73b0(%rbp),%rsi 228bd2: ff d0 call *%rax int newLen = RichString_sizeVal(new); 228bd4: 8b 85 50 8c ff ff mov -0x73b0(%rbp),%eax 228bda: 89 85 c4 8b ff ff mov %eax,-0x743c(%rbp) this->selectedLen = newLen; 228be0: 8b 8d c4 8b ff ff mov -0x743c(%rbp),%ecx 228be6: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228bed: 89 48 28 mov %ecx,0x28(%rax) mvhline(y + this->oldSelected - first, x + 0, ' ', this->w); 228bf0: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228bf8: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228bfe: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228c05: 03 70 24 add 0x24(%rax),%esi 228c08: 2b b5 04 8c ff ff sub -0x73fc(%rbp),%esi 228c0e: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228c14: 83 c2 00 add $0x0,%edx 228c17: e8 74 55 01 00 call 23e190 228c1c: 83 f8 ff cmp $0xffffffff,%eax 228c1f: 0f 85 05 00 00 00 jne 228c2a 228c25: e9 1c 00 00 00 jmp 228c46 228c2a: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228c32: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228c39: 8b 50 10 mov 0x10(%rax),%edx 228c3c: be 20 00 00 00 mov $0x20,%esi 228c41: e8 5a 55 01 00 call 23e1a0 if (scrollH < oldLen) 228c46: 8b 85 1c 8c ff ff mov -0x73e4(%rbp),%eax 228c4c: 3b 85 d4 8b ff ff cmp -0x742c(%rbp),%eax 228c52: 0f 8d be 00 00 00 jge 228d16 RichString_printoffnVal(old, y + this->oldSelected - first, x, 228c58: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228c60: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228c66: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228c6d: 03 70 24 add 0x24(%rax),%esi 228c70: 2b b5 04 8c ff ff sub -0x73fc(%rbp),%esi 228c76: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228c7c: e8 0f 55 01 00 call 23e190 228c81: 83 f8 ff cmp $0xffffffff,%eax 228c84: 0f 85 05 00 00 00 jne 228c8f 228c8a: e9 87 00 00 00 jmp 228d16 228c8f: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 228c97: 48 89 85 68 8b ff ff mov %rax,-0x7498(%rbp) 228c9e: 48 8b 85 f0 b2 ff ff mov -0x4d10(%rbp),%rax 228ca5: 48 63 8d 1c 8c ff ff movslq -0x73e4(%rbp),%rcx 228cac: 48 6b c9 1c imul $0x1c,%rcx,%rcx 228cb0: 48 01 c8 add %rcx,%rax 228cb3: 48 89 85 70 8b ff ff mov %rax,-0x7490(%rbp) 228cba: 8b 85 d4 8b ff ff mov -0x742c(%rbp),%eax 228cc0: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 228cc6: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 228ccd: 3b 41 10 cmp 0x10(%rcx),%eax 228cd0: 0f 8d 17 00 00 00 jge 228ced 228cd6: 8b 85 d4 8b ff ff mov -0x742c(%rbp),%eax 228cdc: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 228ce2: 89 85 64 8b ff ff mov %eax,-0x749c(%rbp) 228ce8: e9 10 00 00 00 jmp 228cfd 228ced: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228cf4: 8b 40 10 mov 0x10(%rax),%eax 228cf7: 89 85 64 8b ff ff mov %eax,-0x749c(%rbp) 228cfd: 48 8b b5 70 8b ff ff mov -0x7490(%rbp),%rsi 228d04: 48 8b bd 68 8b ff ff mov -0x7498(%rbp),%rdi 228d0b: 8b 95 64 8b ff ff mov -0x749c(%rbp),%edx 228d11: e8 2a 59 01 00 call 23e640 attrset(selectionColor); 228d16: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228d1e: 8b b5 fc 8b ff ff mov -0x7404(%rbp),%esi 228d24: e8 57 54 01 00 call 23e180 mvhline(y + this->selected - first, x + 0, ' ', this->w); 228d29: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228d31: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228d37: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228d3e: 03 70 20 add 0x20(%rax),%esi 228d41: 2b b5 04 8c ff ff sub -0x73fc(%rbp),%esi 228d47: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228d4d: 83 c2 00 add $0x0,%edx 228d50: e8 3b 54 01 00 call 23e190 228d55: 83 f8 ff cmp $0xffffffff,%eax 228d58: 0f 85 05 00 00 00 jne 228d63 228d5e: e9 1c 00 00 00 jmp 228d7f 228d63: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228d6b: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228d72: 8b 50 10 mov 0x10(%rax),%edx 228d75: be 20 00 00 00 mov $0x20,%esi 228d7a: e8 21 54 01 00 call 23e1a0 RichString_setAttr(&new, selectionColor); 228d7f: 8b b5 fc 8b ff ff mov -0x7404(%rbp),%esi 228d85: 48 8d bd 50 8c ff ff lea -0x73b0(%rbp),%rdi 228d8c: e8 0f 95 00 00 call 2322a0 if (scrollH < newLen) 228d91: 8b 85 1c 8c ff ff mov -0x73e4(%rbp),%eax 228d97: 3b 85 c4 8b ff ff cmp -0x743c(%rbp),%eax 228d9d: 0f 8d be 00 00 00 jge 228e61 RichString_printoffnVal(new, y + this->selected - first, x, 228da3: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228dab: 8b b5 18 8c ff ff mov -0x73e8(%rbp),%esi 228db1: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228db8: 03 70 20 add 0x20(%rax),%esi 228dbb: 2b b5 04 8c ff ff sub -0x73fc(%rbp),%esi 228dc1: 8b 95 14 8c ff ff mov -0x73ec(%rbp),%edx 228dc7: e8 c4 53 01 00 call 23e190 228dcc: 83 f8 ff cmp $0xffffffff,%eax 228dcf: 0f 85 05 00 00 00 jne 228dda 228dd5: e9 87 00 00 00 jmp 228e61 228dda: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 228de2: 48 89 85 50 8b ff ff mov %rax,-0x74b0(%rbp) 228de9: 48 8b 85 58 8c ff ff mov -0x73a8(%rbp),%rax 228df0: 48 63 8d 1c 8c ff ff movslq -0x73e4(%rbp),%rcx 228df7: 48 6b c9 1c imul $0x1c,%rcx,%rcx 228dfb: 48 01 c8 add %rcx,%rax 228dfe: 48 89 85 58 8b ff ff mov %rax,-0x74a8(%rbp) 228e05: 8b 85 c4 8b ff ff mov -0x743c(%rbp),%eax 228e0b: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 228e11: 48 8b 8d 28 8c ff ff mov -0x73d8(%rbp),%rcx 228e18: 3b 41 10 cmp 0x10(%rcx),%eax 228e1b: 0f 8d 17 00 00 00 jge 228e38 228e21: 8b 85 c4 8b ff ff mov -0x743c(%rbp),%eax 228e27: 2b 85 1c 8c ff ff sub -0x73e4(%rbp),%eax 228e2d: 89 85 4c 8b ff ff mov %eax,-0x74b4(%rbp) 228e33: e9 10 00 00 00 jmp 228e48 228e38: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228e3f: 8b 40 10 mov 0x10(%rax),%eax 228e42: 89 85 4c 8b ff ff mov %eax,-0x74b4(%rbp) 228e48: 48 8b b5 58 8b ff ff mov -0x74a8(%rbp),%rsi 228e4f: 48 8b bd 50 8b ff ff mov -0x74b0(%rbp),%rdi 228e56: 8b 95 4c 8b ff ff mov -0x74b4(%rbp),%edx 228e5c: e8 df 57 01 00 call 23e640 attrset(CRT_colors[RESET_COLOR]); 228e61: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228e69: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 228e71: 8b 30 mov (%rax),%esi 228e73: e8 08 53 01 00 call 23e180 RichString_delete(&new); 228e78: 48 8d bd 50 8c ff ff lea -0x73b0(%rbp),%rdi 228e7f: e8 dc 93 00 00 call 232260 RichString_delete(&old); 228e84: 48 8d bd e8 b2 ff ff lea -0x4d18(%rbp),%rdi 228e8b: e8 d0 93 00 00 call 232260 if (focus && (this->needsRedraw || force_redraw || !this->wasFocus)) { 228e90: f6 85 26 8c ff ff 01 testb $0x1,-0x73da(%rbp) 228e97: 0f 84 93 00 00 00 je 228f30 228e9d: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228ea4: f6 40 40 01 testb $0x1,0x40(%rax) 228ea8: 0f 85 1e 00 00 00 jne 228ecc 228eae: f6 85 27 8c ff ff 01 testb $0x1,-0x73d9(%rbp) 228eb5: 0f 85 11 00 00 00 jne 228ecc 228ebb: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228ec2: f6 40 41 01 testb $0x1,0x41(%rax) 228ec6: 0f 85 64 00 00 00 jne 228f30 if (Panel_drawFunctionBarFn(this)) 228ecc: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228ed3: 48 8b 00 mov (%rax),%rax 228ed6: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 228edb: 0f 84 28 00 00 00 je 228f09 Panel_drawFunctionBar(this, hideFunctionBar); 228ee1: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228ee8: 48 8b 00 mov (%rax),%rax 228eeb: 48 8b 40 28 mov 0x28(%rax),%rax 228eef: 48 8b bd 28 8c ff ff mov -0x73d8(%rbp),%rdi 228ef6: 8a 8d 24 8c ff ff mov -0x73dc(%rbp),%cl 228efc: 80 e1 01 and $0x1,%cl 228eff: 0f b6 f1 movzbl %cl,%esi 228f02: ff d0 call *%rax 228f04: e9 22 00 00 00 jmp 228f2b else if (!hideFunctionBar) 228f09: f6 85 24 8c ff ff 01 testb $0x1,-0x73dc(%rbp) 228f10: 0f 85 10 00 00 00 jne 228f26 FunctionBar_draw(this->currentBar); 228f16: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228f1d: 48 8b 78 48 mov 0x48(%rax),%rdi 228f21: e8 9a 57 ff ff call 21e6c0 228f26: e9 00 00 00 00 jmp 228f2b } 228f2b: e9 00 00 00 00 jmp 228f30 this->oldSelected = this->selected; 228f30: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228f37: 8b 48 20 mov 0x20(%rax),%ecx 228f3a: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228f41: 89 48 24 mov %ecx,0x24(%rax) this->wasFocus = focus; 228f44: 8a 8d 26 8c ff ff mov -0x73da(%rbp),%cl 228f4a: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228f51: 80 e1 01 and $0x1,%cl 228f54: 88 48 41 mov %cl,0x41(%rax) this->needsRedraw = false; 228f57: 48 8b 85 28 8c ff ff mov -0x73d8(%rbp),%rax 228f5e: c6 40 40 00 movb $0x0,0x40(%rax) move(0, 0); 228f62: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 228f6a: 31 d2 xor %edx,%edx 228f6c: 89 d6 mov %edx,%esi 228f6e: e8 1d 52 01 00 call 23e190 228f73: 48 8b 05 b6 98 01 00 mov 0x198b6(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 228f7a: 48 8b 4d f8 mov -0x8(%rbp),%rcx 228f7e: 48 39 c8 cmp %rcx,%rax 228f81: 0f 85 09 00 00 00 jne 228f90 } 228f87: 48 81 c4 c0 74 00 00 add $0x74c0,%rsp 228f8e: 5d pop %rbp 228f8f: c3 ret 228f90: e8 ab 51 01 00 call 23e140 <__stack_chk_fail@plt> 228f95: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 228f9f: 90 nop 0000000000228fa0 : bool Panel_onKey(Panel* this, int key) { 228fa0: 55 push %rbp 228fa1: 48 89 e5 mov %rsp,%rbp 228fa4: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 228fab: 48 89 7d f0 mov %rdi,-0x10(%rbp) 228faf: 89 75 ec mov %esi,-0x14(%rbp) const int size = Vector_size(this->items); 228fb2: 48 8b 45 f0 mov -0x10(%rbp),%rax 228fb6: 48 8b 78 18 mov 0x18(%rax),%rdi 228fba: e8 91 f0 ff ff call 228050 228fbf: 89 45 e8 mov %eax,-0x18(%rbp) switch (key) { 228fc2: 8b 45 ec mov -0x14(%rbp),%eax 228fc5: 89 45 e4 mov %eax,-0x1c(%rbp) 228fc8: 83 e8 01 sub $0x1,%eax 228fcb: 0f 84 58 08 00 00 je 229829 228fd1: e9 00 00 00 00 jmp 228fd6 228fd6: 8b 45 e4 mov -0x1c(%rbp),%eax 228fd9: 83 e8 02 sub $0x2,%eax 228fdc: 0f 84 4d 01 00 00 je 22912f 228fe2: e9 00 00 00 00 jmp 228fe7 228fe7: 8b 45 e4 mov -0x1c(%rbp),%eax 228fea: 83 e8 05 sub $0x5,%eax 228fed: 0f 84 4e 08 00 00 je 229841 228ff3: e9 00 00 00 00 jmp 228ff8 228ff8: 8b 45 e4 mov -0x1c(%rbp),%eax 228ffb: 83 e8 06 sub $0x6,%eax 228ffe: 0f 84 7c 01 00 00 je 229180 229004: e9 00 00 00 00 jmp 229009 229009: 8b 45 e4 mov -0x1c(%rbp),%eax 22900c: 83 e8 0e sub $0xe,%eax 22900f: 0f 84 f6 00 00 00 je 22910b 229015: e9 00 00 00 00 jmp 22901a 22901a: 8b 45 e4 mov -0x1c(%rbp),%eax 22901d: 83 e8 10 sub $0x10,%eax 229020: 0f 84 f7 00 00 00 je 22911d 229026: e9 00 00 00 00 jmp 22902b 22902b: 8b 45 e4 mov -0x1c(%rbp),%eax 22902e: 83 e8 24 sub $0x24,%eax 229031: 0f 84 0a 08 00 00 je 229841 229037: e9 00 00 00 00 jmp 22903c 22903c: 8b 45 e4 mov -0x1c(%rbp),%eax 22903f: 83 e8 5e sub $0x5e,%eax 229042: 0f 84 e1 07 00 00 je 229829 229048: e9 00 00 00 00 jmp 22904d 22904d: 8b 45 e4 mov -0x1c(%rbp),%eax 229050: 2d 02 01 00 00 sub $0x102,%eax 229055: 0f 84 b0 00 00 00 je 22910b 22905b: e9 00 00 00 00 jmp 229060 229060: 8b 45 e4 mov -0x1c(%rbp),%eax 229063: 2d 03 01 00 00 sub $0x103,%eax 229068: 0f 84 af 00 00 00 je 22911d 22906e: e9 00 00 00 00 jmp 229073 229073: 8b 45 e4 mov -0x1c(%rbp),%eax 229076: 2d 04 01 00 00 sub $0x104,%eax 22907b: 0f 84 ae 00 00 00 je 22912f 229081: e9 00 00 00 00 jmp 229086 229086: 8b 45 e4 mov -0x1c(%rbp),%eax 229089: 2d 05 01 00 00 sub $0x105,%eax 22908e: 0f 84 ec 00 00 00 je 229180 229094: e9 00 00 00 00 jmp 229099 229099: 8b 45 e4 mov -0x1c(%rbp),%eax 22909c: 2d 06 01 00 00 sub $0x106,%eax 2290a1: 0f 84 60 07 00 00 je 229807 2290a7: e9 00 00 00 00 jmp 2290ac 2290ac: 8b 45 e4 mov -0x1c(%rbp),%eax 2290af: 2d 26 01 00 00 sub $0x126,%eax 2290b4: 0f 84 57 04 00 00 je 229511 2290ba: e9 00 00 00 00 jmp 2290bf 2290bf: 8b 45 e4 mov -0x1c(%rbp),%eax 2290c2: 2d 27 01 00 00 sub $0x127,%eax 2290c7: 0f 84 c6 05 00 00 je 229693 2290cd: e9 00 00 00 00 jmp 2290d2 2290d2: 8b 45 e4 mov -0x1c(%rbp),%eax 2290d5: 2d 52 01 00 00 sub $0x152,%eax 2290da: 0f 84 64 02 00 00 je 229344 2290e0: e9 00 00 00 00 jmp 2290e5 2290e5: 8b 45 e4 mov -0x1c(%rbp),%eax 2290e8: 2d 53 01 00 00 sub $0x153,%eax 2290ed: 0f 84 ab 00 00 00 je 22919e 2290f3: e9 00 00 00 00 jmp 2290f8 2290f8: 8b 45 e4 mov -0x1c(%rbp),%eax 2290fb: 2d 68 01 00 00 sub $0x168,%eax 229100: 0f 84 11 07 00 00 je 229817 229106: e9 8d 07 00 00 jmp 229898 this->selected++; 22910b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22910f: 8b 48 20 mov 0x20(%rax),%ecx 229112: 83 c1 01 add $0x1,%ecx 229115: 89 48 20 mov %ecx,0x20(%rax) break; 229118: e9 84 07 00 00 jmp 2298a1 this->selected--; 22911d: 48 8b 45 f0 mov -0x10(%rbp),%rax 229121: 8b 48 20 mov 0x20(%rax),%ecx 229124: 83 c1 ff add $0xffffffff,%ecx 229127: 89 48 20 mov %ecx,0x20(%rax) break; 22912a: e9 72 07 00 00 jmp 2298a1 if (this->scrollH > 0) { 22912f: 48 8b 45 f0 mov -0x10(%rbp),%rax 229133: 83 78 3c 00 cmpl $0x0,0x3c(%rax) 229137: 0f 8e 3e 00 00 00 jle 22917b this->scrollH -= MAXIMUM(CRT_scrollHAmount, 0); 22913d: 83 3c 25 d8 0c 24 00 00 cmpl $0x0,0x240cd8 229145: 0f 8e 0f 00 00 00 jle 22915a 22914b: 8b 04 25 d8 0c 24 00 mov 0x240cd8,%eax 229152: 89 45 e0 mov %eax,-0x20(%rbp) 229155: e9 0a 00 00 00 jmp 229164 22915a: 31 c0 xor %eax,%eax 22915c: 89 45 e0 mov %eax,-0x20(%rbp) 22915f: e9 00 00 00 00 jmp 229164 229164: 8b 55 e0 mov -0x20(%rbp),%edx 229167: 48 8b 45 f0 mov -0x10(%rbp),%rax 22916b: 8b 48 3c mov 0x3c(%rax),%ecx 22916e: 29 d1 sub %edx,%ecx 229170: 89 48 3c mov %ecx,0x3c(%rax) this->needsRedraw = true; 229173: 48 8b 45 f0 mov -0x10(%rbp),%rax 229177: c6 40 40 01 movb $0x1,0x40(%rax) break; 22917b: e9 21 07 00 00 jmp 2298a1 this->scrollH += CRT_scrollHAmount; 229180: 8b 0c 25 d8 0c 24 00 mov 0x240cd8,%ecx 229187: 48 8b 45 f0 mov -0x10(%rbp),%rax 22918b: 03 48 3c add 0x3c(%rax),%ecx 22918e: 89 48 3c mov %ecx,0x3c(%rax) this->needsRedraw = true; 229191: 48 8b 45 f0 mov -0x10(%rbp),%rax 229195: c6 40 40 01 movb $0x1,0x40(%rax) break; 229199: e9 03 07 00 00 jmp 2298a1 PANEL_SCROLL(-(this->h - Panel_headerHeight(this))); 22919e: e9 00 00 00 00 jmp 2291a3 2291a3: 48 8b 45 f0 mov -0x10(%rbp),%rax 2291a7: 8b 40 14 mov 0x14(%rax),%eax 2291aa: 89 45 cc mov %eax,-0x34(%rbp) 2291ad: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2291b1: e8 5a 07 00 00 call 229910 2291b6: 89 c1 mov %eax,%ecx 2291b8: 8b 45 cc mov -0x34(%rbp),%eax 2291bb: 29 c8 sub %ecx,%eax 2291bd: 31 c9 xor %ecx,%ecx 2291bf: 29 c1 sub %eax,%ecx 2291c1: 48 8b 45 f0 mov -0x10(%rbp),%rax 2291c5: 03 48 20 add 0x20(%rax),%ecx 2291c8: 89 48 20 mov %ecx,0x20(%rax) 2291cb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2291cf: 8b 40 38 mov 0x38(%rax),%eax 2291d2: 89 45 d4 mov %eax,-0x2c(%rbp) 2291d5: 48 8b 45 f0 mov -0x10(%rbp),%rax 2291d9: 8b 40 14 mov 0x14(%rax),%eax 2291dc: 89 45 d0 mov %eax,-0x30(%rbp) 2291df: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2291e3: e8 28 07 00 00 call 229910 2291e8: 8b 55 d0 mov -0x30(%rbp),%edx 2291eb: 89 c1 mov %eax,%ecx 2291ed: 8b 45 d4 mov -0x2c(%rbp),%eax 2291f0: 29 ca sub %ecx,%edx 2291f2: 31 c9 xor %ecx,%ecx 2291f4: 29 d1 sub %edx,%ecx 2291f6: 01 c8 add %ecx,%eax 2291f8: 89 45 d8 mov %eax,-0x28(%rbp) 2291fb: 8b 45 e8 mov -0x18(%rbp),%eax 2291fe: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229202: 2b 41 14 sub 0x14(%rcx),%eax 229205: 89 45 dc mov %eax,-0x24(%rbp) 229208: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22920c: e8 ff 06 00 00 call 229910 229211: 8b 4d dc mov -0x24(%rbp),%ecx 229214: 29 c1 sub %eax,%ecx 229216: 31 c0 xor %eax,%eax 229218: 39 c8 cmp %ecx,%eax 22921a: 0f 8e 0a 00 00 00 jle 22922a 229220: 31 c0 xor %eax,%eax 229222: 89 45 c8 mov %eax,-0x38(%rbp) 229225: e9 20 00 00 00 jmp 22924a 22922a: 8b 45 e8 mov -0x18(%rbp),%eax 22922d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229231: 2b 41 14 sub 0x14(%rcx),%eax 229234: 89 45 c4 mov %eax,-0x3c(%rbp) 229237: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22923b: e8 d0 06 00 00 call 229910 229240: 89 c1 mov %eax,%ecx 229242: 8b 45 c4 mov -0x3c(%rbp),%eax 229245: 29 c8 sub %ecx,%eax 229247: 89 45 c8 mov %eax,-0x38(%rbp) 22924a: 8b 45 d8 mov -0x28(%rbp),%eax 22924d: 8b 4d c8 mov -0x38(%rbp),%ecx 229250: 39 c8 cmp %ecx,%eax 229252: 0f 8e 5a 00 00 00 jle 2292b2 229258: 8b 45 e8 mov -0x18(%rbp),%eax 22925b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22925f: 2b 41 14 sub 0x14(%rcx),%eax 229262: 89 45 c0 mov %eax,-0x40(%rbp) 229265: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229269: e8 a2 06 00 00 call 229910 22926e: 8b 4d c0 mov -0x40(%rbp),%ecx 229271: 29 c1 sub %eax,%ecx 229273: 31 c0 xor %eax,%eax 229275: 39 c8 cmp %ecx,%eax 229277: 0f 8e 0a 00 00 00 jle 229287 22927d: 31 c0 xor %eax,%eax 22927f: 89 45 bc mov %eax,-0x44(%rbp) 229282: e9 20 00 00 00 jmp 2292a7 229287: 8b 45 e8 mov -0x18(%rbp),%eax 22928a: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22928e: 2b 41 14 sub 0x14(%rcx),%eax 229291: 89 45 b8 mov %eax,-0x48(%rbp) 229294: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229298: e8 73 06 00 00 call 229910 22929d: 89 c1 mov %eax,%ecx 22929f: 8b 45 b8 mov -0x48(%rbp),%eax 2292a2: 29 c8 sub %ecx,%eax 2292a4: 89 45 bc mov %eax,-0x44(%rbp) 2292a7: 8b 45 bc mov -0x44(%rbp),%eax 2292aa: 89 45 b4 mov %eax,-0x4c(%rbp) 2292ad: e9 7b 00 00 00 jmp 22932d 2292b2: 48 8b 45 f0 mov -0x10(%rbp),%rax 2292b6: 8b 40 38 mov 0x38(%rax),%eax 2292b9: 89 45 b0 mov %eax,-0x50(%rbp) 2292bc: 48 8b 45 f0 mov -0x10(%rbp),%rax 2292c0: 8b 40 14 mov 0x14(%rax),%eax 2292c3: 89 45 ac mov %eax,-0x54(%rbp) 2292c6: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2292ca: e8 41 06 00 00 call 229910 2292cf: 8b 55 ac mov -0x54(%rbp),%edx 2292d2: 89 c1 mov %eax,%ecx 2292d4: 8b 45 b0 mov -0x50(%rbp),%eax 2292d7: 29 ca sub %ecx,%edx 2292d9: 31 c9 xor %ecx,%ecx 2292db: 29 d1 sub %edx,%ecx 2292dd: 01 c8 add %ecx,%eax 2292df: 83 f8 00 cmp $0x0,%eax 2292e2: 0f 8e 35 00 00 00 jle 22931d 2292e8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2292ec: 8b 40 38 mov 0x38(%rax),%eax 2292ef: 89 45 a4 mov %eax,-0x5c(%rbp) 2292f2: 48 8b 45 f0 mov -0x10(%rbp),%rax 2292f6: 8b 40 14 mov 0x14(%rax),%eax 2292f9: 89 45 a0 mov %eax,-0x60(%rbp) 2292fc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229300: e8 0b 06 00 00 call 229910 229305: 8b 55 a0 mov -0x60(%rbp),%edx 229308: 89 c1 mov %eax,%ecx 22930a: 8b 45 a4 mov -0x5c(%rbp),%eax 22930d: 29 ca sub %ecx,%edx 22930f: 31 c9 xor %ecx,%ecx 229311: 29 d1 sub %edx,%ecx 229313: 01 c8 add %ecx,%eax 229315: 89 45 a8 mov %eax,-0x58(%rbp) 229318: e9 0a 00 00 00 jmp 229327 22931d: 31 c0 xor %eax,%eax 22931f: 89 45 a8 mov %eax,-0x58(%rbp) 229322: e9 00 00 00 00 jmp 229327 229327: 8b 45 a8 mov -0x58(%rbp),%eax 22932a: 89 45 b4 mov %eax,-0x4c(%rbp) 22932d: 8b 4d b4 mov -0x4c(%rbp),%ecx 229330: 48 8b 45 f0 mov -0x10(%rbp),%rax 229334: 89 48 38 mov %ecx,0x38(%rax) 229337: 48 8b 45 f0 mov -0x10(%rbp),%rax 22933b: c6 40 40 01 movb $0x1,0x40(%rax) break; 22933f: e9 5d 05 00 00 jmp 2298a1 PANEL_SCROLL(+(this->h - Panel_headerHeight(this))); 229344: e9 00 00 00 00 jmp 229349 229349: 48 8b 45 f0 mov -0x10(%rbp),%rax 22934d: 8b 40 14 mov 0x14(%rax),%eax 229350: 89 45 8c mov %eax,-0x74(%rbp) 229353: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229357: e8 b4 05 00 00 call 229910 22935c: 8b 4d 8c mov -0x74(%rbp),%ecx 22935f: 29 c1 sub %eax,%ecx 229361: 48 8b 45 f0 mov -0x10(%rbp),%rax 229365: 03 48 20 add 0x20(%rax),%ecx 229368: 89 48 20 mov %ecx,0x20(%rax) 22936b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22936f: 8b 40 38 mov 0x38(%rax),%eax 229372: 89 45 94 mov %eax,-0x6c(%rbp) 229375: 48 8b 45 f0 mov -0x10(%rbp),%rax 229379: 8b 40 14 mov 0x14(%rax),%eax 22937c: 89 45 90 mov %eax,-0x70(%rbp) 22937f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229383: e8 88 05 00 00 call 229910 229388: 8b 4d 90 mov -0x70(%rbp),%ecx 22938b: 89 c2 mov %eax,%edx 22938d: 8b 45 94 mov -0x6c(%rbp),%eax 229390: 29 d1 sub %edx,%ecx 229392: 01 c8 add %ecx,%eax 229394: 89 45 98 mov %eax,-0x68(%rbp) 229397: 8b 45 e8 mov -0x18(%rbp),%eax 22939a: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22939e: 2b 41 14 sub 0x14(%rcx),%eax 2293a1: 89 45 9c mov %eax,-0x64(%rbp) 2293a4: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2293a8: e8 63 05 00 00 call 229910 2293ad: 8b 4d 9c mov -0x64(%rbp),%ecx 2293b0: 29 c1 sub %eax,%ecx 2293b2: 31 c0 xor %eax,%eax 2293b4: 39 c8 cmp %ecx,%eax 2293b6: 0f 8e 0a 00 00 00 jle 2293c6 2293bc: 31 c0 xor %eax,%eax 2293be: 89 45 88 mov %eax,-0x78(%rbp) 2293c1: e9 20 00 00 00 jmp 2293e6 2293c6: 8b 45 e8 mov -0x18(%rbp),%eax 2293c9: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2293cd: 2b 41 14 sub 0x14(%rcx),%eax 2293d0: 89 45 84 mov %eax,-0x7c(%rbp) 2293d3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2293d7: e8 34 05 00 00 call 229910 2293dc: 89 c1 mov %eax,%ecx 2293de: 8b 45 84 mov -0x7c(%rbp),%eax 2293e1: 29 c8 sub %ecx,%eax 2293e3: 89 45 88 mov %eax,-0x78(%rbp) 2293e6: 8b 45 98 mov -0x68(%rbp),%eax 2293e9: 8b 4d 88 mov -0x78(%rbp),%ecx 2293ec: 39 c8 cmp %ecx,%eax 2293ee: 0f 8e 6c 00 00 00 jle 229460 2293f4: 8b 45 e8 mov -0x18(%rbp),%eax 2293f7: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2293fb: 2b 41 14 sub 0x14(%rcx),%eax 2293fe: 89 45 80 mov %eax,-0x80(%rbp) 229401: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229405: e8 06 05 00 00 call 229910 22940a: 8b 4d 80 mov -0x80(%rbp),%ecx 22940d: 29 c1 sub %eax,%ecx 22940f: 31 c0 xor %eax,%eax 229411: 39 c8 cmp %ecx,%eax 229413: 0f 8e 0d 00 00 00 jle 229426 229419: 31 c0 xor %eax,%eax 22941b: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) 229421: e9 29 00 00 00 jmp 22944f 229426: 8b 45 e8 mov -0x18(%rbp),%eax 229429: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22942d: 2b 41 14 sub 0x14(%rcx),%eax 229430: 89 85 78 ff ff ff mov %eax,-0x88(%rbp) 229436: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22943a: e8 d1 04 00 00 call 229910 22943f: 89 c1 mov %eax,%ecx 229441: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 229447: 29 c8 sub %ecx,%eax 229449: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) 22944f: 8b 85 7c ff ff ff mov -0x84(%rbp),%eax 229455: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 22945b: e9 97 00 00 00 jmp 2294f7 229460: 48 8b 45 f0 mov -0x10(%rbp),%rax 229464: 8b 40 38 mov 0x38(%rax),%eax 229467: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) 22946d: 48 8b 45 f0 mov -0x10(%rbp),%rax 229471: 8b 40 14 mov 0x14(%rax),%eax 229474: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 22947a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22947e: e8 8d 04 00 00 call 229910 229483: 8b 8d 6c ff ff ff mov -0x94(%rbp),%ecx 229489: 89 c2 mov %eax,%edx 22948b: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 229491: 29 d1 sub %edx,%ecx 229493: 01 c8 add %ecx,%eax 229495: 83 f8 00 cmp $0x0,%eax 229498: 0f 8e 40 00 00 00 jle 2294de 22949e: 48 8b 45 f0 mov -0x10(%rbp),%rax 2294a2: 8b 40 38 mov 0x38(%rax),%eax 2294a5: 89 85 64 ff ff ff mov %eax,-0x9c(%rbp) 2294ab: 48 8b 45 f0 mov -0x10(%rbp),%rax 2294af: 8b 40 14 mov 0x14(%rax),%eax 2294b2: 89 85 60 ff ff ff mov %eax,-0xa0(%rbp) 2294b8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2294bc: e8 4f 04 00 00 call 229910 2294c1: 8b 8d 60 ff ff ff mov -0xa0(%rbp),%ecx 2294c7: 89 c2 mov %eax,%edx 2294c9: 8b 85 64 ff ff ff mov -0x9c(%rbp),%eax 2294cf: 29 d1 sub %edx,%ecx 2294d1: 01 c8 add %ecx,%eax 2294d3: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) 2294d9: e9 0d 00 00 00 jmp 2294eb 2294de: 31 c0 xor %eax,%eax 2294e0: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) 2294e6: e9 00 00 00 00 jmp 2294eb 2294eb: 8b 85 68 ff ff ff mov -0x98(%rbp),%eax 2294f1: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 2294f7: 8b 8d 74 ff ff ff mov -0x8c(%rbp),%ecx 2294fd: 48 8b 45 f0 mov -0x10(%rbp),%rax 229501: 89 48 38 mov %ecx,0x38(%rax) 229504: 48 8b 45 f0 mov -0x10(%rbp),%rax 229508: c6 40 40 01 movb $0x1,0x40(%rax) break; 22950c: e9 90 03 00 00 jmp 2298a1 PANEL_SCROLL(-CRT_scrollWheelVAmount); 229511: e9 00 00 00 00 jmp 229516 229516: 31 c9 xor %ecx,%ecx 229518: 2b 0c 25 dc 0c 24 00 sub 0x240cdc,%ecx 22951f: 48 8b 45 f0 mov -0x10(%rbp),%rax 229523: 03 48 20 add 0x20(%rax),%ecx 229526: 89 48 20 mov %ecx,0x20(%rax) 229529: 48 8b 45 f0 mov -0x10(%rbp),%rax 22952d: 8b 40 38 mov 0x38(%rax),%eax 229530: 31 c9 xor %ecx,%ecx 229532: 2b 0c 25 dc 0c 24 00 sub 0x240cdc,%ecx 229539: 01 c8 add %ecx,%eax 22953b: 89 85 58 ff ff ff mov %eax,-0xa8(%rbp) 229541: 8b 45 e8 mov -0x18(%rbp),%eax 229544: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229548: 2b 41 14 sub 0x14(%rcx),%eax 22954b: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 229551: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229555: e8 b6 03 00 00 call 229910 22955a: 8b 8d 5c ff ff ff mov -0xa4(%rbp),%ecx 229560: 29 c1 sub %eax,%ecx 229562: 31 c0 xor %eax,%eax 229564: 39 c8 cmp %ecx,%eax 229566: 0f 8e 0d 00 00 00 jle 229579 22956c: 31 c0 xor %eax,%eax 22956e: 89 85 54 ff ff ff mov %eax,-0xac(%rbp) 229574: e9 29 00 00 00 jmp 2295a2 229579: 8b 45 e8 mov -0x18(%rbp),%eax 22957c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229580: 2b 41 14 sub 0x14(%rcx),%eax 229583: 89 85 50 ff ff ff mov %eax,-0xb0(%rbp) 229589: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22958d: e8 7e 03 00 00 call 229910 229592: 89 c1 mov %eax,%ecx 229594: 8b 85 50 ff ff ff mov -0xb0(%rbp),%eax 22959a: 29 c8 sub %ecx,%eax 22959c: 89 85 54 ff ff ff mov %eax,-0xac(%rbp) 2295a2: 8b 85 58 ff ff ff mov -0xa8(%rbp),%eax 2295a8: 8b 8d 54 ff ff ff mov -0xac(%rbp),%ecx 2295ae: 39 c8 cmp %ecx,%eax 2295b0: 0f 8e 72 00 00 00 jle 229628 2295b6: 8b 45 e8 mov -0x18(%rbp),%eax 2295b9: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2295bd: 2b 41 14 sub 0x14(%rcx),%eax 2295c0: 89 85 4c ff ff ff mov %eax,-0xb4(%rbp) 2295c6: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2295ca: e8 41 03 00 00 call 229910 2295cf: 8b 8d 4c ff ff ff mov -0xb4(%rbp),%ecx 2295d5: 29 c1 sub %eax,%ecx 2295d7: 31 c0 xor %eax,%eax 2295d9: 39 c8 cmp %ecx,%eax 2295db: 0f 8e 0d 00 00 00 jle 2295ee 2295e1: 31 c0 xor %eax,%eax 2295e3: 89 85 48 ff ff ff mov %eax,-0xb8(%rbp) 2295e9: e9 29 00 00 00 jmp 229617 2295ee: 8b 45 e8 mov -0x18(%rbp),%eax 2295f1: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2295f5: 2b 41 14 sub 0x14(%rcx),%eax 2295f8: 89 85 44 ff ff ff mov %eax,-0xbc(%rbp) 2295fe: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229602: e8 09 03 00 00 call 229910 229607: 89 c1 mov %eax,%ecx 229609: 8b 85 44 ff ff ff mov -0xbc(%rbp),%eax 22960f: 29 c8 sub %ecx,%eax 229611: 89 85 48 ff ff ff mov %eax,-0xb8(%rbp) 229617: 8b 85 48 ff ff ff mov -0xb8(%rbp),%eax 22961d: 89 85 40 ff ff ff mov %eax,-0xc0(%rbp) 229623: e9 51 00 00 00 jmp 229679 229628: 48 8b 45 f0 mov -0x10(%rbp),%rax 22962c: 8b 40 38 mov 0x38(%rax),%eax 22962f: 31 c9 xor %ecx,%ecx 229631: 2b 0c 25 dc 0c 24 00 sub 0x240cdc,%ecx 229638: 01 c8 add %ecx,%eax 22963a: 83 f8 00 cmp $0x0,%eax 22963d: 0f 8e 1d 00 00 00 jle 229660 229643: 48 8b 45 f0 mov -0x10(%rbp),%rax 229647: 8b 40 38 mov 0x38(%rax),%eax 22964a: 31 c9 xor %ecx,%ecx 22964c: 2b 0c 25 dc 0c 24 00 sub 0x240cdc,%ecx 229653: 01 c8 add %ecx,%eax 229655: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) 22965b: e9 0d 00 00 00 jmp 22966d 229660: 31 c0 xor %eax,%eax 229662: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) 229668: e9 00 00 00 00 jmp 22966d 22966d: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax 229673: 89 85 40 ff ff ff mov %eax,-0xc0(%rbp) 229679: 8b 8d 40 ff ff ff mov -0xc0(%rbp),%ecx 22967f: 48 8b 45 f0 mov -0x10(%rbp),%rax 229683: 89 48 38 mov %ecx,0x38(%rax) 229686: 48 8b 45 f0 mov -0x10(%rbp),%rax 22968a: c6 40 40 01 movb $0x1,0x40(%rax) break; 22968e: e9 0e 02 00 00 jmp 2298a1 PANEL_SCROLL(+CRT_scrollWheelVAmount); 229693: e9 00 00 00 00 jmp 229698 229698: 8b 0c 25 dc 0c 24 00 mov 0x240cdc,%ecx 22969f: 48 8b 45 f0 mov -0x10(%rbp),%rax 2296a3: 03 48 20 add 0x20(%rax),%ecx 2296a6: 89 48 20 mov %ecx,0x20(%rax) 2296a9: 48 8b 45 f0 mov -0x10(%rbp),%rax 2296ad: 8b 40 38 mov 0x38(%rax),%eax 2296b0: 03 04 25 dc 0c 24 00 add 0x240cdc,%eax 2296b7: 89 85 34 ff ff ff mov %eax,-0xcc(%rbp) 2296bd: 8b 45 e8 mov -0x18(%rbp),%eax 2296c0: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2296c4: 2b 41 14 sub 0x14(%rcx),%eax 2296c7: 89 85 38 ff ff ff mov %eax,-0xc8(%rbp) 2296cd: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2296d1: e8 3a 02 00 00 call 229910 2296d6: 8b 8d 38 ff ff ff mov -0xc8(%rbp),%ecx 2296dc: 29 c1 sub %eax,%ecx 2296de: 31 c0 xor %eax,%eax 2296e0: 39 c8 cmp %ecx,%eax 2296e2: 0f 8e 0d 00 00 00 jle 2296f5 2296e8: 31 c0 xor %eax,%eax 2296ea: 89 85 30 ff ff ff mov %eax,-0xd0(%rbp) 2296f0: e9 29 00 00 00 jmp 22971e 2296f5: 8b 45 e8 mov -0x18(%rbp),%eax 2296f8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2296fc: 2b 41 14 sub 0x14(%rcx),%eax 2296ff: 89 85 2c ff ff ff mov %eax,-0xd4(%rbp) 229705: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229709: e8 02 02 00 00 call 229910 22970e: 89 c1 mov %eax,%ecx 229710: 8b 85 2c ff ff ff mov -0xd4(%rbp),%eax 229716: 29 c8 sub %ecx,%eax 229718: 89 85 30 ff ff ff mov %eax,-0xd0(%rbp) 22971e: 8b 85 34 ff ff ff mov -0xcc(%rbp),%eax 229724: 8b 8d 30 ff ff ff mov -0xd0(%rbp),%ecx 22972a: 39 c8 cmp %ecx,%eax 22972c: 0f 8e 72 00 00 00 jle 2297a4 229732: 8b 45 e8 mov -0x18(%rbp),%eax 229735: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229739: 2b 41 14 sub 0x14(%rcx),%eax 22973c: 89 85 28 ff ff ff mov %eax,-0xd8(%rbp) 229742: 48 8b 7d f0 mov -0x10(%rbp),%rdi 229746: e8 c5 01 00 00 call 229910 22974b: 8b 8d 28 ff ff ff mov -0xd8(%rbp),%ecx 229751: 29 c1 sub %eax,%ecx 229753: 31 c0 xor %eax,%eax 229755: 39 c8 cmp %ecx,%eax 229757: 0f 8e 0d 00 00 00 jle 22976a 22975d: 31 c0 xor %eax,%eax 22975f: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) 229765: e9 29 00 00 00 jmp 229793 22976a: 8b 45 e8 mov -0x18(%rbp),%eax 22976d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229771: 2b 41 14 sub 0x14(%rcx),%eax 229774: 89 85 20 ff ff ff mov %eax,-0xe0(%rbp) 22977a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22977e: e8 8d 01 00 00 call 229910 229783: 89 c1 mov %eax,%ecx 229785: 8b 85 20 ff ff ff mov -0xe0(%rbp),%eax 22978b: 29 c8 sub %ecx,%eax 22978d: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) 229793: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 229799: 89 85 1c ff ff ff mov %eax,-0xe4(%rbp) 22979f: e9 49 00 00 00 jmp 2297ed 2297a4: 48 8b 45 f0 mov -0x10(%rbp),%rax 2297a8: 8b 40 38 mov 0x38(%rax),%eax 2297ab: 03 04 25 dc 0c 24 00 add 0x240cdc,%eax 2297b2: 83 f8 00 cmp $0x0,%eax 2297b5: 0f 8e 19 00 00 00 jle 2297d4 2297bb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2297bf: 8b 40 38 mov 0x38(%rax),%eax 2297c2: 03 04 25 dc 0c 24 00 add 0x240cdc,%eax 2297c9: 89 85 18 ff ff ff mov %eax,-0xe8(%rbp) 2297cf: e9 0d 00 00 00 jmp 2297e1 2297d4: 31 c0 xor %eax,%eax 2297d6: 89 85 18 ff ff ff mov %eax,-0xe8(%rbp) 2297dc: e9 00 00 00 00 jmp 2297e1 2297e1: 8b 85 18 ff ff ff mov -0xe8(%rbp),%eax 2297e7: 89 85 1c ff ff ff mov %eax,-0xe4(%rbp) 2297ed: 8b 8d 1c ff ff ff mov -0xe4(%rbp),%ecx 2297f3: 48 8b 45 f0 mov -0x10(%rbp),%rax 2297f7: 89 48 38 mov %ecx,0x38(%rax) 2297fa: 48 8b 45 f0 mov -0x10(%rbp),%rax 2297fe: c6 40 40 01 movb $0x1,0x40(%rax) break; 229802: e9 9a 00 00 00 jmp 2298a1 this->selected = 0; 229807: 48 8b 45 f0 mov -0x10(%rbp),%rax 22980b: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) break; 229812: e9 8a 00 00 00 jmp 2298a1 this->selected = size - 1; 229817: 8b 4d e8 mov -0x18(%rbp),%ecx 22981a: 83 e9 01 sub $0x1,%ecx 22981d: 48 8b 45 f0 mov -0x10(%rbp),%rax 229821: 89 48 20 mov %ecx,0x20(%rax) break; 229824: e9 78 00 00 00 jmp 2298a1 this->scrollH = 0; 229829: 48 8b 45 f0 mov -0x10(%rbp),%rax 22982d: c7 40 3c 00 00 00 00 movl $0x0,0x3c(%rax) this->needsRedraw = true; 229834: 48 8b 45 f0 mov -0x10(%rbp),%rax 229838: c6 40 40 01 movb $0x1,0x40(%rax) break; 22983c: e9 60 00 00 00 jmp 2298a1 this->scrollH = MAXIMUM(this->selectedLen - this->w, 0); 229841: 48 8b 45 f0 mov -0x10(%rbp),%rax 229845: 8b 40 28 mov 0x28(%rax),%eax 229848: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22984c: 2b 41 10 sub 0x10(%rcx),%eax 22984f: 83 f8 00 cmp $0x0,%eax 229852: 0f 8e 19 00 00 00 jle 229871 229858: 48 8b 45 f0 mov -0x10(%rbp),%rax 22985c: 8b 40 28 mov 0x28(%rax),%eax 22985f: 48 8b 4d f0 mov -0x10(%rbp),%rcx 229863: 2b 41 10 sub 0x10(%rcx),%eax 229866: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) 22986c: e9 0d 00 00 00 jmp 22987e 229871: 31 c0 xor %eax,%eax 229873: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) 229879: e9 00 00 00 00 jmp 22987e 22987e: 8b 8d 14 ff ff ff mov -0xec(%rbp),%ecx 229884: 48 8b 45 f0 mov -0x10(%rbp),%rax 229888: 89 48 3c mov %ecx,0x3c(%rax) this->needsRedraw = true; 22988b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22988f: c6 40 40 01 movb $0x1,0x40(%rax) break; 229893: e9 09 00 00 00 jmp 2298a1 return false; 229898: c6 45 ff 00 movb $0x0,-0x1(%rbp) 22989c: e9 5e 00 00 00 jmp 2298ff if (this->selected < 0 || size == 0) { 2298a1: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298a5: 83 78 20 00 cmpl $0x0,0x20(%rax) 2298a9: 0f 8c 0a 00 00 00 jl 2298b9 2298af: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) 2298b3: 0f 85 18 00 00 00 jne 2298d1 this->selected = 0; 2298b9: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298bd: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) this->needsRedraw = true; 2298c4: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298c8: c6 40 40 01 movb $0x1,0x40(%rax) } else if (this->selected >= size) { 2298cc: e9 2a 00 00 00 jmp 2298fb 2298d1: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298d5: 8b 40 20 mov 0x20(%rax),%eax 2298d8: 3b 45 e8 cmp -0x18(%rbp),%eax 2298db: 0f 8c 15 00 00 00 jl 2298f6 this->selected = size - 1; 2298e1: 8b 4d e8 mov -0x18(%rbp),%ecx 2298e4: 83 e9 01 sub $0x1,%ecx 2298e7: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298eb: 89 48 20 mov %ecx,0x20(%rax) this->needsRedraw = true; 2298ee: 48 8b 45 f0 mov -0x10(%rbp),%rax 2298f2: c6 40 40 01 movb $0x1,0x40(%rax) 2298f6: e9 00 00 00 00 jmp 2298fb return true; 2298fb: c6 45 ff 01 movb $0x1,-0x1(%rbp) } 2298ff: 8a 45 ff mov -0x1(%rbp),%al 229902: 24 01 and $0x1,%al 229904: 0f b6 c0 movzbl %al,%eax 229907: 48 81 c4 f0 00 00 00 add $0xf0,%rsp 22990e: 5d pop %rbp 22990f: c3 ret 0000000000229910 : static int Panel_headerHeight(const Panel* this) { 229910: 55 push %rbp 229911: 48 89 e5 mov %rsp,%rbp 229914: 48 89 7d f8 mov %rdi,-0x8(%rbp) return RichString_sizeVal(this->header) > 0 ? 1 : 0; 229918: 48 8b 45 f8 mov -0x8(%rbp),%rax 22991c: 8b 50 58 mov 0x58(%rax),%edx 22991f: 31 c0 xor %eax,%eax 229921: b9 01 00 00 00 mov $0x1,%ecx 229926: 83 fa 00 cmp $0x0,%edx 229929: 0f 4f c1 cmovg %ecx,%eax 22992c: 5d pop %rbp 22992d: c3 ret 22992e: 66 90 xchg %ax,%ax 0000000000229930 <__sbistype>: { 229930: 55 push %rbp 229931: 48 89 e5 mov %rsp,%rbp 229934: 48 83 ec 10 sub $0x10,%rsp 229938: 89 7d fc mov %edi,-0x4(%rbp) 22993b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 22993f: 8b 7d fc mov -0x4(%rbp),%edi 229942: 48 8b 75 f0 mov -0x10(%rbp),%rsi 229946: e8 15 00 00 00 call 229960 <__sbmaskrune> 22994b: 83 f8 00 cmp $0x0,%eax 22994e: 0f 95 c0 setne %al 229951: 34 ff xor $0xff,%al 229953: 34 ff xor $0xff,%al 229955: 24 01 and $0x1,%al 229957: 0f b6 c0 movzbl %al,%eax 22995a: 48 83 c4 10 add $0x10,%rsp 22995e: 5d pop %rbp 22995f: c3 ret 0000000000229960 <__sbmaskrune>: { 229960: 55 push %rbp 229961: 48 89 e5 mov %rsp,%rbp 229964: 48 83 ec 20 sub $0x20,%rsp 229968: 89 7d fc mov %edi,-0x4(%rbp) 22996b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 22996f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 229973: 0f 8c 10 00 00 00 jl 229989 <__sbmaskrune+0x29> 229979: 8b 45 fc mov -0x4(%rbp),%eax 22997c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 229983: 0f 8c 0b 00 00 00 jl 229994 <__sbmaskrune+0x34> 229989: 31 c0 xor %eax,%eax 22998b: 48 89 45 e8 mov %rax,-0x18(%rbp) 22998f: e9 16 00 00 00 jmp 2299aa <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 229994: e8 27 00 00 00 call 2299c0 <__getCurrentRuneLocale> 229999: 48 63 4d fc movslq -0x4(%rbp),%rcx 22999d: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 2299a2: 48 23 45 f0 and -0x10(%rbp),%rax 2299a6: 48 89 45 e8 mov %rax,-0x18(%rbp) 2299aa: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 2299ae: 48 83 c4 20 add $0x20,%rsp 2299b2: 5d pop %rbp 2299b3: c3 ret 2299b4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2299be: 66 90 xchg %ax,%ax 00000000002299c0 <__getCurrentRuneLocale>: { 2299c0: 55 push %rbp 2299c1: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 2299c4: 48 8b 0d e5 62 01 00 mov 0x162e5(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2299cb: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 2299d4: 48 8b 04 08 mov (%rax,%rcx,1),%rax 2299d8: 48 83 f8 00 cmp $0x0,%rax 2299dc: 0f 84 1d 00 00 00 je 2299ff <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 2299e2: 48 8b 0d c7 62 01 00 mov 0x162c7(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2299e9: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 2299f2: 48 8b 04 08 mov (%rax,%rcx,1),%rax 2299f6: 48 89 45 f8 mov %rax,-0x8(%rbp) 2299fa: e9 0c 00 00 00 jmp 229a0b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 2299ff: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 229a07: 48 89 45 f8 mov %rax,-0x8(%rbp) } 229a0b: 48 8b 45 f8 mov -0x8(%rbp),%rax 229a0f: 5d pop %rbp 229a10: c3 ret 229a11: cc int3 229a12: cc int3 229a13: cc int3 229a14: cc int3 229a15: cc int3 229a16: cc int3 229a17: cc int3 229a18: cc int3 229a19: cc int3 229a1a: cc int3 229a1b: cc int3 229a1c: cc int3 229a1d: cc int3 229a1e: cc int3 229a1f: cc int3 0000000000229a20 : static uid_t Process_getuid = (uid_t)-1; int Process_pidDigits = PROCESS_MIN_PID_DIGITS; int Process_uidDigits = PROCESS_MIN_UID_DIGITS; void Process_setupColumnWidths() { 229a20: 55 push %rbp 229a21: 48 89 e5 mov %rsp,%rbp 229a24: 48 83 ec 10 sub $0x10,%rsp int maxPid = Platform_getMaxPid(); 229a28: e8 63 00 01 00 call 239a90 229a2d: 89 45 fc mov %eax,-0x4(%rbp) if (maxPid == -1) 229a30: 83 7d fc ff cmpl $0xffffffff,-0x4(%rbp) 229a34: 0f 85 05 00 00 00 jne 229a3f return; 229a3a: e9 54 00 00 00 jmp 229a93 if (maxPid < (int)pow(10, PROCESS_MIN_PID_DIGITS)) { 229a3f: 8b 45 fc mov -0x4(%rbp),%eax 229a42: 89 45 f8 mov %eax,-0x8(%rbp) 229a45: f2 0f 10 05 c3 d8 fd ff movsd -0x2273d(%rip),%xmm0 # 207310 229a4d: f2 0f 10 0d d3 d8 fd ff movsd -0x2272d(%rip),%xmm1 # 207328 229a55: e8 b6 4c 01 00 call 23e710 229a5a: 8b 45 f8 mov -0x8(%rbp),%eax 229a5d: f2 0f 2c c8 cvttsd2si %xmm0,%ecx 229a61: 39 c8 cmp %ecx,%eax 229a63: 0f 8d 10 00 00 00 jge 229a79 Process_pidDigits = PROCESS_MIN_PID_DIGITS; 229a69: c7 04 25 58 18 24 00 05 00 00 00 movl $0x5,0x241858 return; 229a74: e9 1a 00 00 00 jmp 229a93 } Process_pidDigits = ceil(log10(maxPid)); 229a79: f2 0f 2a 45 fc cvtsi2sdl -0x4(%rbp),%xmm0 229a7e: e8 ad 4c 01 00 call 23e730 229a83: e8 a8 4b 01 00 call 23e630 229a88: f2 0f 2c c0 cvttsd2si %xmm0,%eax 229a8c: 89 04 25 58 18 24 00 mov %eax,0x241858 assert(Process_pidDigits <= PROCESS_MAX_PID_DIGITS); } 229a93: 48 83 c4 10 add $0x10,%rsp 229a97: 5d pop %rbp 229a98: c3 ret 229a99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000229aa0 : void Process_setUidColumnWidth(uid_t maxUid) { 229aa0: 55 push %rbp 229aa1: 48 89 e5 mov %rsp,%rbp 229aa4: 48 83 ec 10 sub $0x10,%rsp 229aa8: 89 7d fc mov %edi,-0x4(%rbp) if (maxUid < (uid_t)pow(10, PROCESS_MIN_UID_DIGITS)) { 229aab: 8b 45 fc mov -0x4(%rbp),%eax 229aae: 89 45 f8 mov %eax,-0x8(%rbp) 229ab1: f2 0f 10 05 57 d8 fd ff movsd -0x227a9(%rip),%xmm0 # 207310 229ab9: f2 0f 10 0d 67 d8 fd ff movsd -0x22799(%rip),%xmm1 # 207328 229ac1: e8 4a 4c 01 00 call 23e710 229ac6: 8b 45 f8 mov -0x8(%rbp),%eax 229ac9: f2 48 0f 2c c8 cvttsd2si %xmm0,%rcx 229ace: 39 c8 cmp %ecx,%eax 229ad0: 0f 83 10 00 00 00 jae 229ae6 Process_uidDigits = PROCESS_MIN_UID_DIGITS; 229ad6: c7 04 25 5c 18 24 00 05 00 00 00 movl $0x5,0x24185c return; 229ae1: e9 1d 00 00 00 jmp 229b03 } Process_uidDigits = ceil(log10(maxUid)); 229ae6: 8b 45 fc mov -0x4(%rbp),%eax 229ae9: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 229aee: e8 3d 4c 01 00 call 23e730 229af3: e8 38 4b 01 00 call 23e630 229af8: f2 0f 2c c0 cvttsd2si %xmm0,%eax 229afc: 89 04 25 5c 18 24 00 mov %eax,0x24185c assert(Process_uidDigits <= PROCESS_MAX_UID_DIGITS); } 229b03: 48 83 c4 10 add $0x10,%rsp 229b07: 5d pop %rbp 229b08: c3 ret 229b09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000229b10 : void Process_printBytes(RichString* str, unsigned long long number, bool coloring) { 229b10: 55 push %rbp 229b11: 48 89 e5 mov %rsp,%rbp 229b14: 48 83 ec 60 sub $0x60,%rsp 229b18: 88 d0 mov %dl,%al 229b1a: 48 8b 0d 0f 8d 01 00 mov 0x18d0f(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 229b21: 48 89 4d f8 mov %rcx,-0x8(%rbp) 229b25: 48 89 7d d8 mov %rdi,-0x28(%rbp) 229b29: 48 89 75 d0 mov %rsi,-0x30(%rbp) 229b2d: 24 01 and $0x1,%al 229b2f: 88 45 cf mov %al,-0x31(%rbp) char buffer[16]; int len; int largeNumberColor = coloring ? CRT_colors[LARGE_NUMBER] : CRT_colors[PROCESS]; 229b32: f6 45 cf 01 testb $0x1,-0x31(%rbp) 229b36: 0f 84 13 00 00 00 je 229b4f 229b3c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229b44: 8b 40 30 mov 0x30(%rax),%eax 229b47: 89 45 b0 mov %eax,-0x50(%rbp) 229b4a: e9 0e 00 00 00 jmp 229b5d 229b4f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229b57: 8b 40 70 mov 0x70(%rax),%eax 229b5a: 89 45 b0 mov %eax,-0x50(%rbp) 229b5d: 8b 45 b0 mov -0x50(%rbp),%eax 229b60: 89 45 c4 mov %eax,-0x3c(%rbp) int processMegabytesColor = coloring ? CRT_colors[PROCESS_MEGABYTES] : CRT_colors[PROCESS]; 229b63: f6 45 cf 01 testb $0x1,-0x31(%rbp) 229b67: 0f 84 13 00 00 00 je 229b80 229b6d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229b75: 8b 40 7c mov 0x7c(%rax),%eax 229b78: 89 45 ac mov %eax,-0x54(%rbp) 229b7b: e9 0e 00 00 00 jmp 229b8e 229b80: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229b88: 8b 40 70 mov 0x70(%rax),%eax 229b8b: 89 45 ac mov %eax,-0x54(%rbp) 229b8e: 8b 45 ac mov -0x54(%rbp),%eax 229b91: 89 45 c0 mov %eax,-0x40(%rbp) int processGigabytesColor = coloring ? CRT_colors[PROCESS_GIGABYTES] : CRT_colors[PROCESS]; 229b94: f6 45 cf 01 testb $0x1,-0x31(%rbp) 229b98: 0f 84 16 00 00 00 je 229bb4 229b9e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229ba6: 8b 80 80 00 00 00 mov 0x80(%rax),%eax 229bac: 89 45 a8 mov %eax,-0x58(%rbp) 229baf: e9 0e 00 00 00 jmp 229bc2 229bb4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229bbc: 8b 40 70 mov 0x70(%rax),%eax 229bbf: 89 45 a8 mov %eax,-0x58(%rbp) 229bc2: 8b 45 a8 mov -0x58(%rbp),%eax 229bc5: 89 45 bc mov %eax,-0x44(%rbp) int shadowColor = coloring ? CRT_colors[PROCESS_SHADOW] : CRT_colors[PROCESS]; 229bc8: f6 45 cf 01 testb $0x1,-0x31(%rbp) 229bcc: 0f 84 13 00 00 00 je 229be5 229bd2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229bda: 8b 40 74 mov 0x74(%rax),%eax 229bdd: 89 45 a4 mov %eax,-0x5c(%rbp) 229be0: e9 0e 00 00 00 jmp 229bf3 229be5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229bed: 8b 40 70 mov 0x70(%rax),%eax 229bf0: 89 45 a4 mov %eax,-0x5c(%rbp) 229bf3: 8b 45 a4 mov -0x5c(%rbp),%eax 229bf6: 89 45 b8 mov %eax,-0x48(%rbp) int processColor = CRT_colors[PROCESS]; 229bf9: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 229c01: 8b 40 70 mov 0x70(%rax),%eax 229c04: 89 45 b4 mov %eax,-0x4c(%rbp) if (number == ULLONG_MAX) { 229c07: 48 83 7d d0 ff cmpq $0xffffffffffffffff,-0x30(%rbp) 229c0c: 0f 85 1b 00 00 00 jne 229c2d //Invalid number RichString_appendAscii(str, shadowColor, " N/A "); 229c12: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229c16: 8b 75 b8 mov -0x48(%rbp),%esi 229c19: 48 ba 5c 34 20 00 00 00 00 00 movabs $0x20345c,%rdx 229c23: e8 58 89 00 00 call 232580 return; 229c28: e9 53 05 00 00 jmp 22a180 } number /= ONE_K; 229c2d: 48 8b 45 d0 mov -0x30(%rbp),%rax 229c31: 48 c1 e8 0a shr $0xa,%rax 229c35: 48 89 45 d0 mov %rax,-0x30(%rbp) if (number < 1000) { 229c39: 48 81 7d d0 e8 03 00 00 cmpq $0x3e8,-0x30(%rbp) 229c41: 0f 83 39 00 00 00 jae 229c80 //Plain number, no markings len = xSnprintf(buffer, sizeof(buffer), "%5llu ", number); 229c47: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229c4b: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229c4f: be 10 00 00 00 mov $0x10,%esi 229c54: 48 ba 64 69 20 00 00 00 00 00 movabs $0x206964,%rdx 229c5e: b0 00 mov $0x0,%al 229c60: e8 8b f8 00 00 call 2394f0 229c65: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processColor, buffer, len); 229c68: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229c6c: 8b 75 b4 mov -0x4c(%rbp),%esi 229c6f: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229c73: 8b 4d c8 mov -0x38(%rbp),%ecx 229c76: e8 a5 8a 00 00 call 232720 } else if (number < 100000) { 229c7b: e9 00 05 00 00 jmp 22a180 229c80: 48 81 7d d0 a0 86 01 00 cmpq $0x186a0,-0x30(%rbp) 229c88: 0f 83 8c 00 00 00 jae 229d1a //2 digit MB, 3 digit KB len = xSnprintf(buffer, sizeof(buffer), "%2llu", number / 1000); 229c8e: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229c92: 48 8b 45 d0 mov -0x30(%rbp),%rax 229c96: b9 e8 03 00 00 mov $0x3e8,%ecx 229c9b: 31 d2 xor %edx,%edx 229c9d: 48 f7 f1 div %rcx 229ca0: 48 89 c1 mov %rax,%rcx 229ca3: be 10 00 00 00 mov $0x10,%esi 229ca8: 48 ba bd 37 20 00 00 00 00 00 movabs $0x2037bd,%rdx 229cb2: b0 00 mov $0x0,%al 229cb4: e8 37 f8 00 00 call 2394f0 229cb9: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processMegabytesColor, buffer, len); 229cbc: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229cc0: 8b 75 c0 mov -0x40(%rbp),%esi 229cc3: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229cc7: 8b 4d c8 mov -0x38(%rbp),%ecx 229cca: e8 51 8a 00 00 call 232720 number %= 1000; 229ccf: 48 8b 45 d0 mov -0x30(%rbp),%rax 229cd3: b9 e8 03 00 00 mov $0x3e8,%ecx 229cd8: 31 d2 xor %edx,%edx 229cda: 48 f7 f1 div %rcx 229cdd: 48 89 55 d0 mov %rdx,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%03llu ", number); 229ce1: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229ce5: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229ce9: be 10 00 00 00 mov $0x10,%esi 229cee: 48 ba c3 37 20 00 00 00 00 00 movabs $0x2037c3,%rdx 229cf8: b0 00 mov $0x0,%al 229cfa: e8 f1 f7 00 00 call 2394f0 229cff: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processColor, buffer, len); 229d02: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229d06: 8b 75 b4 mov -0x4c(%rbp),%esi 229d09: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229d0d: 8b 4d c8 mov -0x38(%rbp),%ecx 229d10: e8 0b 8a 00 00 call 232720 } else if (number < 1000 * ONE_K) { 229d15: e9 61 04 00 00 jmp 22a17b 229d1a: 48 81 7d d0 00 a0 0f 00 cmpq $0xfa000,-0x30(%rbp) 229d22: 0f 83 45 00 00 00 jae 229d6d //3 digit MB number /= ONE_K; 229d28: 48 8b 45 d0 mov -0x30(%rbp),%rax 229d2c: 48 c1 e8 0a shr $0xa,%rax 229d30: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%4lluM ", number); 229d34: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229d38: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229d3c: be 10 00 00 00 mov $0x10,%esi 229d41: 48 ba ab 43 20 00 00 00 00 00 movabs $0x2043ab,%rdx 229d4b: b0 00 mov $0x0,%al 229d4d: e8 9e f7 00 00 call 2394f0 229d52: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processMegabytesColor, buffer, len); 229d55: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229d59: 8b 75 c0 mov -0x40(%rbp),%esi 229d5c: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229d60: 8b 4d c8 mov -0x38(%rbp),%ecx 229d63: e8 b8 89 00 00 call 232720 } else if (number < 10000 * ONE_K) { 229d68: e9 09 04 00 00 jmp 22a176 229d6d: 48 81 7d d0 00 40 9c 00 cmpq $0x9c4000,-0x30(%rbp) 229d75: 0f 83 98 00 00 00 jae 229e13 //1 digit GB, 3 digit MB number /= ONE_K; 229d7b: 48 8b 45 d0 mov -0x30(%rbp),%rax 229d7f: 48 c1 e8 0a shr $0xa,%rax 229d83: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%1llu", number / 1000); 229d87: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229d8b: 48 8b 45 d0 mov -0x30(%rbp),%rax 229d8f: b9 e8 03 00 00 mov $0x3e8,%ecx 229d94: 31 d2 xor %edx,%edx 229d96: 48 f7 f1 div %rcx 229d99: 48 89 c1 mov %rax,%rcx 229d9c: be 10 00 00 00 mov $0x10,%esi 229da1: 48 ba 3c 32 20 00 00 00 00 00 movabs $0x20323c,%rdx 229dab: b0 00 mov $0x0,%al 229dad: e8 3e f7 00 00 call 2394f0 229db2: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processGigabytesColor, buffer, len); 229db5: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229db9: 8b 75 bc mov -0x44(%rbp),%esi 229dbc: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229dc0: 8b 4d c8 mov -0x38(%rbp),%ecx 229dc3: e8 58 89 00 00 call 232720 number %= 1000; 229dc8: 48 8b 45 d0 mov -0x30(%rbp),%rax 229dcc: b9 e8 03 00 00 mov $0x3e8,%ecx 229dd1: 31 d2 xor %edx,%edx 229dd3: 48 f7 f1 div %rcx 229dd6: 48 89 55 d0 mov %rdx,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%03lluM ", number); 229dda: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229dde: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229de2: be 10 00 00 00 mov $0x10,%esi 229de7: 48 ba 56 59 20 00 00 00 00 00 movabs $0x205956,%rdx 229df1: b0 00 mov $0x0,%al 229df3: e8 f8 f6 00 00 call 2394f0 229df8: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processMegabytesColor, buffer, len); 229dfb: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229dff: 8b 75 c0 mov -0x40(%rbp),%esi 229e02: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229e06: 8b 4d c8 mov -0x38(%rbp),%ecx 229e09: e8 12 89 00 00 call 232720 } else if (number < 100000 * ONE_K) { 229e0e: e9 5e 03 00 00 jmp 22a171 229e13: 48 81 7d d0 00 80 1a 06 cmpq $0x61a8000,-0x30(%rbp) 229e1b: 0f 83 b4 00 00 00 jae 229ed5 //2 digit GB, 1 digit MB number /= 100 * ONE_K; 229e21: 48 8b 45 d0 mov -0x30(%rbp),%rax 229e25: b9 00 90 01 00 mov $0x19000,%ecx 229e2a: 31 d2 xor %edx,%edx 229e2c: 48 f7 f1 div %rcx 229e2f: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%2llu", number / 10); 229e33: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229e37: 48 8b 45 d0 mov -0x30(%rbp),%rax 229e3b: b9 0a 00 00 00 mov $0xa,%ecx 229e40: 31 d2 xor %edx,%edx 229e42: 48 f7 f1 div %rcx 229e45: 48 89 c1 mov %rax,%rcx 229e48: be 10 00 00 00 mov $0x10,%esi 229e4d: 48 ba bd 37 20 00 00 00 00 00 movabs $0x2037bd,%rdx 229e57: b0 00 mov $0x0,%al 229e59: e8 92 f6 00 00 call 2394f0 229e5e: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processGigabytesColor, buffer, len); 229e61: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229e65: 8b 75 bc mov -0x44(%rbp),%esi 229e68: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229e6c: 8b 4d c8 mov -0x38(%rbp),%ecx 229e6f: e8 ac 88 00 00 call 232720 number %= 10; 229e74: 48 8b 45 d0 mov -0x30(%rbp),%rax 229e78: b9 0a 00 00 00 mov $0xa,%ecx 229e7d: 31 d2 xor %edx,%edx 229e7f: 48 f7 f1 div %rcx 229e82: 48 89 55 d0 mov %rdx,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), ".%1llu", number); 229e86: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229e8a: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229e8e: be 10 00 00 00 mov $0x10,%esi 229e93: 48 ba 17 64 20 00 00 00 00 00 movabs $0x206417,%rdx 229e9d: b0 00 mov $0x0,%al 229e9f: e8 4c f6 00 00 call 2394f0 229ea4: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processMegabytesColor, buffer, len); 229ea7: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229eab: 8b 75 c0 mov -0x40(%rbp),%esi 229eae: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229eb2: 8b 4d c8 mov -0x38(%rbp),%ecx 229eb5: e8 66 88 00 00 call 232720 RichString_appendAscii(str, processGigabytesColor, "G "); 229eba: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229ebe: 8b 75 bc mov -0x44(%rbp),%esi 229ec1: 48 ba a8 6b 20 00 00 00 00 00 movabs $0x206ba8,%rdx 229ecb: e8 b0 86 00 00 call 232580 } else if (number < 1000 * ONE_M) { 229ed0: e9 97 02 00 00 jmp 22a16c 229ed5: 48 81 7d d0 00 00 80 3e cmpq $0x3e800000,-0x30(%rbp) 229edd: 0f 83 45 00 00 00 jae 229f28 //3 digit GB number /= ONE_M; 229ee3: 48 8b 45 d0 mov -0x30(%rbp),%rax 229ee7: 48 c1 e8 14 shr $0x14,%rax 229eeb: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%4lluG ", number); 229eef: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229ef3: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229ef7: be 10 00 00 00 mov $0x10,%esi 229efc: 48 ba c5 4d 20 00 00 00 00 00 movabs $0x204dc5,%rdx 229f06: b0 00 mov $0x0,%al 229f08: e8 e3 f5 00 00 call 2394f0 229f0d: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processGigabytesColor, buffer, len); 229f10: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229f14: 8b 75 bc mov -0x44(%rbp),%esi 229f17: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229f1b: 8b 4d c8 mov -0x38(%rbp),%ecx 229f1e: e8 fd 87 00 00 call 232720 } else if (number < 10000ULL * ONE_M) { 229f23: e9 3f 02 00 00 jmp 22a167 229f28: 48 b8 00 00 00 71 02 00 00 00 movabs $0x271000000,%rax 229f32: 48 39 45 d0 cmp %rax,-0x30(%rbp) 229f36: 0f 83 98 00 00 00 jae 229fd4 //1 digit TB, 3 digit GB number /= ONE_M; 229f3c: 48 8b 45 d0 mov -0x30(%rbp),%rax 229f40: 48 c1 e8 14 shr $0x14,%rax 229f44: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%1llu", number / 1000); 229f48: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229f4c: 48 8b 45 d0 mov -0x30(%rbp),%rax 229f50: b9 e8 03 00 00 mov $0x3e8,%ecx 229f55: 31 d2 xor %edx,%edx 229f57: 48 f7 f1 div %rcx 229f5a: 48 89 c1 mov %rax,%rcx 229f5d: be 10 00 00 00 mov $0x10,%esi 229f62: 48 ba 3c 32 20 00 00 00 00 00 movabs $0x20323c,%rdx 229f6c: b0 00 mov $0x0,%al 229f6e: e8 7d f5 00 00 call 2394f0 229f73: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 229f76: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229f7a: 8b 75 c4 mov -0x3c(%rbp),%esi 229f7d: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229f81: 8b 4d c8 mov -0x38(%rbp),%ecx 229f84: e8 97 87 00 00 call 232720 number %= 1000; 229f89: 48 8b 45 d0 mov -0x30(%rbp),%rax 229f8d: b9 e8 03 00 00 mov $0x3e8,%ecx 229f92: 31 d2 xor %edx,%edx 229f94: 48 f7 f1 div %rcx 229f97: 48 89 55 d0 mov %rdx,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%03lluG ", number); 229f9b: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229f9f: 48 8b 4d d0 mov -0x30(%rbp),%rcx 229fa3: be 10 00 00 00 mov $0x10,%esi 229fa8: 48 ba 7b 55 20 00 00 00 00 00 movabs $0x20557b,%rdx 229fb2: b0 00 mov $0x0,%al 229fb4: e8 37 f5 00 00 call 2394f0 229fb9: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processGigabytesColor, buffer, len); 229fbc: 48 8b 7d d8 mov -0x28(%rbp),%rdi 229fc0: 8b 75 bc mov -0x44(%rbp),%esi 229fc3: 48 8d 55 e0 lea -0x20(%rbp),%rdx 229fc7: 8b 4d c8 mov -0x38(%rbp),%ecx 229fca: e8 51 87 00 00 call 232720 } else if (number < 100000 * ONE_M) { 229fcf: e9 8e 01 00 00 jmp 22a162 229fd4: 48 b8 00 00 00 6a 18 00 00 00 movabs $0x186a000000,%rax 229fde: 48 39 45 d0 cmp %rax,-0x30(%rbp) 229fe2: 0f 83 b4 00 00 00 jae 22a09c //2 digit TB, 1 digit GB number /= 100 * ONE_M; 229fe8: 48 8b 45 d0 mov -0x30(%rbp),%rax 229fec: b9 00 00 40 06 mov $0x6400000,%ecx 229ff1: 31 d2 xor %edx,%edx 229ff3: 48 f7 f1 div %rcx 229ff6: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%2llu", number / 10); 229ffa: 48 8d 7d e0 lea -0x20(%rbp),%rdi 229ffe: 48 8b 45 d0 mov -0x30(%rbp),%rax 22a002: b9 0a 00 00 00 mov $0xa,%ecx 22a007: 31 d2 xor %edx,%edx 22a009: 48 f7 f1 div %rcx 22a00c: 48 89 c1 mov %rax,%rcx 22a00f: be 10 00 00 00 mov $0x10,%esi 22a014: 48 ba bd 37 20 00 00 00 00 00 movabs $0x2037bd,%rdx 22a01e: b0 00 mov $0x0,%al 22a020: e8 cb f4 00 00 call 2394f0 22a025: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22a028: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22a02c: 8b 75 c4 mov -0x3c(%rbp),%esi 22a02f: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22a033: 8b 4d c8 mov -0x38(%rbp),%ecx 22a036: e8 e5 86 00 00 call 232720 number %= 10; 22a03b: 48 8b 45 d0 mov -0x30(%rbp),%rax 22a03f: b9 0a 00 00 00 mov $0xa,%ecx 22a044: 31 d2 xor %edx,%edx 22a046: 48 f7 f1 div %rcx 22a049: 48 89 55 d0 mov %rdx,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), ".%1llu", number); 22a04d: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22a051: 48 8b 4d d0 mov -0x30(%rbp),%rcx 22a055: be 10 00 00 00 mov $0x10,%esi 22a05a: 48 ba 17 64 20 00 00 00 00 00 movabs $0x206417,%rdx 22a064: b0 00 mov $0x0,%al 22a066: e8 85 f4 00 00 call 2394f0 22a06b: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, processGigabytesColor, buffer, len); 22a06e: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22a072: 8b 75 bc mov -0x44(%rbp),%esi 22a075: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22a079: 8b 4d c8 mov -0x38(%rbp),%ecx 22a07c: e8 9f 86 00 00 call 232720 RichString_appendAscii(str, largeNumberColor, "T "); 22a081: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22a085: 8b 75 c4 mov -0x3c(%rbp),%esi 22a088: 48 ba 6a 40 20 00 00 00 00 00 movabs $0x20406a,%rdx 22a092: e8 e9 84 00 00 call 232580 } else if (number < 10000ULL * ONE_G) { 22a097: e9 c1 00 00 00 jmp 22a15d 22a09c: 48 b8 00 00 00 00 c4 09 00 00 movabs $0x9c400000000,%rax 22a0a6: 48 39 45 d0 cmp %rax,-0x30(%rbp) 22a0aa: 0f 83 45 00 00 00 jae 22a0f5 //3 digit TB or 1 digit PB, 3 digit TB number /= ONE_G; 22a0b0: 48 8b 45 d0 mov -0x30(%rbp),%rax 22a0b4: 48 c1 e8 1e shr $0x1e,%rax 22a0b8: 48 89 45 d0 mov %rax,-0x30(%rbp) len = xSnprintf(buffer, sizeof(buffer), "%4lluT ", number); 22a0bc: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22a0c0: 48 8b 4d d0 mov -0x30(%rbp),%rcx 22a0c4: be 10 00 00 00 mov $0x10,%esi 22a0c9: 48 ba 2b 45 20 00 00 00 00 00 movabs $0x20452b,%rdx 22a0d3: b0 00 mov $0x0,%al 22a0d5: e8 16 f4 00 00 call 2394f0 22a0da: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22a0dd: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22a0e1: 8b 75 c4 mov -0x3c(%rbp),%esi 22a0e4: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22a0e8: 8b 4d c8 mov -0x38(%rbp),%ecx 22a0eb: e8 30 86 00 00 call 232720 } else { 22a0f0: e9 63 00 00 00 jmp 22a158 22a0f5: 48 8d 7d e0 lea -0x20(%rbp),%rdi //2 digit PB and above len = xSnprintf(buffer, sizeof(buffer), "%4.1lfP ", (double)number / ONE_T); 22a0f9: 0f 28 0d e0 e4 fd ff movaps -0x21b20(%rip),%xmm1 # 2085e0 22a100: f3 0f 7e 45 d0 movq -0x30(%rbp),%xmm0 22a105: 66 0f 62 c1 punpckldq %xmm1,%xmm0 22a109: 66 0f 28 0d df e4 fd ff movapd -0x21b21(%rip),%xmm1 # 2085f0 22a111: 66 0f 5c c1 subpd %xmm1,%xmm0 22a115: 0f 28 c8 movaps %xmm0,%xmm1 22a118: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 22a11c: f2 0f 58 c1 addsd %xmm1,%xmm0 22a120: f2 0f 10 0d 58 d2 fd ff movsd -0x22da8(%rip),%xmm1 # 207380 22a128: f2 0f 5e c1 divsd %xmm1,%xmm0 22a12c: be 10 00 00 00 mov $0x10,%esi 22a131: 48 ba 82 4f 20 00 00 00 00 00 movabs $0x204f82,%rdx 22a13b: b0 01 mov $0x1,%al 22a13d: e8 ae f3 00 00 call 2394f0 22a142: 89 45 c8 mov %eax,-0x38(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22a145: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22a149: 8b 75 c4 mov -0x3c(%rbp),%esi 22a14c: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22a150: 8b 4d c8 mov -0x38(%rbp),%ecx 22a153: e8 c8 85 00 00 call 232720 22a158: e9 00 00 00 00 jmp 22a15d 22a15d: e9 00 00 00 00 jmp 22a162 22a162: e9 00 00 00 00 jmp 22a167 22a167: e9 00 00 00 00 jmp 22a16c 22a16c: e9 00 00 00 00 jmp 22a171 22a171: e9 00 00 00 00 jmp 22a176 22a176: e9 00 00 00 00 jmp 22a17b 22a17b: e9 00 00 00 00 jmp 22a180 22a180: 48 8b 05 a9 86 01 00 mov 0x186a9(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22a187: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22a18b: 48 39 c8 cmp %rcx,%rax 22a18e: 0f 85 06 00 00 00 jne 22a19a } } 22a194: 48 83 c4 60 add $0x60,%rsp 22a198: 5d pop %rbp 22a199: c3 ret 22a19a: e8 a1 3f 01 00 call 23e140 <__stack_chk_fail@plt> 22a19f: 90 nop 000000000022a1a0 : void Process_printKBytes(RichString* str, unsigned long long number, bool coloring) { 22a1a0: 55 push %rbp 22a1a1: 48 89 e5 mov %rsp,%rbp 22a1a4: 48 83 ec 20 sub $0x20,%rsp 22a1a8: 88 d0 mov %dl,%al 22a1aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22a1ae: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22a1b2: 24 01 and $0x1,%al 22a1b4: 88 45 ef mov %al,-0x11(%rbp) if (number == ULLONG_MAX) 22a1b7: 48 83 7d f0 ff cmpq $0xffffffffffffffff,-0x10(%rbp) 22a1bc: 0f 85 1d 00 00 00 jne 22a1df Process_printBytes(str, ULLONG_MAX, coloring); 22a1c2: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22a1c6: 8a 45 ef mov -0x11(%rbp),%al 22a1c9: 48 c7 c6 ff ff ff ff mov $0xffffffffffffffff,%rsi 22a1d0: 24 01 and $0x1,%al 22a1d2: 0f b6 d0 movzbl %al,%edx 22a1d5: e8 36 f9 ff ff call 229b10 22a1da: e9 19 00 00 00 jmp 22a1f8 else Process_printBytes(str, number * ONE_K, coloring); 22a1df: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22a1e3: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22a1e7: 48 c1 e6 0a shl $0xa,%rsi 22a1eb: 8a 45 ef mov -0x11(%rbp),%al 22a1ee: 24 01 and $0x1,%al 22a1f0: 0f b6 d0 movzbl %al,%edx 22a1f3: e8 18 f9 ff ff call 229b10 } 22a1f8: 48 83 c4 20 add $0x20,%rsp 22a1fc: 5d pop %rbp 22a1fd: c3 ret 22a1fe: 66 90 xchg %ax,%ax 000000000022a200 : void Process_printCount(RichString* str, unsigned long long number, bool coloring) { 22a200: 55 push %rbp 22a201: 48 89 e5 mov %rsp,%rbp 22a204: 48 83 ec 50 sub $0x50,%rsp 22a208: 88 d0 mov %dl,%al 22a20a: 48 8b 0d 1f 86 01 00 mov 0x1861f(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 22a211: 48 89 4d f8 mov %rcx,-0x8(%rbp) 22a215: 48 89 7d e0 mov %rdi,-0x20(%rbp) 22a219: 48 89 75 d8 mov %rsi,-0x28(%rbp) 22a21d: 24 01 and $0x1,%al 22a21f: 88 45 d7 mov %al,-0x29(%rbp) char buffer[13]; int largeNumberColor = coloring ? CRT_colors[LARGE_NUMBER] : CRT_colors[PROCESS]; 22a222: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a226: 0f 84 13 00 00 00 je 22a23f 22a22c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a234: 8b 40 30 mov 0x30(%rax),%eax 22a237: 89 45 c0 mov %eax,-0x40(%rbp) 22a23a: e9 0e 00 00 00 jmp 22a24d 22a23f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a247: 8b 40 70 mov 0x70(%rax),%eax 22a24a: 89 45 c0 mov %eax,-0x40(%rbp) 22a24d: 8b 45 c0 mov -0x40(%rbp),%eax 22a250: 89 45 d0 mov %eax,-0x30(%rbp) int processMegabytesColor = coloring ? CRT_colors[PROCESS_MEGABYTES] : CRT_colors[PROCESS]; 22a253: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a257: 0f 84 13 00 00 00 je 22a270 22a25d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a265: 8b 40 7c mov 0x7c(%rax),%eax 22a268: 89 45 bc mov %eax,-0x44(%rbp) 22a26b: e9 0e 00 00 00 jmp 22a27e 22a270: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a278: 8b 40 70 mov 0x70(%rax),%eax 22a27b: 89 45 bc mov %eax,-0x44(%rbp) 22a27e: 8b 45 bc mov -0x44(%rbp),%eax 22a281: 89 45 cc mov %eax,-0x34(%rbp) int processColor = CRT_colors[PROCESS]; 22a284: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a28c: 8b 40 70 mov 0x70(%rax),%eax 22a28f: 89 45 c8 mov %eax,-0x38(%rbp) int processShadowColor = coloring ? CRT_colors[PROCESS_SHADOW] : CRT_colors[PROCESS]; 22a292: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a296: 0f 84 13 00 00 00 je 22a2af 22a29c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a2a4: 8b 40 74 mov 0x74(%rax),%eax 22a2a7: 89 45 b8 mov %eax,-0x48(%rbp) 22a2aa: e9 0e 00 00 00 jmp 22a2bd 22a2af: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a2b7: 8b 40 70 mov 0x70(%rax),%eax 22a2ba: 89 45 b8 mov %eax,-0x48(%rbp) 22a2bd: 8b 45 b8 mov -0x48(%rbp),%eax 22a2c0: 89 45 c4 mov %eax,-0x3c(%rbp) if (number == ULLONG_MAX) { 22a2c3: 48 83 7d d8 ff cmpq $0xffffffffffffffff,-0x28(%rbp) 22a2c8: 0f 85 23 00 00 00 jne 22a2f1 RichString_appendAscii(str, CRT_colors[PROCESS_SHADOW], " N/A "); 22a2ce: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a2d2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a2da: 8b 70 74 mov 0x74(%rax),%esi 22a2dd: 48 ba fc 35 20 00 00 00 00 00 movabs $0x2035fc,%rdx 22a2e7: e8 94 82 00 00 call 232580 } else if (number >= 100000LL * ONE_DECIMAL_T) { 22a2ec: e9 e3 01 00 00 jmp 22a4d4 22a2f1: 48 b8 00 00 8a 5d 78 45 63 01 movabs $0x16345785d8a0000,%rax 22a2fb: 48 39 45 d8 cmp %rax,-0x28(%rbp) 22a2ff: 0f 82 45 00 00 00 jb 22a34a xSnprintf(buffer, sizeof(buffer), "%11llu ", number / ONE_DECIMAL_G); 22a305: 48 8d 7d eb lea -0x15(%rbp),%rdi 22a309: 48 8b 45 d8 mov -0x28(%rbp),%rax 22a30d: b9 00 ca 9a 3b mov $0x3b9aca00,%ecx 22a312: 31 d2 xor %edx,%edx 22a314: 48 f7 f1 div %rcx 22a317: 48 89 c1 mov %rax,%rcx 22a31a: be 0d 00 00 00 mov $0xd,%esi 22a31f: 48 ba 42 32 20 00 00 00 00 00 movabs $0x203242,%rdx 22a329: b0 00 mov $0x0,%al 22a32b: e8 c0 f1 00 00 call 2394f0 RichString_appendnAscii(str, largeNumberColor, buffer, 12); 22a330: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a334: 8b 75 d0 mov -0x30(%rbp),%esi 22a337: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a33b: b9 0c 00 00 00 mov $0xc,%ecx 22a340: e8 db 83 00 00 call 232720 } else if (number >= 100LL * ONE_DECIMAL_T) { 22a345: e9 85 01 00 00 jmp 22a4cf 22a34a: 48 b8 00 40 7a 10 f3 5a 00 00 movabs $0x5af3107a4000,%rax 22a354: 48 39 45 d8 cmp %rax,-0x28(%rbp) 22a358: 0f 82 5e 00 00 00 jb 22a3bc xSnprintf(buffer, sizeof(buffer), "%11llu ", number / ONE_DECIMAL_M); 22a35e: 48 8d 7d eb lea -0x15(%rbp),%rdi 22a362: 48 8b 45 d8 mov -0x28(%rbp),%rax 22a366: b9 40 42 0f 00 mov $0xf4240,%ecx 22a36b: 31 d2 xor %edx,%edx 22a36d: 48 f7 f1 div %rcx 22a370: 48 89 c1 mov %rax,%rcx 22a373: be 0d 00 00 00 mov $0xd,%esi 22a378: 48 ba 42 32 20 00 00 00 00 00 movabs $0x203242,%rdx 22a382: b0 00 mov $0x0,%al 22a384: e8 67 f1 00 00 call 2394f0 RichString_appendnAscii(str, largeNumberColor, buffer, 8); 22a389: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a38d: 8b 75 d0 mov -0x30(%rbp),%esi 22a390: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a394: b9 08 00 00 00 mov $0x8,%ecx 22a399: e8 82 83 00 00 call 232720 RichString_appendnAscii(str, processMegabytesColor, buffer + 8, 4); 22a39e: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a3a2: 8b 75 cc mov -0x34(%rbp),%esi 22a3a5: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a3a9: 48 83 c2 08 add $0x8,%rdx 22a3ad: b9 04 00 00 00 mov $0x4,%ecx 22a3b2: e8 69 83 00 00 call 232720 } else if (number >= 10LL * ONE_DECIMAL_G) { 22a3b7: e9 0e 01 00 00 jmp 22a4ca 22a3bc: 48 b8 00 e4 0b 54 02 00 00 00 movabs $0x2540be400,%rax 22a3c6: 48 39 45 d8 cmp %rax,-0x28(%rbp) 22a3ca: 0f 82 77 00 00 00 jb 22a447 xSnprintf(buffer, sizeof(buffer), "%11llu ", number / ONE_DECIMAL_K); 22a3d0: 48 8d 7d eb lea -0x15(%rbp),%rdi 22a3d4: 48 8b 45 d8 mov -0x28(%rbp),%rax 22a3d8: b9 e8 03 00 00 mov $0x3e8,%ecx 22a3dd: 31 d2 xor %edx,%edx 22a3df: 48 f7 f1 div %rcx 22a3e2: 48 89 c1 mov %rax,%rcx 22a3e5: be 0d 00 00 00 mov $0xd,%esi 22a3ea: 48 ba 42 32 20 00 00 00 00 00 movabs $0x203242,%rdx 22a3f4: b0 00 mov $0x0,%al 22a3f6: e8 f5 f0 00 00 call 2394f0 RichString_appendnAscii(str, largeNumberColor, buffer, 5); 22a3fb: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a3ff: 8b 75 d0 mov -0x30(%rbp),%esi 22a402: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a406: b9 05 00 00 00 mov $0x5,%ecx 22a40b: e8 10 83 00 00 call 232720 RichString_appendnAscii(str, processMegabytesColor, buffer + 5, 3); 22a410: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a414: 8b 75 cc mov -0x34(%rbp),%esi 22a417: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a41b: 48 83 c2 05 add $0x5,%rdx 22a41f: b9 03 00 00 00 mov $0x3,%ecx 22a424: e8 f7 82 00 00 call 232720 RichString_appendnAscii(str, processColor, buffer + 8, 4); 22a429: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a42d: 8b 75 c8 mov -0x38(%rbp),%esi 22a430: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a434: 48 83 c2 08 add $0x8,%rdx 22a438: b9 04 00 00 00 mov $0x4,%ecx 22a43d: e8 de 82 00 00 call 232720 } else { 22a442: e9 7e 00 00 00 jmp 22a4c5 xSnprintf(buffer, sizeof(buffer), "%11llu ", number); 22a447: 48 8d 7d eb lea -0x15(%rbp),%rdi 22a44b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 22a44f: be 0d 00 00 00 mov $0xd,%esi 22a454: 48 ba 42 32 20 00 00 00 00 00 movabs $0x203242,%rdx 22a45e: b0 00 mov $0x0,%al 22a460: e8 8b f0 00 00 call 2394f0 RichString_appendnAscii(str, largeNumberColor, buffer, 2); 22a465: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a469: 8b 75 d0 mov -0x30(%rbp),%esi 22a46c: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a470: b9 02 00 00 00 mov $0x2,%ecx 22a475: e8 a6 82 00 00 call 232720 RichString_appendnAscii(str, processMegabytesColor, buffer + 2, 3); 22a47a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a47e: 8b 75 cc mov -0x34(%rbp),%esi 22a481: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a485: 48 83 c2 02 add $0x2,%rdx 22a489: b9 03 00 00 00 mov $0x3,%ecx 22a48e: e8 8d 82 00 00 call 232720 RichString_appendnAscii(str, processColor, buffer + 5, 3); 22a493: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a497: 8b 75 c8 mov -0x38(%rbp),%esi 22a49a: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a49e: 48 83 c2 05 add $0x5,%rdx 22a4a2: b9 03 00 00 00 mov $0x3,%ecx 22a4a7: e8 74 82 00 00 call 232720 RichString_appendnAscii(str, processShadowColor, buffer + 8, 4); 22a4ac: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a4b0: 8b 75 c4 mov -0x3c(%rbp),%esi 22a4b3: 48 8d 55 eb lea -0x15(%rbp),%rdx 22a4b7: 48 83 c2 08 add $0x8,%rdx 22a4bb: b9 04 00 00 00 mov $0x4,%ecx 22a4c0: e8 5b 82 00 00 call 232720 22a4c5: e9 00 00 00 00 jmp 22a4ca 22a4ca: e9 00 00 00 00 jmp 22a4cf 22a4cf: e9 00 00 00 00 jmp 22a4d4 22a4d4: 48 8b 05 55 83 01 00 mov 0x18355(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22a4db: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22a4df: 48 39 c8 cmp %rcx,%rax 22a4e2: 0f 85 06 00 00 00 jne 22a4ee } } 22a4e8: 48 83 c4 50 add $0x50,%rsp 22a4ec: 5d pop %rbp 22a4ed: c3 ret 22a4ee: e8 4d 3c 01 00 call 23e140 <__stack_chk_fail@plt> 22a4f3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22a4fd: 0f 1f 00 nopl (%rax) 000000000022a500 : void Process_printTime(RichString* str, unsigned long long totalHundredths, bool coloring) { 22a500: 55 push %rbp 22a501: 48 89 e5 mov %rsp,%rbp 22a504: 48 81 ec 80 00 00 00 sub $0x80,%rsp 22a50b: 88 d0 mov %dl,%al 22a50d: 48 8b 0d 1c 83 01 00 mov 0x1831c(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 22a514: 48 89 4d f8 mov %rcx,-0x8(%rbp) 22a518: 48 89 7d e0 mov %rdi,-0x20(%rbp) 22a51c: 48 89 75 d8 mov %rsi,-0x28(%rbp) 22a520: 24 01 and $0x1,%al 22a522: 88 45 d7 mov %al,-0x29(%rbp) char buffer[10]; int len; unsigned long long totalSeconds = totalHundredths / 100; 22a525: 48 8b 45 d8 mov -0x28(%rbp),%rax 22a529: b9 64 00 00 00 mov $0x64,%ecx 22a52e: 31 d2 xor %edx,%edx 22a530: 48 f7 f1 div %rcx 22a533: 48 89 45 c8 mov %rax,-0x38(%rbp) unsigned long long hours = totalSeconds / 3600; 22a537: 48 8b 45 c8 mov -0x38(%rbp),%rax 22a53b: b9 10 0e 00 00 mov $0xe10,%ecx 22a540: 31 d2 xor %edx,%edx 22a542: 48 f7 f1 div %rcx 22a545: 48 89 45 c0 mov %rax,-0x40(%rbp) unsigned long long days = totalSeconds / 86400; 22a549: 48 8b 45 c8 mov -0x38(%rbp),%rax 22a54d: b9 80 51 01 00 mov $0x15180,%ecx 22a552: 31 d2 xor %edx,%edx 22a554: 48 f7 f1 div %rcx 22a557: 48 89 45 b8 mov %rax,-0x48(%rbp) int minutes = (totalSeconds / 60) % 60; 22a55b: 48 8b 45 c8 mov -0x38(%rbp),%rax 22a55f: b9 3c 00 00 00 mov $0x3c,%ecx 22a564: 31 d2 xor %edx,%edx 22a566: 48 f7 f1 div %rcx 22a569: b9 3c 00 00 00 mov $0x3c,%ecx 22a56e: 31 d2 xor %edx,%edx 22a570: 48 f7 f1 div %rcx 22a573: 89 d0 mov %edx,%eax 22a575: 89 45 b4 mov %eax,-0x4c(%rbp) int seconds = totalSeconds % 60; 22a578: 48 8b 45 c8 mov -0x38(%rbp),%rax 22a57c: b9 3c 00 00 00 mov $0x3c,%ecx 22a581: 31 d2 xor %edx,%edx 22a583: 48 f7 f1 div %rcx 22a586: 89 d0 mov %edx,%eax 22a588: 89 45 b0 mov %eax,-0x50(%rbp) int hundredths = totalHundredths - (totalSeconds * 100); 22a58b: 48 8b 45 d8 mov -0x28(%rbp),%rax 22a58f: 48 6b 4d c8 64 imul $0x64,-0x38(%rbp),%rcx 22a594: 48 29 c8 sub %rcx,%rax 22a597: 89 45 ac mov %eax,-0x54(%rbp) int yearColor = coloring ? CRT_colors[LARGE_NUMBER] : CRT_colors[PROCESS]; 22a59a: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a59e: 0f 84 13 00 00 00 je 22a5b7 22a5a4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a5ac: 8b 40 30 mov 0x30(%rax),%eax 22a5af: 89 45 88 mov %eax,-0x78(%rbp) 22a5b2: e9 0e 00 00 00 jmp 22a5c5 22a5b7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a5bf: 8b 40 70 mov 0x70(%rax),%eax 22a5c2: 89 45 88 mov %eax,-0x78(%rbp) 22a5c5: 8b 45 88 mov -0x78(%rbp),%eax 22a5c8: 89 45 a8 mov %eax,-0x58(%rbp) int dayColor = coloring ? CRT_colors[PROCESS_GIGABYTES] : CRT_colors[PROCESS]; 22a5cb: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a5cf: 0f 84 16 00 00 00 je 22a5eb 22a5d5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a5dd: 8b 80 80 00 00 00 mov 0x80(%rax),%eax 22a5e3: 89 45 84 mov %eax,-0x7c(%rbp) 22a5e6: e9 0e 00 00 00 jmp 22a5f9 22a5eb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a5f3: 8b 40 70 mov 0x70(%rax),%eax 22a5f6: 89 45 84 mov %eax,-0x7c(%rbp) 22a5f9: 8b 45 84 mov -0x7c(%rbp),%eax 22a5fc: 89 45 a4 mov %eax,-0x5c(%rbp) int hourColor = coloring ? CRT_colors[PROCESS_MEGABYTES] : CRT_colors[PROCESS]; 22a5ff: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22a603: 0f 84 13 00 00 00 je 22a61c 22a609: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a611: 8b 40 7c mov 0x7c(%rax),%eax 22a614: 89 45 80 mov %eax,-0x80(%rbp) 22a617: e9 0e 00 00 00 jmp 22a62a 22a61c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a624: 8b 40 70 mov 0x70(%rax),%eax 22a627: 89 45 80 mov %eax,-0x80(%rbp) 22a62a: 8b 45 80 mov -0x80(%rbp),%eax 22a62d: 89 45 a0 mov %eax,-0x60(%rbp) int defColor = CRT_colors[PROCESS]; 22a630: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22a638: 8b 40 70 mov 0x70(%rax),%eax 22a63b: 89 45 9c mov %eax,-0x64(%rbp) if (days >= /* Ignore leapyears */365) { 22a63e: 48 81 7d b8 6d 01 00 00 cmpq $0x16d,-0x48(%rbp) 22a646: 0f 82 7f 01 00 00 jb 22a7cb int years = days / 365; 22a64c: 48 8b 45 b8 mov -0x48(%rbp),%rax 22a650: b9 6d 01 00 00 mov $0x16d,%ecx 22a655: 31 d2 xor %edx,%edx 22a657: 48 f7 f1 div %rcx 22a65a: 89 45 98 mov %eax,-0x68(%rbp) int daysLeft = days - 365 * years; 22a65d: 48 8b 45 b8 mov -0x48(%rbp),%rax 22a661: 69 4d 98 6d 01 00 00 imul $0x16d,-0x68(%rbp),%ecx 22a668: 48 63 c9 movslq %ecx,%rcx 22a66b: 48 29 c8 sub %rcx,%rax 22a66e: 89 45 94 mov %eax,-0x6c(%rbp) if (daysLeft >= 100) { 22a671: 83 7d 94 64 cmpl $0x64,-0x6c(%rbp) 22a675: 0f 8c 6b 00 00 00 jl 22a6e6 len = xSnprintf(buffer, sizeof(buffer), "%3dy", years); 22a67b: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a67f: 8b 4d 98 mov -0x68(%rbp),%ecx 22a682: be 0a 00 00 00 mov $0xa,%esi 22a687: 48 ba 09 36 20 00 00 00 00 00 movabs $0x203609,%rdx 22a691: b0 00 mov $0x0,%al 22a693: e8 58 ee 00 00 call 2394f0 22a698: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, yearColor, buffer, len); 22a69b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a69f: 8b 75 a8 mov -0x58(%rbp),%esi 22a6a2: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a6a6: 8b 4d d0 mov -0x30(%rbp),%ecx 22a6a9: e8 72 80 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%3dd ", daysLeft); 22a6ae: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a6b2: 8b 4d 94 mov -0x6c(%rbp),%ecx 22a6b5: be 0a 00 00 00 mov $0xa,%esi 22a6ba: 48 ba 33 57 20 00 00 00 00 00 movabs $0x205733,%rdx 22a6c4: b0 00 mov $0x0,%al 22a6c6: e8 25 ee 00 00 call 2394f0 22a6cb: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, dayColor, buffer, len); 22a6ce: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a6d2: 8b 75 a4 mov -0x5c(%rbp),%esi 22a6d5: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a6d9: 8b 4d d0 mov -0x30(%rbp),%ecx 22a6dc: e8 3f 80 00 00 call 232720 } else if (daysLeft >= 10) { 22a6e1: e9 e0 00 00 00 jmp 22a7c6 22a6e6: 83 7d 94 0a cmpl $0xa,-0x6c(%rbp) 22a6ea: 0f 8c 6b 00 00 00 jl 22a75b len = xSnprintf(buffer, sizeof(buffer), "%4dy", years); 22a6f0: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a6f4: 8b 4d 98 mov -0x68(%rbp),%ecx 22a6f7: be 0a 00 00 00 mov $0xa,%esi 22a6fc: 48 ba 6d 40 20 00 00 00 00 00 movabs $0x20406d,%rdx 22a706: b0 00 mov $0x0,%al 22a708: e8 e3 ed 00 00 call 2394f0 22a70d: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, yearColor, buffer, len); 22a710: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a714: 8b 75 a8 mov -0x58(%rbp),%esi 22a717: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a71b: 8b 4d d0 mov -0x30(%rbp),%ecx 22a71e: e8 fd 7f 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%2dd ", daysLeft); 22a723: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a727: 8b 4d 94 mov -0x6c(%rbp),%ecx 22a72a: be 0a 00 00 00 mov $0xa,%esi 22a72f: 48 ba 2d 3c 20 00 00 00 00 00 movabs $0x203c2d,%rdx 22a739: b0 00 mov $0x0,%al 22a73b: e8 b0 ed 00 00 call 2394f0 22a740: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, dayColor, buffer, len); 22a743: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a747: 8b 75 a4 mov -0x5c(%rbp),%esi 22a74a: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a74e: 8b 4d d0 mov -0x30(%rbp),%ecx 22a751: e8 ca 7f 00 00 call 232720 } else { 22a756: e9 66 00 00 00 jmp 22a7c1 len = xSnprintf(buffer, sizeof(buffer), "%5dy", years); 22a75b: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a75f: 8b 4d 98 mov -0x68(%rbp),%ecx 22a762: be 0a 00 00 00 mov $0xa,%esi 22a767: 48 ba 84 55 20 00 00 00 00 00 movabs $0x205584,%rdx 22a771: b0 00 mov $0x0,%al 22a773: e8 78 ed 00 00 call 2394f0 22a778: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, yearColor, buffer, len); 22a77b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a77f: 8b 75 a8 mov -0x58(%rbp),%esi 22a782: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a786: 8b 4d d0 mov -0x30(%rbp),%ecx 22a789: e8 92 7f 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%1dd ", daysLeft); 22a78e: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a792: 8b 4d 94 mov -0x6c(%rbp),%ecx 22a795: be 0a 00 00 00 mov $0xa,%esi 22a79a: 48 ba c4 6c 20 00 00 00 00 00 movabs $0x206cc4,%rdx 22a7a4: b0 00 mov $0x0,%al 22a7a6: e8 45 ed 00 00 call 2394f0 22a7ab: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, dayColor, buffer, len); 22a7ae: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a7b2: 8b 75 a4 mov -0x5c(%rbp),%esi 22a7b5: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a7b9: 8b 4d d0 mov -0x30(%rbp),%ecx 22a7bc: e8 5f 7f 00 00 call 232720 22a7c1: e9 00 00 00 00 jmp 22a7c6 } } else if (days >= 100) { 22a7c6: e9 c7 02 00 00 jmp 22aa92 22a7cb: 48 83 7d b8 64 cmpq $0x64,-0x48(%rbp) 22a7d0: 0f 82 f1 00 00 00 jb 22a8c7 int hoursLeft = hours - days * 24; 22a7d6: 48 8b 45 c0 mov -0x40(%rbp),%rax 22a7da: 48 6b 4d b8 18 imul $0x18,-0x48(%rbp),%rcx 22a7df: 48 29 c8 sub %rcx,%rax 22a7e2: 89 45 90 mov %eax,-0x70(%rbp) if (hoursLeft >= 10) { 22a7e5: 83 7d 90 0a cmpl $0xa,-0x70(%rbp) 22a7e9: 0f 8c 6c 00 00 00 jl 22a85b len = xSnprintf(buffer, sizeof(buffer), "%4llud", days); 22a7ef: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a7f3: 48 8b 4d b8 mov -0x48(%rbp),%rcx 22a7f7: be 0a 00 00 00 mov $0xa,%esi 22a7fc: 48 ba cf 4b 20 00 00 00 00 00 movabs $0x204bcf,%rdx 22a806: b0 00 mov $0x0,%al 22a808: e8 e3 ec 00 00 call 2394f0 22a80d: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, dayColor, buffer, len); 22a810: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a814: 8b 75 a4 mov -0x5c(%rbp),%esi 22a817: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a81b: 8b 4d d0 mov -0x30(%rbp),%ecx 22a81e: e8 fd 7e 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%2dh ", hoursLeft); 22a823: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a827: 8b 4d 90 mov -0x70(%rbp),%ecx 22a82a: be 0a 00 00 00 mov $0xa,%esi 22a82f: 48 ba 3d 5b 20 00 00 00 00 00 movabs $0x205b3d,%rdx 22a839: b0 00 mov $0x0,%al 22a83b: e8 b0 ec 00 00 call 2394f0 22a840: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, hourColor, buffer, len); 22a843: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a847: 8b 75 a0 mov -0x60(%rbp),%esi 22a84a: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a84e: 8b 4d d0 mov -0x30(%rbp),%ecx 22a851: e8 ca 7e 00 00 call 232720 } else { 22a856: e9 67 00 00 00 jmp 22a8c2 len = xSnprintf(buffer, sizeof(buffer), "%5llud", days); 22a85b: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a85f: 48 8b 4d b8 mov -0x48(%rbp),%rcx 22a863: be 0a 00 00 00 mov $0xa,%esi 22a868: 48 ba ca 6c 20 00 00 00 00 00 movabs $0x206cca,%rdx 22a872: b0 00 mov $0x0,%al 22a874: e8 77 ec 00 00 call 2394f0 22a879: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, dayColor, buffer, len); 22a87c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a880: 8b 75 a4 mov -0x5c(%rbp),%esi 22a883: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a887: 8b 4d d0 mov -0x30(%rbp),%ecx 22a88a: e8 91 7e 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%1dh ", hoursLeft); 22a88f: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a893: 8b 4d 90 mov -0x70(%rbp),%ecx 22a896: be 0a 00 00 00 mov $0xa,%esi 22a89b: 48 ba 63 34 20 00 00 00 00 00 movabs $0x203463,%rdx 22a8a5: b0 00 mov $0x0,%al 22a8a7: e8 44 ec 00 00 call 2394f0 22a8ac: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, hourColor, buffer, len); 22a8af: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a8b3: 8b 75 a0 mov -0x60(%rbp),%esi 22a8b6: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a8ba: 8b 4d d0 mov -0x30(%rbp),%ecx 22a8bd: e8 5e 7e 00 00 call 232720 } } else if (hours >= 100) { 22a8c2: e9 c6 01 00 00 jmp 22aa8d 22a8c7: 48 83 7d c0 64 cmpq $0x64,-0x40(%rbp) 22a8cc: 0f 82 fb 00 00 00 jb 22a9cd int minutesLeft = totalSeconds / 60 - hours * 60; 22a8d2: 48 8b 45 c8 mov -0x38(%rbp),%rax 22a8d6: b9 3c 00 00 00 mov $0x3c,%ecx 22a8db: 31 d2 xor %edx,%edx 22a8dd: 48 f7 f1 div %rcx 22a8e0: 48 6b 4d c0 3c imul $0x3c,-0x40(%rbp),%rcx 22a8e5: 48 29 c8 sub %rcx,%rax 22a8e8: 89 45 8c mov %eax,-0x74(%rbp) if (minutesLeft >= 10) { 22a8eb: 83 7d 8c 0a cmpl $0xa,-0x74(%rbp) 22a8ef: 0f 8c 6c 00 00 00 jl 22a961 len = xSnprintf(buffer, sizeof(buffer), "%4lluh", hours); 22a8f5: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a8f9: 48 8b 4d c0 mov -0x40(%rbp),%rcx 22a8fd: be 0a 00 00 00 mov $0xa,%esi 22a902: 48 ba 89 55 20 00 00 00 00 00 movabs $0x205589,%rdx 22a90c: b0 00 mov $0x0,%al 22a90e: e8 dd eb 00 00 call 2394f0 22a913: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, hourColor, buffer, len); 22a916: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a91a: 8b 75 a0 mov -0x60(%rbp),%esi 22a91d: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a921: 8b 4d d0 mov -0x30(%rbp),%ecx 22a924: e8 f7 7d 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%2dm ", minutesLeft); 22a929: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a92d: 8b 4d 8c mov -0x74(%rbp),%ecx 22a930: be 0a 00 00 00 mov $0xa,%esi 22a935: 48 ba 33 45 20 00 00 00 00 00 movabs $0x204533,%rdx 22a93f: b0 00 mov $0x0,%al 22a941: e8 aa eb 00 00 call 2394f0 22a946: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, defColor, buffer, len); 22a949: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a94d: 8b 75 9c mov -0x64(%rbp),%esi 22a950: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a954: 8b 4d d0 mov -0x30(%rbp),%ecx 22a957: e8 c4 7d 00 00 call 232720 } else { 22a95c: e9 67 00 00 00 jmp 22a9c8 len = xSnprintf(buffer, sizeof(buffer), "%5lluh", hours); 22a961: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a965: 48 8b 4d c0 mov -0x40(%rbp),%rcx 22a969: be 0a 00 00 00 mov $0xa,%esi 22a96e: 48 ba 4e 42 20 00 00 00 00 00 movabs $0x20424e,%rdx 22a978: b0 00 mov $0x0,%al 22a97a: e8 71 eb 00 00 call 2394f0 22a97f: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, hourColor, buffer, len); 22a982: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a986: 8b 75 a0 mov -0x60(%rbp),%esi 22a989: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a98d: 8b 4d d0 mov -0x30(%rbp),%ecx 22a990: e8 8b 7d 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%1dm ", minutesLeft); 22a995: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a999: 8b 4d 8c mov -0x74(%rbp),%ecx 22a99c: be 0a 00 00 00 mov $0xa,%esi 22a9a1: 48 ba ee 39 20 00 00 00 00 00 movabs $0x2039ee,%rdx 22a9ab: b0 00 mov $0x0,%al 22a9ad: e8 3e eb 00 00 call 2394f0 22a9b2: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, defColor, buffer, len); 22a9b5: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a9b9: 8b 75 9c mov -0x64(%rbp),%esi 22a9bc: 48 8d 55 ee lea -0x12(%rbp),%rdx 22a9c0: 8b 4d d0 mov -0x30(%rbp),%ecx 22a9c3: e8 58 7d 00 00 call 232720 } } else if (hours > 0) { 22a9c8: e9 bb 00 00 00 jmp 22aa88 22a9cd: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 22a9d2: 0f 86 70 00 00 00 jbe 22aa48 len = xSnprintf(buffer, sizeof(buffer), "%2lluh", hours); 22a9d8: 48 8d 7d ee lea -0x12(%rbp),%rdi 22a9dc: 48 8b 4d c0 mov -0x40(%rbp),%rcx 22a9e0: be 0a 00 00 00 mov $0xa,%esi 22a9e5: 48 ba cb 37 20 00 00 00 00 00 movabs $0x2037cb,%rdx 22a9ef: b0 00 mov $0x0,%al 22a9f1: e8 fa ea 00 00 call 2394f0 22a9f6: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, hourColor, buffer, len); 22a9f9: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22a9fd: 8b 75 a0 mov -0x60(%rbp),%esi 22aa00: 48 8d 55 ee lea -0x12(%rbp),%rdx 22aa04: 8b 4d d0 mov -0x30(%rbp),%ecx 22aa07: e8 14 7d 00 00 call 232720 len = xSnprintf(buffer, sizeof(buffer), "%02d:%02d ", minutes, seconds); 22aa0c: 48 8d 7d ee lea -0x12(%rbp),%rdi 22aa10: 8b 4d b4 mov -0x4c(%rbp),%ecx 22aa13: 44 8b 45 b0 mov -0x50(%rbp),%r8d 22aa17: be 0a 00 00 00 mov $0xa,%esi 22aa1c: 48 ba 39 3f 20 00 00 00 00 00 movabs $0x203f39,%rdx 22aa26: b0 00 mov $0x0,%al 22aa28: e8 c3 ea 00 00 call 2394f0 22aa2d: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, defColor, buffer, len); 22aa30: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22aa34: 8b 75 9c mov -0x64(%rbp),%esi 22aa37: 48 8d 55 ee lea -0x12(%rbp),%rdx 22aa3b: 8b 4d d0 mov -0x30(%rbp),%ecx 22aa3e: e8 dd 7c 00 00 call 232720 } else { 22aa43: e9 3b 00 00 00 jmp 22aa83 len = xSnprintf(buffer, sizeof(buffer), "%2d:%02d.%02d ", minutes, seconds, hundredths); 22aa48: 48 8d 7d ee lea -0x12(%rbp),%rdi 22aa4c: 8b 4d b4 mov -0x4c(%rbp),%ecx 22aa4f: 44 8b 45 b0 mov -0x50(%rbp),%r8d 22aa53: 44 8b 4d ac mov -0x54(%rbp),%r9d 22aa57: be 0a 00 00 00 mov $0xa,%esi 22aa5c: 48 ba 0e 36 20 00 00 00 00 00 movabs $0x20360e,%rdx 22aa66: b0 00 mov $0x0,%al 22aa68: e8 83 ea 00 00 call 2394f0 22aa6d: 89 45 d0 mov %eax,-0x30(%rbp) RichString_appendnAscii(str, defColor, buffer, len); 22aa70: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22aa74: 8b 75 9c mov -0x64(%rbp),%esi 22aa77: 48 8d 55 ee lea -0x12(%rbp),%rdx 22aa7b: 8b 4d d0 mov -0x30(%rbp),%ecx 22aa7e: e8 9d 7c 00 00 call 232720 22aa83: e9 00 00 00 00 jmp 22aa88 22aa88: e9 00 00 00 00 jmp 22aa8d 22aa8d: e9 00 00 00 00 jmp 22aa92 22aa92: 48 8b 05 97 7d 01 00 mov 0x17d97(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22aa99: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22aa9d: 48 39 c8 cmp %rcx,%rax 22aaa0: 0f 85 09 00 00 00 jne 22aaaf } } 22aaa6: 48 81 c4 80 00 00 00 add $0x80,%rsp 22aaad: 5d pop %rbp 22aaae: c3 ret 22aaaf: e8 8c 36 01 00 call 23e140 <__stack_chk_fail@plt> 22aab4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22aabe: 66 90 xchg %ax,%ax 000000000022aac0 : void Process_fillStarttimeBuffer(Process* this) { 22aac0: 55 push %rbp 22aac1: 48 89 e5 mov %rsp,%rbp 22aac4: 48 83 ec 60 sub $0x60,%rsp 22aac8: 48 8b 05 61 7d 01 00 mov 0x17d61(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22aacf: 48 89 45 f8 mov %rax,-0x8(%rbp) 22aad3: 48 89 7d b8 mov %rdi,-0x48(%rbp) struct tm date; (void) localtime_r(&this->starttime_ctime, &date); 22aad7: 48 8b 7d b8 mov -0x48(%rbp),%rdi 22aadb: 48 81 c7 b8 00 00 00 add $0xb8,%rdi 22aae2: 48 8d 75 c0 lea -0x40(%rbp),%rsi 22aae6: e8 15 37 01 00 call 23e200 strftime(this->starttime_show, sizeof(this->starttime_show) - 1, (this->starttime_ctime > (time(NULL) - 86400)) ? "%R " : "%b%d ", &date); 22aaeb: 48 8b 45 b8 mov -0x48(%rbp),%rax 22aaef: 48 05 c0 00 00 00 add $0xc0,%rax 22aaf5: 48 89 45 b0 mov %rax,-0x50(%rbp) 22aaf9: 48 8b 45 b8 mov -0x48(%rbp),%rax 22aafd: 48 8b 80 b8 00 00 00 mov 0xb8(%rax),%rax 22ab04: 48 89 45 a8 mov %rax,-0x58(%rbp) 22ab08: 31 c0 xor %eax,%eax 22ab0a: 89 c7 mov %eax,%edi 22ab0c: e8 2f 3c 01 00 call 23e740 22ab11: 48 8b 4d a8 mov -0x58(%rbp),%rcx 22ab15: 48 8b 7d b0 mov -0x50(%rbp),%rdi 22ab19: 48 89 c6 mov %rax,%rsi 22ab1c: 48 81 ee 80 51 01 00 sub $0x15180,%rsi 22ab23: 48 ba 72 40 20 00 00 00 00 00 movabs $0x204072,%rdx 22ab2d: 48 b8 44 3f 20 00 00 00 00 00 movabs $0x203f44,%rax 22ab37: 48 39 f1 cmp %rsi,%rcx 22ab3a: 48 0f 4f d0 cmovg %rax,%rdx 22ab3e: be 07 00 00 00 mov $0x7,%esi 22ab43: 48 8d 4d c0 lea -0x40(%rbp),%rcx 22ab47: e8 c4 36 01 00 call 23e210 22ab4c: 48 8b 05 dd 7c 01 00 mov 0x17cdd(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22ab53: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22ab57: 48 39 c8 cmp %rcx,%rax 22ab5a: 0f 85 06 00 00 00 jne 22ab66 } 22ab60: 48 83 c4 60 add $0x60,%rsp 22ab64: 5d pop %rbp 22ab65: c3 ret 22ab66: e8 d5 35 01 00 call 23e140 <__stack_chk_fail@plt> 22ab6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000022ab70 : * This function makes the merged Command string. It also stores the offsets of the * basename, comm w.r.t the merged Command string - these offsets will be used by * Process_writeCommand() for coloring. The merged Command string is also * returned by Process_getCommandStr() for searching, sorting and filtering. */ void Process_makeCommandStr(Process* this) { 22ab70: 55 push %rbp 22ab71: 48 89 e5 mov %rsp,%rbp 22ab74: 48 81 ec 30 01 00 00 sub $0x130,%rsp 22ab7b: 48 8b 05 ae 7c 01 00 mov 0x17cae(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22ab82: 48 89 45 f8 mov %rax,-0x8(%rbp) 22ab86: 48 89 7d e8 mov %rdi,-0x18(%rbp) ProcessMergedCommand* mc = &this->mergedCommand; 22ab8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ab8e: 48 05 20 01 00 00 add $0x120,%rax 22ab94: 48 89 45 e0 mov %rax,-0x20(%rbp) const Settings* settings = this->settings; 22ab98: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ab9c: 48 8b 40 10 mov 0x10(%rax),%rax 22aba0: 48 89 45 d8 mov %rax,-0x28(%rbp) bool showMergedCommand = settings->showMergedCommand; 22aba4: 48 8b 45 d8 mov -0x28(%rbp),%rax 22aba8: 8a 40 5e mov 0x5e(%rax),%al 22abab: 24 01 and $0x1,%al 22abad: 88 45 d7 mov %al,-0x29(%rbp) bool showProgramPath = settings->showProgramPath; 22abb0: 48 8b 45 d8 mov -0x28(%rbp),%rax 22abb4: 8a 40 4d mov 0x4d(%rax),%al 22abb7: 24 01 and $0x1,%al 22abb9: 88 45 d6 mov %al,-0x2a(%rbp) bool searchCommInCmdline = settings->findCommInCmdline; 22abbc: 48 8b 45 d8 mov -0x28(%rbp),%rax 22abc0: 8a 40 5c mov 0x5c(%rax),%al 22abc3: 24 01 and $0x1,%al 22abc5: 88 45 d5 mov %al,-0x2b(%rbp) bool stripExeFromCmdline = settings->stripExeFromCmdline; 22abc8: 48 8b 45 d8 mov -0x28(%rbp),%rax 22abcc: 8a 40 5d mov 0x5d(%rax),%al 22abcf: 24 01 and $0x1,%al 22abd1: 88 45 d4 mov %al,-0x2c(%rbp) bool showThreadNames = settings->showThreadNames; 22abd4: 48 8b 45 d8 mov -0x28(%rbp),%rax 22abd8: 8a 40 4f mov 0x4f(%rax),%al 22abdb: 24 01 and $0x1,%al 22abdd: 88 45 d3 mov %al,-0x2d(%rbp) /* Nothing to do to (Re)Generate the Command string, if the process is: * - a kernel thread, or * - a zombie from before being under htop's watch, or * - a user thread and showThreadNames is not set */ if (Process_isKernelThread(this)) 22abe0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22abe4: e8 07 17 00 00 call 22c2f0 22abe9: a8 01 test $0x1,%al 22abeb: 0f 85 05 00 00 00 jne 22abf6 22abf1: e9 05 00 00 00 jmp 22abfb return; 22abf6: e9 cb 16 00 00 jmp 22c2c6 if (this->state == ZOMBIE && !this->mergedCommand.str) 22abfb: 48 8b 45 e8 mov -0x18(%rbp),%rax 22abff: 83 b8 e8 00 00 00 0b cmpl $0xb,0xe8(%rax) 22ac06: 0f 85 17 00 00 00 jne 22ac23 22ac0c: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ac10: 48 83 b8 20 01 00 00 00 cmpq $0x0,0x120(%rax) 22ac18: 0f 85 05 00 00 00 jne 22ac23 return; 22ac1e: e9 a3 16 00 00 jmp 22c2c6 if (Process_isUserlandThread(this) && settings->showThreadNames && (showThreadNames == mc->prevShowThreadNames)) 22ac23: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22ac27: e8 e4 16 00 00 call 22c310 22ac2c: a8 01 test $0x1,%al 22ac2e: 0f 85 05 00 00 00 jne 22ac39 22ac34: e9 36 00 00 00 jmp 22ac6f 22ac39: 48 8b 45 d8 mov -0x28(%rbp),%rax 22ac3d: f6 40 4f 01 testb $0x1,0x4f(%rax) 22ac41: 0f 84 28 00 00 00 je 22ac6f 22ac47: 8a 45 d3 mov -0x2d(%rbp),%al 22ac4a: 24 01 and $0x1,%al 22ac4c: 0f b6 c0 movzbl %al,%eax 22ac4f: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22ac53: 8a 89 d0 00 00 00 mov 0xd0(%rcx),%cl 22ac59: c0 e9 07 shr $0x7,%cl 22ac5c: 80 e1 01 and $0x1,%cl 22ac5f: 0f b6 c9 movzbl %cl,%ecx 22ac62: 39 c8 cmp %ecx,%eax 22ac64: 0f 85 05 00 00 00 jne 22ac6f return; 22ac6a: e9 57 16 00 00 jmp 22c2c6 /* this->mergedCommand.str needs updating only if its state or contents changed. * Its content is based on the fields cmdline, comm, and exe. */ if ( mc->prevMergeSet == showMergedCommand && 22ac6f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ac73: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ac79: c0 e8 03 shr $0x3,%al 22ac7c: 24 01 and $0x1,%al 22ac7e: 24 01 and $0x1,%al 22ac80: 0f b6 c0 movzbl %al,%eax 22ac83: 8a 4d d7 mov -0x29(%rbp),%cl 22ac86: 80 e1 01 and $0x1,%cl 22ac89: 0f b6 c9 movzbl %cl,%ecx 22ac8c: 39 c8 cmp %ecx,%eax 22ac8e: 0f 85 d9 00 00 00 jne 22ad6d mc->prevPathSet == showProgramPath && 22ac94: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ac98: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ac9e: c0 e8 04 shr $0x4,%al 22aca1: 24 01 and $0x1,%al 22aca3: 24 01 and $0x1,%al 22aca5: 0f b6 c0 movzbl %al,%eax 22aca8: 8a 4d d6 mov -0x2a(%rbp),%cl 22acab: 80 e1 01 and $0x1,%cl 22acae: 0f b6 c9 movzbl %cl,%ecx 22acb1: 39 c8 cmp %ecx,%eax 22acb3: 0f 85 b4 00 00 00 jne 22ad6d mc->prevCommSet == searchCommInCmdline && 22acb9: 48 8b 45 e0 mov -0x20(%rbp),%rax 22acbd: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22acc3: c0 e8 05 shr $0x5,%al 22acc6: 24 01 and $0x1,%al 22acc8: 24 01 and $0x1,%al 22acca: 0f b6 c0 movzbl %al,%eax 22accd: 8a 4d d5 mov -0x2b(%rbp),%cl 22acd0: 80 e1 01 and $0x1,%cl 22acd3: 0f b6 c9 movzbl %cl,%ecx 22acd6: 39 c8 cmp %ecx,%eax 22acd8: 0f 85 8f 00 00 00 jne 22ad6d mc->prevCmdlineSet == stripExeFromCmdline && 22acde: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ace2: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ace8: c0 e8 06 shr $0x6,%al 22aceb: 24 01 and $0x1,%al 22aced: 24 01 and $0x1,%al 22acef: 0f b6 c0 movzbl %al,%eax 22acf2: 8a 4d d4 mov -0x2c(%rbp),%cl 22acf5: 80 e1 01 and $0x1,%cl 22acf8: 0f b6 c9 movzbl %cl,%ecx 22acfb: 39 c8 cmp %ecx,%eax 22acfd: 0f 85 6a 00 00 00 jne 22ad6d mc->prevShowThreadNames == showThreadNames && 22ad03: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ad07: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ad0d: c0 e8 07 shr $0x7,%al 22ad10: 24 01 and $0x1,%al 22ad12: 0f b6 c0 movzbl %al,%eax 22ad15: 8a 4d d3 mov -0x2d(%rbp),%cl 22ad18: 80 e1 01 and $0x1,%cl 22ad1b: 0f b6 c9 movzbl %cl,%ecx 22ad1e: 39 c8 cmp %ecx,%eax 22ad20: 0f 85 47 00 00 00 jne 22ad6d !mc->cmdlineChanged && 22ad26: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ad2a: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ad30: 24 01 and $0x1,%al 22ad32: a8 01 test $0x1,%al 22ad34: 0f 85 33 00 00 00 jne 22ad6d !mc->commChanged && 22ad3a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ad3e: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ad44: c0 e8 02 shr $0x2,%al 22ad47: 24 01 and $0x1,%al 22ad49: a8 01 test $0x1,%al 22ad4b: 0f 85 1c 00 00 00 jne 22ad6d !mc->exeChanged 22ad51: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ad55: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ad5b: c0 e8 01 shr $0x1,%al 22ad5e: 24 01 and $0x1,%al mc->prevMergeSet == showMergedCommand && 22ad60: a8 01 test $0x1,%al 22ad62: 0f 85 05 00 00 00 jne 22ad6d ) { return; 22ad68: e9 59 15 00 00 jmp 22c2c6 } /* The field separtor "│" has been chosen such that it will not match any * valid string used for searching or filtering */ const char* SEPARATOR = CRT_treeStr[TREE_STR_VERT]; 22ad6d: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22ad75: 48 8b 00 mov (%rax),%rax 22ad78: 48 89 45 c8 mov %rax,-0x38(%rbp) const int SEPARATOR_LEN = strlen(SEPARATOR); 22ad7c: 48 8b 7d c8 mov -0x38(%rbp),%rdi 22ad80: e8 6b 34 01 00 call 23e1f0 22ad85: 89 45 c4 mov %eax,-0x3c(%rbp) /* Check for any changed fields since we last built this string */ if (mc->cmdlineChanged || mc->commChanged || mc->exeChanged) { 22ad88: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ad8c: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ad92: 24 01 and $0x1,%al 22ad94: a8 01 test $0x1,%al 22ad96: 0f 85 2e 00 00 00 jne 22adca 22ad9c: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ada0: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22ada6: c0 e8 02 shr $0x2,%al 22ada9: 24 01 and $0x1,%al 22adab: a8 01 test $0x1,%al 22adad: 0f 85 17 00 00 00 jne 22adca 22adb3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22adb7: 8a 80 d0 00 00 00 mov 0xd0(%rax),%al 22adbd: c0 e8 01 shr $0x1,%al 22adc0: 24 01 and $0x1,%al 22adc2: a8 01 test $0x1,%al 22adc4: 0f 84 05 01 00 00 je 22aecf free(mc->str); 22adca: 48 8b 45 e0 mov -0x20(%rbp),%rax 22adce: 48 8b 38 mov (%rax),%rdi 22add1: e8 8a 33 01 00 call 23e160 /* Accommodate the column text, two field separators and terminating NUL */ size_t maxLen = 2 * SEPARATOR_LEN + 1; 22add6: 8b 45 c4 mov -0x3c(%rbp),%eax 22add9: c1 e0 01 shl $0x1,%eax 22addc: 83 c0 01 add $0x1,%eax 22addf: 48 98 cltq 22ade1: 48 89 45 b8 mov %rax,-0x48(%rbp) maxLen += this->cmdline ? strlen(this->cmdline) : strlen("(zombie)"); 22ade5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ade9: 48 83 78 60 00 cmpq $0x0,0x60(%rax) 22adee: 0f 84 19 00 00 00 je 22ae0d 22adf4: 48 8b 45 e8 mov -0x18(%rbp),%rax 22adf8: 48 8b 78 60 mov 0x60(%rax),%rdi 22adfc: e8 ef 33 01 00 call 23e1f0 22ae01: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) 22ae08: e9 11 00 00 00 jmp 22ae1e 22ae0d: b8 08 00 00 00 mov $0x8,%eax 22ae12: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) 22ae19: e9 00 00 00 00 jmp 22ae1e 22ae1e: 48 8b 85 50 ff ff ff mov -0xb0(%rbp),%rax 22ae25: 48 03 45 b8 add -0x48(%rbp),%rax 22ae29: 48 89 45 b8 mov %rax,-0x48(%rbp) maxLen += this->procComm ? strlen(this->procComm) : 0; 22ae2d: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ae31: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22ae36: 0f 84 19 00 00 00 je 22ae55 22ae3c: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ae40: 48 8b 78 70 mov 0x70(%rax),%rdi 22ae44: e8 a7 33 01 00 call 23e1f0 22ae49: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) 22ae50: e9 0e 00 00 00 jmp 22ae63 22ae55: 31 c0 xor %eax,%eax 22ae57: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) 22ae5e: e9 00 00 00 00 jmp 22ae63 22ae63: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 22ae6a: 48 03 45 b8 add -0x48(%rbp),%rax 22ae6e: 48 89 45 b8 mov %rax,-0x48(%rbp) maxLen += this->procExe ? strlen(this->procExe) : 0; 22ae72: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ae76: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22ae7b: 0f 84 19 00 00 00 je 22ae9a 22ae81: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ae85: 48 8b 78 78 mov 0x78(%rax),%rdi 22ae89: e8 62 33 01 00 call 23e1f0 22ae8e: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 22ae95: e9 0e 00 00 00 jmp 22aea8 22ae9a: 31 c0 xor %eax,%eax 22ae9c: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 22aea3: e9 00 00 00 00 jmp 22aea8 22aea8: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 22aeaf: 48 03 45 b8 add -0x48(%rbp),%rax 22aeb3: 48 89 45 b8 mov %rax,-0x48(%rbp) mc->str = xCalloc(1, maxLen); 22aeb7: 48 8b 75 b8 mov -0x48(%rbp),%rsi 22aebb: bf 01 00 00 00 mov $0x1,%edi 22aec0: e8 2b dc 00 00 call 238af0 22aec5: 48 89 c1 mov %rax,%rcx 22aec8: 48 8b 45 e0 mov -0x20(%rbp),%rax 22aecc: 48 89 08 mov %rcx,(%rax) } /* Preserve the settings used in this run */ mc->prevMergeSet = showMergedCommand; 22aecf: 8a 55 d7 mov -0x29(%rbp),%dl 22aed2: 48 8b 45 e0 mov -0x20(%rbp),%rax 22aed6: 80 e2 01 and $0x1,%dl 22aed9: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22aedf: c0 e2 03 shl $0x3,%dl 22aee2: 80 e1 f7 and $0xf7,%cl 22aee5: 08 d1 or %dl,%cl 22aee7: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->prevPathSet = showProgramPath; 22aeed: 8a 55 d6 mov -0x2a(%rbp),%dl 22aef0: 48 8b 45 e0 mov -0x20(%rbp),%rax 22aef4: 80 e2 01 and $0x1,%dl 22aef7: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22aefd: c0 e2 04 shl $0x4,%dl 22af00: 80 e1 ef and $0xef,%cl 22af03: 08 d1 or %dl,%cl 22af05: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->prevCommSet = searchCommInCmdline; 22af0b: 8a 55 d5 mov -0x2b(%rbp),%dl 22af0e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af12: 80 e2 01 and $0x1,%dl 22af15: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af1b: c0 e2 05 shl $0x5,%dl 22af1e: 80 e1 df and $0xdf,%cl 22af21: 08 d1 or %dl,%cl 22af23: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->prevCmdlineSet = stripExeFromCmdline; 22af29: 8a 55 d4 mov -0x2c(%rbp),%dl 22af2c: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af30: 80 e2 01 and $0x1,%dl 22af33: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af39: c0 e2 06 shl $0x6,%dl 22af3c: 80 e1 bf and $0xbf,%cl 22af3f: 08 d1 or %dl,%cl 22af41: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->prevShowThreadNames = showThreadNames; 22af47: 8a 55 d3 mov -0x2d(%rbp),%dl 22af4a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af4e: 80 e2 01 and $0x1,%dl 22af51: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af57: c0 e2 07 shl $0x7,%dl 22af5a: 80 e1 7f and $0x7f,%cl 22af5d: 08 d1 or %dl,%cl 22af5f: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) /* Mark everything as unchanged */ mc->cmdlineChanged = false; 22af65: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af69: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af6f: 80 e1 fe and $0xfe,%cl 22af72: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->commChanged = false; 22af78: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af7c: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af82: 80 e1 fb and $0xfb,%cl 22af85: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) mc->exeChanged = false; 22af8b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22af8f: 8a 88 d0 00 00 00 mov 0xd0(%rax),%cl 22af95: 80 e1 fd and $0xfd,%cl 22af98: 88 88 d0 00 00 00 mov %cl,0xd0(%rax) /* Reset all locations that need extra handling when actually displaying */ mc->highlightCount = 0; 22af9e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22afa2: 48 c7 40 08 00 00 00 00 movq $0x0,0x8(%rax) memset(mc->highlights, 0, sizeof(mc->highlights)); 22afaa: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22afae: 48 83 c7 10 add $0x10,%rdi 22afb2: 31 f6 xor %esi,%esi 22afb4: ba c0 00 00 00 mov $0xc0,%edx 22afb9: e8 82 32 01 00 call 23e240 size_t mbMismatch = 0; 22afbe: 48 c7 45 b0 00 00 00 00 movq $0x0,-0x50(%rbp) WRITE_HIGHLIGHT(0, 1, CRT_colors[FAILED_READ], CMDLINE_HIGHLIGHT_FLAG_SEPARATOR); \ mbMismatch += SEPARATOR_LEN - 1; \ str = stpcpy(str, SEPARATOR); \ } while (0) const int baseAttr = Process_isThread(this) ? CRT_colors[PROCESS_THREAD_BASENAME] : CRT_colors[PROCESS_BASENAME]; 22afc6: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22afca: e8 61 13 00 00 call 22c330 22afcf: a8 01 test $0x1,%al 22afd1: 0f 85 05 00 00 00 jne 22afdc 22afd7: e9 19 00 00 00 jmp 22aff5 22afdc: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22afe4: 8b 80 a8 00 00 00 mov 0xa8(%rax),%eax 22afea: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) 22aff0: e9 14 00 00 00 jmp 22b009 22aff5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22affd: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 22b003: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) 22b009: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax 22b00f: 89 45 ac mov %eax,-0x54(%rbp) const int commAttr = Process_isThread(this) ? CRT_colors[PROCESS_THREAD_COMM] : CRT_colors[PROCESS_COMM]; 22b012: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22b016: e8 15 13 00 00 call 22c330 22b01b: a8 01 test $0x1,%al 22b01d: 0f 85 05 00 00 00 jne 22b028 22b023: e9 19 00 00 00 jmp 22b041 22b028: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22b030: 8b 80 b0 00 00 00 mov 0xb0(%rax),%eax 22b036: 89 85 38 ff ff ff mov %eax,-0xc8(%rbp) 22b03c: e9 14 00 00 00 jmp 22b055 22b041: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22b049: 8b 80 ac 00 00 00 mov 0xac(%rax),%eax 22b04f: 89 85 38 ff ff ff mov %eax,-0xc8(%rbp) 22b055: 8b 85 38 ff ff ff mov -0xc8(%rbp),%eax 22b05b: 89 45 a8 mov %eax,-0x58(%rbp) const int delExeAttr = CRT_colors[FAILED_READ]; 22b05e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22b066: 8b 40 14 mov 0x14(%rax),%eax 22b069: 89 45 a4 mov %eax,-0x5c(%rbp) const int delLibAttr = CRT_colors[PROCESS_TAG]; 22b06c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22b074: 8b 40 78 mov 0x78(%rax),%eax 22b077: 89 45 a0 mov %eax,-0x60(%rbp) /* Establish some shortcuts to data we need */ const char* cmdline = this->cmdline; 22b07a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b07e: 48 8b 40 60 mov 0x60(%rax),%rax 22b082: 48 89 45 98 mov %rax,-0x68(%rbp) const char* procComm = this->procComm; 22b086: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b08a: 48 8b 40 70 mov 0x70(%rax),%rax 22b08e: 48 89 45 90 mov %rax,-0x70(%rbp) const char* procExe = this->procExe; 22b092: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b096: 48 8b 40 78 mov 0x78(%rax),%rax 22b09a: 48 89 45 88 mov %rax,-0x78(%rbp) char* strStart = mc->str; 22b09e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b0a2: 48 8b 00 mov (%rax),%rax 22b0a5: 48 89 45 80 mov %rax,-0x80(%rbp) char* str = strStart; 22b0a9: 48 8b 45 80 mov -0x80(%rbp),%rax 22b0ad: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) int cmdlineBasenameStart = this->cmdlineBasenameStart; 22b0b4: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b0b8: 8b 40 6c mov 0x6c(%rax),%eax 22b0bb: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) int cmdlineBasenameEnd = this->cmdlineBasenameEnd; 22b0c1: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b0c5: 8b 40 68 mov 0x68(%rax),%eax 22b0c8: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) if (!cmdline) { 22b0ce: 48 83 7d 98 00 cmpq $0x0,-0x68(%rbp) 22b0d3: 0f 85 22 00 00 00 jne 22b0fb cmdlineBasenameStart = 0; 22b0d9: c7 85 74 ff ff ff 00 00 00 00 movl $0x0,-0x8c(%rbp) cmdlineBasenameEnd = 0; 22b0e3: c7 85 70 ff ff ff 00 00 00 00 movl $0x0,-0x90(%rbp) cmdline = "(zombie)"; 22b0ed: 48 b8 ce 5c 20 00 00 00 00 00 movabs $0x205cce,%rax 22b0f7: 48 89 45 98 mov %rax,-0x68(%rbp) } assert(cmdlineBasenameStart >= 0); assert(cmdlineBasenameStart <= (int)strlen(cmdline)); if (!showMergedCommand || !procExe || !procComm) { /* fall back to cmdline */ 22b0fb: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22b0ff: 0f 84 16 00 00 00 je 22b11b 22b105: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) 22b10a: 0f 84 0b 00 00 00 je 22b11b 22b110: 48 83 7d 90 00 cmpq $0x0,-0x70(%rbp) 22b115: 0f 85 eb 05 00 00 jne 22b706 if (showMergedCommand && (!Process_isUserlandThread(this) || showThreadNames) && !procExe && procComm && strlen(procComm)) { /* Prefix column with comm */ 22b11b: f6 45 d7 01 testb $0x1,-0x29(%rbp) 22b11f: 0f 84 6d 02 00 00 je 22b392 22b125: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22b129: e8 e2 11 00 00 call 22c310 22b12e: a8 01 test $0x1,%al 22b130: 0f 85 05 00 00 00 jne 22b13b 22b136: e9 0a 00 00 00 jmp 22b145 22b13b: f6 45 d3 01 testb $0x1,-0x2d(%rbp) 22b13f: 0f 84 4d 02 00 00 je 22b392 22b145: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) 22b14a: 0f 85 42 02 00 00 jne 22b392 22b150: 48 83 7d 90 00 cmpq $0x0,-0x70(%rbp) 22b155: 0f 84 37 02 00 00 je 22b392 22b15b: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22b15f: e8 8c 30 01 00 call 23e1f0 22b164: 48 83 f8 00 cmp $0x0,%rax 22b168: 0f 84 24 02 00 00 je 22b392 if (strncmp(cmdline + cmdlineBasenameStart, procComm, MINIMUM(TASK_COMM_LEN - 1, strlen(procComm))) != 0) { 22b16e: 48 8b 45 98 mov -0x68(%rbp),%rax 22b172: 48 63 8d 74 ff ff ff movslq -0x8c(%rbp),%rcx 22b179: 48 01 c8 add %rcx,%rax 22b17c: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) 22b183: 48 8b 45 90 mov -0x70(%rbp),%rax 22b187: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) 22b18e: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22b192: e8 59 30 01 00 call 23e1f0 22b197: 48 89 c1 mov %rax,%rcx 22b19a: b8 0f 00 00 00 mov $0xf,%eax 22b19f: 48 39 c8 cmp %rcx,%rax 22b1a2: 0f 83 11 00 00 00 jae 22b1b9 22b1a8: b8 0f 00 00 00 mov $0xf,%eax 22b1ad: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) 22b1b4: e9 10 00 00 00 jmp 22b1c9 22b1b9: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22b1bd: e8 2e 30 01 00 call 23e1f0 22b1c2: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) 22b1c9: 48 8b b5 30 ff ff ff mov -0xd0(%rbp),%rsi 22b1d0: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi 22b1d7: 48 8b 95 20 ff ff ff mov -0xe0(%rbp),%rdx 22b1de: e8 9d 32 01 00 call 23e480 22b1e3: 83 f8 00 cmp $0x0,%eax 22b1e6: 0f 84 a1 01 00 00 je 22b38d WRITE_HIGHLIGHT(0, strlen(procComm), commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM); 22b1ec: e9 00 00 00 00 jmp 22b1f1 22b1f1: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b1f5: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b1fa: 0f 82 05 00 00 00 jb 22b205 22b200: e9 96 00 00 00 jmp 22b29b 22b205: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22b20c: 48 8b 45 80 mov -0x80(%rbp),%rax 22b210: 48 29 c1 sub %rax,%rcx 22b213: 48 83 c1 00 add $0x0,%rcx 22b217: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b21b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b21f: 48 83 c0 10 add $0x10,%rax 22b223: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b227: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b22c: 48 01 d0 add %rdx,%rax 22b22f: 48 89 08 mov %rcx,(%rax) 22b232: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22b236: e8 b5 2f 01 00 call 23e1f0 22b23b: 48 89 c1 mov %rax,%rcx 22b23e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b242: 48 83 c0 10 add $0x10,%rax 22b246: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b24a: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b24f: 48 01 d0 add %rdx,%rax 22b252: 48 89 48 08 mov %rcx,0x8(%rax) 22b256: 8b 4d a8 mov -0x58(%rbp),%ecx 22b259: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b25d: 48 83 c0 10 add $0x10,%rax 22b261: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b265: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b26a: 48 01 d0 add %rdx,%rax 22b26d: 89 48 10 mov %ecx,0x10(%rax) 22b270: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b274: 48 83 c0 10 add $0x10,%rax 22b278: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b27c: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b281: 48 01 c8 add %rcx,%rax 22b284: c7 40 14 04 00 00 00 movl $0x4,0x14(%rax) 22b28b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b28f: 48 8b 48 08 mov 0x8(%rax),%rcx 22b293: 48 83 c1 01 add $0x1,%rcx 22b297: 48 89 48 08 mov %rcx,0x8(%rax) str = stpcpy(str, procComm); 22b29b: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22b2a2: 48 8b 75 90 mov -0x70(%rbp),%rsi 22b2a6: e8 a5 34 01 00 call 23e750 22b2ab: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) WRITE_SEPARATOR; 22b2b2: e9 00 00 00 00 jmp 22b2b7 22b2b7: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b2bb: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b2c0: 0f 82 05 00 00 00 jb 22b2cb 22b2c6: e9 96 00 00 00 jmp 22b361 22b2cb: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22b2d2: 48 8b 45 80 mov -0x80(%rbp),%rax 22b2d6: 48 29 c1 sub %rax,%rcx 22b2d9: 48 83 c1 00 add $0x0,%rcx 22b2dd: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b2e1: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b2e5: 48 83 c0 10 add $0x10,%rax 22b2e9: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b2ed: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b2f2: 48 01 d0 add %rdx,%rax 22b2f5: 48 89 08 mov %rcx,(%rax) 22b2f8: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b2fc: 48 83 c0 10 add $0x10,%rax 22b300: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b304: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b309: 48 01 c8 add %rcx,%rax 22b30c: 48 c7 40 08 01 00 00 00 movq $0x1,0x8(%rax) 22b314: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22b31c: 8b 48 14 mov 0x14(%rax),%ecx 22b31f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b323: 48 83 c0 10 add $0x10,%rax 22b327: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b32b: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b330: 48 01 d0 add %rdx,%rax 22b333: 89 48 10 mov %ecx,0x10(%rax) 22b336: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b33a: 48 83 c0 10 add $0x10,%rax 22b33e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b342: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b347: 48 01 c8 add %rcx,%rax 22b34a: c7 40 14 01 00 00 00 movl $0x1,0x14(%rax) 22b351: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b355: 48 8b 48 08 mov 0x8(%rax),%rcx 22b359: 48 83 c1 01 add $0x1,%rcx 22b35d: 48 89 48 08 mov %rcx,0x8(%rax) 22b361: 8b 45 c4 mov -0x3c(%rbp),%eax 22b364: 83 e8 01 sub $0x1,%eax 22b367: 48 98 cltq 22b369: 48 03 45 b0 add -0x50(%rbp),%rax 22b36d: 48 89 45 b0 mov %rax,-0x50(%rbp) 22b371: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22b378: 48 8b 75 c8 mov -0x38(%rbp),%rsi 22b37c: e8 cf 33 01 00 call 23e750 22b381: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) } 22b388: e9 00 00 00 00 jmp 22b38d } 22b38d: e9 00 00 00 00 jmp 22b392 if (cmdlineBasenameEnd > cmdlineBasenameStart) 22b392: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 22b398: 3b 85 74 ff ff ff cmp -0x8c(%rbp),%eax 22b39e: 0f 8e f4 00 00 00 jle 22b498 WRITE_HIGHLIGHT(showProgramPath ? cmdlineBasenameStart : 0, cmdlineBasenameEnd - cmdlineBasenameStart, baseAttr, CMDLINE_HIGHLIGHT_FLAG_BASENAME); 22b3a4: e9 00 00 00 00 jmp 22b3a9 22b3a9: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b3ad: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b3b2: 0f 82 05 00 00 00 jb 22b3bd 22b3b8: e9 d6 00 00 00 jmp 22b493 22b3bd: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 22b3c4: 48 8b 4d 80 mov -0x80(%rbp),%rcx 22b3c8: 48 29 c8 sub %rcx,%rax 22b3cb: 48 89 85 18 ff ff ff mov %rax,-0xe8(%rbp) 22b3d2: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 22b3d6: 0f 84 11 00 00 00 je 22b3ed 22b3dc: 8b 85 74 ff ff ff mov -0x8c(%rbp),%eax 22b3e2: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) 22b3e8: e9 0d 00 00 00 jmp 22b3fa 22b3ed: 31 c0 xor %eax,%eax 22b3ef: 89 85 14 ff ff ff mov %eax,-0xec(%rbp) 22b3f5: e9 00 00 00 00 jmp 22b3fa 22b3fa: 48 8b 8d 18 ff ff ff mov -0xe8(%rbp),%rcx 22b401: 8b 85 14 ff ff ff mov -0xec(%rbp),%eax 22b407: 48 98 cltq 22b409: 48 01 c1 add %rax,%rcx 22b40c: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b410: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b414: 48 83 c0 10 add $0x10,%rax 22b418: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b41c: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b421: 48 01 d0 add %rdx,%rax 22b424: 48 89 08 mov %rcx,(%rax) 22b427: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 22b42d: 2b 85 74 ff ff ff sub -0x8c(%rbp),%eax 22b433: 48 63 c8 movslq %eax,%rcx 22b436: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b43a: 48 83 c0 10 add $0x10,%rax 22b43e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b442: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b447: 48 01 d0 add %rdx,%rax 22b44a: 48 89 48 08 mov %rcx,0x8(%rax) 22b44e: 8b 4d ac mov -0x54(%rbp),%ecx 22b451: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b455: 48 83 c0 10 add $0x10,%rax 22b459: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b45d: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b462: 48 01 d0 add %rdx,%rax 22b465: 89 48 10 mov %ecx,0x10(%rax) 22b468: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b46c: 48 83 c0 10 add $0x10,%rax 22b470: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b474: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b479: 48 01 c8 add %rcx,%rax 22b47c: c7 40 14 02 00 00 00 movl $0x2,0x14(%rax) 22b483: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b487: 48 8b 48 08 mov 0x8(%rax),%rcx 22b48b: 48 83 c1 01 add $0x1,%rcx 22b48f: 48 89 48 08 mov %rcx,0x8(%rax) 22b493: e9 00 00 00 00 jmp 22b498 if (this->procExeDeleted) 22b498: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b49c: f6 80 8c 00 00 00 01 testb $0x1,0x8c(%rax) 22b4a3: 0f 84 f4 00 00 00 je 22b59d WRITE_HIGHLIGHT(showProgramPath ? cmdlineBasenameStart : 0, cmdlineBasenameEnd - cmdlineBasenameStart, delExeAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22b4a9: e9 00 00 00 00 jmp 22b4ae 22b4ae: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b4b2: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b4b7: 0f 82 05 00 00 00 jb 22b4c2 22b4bd: e9 d6 00 00 00 jmp 22b598 22b4c2: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 22b4c9: 48 8b 4d 80 mov -0x80(%rbp),%rcx 22b4cd: 48 29 c8 sub %rcx,%rax 22b4d0: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) 22b4d7: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 22b4db: 0f 84 11 00 00 00 je 22b4f2 22b4e1: 8b 85 74 ff ff ff mov -0x8c(%rbp),%eax 22b4e7: 89 85 04 ff ff ff mov %eax,-0xfc(%rbp) 22b4ed: e9 0d 00 00 00 jmp 22b4ff 22b4f2: 31 c0 xor %eax,%eax 22b4f4: 89 85 04 ff ff ff mov %eax,-0xfc(%rbp) 22b4fa: e9 00 00 00 00 jmp 22b4ff 22b4ff: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx 22b506: 8b 85 04 ff ff ff mov -0xfc(%rbp),%eax 22b50c: 48 98 cltq 22b50e: 48 01 c1 add %rax,%rcx 22b511: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b515: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b519: 48 83 c0 10 add $0x10,%rax 22b51d: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b521: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b526: 48 01 d0 add %rdx,%rax 22b529: 48 89 08 mov %rcx,(%rax) 22b52c: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 22b532: 2b 85 74 ff ff ff sub -0x8c(%rbp),%eax 22b538: 48 63 c8 movslq %eax,%rcx 22b53b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b53f: 48 83 c0 10 add $0x10,%rax 22b543: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b547: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b54c: 48 01 d0 add %rdx,%rax 22b54f: 48 89 48 08 mov %rcx,0x8(%rax) 22b553: 8b 4d a4 mov -0x5c(%rbp),%ecx 22b556: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b55a: 48 83 c0 10 add $0x10,%rax 22b55e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b562: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b567: 48 01 d0 add %rdx,%rax 22b56a: 89 48 10 mov %ecx,0x10(%rax) 22b56d: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b571: 48 83 c0 10 add $0x10,%rax 22b575: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b579: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b57e: 48 01 c8 add %rcx,%rax 22b581: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22b588: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b58c: 48 8b 48 08 mov 0x8(%rax),%rcx 22b590: 48 83 c1 01 add $0x1,%rcx 22b594: 48 89 48 08 mov %rcx,0x8(%rax) 22b598: e9 0a 01 00 00 jmp 22b6a7 else if (this->usesDeletedLib) 22b59d: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b5a1: f6 80 8d 00 00 00 01 testb $0x1,0x8d(%rax) 22b5a8: 0f 84 f4 00 00 00 je 22b6a2 WRITE_HIGHLIGHT(showProgramPath ? cmdlineBasenameStart : 0, cmdlineBasenameEnd - cmdlineBasenameStart, delLibAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22b5ae: e9 00 00 00 00 jmp 22b5b3 22b5b3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b5b7: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b5bc: 0f 82 05 00 00 00 jb 22b5c7 22b5c2: e9 d6 00 00 00 jmp 22b69d 22b5c7: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 22b5ce: 48 8b 4d 80 mov -0x80(%rbp),%rcx 22b5d2: 48 29 c8 sub %rcx,%rax 22b5d5: 48 89 85 f8 fe ff ff mov %rax,-0x108(%rbp) 22b5dc: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 22b5e0: 0f 84 11 00 00 00 je 22b5f7 22b5e6: 8b 85 74 ff ff ff mov -0x8c(%rbp),%eax 22b5ec: 89 85 f4 fe ff ff mov %eax,-0x10c(%rbp) 22b5f2: e9 0d 00 00 00 jmp 22b604 22b5f7: 31 c0 xor %eax,%eax 22b5f9: 89 85 f4 fe ff ff mov %eax,-0x10c(%rbp) 22b5ff: e9 00 00 00 00 jmp 22b604 22b604: 48 8b 8d f8 fe ff ff mov -0x108(%rbp),%rcx 22b60b: 8b 85 f4 fe ff ff mov -0x10c(%rbp),%eax 22b611: 48 98 cltq 22b613: 48 01 c1 add %rax,%rcx 22b616: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b61a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b61e: 48 83 c0 10 add $0x10,%rax 22b622: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b626: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b62b: 48 01 d0 add %rdx,%rax 22b62e: 48 89 08 mov %rcx,(%rax) 22b631: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 22b637: 2b 85 74 ff ff ff sub -0x8c(%rbp),%eax 22b63d: 48 63 c8 movslq %eax,%rcx 22b640: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b644: 48 83 c0 10 add $0x10,%rax 22b648: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b64c: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b651: 48 01 d0 add %rdx,%rax 22b654: 48 89 48 08 mov %rcx,0x8(%rax) 22b658: 8b 4d a0 mov -0x60(%rbp),%ecx 22b65b: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b65f: 48 83 c0 10 add $0x10,%rax 22b663: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b667: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b66c: 48 01 d0 add %rdx,%rax 22b66f: 89 48 10 mov %ecx,0x10(%rax) 22b672: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b676: 48 83 c0 10 add $0x10,%rax 22b67a: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b67e: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b683: 48 01 c8 add %rcx,%rax 22b686: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22b68d: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b691: 48 8b 48 08 mov 0x8(%rax),%rcx 22b695: 48 83 c1 01 add $0x1,%rcx 22b699: 48 89 48 08 mov %rcx,0x8(%rax) 22b69d: e9 00 00 00 00 jmp 22b6a2 22b6a2: e9 00 00 00 00 jmp 22b6a7 (void)stpcpyWithNewlineConversion(str, cmdline + (showProgramPath ? 0 : cmdlineBasenameStart)); 22b6a7: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 22b6ae: 48 89 85 e0 fe ff ff mov %rax,-0x120(%rbp) 22b6b5: 48 8b 45 98 mov -0x68(%rbp),%rax 22b6b9: 48 89 85 e8 fe ff ff mov %rax,-0x118(%rbp) 22b6c0: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 22b6c4: 0f 84 0d 00 00 00 je 22b6d7 22b6ca: 31 c0 xor %eax,%eax 22b6cc: 89 85 dc fe ff ff mov %eax,-0x124(%rbp) 22b6d2: e9 0c 00 00 00 jmp 22b6e3 22b6d7: 8b 85 74 ff ff ff mov -0x8c(%rbp),%eax 22b6dd: 89 85 dc fe ff ff mov %eax,-0x124(%rbp) 22b6e3: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22b6ea: 48 8b b5 e8 fe ff ff mov -0x118(%rbp),%rsi 22b6f1: 8b 85 dc fe ff ff mov -0x124(%rbp),%eax 22b6f7: 48 98 cltq 22b6f9: 48 01 c6 add %rax,%rsi 22b6fc: e8 6f 0c 00 00 call 22c370 return; 22b701: e9 c0 0b 00 00 jmp 22c2c6 } int exeLen = strlen(this->procExe); 22b706: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b70a: 48 8b 78 78 mov 0x78(%rax),%rdi 22b70e: e8 dd 2a 01 00 call 23e1f0 22b713: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) int exeBasenameOffset = this->procExeBasenameOffset; 22b719: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b71d: 8b 80 88 00 00 00 mov 0x88(%rax),%eax 22b723: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) int exeBasenameLen = exeLen - exeBasenameOffset; 22b729: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 22b72f: 2b 85 68 ff ff ff sub -0x98(%rbp),%eax 22b735: 89 85 64 ff ff ff mov %eax,-0x9c(%rbp) assert(exeBasenameOffset >= 0); assert(exeBasenameOffset <= (int)strlen(procExe)); bool haveCommInExe = false; 22b73b: c6 85 63 ff ff ff 00 movb $0x0,-0x9d(%rbp) if (procExe && procComm && (!Process_isUserlandThread(this) || showThreadNames)) { 22b742: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) 22b747: 0f 84 55 00 00 00 je 22b7a2 22b74d: 48 83 7d 90 00 cmpq $0x0,-0x70(%rbp) 22b752: 0f 84 4a 00 00 00 je 22b7a2 22b758: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22b75c: e8 af 0b 00 00 call 22c310 22b761: a8 01 test $0x1,%al 22b763: 0f 85 05 00 00 00 jne 22b76e 22b769: e9 0a 00 00 00 jmp 22b778 22b76e: f6 45 d3 01 testb $0x1,-0x2d(%rbp) 22b772: 0f 84 2a 00 00 00 je 22b7a2 haveCommInExe = strncmp(procExe + exeBasenameOffset, procComm, TASK_COMM_LEN - 1) == 0; 22b778: 48 8b 7d 88 mov -0x78(%rbp),%rdi 22b77c: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22b783: 48 01 c7 add %rax,%rdi 22b786: 48 8b 75 90 mov -0x70(%rbp),%rsi 22b78a: ba 0f 00 00 00 mov $0xf,%edx 22b78f: e8 ec 2c 01 00 call 23e480 22b794: 83 f8 00 cmp $0x0,%eax 22b797: 0f 94 c0 sete %al 22b79a: 24 01 and $0x1,%al 22b79c: 88 85 63 ff ff ff mov %al,-0x9d(%rbp) } /* Start with copying exe */ if (showProgramPath) { 22b7a2: f6 45 d6 01 testb $0x1,-0x2a(%rbp) 22b7a6: 0f 84 1f 03 00 00 je 22bacb if (haveCommInExe) 22b7ac: f6 85 63 ff ff ff 01 testb $0x1,-0x9d(%rbp) 22b7b3: 0f 84 b5 00 00 00 je 22b86e WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM); 22b7b9: e9 00 00 00 00 jmp 22b7be 22b7be: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b7c2: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b7c7: 0f 82 05 00 00 00 jb 22b7d2 22b7cd: e9 97 00 00 00 jmp 22b869 22b7d2: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22b7d9: 48 8b 45 80 mov -0x80(%rbp),%rax 22b7dd: 48 29 c1 sub %rax,%rcx 22b7e0: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22b7e7: 48 01 c1 add %rax,%rcx 22b7ea: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b7ee: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b7f2: 48 83 c0 10 add $0x10,%rax 22b7f6: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b7fa: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b7ff: 48 01 d0 add %rdx,%rax 22b802: 48 89 08 mov %rcx,(%rax) 22b805: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22b80c: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b810: 48 83 c0 10 add $0x10,%rax 22b814: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b818: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b81d: 48 01 d0 add %rdx,%rax 22b820: 48 89 48 08 mov %rcx,0x8(%rax) 22b824: 8b 4d a8 mov -0x58(%rbp),%ecx 22b827: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b82b: 48 83 c0 10 add $0x10,%rax 22b82f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b833: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b838: 48 01 d0 add %rdx,%rax 22b83b: 89 48 10 mov %ecx,0x10(%rax) 22b83e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b842: 48 83 c0 10 add $0x10,%rax 22b846: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b84a: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b84f: 48 01 c8 add %rcx,%rax 22b852: c7 40 14 04 00 00 00 movl $0x4,0x14(%rax) 22b859: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b85d: 48 8b 48 08 mov 0x8(%rax),%rcx 22b861: 48 83 c1 01 add $0x1,%rcx 22b865: 48 89 48 08 mov %rcx,0x8(%rax) 22b869: e9 00 00 00 00 jmp 22b86e WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, baseAttr, CMDLINE_HIGHLIGHT_FLAG_BASENAME); 22b86e: e9 00 00 00 00 jmp 22b873 22b873: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b877: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b87c: 0f 82 05 00 00 00 jb 22b887 22b882: e9 97 00 00 00 jmp 22b91e 22b887: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22b88e: 48 8b 45 80 mov -0x80(%rbp),%rax 22b892: 48 29 c1 sub %rax,%rcx 22b895: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22b89c: 48 01 c1 add %rax,%rcx 22b89f: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b8a3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b8a7: 48 83 c0 10 add $0x10,%rax 22b8ab: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b8af: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b8b4: 48 01 d0 add %rdx,%rax 22b8b7: 48 89 08 mov %rcx,(%rax) 22b8ba: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22b8c1: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b8c5: 48 83 c0 10 add $0x10,%rax 22b8c9: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b8cd: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b8d2: 48 01 d0 add %rdx,%rax 22b8d5: 48 89 48 08 mov %rcx,0x8(%rax) 22b8d9: 8b 4d ac mov -0x54(%rbp),%ecx 22b8dc: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b8e0: 48 83 c0 10 add $0x10,%rax 22b8e4: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b8e8: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b8ed: 48 01 d0 add %rdx,%rax 22b8f0: 89 48 10 mov %ecx,0x10(%rax) 22b8f3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b8f7: 48 83 c0 10 add $0x10,%rax 22b8fb: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b8ff: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b904: 48 01 c8 add %rcx,%rax 22b907: c7 40 14 02 00 00 00 movl $0x2,0x14(%rax) 22b90e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b912: 48 8b 48 08 mov 0x8(%rax),%rcx 22b916: 48 83 c1 01 add $0x1,%rcx 22b91a: 48 89 48 08 mov %rcx,0x8(%rax) if (this->procExeDeleted) 22b91e: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b922: f6 80 8c 00 00 00 01 testb $0x1,0x8c(%rax) 22b929: 0f 84 b5 00 00 00 je 22b9e4 WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, delExeAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22b92f: e9 00 00 00 00 jmp 22b934 22b934: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b938: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22b93d: 0f 82 05 00 00 00 jb 22b948 22b943: e9 97 00 00 00 jmp 22b9df 22b948: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22b94f: 48 8b 45 80 mov -0x80(%rbp),%rax 22b953: 48 29 c1 sub %rax,%rcx 22b956: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22b95d: 48 01 c1 add %rax,%rcx 22b960: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22b964: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b968: 48 83 c0 10 add $0x10,%rax 22b96c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b970: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b975: 48 01 d0 add %rdx,%rax 22b978: 48 89 08 mov %rcx,(%rax) 22b97b: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22b982: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b986: 48 83 c0 10 add $0x10,%rax 22b98a: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b98e: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b993: 48 01 d0 add %rdx,%rax 22b996: 48 89 48 08 mov %rcx,0x8(%rax) 22b99a: 8b 4d a4 mov -0x5c(%rbp),%ecx 22b99d: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b9a1: 48 83 c0 10 add $0x10,%rax 22b9a5: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22b9a9: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22b9ae: 48 01 d0 add %rdx,%rax 22b9b1: 89 48 10 mov %ecx,0x10(%rax) 22b9b4: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b9b8: 48 83 c0 10 add $0x10,%rax 22b9bc: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22b9c0: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22b9c5: 48 01 c8 add %rcx,%rax 22b9c8: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22b9cf: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b9d3: 48 8b 48 08 mov 0x8(%rax),%rcx 22b9d7: 48 83 c1 01 add $0x1,%rcx 22b9db: 48 89 48 08 mov %rcx,0x8(%rax) 22b9df: e9 cb 00 00 00 jmp 22baaf else if (this->usesDeletedLib) 22b9e4: 48 8b 45 e8 mov -0x18(%rbp),%rax 22b9e8: f6 80 8d 00 00 00 01 testb $0x1,0x8d(%rax) 22b9ef: 0f 84 b5 00 00 00 je 22baaa WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, delLibAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22b9f5: e9 00 00 00 00 jmp 22b9fa 22b9fa: 48 8b 45 e0 mov -0x20(%rbp),%rax 22b9fe: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22ba03: 0f 82 05 00 00 00 jb 22ba0e 22ba09: e9 97 00 00 00 jmp 22baa5 22ba0e: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22ba15: 48 8b 45 80 mov -0x80(%rbp),%rax 22ba19: 48 29 c1 sub %rax,%rcx 22ba1c: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22ba23: 48 01 c1 add %rax,%rcx 22ba26: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22ba2a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ba2e: 48 83 c0 10 add $0x10,%rax 22ba32: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22ba36: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22ba3b: 48 01 d0 add %rdx,%rax 22ba3e: 48 89 08 mov %rcx,(%rax) 22ba41: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22ba48: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ba4c: 48 83 c0 10 add $0x10,%rax 22ba50: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22ba54: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22ba59: 48 01 d0 add %rdx,%rax 22ba5c: 48 89 48 08 mov %rcx,0x8(%rax) 22ba60: 8b 4d a0 mov -0x60(%rbp),%ecx 22ba63: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ba67: 48 83 c0 10 add $0x10,%rax 22ba6b: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22ba6f: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22ba74: 48 01 d0 add %rdx,%rax 22ba77: 89 48 10 mov %ecx,0x10(%rax) 22ba7a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ba7e: 48 83 c0 10 add $0x10,%rax 22ba82: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22ba86: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22ba8b: 48 01 c8 add %rcx,%rax 22ba8e: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22ba95: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ba99: 48 8b 48 08 mov 0x8(%rax),%rcx 22ba9d: 48 83 c1 01 add $0x1,%rcx 22baa1: 48 89 48 08 mov %rcx,0x8(%rax) 22baa5: e9 00 00 00 00 jmp 22baaa 22baaa: e9 00 00 00 00 jmp 22baaf str = stpcpy(str, procExe); 22baaf: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22bab6: 48 8b 75 88 mov -0x78(%rbp),%rsi 22baba: e8 91 2c 01 00 call 23e750 22babf: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) } else { 22bac6: e9 0c 03 00 00 jmp 22bdd7 if (haveCommInExe) 22bacb: f6 85 63 ff ff ff 01 testb $0x1,-0x9d(%rbp) 22bad2: 0f 84 af 00 00 00 je 22bb87 WRITE_HIGHLIGHT(0, exeBasenameLen, commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM); 22bad8: e9 00 00 00 00 jmp 22badd 22badd: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bae1: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bae6: 0f 82 05 00 00 00 jb 22baf1 22baec: e9 91 00 00 00 jmp 22bb82 22baf1: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22baf8: 48 8b 45 80 mov -0x80(%rbp),%rax 22bafc: 48 29 c1 sub %rax,%rcx 22baff: 48 83 c1 00 add $0x0,%rcx 22bb03: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bb07: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb0b: 48 83 c0 10 add $0x10,%rax 22bb0f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bb13: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bb18: 48 01 d0 add %rdx,%rax 22bb1b: 48 89 08 mov %rcx,(%rax) 22bb1e: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22bb25: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb29: 48 83 c0 10 add $0x10,%rax 22bb2d: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bb31: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bb36: 48 01 d0 add %rdx,%rax 22bb39: 48 89 48 08 mov %rcx,0x8(%rax) 22bb3d: 8b 4d a8 mov -0x58(%rbp),%ecx 22bb40: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb44: 48 83 c0 10 add $0x10,%rax 22bb48: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bb4c: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bb51: 48 01 d0 add %rdx,%rax 22bb54: 89 48 10 mov %ecx,0x10(%rax) 22bb57: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb5b: 48 83 c0 10 add $0x10,%rax 22bb5f: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bb63: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bb68: 48 01 c8 add %rcx,%rax 22bb6b: c7 40 14 04 00 00 00 movl $0x4,0x14(%rax) 22bb72: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb76: 48 8b 48 08 mov 0x8(%rax),%rcx 22bb7a: 48 83 c1 01 add $0x1,%rcx 22bb7e: 48 89 48 08 mov %rcx,0x8(%rax) 22bb82: e9 00 00 00 00 jmp 22bb87 WRITE_HIGHLIGHT(0, exeBasenameLen, baseAttr, CMDLINE_HIGHLIGHT_FLAG_BASENAME); 22bb87: e9 00 00 00 00 jmp 22bb8c 22bb8c: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bb90: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bb95: 0f 82 05 00 00 00 jb 22bba0 22bb9b: e9 91 00 00 00 jmp 22bc31 22bba0: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22bba7: 48 8b 45 80 mov -0x80(%rbp),%rax 22bbab: 48 29 c1 sub %rax,%rcx 22bbae: 48 83 c1 00 add $0x0,%rcx 22bbb2: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bbb6: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bbba: 48 83 c0 10 add $0x10,%rax 22bbbe: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bbc2: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bbc7: 48 01 d0 add %rdx,%rax 22bbca: 48 89 08 mov %rcx,(%rax) 22bbcd: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22bbd4: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bbd8: 48 83 c0 10 add $0x10,%rax 22bbdc: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bbe0: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bbe5: 48 01 d0 add %rdx,%rax 22bbe8: 48 89 48 08 mov %rcx,0x8(%rax) 22bbec: 8b 4d ac mov -0x54(%rbp),%ecx 22bbef: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bbf3: 48 83 c0 10 add $0x10,%rax 22bbf7: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bbfb: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bc00: 48 01 d0 add %rdx,%rax 22bc03: 89 48 10 mov %ecx,0x10(%rax) 22bc06: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bc0a: 48 83 c0 10 add $0x10,%rax 22bc0e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bc12: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bc17: 48 01 c8 add %rcx,%rax 22bc1a: c7 40 14 02 00 00 00 movl $0x2,0x14(%rax) 22bc21: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bc25: 48 8b 48 08 mov 0x8(%rax),%rcx 22bc29: 48 83 c1 01 add $0x1,%rcx 22bc2d: 48 89 48 08 mov %rcx,0x8(%rax) if (this->procExeDeleted) 22bc31: 48 8b 45 e8 mov -0x18(%rbp),%rax 22bc35: f6 80 8c 00 00 00 01 testb $0x1,0x8c(%rax) 22bc3c: 0f 84 af 00 00 00 je 22bcf1 WRITE_HIGHLIGHT(0, exeBasenameLen, delExeAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22bc42: e9 00 00 00 00 jmp 22bc47 22bc47: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bc4b: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bc50: 0f 82 05 00 00 00 jb 22bc5b 22bc56: e9 91 00 00 00 jmp 22bcec 22bc5b: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22bc62: 48 8b 45 80 mov -0x80(%rbp),%rax 22bc66: 48 29 c1 sub %rax,%rcx 22bc69: 48 83 c1 00 add $0x0,%rcx 22bc6d: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bc71: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bc75: 48 83 c0 10 add $0x10,%rax 22bc79: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bc7d: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bc82: 48 01 d0 add %rdx,%rax 22bc85: 48 89 08 mov %rcx,(%rax) 22bc88: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22bc8f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bc93: 48 83 c0 10 add $0x10,%rax 22bc97: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bc9b: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bca0: 48 01 d0 add %rdx,%rax 22bca3: 48 89 48 08 mov %rcx,0x8(%rax) 22bca7: 8b 4d a4 mov -0x5c(%rbp),%ecx 22bcaa: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bcae: 48 83 c0 10 add $0x10,%rax 22bcb2: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bcb6: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bcbb: 48 01 d0 add %rdx,%rax 22bcbe: 89 48 10 mov %ecx,0x10(%rax) 22bcc1: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bcc5: 48 83 c0 10 add $0x10,%rax 22bcc9: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bccd: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bcd2: 48 01 c8 add %rcx,%rax 22bcd5: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22bcdc: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bce0: 48 8b 48 08 mov 0x8(%rax),%rcx 22bce4: 48 83 c1 01 add $0x1,%rcx 22bce8: 48 89 48 08 mov %rcx,0x8(%rax) 22bcec: e9 c5 00 00 00 jmp 22bdb6 else if (this->usesDeletedLib) 22bcf1: 48 8b 45 e8 mov -0x18(%rbp),%rax 22bcf5: f6 80 8d 00 00 00 01 testb $0x1,0x8d(%rax) 22bcfc: 0f 84 af 00 00 00 je 22bdb1 WRITE_HIGHLIGHT(0, exeBasenameLen, delLibAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED); 22bd02: e9 00 00 00 00 jmp 22bd07 22bd07: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bd0b: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bd10: 0f 82 05 00 00 00 jb 22bd1b 22bd16: e9 91 00 00 00 jmp 22bdac 22bd1b: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22bd22: 48 8b 45 80 mov -0x80(%rbp),%rax 22bd26: 48 29 c1 sub %rax,%rcx 22bd29: 48 83 c1 00 add $0x0,%rcx 22bd2d: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bd31: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bd35: 48 83 c0 10 add $0x10,%rax 22bd39: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bd3d: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bd42: 48 01 d0 add %rdx,%rax 22bd45: 48 89 08 mov %rcx,(%rax) 22bd48: 48 63 8d 64 ff ff ff movslq -0x9c(%rbp),%rcx 22bd4f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bd53: 48 83 c0 10 add $0x10,%rax 22bd57: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bd5b: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bd60: 48 01 d0 add %rdx,%rax 22bd63: 48 89 48 08 mov %rcx,0x8(%rax) 22bd67: 8b 4d a0 mov -0x60(%rbp),%ecx 22bd6a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bd6e: 48 83 c0 10 add $0x10,%rax 22bd72: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bd76: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bd7b: 48 01 d0 add %rdx,%rax 22bd7e: 89 48 10 mov %ecx,0x10(%rax) 22bd81: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bd85: 48 83 c0 10 add $0x10,%rax 22bd89: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bd8d: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bd92: 48 01 c8 add %rcx,%rax 22bd95: c7 40 14 08 00 00 00 movl $0x8,0x14(%rax) 22bd9c: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bda0: 48 8b 48 08 mov 0x8(%rax),%rcx 22bda4: 48 83 c1 01 add $0x1,%rcx 22bda8: 48 89 48 08 mov %rcx,0x8(%rax) 22bdac: e9 00 00 00 00 jmp 22bdb1 22bdb1: e9 00 00 00 00 jmp 22bdb6 str = stpcpy(str, procExe + exeBasenameOffset); 22bdb6: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22bdbd: 48 8b 75 88 mov -0x78(%rbp),%rsi 22bdc1: 48 63 85 68 ff ff ff movslq -0x98(%rbp),%rax 22bdc8: 48 01 c6 add %rax,%rsi 22bdcb: e8 80 29 01 00 call 23e750 22bdd0: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) } bool haveCommInCmdline = false; 22bdd7: c6 85 62 ff ff ff 00 movb $0x0,-0x9e(%rbp) int commStart = 0; 22bdde: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) int commEnd = 0; 22bde5: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) /* Try to match procComm with procExe's basename: This is reliable (predictable) */ if (searchCommInCmdline) { 22bdec: f6 45 d5 01 testb $0x1,-0x2b(%rbp) 22bdf0: 0f 84 57 00 00 00 je 22be4d /* commStart/commEnd will be adjusted later along with cmdline */ haveCommInCmdline = (!Process_isUserlandThread(this) || showThreadNames) && findCommInCmdline(procComm, cmdline, cmdlineBasenameStart, &commStart, &commEnd); 22bdf6: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22bdfa: e8 11 05 00 00 call 22c310 22bdff: a8 01 test $0x1,%al 22be01: 0f 85 05 00 00 00 jne 22be0c 22be07: e9 12 00 00 00 jmp 22be1e 22be0c: 31 c0 xor %eax,%eax 22be0e: f6 45 d3 01 testb $0x1,-0x2d(%rbp) 22be12: 88 85 db fe ff ff mov %al,-0x125(%rbp) 22be18: 0f 84 21 00 00 00 je 22be3f 22be1e: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22be22: 48 8b 75 98 mov -0x68(%rbp),%rsi 22be26: 8b 95 74 ff ff ff mov -0x8c(%rbp),%edx 22be2c: 48 8d 4d f4 lea -0xc(%rbp),%rcx 22be30: 4c 8d 45 f0 lea -0x10(%rbp),%r8 22be34: e8 b7 05 00 00 call 22c3f0 22be39: 88 85 db fe ff ff mov %al,-0x125(%rbp) 22be3f: 8a 85 db fe ff ff mov -0x125(%rbp),%al 22be45: 24 01 and $0x1,%al 22be47: 88 85 62 ff ff ff mov %al,-0x9e(%rbp) } int matchLen = matchCmdlinePrefixWithExeSuffix(cmdline, cmdlineBasenameStart, procExe, exeBasenameOffset, exeBasenameLen); 22be4d: 48 8b 7d 98 mov -0x68(%rbp),%rdi 22be51: 8b b5 74 ff ff ff mov -0x8c(%rbp),%esi 22be57: 48 8b 55 88 mov -0x78(%rbp),%rdx 22be5b: 8b 8d 68 ff ff ff mov -0x98(%rbp),%ecx 22be61: 44 8b 85 64 ff ff ff mov -0x9c(%rbp),%r8d 22be68: e8 43 07 00 00 call 22c5b0 22be6d: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) bool haveCommField = false; 22be73: c6 85 5b ff ff ff 00 movb $0x0,-0xa5(%rbp) if (!haveCommInExe && !haveCommInCmdline && procComm && (!Process_isUserlandThread(this) || showThreadNames)) { 22be7a: f6 85 63 ff ff ff 01 testb $0x1,-0x9d(%rbp) 22be81: 0f 85 e0 01 00 00 jne 22c067 22be87: f6 85 62 ff ff ff 01 testb $0x1,-0x9e(%rbp) 22be8e: 0f 85 d3 01 00 00 jne 22c067 22be94: 48 83 7d 90 00 cmpq $0x0,-0x70(%rbp) 22be99: 0f 84 c8 01 00 00 je 22c067 22be9f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22bea3: e8 68 04 00 00 call 22c310 22bea8: a8 01 test $0x1,%al 22beaa: 0f 85 05 00 00 00 jne 22beb5 22beb0: e9 0a 00 00 00 jmp 22bebf 22beb5: f6 45 d3 01 testb $0x1,-0x2d(%rbp) 22beb9: 0f 84 a8 01 00 00 je 22c067 WRITE_SEPARATOR; 22bebf: e9 00 00 00 00 jmp 22bec4 22bec4: e9 00 00 00 00 jmp 22bec9 22bec9: 48 8b 45 e0 mov -0x20(%rbp),%rax 22becd: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bed2: 0f 82 05 00 00 00 jb 22bedd 22bed8: e9 96 00 00 00 jmp 22bf73 22bedd: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22bee4: 48 8b 45 80 mov -0x80(%rbp),%rax 22bee8: 48 29 c1 sub %rax,%rcx 22beeb: 48 83 c1 00 add $0x0,%rcx 22beef: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bef3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bef7: 48 83 c0 10 add $0x10,%rax 22befb: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22beff: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bf04: 48 01 d0 add %rdx,%rax 22bf07: 48 89 08 mov %rcx,(%rax) 22bf0a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bf0e: 48 83 c0 10 add $0x10,%rax 22bf12: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bf16: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bf1b: 48 01 c8 add %rcx,%rax 22bf1e: 48 c7 40 08 01 00 00 00 movq $0x1,0x8(%rax) 22bf26: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22bf2e: 8b 48 14 mov 0x14(%rax),%ecx 22bf31: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bf35: 48 83 c0 10 add $0x10,%rax 22bf39: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bf3d: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bf42: 48 01 d0 add %rdx,%rax 22bf45: 89 48 10 mov %ecx,0x10(%rax) 22bf48: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bf4c: 48 83 c0 10 add $0x10,%rax 22bf50: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22bf54: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22bf59: 48 01 c8 add %rcx,%rax 22bf5c: c7 40 14 01 00 00 00 movl $0x1,0x14(%rax) 22bf63: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bf67: 48 8b 48 08 mov 0x8(%rax),%rcx 22bf6b: 48 83 c1 01 add $0x1,%rcx 22bf6f: 48 89 48 08 mov %rcx,0x8(%rax) 22bf73: 8b 45 c4 mov -0x3c(%rbp),%eax 22bf76: 83 e8 01 sub $0x1,%eax 22bf79: 48 98 cltq 22bf7b: 48 03 45 b0 add -0x50(%rbp),%rax 22bf7f: 48 89 45 b0 mov %rax,-0x50(%rbp) 22bf83: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22bf8a: 48 8b 75 c8 mov -0x38(%rbp),%rsi 22bf8e: e8 bd 27 01 00 call 23e750 22bf93: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) WRITE_HIGHLIGHT(0, strlen(procComm), commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM); 22bf9a: e9 00 00 00 00 jmp 22bf9f 22bf9f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bfa3: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22bfa8: 0f 82 05 00 00 00 jb 22bfb3 22bfae: e9 96 00 00 00 jmp 22c049 22bfb3: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22bfba: 48 8b 45 80 mov -0x80(%rbp),%rax 22bfbe: 48 29 c1 sub %rax,%rcx 22bfc1: 48 83 c1 00 add $0x0,%rcx 22bfc5: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22bfc9: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bfcd: 48 83 c0 10 add $0x10,%rax 22bfd1: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bfd5: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bfda: 48 01 d0 add %rdx,%rax 22bfdd: 48 89 08 mov %rcx,(%rax) 22bfe0: 48 8b 7d 90 mov -0x70(%rbp),%rdi 22bfe4: e8 07 22 01 00 call 23e1f0 22bfe9: 48 89 c1 mov %rax,%rcx 22bfec: 48 8b 45 e0 mov -0x20(%rbp),%rax 22bff0: 48 83 c0 10 add $0x10,%rax 22bff4: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22bff8: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22bffd: 48 01 d0 add %rdx,%rax 22c000: 48 89 48 08 mov %rcx,0x8(%rax) 22c004: 8b 4d a8 mov -0x58(%rbp),%ecx 22c007: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c00b: 48 83 c0 10 add $0x10,%rax 22c00f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c013: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c018: 48 01 d0 add %rdx,%rax 22c01b: 89 48 10 mov %ecx,0x10(%rax) 22c01e: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c022: 48 83 c0 10 add $0x10,%rax 22c026: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22c02a: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22c02f: 48 01 c8 add %rcx,%rax 22c032: c7 40 14 04 00 00 00 movl $0x4,0x14(%rax) 22c039: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c03d: 48 8b 48 08 mov 0x8(%rax),%rcx 22c041: 48 83 c1 01 add $0x1,%rcx 22c045: 48 89 48 08 mov %rcx,0x8(%rax) str = stpcpy(str, procComm); 22c049: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22c050: 48 8b 75 90 mov -0x70(%rbp),%rsi 22c054: e8 f7 26 01 00 call 23e750 22c059: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) haveCommField = true; 22c060: c6 85 5b ff ff ff 01 movb $0x1,-0xa5(%rbp) } if (matchLen) { 22c067: 83 bd 5c ff ff ff 00 cmpl $0x0,-0xa4(%rbp) 22c06e: 0f 84 30 00 00 00 je 22c0a4 /* strip the matched exe prefix */ cmdline += matchLen; 22c074: 8b 8d 5c ff ff ff mov -0xa4(%rbp),%ecx 22c07a: 48 8b 45 98 mov -0x68(%rbp),%rax 22c07e: 48 63 c9 movslq %ecx,%rcx 22c081: 48 01 c8 add %rcx,%rax 22c084: 48 89 45 98 mov %rax,-0x68(%rbp) commStart -= matchLen; 22c088: 8b 8d 5c ff ff ff mov -0xa4(%rbp),%ecx 22c08e: 8b 45 f4 mov -0xc(%rbp),%eax 22c091: 29 c8 sub %ecx,%eax 22c093: 89 45 f4 mov %eax,-0xc(%rbp) commEnd -= matchLen; 22c096: 8b 8d 5c ff ff ff mov -0xa4(%rbp),%ecx 22c09c: 8b 45 f0 mov -0x10(%rbp),%eax 22c09f: 29 c8 sub %ecx,%eax 22c0a1: 89 45 f0 mov %eax,-0x10(%rbp) } if (!matchLen || (haveCommField && *cmdline)) { 22c0a4: 83 bd 5c ff ff ff 00 cmpl $0x0,-0xa4(%rbp) 22c0ab: 0f 84 1d 00 00 00 je 22c0ce 22c0b1: f6 85 5b ff ff ff 01 testb $0x1,-0xa5(%rbp) 22c0b8: 0f 84 f0 00 00 00 je 22c1ae 22c0be: 48 8b 45 98 mov -0x68(%rbp),%rax 22c0c2: 0f be 00 movsbl (%rax),%eax 22c0c5: 83 f8 00 cmp $0x0,%eax 22c0c8: 0f 84 e0 00 00 00 je 22c1ae /* cmdline will be a separate field */ WRITE_SEPARATOR; 22c0ce: e9 00 00 00 00 jmp 22c0d3 22c0d3: e9 00 00 00 00 jmp 22c0d8 22c0d8: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c0dc: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22c0e1: 0f 82 05 00 00 00 jb 22c0ec 22c0e7: e9 96 00 00 00 jmp 22c182 22c0ec: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22c0f3: 48 8b 45 80 mov -0x80(%rbp),%rax 22c0f7: 48 29 c1 sub %rax,%rcx 22c0fa: 48 83 c1 00 add $0x0,%rcx 22c0fe: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22c102: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c106: 48 83 c0 10 add $0x10,%rax 22c10a: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c10e: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c113: 48 01 d0 add %rdx,%rax 22c116: 48 89 08 mov %rcx,(%rax) 22c119: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c11d: 48 83 c0 10 add $0x10,%rax 22c121: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22c125: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22c12a: 48 01 c8 add %rcx,%rax 22c12d: 48 c7 40 08 01 00 00 00 movq $0x1,0x8(%rax) 22c135: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22c13d: 8b 48 14 mov 0x14(%rax),%ecx 22c140: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c144: 48 83 c0 10 add $0x10,%rax 22c148: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c14c: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c151: 48 01 d0 add %rdx,%rax 22c154: 89 48 10 mov %ecx,0x10(%rax) 22c157: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c15b: 48 83 c0 10 add $0x10,%rax 22c15f: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22c163: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22c168: 48 01 c8 add %rcx,%rax 22c16b: c7 40 14 01 00 00 00 movl $0x1,0x14(%rax) 22c172: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c176: 48 8b 48 08 mov 0x8(%rax),%rcx 22c17a: 48 83 c1 01 add $0x1,%rcx 22c17e: 48 89 48 08 mov %rcx,0x8(%rax) 22c182: 8b 45 c4 mov -0x3c(%rbp),%eax 22c185: 83 e8 01 sub $0x1,%eax 22c188: 48 98 cltq 22c18a: 48 03 45 b0 add -0x50(%rbp),%rax 22c18e: 48 89 45 b0 mov %rax,-0x50(%rbp) 22c192: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22c199: 48 8b 75 c8 mov -0x38(%rbp),%rsi 22c19d: e8 ae 25 01 00 call 23e750 22c1a2: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) } 22c1a9: e9 00 00 00 00 jmp 22c1ae if (!haveCommInExe && haveCommInCmdline && !haveCommField && (!Process_isUserlandThread(this) || showThreadNames)) 22c1ae: f6 85 63 ff ff ff 01 testb $0x1,-0x9d(%rbp) 22c1b5: 0f 85 ee 00 00 00 jne 22c2a9 22c1bb: f6 85 62 ff ff ff 01 testb $0x1,-0x9e(%rbp) 22c1c2: 0f 84 e1 00 00 00 je 22c2a9 22c1c8: f6 85 5b ff ff ff 01 testb $0x1,-0xa5(%rbp) 22c1cf: 0f 85 d4 00 00 00 jne 22c2a9 22c1d5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22c1d9: e8 32 01 00 00 call 22c310 22c1de: a8 01 test $0x1,%al 22c1e0: 0f 85 05 00 00 00 jne 22c1eb 22c1e6: e9 0a 00 00 00 jmp 22c1f5 22c1eb: f6 45 d3 01 testb $0x1,-0x2d(%rbp) 22c1ef: 0f 84 b4 00 00 00 je 22c2a9 WRITE_HIGHLIGHT(commStart, commEnd - commStart, commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM); 22c1f5: e9 00 00 00 00 jmp 22c1fa 22c1fa: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c1fe: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22c203: 0f 82 05 00 00 00 jb 22c20e 22c209: e9 96 00 00 00 jmp 22c2a4 22c20e: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx 22c215: 48 8b 45 80 mov -0x80(%rbp),%rax 22c219: 48 29 c1 sub %rax,%rcx 22c21c: 48 63 45 f4 movslq -0xc(%rbp),%rax 22c220: 48 01 c1 add %rax,%rcx 22c223: 48 2b 4d b0 sub -0x50(%rbp),%rcx 22c227: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c22b: 48 83 c0 10 add $0x10,%rax 22c22f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c233: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c238: 48 01 d0 add %rdx,%rax 22c23b: 48 89 08 mov %rcx,(%rax) 22c23e: 8b 45 f0 mov -0x10(%rbp),%eax 22c241: 2b 45 f4 sub -0xc(%rbp),%eax 22c244: 48 63 c8 movslq %eax,%rcx 22c247: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c24b: 48 83 c0 10 add $0x10,%rax 22c24f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c253: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c258: 48 01 d0 add %rdx,%rax 22c25b: 48 89 48 08 mov %rcx,0x8(%rax) 22c25f: 8b 4d a8 mov -0x58(%rbp),%ecx 22c262: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c266: 48 83 c0 10 add $0x10,%rax 22c26a: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22c26e: 48 6b 52 08 18 imul $0x18,0x8(%rdx),%rdx 22c273: 48 01 d0 add %rdx,%rax 22c276: 89 48 10 mov %ecx,0x10(%rax) 22c279: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c27d: 48 83 c0 10 add $0x10,%rax 22c281: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22c285: 48 6b 49 08 18 imul $0x18,0x8(%rcx),%rcx 22c28a: 48 01 c8 add %rcx,%rax 22c28d: c7 40 14 04 00 00 00 movl $0x4,0x14(%rax) 22c294: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c298: 48 8b 48 08 mov 0x8(%rax),%rcx 22c29c: 48 83 c1 01 add $0x1,%rcx 22c2a0: 48 89 48 08 mov %rcx,0x8(%rax) 22c2a4: e9 00 00 00 00 jmp 22c2a9 /* Display cmdline if it hasn't been consumed by procExe */ if (*cmdline) 22c2a9: 48 8b 45 98 mov -0x68(%rbp),%rax 22c2ad: 80 38 00 cmpb $0x0,(%rax) 22c2b0: 0f 84 10 00 00 00 je 22c2c6 (void)stpcpyWithNewlineConversion(str, cmdline); 22c2b6: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 22c2bd: 48 8b 75 98 mov -0x68(%rbp),%rsi 22c2c1: e8 aa 00 00 00 call 22c370 22c2c6: 48 8b 05 63 65 01 00 mov 0x16563(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22c2cd: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22c2d1: 48 39 c8 cmp %rcx,%rax 22c2d4: 0f 85 09 00 00 00 jne 22c2e3 #undef WRITE_SEPARATOR #undef WRITE_HIGHLIGHT } 22c2da: 48 81 c4 30 01 00 00 add $0x130,%rsp 22c2e1: 5d pop %rbp 22c2e2: c3 ret 22c2e3: e8 58 1e 01 00 call 23e140 <__stack_chk_fail@plt> 22c2e8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000022c2f0 : static inline bool Process_isKernelThread(const Process* this) { 22c2f0: 55 push %rbp 22c2f1: 48 89 e5 mov %rsp,%rbp 22c2f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isKernelThread; 22c2f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c2fc: 8a 40 30 mov 0x30(%rax),%al 22c2ff: 24 01 and $0x1,%al 22c301: 0f b6 c0 movzbl %al,%eax 22c304: 5d pop %rbp 22c305: c3 ret 22c306: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000022c310 : static inline bool Process_isUserlandThread(const Process* this) { 22c310: 55 push %rbp 22c311: 48 89 e5 mov %rsp,%rbp 22c314: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isUserlandThread; 22c318: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c31c: 8a 40 31 mov 0x31(%rax),%al 22c31f: 24 01 and $0x1,%al 22c321: 0f b6 c0 movzbl %al,%eax 22c324: 5d pop %rbp 22c325: c3 ret 22c326: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000022c330 : static inline bool Process_isThread(const Process* this) { 22c330: 55 push %rbp 22c331: 48 89 e5 mov %rsp,%rbp 22c334: 48 83 ec 10 sub $0x10,%rsp 22c338: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Process_isUserlandThread(this) || Process_isKernelThread(this); 22c33c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22c340: e8 cb ff ff ff call 22c310 22c345: 88 c1 mov %al,%cl 22c347: b0 01 mov $0x1,%al 22c349: f6 c1 01 test $0x1,%cl 22c34c: 88 45 f7 mov %al,-0x9(%rbp) 22c34f: 0f 85 0c 00 00 00 jne 22c361 22c355: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22c359: e8 92 ff ff ff call 22c2f0 22c35e: 88 45 f7 mov %al,-0x9(%rbp) 22c361: 8a 45 f7 mov -0x9(%rbp),%al 22c364: 24 01 and $0x1,%al 22c366: 0f b6 c0 movzbl %al,%eax 22c369: 48 83 c4 10 add $0x10,%rsp 22c36d: 5d pop %rbp 22c36e: c3 ret 22c36f: 90 nop 000000000022c370 : static inline char* stpcpyWithNewlineConversion(char* dstStr, const char* srcStr) { 22c370: 55 push %rbp 22c371: 48 89 e5 mov %rsp,%rbp 22c374: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22c378: 48 89 75 f0 mov %rsi,-0x10(%rbp) for (; *srcStr; ++srcStr) { 22c37c: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c380: 80 38 00 cmpb $0x0,(%rax) 22c383: 0f 84 4e 00 00 00 je 22c3d7 *dstStr++ = (*srcStr == '\n') ? ' ' : *srcStr; 22c389: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c38d: 0f be 00 movsbl (%rax),%eax 22c390: 83 f8 0a cmp $0xa,%eax 22c393: 0f 85 0d 00 00 00 jne 22c3a6 22c399: b8 20 00 00 00 mov $0x20,%eax 22c39e: 89 45 ec mov %eax,-0x14(%rbp) 22c3a1: e9 0a 00 00 00 jmp 22c3b0 22c3a6: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c3aa: 0f be 00 movsbl (%rax),%eax 22c3ad: 89 45 ec mov %eax,-0x14(%rbp) 22c3b0: 8b 45 ec mov -0x14(%rbp),%eax 22c3b3: 88 c1 mov %al,%cl 22c3b5: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c3b9: 48 89 c2 mov %rax,%rdx 22c3bc: 48 83 c2 01 add $0x1,%rdx 22c3c0: 48 89 55 f8 mov %rdx,-0x8(%rbp) 22c3c4: 88 08 mov %cl,(%rax) for (; *srcStr; ++srcStr) { 22c3c6: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c3ca: 48 83 c0 01 add $0x1,%rax 22c3ce: 48 89 45 f0 mov %rax,-0x10(%rbp) 22c3d2: e9 a5 ff ff ff jmp 22c37c *dstStr = 0; 22c3d7: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c3db: c6 00 00 movb $0x0,(%rax) return dstStr; 22c3de: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c3e2: 5d pop %rbp 22c3e3: c3 ret 22c3e4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22c3ee: 66 90 xchg %ax,%ax 000000000022c3f0 : static bool findCommInCmdline(const char* comm, const char* cmdline, int cmdlineBasenameStart, int* pCommStart, int* pCommEnd) { 22c3f0: 55 push %rbp 22c3f1: 48 89 e5 mov %rsp,%rbp 22c3f4: 48 83 ec 60 sub $0x60,%rsp 22c3f8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22c3fc: 48 89 75 e8 mov %rsi,-0x18(%rbp) 22c400: 89 55 e4 mov %edx,-0x1c(%rbp) 22c403: 48 89 4d d8 mov %rcx,-0x28(%rbp) 22c407: 4c 89 45 d0 mov %r8,-0x30(%rbp) const size_t commLen = strlen(comm); 22c40b: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22c40f: e8 dc 1d 01 00 call 23e1f0 22c414: 48 89 45 b8 mov %rax,-0x48(%rbp) if (cmdlineBasenameStart < 0) 22c418: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 22c41c: 0f 8d 09 00 00 00 jge 22c42b return false; 22c422: c6 45 ff 00 movb $0x0,-0x1(%rbp) 22c426: e9 6a 01 00 00 jmp 22c595 for (const char* token = cmdline + cmdlineBasenameStart; *token;) { 22c42b: 48 8b 45 e8 mov -0x18(%rbp),%rax 22c42f: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 22c433: 48 01 c8 add %rcx,%rax 22c436: 48 89 45 b0 mov %rax,-0x50(%rbp) 22c43a: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c43e: 80 38 00 cmpb $0x0,(%rax) 22c441: 0f 84 4a 01 00 00 je 22c591 for (tokenBase = token; *token && *token != '\n'; ++token) { 22c447: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c44b: 48 89 45 c8 mov %rax,-0x38(%rbp) 22c44f: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c453: 0f be 08 movsbl (%rax),%ecx 22c456: 31 c0 xor %eax,%eax 22c458: 83 f9 00 cmp $0x0,%ecx 22c45b: 88 45 af mov %al,-0x51(%rbp) 22c45e: 0f 84 10 00 00 00 je 22c474 22c464: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c468: 0f be 00 movsbl (%rax),%eax 22c46b: 83 f8 0a cmp $0xa,%eax 22c46e: 0f 95 c0 setne %al 22c471: 88 45 af mov %al,-0x51(%rbp) 22c474: 8a 45 af mov -0x51(%rbp),%al 22c477: a8 01 test $0x1,%al 22c479: 0f 85 05 00 00 00 jne 22c484 22c47f: e9 32 00 00 00 jmp 22c4b6 if (*token == '/') { 22c484: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c488: 0f be 00 movsbl (%rax),%eax 22c48b: 83 f8 2f cmp $0x2f,%eax 22c48e: 0f 85 0c 00 00 00 jne 22c4a0 tokenBase = token + 1; 22c494: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c498: 48 83 c0 01 add $0x1,%rax 22c49c: 48 89 45 c8 mov %rax,-0x38(%rbp) } 22c4a0: e9 00 00 00 00 jmp 22c4a5 for (tokenBase = token; *token && *token != '\n'; ++token) { 22c4a5: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c4a9: 48 83 c0 01 add $0x1,%rax 22c4ad: 48 89 45 b0 mov %rax,-0x50(%rbp) 22c4b1: e9 99 ff ff ff jmp 22c44f tokenLen = token - tokenBase; 22c4b6: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c4ba: 48 8b 4d c8 mov -0x38(%rbp),%rcx 22c4be: 48 29 c8 sub %rcx,%rax 22c4c1: 48 89 45 c0 mov %rax,-0x40(%rbp) if ((tokenLen == commLen || (tokenLen > commLen && commLen == (TASK_COMM_LEN - 1))) && 22c4c5: 48 8b 45 c0 mov -0x40(%rbp),%rax 22c4c9: 48 3b 45 b8 cmp -0x48(%rbp),%rax 22c4cd: 0f 84 19 00 00 00 je 22c4ec 22c4d3: 48 8b 45 c0 mov -0x40(%rbp),%rax 22c4d7: 48 3b 45 b8 cmp -0x48(%rbp),%rax 22c4db: 0f 86 54 00 00 00 jbe 22c535 22c4e1: 48 83 7d b8 0f cmpq $0xf,-0x48(%rbp) 22c4e6: 0f 85 49 00 00 00 jne 22c535 strncmp(tokenBase, comm, commLen) == 0) { 22c4ec: 48 8b 7d c8 mov -0x38(%rbp),%rdi 22c4f0: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22c4f4: 48 8b 55 b8 mov -0x48(%rbp),%rdx 22c4f8: e8 83 1f 01 00 call 23e480 22c4fd: 83 f8 00 cmp $0x0,%eax if ((tokenLen == commLen || (tokenLen > commLen && commLen == (TASK_COMM_LEN - 1))) && 22c500: 0f 85 2f 00 00 00 jne 22c535 *pCommStart = tokenBase - cmdline; 22c506: 48 8b 45 c8 mov -0x38(%rbp),%rax 22c50a: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22c50e: 48 29 c8 sub %rcx,%rax 22c511: 89 c1 mov %eax,%ecx 22c513: 48 8b 45 d8 mov -0x28(%rbp),%rax 22c517: 89 08 mov %ecx,(%rax) *pCommEnd = token - cmdline; 22c519: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c51d: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22c521: 48 29 c8 sub %rcx,%rax 22c524: 89 c1 mov %eax,%ecx 22c526: 48 8b 45 d0 mov -0x30(%rbp),%rax 22c52a: 89 08 mov %ecx,(%rax) return true; 22c52c: c6 45 ff 01 movb $0x1,-0x1(%rbp) 22c530: e9 60 00 00 00 jmp 22c595 if (*token) { 22c535: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c539: 80 38 00 cmpb $0x0,(%rax) 22c53c: 0f 84 4a 00 00 00 je 22c58c do { 22c542: e9 00 00 00 00 jmp 22c547 ++token; 22c547: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c54b: 48 83 c0 01 add $0x1,%rax 22c54f: 48 89 45 b0 mov %rax,-0x50(%rbp) } while (*token && '\n' == *token); 22c553: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c557: 0f be 08 movsbl (%rax),%ecx 22c55a: 31 c0 xor %eax,%eax 22c55c: 83 f9 00 cmp $0x0,%ecx 22c55f: 88 45 ae mov %al,-0x52(%rbp) 22c562: 0f 84 14 00 00 00 je 22c57c 22c568: 48 8b 45 b0 mov -0x50(%rbp),%rax 22c56c: 0f be 08 movsbl (%rax),%ecx 22c56f: b8 0a 00 00 00 mov $0xa,%eax 22c574: 39 c8 cmp %ecx,%eax 22c576: 0f 94 c0 sete %al 22c579: 88 45 ae mov %al,-0x52(%rbp) 22c57c: 8a 45 ae mov -0x52(%rbp),%al 22c57f: a8 01 test $0x1,%al 22c581: 0f 85 c0 ff ff ff jne 22c547 } 22c587: e9 00 00 00 00 jmp 22c58c for (const char* token = cmdline + cmdlineBasenameStart; *token;) { 22c58c: e9 a9 fe ff ff jmp 22c43a return false; 22c591: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 22c595: 8a 45 ff mov -0x1(%rbp),%al 22c598: 24 01 and $0x1,%al 22c59a: 0f b6 c0 movzbl %al,%eax 22c59d: 48 83 c4 60 add $0x60,%rsp 22c5a1: 5d pop %rbp 22c5a2: c3 ret 22c5a3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22c5ad: 0f 1f 00 nopl (%rax) 000000000022c5b0 : static int matchCmdlinePrefixWithExeSuffix(const char* cmdline, int cmdlineBaseOffset, const char* exe, int exeBaseOffset, int exeBaseLen) { 22c5b0: 55 push %rbp 22c5b1: 48 89 e5 mov %rsp,%rbp 22c5b4: 48 83 ec 40 sub $0x40,%rsp 22c5b8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22c5bc: 89 75 ec mov %esi,-0x14(%rbp) 22c5bf: 48 89 55 e0 mov %rdx,-0x20(%rbp) 22c5c3: 89 4d dc mov %ecx,-0x24(%rbp) 22c5c6: 44 89 45 d8 mov %r8d,-0x28(%rbp) if (cmdline[0] == '/') { 22c5ca: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c5ce: 0f be 00 movsbl (%rax),%eax 22c5d1: 83 f8 2f cmp $0x2f,%eax 22c5d4: 0f 85 74 00 00 00 jne 22c64e matchLen = exeBaseLen + exeBaseOffset; 22c5da: 8b 45 d8 mov -0x28(%rbp),%eax 22c5dd: 03 45 dc add -0x24(%rbp),%eax 22c5e0: 89 45 d4 mov %eax,-0x2c(%rbp) if (strncmp(cmdline, exe, matchLen) == 0) { 22c5e3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22c5e7: 48 8b 75 e0 mov -0x20(%rbp),%rsi 22c5eb: 48 63 55 d4 movslq -0x2c(%rbp),%rdx 22c5ef: e8 8c 1e 01 00 call 23e480 22c5f4: 83 f8 00 cmp $0x0,%eax 22c5f7: 0f 85 45 00 00 00 jne 22c642 delim = cmdline[matchLen]; 22c5fd: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c601: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 22c605: 8a 04 08 mov (%rax,%rcx,1),%al 22c608: 88 45 d3 mov %al,-0x2d(%rbp) if (delim == 0 || delim == '\n' || delim == ' ') { 22c60b: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c60f: 83 f8 00 cmp $0x0,%eax 22c612: 0f 84 1a 00 00 00 je 22c632 22c618: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c61c: 83 f8 0a cmp $0xa,%eax 22c61f: 0f 84 0d 00 00 00 je 22c632 22c625: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c629: 83 f8 20 cmp $0x20,%eax 22c62c: 0f 85 0b 00 00 00 jne 22c63d return matchLen; 22c632: 8b 45 d4 mov -0x2c(%rbp),%eax 22c635: 89 45 fc mov %eax,-0x4(%rbp) 22c638: e9 e3 01 00 00 jmp 22c820 } 22c63d: e9 00 00 00 00 jmp 22c642 return 0; 22c642: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 22c649: e9 d2 01 00 00 jmp 22c820 do { 22c64e: e9 00 00 00 00 jmp 22c653 matchLen = exeBaseLen + cmdlineBaseOffset; 22c653: 8b 45 d8 mov -0x28(%rbp),%eax 22c656: 03 45 ec add -0x14(%rbp),%eax 22c659: 89 45 d4 mov %eax,-0x2c(%rbp) if (cmdlineBaseOffset < exeBaseOffset && 22c65c: 8b 45 ec mov -0x14(%rbp),%eax 22c65f: 3b 45 dc cmp -0x24(%rbp),%eax 22c662: 0f 8d 17 01 00 00 jge 22c77f strncmp(cmdline + cmdlineBaseOffset, exe + exeBaseOffset, exeBaseLen) == 0) { 22c668: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22c66c: 48 63 45 ec movslq -0x14(%rbp),%rax 22c670: 48 01 c7 add %rax,%rdi 22c673: 48 8b 75 e0 mov -0x20(%rbp),%rsi 22c677: 48 63 45 dc movslq -0x24(%rbp),%rax 22c67b: 48 01 c6 add %rax,%rsi 22c67e: 48 63 55 d8 movslq -0x28(%rbp),%rdx 22c682: e8 f9 1d 01 00 call 23e480 22c687: 83 f8 00 cmp $0x0,%eax if (cmdlineBaseOffset < exeBaseOffset && 22c68a: 0f 85 ef 00 00 00 jne 22c77f delim = cmdline[matchLen]; 22c690: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c694: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 22c698: 8a 04 08 mov (%rax,%rcx,1),%al 22c69b: 88 45 d3 mov %al,-0x2d(%rbp) if (delim == 0 || delim == '\n' || delim == ' ') { 22c69e: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c6a2: 83 f8 00 cmp $0x0,%eax 22c6a5: 0f 84 1a 00 00 00 je 22c6c5 22c6ab: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c6af: 83 f8 0a cmp $0xa,%eax 22c6b2: 0f 84 0d 00 00 00 je 22c6c5 22c6b8: 0f be 45 d3 movsbl -0x2d(%rbp),%eax 22c6bc: 83 f8 20 cmp $0x20,%eax 22c6bf: 0f 85 b5 00 00 00 jne 22c77a for (i = cmdlineBaseOffset - 1, j = exeBaseOffset - 1; 22c6c5: 8b 45 ec mov -0x14(%rbp),%eax 22c6c8: 83 e8 01 sub $0x1,%eax 22c6cb: 89 45 cc mov %eax,-0x34(%rbp) 22c6ce: 8b 45 dc mov -0x24(%rbp),%eax 22c6d1: 83 e8 01 sub $0x1,%eax 22c6d4: 89 45 c8 mov %eax,-0x38(%rbp) i >= 0 && j >= 0 && cmdline[i] == exe[j]; --i, --j) 22c6d7: 31 c0 xor %eax,%eax 22c6d9: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) 22c6dd: 88 45 c7 mov %al,-0x39(%rbp) 22c6e0: 0f 8c 2f 00 00 00 jl 22c715 22c6e6: 31 c0 xor %eax,%eax 22c6e8: 83 7d c8 00 cmpl $0x0,-0x38(%rbp) 22c6ec: 88 45 c7 mov %al,-0x39(%rbp) 22c6ef: 0f 8c 20 00 00 00 jl 22c715 22c6f5: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c6f9: 48 63 4d cc movslq -0x34(%rbp),%rcx 22c6fd: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c701: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22c705: 48 63 55 c8 movslq -0x38(%rbp),%rdx 22c709: 0f be 0c 11 movsbl (%rcx,%rdx,1),%ecx 22c70d: 39 c8 cmp %ecx,%eax 22c70f: 0f 94 c0 sete %al 22c712: 88 45 c7 mov %al,-0x39(%rbp) 22c715: 8a 45 c7 mov -0x39(%rbp),%al for (i = cmdlineBaseOffset - 1, j = exeBaseOffset - 1; 22c718: a8 01 test $0x1,%al 22c71a: 0f 85 05 00 00 00 jne 22c725 22c720: e9 1c 00 00 00 jmp 22c741 22c725: e9 00 00 00 00 jmp 22c72a i >= 0 && j >= 0 && cmdline[i] == exe[j]; --i, --j) 22c72a: 8b 45 cc mov -0x34(%rbp),%eax 22c72d: 83 c0 ff add $0xffffffff,%eax 22c730: 89 45 cc mov %eax,-0x34(%rbp) 22c733: 8b 45 c8 mov -0x38(%rbp),%eax 22c736: 83 c0 ff add $0xffffffff,%eax 22c739: 89 45 c8 mov %eax,-0x38(%rbp) for (i = cmdlineBaseOffset - 1, j = exeBaseOffset - 1; 22c73c: e9 96 ff ff ff jmp 22c6d7 if (i < 0 && j >= 0 && exe[j] == '/') 22c741: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) 22c745: 0f 8d 2a 00 00 00 jge 22c775 22c74b: 83 7d c8 00 cmpl $0x0,-0x38(%rbp) 22c74f: 0f 8c 20 00 00 00 jl 22c775 22c755: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c759: 48 63 4d c8 movslq -0x38(%rbp),%rcx 22c75d: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c761: 83 f8 2f cmp $0x2f,%eax 22c764: 0f 85 0b 00 00 00 jne 22c775 return matchLen; 22c76a: 8b 45 d4 mov -0x2c(%rbp),%eax 22c76d: 89 45 fc mov %eax,-0x4(%rbp) 22c770: e9 ab 00 00 00 jmp 22c820 } 22c775: e9 00 00 00 00 jmp 22c77a } 22c77a: e9 00 00 00 00 jmp 22c77f for (delimFound = false, cmdlineBaseOffset -= 2; cmdlineBaseOffset > 0; --cmdlineBaseOffset) { 22c77f: c6 45 d2 00 movb $0x0,-0x2e(%rbp) 22c783: 8b 45 ec mov -0x14(%rbp),%eax 22c786: 83 e8 02 sub $0x2,%eax 22c789: 89 45 ec mov %eax,-0x14(%rbp) 22c78c: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 22c790: 0f 8e 74 00 00 00 jle 22c80a if (delimFound) { 22c796: f6 45 d2 01 testb $0x1,-0x2e(%rbp) 22c79a: 0f 84 24 00 00 00 je 22c7c4 if (cmdline[cmdlineBaseOffset - 1] == '/') { 22c7a0: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c7a4: 8b 4d ec mov -0x14(%rbp),%ecx 22c7a7: 83 e9 01 sub $0x1,%ecx 22c7aa: 48 63 c9 movslq %ecx,%rcx 22c7ad: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c7b1: 83 f8 2f cmp $0x2f,%eax 22c7b4: 0f 85 05 00 00 00 jne 22c7bf break; 22c7ba: e9 4b 00 00 00 jmp 22c80a } else if (cmdline[cmdlineBaseOffset] == ' ' || cmdline[cmdlineBaseOffset] == '\n') { 22c7bf: e9 33 00 00 00 jmp 22c7f7 22c7c4: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c7c8: 48 63 4d ec movslq -0x14(%rbp),%rcx 22c7cc: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c7d0: 83 f8 20 cmp $0x20,%eax 22c7d3: 0f 84 15 00 00 00 je 22c7ee 22c7d9: 48 8b 45 f0 mov -0x10(%rbp),%rax 22c7dd: 48 63 4d ec movslq -0x14(%rbp),%rcx 22c7e1: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c7e5: 83 f8 0a cmp $0xa,%eax 22c7e8: 0f 85 04 00 00 00 jne 22c7f2 delimFound = true; 22c7ee: c6 45 d2 01 movb $0x1,-0x2e(%rbp) 22c7f2: e9 00 00 00 00 jmp 22c7f7 } 22c7f7: e9 00 00 00 00 jmp 22c7fc for (delimFound = false, cmdlineBaseOffset -= 2; cmdlineBaseOffset > 0; --cmdlineBaseOffset) { 22c7fc: 8b 45 ec mov -0x14(%rbp),%eax 22c7ff: 83 c0 ff add $0xffffffff,%eax 22c802: 89 45 ec mov %eax,-0x14(%rbp) 22c805: e9 82 ff ff ff jmp 22c78c } while (delimFound); 22c80a: e9 00 00 00 00 jmp 22c80f 22c80f: f6 45 d2 01 testb $0x1,-0x2e(%rbp) 22c813: 0f 85 3a fe ff ff jne 22c653 return 0; 22c819: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) } 22c820: 8b 45 fc mov -0x4(%rbp),%eax 22c823: 48 83 c4 40 add $0x40,%rsp 22c827: 5d pop %rbp 22c828: c3 ret 22c829: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000022c830 : void Process_writeCommand(const Process* this, int attr, int baseAttr, RichString* str) { 22c830: 55 push %rbp 22c831: 48 89 e5 mov %rsp,%rbp 22c834: 48 83 ec 70 sub $0x70,%rsp 22c838: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22c83c: 89 75 f4 mov %esi,-0xc(%rbp) 22c83f: 89 55 f0 mov %edx,-0x10(%rbp) 22c842: 48 89 4d e8 mov %rcx,-0x18(%rbp) (void)baseAttr; const ProcessMergedCommand* mc = &this->mergedCommand; 22c846: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c84a: 48 05 20 01 00 00 add $0x120,%rax 22c850: 48 89 45 e0 mov %rax,-0x20(%rbp) int strStart = RichString_size(str); 22c854: 48 8b 45 e8 mov -0x18(%rbp),%rax 22c858: 8b 00 mov (%rax),%eax 22c85a: 89 45 dc mov %eax,-0x24(%rbp) const bool highlightBaseName = this->settings->highlightBaseName; 22c85d: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c861: 48 8b 40 10 mov 0x10(%rax),%rax 22c865: 8a 40 52 mov 0x52(%rax),%al 22c868: 24 01 and $0x1,%al 22c86a: 88 45 db mov %al,-0x25(%rbp) const bool highlightSeparator = true; 22c86d: c6 45 da 01 movb $0x1,-0x26(%rbp) const bool highlightDeleted = this->settings->highlightDeletedExe; 22c871: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c875: 48 8b 40 10 mov 0x10(%rax),%rax 22c879: 8a 40 53 mov 0x53(%rax),%al 22c87c: 24 01 and $0x1,%al 22c87e: 88 45 d9 mov %al,-0x27(%rbp) if (!this->mergedCommand.str) { 22c881: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c885: 48 83 b8 20 01 00 00 00 cmpq $0x0,0x120(%rax) 22c88d: 0f 85 31 01 00 00 jne 22c9c4 int len = 0; 22c893: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) const char* cmdline = this->cmdline; 22c89a: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c89e: 48 8b 40 60 mov 0x60(%rax),%rax 22c8a2: 48 89 45 c8 mov %rax,-0x38(%rbp) if (highlightBaseName || !this->settings->showProgramPath) { 22c8a6: f6 45 db 01 testb $0x1,-0x25(%rbp) 22c8aa: 0f 85 12 00 00 00 jne 22c8c2 22c8b0: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c8b4: 48 8b 40 10 mov 0x10(%rax),%rax 22c8b8: f6 40 4d 01 testb $0x1,0x4d(%rax) 22c8bc: 0f 85 c9 00 00 00 jne 22c98b int basename = 0; 22c8c2: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) for (int i = 0; i < this->cmdlineBasenameEnd; i++) { 22c8c9: c7 45 c0 00 00 00 00 movl $0x0,-0x40(%rbp) 22c8d0: 8b 45 c0 mov -0x40(%rbp),%eax 22c8d3: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22c8d7: 3b 41 68 cmp 0x68(%rcx),%eax 22c8da: 0f 8d 5e 00 00 00 jge 22c93e if (cmdline[i] == '/') { 22c8e0: 48 8b 45 c8 mov -0x38(%rbp),%rax 22c8e4: 48 63 4d c0 movslq -0x40(%rbp),%rcx 22c8e8: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c8ec: 83 f8 2f cmp $0x2f,%eax 22c8ef: 0f 85 0e 00 00 00 jne 22c903 basename = i + 1; 22c8f5: 8b 45 c0 mov -0x40(%rbp),%eax 22c8f8: 83 c0 01 add $0x1,%eax 22c8fb: 89 45 c4 mov %eax,-0x3c(%rbp) } else if (cmdline[i] == ':') { 22c8fe: e9 28 00 00 00 jmp 22c92b 22c903: 48 8b 45 c8 mov -0x38(%rbp),%rax 22c907: 48 63 4d c0 movslq -0x40(%rbp),%rcx 22c90b: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22c90f: 83 f8 3a cmp $0x3a,%eax 22c912: 0f 85 0e 00 00 00 jne 22c926 len = i + 1; 22c918: 8b 45 c0 mov -0x40(%rbp),%eax 22c91b: 83 c0 01 add $0x1,%eax 22c91e: 89 45 d4 mov %eax,-0x2c(%rbp) break; 22c921: e9 18 00 00 00 jmp 22c93e 22c926: e9 00 00 00 00 jmp 22c92b } } 22c92b: e9 00 00 00 00 jmp 22c930 for (int i = 0; i < this->cmdlineBasenameEnd; i++) { 22c930: 8b 45 c0 mov -0x40(%rbp),%eax 22c933: 83 c0 01 add $0x1,%eax 22c936: 89 45 c0 mov %eax,-0x40(%rbp) 22c939: e9 92 ff ff ff jmp 22c8d0 if (len == 0) { 22c93e: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) 22c942: 0f 85 3e 00 00 00 jne 22c986 if (this->settings->showProgramPath) { 22c948: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c94c: 48 8b 40 10 mov 0x10(%rax),%rax 22c950: f6 40 4d 01 testb $0x1,0x4d(%rax) 22c954: 0f 84 0e 00 00 00 je 22c968 strStart += basename; 22c95a: 8b 45 c4 mov -0x3c(%rbp),%eax 22c95d: 03 45 dc add -0x24(%rbp),%eax 22c960: 89 45 dc mov %eax,-0x24(%rbp) } else { 22c963: e9 11 00 00 00 jmp 22c979 cmdline += basename; 22c968: 8b 4d c4 mov -0x3c(%rbp),%ecx 22c96b: 48 8b 45 c8 mov -0x38(%rbp),%rax 22c96f: 48 63 c9 movslq %ecx,%rcx 22c972: 48 01 c8 add %rcx,%rax 22c975: 48 89 45 c8 mov %rax,-0x38(%rbp) } len = this->cmdlineBasenameEnd - basename; 22c979: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c97d: 8b 40 68 mov 0x68(%rax),%eax 22c980: 2b 45 c4 sub -0x3c(%rbp),%eax 22c983: 89 45 d4 mov %eax,-0x2c(%rbp) } } 22c986: e9 00 00 00 00 jmp 22c98b RichString_appendWide(str, attr, cmdline); 22c98b: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22c98f: 8b 75 f4 mov -0xc(%rbp),%esi 22c992: 48 8b 55 c8 mov -0x38(%rbp),%rdx 22c996: e8 35 59 00 00 call 2322d0 if (this->settings->highlightBaseName) { 22c99b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c99f: 48 8b 40 10 mov 0x10(%rax),%rax 22c9a3: f6 40 52 01 testb $0x1,0x52(%rax) 22c9a7: 0f 84 12 00 00 00 je 22c9bf RichString_setAttrn(str, baseAttr, strStart, len); 22c9ad: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22c9b1: 8b 75 f0 mov -0x10(%rbp),%esi 22c9b4: 8b 55 dc mov -0x24(%rbp),%edx 22c9b7: 8b 4d d4 mov -0x2c(%rbp),%ecx 22c9ba: e8 81 56 00 00 call 232040 } return; 22c9bf: e9 4b 01 00 00 jmp 22cb0f } RichString_appendWide(str, attr, this->mergedCommand.str); 22c9c4: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22c9c8: 8b 75 f4 mov -0xc(%rbp),%esi 22c9cb: 48 8b 45 f8 mov -0x8(%rbp),%rax 22c9cf: 48 8b 90 20 01 00 00 mov 0x120(%rax),%rdx 22c9d6: e8 f5 58 00 00 call 2322d0 for (size_t i = 0, hlCount = CLAMP(mc->highlightCount, 0, ARRAYSIZE(mc->highlights)); i < hlCount; i++) { 22c9db: 48 c7 45 b8 00 00 00 00 movq $0x0,-0x48(%rbp) 22c9e3: 48 8b 45 e0 mov -0x20(%rbp),%rax 22c9e7: 48 83 78 08 08 cmpq $0x8,0x8(%rax) 22c9ec: 0f 86 0e 00 00 00 jbe 22ca00 22c9f2: b8 08 00 00 00 mov $0x8,%eax 22c9f7: 48 89 45 a0 mov %rax,-0x60(%rbp) 22c9fb: e9 33 00 00 00 jmp 22ca33 22ca00: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ca04: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 22ca09: 0f 86 11 00 00 00 jbe 22ca20 22ca0f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ca13: 48 8b 40 08 mov 0x8(%rax),%rax 22ca17: 48 89 45 98 mov %rax,-0x68(%rbp) 22ca1b: e9 0b 00 00 00 jmp 22ca2b 22ca20: 31 c0 xor %eax,%eax 22ca22: 48 89 45 98 mov %rax,-0x68(%rbp) 22ca26: e9 00 00 00 00 jmp 22ca2b 22ca2b: 48 8b 45 98 mov -0x68(%rbp),%rax 22ca2f: 48 89 45 a0 mov %rax,-0x60(%rbp) 22ca33: 48 8b 45 a0 mov -0x60(%rbp),%rax 22ca37: 48 89 45 b0 mov %rax,-0x50(%rbp) 22ca3b: 48 8b 45 b8 mov -0x48(%rbp),%rax 22ca3f: 48 3b 45 b0 cmp -0x50(%rbp),%rax 22ca43: 0f 83 c6 00 00 00 jae 22cb0f const ProcessCmdlineHighlight* hl = &mc->highlights[i]; 22ca49: 48 8b 45 e0 mov -0x20(%rbp),%rax 22ca4d: 48 83 c0 10 add $0x10,%rax 22ca51: 48 6b 4d b8 18 imul $0x18,-0x48(%rbp),%rcx 22ca56: 48 01 c8 add %rcx,%rax 22ca59: 48 89 45 a8 mov %rax,-0x58(%rbp) if (!hl->length) 22ca5d: 48 8b 45 a8 mov -0x58(%rbp),%rax 22ca61: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 22ca66: 0f 85 05 00 00 00 jne 22ca71 continue; 22ca6c: e9 8d 00 00 00 jmp 22cafe if (hl->flags & CMDLINE_HIGHLIGHT_FLAG_SEPARATOR) 22ca71: 48 8b 45 a8 mov -0x58(%rbp),%rax 22ca75: 8b 40 14 mov 0x14(%rax),%eax 22ca78: 83 e0 01 and $0x1,%eax 22ca7b: 83 f8 00 cmp $0x0,%eax 22ca7e: 0f 84 05 00 00 00 je 22ca89 if (!highlightSeparator) 22ca84: e9 00 00 00 00 jmp 22ca89 continue; if (hl->flags & CMDLINE_HIGHLIGHT_FLAG_BASENAME) 22ca89: 48 8b 45 a8 mov -0x58(%rbp),%rax 22ca8d: 8b 40 14 mov 0x14(%rax),%eax 22ca90: 83 e0 02 and $0x2,%eax 22ca93: 83 f8 00 cmp $0x0,%eax 22ca96: 0f 84 14 00 00 00 je 22cab0 if (!highlightBaseName) 22ca9c: f6 45 db 01 testb $0x1,-0x25(%rbp) 22caa0: 0f 85 05 00 00 00 jne 22caab continue; 22caa6: e9 53 00 00 00 jmp 22cafe if (!highlightBaseName) 22caab: e9 00 00 00 00 jmp 22cab0 if (hl->flags & CMDLINE_HIGHLIGHT_FLAG_DELETED) 22cab0: 48 8b 45 a8 mov -0x58(%rbp),%rax 22cab4: 8b 40 14 mov 0x14(%rax),%eax 22cab7: 83 e0 08 and $0x8,%eax 22caba: 83 f8 00 cmp $0x0,%eax 22cabd: 0f 84 14 00 00 00 je 22cad7 if (!highlightDeleted) 22cac3: f6 45 d9 01 testb $0x1,-0x27(%rbp) 22cac7: 0f 85 05 00 00 00 jne 22cad2 continue; 22cacd: e9 2c 00 00 00 jmp 22cafe if (!highlightDeleted) 22cad2: e9 00 00 00 00 jmp 22cad7 RichString_setAttrn(str, hl->attr, strStart + hl->offset, hl->length); 22cad7: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22cadb: 48 8b 45 a8 mov -0x58(%rbp),%rax 22cadf: 8b 70 10 mov 0x10(%rax),%esi 22cae2: 48 63 45 dc movslq -0x24(%rbp),%rax 22cae6: 48 8b 4d a8 mov -0x58(%rbp),%rcx 22caea: 48 03 01 add (%rcx),%rax 22caed: 89 c2 mov %eax,%edx 22caef: 48 8b 45 a8 mov -0x58(%rbp),%rax 22caf3: 48 8b 40 08 mov 0x8(%rax),%rax 22caf7: 89 c1 mov %eax,%ecx 22caf9: e8 42 55 00 00 call 232040 for (size_t i = 0, hlCount = CLAMP(mc->highlightCount, 0, ARRAYSIZE(mc->highlights)); i < hlCount; i++) { 22cafe: 48 8b 45 b8 mov -0x48(%rbp),%rax 22cb02: 48 83 c0 01 add $0x1,%rax 22cb06: 48 89 45 b8 mov %rax,-0x48(%rbp) 22cb0a: e9 2c ff ff ff jmp 22ca3b } } 22cb0f: 48 83 c4 70 add $0x70,%rsp 22cb13: 5d pop %rbp 22cb14: c3 ret 22cb15: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22cb1f: 90 nop 000000000022cb20 : void Process_printRate(RichString* str, double rate, bool coloring) { 22cb20: 55 push %rbp 22cb21: 48 89 e5 mov %rsp,%rbp 22cb24: 48 83 ec 60 sub $0x60,%rsp 22cb28: 40 88 f0 mov %sil,%al 22cb2b: 48 8b 0d fe 5c 01 00 mov 0x15cfe(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 22cb32: 48 89 4d f8 mov %rcx,-0x8(%rbp) 22cb36: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22cb3a: f2 0f 11 45 d0 movsd %xmm0,-0x30(%rbp) 22cb3f: 24 01 and $0x1,%al 22cb41: 88 45 cf mov %al,-0x31(%rbp) char buffer[16]; int largeNumberColor = CRT_colors[LARGE_NUMBER]; 22cb44: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb4c: 8b 40 30 mov 0x30(%rax),%eax 22cb4f: 89 45 c8 mov %eax,-0x38(%rbp) int processMegabytesColor = CRT_colors[PROCESS_MEGABYTES]; 22cb52: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb5a: 8b 40 7c mov 0x7c(%rax),%eax 22cb5d: 89 45 c4 mov %eax,-0x3c(%rbp) int processColor = CRT_colors[PROCESS]; 22cb60: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb68: 8b 40 70 mov 0x70(%rax),%eax 22cb6b: 89 45 c0 mov %eax,-0x40(%rbp) int shadowColor = CRT_colors[PROCESS_SHADOW]; 22cb6e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb76: 8b 40 74 mov 0x74(%rax),%eax 22cb79: 89 45 bc mov %eax,-0x44(%rbp) if (!coloring) { 22cb7c: f6 45 cf 01 testb $0x1,-0x31(%rbp) 22cb80: 0f 85 1c 00 00 00 jne 22cba2 largeNumberColor = CRT_colors[PROCESS]; 22cb86: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb8e: 8b 40 70 mov 0x70(%rax),%eax 22cb91: 89 45 c8 mov %eax,-0x38(%rbp) processMegabytesColor = CRT_colors[PROCESS]; 22cb94: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cb9c: 8b 40 70 mov 0x70(%rax),%eax 22cb9f: 89 45 c4 mov %eax,-0x3c(%rbp) } if (isnan(rate)) { 22cba2: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cba7: e8 a4 02 00 00 call 22ce50 <__inline_isnan> 22cbac: 83 f8 00 cmp $0x0,%eax 22cbaf: 0f 84 1b 00 00 00 je 22cbd0 RichString_appendAscii(str, shadowColor, " N/A "); 22cbb5: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cbb9: 8b 75 bc mov -0x44(%rbp),%esi 22cbbc: 48 ba fc 35 20 00 00 00 00 00 movabs $0x2035fc,%rdx 22cbc6: e8 b5 59 00 00 call 232580 } else if (rate < 0.005) { 22cbcb: e9 5d 02 00 00 jmp 22ce2d 22cbd0: f2 0f 10 05 40 a7 fd ff movsd -0x258c0(%rip),%xmm0 # 207318 22cbd8: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22cbdd: 0f 86 3a 00 00 00 jbe 22cc1d int len = snprintf(buffer, sizeof(buffer), "%7.2f B/s ", rate); 22cbe3: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cbe7: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cbec: be 10 00 00 00 mov $0x10,%esi 22cbf1: 48 ba 78 40 20 00 00 00 00 00 movabs $0x204078,%rdx 22cbfb: b0 01 mov $0x1,%al 22cbfd: e8 ae 18 01 00 call 23e4b0 22cc02: 89 45 b8 mov %eax,-0x48(%rbp) RichString_appendnAscii(str, shadowColor, buffer, len); 22cc05: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cc09: 8b 75 bc mov -0x44(%rbp),%esi 22cc0c: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22cc10: 8b 4d b8 mov -0x48(%rbp),%ecx 22cc13: e8 08 5b 00 00 call 232720 } else if (rate < ONE_K) { 22cc18: e9 0b 02 00 00 jmp 22ce28 22cc1d: f2 0f 10 05 53 a7 fd ff movsd -0x258ad(%rip),%xmm0 # 207378 22cc25: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22cc2a: 0f 86 3a 00 00 00 jbe 22cc6a int len = snprintf(buffer, sizeof(buffer), "%7.2f B/s ", rate); 22cc30: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cc34: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cc39: be 10 00 00 00 mov $0x10,%esi 22cc3e: 48 ba 78 40 20 00 00 00 00 00 movabs $0x204078,%rdx 22cc48: b0 01 mov $0x1,%al 22cc4a: e8 61 18 01 00 call 23e4b0 22cc4f: 89 45 b4 mov %eax,-0x4c(%rbp) RichString_appendnAscii(str, processColor, buffer, len); 22cc52: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cc56: 8b 75 c0 mov -0x40(%rbp),%esi 22cc59: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22cc5d: 8b 4d b4 mov -0x4c(%rbp),%ecx 22cc60: e8 bb 5a 00 00 call 232720 } else if (rate < ONE_M) { 22cc65: e9 b9 01 00 00 jmp 22ce23 22cc6a: f2 0f 10 05 f6 a6 fd ff movsd -0x2590a(%rip),%xmm0 # 207368 22cc72: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22cc77: 0f 86 46 00 00 00 jbe 22ccc3 int len = snprintf(buffer, sizeof(buffer), "%7.2f K/s ", rate / ONE_K); 22cc7d: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cc81: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cc86: f2 0f 10 0d ea a6 fd ff movsd -0x25916(%rip),%xmm1 # 207378 22cc8e: f2 0f 5e c1 divsd %xmm1,%xmm0 22cc92: be 10 00 00 00 mov $0x10,%esi 22cc97: 48 ba d6 4b 20 00 00 00 00 00 movabs $0x204bd6,%rdx 22cca1: b0 01 mov $0x1,%al 22cca3: e8 08 18 01 00 call 23e4b0 22cca8: 89 45 b0 mov %eax,-0x50(%rbp) RichString_appendnAscii(str, processColor, buffer, len); 22ccab: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22ccaf: 8b 75 c0 mov -0x40(%rbp),%esi 22ccb2: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22ccb6: 8b 4d b0 mov -0x50(%rbp),%ecx 22ccb9: e8 62 5a 00 00 call 232720 } else if (rate < ONE_G) { 22ccbe: e9 5b 01 00 00 jmp 22ce1e 22ccc3: f2 0f 10 05 2d a6 fd ff movsd -0x259d3(%rip),%xmm0 # 2072f8 22cccb: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22ccd0: 0f 86 46 00 00 00 jbe 22cd1c int len = snprintf(buffer, sizeof(buffer), "%7.2f M/s ", rate / ONE_M); 22ccd6: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22ccda: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22ccdf: f2 0f 10 0d 81 a6 fd ff movsd -0x2597f(%rip),%xmm1 # 207368 22cce7: f2 0f 5e c1 divsd %xmm1,%xmm0 22cceb: be 10 00 00 00 mov $0x10,%esi 22ccf0: 48 ba 39 57 20 00 00 00 00 00 movabs $0x205739,%rdx 22ccfa: b0 01 mov $0x1,%al 22ccfc: e8 af 17 01 00 call 23e4b0 22cd01: 89 45 ac mov %eax,-0x54(%rbp) RichString_appendnAscii(str, processMegabytesColor, buffer, len); 22cd04: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cd08: 8b 75 c4 mov -0x3c(%rbp),%esi 22cd0b: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22cd0f: 8b 4d ac mov -0x54(%rbp),%ecx 22cd12: e8 09 5a 00 00 call 232720 } else if (rate < ONE_T) { 22cd17: e9 fd 00 00 00 jmp 22ce19 22cd1c: f2 0f 10 05 5c a6 fd ff movsd -0x259a4(%rip),%xmm0 # 207380 22cd24: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22cd29: 0f 86 46 00 00 00 jbe 22cd75 int len = snprintf(buffer, sizeof(buffer), "%7.2f G/s ", rate / ONE_G); 22cd2f: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cd33: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cd38: f2 0f 10 0d b8 a5 fd ff movsd -0x25a48(%rip),%xmm1 # 2072f8 22cd40: f2 0f 5e c1 divsd %xmm1,%xmm0 22cd44: be 10 00 00 00 mov $0x10,%esi 22cd49: 48 ba 4a 66 20 00 00 00 00 00 movabs $0x20664a,%rdx 22cd53: b0 01 mov $0x1,%al 22cd55: e8 56 17 01 00 call 23e4b0 22cd5a: 89 45 a8 mov %eax,-0x58(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22cd5d: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cd61: 8b 75 c8 mov -0x38(%rbp),%esi 22cd64: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22cd68: 8b 4d a8 mov -0x58(%rbp),%ecx 22cd6b: e8 b0 59 00 00 call 232720 } else if (rate < ONE_P) { 22cd70: e9 9f 00 00 00 jmp 22ce14 22cd75: f2 0f 10 05 f3 a5 fd ff movsd -0x25a0d(%rip),%xmm0 # 207370 22cd7d: 66 0f 2e 45 d0 ucomisd -0x30(%rbp),%xmm0 22cd82: 0f 86 46 00 00 00 jbe 22cdce int len = snprintf(buffer, sizeof(buffer), "%7.2f T/s ", rate / ONE_T); 22cd88: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cd8c: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cd91: f2 0f 10 0d e7 a5 fd ff movsd -0x25a19(%rip),%xmm1 # 207380 22cd99: f2 0f 5e c1 divsd %xmm1,%xmm0 22cd9d: be 10 00 00 00 mov $0x10,%esi 22cda2: 48 ba 44 57 20 00 00 00 00 00 movabs $0x205744,%rdx 22cdac: b0 01 mov $0x1,%al 22cdae: e8 fd 16 01 00 call 23e4b0 22cdb3: 89 45 a4 mov %eax,-0x5c(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22cdb6: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cdba: 8b 75 c8 mov -0x38(%rbp),%esi 22cdbd: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22cdc1: 8b 4d a4 mov -0x5c(%rbp),%ecx 22cdc4: e8 57 59 00 00 call 232720 } else { 22cdc9: e9 41 00 00 00 jmp 22ce0f int len = snprintf(buffer, sizeof(buffer), "%7.2f P/s ", rate / ONE_P); 22cdce: 48 8d 7d e0 lea -0x20(%rbp),%rdi 22cdd2: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 22cdd7: f2 0f 10 0d 91 a5 fd ff movsd -0x25a6f(%rip),%xmm1 # 207370 22cddf: f2 0f 5e c1 divsd %xmm1,%xmm0 22cde3: be 10 00 00 00 mov $0x10,%esi 22cde8: 48 ba 82 4a 20 00 00 00 00 00 movabs $0x204a82,%rdx 22cdf2: b0 01 mov $0x1,%al 22cdf4: e8 b7 16 01 00 call 23e4b0 22cdf9: 89 45 a0 mov %eax,-0x60(%rbp) RichString_appendnAscii(str, largeNumberColor, buffer, len); 22cdfc: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22ce00: 8b 75 c8 mov -0x38(%rbp),%esi 22ce03: 48 8d 55 e0 lea -0x20(%rbp),%rdx 22ce07: 8b 4d a0 mov -0x60(%rbp),%ecx 22ce0a: e8 11 59 00 00 call 232720 22ce0f: e9 00 00 00 00 jmp 22ce14 22ce14: e9 00 00 00 00 jmp 22ce19 22ce19: e9 00 00 00 00 jmp 22ce1e 22ce1e: e9 00 00 00 00 jmp 22ce23 22ce23: e9 00 00 00 00 jmp 22ce28 22ce28: e9 00 00 00 00 jmp 22ce2d 22ce2d: 48 8b 05 fc 59 01 00 mov 0x159fc(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22ce34: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22ce38: 48 39 c8 cmp %rcx,%rax 22ce3b: 0f 85 06 00 00 00 jne 22ce47 } } 22ce41: 48 83 c4 60 add $0x60,%rsp 22ce45: 5d pop %rbp 22ce46: c3 ret 22ce47: e8 f4 12 01 00 call 23e140 <__stack_chk_fail@plt> 22ce4c: 0f 1f 40 00 nopl 0x0(%rax) 000000000022ce50 <__inline_isnan>: { 22ce50: 55 push %rbp 22ce51: 48 89 e5 mov %rsp,%rbp 22ce54: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 22ce59: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 22ce5e: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 22ce63: 0f 95 c0 setne %al 22ce66: 0f 9a c1 setp %cl 22ce69: 08 c8 or %cl,%al 22ce6b: 24 01 and $0x1,%al 22ce6d: 0f b6 c0 movzbl %al,%eax 22ce70: 5d pop %rbp 22ce71: c3 ret 22ce72: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22ce7c: 0f 1f 40 00 nopl 0x0(%rax) 000000000022ce80 : void Process_printLeftAlignedField(RichString* str, int attr, const char* content, unsigned int width) { 22ce80: 55 push %rbp 22ce81: 48 89 e5 mov %rsp,%rbp 22ce84: 48 83 ec 50 sub $0x50,%rsp 22ce88: 48 8b 05 a1 59 01 00 mov 0x159a1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22ce8f: 48 89 45 f8 mov %rax,-0x8(%rbp) 22ce93: 48 89 7d e8 mov %rdi,-0x18(%rbp) 22ce97: 89 75 e4 mov %esi,-0x1c(%rbp) 22ce9a: 48 89 55 d8 mov %rdx,-0x28(%rbp) 22ce9e: 89 4d d4 mov %ecx,-0x2c(%rbp) int columns = width; 22cea1: 8b 45 d4 mov -0x2c(%rbp),%eax 22cea4: 89 45 f4 mov %eax,-0xc(%rbp) RichString_appendnWideColumns(str, attr, content, strlen(content), &columns); 22cea7: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ceab: 48 89 45 b8 mov %rax,-0x48(%rbp) 22ceaf: 8b 45 e4 mov -0x1c(%rbp),%eax 22ceb2: 89 45 c4 mov %eax,-0x3c(%rbp) 22ceb5: 48 8b 45 d8 mov -0x28(%rbp),%rax 22ceb9: 48 89 45 c8 mov %rax,-0x38(%rbp) 22cebd: 48 8b 7d d8 mov -0x28(%rbp),%rdi 22cec1: e8 2a 13 01 00 call 23e1f0 22cec6: 48 8b 7d b8 mov -0x48(%rbp),%rdi 22ceca: 8b 75 c4 mov -0x3c(%rbp),%esi 22cecd: 48 8b 55 c8 mov -0x38(%rbp),%rdx 22ced1: 89 c1 mov %eax,%ecx 22ced3: 4c 8d 45 f4 lea -0xc(%rbp),%r8 22ced7: e8 64 4e 00 00 call 231d40 RichString_appendChr(str, attr, ' ', width + 1 - columns); 22cedc: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22cee0: 8b 75 e4 mov -0x1c(%rbp),%esi 22cee3: 8b 4d d4 mov -0x2c(%rbp),%ecx 22cee6: 83 c1 01 add $0x1,%ecx 22cee9: 2b 4d f4 sub -0xc(%rbp),%ecx 22ceec: ba 20 00 00 00 mov $0x20,%edx 22cef1: e8 ea 51 00 00 call 2320e0 22cef6: 48 8b 05 33 59 01 00 mov 0x15933(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22cefd: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22cf01: 48 39 c8 cmp %rcx,%rax 22cf04: 0f 85 06 00 00 00 jne 22cf10 } 22cf0a: 48 83 c4 50 add $0x50,%rsp 22cf0e: 5d pop %rbp 22cf0f: c3 ret 22cf10: e8 2b 12 01 00 call 23e140 <__stack_chk_fail@plt> 22cf15: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22cf1f: 90 nop 000000000022cf20 : void Process_printPercentage(float val, char* buffer, int n, int* attr) { 22cf20: 55 push %rbp 22cf21: 48 89 e5 mov %rsp,%rbp 22cf24: 48 83 ec 20 sub $0x20,%rsp 22cf28: f3 0f 11 45 fc movss %xmm0,-0x4(%rbp) 22cf2d: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22cf31: 89 75 ec mov %esi,-0x14(%rbp) 22cf34: 48 89 55 e0 mov %rdx,-0x20(%rbp) if (val >= 0) { 22cf38: f3 0f 10 45 fc movss -0x4(%rbp),%xmm0 22cf3d: 0f 57 c9 xorps %xmm1,%xmm1 22cf40: 0f 2e c1 ucomiss %xmm1,%xmm0 22cf43: 0f 82 db 00 00 00 jb 22d024 if (val < 99.9F) { 22cf49: f3 0f 10 05 17 bb fd ff movss -0x244e9(%rip),%xmm0 # 208a68 22cf51: 0f 2e 45 fc ucomiss -0x4(%rbp),%xmm0 22cf55: 0f 86 4a 00 00 00 jbe 22cfa5 if (val < 0.05F) { 22cf5b: f3 0f 10 05 15 bb fd ff movss -0x244eb(%rip),%xmm0 # 208a78 22cf63: 0f 2e 45 fc ucomiss -0x4(%rbp),%xmm0 22cf67: 0f 86 11 00 00 00 jbe 22cf7e *attr = CRT_colors[PROCESS_SHADOW]; 22cf6d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cf75: 8b 48 74 mov 0x74(%rax),%ecx 22cf78: 48 8b 45 e0 mov -0x20(%rbp),%rax 22cf7c: 89 08 mov %ecx,(%rax) } xSnprintf(buffer, n, "%4.1f ", val); 22cf7e: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22cf82: 48 63 75 ec movslq -0x14(%rbp),%rsi 22cf86: f3 0f 10 45 fc movss -0x4(%rbp),%xmm0 22cf8b: f3 0f 5a c0 cvtss2sd %xmm0,%xmm0 22cf8f: 48 ba 1e 64 20 00 00 00 00 00 movabs $0x20641e,%rdx 22cf99: b0 01 mov $0x1,%al 22cf9b: e8 50 c5 00 00 call 2394f0 } else if (val < 999) { 22cfa0: e9 7a 00 00 00 jmp 22d01f 22cfa5: f3 0f 10 05 c3 ba fd ff movss -0x2453d(%rip),%xmm0 # 208a70 22cfad: 0f 2e 45 fc ucomiss -0x4(%rbp),%xmm0 22cfb1: 0f 86 34 00 00 00 jbe 22cfeb *attr = CRT_colors[PROCESS_MEGABYTES]; 22cfb7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cfbf: 8b 48 7c mov 0x7c(%rax),%ecx 22cfc2: 48 8b 45 e0 mov -0x20(%rbp),%rax 22cfc6: 89 08 mov %ecx,(%rax) xSnprintf(buffer, n, "%3d. ", (int)val); 22cfc8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22cfcc: 48 63 75 ec movslq -0x14(%rbp),%rsi 22cfd0: f3 0f 2c 4d fc cvttss2si -0x4(%rbp),%ecx 22cfd5: 48 ba 90 55 20 00 00 00 00 00 movabs $0x205590,%rdx 22cfdf: b0 00 mov $0x0,%al 22cfe1: e8 0a c5 00 00 call 2394f0 } else { 22cfe6: e9 2f 00 00 00 jmp 22d01a *attr = CRT_colors[PROCESS_MEGABYTES]; 22cfeb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22cff3: 8b 48 7c mov 0x7c(%rax),%ecx 22cff6: 48 8b 45 e0 mov -0x20(%rbp),%rax 22cffa: 89 08 mov %ecx,(%rax) xSnprintf(buffer, n, "%4d ", (int)val); 22cffc: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22d000: 48 63 75 ec movslq -0x14(%rbp),%rsi 22d004: f3 0f 2c 4d fc cvttss2si -0x4(%rbp),%ecx 22d009: 48 ba 9f 6d 20 00 00 00 00 00 movabs $0x206d9f,%rdx 22d013: b0 00 mov $0x0,%al 22d015: e8 d6 c4 00 00 call 2394f0 22d01a: e9 00 00 00 00 jmp 22d01f } } else { 22d01f: e9 2a 00 00 00 jmp 22d04e *attr = CRT_colors[PROCESS_SHADOW]; 22d024: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d02c: 8b 48 74 mov 0x74(%rax),%ecx 22d02f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22d033: 89 08 mov %ecx,(%rax) xSnprintf(buffer, n, " N/A "); 22d035: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22d039: 48 63 75 ec movslq -0x14(%rbp),%rsi 22d03d: 48 ba 6b 69 20 00 00 00 00 00 movabs $0x20696b,%rdx 22d047: b0 00 mov $0x0,%al 22d049: e8 a2 c4 00 00 call 2394f0 } } 22d04e: 48 83 c4 20 add $0x20,%rsp 22d052: 5d pop %rbp 22d053: c3 ret 22d054: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22d05e: 66 90 xchg %ax,%ax 000000000022d060 : assert(0); return '!'; } } void Process_writeField(const Process* this, RichString* str, ProcessField field) { 22d060: 55 push %rbp 22d061: 48 89 e5 mov %rsp,%rbp 22d064: 48 81 ec 10 02 00 00 sub $0x210,%rsp 22d06b: 48 8b 05 be 57 01 00 mov 0x157be(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22d072: 48 89 45 f8 mov %rax,-0x8(%rbp) 22d076: 48 89 bd e0 fe ff ff mov %rdi,-0x120(%rbp) 22d07d: 48 89 b5 d8 fe ff ff mov %rsi,-0x128(%rbp) 22d084: 89 95 d4 fe ff ff mov %edx,-0x12c(%rbp) char buffer[256]; size_t n = sizeof(buffer); 22d08a: 48 c7 85 c8 fe ff ff 00 01 00 00 movq $0x100,-0x138(%rbp) int attr = CRT_colors[DEFAULT_COLOR]; 22d095: 48 8b 05 e4 50 01 00 mov 0x150e4(%rip),%rax # 242180 22d09c: 8b 40 04 mov 0x4(%rax),%eax 22d09f: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) bool coloring = this->settings->highlightMegabytes; 22d0a5: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d0ac: 48 8b 40 10 mov 0x10(%rax),%rax 22d0b0: 8a 40 54 mov 0x54(%rax),%al 22d0b3: 24 01 and $0x1,%al 22d0b5: 88 85 c7 fe ff ff mov %al,-0x139(%rbp) switch (field) { 22d0bb: 8b 85 d4 fe ff ff mov -0x12c(%rbp),%eax 22d0c1: 83 c0 ff add $0xffffffff,%eax 22d0c4: 89 c1 mov %eax,%ecx 22d0c6: 48 89 8d 60 fe ff ff mov %rcx,-0x1a0(%rbp) 22d0cd: 83 e8 7d sub $0x7d,%eax 22d0d0: 0f 87 a7 0e 00 00 ja 22df7d 22d0d6: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 22d0dd: 48 8b 04 c5 30 9d 20 00 mov 0x209d30(,%rax,8),%rax 22d0e5: ff e0 jmp *%rax case COMM: { int baseattr = CRT_colors[PROCESS_BASENAME]; 22d0e7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d0ef: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 22d0f5: 89 85 c0 fe ff ff mov %eax,-0x140(%rbp) if (this->settings->highlightThreads && Process_isThread(this)) { 22d0fb: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d102: 48 8b 40 10 mov 0x10(%rax),%rax 22d106: f6 40 55 01 testb $0x1,0x55(%rax) 22d10a: 0f 84 41 00 00 00 je 22d151 22d110: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d117: e8 14 f2 ff ff call 22c330 22d11c: a8 01 test $0x1,%al 22d11e: 0f 85 05 00 00 00 jne 22d129 22d124: e9 28 00 00 00 jmp 22d151 attr = CRT_colors[PROCESS_THREAD]; 22d129: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d131: 8b 80 a4 00 00 00 mov 0xa4(%rax),%eax 22d137: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) baseattr = CRT_colors[PROCESS_THREAD_BASENAME]; 22d13d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d145: 8b 80 a8 00 00 00 mov 0xa8(%rax),%eax 22d14b: 89 85 c0 fe ff ff mov %eax,-0x140(%rbp) } if (!this->settings->treeView || this->indent == 0) { 22d151: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d158: 48 8b 40 10 mov 0x10(%rax),%rax 22d15c: f6 40 4a 01 testb $0x1,0x4a(%rax) 22d160: 0f 84 14 00 00 00 je 22d17a 22d166: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d16d: 83 b8 08 01 00 00 00 cmpl $0x0,0x108(%rax) 22d174: 0f 85 24 00 00 00 jne 22d19e Process_writeCommand(this, attr, baseattr, str); 22d17a: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d181: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22d187: 8b 95 c0 fe ff ff mov -0x140(%rbp),%edx 22d18d: 48 8b 8d d8 fe ff ff mov -0x128(%rbp),%rcx 22d194: e8 97 f6 ff ff call 22c830 return; 22d199: e9 42 0e 00 00 jmp 22dfe0 } char* buf = buffer; 22d19e: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax 22d1a5: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) int maxIndent = 0; 22d1ac: c7 85 b4 fe ff ff 00 00 00 00 movl $0x0,-0x14c(%rbp) bool lastItem = (this->indent < 0); 22d1b6: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d1bd: 83 b8 08 01 00 00 00 cmpl $0x0,0x108(%rax) 22d1c4: 0f 9c c0 setl %al 22d1c7: 24 01 and $0x1,%al 22d1c9: 88 85 b3 fe ff ff mov %al,-0x14d(%rbp) int indent = (this->indent < 0 ? -this->indent : this->indent); 22d1cf: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d1d6: 83 b8 08 01 00 00 00 cmpl $0x0,0x108(%rax) 22d1dd: 0f 8d 1a 00 00 00 jge 22d1fd 22d1e3: 48 8b 8d e0 fe ff ff mov -0x120(%rbp),%rcx 22d1ea: 31 c0 xor %eax,%eax 22d1ec: 2b 81 08 01 00 00 sub 0x108(%rcx),%eax 22d1f2: 89 85 5c fe ff ff mov %eax,-0x1a4(%rbp) 22d1f8: e9 13 00 00 00 jmp 22d210 22d1fd: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d204: 8b 80 08 01 00 00 mov 0x108(%rax),%eax 22d20a: 89 85 5c fe ff ff mov %eax,-0x1a4(%rbp) 22d210: 8b 85 5c fe ff ff mov -0x1a4(%rbp),%eax 22d216: 89 85 ac fe ff ff mov %eax,-0x154(%rbp) for (int i = 0; i < 32; i++) { 22d21c: c7 85 a8 fe ff ff 00 00 00 00 movl $0x0,-0x158(%rbp) 22d226: 83 bd a8 fe ff ff 20 cmpl $0x20,-0x158(%rbp) 22d22d: 0f 8d 48 00 00 00 jge 22d27b if (indent & (1U << i)) { 22d233: 8b 85 ac fe ff ff mov -0x154(%rbp),%eax 22d239: 8b 8d a8 fe ff ff mov -0x158(%rbp),%ecx 22d23f: ba 01 00 00 00 mov $0x1,%edx 22d244: d3 e2 shl %cl,%edx 22d246: 89 d1 mov %edx,%ecx 22d248: 21 c8 and %ecx,%eax 22d24a: 83 f8 00 cmp $0x0,%eax 22d24d: 0f 84 0f 00 00 00 je 22d262 maxIndent = i + 1; 22d253: 8b 85 a8 fe ff ff mov -0x158(%rbp),%eax 22d259: 83 c0 01 add $0x1,%eax 22d25c: 89 85 b4 fe ff ff mov %eax,-0x14c(%rbp) } } 22d262: e9 00 00 00 00 jmp 22d267 for (int i = 0; i < 32; i++) { 22d267: 8b 85 a8 fe ff ff mov -0x158(%rbp),%eax 22d26d: 83 c0 01 add $0x1,%eax 22d270: 89 85 a8 fe ff ff mov %eax,-0x158(%rbp) 22d276: e9 ab ff ff ff jmp 22d226 for (int i = 0; i < maxIndent - 1; i++) { 22d27b: c7 85 a4 fe ff ff 00 00 00 00 movl $0x0,-0x15c(%rbp) 22d285: 8b 85 a4 fe ff ff mov -0x15c(%rbp),%eax 22d28b: 8b 8d b4 fe ff ff mov -0x14c(%rbp),%ecx 22d291: 83 e9 01 sub $0x1,%ecx 22d294: 39 c8 cmp %ecx,%eax 22d296: 0f 8d ff 00 00 00 jge 22d39b int written, ret; if (indent & (1 << i)) { 22d29c: 8b 85 ac fe ff ff mov -0x154(%rbp),%eax 22d2a2: 8b 8d a4 fe ff ff mov -0x15c(%rbp),%ecx 22d2a8: ba 01 00 00 00 mov $0x1,%edx 22d2ad: d3 e2 shl %cl,%edx 22d2af: 89 d1 mov %edx,%ecx 22d2b1: 21 c8 and %ecx,%eax 22d2b3: 83 f8 00 cmp $0x0,%eax 22d2b6: 0f 84 35 00 00 00 je 22d2f1 ret = xSnprintf(buf, n, "%s ", CRT_treeStr[TREE_STR_VERT]); 22d2bc: 48 8b bd b8 fe ff ff mov -0x148(%rbp),%rdi 22d2c3: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22d2ca: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22d2d2: 48 8b 08 mov (%rax),%rcx 22d2d5: 48 ba 8b 4f 20 00 00 00 00 00 movabs $0x204f8b,%rdx 22d2df: b0 00 mov $0x0,%al 22d2e1: e8 0a c2 00 00 call 2394f0 22d2e6: 89 85 9c fe ff ff mov %eax,-0x164(%rbp) } else { 22d2ec: e9 25 00 00 00 jmp 22d316 ret = xSnprintf(buf, n, " "); 22d2f1: 48 8b bd b8 fe ff ff mov -0x148(%rbp),%rdi 22d2f8: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22d2ff: 48 ba 25 64 20 00 00 00 00 00 movabs $0x206425,%rdx 22d309: b0 00 mov $0x0,%al 22d30b: e8 e0 c1 00 00 call 2394f0 22d310: 89 85 9c fe ff ff mov %eax,-0x164(%rbp) } if (ret < 0 || (size_t)ret >= n) { 22d316: 83 bd 9c fe ff ff 00 cmpl $0x0,-0x164(%rbp) 22d31d: 0f 8c 14 00 00 00 jl 22d337 22d323: 48 63 85 9c fe ff ff movslq -0x164(%rbp),%rax 22d32a: 48 3b 85 c8 fe ff ff cmp -0x138(%rbp),%rax 22d331: 0f 82 12 00 00 00 jb 22d349 written = n; 22d337: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22d33e: 89 85 a0 fe ff ff mov %eax,-0x160(%rbp) } else { 22d344: e9 0c 00 00 00 jmp 22d355 written = ret; 22d349: 8b 85 9c fe ff ff mov -0x164(%rbp),%eax 22d34f: 89 85 a0 fe ff ff mov %eax,-0x160(%rbp) } buf += written; 22d355: 8b 8d a0 fe ff ff mov -0x160(%rbp),%ecx 22d35b: 48 8b 85 b8 fe ff ff mov -0x148(%rbp),%rax 22d362: 48 63 c9 movslq %ecx,%rcx 22d365: 48 01 c8 add %rcx,%rax 22d368: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) n -= written; 22d36f: 48 63 8d a0 fe ff ff movslq -0x160(%rbp),%rcx 22d376: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22d37d: 48 29 c8 sub %rcx,%rax 22d380: 48 89 85 c8 fe ff ff mov %rax,-0x138(%rbp) for (int i = 0; i < maxIndent - 1; i++) { 22d387: 8b 85 a4 fe ff ff mov -0x15c(%rbp),%eax 22d38d: 83 c0 01 add $0x1,%eax 22d390: 89 85 a4 fe ff ff mov %eax,-0x15c(%rbp) 22d396: e9 ea fe ff ff jmp 22d285 } const char* draw = CRT_treeStr[lastItem ? TREE_STR_BEND : TREE_STR_RTEE]; 22d39b: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22d3a3: 40 8a b5 b3 fe ff ff mov -0x14d(%rbp),%sil 22d3aa: b9 01 00 00 00 mov $0x1,%ecx 22d3af: ba 02 00 00 00 mov $0x2,%edx 22d3b4: 40 f6 c6 01 test $0x1,%sil 22d3b8: 0f 45 ca cmovne %edx,%ecx 22d3bb: 48 63 c9 movslq %ecx,%rcx 22d3be: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 22d3c2: 48 89 85 90 fe ff ff mov %rax,-0x170(%rbp) xSnprintf(buf, n, "%s%s ", draw, this->showChildren ? CRT_treeStr[TREE_STR_SHUT] : CRT_treeStr[TREE_STR_OPEN] ); 22d3c9: 48 8b 85 b8 fe ff ff mov -0x148(%rbp),%rax 22d3d0: 48 89 85 40 fe ff ff mov %rax,-0x1c0(%rbp) 22d3d7: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22d3de: 48 89 85 48 fe ff ff mov %rax,-0x1b8(%rbp) 22d3e5: 48 8b 85 90 fe ff ff mov -0x170(%rbp),%rax 22d3ec: 48 89 85 50 fe ff ff mov %rax,-0x1b0(%rbp) 22d3f3: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d3fa: f6 80 f0 00 00 00 01 testb $0x1,0xf0(%rax) 22d401: 0f 84 18 00 00 00 je 22d41f 22d407: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22d40f: 48 8b 40 28 mov 0x28(%rax),%rax 22d413: 48 89 85 38 fe ff ff mov %rax,-0x1c8(%rbp) 22d41a: e9 13 00 00 00 jmp 22d432 22d41f: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22d427: 48 8b 40 20 mov 0x20(%rax),%rax 22d42b: 48 89 85 38 fe ff ff mov %rax,-0x1c8(%rbp) 22d432: 48 8b 8d 50 fe ff ff mov -0x1b0(%rbp),%rcx 22d439: 48 8b b5 48 fe ff ff mov -0x1b8(%rbp),%rsi 22d440: 48 8b bd 40 fe ff ff mov -0x1c0(%rbp),%rdi 22d447: 4c 8b 85 38 fe ff ff mov -0x1c8(%rbp),%r8 22d44e: 48 ba f4 39 20 00 00 00 00 00 movabs $0x2039f4,%rdx 22d458: b0 00 mov $0x0,%al 22d45a: e8 91 c0 00 00 call 2394f0 RichString_appendWide(str, CRT_colors[PROCESS_TREE], buffer); 22d45f: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d466: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d46e: 8b b0 84 00 00 00 mov 0x84(%rax),%esi 22d474: 48 8d 95 f0 fe ff ff lea -0x110(%rbp),%rdx 22d47b: e8 50 4e 00 00 call 2322d0 Process_writeCommand(this, attr, baseattr, str); 22d480: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d487: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22d48d: 8b 95 c0 fe ff ff mov -0x140(%rbp),%edx 22d493: 48 8b 8d d8 fe ff ff mov -0x128(%rbp),%rcx 22d49a: e8 91 f3 ff ff call 22c830 return; 22d49f: e9 3c 0b 00 00 jmp 22dfe0 } case PROC_COMM: { const char* procComm; if (this->procComm) { 22d4a4: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d4ab: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22d4b0: 0f 84 59 00 00 00 je 22d50f attr = CRT_colors[Process_isUserlandThread(this) ? PROCESS_THREAD_COMM : PROCESS_COMM]; 22d4b6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d4be: 48 89 85 30 fe ff ff mov %rax,-0x1d0(%rbp) 22d4c5: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d4cc: e8 3f ee ff ff call 22c310 22d4d1: 40 88 c6 mov %al,%sil 22d4d4: 48 8b 85 30 fe ff ff mov -0x1d0(%rbp),%rax 22d4db: b9 2b 00 00 00 mov $0x2b,%ecx 22d4e0: ba 2c 00 00 00 mov $0x2c,%edx 22d4e5: 40 f6 c6 01 test $0x1,%sil 22d4e9: 0f 45 ca cmovne %edx,%ecx 22d4ec: 48 63 c9 movslq %ecx,%rcx 22d4ef: 8b 04 88 mov (%rax,%rcx,4),%eax 22d4f2: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) procComm = this->procComm; 22d4f8: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d4ff: 48 8b 40 70 mov 0x70(%rax),%rax 22d503: 48 89 85 88 fe ff ff mov %rax,-0x178(%rbp) } else { 22d50a: e9 41 00 00 00 jmp 22d550 attr = CRT_colors[PROCESS_SHADOW]; 22d50f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d517: 8b 40 74 mov 0x74(%rax),%eax 22d51a: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) procComm = Process_isKernelThread(this) ? kthreadID : "N/A"; 22d520: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d527: e8 c4 ed ff ff call 22c2f0 22d52c: 88 c2 mov %al,%dl 22d52e: 48 b8 84 41 20 00 00 00 00 00 movabs $0x204184,%rax 22d538: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22d542: f6 c2 01 test $0x1,%dl 22d545: 48 0f 45 c1 cmovne %rcx,%rax 22d549: 48 89 85 88 fe ff ff mov %rax,-0x178(%rbp) } Process_printLeftAlignedField(str, attr, procComm, TASK_COMM_LEN - 1); 22d550: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d557: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22d55d: 48 8b 95 88 fe ff ff mov -0x178(%rbp),%rdx 22d564: b9 0f 00 00 00 mov $0xf,%ecx 22d569: e8 12 f9 ff ff call 22ce80 return; 22d56e: e9 6d 0a 00 00 jmp 22dfe0 } case PROC_EXE: { const char* procExe; if (this->procExe) { 22d573: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d57a: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22d57f: 0f 84 d8 00 00 00 je 22d65d attr = CRT_colors[Process_isUserlandThread(this) ? PROCESS_THREAD_BASENAME : PROCESS_BASENAME]; 22d585: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d58d: 48 89 85 28 fe ff ff mov %rax,-0x1d8(%rbp) 22d594: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d59b: e8 70 ed ff ff call 22c310 22d5a0: 40 88 c6 mov %al,%sil 22d5a3: 48 8b 85 28 fe ff ff mov -0x1d8(%rbp),%rax 22d5aa: b9 24 00 00 00 mov $0x24,%ecx 22d5af: ba 2a 00 00 00 mov $0x2a,%edx 22d5b4: 40 f6 c6 01 test $0x1,%sil 22d5b8: 0f 45 ca cmovne %edx,%ecx 22d5bb: 48 63 c9 movslq %ecx,%rcx 22d5be: 8b 04 88 mov (%rax,%rcx,4),%eax 22d5c1: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) if (this->settings->highlightDeletedExe) { 22d5c7: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d5ce: 48 8b 40 10 mov 0x10(%rax),%rax 22d5d2: f6 40 53 01 testb $0x1,0x53(%rax) 22d5d6: 0f 84 59 00 00 00 je 22d635 if (this->procExeDeleted) 22d5dc: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d5e3: f6 80 8c 00 00 00 01 testb $0x1,0x8c(%rax) 22d5ea: 0f 84 16 00 00 00 je 22d606 attr = CRT_colors[FAILED_READ]; 22d5f0: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d5f8: 8b 40 14 mov 0x14(%rax),%eax 22d5fb: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) 22d601: e9 2a 00 00 00 jmp 22d630 else if (this->usesDeletedLib) 22d606: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d60d: f6 80 8d 00 00 00 01 testb $0x1,0x8d(%rax) 22d614: 0f 84 11 00 00 00 je 22d62b attr = CRT_colors[PROCESS_TAG]; 22d61a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d622: 8b 40 78 mov 0x78(%rax),%eax 22d625: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) 22d62b: e9 00 00 00 00 jmp 22d630 } 22d630: e9 00 00 00 00 jmp 22d635 procExe = this->procExe + this->procExeBasenameOffset; 22d635: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d63c: 48 8b 40 78 mov 0x78(%rax),%rax 22d640: 48 8b 8d e0 fe ff ff mov -0x120(%rbp),%rcx 22d647: 48 63 89 88 00 00 00 movslq 0x88(%rcx),%rcx 22d64e: 48 01 c8 add %rcx,%rax 22d651: 48 89 85 80 fe ff ff mov %rax,-0x180(%rbp) } else { 22d658: e9 41 00 00 00 jmp 22d69e attr = CRT_colors[PROCESS_SHADOW]; 22d65d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d665: 8b 40 74 mov 0x74(%rax),%eax 22d668: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) procExe = Process_isKernelThread(this) ? kthreadID : "N/A"; 22d66e: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22d675: e8 76 ec ff ff call 22c2f0 22d67a: 88 c2 mov %al,%dl 22d67c: 48 b8 84 41 20 00 00 00 00 00 movabs $0x204184,%rax 22d686: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22d690: f6 c2 01 test $0x1,%dl 22d693: 48 0f 45 c1 cmovne %rcx,%rax 22d697: 48 89 85 80 fe ff ff mov %rax,-0x180(%rbp) } Process_printLeftAlignedField(str, attr, procExe, TASK_COMM_LEN - 1); 22d69e: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d6a5: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22d6ab: 48 8b 95 80 fe ff ff mov -0x180(%rbp),%rdx 22d6b2: b9 0f 00 00 00 mov $0xf,%ecx 22d6b7: e8 c4 f7 ff ff call 22ce80 return; 22d6bc: e9 1f 09 00 00 jmp 22dfe0 } case CWD: { const char* cwd; if (!this->procCwd) { 22d6c1: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d6c8: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 22d6d0: 0f 85 27 00 00 00 jne 22d6fd attr = CRT_colors[PROCESS_SHADOW]; 22d6d6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d6de: 8b 40 74 mov 0x74(%rax),%eax 22d6e1: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) cwd = "N/A"; 22d6e7: 48 b8 84 41 20 00 00 00 00 00 movabs $0x204184,%rax 22d6f1: 48 89 85 78 fe ff ff mov %rax,-0x188(%rbp) } else if (String_startsWith(this->procCwd, "/proc/") && strstr(this->procCwd, " (deleted)") != NULL) { 22d6f8: e9 92 00 00 00 jmp 22d78f 22d6fd: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d704: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 22d70b: 48 be 39 45 20 00 00 00 00 00 movabs $0x204539,%rsi 22d715: e8 f6 08 00 00 call 22e010 22d71a: a8 01 test $0x1,%al 22d71c: 0f 85 05 00 00 00 jne 22d727 22d722: e9 4e 00 00 00 jmp 22d775 22d727: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d72e: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 22d735: 48 be 29 64 20 00 00 00 00 00 movabs $0x206429,%rsi 22d73f: e8 1c 10 01 00 call 23e760 22d744: 48 83 f8 00 cmp $0x0,%rax 22d748: 0f 84 27 00 00 00 je 22d775 attr = CRT_colors[PROCESS_SHADOW]; 22d74e: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d756: 8b 40 74 mov 0x74(%rax),%eax 22d759: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) cwd = "main thread terminated"; 22d75f: 48 b8 69 34 20 00 00 00 00 00 movabs $0x203469,%rax 22d769: 48 89 85 78 fe ff ff mov %rax,-0x188(%rbp) } else { 22d770: e9 15 00 00 00 jmp 22d78a cwd = this->procCwd; 22d775: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d77c: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22d783: 48 89 85 78 fe ff ff mov %rax,-0x188(%rbp) 22d78a: e9 00 00 00 00 jmp 22d78f } Process_printLeftAlignedField(str, attr, cwd, 25); 22d78f: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d796: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22d79c: 48 8b 95 78 fe ff ff mov -0x188(%rbp),%rdx 22d7a3: b9 19 00 00 00 mov $0x19,%ecx 22d7a8: e8 d3 f6 ff ff call 22ce80 return; 22d7ad: e9 2e 08 00 00 jmp 22dfe0 } case ELAPSED: Process_printTime(str, /* convert to hundreds of a second */ this->processList->realtimeMs / 10 - 100 * this->starttime_ctime, coloring); return; 22d7b2: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d7b9: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d7c0: 48 8b 40 08 mov 0x8(%rax),%rax 22d7c4: 48 8b 40 58 mov 0x58(%rax),%rax 22d7c8: b9 0a 00 00 00 mov $0xa,%ecx 22d7cd: 31 d2 xor %edx,%edx 22d7cf: 48 f7 f1 div %rcx 22d7d2: 48 89 c6 mov %rax,%rsi 22d7d5: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d7dc: 48 6b 80 b8 00 00 00 64 imul $0x64,0xb8(%rax),%rax 22d7e4: 48 29 c6 sub %rax,%rsi 22d7e7: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22d7ed: 24 01 and $0x1,%al 22d7ef: 0f b6 d0 movzbl %al,%edx 22d7f2: e8 09 cd ff ff call 22a500 22d7f7: e9 e4 07 00 00 jmp 22dfe0 case MAJFLT: Process_printCount(str, this->majflt, coloring); return; 22d7fc: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d803: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d80a: 48 8b b0 e0 00 00 00 mov 0xe0(%rax),%rsi 22d811: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22d817: 24 01 and $0x1,%al 22d819: 0f b6 d0 movzbl %al,%edx 22d81c: e8 df c9 ff ff call 22a200 22d821: e9 ba 07 00 00 jmp 22dfe0 case MINFLT: Process_printCount(str, this->minflt, coloring); return; 22d826: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d82d: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d834: 48 8b b0 d8 00 00 00 mov 0xd8(%rax),%rsi 22d83b: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22d841: 24 01 and $0x1,%al 22d843: 0f b6 d0 movzbl %al,%edx 22d846: e8 b5 c9 ff ff call 22a200 22d84b: e9 90 07 00 00 jmp 22dfe0 case M_RESIDENT: Process_printKBytes(str, this->m_resident, coloring); return; 22d850: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d857: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d85e: 48 8b b0 d0 00 00 00 mov 0xd0(%rax),%rsi 22d865: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22d86b: 24 01 and $0x1,%al 22d86d: 0f b6 d0 movzbl %al,%edx 22d870: e8 2b c9 ff ff call 22a1a0 22d875: e9 66 07 00 00 jmp 22dfe0 case M_VIRT: Process_printKBytes(str, this->m_virt, coloring); return; 22d87a: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22d881: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d888: 48 8b b0 c8 00 00 00 mov 0xc8(%rax),%rsi 22d88f: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22d895: 24 01 and $0x1,%al 22d897: 0f b6 d0 movzbl %al,%edx 22d89a: e8 01 c9 ff ff call 22a1a0 22d89f: e9 3c 07 00 00 jmp 22dfe0 case NICE: xSnprintf(buffer, n, "%3ld ", this->nice); 22d8a4: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22d8ab: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22d8b2: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d8b9: 48 8b 88 a8 00 00 00 mov 0xa8(%rax),%rcx 22d8c0: 48 ba d2 37 20 00 00 00 00 00 movabs $0x2037d2,%rdx 22d8ca: b0 00 mov $0x0,%al 22d8cc: e8 1f bc 00 00 call 2394f0 attr = this->nice < 0 ? CRT_colors[PROCESS_HIGH_PRIORITY] 22d8d1: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d8d8: 48 83 b8 a8 00 00 00 00 cmpq $0x0,0xa8(%rax) 22d8e0: 0f 8d 19 00 00 00 jge 22d8ff 22d8e6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d8ee: 8b 80 94 00 00 00 mov 0x94(%rax),%eax 22d8f4: 89 85 24 fe ff ff mov %eax,-0x1dc(%rbp) 22d8fa: e9 4b 00 00 00 jmp 22d94a : this->nice > 0 ? CRT_colors[PROCESS_LOW_PRIORITY] 22d8ff: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d906: 48 83 b8 a8 00 00 00 00 cmpq $0x0,0xa8(%rax) 22d90e: 0f 8e 19 00 00 00 jle 22d92d 22d914: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d91c: 8b 80 98 00 00 00 mov 0x98(%rax),%eax 22d922: 89 85 20 fe ff ff mov %eax,-0x1e0(%rbp) 22d928: e9 11 00 00 00 jmp 22d93e : CRT_colors[PROCESS_SHADOW]; 22d92d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d935: 8b 40 74 mov 0x74(%rax),%eax 22d938: 89 85 20 fe ff ff mov %eax,-0x1e0(%rbp) 22d93e: 8b 85 20 fe ff ff mov -0x1e0(%rbp),%eax 22d944: 89 85 24 fe ff ff mov %eax,-0x1dc(%rbp) 22d94a: 8b 85 24 fe ff ff mov -0x1dc(%rbp),%eax attr = this->nice < 0 ? CRT_colors[PROCESS_HIGH_PRIORITY] 22d950: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) break; 22d956: e9 6c 06 00 00 jmp 22dfc7 case NLWP: if (this->nlwp == 1) 22d95b: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d962: 48 83 b8 b0 00 00 00 01 cmpq $0x1,0xb0(%rax) 22d96a: 0f 85 11 00 00 00 jne 22d981 attr = CRT_colors[PROCESS_SHADOW]; 22d970: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22d978: 8b 40 74 mov 0x74(%rax),%eax 22d97b: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) xSnprintf(buffer, n, "%4ld ", this->nlwp); 22d981: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22d988: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22d98f: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d996: 48 8b 88 b0 00 00 00 mov 0xb0(%rax),%rcx 22d99d: 48 ba 5e 5e 20 00 00 00 00 00 movabs $0x205e5e,%rdx 22d9a7: b0 00 mov $0x0,%al 22d9a9: e8 42 bb 00 00 call 2394f0 break; 22d9ae: e9 14 06 00 00 jmp 22dfc7 case PERCENT_CPU: Process_printPercentage(this->percent_cpu, buffer, n, &attr); break; 22d9b3: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d9ba: f3 0f 10 80 94 00 00 00 movss 0x94(%rax),%xmm0 22d9c2: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22d9c9: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22d9d0: 89 c6 mov %eax,%esi 22d9d2: 48 8d 95 ec fe ff ff lea -0x114(%rbp),%rdx 22d9d9: e8 42 f5 ff ff call 22cf20 22d9de: e9 e4 05 00 00 jmp 22dfc7 case PERCENT_NORM_CPU: { float cpuPercentage = this->percent_cpu / this->processList->activeCPUs; 22d9e3: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22d9ea: f3 0f 10 80 94 00 00 00 movss 0x94(%rax),%xmm0 22d9f2: 48 8b 40 08 mov 0x8(%rax),%rax 22d9f6: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 22d9fc: f3 48 0f 2a c8 cvtsi2ss %rax,%xmm1 22da01: f3 0f 5e c1 divss %xmm1,%xmm0 22da05: f3 0f 11 85 74 fe ff ff movss %xmm0,-0x18c(%rbp) Process_printPercentage(cpuPercentage, buffer, n, &attr); 22da0d: f3 0f 10 85 74 fe ff ff movss -0x18c(%rbp),%xmm0 22da15: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22da1c: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22da23: 89 c6 mov %eax,%esi 22da25: 48 8d 95 ec fe ff ff lea -0x114(%rbp),%rdx 22da2c: e8 ef f4 ff ff call 22cf20 break; 22da31: e9 91 05 00 00 jmp 22dfc7 } case PERCENT_MEM: Process_printPercentage(this->percent_mem, buffer, n, &attr); break; 22da36: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22da3d: f3 0f 10 80 98 00 00 00 movss 0x98(%rax),%xmm0 22da45: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22da4c: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22da53: 89 c6 mov %eax,%esi 22da55: 48 8d 95 ec fe ff ff lea -0x114(%rbp),%rdx 22da5c: e8 bf f4 ff ff call 22cf20 22da61: e9 61 05 00 00 jmp 22dfc7 case PGRP: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->pgrp); break; 22da66: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22da6d: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22da74: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22da7b: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22da82: 44 8b 40 24 mov 0x24(%rax),%r8d 22da86: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22da90: b0 00 mov $0x0,%al 22da92: e8 59 ba 00 00 call 2394f0 22da97: e9 2b 05 00 00 jmp 22dfc7 case PID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->pid); break; 22da9c: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22daa3: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22daaa: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22dab1: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dab8: 44 8b 40 18 mov 0x18(%rax),%r8d 22dabc: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22dac6: b0 00 mov $0x0,%al 22dac8: e8 23 ba 00 00 call 2394f0 22dacd: e9 f5 04 00 00 jmp 22dfc7 case PPID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->ppid); break; 22dad2: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dad9: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22dae0: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22dae7: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22daee: 44 8b 40 1c mov 0x1c(%rax),%r8d 22daf2: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22dafc: b0 00 mov $0x0,%al 22dafe: e8 ed b9 00 00 call 2394f0 22db03: e9 bf 04 00 00 jmp 22dfc7 case PRIORITY: if (this->priority <= -100) 22db08: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22db0f: 48 83 b8 a0 00 00 00 9c cmpq $0xffffffffffffff9c,0xa0(%rax) 22db17: 0f 8f 24 00 00 00 jg 22db41 xSnprintf(buffer, n, " RT "); 22db1d: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22db24: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22db2b: 48 ba 8d 4a 20 00 00 00 00 00 movabs $0x204a8d,%rdx 22db35: b0 00 mov $0x0,%al 22db37: e8 b4 b9 00 00 call 2394f0 22db3c: e9 2d 00 00 00 jmp 22db6e else xSnprintf(buffer, n, "%3ld ", this->priority); 22db41: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22db48: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22db4f: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22db56: 48 8b 88 a0 00 00 00 mov 0xa0(%rax),%rcx 22db5d: 48 ba d2 37 20 00 00 00 00 00 movabs $0x2037d2,%rdx 22db67: b0 00 mov $0x0,%al 22db69: e8 82 b9 00 00 call 2394f0 break; 22db6e: e9 54 04 00 00 jmp 22dfc7 case PROCESSOR: xSnprintf(buffer, n, "%3d ", Settings_cpuId(this->settings, this->processor)); break; 22db73: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax 22db7a: 48 89 85 10 fe ff ff mov %rax,-0x1f0(%rbp) 22db81: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22db88: 48 89 85 18 fe ff ff mov %rax,-0x1e8(%rbp) 22db8f: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22db96: 48 8b 40 10 mov 0x10(%rax),%rax 22db9a: f6 40 44 01 testb $0x1,0x44(%rax) 22db9e: 0f 84 1b 00 00 00 je 22dbbf 22dba4: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dbab: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 22dbb1: 83 c0 01 add $0x1,%eax 22dbb4: 89 85 0c fe ff ff mov %eax,-0x1f4(%rbp) 22dbba: e9 13 00 00 00 jmp 22dbd2 22dbbf: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dbc6: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 22dbcc: 89 85 0c fe ff ff mov %eax,-0x1f4(%rbp) 22dbd2: 48 8b b5 18 fe ff ff mov -0x1e8(%rbp),%rsi 22dbd9: 48 8b bd 10 fe ff ff mov -0x1f0(%rbp),%rdi 22dbe0: 8b 8d 0c fe ff ff mov -0x1f4(%rbp),%ecx 22dbe6: 48 ba 31 46 20 00 00 00 00 00 movabs $0x204631,%rdx 22dbf0: b0 00 mov $0x0,%al 22dbf2: e8 f9 b8 00 00 call 2394f0 22dbf7: e9 cb 03 00 00 jmp 22dfc7 case SESSION: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->session); break; 22dbfc: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dc03: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22dc0a: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22dc11: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dc18: 44 8b 40 28 mov 0x28(%rax),%r8d 22dc1c: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22dc26: b0 00 mov $0x0,%al 22dc28: e8 c3 b8 00 00 call 2394f0 22dc2d: e9 95 03 00 00 jmp 22dfc7 case STARTTIME: xSnprintf(buffer, n, "%s", this->starttime_show); break; 22dc32: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dc39: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22dc40: 48 8b 8d e0 fe ff ff mov -0x120(%rbp),%rcx 22dc47: 48 81 c1 c0 00 00 00 add $0xc0,%rcx 22dc4e: 48 ba 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rdx 22dc58: b0 00 mov $0x0,%al 22dc5a: e8 91 b8 00 00 call 2394f0 22dc5f: e9 63 03 00 00 jmp 22dfc7 case STATE: xSnprintf(buffer, n, "%c ", processStateChar(this->state)); 22dc64: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 22dc6b: 48 89 85 f8 fd ff ff mov %rax,-0x208(%rbp) 22dc72: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dc79: 8b b8 e8 00 00 00 mov 0xe8(%rax),%edi 22dc7f: e8 dc 03 00 00 call 22e060 22dc84: 48 8b b5 f8 fd ff ff mov -0x208(%rbp),%rsi 22dc8b: 0f be c8 movsbl %al,%ecx 22dc8e: ba fa 39 20 00 mov $0x2039fa,%edx 22dc93: 31 c0 xor %eax,%eax 22dc95: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dc9c: e8 4f b8 00 00 call 2394f0 switch (this->state) { 22dca1: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dca8: 8b 80 e8 00 00 00 mov 0xe8(%rax),%eax 22dcae: 83 c0 ff add $0xffffffff,%eax 22dcb1: 89 c1 mov %eax,%ecx 22dcb3: 48 89 8d 00 fe ff ff mov %rcx,-0x200(%rbp) 22dcba: 83 e8 0d sub $0xd,%eax 22dcbd: 0f 87 5e 00 00 00 ja 22dd21 22dcc3: 48 8b 85 00 fe ff ff mov -0x200(%rbp),%rax 22dcca: 48 8b 04 c5 20 a1 20 00 mov 0x20a120(,%rax,8),%rax 22dcd2: ff e0 jmp *%rax case RUNNABLE: case RUNNING: case TRACED: attr = CRT_colors[PROCESS_RUN_STATE]; 22dcd4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22dcdc: 8b 80 88 00 00 00 mov 0x88(%rax),%eax 22dce2: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) break; 22dce8: e9 34 00 00 00 jmp 22dd21 case BLOCKED: case DEFUNCT: case STOPPED: case ZOMBIE: attr = CRT_colors[PROCESS_D_STATE]; 22dced: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22dcf5: 8b 80 8c 00 00 00 mov 0x8c(%rax),%eax 22dcfb: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) break; 22dd01: e9 1b 00 00 00 jmp 22dd21 case QUEUED: case WAITING: case UNINTERRUPTIBLE_WAIT: case IDLE: case SLEEPING: attr = CRT_colors[PROCESS_SHADOW]; 22dd06: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22dd0e: 8b 40 74 mov 0x74(%rax),%eax 22dd11: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) break; 22dd17: e9 05 00 00 00 jmp 22dd21 case UNKNOWN: case PAGING: break; 22dd1c: e9 00 00 00 00 jmp 22dd21 } break; 22dd21: e9 a1 02 00 00 jmp 22dfc7 case ST_UID: xSnprintf(buffer, n, "%*d ", Process_uidDigits, this->st_uid); break; 22dd26: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dd2d: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22dd34: 8b 0c 25 5c 18 24 00 mov 0x24185c,%ecx 22dd3b: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dd42: 44 8b 40 48 mov 0x48(%rax),%r8d 22dd46: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22dd50: b0 00 mov $0x0,%al 22dd52: e8 99 b7 00 00 call 2394f0 22dd57: e9 6b 02 00 00 jmp 22dfc7 case TIME: Process_printTime(str, this->time, coloring); return; 22dd5c: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22dd63: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dd6a: 48 8b 70 58 mov 0x58(%rax),%rsi 22dd6e: 8a 85 c7 fe ff ff mov -0x139(%rbp),%al 22dd74: 24 01 and $0x1,%al 22dd76: 0f b6 d0 movzbl %al,%edx 22dd79: e8 82 c7 ff ff call 22a500 22dd7e: e9 5d 02 00 00 jmp 22dfe0 case TGID: if (this->tgid == this->pid) 22dd83: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22dd8a: 8b 40 20 mov 0x20(%rax),%eax 22dd8d: 48 8b 8d e0 fe ff ff mov -0x120(%rbp),%rcx 22dd94: 3b 41 18 cmp 0x18(%rcx),%eax 22dd97: 0f 85 11 00 00 00 jne 22ddae attr = CRT_colors[PROCESS_SHADOW]; 22dd9d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22dda5: 8b 40 74 mov 0x74(%rax),%eax 22dda8: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tgid); 22ddae: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22ddb5: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22ddbc: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22ddc3: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22ddca: 44 8b 40 20 mov 0x20(%rax),%r8d 22ddce: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22ddd8: b0 00 mov $0x0,%al 22ddda: e8 11 b7 00 00 call 2394f0 break; 22dddf: e9 e3 01 00 00 jmp 22dfc7 case TPGID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tpgid); break; 22dde4: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22ddeb: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22ddf2: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22ddf9: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22de00: 44 8b 40 2c mov 0x2c(%rax),%r8d 22de04: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 22de0e: b0 00 mov $0x0,%al 22de10: e8 db b6 00 00 call 2394f0 22de15: e9 ad 01 00 00 jmp 22dfc7 case TTY: if (!this->tty_name) { 22de1a: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22de21: 48 83 78 40 00 cmpq $0x0,0x40(%rax) 22de26: 0f 85 35 00 00 00 jne 22de61 attr = CRT_colors[PROCESS_SHADOW]; 22de2c: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22de34: 8b 40 74 mov 0x74(%rax),%eax 22de37: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) xSnprintf(buffer, n, "(no tty) "); 22de3d: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22de44: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22de4b: 48 ba d1 6c 20 00 00 00 00 00 movabs $0x206cd1,%rdx 22de55: b0 00 mov $0x0,%al 22de57: e8 94 b6 00 00 call 2394f0 } else { 22de5c: e9 88 00 00 00 jmp 22dee9 const char* name = String_startsWith(this->tty_name, "/dev/") ? (this->tty_name + strlen("/dev/")) : this->tty_name; 22de61: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22de68: 48 8b 78 40 mov 0x40(%rax),%rdi 22de6c: 48 be b3 43 20 00 00 00 00 00 movabs $0x2043b3,%rsi 22de76: e8 95 01 00 00 call 22e010 22de7b: a8 01 test $0x1,%al 22de7d: 0f 85 05 00 00 00 jne 22de88 22de83: e9 1b 00 00 00 jmp 22dea3 22de88: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22de8f: 48 8b 40 40 mov 0x40(%rax),%rax 22de93: 48 83 c0 05 add $0x5,%rax 22de97: 48 89 85 f0 fd ff ff mov %rax,-0x210(%rbp) 22de9e: e9 12 00 00 00 jmp 22deb5 22dea3: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22deaa: 48 8b 40 40 mov 0x40(%rax),%rax 22deae: 48 89 85 f0 fd ff ff mov %rax,-0x210(%rbp) 22deb5: 48 8b 85 f0 fd ff ff mov -0x210(%rbp),%rax 22debc: 48 89 85 68 fe ff ff mov %rax,-0x198(%rbp) xSnprintf(buffer, n, "%-8s ", name); 22dec3: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22deca: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22ded1: 48 8b 8d 68 fe ff ff mov -0x198(%rbp),%rcx 22ded8: 48 ba ab 6b 20 00 00 00 00 00 movabs $0x206bab,%rdx 22dee2: b0 00 mov $0x0,%al 22dee4: e8 07 b6 00 00 call 2394f0 } break; 22dee9: e9 d9 00 00 00 jmp 22dfc7 case USER: if (Process_getuid != this->st_uid) 22deee: 8b 04 25 60 18 24 00 mov 0x241860,%eax 22def5: 48 8b 8d e0 fe ff ff mov -0x120(%rbp),%rcx 22defc: 3b 41 48 cmp 0x48(%rcx),%eax 22deff: 0f 84 11 00 00 00 je 22df16 attr = CRT_colors[PROCESS_SHADOW]; 22df05: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22df0d: 8b 40 74 mov 0x74(%rax),%eax 22df10: 89 85 ec fe ff ff mov %eax,-0x114(%rbp) if (this->user) { 22df16: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22df1d: 48 83 78 50 00 cmpq $0x0,0x50(%rax) 22df22: 0f 84 27 00 00 00 je 22df4f Process_printLeftAlignedField(str, attr, this->user, 10); 22df28: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22df2f: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22df35: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22df3c: 48 8b 50 50 mov 0x50(%rax),%rdx 22df40: b9 0a 00 00 00 mov $0xa,%ecx 22df45: e8 36 ef ff ff call 22ce80 return; 22df4a: e9 91 00 00 00 jmp 22dfe0 } xSnprintf(buffer, n, "%-10d ", this->st_uid); 22df4f: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22df56: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22df5d: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 22df64: 8b 48 48 mov 0x48(%rax),%ecx 22df67: 48 ba d7 5c 20 00 00 00 00 00 movabs $0x205cd7,%rdx 22df71: b0 00 mov $0x0,%al 22df73: e8 78 b5 00 00 call 2394f0 break; 22df78: e9 4a 00 00 00 jmp 22dfc7 default: if (DynamicColumn_writeField(this, str, field)) 22df7d: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 22df84: 48 8b b5 d8 fe ff ff mov -0x128(%rbp),%rsi 22df8b: 8b 95 d4 fe ff ff mov -0x12c(%rbp),%edx 22df91: e8 aa fc fe ff call 21dc40 22df96: a8 01 test $0x1,%al 22df98: 0f 85 05 00 00 00 jne 22dfa3 22df9e: e9 05 00 00 00 jmp 22dfa8 return; 22dfa3: e9 38 00 00 00 jmp 22dfe0 assert(0 && "Process_writeField: default key reached"); /* should never be reached */ xSnprintf(buffer, n, "- "); 22dfa8: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 22dfaf: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 22dfb6: 48 ba 4b 35 20 00 00 00 00 00 movabs $0x20354b,%rdx 22dfc0: b0 00 mov $0x0,%al 22dfc2: e8 29 b5 00 00 call 2394f0 break; } RichString_appendAscii(str, attr, buffer); 22dfc7: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 22dfce: 8b b5 ec fe ff ff mov -0x114(%rbp),%esi 22dfd4: 48 8d 95 f0 fe ff ff lea -0x110(%rbp),%rdx 22dfdb: e8 a0 45 00 00 call 232580 22dfe0: 48 8b 05 49 48 01 00 mov 0x14849(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22dfe7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22dfeb: 48 39 c8 cmp %rcx,%rax 22dfee: 0f 85 09 00 00 00 jne 22dffd } 22dff4: 48 81 c4 10 02 00 00 add $0x210,%rsp 22dffb: 5d pop %rbp 22dffc: c3 ret 22dffd: e8 3e 01 01 00 call 23e140 <__stack_chk_fail@plt> 22e002: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22e00c: 0f 1f 40 00 nopl 0x0(%rax) 000000000022e010 : static inline bool String_startsWith(const char* s, const char* match) { 22e010: 55 push %rbp 22e011: 48 89 e5 mov %rsp,%rbp 22e014: 48 83 ec 20 sub $0x20,%rsp 22e018: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22e01c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strncmp(s, match, strlen(match)) == 0; 22e020: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e024: 48 89 45 e0 mov %rax,-0x20(%rbp) 22e028: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e02c: 48 89 45 e8 mov %rax,-0x18(%rbp) 22e030: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e034: e8 b7 01 01 00 call 23e1f0 22e039: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22e03d: 48 8b 75 e8 mov -0x18(%rbp),%rsi 22e041: 48 89 c2 mov %rax,%rdx 22e044: e8 37 04 01 00 call 23e480 22e049: 83 f8 00 cmp $0x0,%eax 22e04c: 0f 94 c0 sete %al 22e04f: 24 01 and $0x1,%al 22e051: 0f b6 c0 movzbl %al,%eax 22e054: 48 83 c4 20 add $0x20,%rsp 22e058: 5d pop %rbp 22e059: c3 ret 22e05a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000022e060 : static inline char processStateChar(ProcessState state) { 22e060: 55 push %rbp 22e061: 48 89 e5 mov %rsp,%rbp 22e064: 89 7d f8 mov %edi,-0x8(%rbp) switch (state) { 22e067: 8b 45 f8 mov -0x8(%rbp),%eax 22e06a: 83 c0 ff add $0xffffffff,%eax 22e06d: 89 c1 mov %eax,%ecx 22e06f: 48 89 4d f0 mov %rcx,-0x10(%rbp) 22e073: 83 e8 0d sub $0xd,%eax 22e076: 0f 87 8c 00 00 00 ja 22e108 22e07c: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e080: 48 8b 04 c5 90 a1 20 00 mov 0x20a190(,%rax,8),%rax 22e088: ff e0 jmp *%rax case UNKNOWN: return '?'; 22e08a: c6 45 ff 3f movb $0x3f,-0x1(%rbp) 22e08e: e9 79 00 00 00 jmp 22e10c case RUNNABLE: return 'U'; 22e093: c6 45 ff 55 movb $0x55,-0x1(%rbp) 22e097: e9 70 00 00 00 jmp 22e10c case RUNNING: return 'R'; 22e09c: c6 45 ff 52 movb $0x52,-0x1(%rbp) 22e0a0: e9 67 00 00 00 jmp 22e10c case QUEUED: return 'Q'; 22e0a5: c6 45 ff 51 movb $0x51,-0x1(%rbp) 22e0a9: e9 5e 00 00 00 jmp 22e10c case WAITING: return 'W'; 22e0ae: c6 45 ff 57 movb $0x57,-0x1(%rbp) 22e0b2: e9 55 00 00 00 jmp 22e10c case UNINTERRUPTIBLE_WAIT: return 'D'; 22e0b7: c6 45 ff 44 movb $0x44,-0x1(%rbp) 22e0bb: e9 4c 00 00 00 jmp 22e10c case BLOCKED: return 'B'; 22e0c0: c6 45 ff 42 movb $0x42,-0x1(%rbp) 22e0c4: e9 43 00 00 00 jmp 22e10c case PAGING: return 'P'; 22e0c9: c6 45 ff 50 movb $0x50,-0x1(%rbp) 22e0cd: e9 3a 00 00 00 jmp 22e10c case STOPPED: return 'T'; 22e0d2: c6 45 ff 54 movb $0x54,-0x1(%rbp) 22e0d6: e9 31 00 00 00 jmp 22e10c case TRACED: return 't'; 22e0db: c6 45 ff 74 movb $0x74,-0x1(%rbp) 22e0df: e9 28 00 00 00 jmp 22e10c case ZOMBIE: return 'Z'; 22e0e4: c6 45 ff 5a movb $0x5a,-0x1(%rbp) 22e0e8: e9 1f 00 00 00 jmp 22e10c case DEFUNCT: return 'X'; 22e0ed: c6 45 ff 58 movb $0x58,-0x1(%rbp) 22e0f1: e9 16 00 00 00 jmp 22e10c case IDLE: return 'I'; 22e0f6: c6 45 ff 49 movb $0x49,-0x1(%rbp) 22e0fa: e9 0d 00 00 00 jmp 22e10c case SLEEPING: return 'S'; 22e0ff: c6 45 ff 53 movb $0x53,-0x1(%rbp) 22e103: e9 04 00 00 00 jmp 22e10c return '!'; 22e108: c6 45 ff 21 movb $0x21,-0x1(%rbp) } 22e10c: 0f be 45 ff movsbl -0x1(%rbp),%eax 22e110: 5d pop %rbp 22e111: c3 ret 22e112: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22e11c: 0f 1f 40 00 nopl 0x0(%rax) 000000000022e120 : void Process_display(const Object* cast, RichString* out) { 22e120: 55 push %rbp 22e121: 48 89 e5 mov %rsp,%rbp 22e124: 48 83 ec 30 sub $0x30,%rsp 22e128: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22e12c: 48 89 75 f0 mov %rsi,-0x10(%rbp) const Process* this = (const Process*) cast; 22e130: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e134: 48 89 45 e8 mov %rax,-0x18(%rbp) const ProcessField* fields = this->settings->fields; 22e138: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e13c: 48 8b 40 10 mov 0x10(%rax),%rax 22e140: 48 8b 40 20 mov 0x20(%rax),%rax 22e144: 48 89 45 e0 mov %rax,-0x20(%rbp) for (int i = 0; fields[i]; i++) 22e148: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%rbp) 22e14f: 48 8b 45 e0 mov -0x20(%rbp),%rax 22e153: 48 63 4d dc movslq -0x24(%rbp),%rcx 22e157: 83 3c 88 00 cmpl $0x0,(%rax,%rcx,4) 22e15b: 0f 84 2e 00 00 00 je 22e18f As_Process(this)->writeField(this, out, fields[i]); 22e161: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e165: 48 8b 00 mov (%rax),%rax 22e168: 48 8b 40 20 mov 0x20(%rax),%rax 22e16c: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e170: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22e174: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22e178: 48 63 55 dc movslq -0x24(%rbp),%rdx 22e17c: 8b 14 91 mov (%rcx,%rdx,4),%edx 22e17f: ff d0 call *%rax for (int i = 0; fields[i]; i++) 22e181: 8b 45 dc mov -0x24(%rbp),%eax 22e184: 83 c0 01 add $0x1,%eax 22e187: 89 45 dc mov %eax,-0x24(%rbp) 22e18a: e9 c0 ff ff ff jmp 22e14f if (this->settings->shadowOtherUsers && this->st_uid != Process_getuid) { 22e18f: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e193: 48 8b 40 10 mov 0x10(%rax),%rax 22e197: f6 40 4e 01 testb $0x1,0x4e(%rax) 22e19b: 0f 84 28 00 00 00 je 22e1c9 22e1a1: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e1a5: 8b 40 48 mov 0x48(%rax),%eax 22e1a8: 3b 04 25 60 18 24 00 cmp 0x241860,%eax 22e1af: 0f 84 14 00 00 00 je 22e1c9 RichString_setAttr(out, CRT_colors[PROCESS_SHADOW]); 22e1b5: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e1b9: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22e1c1: 8b 70 74 mov 0x74(%rax),%esi 22e1c4: e8 d7 40 00 00 call 2322a0 } if (this->tag == true) { 22e1c9: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e1cd: 8a 80 ed 00 00 00 mov 0xed(%rax),%al 22e1d3: 24 01 and $0x1,%al 22e1d5: 0f b6 c0 movzbl %al,%eax 22e1d8: 83 f8 01 cmp $0x1,%eax 22e1db: 0f 85 14 00 00 00 jne 22e1f5 RichString_setAttr(out, CRT_colors[PROCESS_TAG]); 22e1e1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e1e5: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22e1ed: 8b 70 78 mov 0x78(%rax),%esi 22e1f0: e8 ab 40 00 00 call 2322a0 } if (this->settings->highlightChanges) { 22e1f5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e1f9: 48 8b 40 10 mov 0x10(%rax),%rax 22e1fd: f6 40 56 01 testb $0x1,0x56(%rax) 22e201: 0f 84 6b 00 00 00 je 22e272 if (Process_isTomb(this)) { 22e207: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e20b: e8 70 00 00 00 call 22e280 22e210: a8 01 test $0x1,%al 22e212: 0f 85 05 00 00 00 jne 22e21d 22e218: e9 1d 00 00 00 jmp 22e23a out->highlightAttr = CRT_colors[PROCESS_TOMB]; 22e21d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22e225: 8b 88 a0 00 00 00 mov 0xa0(%rax),%ecx 22e22b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e22f: 89 88 74 26 00 00 mov %ecx,0x2674(%rax) } else if (Process_isNew(this)) { 22e235: e9 33 00 00 00 jmp 22e26d 22e23a: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e23e: e8 5d 00 00 00 call 22e2a0 22e243: a8 01 test $0x1,%al 22e245: 0f 85 05 00 00 00 jne 22e250 22e24b: e9 18 00 00 00 jmp 22e268 out->highlightAttr = CRT_colors[PROCESS_NEW]; 22e250: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22e258: 8b 88 9c 00 00 00 mov 0x9c(%rax),%ecx 22e25e: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e262: 89 88 74 26 00 00 mov %ecx,0x2674(%rax) 22e268: e9 00 00 00 00 jmp 22e26d } } 22e26d: e9 00 00 00 00 jmp 22e272 assert(RichString_size(out) > 0); } 22e272: 48 83 c4 30 add $0x30,%rsp 22e276: 5d pop %rbp 22e277: c3 ret 22e278: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000022e280 : return this->processList->monotonicMs - this->seenStampMs <= 1000 * (uint64_t)this->processList->settings->highlightDelaySecs; } return false; } bool Process_isTomb(const Process* this) { 22e280: 55 push %rbp 22e281: 48 89 e5 mov %rsp,%rbp 22e284: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->tombStampMs > 0; 22e288: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e28c: 48 83 b8 00 01 00 00 00 cmpq $0x0,0x100(%rax) 22e294: 0f 97 c0 seta %al 22e297: 24 01 and $0x1,%al 22e299: 0f b6 c0 movzbl %al,%eax 22e29c: 5d pop %rbp 22e29d: c3 ret 22e29e: 66 90 xchg %ax,%ax 000000000022e2a0 : bool Process_isNew(const Process* this) { 22e2a0: 55 push %rbp 22e2a1: 48 89 e5 mov %rsp,%rbp 22e2a4: 48 89 7d f0 mov %rdi,-0x10(%rbp) if (this->processList->monotonicMs >= this->seenStampMs) { 22e2a8: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e2ac: 48 8b 40 08 mov 0x8(%rax),%rax 22e2b0: 48 8b 40 60 mov 0x60(%rax),%rax 22e2b4: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e2b8: 48 3b 81 f8 00 00 00 cmp 0xf8(%rcx),%rax 22e2bf: 0f 82 3d 00 00 00 jb 22e302 return this->processList->monotonicMs - this->seenStampMs <= 1000 * (uint64_t)this->processList->settings->highlightDelaySecs; 22e2c5: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e2c9: 48 8b 40 08 mov 0x8(%rax),%rax 22e2cd: 48 8b 40 60 mov 0x60(%rax),%rax 22e2d1: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e2d5: 48 2b 81 f8 00 00 00 sub 0xf8(%rcx),%rax 22e2dc: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e2e0: 48 8b 49 08 mov 0x8(%rcx),%rcx 22e2e4: 48 8b 09 mov (%rcx),%rcx 22e2e7: 48 63 49 58 movslq 0x58(%rcx),%rcx 22e2eb: 48 69 c9 e8 03 00 00 imul $0x3e8,%rcx,%rcx 22e2f2: 48 39 c8 cmp %rcx,%rax 22e2f5: 0f 96 c0 setbe %al 22e2f8: 24 01 and $0x1,%al 22e2fa: 88 45 ff mov %al,-0x1(%rbp) 22e2fd: e9 04 00 00 00 jmp 22e306 return false; 22e302: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 22e306: 8a 45 ff mov -0x1(%rbp),%al 22e309: 24 01 and $0x1,%al 22e30b: 0f b6 c0 movzbl %al,%eax 22e30e: 5d pop %rbp 22e30f: c3 ret 000000000022e310 : void Process_done(Process* this) { 22e310: 55 push %rbp 22e311: 48 89 e5 mov %rsp,%rbp 22e314: 48 83 ec 10 sub $0x10,%rsp 22e318: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(this->cmdline); 22e31c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e320: 48 8b 78 60 mov 0x60(%rax),%rdi 22e324: e8 37 fe 00 00 call 23e160 free(this->procComm); 22e329: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e32d: 48 8b 78 70 mov 0x70(%rax),%rdi 22e331: e8 2a fe 00 00 call 23e160 free(this->procExe); 22e336: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e33a: 48 8b 78 78 mov 0x78(%rax),%rdi 22e33e: e8 1d fe 00 00 call 23e160 free(this->procCwd); 22e343: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e347: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 22e34e: e8 0d fe 00 00 call 23e160 free(this->mergedCommand.str); 22e353: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e357: 48 8b b8 20 01 00 00 mov 0x120(%rax),%rdi 22e35e: e8 fd fd 00 00 call 23e160 free(this->tty_name); 22e363: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e367: 48 8b 78 40 mov 0x40(%rax),%rdi 22e36b: e8 f0 fd 00 00 call 23e160 } 22e370: 48 83 c4 10 add $0x10,%rsp 22e374: 5d pop %rbp 22e375: c3 ret 22e376: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000022e380 : const char* Process_getCommandStr(const Process* this) { 22e380: 55 push %rbp 22e381: 48 89 e5 mov %rsp,%rbp 22e384: 48 83 ec 10 sub $0x10,%rsp 22e388: 48 89 7d f0 mov %rdi,-0x10(%rbp) if ((Process_isUserlandThread(this) && this->settings->showThreadNames) || !this->mergedCommand.str) { 22e38c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e390: e8 7b df ff ff call 22c310 22e395: a8 01 test $0x1,%al 22e397: 0f 85 05 00 00 00 jne 22e3a2 22e39d: e9 12 00 00 00 jmp 22e3b4 22e3a2: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e3a6: 48 8b 40 10 mov 0x10(%rax),%rax 22e3aa: f6 40 4f 01 testb $0x1,0x4f(%rax) 22e3ae: 0f 85 12 00 00 00 jne 22e3c6 22e3b4: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e3b8: 48 83 b8 20 01 00 00 00 cmpq $0x0,0x120(%rax) 22e3c0: 0f 85 11 00 00 00 jne 22e3d7 return this->cmdline; 22e3c6: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e3ca: 48 8b 40 60 mov 0x60(%rax),%rax 22e3ce: 48 89 45 f8 mov %rax,-0x8(%rbp) 22e3d2: e9 0f 00 00 00 jmp 22e3e6 return this->mergedCommand.str; 22e3d7: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e3db: 48 8b 80 20 01 00 00 mov 0x120(%rax),%rax 22e3e2: 48 89 45 f8 mov %rax,-0x8(%rbp) } 22e3e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e3ea: 48 83 c4 10 add $0x10,%rsp 22e3ee: 5d pop %rbp 22e3ef: c3 ret 000000000022e3f0 : const Process* p2 = (const Process*)v2; return SPACESHIP_NUMBER(p1->pid, p2->pid); } int Process_compare(const void* v1, const void* v2) { 22e3f0: 55 push %rbp 22e3f1: 48 89 e5 mov %rsp,%rbp 22e3f4: 48 83 ec 40 sub $0x40,%rsp 22e3f8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22e3fc: 48 89 75 e8 mov %rsi,-0x18(%rbp) const Process* p1 = (const Process*)v1; 22e400: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e404: 48 89 45 e0 mov %rax,-0x20(%rbp) const Process* p2 = (const Process*)v2; 22e408: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e40c: 48 89 45 d8 mov %rax,-0x28(%rbp) const Settings* settings = p1->settings; 22e410: 48 8b 45 e0 mov -0x20(%rbp),%rax 22e414: 48 8b 40 10 mov 0x10(%rax),%rax 22e418: 48 89 45 d0 mov %rax,-0x30(%rbp) ProcessField key = Settings_getActiveSortKey(settings); 22e41c: 48 8b 7d d0 mov -0x30(%rbp),%rdi 22e420: e8 eb 02 00 00 call 22e710 22e425: 89 45 cc mov %eax,-0x34(%rbp) int result = Process_compareByKey(p1, p2, key); 22e428: 48 8b 45 e0 mov -0x20(%rbp),%rax 22e42c: 48 8b 00 mov (%rax),%rax 22e42f: 48 83 78 28 00 cmpq $0x0,0x28(%rax) 22e434: 0f 84 20 00 00 00 je 22e45a 22e43a: 48 8b 45 e0 mov -0x20(%rbp),%rax 22e43e: 48 8b 00 mov (%rax),%rax 22e441: 48 8b 40 28 mov 0x28(%rax),%rax 22e445: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22e449: 48 8b 75 d8 mov -0x28(%rbp),%rsi 22e44d: 8b 55 cc mov -0x34(%rbp),%edx 22e450: ff d0 call *%rax 22e452: 89 45 c4 mov %eax,-0x3c(%rbp) 22e455: e9 13 00 00 00 jmp 22e46d 22e45a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 22e45e: 48 8b 75 d8 mov -0x28(%rbp),%rsi 22e462: 8b 55 cc mov -0x34(%rbp),%edx 22e465: e8 06 03 00 00 call 22e770 22e46a: 89 45 c4 mov %eax,-0x3c(%rbp) 22e46d: 8b 45 c4 mov -0x3c(%rbp),%eax 22e470: 89 45 c8 mov %eax,-0x38(%rbp) // Implement tie-breaker (needed to make tree mode more stable) if (!result) 22e473: 83 7d c8 00 cmpl $0x0,-0x38(%rbp) 22e477: 0f 85 37 00 00 00 jne 22e4b4 return SPACESHIP_NUMBER(p1->pid, p2->pid); 22e47d: 48 8b 45 e0 mov -0x20(%rbp),%rax 22e481: 8b 40 18 mov 0x18(%rax),%eax 22e484: 48 8b 4d d8 mov -0x28(%rbp),%rcx 22e488: 3b 41 18 cmp 0x18(%rcx),%eax 22e48b: 0f 9f c0 setg %al 22e48e: 24 01 and $0x1,%al 22e490: 0f b6 c0 movzbl %al,%eax 22e493: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22e497: 8b 49 18 mov 0x18(%rcx),%ecx 22e49a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 22e49e: 3b 4a 18 cmp 0x18(%rdx),%ecx 22e4a1: 0f 9c c1 setl %cl 22e4a4: 80 e1 01 and $0x1,%cl 22e4a7: 0f b6 c9 movzbl %cl,%ecx 22e4aa: 29 c8 sub %ecx,%eax 22e4ac: 89 45 fc mov %eax,-0x4(%rbp) 22e4af: e9 2b 00 00 00 jmp 22e4df return (Settings_getActiveDirection(settings) == 1) ? result : -result; 22e4b4: 48 8b 7d d0 mov -0x30(%rbp),%rdi 22e4b8: e8 f3 0e 00 00 call 22f3b0 22e4bd: 83 f8 01 cmp $0x1,%eax 22e4c0: 0f 85 0b 00 00 00 jne 22e4d1 22e4c6: 8b 45 c8 mov -0x38(%rbp),%eax 22e4c9: 89 45 c0 mov %eax,-0x40(%rbp) 22e4cc: e9 08 00 00 00 jmp 22e4d9 22e4d1: 31 c0 xor %eax,%eax 22e4d3: 2b 45 c8 sub -0x38(%rbp),%eax 22e4d6: 89 45 c0 mov %eax,-0x40(%rbp) 22e4d9: 8b 45 c0 mov -0x40(%rbp),%eax 22e4dc: 89 45 fc mov %eax,-0x4(%rbp) } 22e4df: 8b 45 fc mov -0x4(%rbp),%eax 22e4e2: 48 83 c4 40 add $0x40,%rsp 22e4e6: 5d pop %rbp 22e4e7: c3 ret 22e4e8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000022e4f0 : void Process_init(Process* this, const Settings* settings) { 22e4f0: 55 push %rbp 22e4f1: 48 89 e5 mov %rsp,%rbp 22e4f4: 48 83 ec 10 sub $0x10,%rsp 22e4f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22e4fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) this->settings = settings; 22e500: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e504: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e508: 48 89 48 10 mov %rcx,0x10(%rax) this->tag = false; 22e50c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e510: c6 80 ed 00 00 00 00 movb $0x0,0xed(%rax) this->showChildren = true; 22e517: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e51b: c6 80 f0 00 00 00 01 movb $0x1,0xf0(%rax) this->show = true; 22e522: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e526: c6 80 ee 00 00 00 01 movb $0x1,0xee(%rax) this->updated = false; 22e52d: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e531: c6 80 ec 00 00 00 00 movb $0x0,0xec(%rax) this->cmdlineBasenameEnd = -1; 22e538: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e53c: c7 40 68 ff ff ff ff movl $0xffffffff,0x68(%rax) this->st_uid = (uid_t)-1; 22e543: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e547: c7 40 48 ff ff ff ff movl $0xffffffff,0x48(%rax) if (Process_getuid == (uid_t)-1) { 22e54e: 83 3c 25 60 18 24 00 ff cmpl $0xffffffff,0x241860 22e556: 0f 85 0c 00 00 00 jne 22e568 Process_getuid = getuid(); 22e55c: e8 0f 02 01 00 call 23e770 22e561: 89 04 25 60 18 24 00 mov %eax,0x241860 } 22e568: 48 83 c4 10 add $0x10,%rsp 22e56c: 5d pop %rbp 22e56d: c3 ret 22e56e: 66 90 xchg %ax,%ax 000000000022e570 : void Process_toggleTag(Process* this) { 22e570: 55 push %rbp 22e571: 48 89 e5 mov %rsp,%rbp 22e574: 48 89 7d f8 mov %rdi,-0x8(%rbp) this->tag = !this->tag; 22e578: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e57c: 8a 88 ed 00 00 00 mov 0xed(%rax),%cl 22e582: 80 f1 ff xor $0xff,%cl 22e585: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e589: 80 e1 01 and $0x1,%cl 22e58c: 88 88 ed 00 00 00 mov %cl,0xed(%rax) } 22e592: 5d pop %rbp 22e593: c3 ret 22e594: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22e59e: 66 90 xchg %ax,%ax 000000000022e5a0 : bool Process_setPriority(Process* this, int priority) { 22e5a0: 55 push %rbp 22e5a1: 48 89 e5 mov %rsp,%rbp 22e5a4: 48 83 ec 20 sub $0x20,%rsp 22e5a8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22e5ac: 89 75 ec mov %esi,-0x14(%rbp) if (Settings_isReadonly()) 22e5af: e8 9c 7b 00 00 call 236150 22e5b4: a8 01 test $0x1,%al 22e5b6: 0f 85 05 00 00 00 jne 22e5c1 22e5bc: e9 09 00 00 00 jmp 22e5ca return false; 22e5c1: c6 45 ff 00 movb $0x0,-0x1(%rbp) 22e5c5: e9 6b 00 00 00 jmp 22e635 int old_prio = getpriority(PRIO_PROCESS, this->pid); 22e5ca: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e5ce: 8b 70 18 mov 0x18(%rax),%esi 22e5d1: 31 ff xor %edi,%edi 22e5d3: e8 a8 01 01 00 call 23e780 22e5d8: 89 45 e8 mov %eax,-0x18(%rbp) int err = setpriority(PRIO_PROCESS, this->pid, priority); 22e5db: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e5df: 8b 70 18 mov 0x18(%rax),%esi 22e5e2: 8b 55 ec mov -0x14(%rbp),%edx 22e5e5: 31 ff xor %edi,%edi 22e5e7: e8 a4 01 01 00 call 23e790 22e5ec: 89 45 e4 mov %eax,-0x1c(%rbp) if (err == 0 && old_prio != getpriority(PRIO_PROCESS, this->pid)) { 22e5ef: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 22e5f3: 0f 85 30 00 00 00 jne 22e629 22e5f9: 8b 45 e8 mov -0x18(%rbp),%eax 22e5fc: 89 45 e0 mov %eax,-0x20(%rbp) 22e5ff: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e603: 8b 70 18 mov 0x18(%rax),%esi 22e606: 31 ff xor %edi,%edi 22e608: e8 73 01 01 00 call 23e780 22e60d: 89 c1 mov %eax,%ecx 22e60f: 8b 45 e0 mov -0x20(%rbp),%eax 22e612: 39 c8 cmp %ecx,%eax 22e614: 0f 84 0f 00 00 00 je 22e629 this->nice = priority; 22e61a: 48 63 4d ec movslq -0x14(%rbp),%rcx 22e61e: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e622: 48 89 88 a8 00 00 00 mov %rcx,0xa8(%rax) return (err == 0); 22e629: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 22e62d: 0f 94 c0 sete %al 22e630: 24 01 and $0x1,%al 22e632: 88 45 ff mov %al,-0x1(%rbp) } 22e635: 8a 45 ff mov -0x1(%rbp),%al 22e638: 24 01 and $0x1,%al 22e63a: 0f b6 c0 movzbl %al,%eax 22e63d: 48 83 c4 20 add $0x20,%rsp 22e641: 5d pop %rbp 22e642: c3 ret 22e643: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22e64d: 0f 1f 00 nopl (%rax) 000000000022e650 : bool Process_changePriorityBy(Process* this, Arg delta) { 22e650: 55 push %rbp 22e651: 48 89 e5 mov %rsp,%rbp 22e654: 48 83 ec 10 sub $0x10,%rsp 22e658: 48 89 75 f8 mov %rsi,-0x8(%rbp) 22e65c: 48 89 7d f0 mov %rdi,-0x10(%rbp) return Process_setPriority(this, this->nice + delta.i); 22e660: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e664: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e668: 48 8b 80 a8 00 00 00 mov 0xa8(%rax),%rax 22e66f: 48 63 4d f8 movslq -0x8(%rbp),%rcx 22e673: 48 01 c8 add %rcx,%rax 22e676: 89 c6 mov %eax,%esi 22e678: e8 23 ff ff ff call 22e5a0 22e67d: 24 01 and $0x1,%al 22e67f: 0f b6 c0 movzbl %al,%eax 22e682: 48 83 c4 10 add $0x10,%rsp 22e686: 5d pop %rbp 22e687: c3 ret 22e688: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000022e690 : bool Process_sendSignal(Process* this, Arg sgn) { 22e690: 55 push %rbp 22e691: 48 89 e5 mov %rsp,%rbp 22e694: 48 83 ec 10 sub $0x10,%rsp 22e698: 48 89 75 f8 mov %rsi,-0x8(%rbp) 22e69c: 48 89 7d f0 mov %rdi,-0x10(%rbp) return kill(this->pid, sgn.i) == 0; 22e6a0: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e6a4: 8b 78 18 mov 0x18(%rax),%edi 22e6a7: 8b 75 f8 mov -0x8(%rbp),%esi 22e6aa: e8 f1 00 01 00 call 23e7a0 22e6af: 83 f8 00 cmp $0x0,%eax 22e6b2: 0f 94 c0 sete %al 22e6b5: 24 01 and $0x1,%al 22e6b7: 0f b6 c0 movzbl %al,%eax 22e6ba: 48 83 c4 10 add $0x10,%rsp 22e6be: 5d pop %rbp 22e6bf: c3 ret 000000000022e6c0 : int Process_pidCompare(const void* v1, const void* v2) { 22e6c0: 55 push %rbp 22e6c1: 48 89 e5 mov %rsp,%rbp 22e6c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22e6c8: 48 89 75 f0 mov %rsi,-0x10(%rbp) const Process* p1 = (const Process*)v1; 22e6cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e6d0: 48 89 45 e8 mov %rax,-0x18(%rbp) const Process* p2 = (const Process*)v2; 22e6d4: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e6d8: 48 89 45 e0 mov %rax,-0x20(%rbp) return SPACESHIP_NUMBER(p1->pid, p2->pid); 22e6dc: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e6e0: 8b 40 18 mov 0x18(%rax),%eax 22e6e3: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22e6e7: 3b 41 18 cmp 0x18(%rcx),%eax 22e6ea: 0f 9f c0 setg %al 22e6ed: 24 01 and $0x1,%al 22e6ef: 0f b6 c0 movzbl %al,%eax 22e6f2: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22e6f6: 8b 49 18 mov 0x18(%rcx),%ecx 22e6f9: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22e6fd: 3b 4a 18 cmp 0x18(%rdx),%ecx 22e700: 0f 9c c1 setl %cl 22e703: 80 e1 01 and $0x1,%cl 22e706: 0f b6 c9 movzbl %cl,%ecx 22e709: 29 c8 sub %ecx,%eax 22e70b: 5d pop %rbp 22e70c: c3 ret 22e70d: 0f 1f 00 nopl (%rax) 000000000022e710 : static inline ProcessField Settings_getActiveSortKey(const Settings* this) { 22e710: 55 push %rbp 22e711: 48 89 e5 mov %rsp,%rbp 22e714: 48 89 7d f8 mov %rdi,-0x8(%rbp) return (this->treeView) 22e718: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e71c: f6 40 4a 01 testb $0x1,0x4a(%rax) 22e720: 0f 84 30 00 00 00 je 22e756 ? (this->treeViewAlwaysByPID ? PID : this->treeSortKey) 22e726: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e72a: f6 40 4b 01 testb $0x1,0x4b(%rax) 22e72e: 0f 84 0d 00 00 00 je 22e741 22e734: b8 01 00 00 00 mov $0x1,%eax 22e739: 89 45 f4 mov %eax,-0xc(%rbp) 22e73c: e9 0a 00 00 00 jmp 22e74b 22e741: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e745: 8b 40 40 mov 0x40(%rax),%eax 22e748: 89 45 f4 mov %eax,-0xc(%rbp) 22e74b: 8b 45 f4 mov -0xc(%rbp),%eax 22e74e: 89 45 f0 mov %eax,-0x10(%rbp) return (this->treeView) 22e751: e9 0a 00 00 00 jmp 22e760 : this->sortKey; 22e756: 48 8b 45 f8 mov -0x8(%rbp),%rax 22e75a: 8b 40 3c mov 0x3c(%rax),%eax 22e75d: 89 45 f0 mov %eax,-0x10(%rbp) 22e760: 8b 45 f0 mov -0x10(%rbp),%eax return (this->treeView) 22e763: 5d pop %rbp 22e764: c3 ret 22e765: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22e76f: 90 nop 000000000022e770 : int Process_compareByKey_Base(const Process* p1, const Process* p2, ProcessField key) { 22e770: 55 push %rbp 22e771: 48 89 e5 mov %rsp,%rbp 22e774: 48 81 ec 10 01 00 00 sub $0x110,%rsp 22e77b: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22e77f: 48 89 75 e8 mov %rsi,-0x18(%rbp) 22e783: 89 55 e4 mov %edx,-0x1c(%rbp) int r; switch (key) { 22e786: 8b 45 e4 mov -0x1c(%rbp),%eax 22e789: 83 c0 ff add $0xffffffff,%eax 22e78c: 89 c1 mov %eax,%ecx 22e78e: 48 89 4d b8 mov %rcx,-0x48(%rbp) 22e792: 83 e8 7d sub $0x7d,%eax 22e795: 0f 87 d4 0b 00 00 ja 22f36f 22e79b: 48 8b 45 b8 mov -0x48(%rbp),%rax 22e79f: 48 8b 04 c5 00 a2 20 00 mov 0x20a200(,%rax,8),%rax 22e7a7: ff e0 jmp *%rax case PERCENT_CPU: case PERCENT_NORM_CPU: return SPACESHIP_NUMBER(p1->percent_cpu, p2->percent_cpu); 22e7a9: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e7ad: f3 0f 10 80 94 00 00 00 movss 0x94(%rax),%xmm0 22e7b5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e7b9: 0f 2e 80 94 00 00 00 ucomiss 0x94(%rax),%xmm0 22e7c0: 0f 97 c0 seta %al 22e7c3: 24 01 and $0x1,%al 22e7c5: 0f b6 c0 movzbl %al,%eax 22e7c8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e7cc: f3 0f 10 89 94 00 00 00 movss 0x94(%rcx),%xmm1 22e7d4: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22e7d8: f3 0f 10 81 94 00 00 00 movss 0x94(%rcx),%xmm0 22e7e0: 0f 2e c1 ucomiss %xmm1,%xmm0 22e7e3: 0f 97 c1 seta %cl 22e7e6: 80 e1 01 and $0x1,%cl 22e7e9: 0f b6 c9 movzbl %cl,%ecx 22e7ec: 29 c8 sub %ecx,%eax 22e7ee: 89 45 fc mov %eax,-0x4(%rbp) 22e7f1: e9 ab 0b 00 00 jmp 22f3a1 case PERCENT_MEM: return SPACESHIP_NUMBER(p1->m_resident, p2->m_resident); 22e7f6: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e7fa: 48 8b 80 d0 00 00 00 mov 0xd0(%rax),%rax 22e801: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22e805: 48 3b 81 d0 00 00 00 cmp 0xd0(%rcx),%rax 22e80c: 0f 9f c0 setg %al 22e80f: 24 01 and $0x1,%al 22e811: 0f b6 c0 movzbl %al,%eax 22e814: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22e818: 48 8b 89 d0 00 00 00 mov 0xd0(%rcx),%rcx 22e81f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22e823: 48 3b 8a d0 00 00 00 cmp 0xd0(%rdx),%rcx 22e82a: 0f 9c c1 setl %cl 22e82d: 80 e1 01 and $0x1,%cl 22e830: 0f b6 c9 movzbl %cl,%ecx 22e833: 29 c8 sub %ecx,%eax 22e835: 89 45 fc mov %eax,-0x4(%rbp) 22e838: e9 64 0b 00 00 jmp 22f3a1 case COMM: return SPACESHIP_NULLSTR(Process_getCommand(p1), Process_getCommand(p2)); 22e83d: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e841: 48 8b 00 mov (%rax),%rax 22e844: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22e849: 0f 84 20 00 00 00 je 22e86f 22e84f: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e853: 48 8b 00 mov (%rax),%rax 22e856: 48 8b 40 30 mov 0x30(%rax),%rax 22e85a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e85e: ff d0 call *%rax 22e860: 48 83 f8 00 cmp $0x0,%rax 22e864: 0f 85 18 00 00 00 jne 22e882 22e86a: e9 59 00 00 00 jmp 22e8c8 22e86f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e873: e8 08 fb ff ff call 22e380 22e878: 48 83 f8 00 cmp $0x0,%rax 22e87c: 0f 84 46 00 00 00 je 22e8c8 22e882: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e886: 48 8b 00 mov (%rax),%rax 22e889: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22e88e: 0f 84 1a 00 00 00 je 22e8ae 22e894: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e898: 48 8b 00 mov (%rax),%rax 22e89b: 48 8b 40 30 mov 0x30(%rax),%rax 22e89f: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e8a3: ff d0 call *%rax 22e8a5: 48 89 45 b0 mov %rax,-0x50(%rbp) 22e8a9: e9 0d 00 00 00 jmp 22e8bb 22e8ae: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e8b2: e8 c9 fa ff ff call 22e380 22e8b7: 48 89 45 b0 mov %rax,-0x50(%rbp) 22e8bb: 48 8b 45 b0 mov -0x50(%rbp),%rax 22e8bf: 48 89 45 a8 mov %rax,-0x58(%rbp) 22e8c3: e9 13 00 00 00 jmp 22e8db 22e8c8: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22e8d2: 48 89 45 a8 mov %rax,-0x58(%rbp) 22e8d6: e9 00 00 00 00 jmp 22e8db 22e8db: 48 8b 45 a8 mov -0x58(%rbp),%rax 22e8df: 48 89 45 a0 mov %rax,-0x60(%rbp) 22e8e3: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e8e7: 48 8b 00 mov (%rax),%rax 22e8ea: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22e8ef: 0f 84 20 00 00 00 je 22e915 22e8f5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e8f9: 48 8b 00 mov (%rax),%rax 22e8fc: 48 8b 40 30 mov 0x30(%rax),%rax 22e900: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e904: ff d0 call *%rax 22e906: 48 83 f8 00 cmp $0x0,%rax 22e90a: 0f 85 18 00 00 00 jne 22e928 22e910: e9 59 00 00 00 jmp 22e96e 22e915: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e919: e8 62 fa ff ff call 22e380 22e91e: 48 83 f8 00 cmp $0x0,%rax 22e922: 0f 84 46 00 00 00 je 22e96e 22e928: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e92c: 48 8b 00 mov (%rax),%rax 22e92f: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 22e934: 0f 84 1a 00 00 00 je 22e954 22e93a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e93e: 48 8b 00 mov (%rax),%rax 22e941: 48 8b 40 30 mov 0x30(%rax),%rax 22e945: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e949: ff d0 call *%rax 22e94b: 48 89 45 98 mov %rax,-0x68(%rbp) 22e94f: e9 0d 00 00 00 jmp 22e961 22e954: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22e958: e8 23 fa ff ff call 22e380 22e95d: 48 89 45 98 mov %rax,-0x68(%rbp) 22e961: 48 8b 45 98 mov -0x68(%rbp),%rax 22e965: 48 89 45 90 mov %rax,-0x70(%rbp) 22e969: e9 13 00 00 00 jmp 22e981 22e96e: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22e978: 48 89 45 90 mov %rax,-0x70(%rbp) 22e97c: e9 00 00 00 00 jmp 22e981 22e981: 48 8b 7d a0 mov -0x60(%rbp),%rdi 22e985: 48 8b 75 90 mov -0x70(%rbp),%rsi 22e989: e8 52 f8 00 00 call 23e1e0 22e98e: 89 45 fc mov %eax,-0x4(%rbp) 22e991: e9 0b 0a 00 00 jmp 22f3a1 case PROC_COMM: { const char* comm1 = p1->procComm ? p1->procComm : (Process_isKernelThread(p1) ? kthreadID : ""); 22e996: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e99a: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22e99f: 0f 84 11 00 00 00 je 22e9b6 22e9a5: 48 8b 45 f0 mov -0x10(%rbp),%rax 22e9a9: 48 8b 40 70 mov 0x70(%rax),%rax 22e9ad: 48 89 45 88 mov %rax,-0x78(%rbp) 22e9b1: e9 2a 00 00 00 jmp 22e9e0 22e9b6: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22e9ba: e8 31 d9 ff ff call 22c2f0 22e9bf: 88 c2 mov %al,%dl 22e9c1: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22e9cb: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22e9d5: f6 c2 01 test $0x1,%dl 22e9d8: 48 0f 45 c1 cmovne %rcx,%rax 22e9dc: 48 89 45 88 mov %rax,-0x78(%rbp) 22e9e0: 48 8b 45 88 mov -0x78(%rbp),%rax 22e9e4: 48 89 45 d8 mov %rax,-0x28(%rbp) const char* comm2 = p2->procComm ? p2->procComm : (Process_isKernelThread(p2) ? kthreadID : ""); 22e9e8: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e9ec: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22e9f1: 0f 84 11 00 00 00 je 22ea08 22e9f7: 48 8b 45 e8 mov -0x18(%rbp),%rax 22e9fb: 48 8b 40 70 mov 0x70(%rax),%rax 22e9ff: 48 89 45 80 mov %rax,-0x80(%rbp) 22ea03: e9 2a 00 00 00 jmp 22ea32 22ea08: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22ea0c: e8 df d8 ff ff call 22c2f0 22ea11: 88 c2 mov %al,%dl 22ea13: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ea1d: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22ea27: f6 c2 01 test $0x1,%dl 22ea2a: 48 0f 45 c1 cmovne %rcx,%rax 22ea2e: 48 89 45 80 mov %rax,-0x80(%rbp) 22ea32: 48 8b 45 80 mov -0x80(%rbp),%rax 22ea36: 48 89 45 d0 mov %rax,-0x30(%rbp) return SPACESHIP_NULLSTR(comm1, comm2); 22ea3a: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 22ea3f: 0f 84 10 00 00 00 je 22ea55 22ea45: 48 8b 45 d8 mov -0x28(%rbp),%rax 22ea49: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 22ea50: e9 16 00 00 00 jmp 22ea6b 22ea55: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ea5f: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 22ea66: e9 00 00 00 00 jmp 22ea6b 22ea6b: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 22ea72: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 22ea79: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 22ea7e: 0f 84 10 00 00 00 je 22ea94 22ea84: 48 8b 45 d0 mov -0x30(%rbp),%rax 22ea88: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) 22ea8f: e9 16 00 00 00 jmp 22eaaa 22ea94: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ea9e: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) 22eaa5: e9 00 00 00 00 jmp 22eaaa 22eaaa: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi 22eab1: 48 8b b5 68 ff ff ff mov -0x98(%rbp),%rsi 22eab8: e8 23 f7 00 00 call 23e1e0 22eabd: 89 45 fc mov %eax,-0x4(%rbp) 22eac0: e9 dc 08 00 00 jmp 22f3a1 } case PROC_EXE: { const char* exe1 = p1->procExe ? (p1->procExe + p1->procExeBasenameOffset) : (Process_isKernelThread(p1) ? kthreadID : ""); 22eac5: 48 8b 45 f0 mov -0x10(%rbp),%rax 22eac9: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22eace: 0f 84 22 00 00 00 je 22eaf6 22ead4: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ead8: 48 8b 40 78 mov 0x78(%rax),%rax 22eadc: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22eae0: 48 63 89 88 00 00 00 movslq 0x88(%rcx),%rcx 22eae7: 48 01 c8 add %rcx,%rax 22eaea: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 22eaf1: e9 2d 00 00 00 jmp 22eb23 22eaf6: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22eafa: e8 f1 d7 ff ff call 22c2f0 22eaff: 88 c2 mov %al,%dl 22eb01: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22eb0b: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22eb15: f6 c2 01 test $0x1,%dl 22eb18: 48 0f 45 c1 cmovne %rcx,%rax 22eb1c: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 22eb23: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 22eb2a: 48 89 45 c8 mov %rax,-0x38(%rbp) const char* exe2 = p2->procExe ? (p2->procExe + p2->procExeBasenameOffset) : (Process_isKernelThread(p2) ? kthreadID : ""); 22eb2e: 48 8b 45 e8 mov -0x18(%rbp),%rax 22eb32: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22eb37: 0f 84 22 00 00 00 je 22eb5f 22eb3d: 48 8b 45 e8 mov -0x18(%rbp),%rax 22eb41: 48 8b 40 78 mov 0x78(%rax),%rax 22eb45: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22eb49: 48 63 89 88 00 00 00 movslq 0x88(%rcx),%rcx 22eb50: 48 01 c8 add %rcx,%rax 22eb53: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) 22eb5a: e9 2d 00 00 00 jmp 22eb8c 22eb5f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22eb63: e8 88 d7 ff ff call 22c2f0 22eb68: 88 c2 mov %al,%dl 22eb6a: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22eb74: 48 b9 5f 59 20 00 00 00 00 00 movabs $0x20595f,%rcx 22eb7e: f6 c2 01 test $0x1,%dl 22eb81: 48 0f 45 c1 cmovne %rcx,%rax 22eb85: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) 22eb8c: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 22eb93: 48 89 45 c0 mov %rax,-0x40(%rbp) return SPACESHIP_NULLSTR(exe1, exe2); 22eb97: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 22eb9c: 0f 84 10 00 00 00 je 22ebb2 22eba2: 48 8b 45 c8 mov -0x38(%rbp),%rax 22eba6: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) 22ebad: e9 16 00 00 00 jmp 22ebc8 22ebb2: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ebbc: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) 22ebc3: e9 00 00 00 00 jmp 22ebc8 22ebc8: 48 8b 85 50 ff ff ff mov -0xb0(%rbp),%rax 22ebcf: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) 22ebd6: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 22ebdb: 0f 84 10 00 00 00 je 22ebf1 22ebe1: 48 8b 45 c0 mov -0x40(%rbp),%rax 22ebe5: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 22ebec: e9 16 00 00 00 jmp 22ec07 22ebf1: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ebfb: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 22ec02: e9 00 00 00 00 jmp 22ec07 22ec07: 48 8b bd 48 ff ff ff mov -0xb8(%rbp),%rdi 22ec0e: 48 8b b5 40 ff ff ff mov -0xc0(%rbp),%rsi 22ec15: e8 c6 f5 00 00 call 23e1e0 22ec1a: 89 45 fc mov %eax,-0x4(%rbp) 22ec1d: e9 7f 07 00 00 jmp 22f3a1 } case CWD: return SPACESHIP_NULLSTR(p1->procCwd, p2->procCwd); 22ec22: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ec26: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 22ec2e: 0f 84 17 00 00 00 je 22ec4b 22ec34: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ec38: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22ec3f: 48 89 85 38 ff ff ff mov %rax,-0xc8(%rbp) 22ec46: e9 16 00 00 00 jmp 22ec61 22ec4b: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22ec55: 48 89 85 38 ff ff ff mov %rax,-0xc8(%rbp) 22ec5c: e9 00 00 00 00 jmp 22ec61 22ec61: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax 22ec68: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) 22ec6f: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ec73: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 22ec7b: 0f 84 17 00 00 00 je 22ec98 22ec81: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ec85: 48 8b 80 80 00 00 00 mov 0x80(%rax),%rax 22ec8c: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) 22ec93: e9 16 00 00 00 jmp 22ecae 22ec98: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22eca2: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) 22eca9: e9 00 00 00 00 jmp 22ecae 22ecae: 48 8b bd 30 ff ff ff mov -0xd0(%rbp),%rdi 22ecb5: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi 22ecbc: e8 1f f5 00 00 call 23e1e0 22ecc1: 89 45 fc mov %eax,-0x4(%rbp) 22ecc4: e9 d8 06 00 00 jmp 22f3a1 case ELAPSED: r = -SPACESHIP_NUMBER(p1->starttime_ctime, p2->starttime_ctime); 22ecc9: 48 8b 45 f0 mov -0x10(%rbp),%rax 22eccd: 48 8b 80 b8 00 00 00 mov 0xb8(%rax),%rax 22ecd4: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ecd8: 48 3b 81 b8 00 00 00 cmp 0xb8(%rcx),%rax 22ecdf: 0f 9f c0 setg %al 22ece2: 24 01 and $0x1,%al 22ece4: 0f b6 c8 movzbl %al,%ecx 22ece7: 48 8b 45 f0 mov -0x10(%rbp),%rax 22eceb: 48 8b 80 b8 00 00 00 mov 0xb8(%rax),%rax 22ecf2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ecf6: 48 3b 82 b8 00 00 00 cmp 0xb8(%rdx),%rax 22ecfd: 0f 9c c0 setl %al 22ed00: 24 01 and $0x1,%al 22ed02: 0f b6 c0 movzbl %al,%eax 22ed05: 29 c1 sub %eax,%ecx 22ed07: 31 c0 xor %eax,%eax 22ed09: 29 c8 sub %ecx,%eax 22ed0b: 89 45 e0 mov %eax,-0x20(%rbp) return r != 0 ? r : SPACESHIP_NUMBER(p1->pid, p2->pid); 22ed0e: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 22ed12: 0f 84 0e 00 00 00 je 22ed26 22ed18: 8b 45 e0 mov -0x20(%rbp),%eax 22ed1b: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) 22ed21: e9 35 00 00 00 jmp 22ed5b 22ed26: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ed2a: 8b 40 18 mov 0x18(%rax),%eax 22ed2d: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ed31: 3b 41 18 cmp 0x18(%rcx),%eax 22ed34: 0f 9f c0 setg %al 22ed37: 24 01 and $0x1,%al 22ed39: 0f b6 c0 movzbl %al,%eax 22ed3c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ed40: 8b 49 18 mov 0x18(%rcx),%ecx 22ed43: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ed47: 3b 4a 18 cmp 0x18(%rdx),%ecx 22ed4a: 0f 9c c1 setl %cl 22ed4d: 80 e1 01 and $0x1,%cl 22ed50: 0f b6 c9 movzbl %cl,%ecx 22ed53: 29 c8 sub %ecx,%eax 22ed55: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) 22ed5b: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 22ed61: 89 45 fc mov %eax,-0x4(%rbp) 22ed64: e9 38 06 00 00 jmp 22f3a1 case MAJFLT: return SPACESHIP_NUMBER(p1->majflt, p2->majflt); 22ed69: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ed6d: 48 8b 80 e0 00 00 00 mov 0xe0(%rax),%rax 22ed74: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ed78: 48 3b 81 e0 00 00 00 cmp 0xe0(%rcx),%rax 22ed7f: 0f 97 c0 seta %al 22ed82: 24 01 and $0x1,%al 22ed84: 0f b6 c0 movzbl %al,%eax 22ed87: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ed8b: 48 8b 89 e0 00 00 00 mov 0xe0(%rcx),%rcx 22ed92: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ed96: 48 3b 8a e0 00 00 00 cmp 0xe0(%rdx),%rcx 22ed9d: 0f 92 c1 setb %cl 22eda0: 80 e1 01 and $0x1,%cl 22eda3: 0f b6 c9 movzbl %cl,%ecx 22eda6: 29 c8 sub %ecx,%eax 22eda8: 89 45 fc mov %eax,-0x4(%rbp) 22edab: e9 f1 05 00 00 jmp 22f3a1 case MINFLT: return SPACESHIP_NUMBER(p1->minflt, p2->minflt); 22edb0: 48 8b 45 f0 mov -0x10(%rbp),%rax 22edb4: 48 8b 80 d8 00 00 00 mov 0xd8(%rax),%rax 22edbb: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22edbf: 48 3b 81 d8 00 00 00 cmp 0xd8(%rcx),%rax 22edc6: 0f 97 c0 seta %al 22edc9: 24 01 and $0x1,%al 22edcb: 0f b6 c0 movzbl %al,%eax 22edce: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22edd2: 48 8b 89 d8 00 00 00 mov 0xd8(%rcx),%rcx 22edd9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22eddd: 48 3b 8a d8 00 00 00 cmp 0xd8(%rdx),%rcx 22ede4: 0f 92 c1 setb %cl 22ede7: 80 e1 01 and $0x1,%cl 22edea: 0f b6 c9 movzbl %cl,%ecx 22eded: 29 c8 sub %ecx,%eax 22edef: 89 45 fc mov %eax,-0x4(%rbp) 22edf2: e9 aa 05 00 00 jmp 22f3a1 case M_RESIDENT: return SPACESHIP_NUMBER(p1->m_resident, p2->m_resident); 22edf7: 48 8b 45 f0 mov -0x10(%rbp),%rax 22edfb: 48 8b 80 d0 00 00 00 mov 0xd0(%rax),%rax 22ee02: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ee06: 48 3b 81 d0 00 00 00 cmp 0xd0(%rcx),%rax 22ee0d: 0f 9f c0 setg %al 22ee10: 24 01 and $0x1,%al 22ee12: 0f b6 c0 movzbl %al,%eax 22ee15: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ee19: 48 8b 89 d0 00 00 00 mov 0xd0(%rcx),%rcx 22ee20: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ee24: 48 3b 8a d0 00 00 00 cmp 0xd0(%rdx),%rcx 22ee2b: 0f 9c c1 setl %cl 22ee2e: 80 e1 01 and $0x1,%cl 22ee31: 0f b6 c9 movzbl %cl,%ecx 22ee34: 29 c8 sub %ecx,%eax 22ee36: 89 45 fc mov %eax,-0x4(%rbp) 22ee39: e9 63 05 00 00 jmp 22f3a1 case M_VIRT: return SPACESHIP_NUMBER(p1->m_virt, p2->m_virt); 22ee3e: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ee42: 48 8b 80 c8 00 00 00 mov 0xc8(%rax),%rax 22ee49: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ee4d: 48 3b 81 c8 00 00 00 cmp 0xc8(%rcx),%rax 22ee54: 0f 9f c0 setg %al 22ee57: 24 01 and $0x1,%al 22ee59: 0f b6 c0 movzbl %al,%eax 22ee5c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ee60: 48 8b 89 c8 00 00 00 mov 0xc8(%rcx),%rcx 22ee67: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ee6b: 48 3b 8a c8 00 00 00 cmp 0xc8(%rdx),%rcx 22ee72: 0f 9c c1 setl %cl 22ee75: 80 e1 01 and $0x1,%cl 22ee78: 0f b6 c9 movzbl %cl,%ecx 22ee7b: 29 c8 sub %ecx,%eax 22ee7d: 89 45 fc mov %eax,-0x4(%rbp) 22ee80: e9 1c 05 00 00 jmp 22f3a1 case NICE: return SPACESHIP_NUMBER(p1->nice, p2->nice); 22ee85: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ee89: 48 8b 80 a8 00 00 00 mov 0xa8(%rax),%rax 22ee90: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ee94: 48 3b 81 a8 00 00 00 cmp 0xa8(%rcx),%rax 22ee9b: 0f 9f c0 setg %al 22ee9e: 24 01 and $0x1,%al 22eea0: 0f b6 c0 movzbl %al,%eax 22eea3: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22eea7: 48 8b 89 a8 00 00 00 mov 0xa8(%rcx),%rcx 22eeae: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22eeb2: 48 3b 8a a8 00 00 00 cmp 0xa8(%rdx),%rcx 22eeb9: 0f 9c c1 setl %cl 22eebc: 80 e1 01 and $0x1,%cl 22eebf: 0f b6 c9 movzbl %cl,%ecx 22eec2: 29 c8 sub %ecx,%eax 22eec4: 89 45 fc mov %eax,-0x4(%rbp) 22eec7: e9 d5 04 00 00 jmp 22f3a1 case NLWP: return SPACESHIP_NUMBER(p1->nlwp, p2->nlwp); 22eecc: 48 8b 45 f0 mov -0x10(%rbp),%rax 22eed0: 48 8b 80 b0 00 00 00 mov 0xb0(%rax),%rax 22eed7: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22eedb: 48 3b 81 b0 00 00 00 cmp 0xb0(%rcx),%rax 22eee2: 0f 9f c0 setg %al 22eee5: 24 01 and $0x1,%al 22eee7: 0f b6 c0 movzbl %al,%eax 22eeea: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22eeee: 48 8b 89 b0 00 00 00 mov 0xb0(%rcx),%rcx 22eef5: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22eef9: 48 3b 8a b0 00 00 00 cmp 0xb0(%rdx),%rcx 22ef00: 0f 9c c1 setl %cl 22ef03: 80 e1 01 and $0x1,%cl 22ef06: 0f b6 c9 movzbl %cl,%ecx 22ef09: 29 c8 sub %ecx,%eax 22ef0b: 89 45 fc mov %eax,-0x4(%rbp) 22ef0e: e9 8e 04 00 00 jmp 22f3a1 case PGRP: return SPACESHIP_NUMBER(p1->pgrp, p2->pgrp); 22ef13: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ef17: 8b 40 24 mov 0x24(%rax),%eax 22ef1a: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ef1e: 3b 41 24 cmp 0x24(%rcx),%eax 22ef21: 0f 9f c0 setg %al 22ef24: 24 01 and $0x1,%al 22ef26: 0f b6 c0 movzbl %al,%eax 22ef29: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ef2d: 8b 49 24 mov 0x24(%rcx),%ecx 22ef30: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ef34: 3b 4a 24 cmp 0x24(%rdx),%ecx 22ef37: 0f 9c c1 setl %cl 22ef3a: 80 e1 01 and $0x1,%cl 22ef3d: 0f b6 c9 movzbl %cl,%ecx 22ef40: 29 c8 sub %ecx,%eax 22ef42: 89 45 fc mov %eax,-0x4(%rbp) 22ef45: e9 57 04 00 00 jmp 22f3a1 case PID: return SPACESHIP_NUMBER(p1->pid, p2->pid); 22ef4a: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ef4e: 8b 40 18 mov 0x18(%rax),%eax 22ef51: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ef55: 3b 41 18 cmp 0x18(%rcx),%eax 22ef58: 0f 9f c0 setg %al 22ef5b: 24 01 and $0x1,%al 22ef5d: 0f b6 c0 movzbl %al,%eax 22ef60: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ef64: 8b 49 18 mov 0x18(%rcx),%ecx 22ef67: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22ef6b: 3b 4a 18 cmp 0x18(%rdx),%ecx 22ef6e: 0f 9c c1 setl %cl 22ef71: 80 e1 01 and $0x1,%cl 22ef74: 0f b6 c9 movzbl %cl,%ecx 22ef77: 29 c8 sub %ecx,%eax 22ef79: 89 45 fc mov %eax,-0x4(%rbp) 22ef7c: e9 20 04 00 00 jmp 22f3a1 case PPID: return SPACESHIP_NUMBER(p1->ppid, p2->ppid); 22ef81: 48 8b 45 f0 mov -0x10(%rbp),%rax 22ef85: 8b 40 1c mov 0x1c(%rax),%eax 22ef88: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22ef8c: 3b 41 1c cmp 0x1c(%rcx),%eax 22ef8f: 0f 9f c0 setg %al 22ef92: 24 01 and $0x1,%al 22ef94: 0f b6 c0 movzbl %al,%eax 22ef97: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22ef9b: 8b 49 1c mov 0x1c(%rcx),%ecx 22ef9e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22efa2: 3b 4a 1c cmp 0x1c(%rdx),%ecx 22efa5: 0f 9c c1 setl %cl 22efa8: 80 e1 01 and $0x1,%cl 22efab: 0f b6 c9 movzbl %cl,%ecx 22efae: 29 c8 sub %ecx,%eax 22efb0: 89 45 fc mov %eax,-0x4(%rbp) 22efb3: e9 e9 03 00 00 jmp 22f3a1 case PRIORITY: return SPACESHIP_NUMBER(p1->priority, p2->priority); 22efb8: 48 8b 45 f0 mov -0x10(%rbp),%rax 22efbc: 48 8b 80 a0 00 00 00 mov 0xa0(%rax),%rax 22efc3: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22efc7: 48 3b 81 a0 00 00 00 cmp 0xa0(%rcx),%rax 22efce: 0f 9f c0 setg %al 22efd1: 24 01 and $0x1,%al 22efd3: 0f b6 c0 movzbl %al,%eax 22efd6: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22efda: 48 8b 89 a0 00 00 00 mov 0xa0(%rcx),%rcx 22efe1: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22efe5: 48 3b 8a a0 00 00 00 cmp 0xa0(%rdx),%rcx 22efec: 0f 9c c1 setl %cl 22efef: 80 e1 01 and $0x1,%cl 22eff2: 0f b6 c9 movzbl %cl,%ecx 22eff5: 29 c8 sub %ecx,%eax 22eff7: 89 45 fc mov %eax,-0x4(%rbp) 22effa: e9 a2 03 00 00 jmp 22f3a1 case PROCESSOR: return SPACESHIP_NUMBER(p1->processor, p2->processor); 22efff: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f003: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 22f009: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f00d: 3b 81 90 00 00 00 cmp 0x90(%rcx),%eax 22f013: 0f 9f c0 setg %al 22f016: 24 01 and $0x1,%al 22f018: 0f b6 c0 movzbl %al,%eax 22f01b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f01f: 8b 89 90 00 00 00 mov 0x90(%rcx),%ecx 22f025: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f029: 3b 8a 90 00 00 00 cmp 0x90(%rdx),%ecx 22f02f: 0f 9c c1 setl %cl 22f032: 80 e1 01 and $0x1,%cl 22f035: 0f b6 c9 movzbl %cl,%ecx 22f038: 29 c8 sub %ecx,%eax 22f03a: 89 45 fc mov %eax,-0x4(%rbp) 22f03d: e9 5f 03 00 00 jmp 22f3a1 case SESSION: return SPACESHIP_NUMBER(p1->session, p2->session); 22f042: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f046: 8b 40 28 mov 0x28(%rax),%eax 22f049: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f04d: 3b 41 28 cmp 0x28(%rcx),%eax 22f050: 0f 9f c0 setg %al 22f053: 24 01 and $0x1,%al 22f055: 0f b6 c0 movzbl %al,%eax 22f058: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f05c: 8b 49 28 mov 0x28(%rcx),%ecx 22f05f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f063: 3b 4a 28 cmp 0x28(%rdx),%ecx 22f066: 0f 9c c1 setl %cl 22f069: 80 e1 01 and $0x1,%cl 22f06c: 0f b6 c9 movzbl %cl,%ecx 22f06f: 29 c8 sub %ecx,%eax 22f071: 89 45 fc mov %eax,-0x4(%rbp) 22f074: e9 28 03 00 00 jmp 22f3a1 case STARTTIME: r = SPACESHIP_NUMBER(p1->starttime_ctime, p2->starttime_ctime); 22f079: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f07d: 48 8b 80 b8 00 00 00 mov 0xb8(%rax),%rax 22f084: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f088: 48 3b 81 b8 00 00 00 cmp 0xb8(%rcx),%rax 22f08f: 0f 9f c0 setg %al 22f092: 24 01 and $0x1,%al 22f094: 0f b6 c0 movzbl %al,%eax 22f097: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f09b: 48 8b 89 b8 00 00 00 mov 0xb8(%rcx),%rcx 22f0a2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f0a6: 48 3b 8a b8 00 00 00 cmp 0xb8(%rdx),%rcx 22f0ad: 0f 9c c1 setl %cl 22f0b0: 80 e1 01 and $0x1,%cl 22f0b3: 0f b6 c9 movzbl %cl,%ecx 22f0b6: 29 c8 sub %ecx,%eax 22f0b8: 89 45 e0 mov %eax,-0x20(%rbp) return r != 0 ? r : SPACESHIP_NUMBER(p1->pid, p2->pid); 22f0bb: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 22f0bf: 0f 84 0e 00 00 00 je 22f0d3 22f0c5: 8b 45 e0 mov -0x20(%rbp),%eax 22f0c8: 89 85 20 ff ff ff mov %eax,-0xe0(%rbp) 22f0ce: e9 35 00 00 00 jmp 22f108 22f0d3: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f0d7: 8b 40 18 mov 0x18(%rax),%eax 22f0da: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f0de: 3b 41 18 cmp 0x18(%rcx),%eax 22f0e1: 0f 9f c0 setg %al 22f0e4: 24 01 and $0x1,%al 22f0e6: 0f b6 c0 movzbl %al,%eax 22f0e9: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f0ed: 8b 49 18 mov 0x18(%rcx),%ecx 22f0f0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f0f4: 3b 4a 18 cmp 0x18(%rdx),%ecx 22f0f7: 0f 9c c1 setl %cl 22f0fa: 80 e1 01 and $0x1,%cl 22f0fd: 0f b6 c9 movzbl %cl,%ecx 22f100: 29 c8 sub %ecx,%eax 22f102: 89 85 20 ff ff ff mov %eax,-0xe0(%rbp) 22f108: 8b 85 20 ff ff ff mov -0xe0(%rbp),%eax 22f10e: 89 45 fc mov %eax,-0x4(%rbp) 22f111: e9 8b 02 00 00 jmp 22f3a1 case STATE: return SPACESHIP_NUMBER(p1->state, p2->state); 22f116: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f11a: 8b 80 e8 00 00 00 mov 0xe8(%rax),%eax 22f120: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f124: 3b 81 e8 00 00 00 cmp 0xe8(%rcx),%eax 22f12a: 0f 97 c0 seta %al 22f12d: 24 01 and $0x1,%al 22f12f: 0f b6 c0 movzbl %al,%eax 22f132: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f136: 8b 89 e8 00 00 00 mov 0xe8(%rcx),%ecx 22f13c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f140: 3b 8a e8 00 00 00 cmp 0xe8(%rdx),%ecx 22f146: 0f 92 c1 setb %cl 22f149: 80 e1 01 and $0x1,%cl 22f14c: 0f b6 c9 movzbl %cl,%ecx 22f14f: 29 c8 sub %ecx,%eax 22f151: 89 45 fc mov %eax,-0x4(%rbp) 22f154: e9 48 02 00 00 jmp 22f3a1 case ST_UID: return SPACESHIP_NUMBER(p1->st_uid, p2->st_uid); 22f159: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f15d: 8b 40 48 mov 0x48(%rax),%eax 22f160: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f164: 3b 41 48 cmp 0x48(%rcx),%eax 22f167: 0f 97 c0 seta %al 22f16a: 24 01 and $0x1,%al 22f16c: 0f b6 c0 movzbl %al,%eax 22f16f: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f173: 8b 49 48 mov 0x48(%rcx),%ecx 22f176: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f17a: 3b 4a 48 cmp 0x48(%rdx),%ecx 22f17d: 0f 92 c1 setb %cl 22f180: 80 e1 01 and $0x1,%cl 22f183: 0f b6 c9 movzbl %cl,%ecx 22f186: 29 c8 sub %ecx,%eax 22f188: 89 45 fc mov %eax,-0x4(%rbp) 22f18b: e9 11 02 00 00 jmp 22f3a1 case TIME: return SPACESHIP_NUMBER(p1->time, p2->time); 22f190: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f194: 48 8b 40 58 mov 0x58(%rax),%rax 22f198: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f19c: 48 3b 41 58 cmp 0x58(%rcx),%rax 22f1a0: 0f 97 c0 seta %al 22f1a3: 24 01 and $0x1,%al 22f1a5: 0f b6 c0 movzbl %al,%eax 22f1a8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f1ac: 48 8b 49 58 mov 0x58(%rcx),%rcx 22f1b0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f1b4: 48 3b 4a 58 cmp 0x58(%rdx),%rcx 22f1b8: 0f 92 c1 setb %cl 22f1bb: 80 e1 01 and $0x1,%cl 22f1be: 0f b6 c9 movzbl %cl,%ecx 22f1c1: 29 c8 sub %ecx,%eax 22f1c3: 89 45 fc mov %eax,-0x4(%rbp) 22f1c6: e9 d6 01 00 00 jmp 22f3a1 case TGID: return SPACESHIP_NUMBER(p1->tgid, p2->tgid); 22f1cb: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f1cf: 8b 40 20 mov 0x20(%rax),%eax 22f1d2: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f1d6: 3b 41 20 cmp 0x20(%rcx),%eax 22f1d9: 0f 9f c0 setg %al 22f1dc: 24 01 and $0x1,%al 22f1de: 0f b6 c0 movzbl %al,%eax 22f1e1: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f1e5: 8b 49 20 mov 0x20(%rcx),%ecx 22f1e8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f1ec: 3b 4a 20 cmp 0x20(%rdx),%ecx 22f1ef: 0f 9c c1 setl %cl 22f1f2: 80 e1 01 and $0x1,%cl 22f1f5: 0f b6 c9 movzbl %cl,%ecx 22f1f8: 29 c8 sub %ecx,%eax 22f1fa: 89 45 fc mov %eax,-0x4(%rbp) 22f1fd: e9 9f 01 00 00 jmp 22f3a1 case TPGID: return SPACESHIP_NUMBER(p1->tpgid, p2->tpgid); 22f202: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f206: 8b 40 2c mov 0x2c(%rax),%eax 22f209: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f20d: 3b 41 2c cmp 0x2c(%rcx),%eax 22f210: 0f 9f c0 setg %al 22f213: 24 01 and $0x1,%al 22f215: 0f b6 c0 movzbl %al,%eax 22f218: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f21c: 8b 49 2c mov 0x2c(%rcx),%ecx 22f21f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f223: 3b 4a 2c cmp 0x2c(%rdx),%ecx 22f226: 0f 9c c1 setl %cl 22f229: 80 e1 01 and $0x1,%cl 22f22c: 0f b6 c9 movzbl %cl,%ecx 22f22f: 29 c8 sub %ecx,%eax 22f231: 89 45 fc mov %eax,-0x4(%rbp) 22f234: e9 68 01 00 00 jmp 22f3a1 case TTY: /* Order no tty last */ return SPACESHIP_DEFAULTSTR(p1->tty_name, p2->tty_name, "\x7F"); 22f239: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f23d: 48 83 78 40 00 cmpq $0x0,0x40(%rax) 22f242: 0f 84 14 00 00 00 je 22f25c 22f248: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f24c: 48 8b 40 40 mov 0x40(%rax),%rax 22f250: 48 89 85 18 ff ff ff mov %rax,-0xe8(%rbp) 22f257: e9 16 00 00 00 jmp 22f272 22f25c: 48 b8 55 42 20 00 00 00 00 00 movabs $0x204255,%rax 22f266: 48 89 85 18 ff ff ff mov %rax,-0xe8(%rbp) 22f26d: e9 00 00 00 00 jmp 22f272 22f272: 48 8b 85 18 ff ff ff mov -0xe8(%rbp),%rax 22f279: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) 22f280: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f284: 48 83 78 40 00 cmpq $0x0,0x40(%rax) 22f289: 0f 84 14 00 00 00 je 22f2a3 22f28f: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f293: 48 8b 40 40 mov 0x40(%rax),%rax 22f297: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) 22f29e: e9 16 00 00 00 jmp 22f2b9 22f2a3: 48 b8 55 42 20 00 00 00 00 00 movabs $0x204255,%rax 22f2ad: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) 22f2b4: e9 00 00 00 00 jmp 22f2b9 22f2b9: 48 8b bd 10 ff ff ff mov -0xf0(%rbp),%rdi 22f2c0: 48 8b b5 08 ff ff ff mov -0xf8(%rbp),%rsi 22f2c7: e8 14 ef 00 00 call 23e1e0 22f2cc: 89 45 fc mov %eax,-0x4(%rbp) 22f2cf: e9 cd 00 00 00 jmp 22f3a1 case USER: return SPACESHIP_NULLSTR(p1->user, p2->user); 22f2d4: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f2d8: 48 83 78 50 00 cmpq $0x0,0x50(%rax) 22f2dd: 0f 84 14 00 00 00 je 22f2f7 22f2e3: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f2e7: 48 8b 40 50 mov 0x50(%rax),%rax 22f2eb: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) 22f2f2: e9 16 00 00 00 jmp 22f30d 22f2f7: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22f301: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) 22f308: e9 00 00 00 00 jmp 22f30d 22f30d: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 22f314: 48 89 85 f8 fe ff ff mov %rax,-0x108(%rbp) 22f31b: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f31f: 48 83 78 50 00 cmpq $0x0,0x50(%rax) 22f324: 0f 84 14 00 00 00 je 22f33e 22f32a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f32e: 48 8b 40 50 mov 0x50(%rax),%rax 22f332: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) 22f339: e9 16 00 00 00 jmp 22f354 22f33e: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 22f348: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) 22f34f: e9 00 00 00 00 jmp 22f354 22f354: 48 8b bd f8 fe ff ff mov -0x108(%rbp),%rdi 22f35b: 48 8b b5 f0 fe ff ff mov -0x110(%rbp),%rsi 22f362: e8 79 ee 00 00 call 23e1e0 22f367: 89 45 fc mov %eax,-0x4(%rbp) 22f36a: e9 32 00 00 00 jmp 22f3a1 default: assert(0 && "Process_compareByKey_Base: default key reached"); /* should never be reached */ return SPACESHIP_NUMBER(p1->pid, p2->pid); 22f36f: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f373: 8b 40 18 mov 0x18(%rax),%eax 22f376: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f37a: 3b 41 18 cmp 0x18(%rcx),%eax 22f37d: 0f 9f c0 setg %al 22f380: 24 01 and $0x1,%al 22f382: 0f b6 c0 movzbl %al,%eax 22f385: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f389: 8b 49 18 mov 0x18(%rcx),%ecx 22f38c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22f390: 3b 4a 18 cmp 0x18(%rdx),%ecx 22f393: 0f 9c c1 setl %cl 22f396: 80 e1 01 and $0x1,%cl 22f399: 0f b6 c9 movzbl %cl,%ecx 22f39c: 29 c8 sub %ecx,%eax 22f39e: 89 45 fc mov %eax,-0x4(%rbp) } } 22f3a1: 8b 45 fc mov -0x4(%rbp),%eax 22f3a4: 48 81 c4 10 01 00 00 add $0x110,%rsp 22f3ab: 5d pop %rbp 22f3ac: c3 ret 22f3ad: 0f 1f 00 nopl (%rax) 000000000022f3b0 : } static inline int Settings_getActiveDirection(const Settings* this) { 22f3b0: 55 push %rbp 22f3b1: 48 89 e5 mov %rsp,%rbp 22f3b4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->treeView ? this->treeDirection : this->direction; 22f3b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f3bc: f6 40 4a 01 testb $0x1,0x4a(%rax) 22f3c0: 0f 84 0f 00 00 00 je 22f3d5 22f3c6: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f3ca: 8b 40 38 mov 0x38(%rax),%eax 22f3cd: 89 45 f4 mov %eax,-0xc(%rbp) 22f3d0: e9 0a 00 00 00 jmp 22f3df 22f3d5: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f3d9: 8b 40 34 mov 0x34(%rax),%eax 22f3dc: 89 45 f4 mov %eax,-0xc(%rbp) 22f3df: 8b 45 f4 mov -0xc(%rbp),%eax 22f3e2: 5d pop %rbp 22f3e3: c3 ret 22f3e4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22f3ee: 66 90 xchg %ax,%ax 000000000022f3f0 : void Process_updateComm(Process* this, const char* comm) { 22f3f0: 55 push %rbp 22f3f1: 48 89 e5 mov %rsp,%rbp 22f3f4: 48 83 ec 20 sub $0x20,%rsp 22f3f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f3fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (!this->procComm && !comm) 22f400: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f404: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22f409: 0f 85 10 00 00 00 jne 22f41f 22f40f: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f414: 0f 85 05 00 00 00 jne 22f41f return; 22f41a: e9 94 00 00 00 jmp 22f4b3 if (this->procComm && comm && String_eq(this->procComm, comm)) 22f41f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f423: 48 83 78 70 00 cmpq $0x0,0x70(%rax) 22f428: 0f 84 2e 00 00 00 je 22f45c 22f42e: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f433: 0f 84 23 00 00 00 je 22f45c 22f439: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f43d: 48 8b 78 70 mov 0x70(%rax),%rdi 22f441: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22f445: e8 76 00 00 00 call 22f4c0 22f44a: a8 01 test $0x1,%al 22f44c: 0f 85 05 00 00 00 jne 22f457 22f452: e9 05 00 00 00 jmp 22f45c return; 22f457: e9 57 00 00 00 jmp 22f4b3 free(this->procComm); 22f45c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f460: 48 8b 78 70 mov 0x70(%rax),%rdi 22f464: e8 f7 ec 00 00 call 23e160 this->procComm = comm ? xStrdup(comm) : NULL; 22f469: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f46e: 0f 84 12 00 00 00 je 22f486 22f474: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f478: e8 73 9b 00 00 call 238ff0 22f47d: 48 89 45 e8 mov %rax,-0x18(%rbp) 22f481: e9 0b 00 00 00 jmp 22f491 22f486: 31 c0 xor %eax,%eax 22f488: 48 89 45 e8 mov %rax,-0x18(%rbp) 22f48c: e9 00 00 00 00 jmp 22f491 22f491: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f495: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f499: 48 89 48 70 mov %rcx,0x70(%rax) this->mergedCommand.commChanged = true; 22f49d: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f4a1: 8a 88 f0 01 00 00 mov 0x1f0(%rax),%cl 22f4a7: 80 e1 fb and $0xfb,%cl 22f4aa: 80 c9 04 or $0x4,%cl 22f4ad: 88 88 f0 01 00 00 mov %cl,0x1f0(%rax) } 22f4b3: 48 83 c4 20 add $0x20,%rsp 22f4b7: 5d pop %rbp 22f4b8: c3 ret 22f4b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 000000000022f4c0 : static inline bool String_eq(const char* s1, const char* s2) { 22f4c0: 55 push %rbp 22f4c1: 48 89 e5 mov %rsp,%rbp 22f4c4: 48 83 ec 10 sub $0x10,%rsp 22f4c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f4cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 22f4d0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22f4d4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22f4d8: e8 03 ed 00 00 call 23e1e0 22f4dd: 83 f8 00 cmp $0x0,%eax 22f4e0: 0f 94 c0 sete %al 22f4e3: 24 01 and $0x1,%al 22f4e5: 0f b6 c0 movzbl %al,%eax 22f4e8: 48 83 c4 10 add $0x10,%rsp 22f4ec: 5d pop %rbp 22f4ed: c3 ret 22f4ee: 66 90 xchg %ax,%ax 000000000022f4f0 : } return slash; } void Process_updateCmdline(Process* this, const char* cmdline, int basenameStart, int basenameEnd) { 22f4f0: 55 push %rbp 22f4f1: 48 89 e5 mov %rsp,%rbp 22f4f4: 48 83 ec 30 sub $0x30,%rsp 22f4f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f4fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22f500: 89 55 ec mov %edx,-0x14(%rbp) 22f503: 89 4d e8 mov %ecx,-0x18(%rbp) assert(basenameStart >= 0); assert((cmdline && basenameStart < (int)strlen(cmdline)) || (!cmdline && basenameStart == 0)); assert((basenameEnd > basenameStart) || (basenameEnd == 0 && basenameStart == 0)); assert((cmdline && basenameEnd <= (int)strlen(cmdline)) || (!cmdline && basenameEnd == 0)); if (!this->cmdline && !cmdline) 22f506: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f50a: 48 83 78 60 00 cmpq $0x0,0x60(%rax) 22f50f: 0f 85 10 00 00 00 jne 22f525 22f515: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f51a: 0f 85 05 00 00 00 jne 22f525 return; 22f520: e9 d7 00 00 00 jmp 22f5fc if (this->cmdline && cmdline && String_eq(this->cmdline, cmdline)) 22f525: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f529: 48 83 78 60 00 cmpq $0x0,0x60(%rax) 22f52e: 0f 84 2e 00 00 00 je 22f562 22f534: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f539: 0f 84 23 00 00 00 je 22f562 22f53f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f543: 48 8b 78 60 mov 0x60(%rax),%rdi 22f547: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22f54b: e8 70 ff ff ff call 22f4c0 22f550: a8 01 test $0x1,%al 22f552: 0f 85 05 00 00 00 jne 22f55d 22f558: e9 05 00 00 00 jmp 22f562 return; 22f55d: e9 9a 00 00 00 jmp 22f5fc free(this->cmdline); 22f562: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f566: 48 8b 78 60 mov 0x60(%rax),%rdi 22f56a: e8 f1 eb 00 00 call 23e160 this->cmdline = cmdline ? xStrdup(cmdline) : NULL; 22f56f: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f574: 0f 84 12 00 00 00 je 22f58c 22f57a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f57e: e8 6d 9a 00 00 call 238ff0 22f583: 48 89 45 e0 mov %rax,-0x20(%rbp) 22f587: e9 0b 00 00 00 jmp 22f597 22f58c: 31 c0 xor %eax,%eax 22f58e: 48 89 45 e0 mov %rax,-0x20(%rbp) 22f592: e9 00 00 00 00 jmp 22f597 22f597: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22f59b: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f59f: 48 89 48 60 mov %rcx,0x60(%rax) this->cmdlineBasenameStart = (basenameStart || !cmdline) ? basenameStart : skipPotentialPath(cmdline, basenameEnd); 22f5a3: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 22f5a7: 0f 85 0b 00 00 00 jne 22f5b8 22f5ad: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f5b2: 0f 85 0b 00 00 00 jne 22f5c3 22f5b8: 8b 45 ec mov -0x14(%rbp),%eax 22f5bb: 89 45 dc mov %eax,-0x24(%rbp) 22f5be: e9 0f 00 00 00 jmp 22f5d2 22f5c3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f5c7: 8b 75 e8 mov -0x18(%rbp),%esi 22f5ca: e8 41 00 00 00 call 22f610 22f5cf: 89 45 dc mov %eax,-0x24(%rbp) 22f5d2: 8b 4d dc mov -0x24(%rbp),%ecx 22f5d5: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f5d9: 89 48 6c mov %ecx,0x6c(%rax) this->cmdlineBasenameEnd = basenameEnd; 22f5dc: 8b 4d e8 mov -0x18(%rbp),%ecx 22f5df: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f5e3: 89 48 68 mov %ecx,0x68(%rax) this->mergedCommand.cmdlineChanged = true; 22f5e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f5ea: 8a 88 f0 01 00 00 mov 0x1f0(%rax),%cl 22f5f0: 80 e1 fe and $0xfe,%cl 22f5f3: 80 c9 01 or $0x1,%cl 22f5f6: 88 88 f0 01 00 00 mov %cl,0x1f0(%rax) } 22f5fc: 48 83 c4 30 add $0x30,%rsp 22f600: 5d pop %rbp 22f601: c3 ret 22f602: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22f60c: 0f 1f 40 00 nopl 0x0(%rax) 000000000022f610 : static int skipPotentialPath(const char* cmdline, int end) { 22f610: 55 push %rbp 22f611: 48 89 e5 mov %rsp,%rbp 22f614: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22f618: 89 75 ec mov %esi,-0x14(%rbp) if (cmdline[0] != '/') 22f61b: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f61f: 0f be 00 movsbl (%rax),%eax 22f622: 83 f8 2f cmp $0x2f,%eax 22f625: 0f 84 0c 00 00 00 je 22f637 return 0; 22f62b: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 22f632: e9 e4 00 00 00 jmp 22f71b int slash = 0; 22f637: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) for (int i = 1; i < end; i++) { 22f63e: c7 45 e4 01 00 00 00 movl $0x1,-0x1c(%rbp) 22f645: 8b 45 e4 mov -0x1c(%rbp),%eax 22f648: 3b 45 ec cmp -0x14(%rbp),%eax 22f64b: 0f 8d c4 00 00 00 jge 22f715 if (cmdline[i] == '/' && cmdline[i + 1] != '\0') { 22f651: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f655: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 22f659: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f65d: 83 f8 2f cmp $0x2f,%eax 22f660: 0f 85 28 00 00 00 jne 22f68e 22f666: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f66a: 8b 4d e4 mov -0x1c(%rbp),%ecx 22f66d: 83 c1 01 add $0x1,%ecx 22f670: 48 63 c9 movslq %ecx,%rcx 22f673: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f677: 83 f8 00 cmp $0x0,%eax 22f67a: 0f 84 0e 00 00 00 je 22f68e slash = i + 1; 22f680: 8b 45 e4 mov -0x1c(%rbp),%eax 22f683: 83 c0 01 add $0x1,%eax 22f686: 89 45 e8 mov %eax,-0x18(%rbp) continue; 22f689: e9 79 00 00 00 jmp 22f707 if (cmdline[i] == ' ' && cmdline[i - 1] != '\\') 22f68e: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f692: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 22f696: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f69a: 83 f8 20 cmp $0x20,%eax 22f69d: 0f 85 25 00 00 00 jne 22f6c8 22f6a3: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f6a7: 8b 4d e4 mov -0x1c(%rbp),%ecx 22f6aa: 83 e9 01 sub $0x1,%ecx 22f6ad: 48 63 c9 movslq %ecx,%rcx 22f6b0: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f6b4: 83 f8 5c cmp $0x5c,%eax 22f6b7: 0f 84 0b 00 00 00 je 22f6c8 return slash; 22f6bd: 8b 45 e8 mov -0x18(%rbp),%eax 22f6c0: 89 45 fc mov %eax,-0x4(%rbp) 22f6c3: e9 53 00 00 00 jmp 22f71b if (cmdline[i] == ':' && cmdline[i + 1] == ' ') 22f6c8: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f6cc: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 22f6d0: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f6d4: 83 f8 3a cmp $0x3a,%eax 22f6d7: 0f 85 25 00 00 00 jne 22f702 22f6dd: 48 8b 45 f0 mov -0x10(%rbp),%rax 22f6e1: 8b 4d e4 mov -0x1c(%rbp),%ecx 22f6e4: 83 c1 01 add $0x1,%ecx 22f6e7: 48 63 c9 movslq %ecx,%rcx 22f6ea: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 22f6ee: 83 f8 20 cmp $0x20,%eax 22f6f1: 0f 85 0b 00 00 00 jne 22f702 return slash; 22f6f7: 8b 45 e8 mov -0x18(%rbp),%eax 22f6fa: 89 45 fc mov %eax,-0x4(%rbp) 22f6fd: e9 19 00 00 00 jmp 22f71b } 22f702: e9 00 00 00 00 jmp 22f707 for (int i = 1; i < end; i++) { 22f707: 8b 45 e4 mov -0x1c(%rbp),%eax 22f70a: 83 c0 01 add $0x1,%eax 22f70d: 89 45 e4 mov %eax,-0x1c(%rbp) 22f710: e9 30 ff ff ff jmp 22f645 return slash; 22f715: 8b 45 e8 mov -0x18(%rbp),%eax 22f718: 89 45 fc mov %eax,-0x4(%rbp) } 22f71b: 8b 45 fc mov -0x4(%rbp),%eax 22f71e: 5d pop %rbp 22f71f: c3 ret 000000000022f720 : void Process_updateExe(Process* this, const char* exe) { 22f720: 55 push %rbp 22f721: 48 89 e5 mov %rsp,%rbp 22f724: 48 83 ec 20 sub $0x20,%rsp 22f728: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f72c: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (!this->procExe && !exe) 22f730: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f734: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22f739: 0f 85 10 00 00 00 jne 22f74f 22f73f: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f744: 0f 85 05 00 00 00 jne 22f74f return; 22f74a: e9 0d 01 00 00 jmp 22f85c if (this->procExe && exe && String_eq(this->procExe, exe)) 22f74f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f753: 48 83 78 78 00 cmpq $0x0,0x78(%rax) 22f758: 0f 84 2e 00 00 00 je 22f78c 22f75e: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f763: 0f 84 23 00 00 00 je 22f78c 22f769: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f76d: 48 8b 78 78 mov 0x78(%rax),%rdi 22f771: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22f775: e8 46 fd ff ff call 22f4c0 22f77a: a8 01 test $0x1,%al 22f77c: 0f 85 05 00 00 00 jne 22f787 22f782: e9 05 00 00 00 jmp 22f78c return; 22f787: e9 d0 00 00 00 jmp 22f85c free(this->procExe); 22f78c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f790: 48 8b 78 78 mov 0x78(%rax),%rdi 22f794: e8 c7 e9 00 00 call 23e160 if (exe) { 22f799: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22f79e: 0f 84 88 00 00 00 je 22f82c this->procExe = xStrdup(exe); 22f7a4: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f7a8: e8 43 98 00 00 call 238ff0 22f7ad: 48 89 c1 mov %rax,%rcx 22f7b0: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f7b4: 48 89 48 78 mov %rcx,0x78(%rax) const char* lastSlash = strrchr(exe, '/'); 22f7b8: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f7bc: be 2f 00 00 00 mov $0x2f,%esi 22f7c1: e8 fa ed 00 00 call 23e5c0 22f7c6: 48 89 45 e8 mov %rax,-0x18(%rbp) this->procExeBasenameOffset = (lastSlash && *(lastSlash + 1) != '\0' && lastSlash != exe) ? (lastSlash - exe + 1) : 0; 22f7ca: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 22f7cf: 0f 84 37 00 00 00 je 22f80c 22f7d5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f7d9: 0f be 40 01 movsbl 0x1(%rax),%eax 22f7dd: 83 f8 00 cmp $0x0,%eax 22f7e0: 0f 84 26 00 00 00 je 22f80c 22f7e6: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f7ea: 48 3b 45 f0 cmp -0x10(%rbp),%rax 22f7ee: 0f 84 18 00 00 00 je 22f80c 22f7f4: 48 8b 45 e8 mov -0x18(%rbp),%rax 22f7f8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22f7fc: 48 29 c8 sub %rcx,%rax 22f7ff: 48 83 c0 01 add $0x1,%rax 22f803: 48 89 45 e0 mov %rax,-0x20(%rbp) 22f807: e9 0b 00 00 00 jmp 22f817 22f80c: 31 c0 xor %eax,%eax 22f80e: 48 89 45 e0 mov %rax,-0x20(%rbp) 22f812: e9 00 00 00 00 jmp 22f817 22f817: 48 8b 45 e0 mov -0x20(%rbp),%rax 22f81b: 89 c1 mov %eax,%ecx 22f81d: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f821: 89 88 88 00 00 00 mov %ecx,0x88(%rax) } else { 22f827: e9 1a 00 00 00 jmp 22f846 this->procExe = NULL; 22f82c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f830: 48 c7 40 78 00 00 00 00 movq $0x0,0x78(%rax) this->procExeBasenameOffset = 0; 22f838: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f83c: c7 80 88 00 00 00 00 00 00 00 movl $0x0,0x88(%rax) } this->mergedCommand.exeChanged = true; 22f846: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f84a: 8a 88 f0 01 00 00 mov 0x1f0(%rax),%cl 22f850: 80 e1 fd and $0xfd,%cl 22f853: 80 c9 02 or $0x2,%cl 22f856: 88 88 f0 01 00 00 mov %cl,0x1f0(%rax) } 22f85c: 48 83 c4 20 add $0x20,%rsp 22f860: 5d pop %rbp 22f861: c3 ret 22f862: cc int3 22f863: cc int3 22f864: cc int3 22f865: cc int3 22f866: cc int3 22f867: cc int3 22f868: cc int3 22f869: cc int3 22f86a: cc int3 22f86b: cc int3 22f86c: cc int3 22f86d: cc int3 22f86e: cc int3 22f86f: cc int3 000000000022f870 : #include "Platform.h" #include "Vector.h" #include "XUtils.h" ProcessList* ProcessList_init(ProcessList* this, const ObjectClass* klass, UsersTable* usersTable, Hashtable* dynamicMeters, Hashtable* dynamicColumns, Hashtable* pidMatchList, uid_t userId) { 22f870: 55 push %rbp 22f871: 48 89 e5 mov %rsp,%rbp 22f874: 48 83 ec 30 sub $0x30,%rsp 22f878: 8b 45 10 mov 0x10(%rbp),%eax 22f87b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f87f: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22f883: 48 89 55 e8 mov %rdx,-0x18(%rbp) 22f887: 48 89 4d e0 mov %rcx,-0x20(%rbp) 22f88b: 4c 89 45 d8 mov %r8,-0x28(%rbp) 22f88f: 4c 89 4d d0 mov %r9,-0x30(%rbp) this->processes = Vector_new(klass, true, DEFAULT_SIZE); 22f893: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f897: be 01 00 00 00 mov $0x1,%esi 22f89c: ba ff ff ff ff mov $0xffffffff,%edx 22f8a1: e8 da 87 00 00 call 238080 22f8a6: 48 89 c1 mov %rax,%rcx 22f8a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f8ad: 48 89 48 08 mov %rcx,0x8(%rax) this->processes2 = Vector_new(klass, true, DEFAULT_SIZE); // tree-view auxiliary buffer 22f8b1: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22f8b5: be 01 00 00 00 mov $0x1,%esi 22f8ba: ba ff ff ff ff mov $0xffffffff,%edx 22f8bf: e8 bc 87 00 00 call 238080 22f8c4: 48 89 c1 mov %rax,%rcx 22f8c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f8cb: 48 89 48 10 mov %rcx,0x10(%rax) this->processTable = Hashtable_new(200, false); 22f8cf: bf c8 00 00 00 mov $0xc8,%edi 22f8d4: 31 f6 xor %esi,%esi 22f8d6: e8 35 f2 fe ff call 21eb10 22f8db: 48 89 c1 mov %rax,%rcx 22f8de: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f8e2: 48 89 48 18 mov %rcx,0x18(%rax) this->displayTreeSet = Hashtable_new(200, false); 22f8e6: bf c8 00 00 00 mov $0xc8,%edi 22f8eb: 31 f6 xor %esi,%esi 22f8ed: e8 1e f2 fe ff call 21eb10 22f8f2: 48 89 c1 mov %rax,%rcx 22f8f5: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f8f9: 48 89 48 28 mov %rcx,0x28(%rax) this->draftingTreeSet = Hashtable_new(200, false); 22f8fd: bf c8 00 00 00 mov $0xc8,%edi 22f902: 31 f6 xor %esi,%esi 22f904: e8 07 f2 fe ff call 21eb10 22f909: 48 89 c1 mov %rax,%rcx 22f90c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f910: 48 89 48 30 mov %rcx,0x30(%rax) this->usersTable = usersTable; 22f914: 48 8b 4d e8 mov -0x18(%rbp),%rcx 22f918: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f91c: 48 89 48 20 mov %rcx,0x20(%rax) this->pidMatchList = pidMatchList; 22f920: 48 8b 4d d0 mov -0x30(%rbp),%rcx 22f924: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f928: 48 89 88 80 00 00 00 mov %rcx,0x80(%rax) this->dynamicMeters = dynamicMeters; 22f92f: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22f933: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f937: 48 89 48 38 mov %rcx,0x38(%rax) this->dynamicColumns = dynamicColumns; 22f93b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 22f93f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f943: 48 89 48 40 mov %rcx,0x40(%rax) this->userId = userId; 22f947: 8b 4d 10 mov 0x10(%rbp),%ecx 22f94a: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f94e: 89 48 74 mov %ecx,0x74(%rax) // set later by platform-specific code this->activeCPUs = 0; 22f951: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f955: c7 80 e0 00 00 00 00 00 00 00 movl $0x0,0xe0(%rax) this->existingCPUs = 0; 22f95f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f963: c7 80 e4 00 00 00 00 00 00 00 movl $0x0,0xe4(%rax) this->monotonicMs = 0; 22f96d: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f971: 48 c7 40 60 00 00 00 00 movq $0x0,0x60(%rax) // always maintain valid realtime timestamps Platform_gettime_realtime(&this->realtime, &this->realtimeMs); 22f979: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22f97d: 48 83 c7 48 add $0x48,%rdi 22f981: 48 8b 75 f8 mov -0x8(%rbp),%rsi 22f985: 48 83 c6 58 add $0x58,%rsi 22f989: e8 22 00 00 00 call 22f9b0 #endif 0 == hwloc_topology_load(this->topology); } #endif this->following = -1; 22f98e: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f992: c7 40 70 ff ff ff ff movl $0xffffffff,0x70(%rax) return this; 22f999: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f99d: 48 83 c4 30 add $0x30,%rsp 22f9a1: 5d pop %rbp 22f9a2: c3 ret 22f9a3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22f9ad: 0f 1f 00 nopl (%rax) 000000000022f9b0 : static inline void Platform_gettime_realtime(struct timeval* tv, uint64_t* msec) { 22f9b0: 55 push %rbp 22f9b1: 48 89 e5 mov %rsp,%rbp 22f9b4: 48 83 ec 10 sub $0x10,%rsp 22f9b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22f9bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) Generic_gettime_realtime(tv, msec); 22f9c0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22f9c4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22f9c8: e8 23 d0 00 00 call 23c9f0 } 22f9cd: 48 83 c4 10 add $0x10,%rsp 22f9d1: 5d pop %rbp 22f9d2: c3 ret 22f9d3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22f9dd: 0f 1f 00 nopl (%rax) 000000000022f9e0 : } void ProcessList_done(ProcessList* this) { 22f9e0: 55 push %rbp 22f9e1: 48 89 e5 mov %rsp,%rbp 22f9e4: 48 83 ec 10 sub $0x10,%rsp 22f9e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->topologyOk) { hwloc_topology_destroy(this->topology); } #endif Hashtable_delete(this->draftingTreeSet); 22f9ec: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f9f0: 48 8b 78 30 mov 0x30(%rax),%rdi 22f9f4: e8 57 f2 fe ff call 21ec50 Hashtable_delete(this->displayTreeSet); 22f9f9: 48 8b 45 f8 mov -0x8(%rbp),%rax 22f9fd: 48 8b 78 28 mov 0x28(%rax),%rdi 22fa01: e8 4a f2 fe ff call 21ec50 Hashtable_delete(this->processTable); 22fa06: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fa0a: 48 8b 78 18 mov 0x18(%rax),%rdi 22fa0e: e8 3d f2 fe ff call 21ec50 Vector_delete(this->processes2); 22fa13: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fa17: 48 8b 78 10 mov 0x10(%rax),%rdi 22fa1b: e8 f0 86 00 00 call 238110 Vector_delete(this->processes); 22fa20: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fa24: 48 8b 78 08 mov 0x8(%rax),%rdi 22fa28: e8 e3 86 00 00 call 238110 } 22fa2d: 48 83 c4 10 add $0x10,%rsp 22fa31: 5d pop %rbp 22fa32: c3 ret 22fa33: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22fa3d: 0f 1f 00 nopl (%rax) 000000000022fa40 : void ProcessList_setPanel(ProcessList* this, Panel* panel) { 22fa40: 55 push %rbp 22fa41: 48 89 e5 mov %rsp,%rbp 22fa44: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22fa48: 48 89 75 f0 mov %rsi,-0x10(%rbp) this->panel = panel; 22fa4c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22fa50: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fa54: 48 89 48 68 mov %rcx,0x68(%rax) } 22fa58: 5d pop %rbp 22fa59: c3 ret 22fa5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000022fa60 : } return title; } void ProcessList_printHeader(const ProcessList* this, RichString* header) { 22fa60: 55 push %rbp 22fa61: 48 89 e5 mov %rsp,%rbp 22fa64: 48 83 ec 50 sub $0x50,%rsp 22fa68: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22fa6c: 48 89 75 f0 mov %rsi,-0x10(%rbp) RichString_rewind(header, RichString_size(header)); 22fa70: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22fa74: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fa78: 8b 30 mov (%rax),%esi 22fa7a: e8 d1 21 00 00 call 231c50 const Settings* settings = this->settings; 22fa7f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fa83: 48 8b 00 mov (%rax),%rax 22fa86: 48 89 45 e8 mov %rax,-0x18(%rbp) const ProcessField* fields = settings->fields; 22fa8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 22fa8e: 48 8b 40 20 mov 0x20(%rax),%rax 22fa92: 48 89 45 e0 mov %rax,-0x20(%rbp) ProcessField key = Settings_getActiveSortKey(settings); 22fa96: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22fa9a: e8 b1 01 00 00 call 22fc50 22fa9f: 89 45 dc mov %eax,-0x24(%rbp) for (int i = 0; fields[i]; i++) { 22faa2: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 22faa9: 48 8b 45 e0 mov -0x20(%rbp),%rax 22faad: 48 63 4d d8 movslq -0x28(%rbp),%rcx 22fab1: 83 3c 88 00 cmpl $0x0,(%rax,%rcx,4) 22fab5: 0f 84 8c 01 00 00 je 22fc47 int color; if (settings->treeView && settings->treeViewAlwaysByPID) { 22fabb: 48 8b 45 e8 mov -0x18(%rbp),%rax 22fabf: f6 40 4a 01 testb $0x1,0x4a(%rax) 22fac3: 0f 84 21 00 00 00 je 22faea 22fac9: 48 8b 45 e8 mov -0x18(%rbp),%rax 22facd: f6 40 4b 01 testb $0x1,0x4b(%rax) 22fad1: 0f 84 13 00 00 00 je 22faea color = CRT_colors[PANEL_HEADER_FOCUS]; 22fad7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22fadf: 8b 40 1c mov 0x1c(%rax),%eax 22fae2: 89 45 d4 mov %eax,-0x2c(%rbp) } else if (key == fields[i]) { 22fae5: e9 3a 00 00 00 jmp 22fb24 22faea: 8b 45 dc mov -0x24(%rbp),%eax 22faed: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22faf1: 48 63 55 d8 movslq -0x28(%rbp),%rdx 22faf5: 3b 04 91 cmp (%rcx,%rdx,4),%eax 22faf8: 0f 85 13 00 00 00 jne 22fb11 color = CRT_colors[PANEL_SELECTION_FOCUS]; 22fafe: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22fb06: 8b 40 24 mov 0x24(%rax),%eax 22fb09: 89 45 d4 mov %eax,-0x2c(%rbp) } else { 22fb0c: e9 0e 00 00 00 jmp 22fb1f color = CRT_colors[PANEL_HEADER_FOCUS]; 22fb11: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22fb19: 8b 40 1c mov 0x1c(%rax),%eax 22fb1c: 89 45 d4 mov %eax,-0x2c(%rbp) 22fb1f: e9 00 00 00 00 jmp 22fb24 } RichString_appendWide(header, color, alignedProcessFieldTitle(this, fields[i])); 22fb24: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fb28: 48 89 45 c8 mov %rax,-0x38(%rbp) 22fb2c: 8b 45 d4 mov -0x2c(%rbp),%eax 22fb2f: 89 45 d0 mov %eax,-0x30(%rbp) 22fb32: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22fb36: 48 8b 45 e0 mov -0x20(%rbp),%rax 22fb3a: 48 63 4d d8 movslq -0x28(%rbp),%rcx 22fb3e: 8b 34 88 mov (%rax,%rcx,4),%esi 22fb41: e8 6a 01 00 00 call 22fcb0 22fb46: 48 8b 7d c8 mov -0x38(%rbp),%rdi 22fb4a: 8b 75 d0 mov -0x30(%rbp),%esi 22fb4d: 48 89 c2 mov %rax,%rdx 22fb50: e8 7b 27 00 00 call 2322d0 if (key == fields[i] && RichString_getCharVal(*header, RichString_size(header) - 1) == ' ') { 22fb55: 8b 45 dc mov -0x24(%rbp),%eax 22fb58: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22fb5c: 48 63 55 d8 movslq -0x28(%rbp),%rdx 22fb60: 3b 04 91 cmp (%rcx,%rdx,4),%eax 22fb63: 0f 85 91 00 00 00 jne 22fbfa 22fb69: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fb6d: 48 8b 40 08 mov 0x8(%rax),%rax 22fb71: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22fb75: 8b 09 mov (%rcx),%ecx 22fb77: 83 e9 01 sub $0x1,%ecx 22fb7a: 48 63 c9 movslq %ecx,%rcx 22fb7d: 48 6b c9 1c imul $0x1c,%rcx,%rcx 22fb81: 48 01 c8 add %rcx,%rax 22fb84: 83 78 04 20 cmpl $0x20,0x4(%rax) 22fb88: 0f 85 6c 00 00 00 jne 22fbfa RichString_rewind(header, 1); // rewind to override space 22fb8e: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22fb92: be 01 00 00 00 mov $0x1,%esi 22fb97: e8 b4 20 00 00 call 231c50 RichString_appendnWide(header, 22fb9c: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fba0: 48 89 45 b0 mov %rax,-0x50(%rbp) CRT_colors[PANEL_SELECTION_FOCUS], 22fba4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 22fbac: 8b 40 24 mov 0x24(%rax),%eax 22fbaf: 89 45 bc mov %eax,-0x44(%rbp) CRT_treeStr[Settings_getActiveDirection(this->settings) == 1 ? TREE_STR_ASC : TREE_STR_DESC], 22fbb2: 48 8b 04 25 d0 0c 24 00 mov 0x240cd0,%rax 22fbba: 48 89 45 c0 mov %rax,-0x40(%rbp) 22fbbe: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fbc2: 48 8b 38 mov (%rax),%rdi 22fbc5: e8 16 02 00 00 call 22fde0 22fbca: 48 8b 7d b0 mov -0x50(%rbp),%rdi 22fbce: 8b 75 bc mov -0x44(%rbp),%esi 22fbd1: 41 89 c0 mov %eax,%r8d 22fbd4: 48 8b 45 c0 mov -0x40(%rbp),%rax 22fbd8: b9 07 00 00 00 mov $0x7,%ecx 22fbdd: ba 06 00 00 00 mov $0x6,%edx 22fbe2: 41 83 f8 01 cmp $0x1,%r8d 22fbe6: 0f 44 ca cmove %edx,%ecx 22fbe9: 48 63 c9 movslq %ecx,%rcx 22fbec: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx RichString_appendnWide(header, 22fbf0: b9 01 00 00 00 mov $0x1,%ecx 22fbf5: e8 f6 28 00 00 call 2324f0 1); } if (COMM == fields[i] && settings->showMergedCommand) { 22fbfa: 48 8b 4d e0 mov -0x20(%rbp),%rcx 22fbfe: 48 63 55 d8 movslq -0x28(%rbp),%rdx 22fc02: b8 02 00 00 00 mov $0x2,%eax 22fc07: 3b 04 91 cmp (%rcx,%rdx,4),%eax 22fc0a: 0f 85 24 00 00 00 jne 22fc34 22fc10: 48 8b 45 e8 mov -0x18(%rbp),%rax 22fc14: f6 40 5e 01 testb $0x1,0x5e(%rax) 22fc18: 0f 84 16 00 00 00 je 22fc34 RichString_appendAscii(header, color, "(merged)"); 22fc1e: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22fc22: 8b 75 d4 mov -0x2c(%rbp),%esi 22fc25: 48 ba 83 40 20 00 00 00 00 00 movabs $0x204083,%rdx 22fc2f: e8 4c 29 00 00 call 232580 } } 22fc34: e9 00 00 00 00 jmp 22fc39 for (int i = 0; fields[i]; i++) { 22fc39: 8b 45 d8 mov -0x28(%rbp),%eax 22fc3c: 83 c0 01 add $0x1,%eax 22fc3f: 89 45 d8 mov %eax,-0x28(%rbp) 22fc42: e9 62 fe ff ff jmp 22faa9 } 22fc47: 48 83 c4 50 add $0x50,%rsp 22fc4b: 5d pop %rbp 22fc4c: c3 ret 22fc4d: 0f 1f 00 nopl (%rax) 000000000022fc50 : static inline ProcessField Settings_getActiveSortKey(const Settings* this) { 22fc50: 55 push %rbp 22fc51: 48 89 e5 mov %rsp,%rbp 22fc54: 48 89 7d f8 mov %rdi,-0x8(%rbp) return (this->treeView) 22fc58: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fc5c: f6 40 4a 01 testb $0x1,0x4a(%rax) 22fc60: 0f 84 30 00 00 00 je 22fc96 ? (this->treeViewAlwaysByPID ? PID : this->treeSortKey) 22fc66: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fc6a: f6 40 4b 01 testb $0x1,0x4b(%rax) 22fc6e: 0f 84 0d 00 00 00 je 22fc81 22fc74: b8 01 00 00 00 mov $0x1,%eax 22fc79: 89 45 f4 mov %eax,-0xc(%rbp) 22fc7c: e9 0a 00 00 00 jmp 22fc8b 22fc81: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fc85: 8b 40 40 mov 0x40(%rax),%eax 22fc88: 89 45 f4 mov %eax,-0xc(%rbp) 22fc8b: 8b 45 f4 mov -0xc(%rbp),%eax 22fc8e: 89 45 f0 mov %eax,-0x10(%rbp) return (this->treeView) 22fc91: e9 0a 00 00 00 jmp 22fca0 : this->sortKey; 22fc96: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fc9a: 8b 40 3c mov 0x3c(%rax),%eax 22fc9d: 89 45 f0 mov %eax,-0x10(%rbp) 22fca0: 8b 45 f0 mov -0x10(%rbp),%eax return (this->treeView) 22fca3: 5d pop %rbp 22fca4: c3 ret 22fca5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22fcaf: 90 nop 000000000022fcb0 : static const char* alignedProcessFieldTitle(const ProcessList* this, ProcessField field) { 22fcb0: 55 push %rbp 22fcb1: 48 89 e5 mov %rsp,%rbp 22fcb4: 48 83 ec 20 sub $0x20,%rsp 22fcb8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 22fcbc: 89 75 ec mov %esi,-0x14(%rbp) if (field >= LAST_PROCESSFIELD) 22fcbf: 83 7d ec 7f cmpl $0x7f,-0x14(%rbp) 22fcc3: 0f 82 15 00 00 00 jb 22fcde return alignedDynamicColumnTitle(this, field); 22fcc9: 48 8b 7d f0 mov -0x10(%rbp),%rdi 22fccd: 8b 75 ec mov -0x14(%rbp),%esi 22fcd0: e8 bb 0f 00 00 call 230c90 22fcd5: 48 89 45 f8 mov %rax,-0x8(%rbp) 22fcd9: e9 ea 00 00 00 jmp 22fdc8 const char* title = Process_fields[field].title; 22fcde: 8b 45 ec mov -0x14(%rbp),%eax 22fce1: 89 c1 mov %eax,%ecx 22fce3: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 22fced: 48 c1 e1 05 shl $0x5,%rcx 22fcf1: 48 01 c8 add %rcx,%rax 22fcf4: 48 8b 40 08 mov 0x8(%rax),%rax 22fcf8: 48 89 45 e0 mov %rax,-0x20(%rbp) if (!title) 22fcfc: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 22fd01: 0f 85 13 00 00 00 jne 22fd1a return "- "; 22fd07: 48 b8 4b 35 20 00 00 00 00 00 movabs $0x20354b,%rax 22fd11: 48 89 45 f8 mov %rax,-0x8(%rbp) 22fd15: e9 ae 00 00 00 jmp 22fdc8 if (Process_fields[field].pidColumn) { 22fd1a: 8b 45 ec mov -0x14(%rbp),%eax 22fd1d: 89 c1 mov %eax,%ecx 22fd1f: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 22fd29: 48 c1 e1 05 shl $0x5,%rcx 22fd2d: 48 01 c8 add %rcx,%rax 22fd30: f6 40 1c 01 testb $0x1,0x1c(%rax) 22fd34: 0f 84 3e 00 00 00 je 22fd78 xSnprintf(titleBuffer, sizeof(titleBuffer), "%*s ", Process_pidDigits, title); 22fd3a: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 22fd41: 4c 8b 45 e0 mov -0x20(%rbp),%r8 22fd45: 48 bf 40 22 24 00 00 00 00 00 movabs $0x242240,%rdi 22fd4f: be 15 00 00 00 mov $0x15,%esi 22fd54: 48 ba 4f 57 20 00 00 00 00 00 movabs $0x20574f,%rdx 22fd5e: b0 00 mov $0x0,%al 22fd60: e8 8b 97 00 00 call 2394f0 return titleBuffer; 22fd65: 48 b8 40 22 24 00 00 00 00 00 movabs $0x242240,%rax 22fd6f: 48 89 45 f8 mov %rax,-0x8(%rbp) 22fd73: e9 50 00 00 00 jmp 22fdc8 if (field == ST_UID) { 22fd78: 83 7d ec 2e cmpl $0x2e,-0x14(%rbp) 22fd7c: 0f 85 3e 00 00 00 jne 22fdc0 xSnprintf(titleBuffer, sizeof(titleBuffer), "%*s ", Process_uidDigits, title); 22fd82: 8b 0c 25 5c 18 24 00 mov 0x24185c,%ecx 22fd89: 4c 8b 45 e0 mov -0x20(%rbp),%r8 22fd8d: 48 bf 60 22 24 00 00 00 00 00 movabs $0x242260,%rdi 22fd97: be 15 00 00 00 mov $0x15,%esi 22fd9c: 48 ba 4f 57 20 00 00 00 00 00 movabs $0x20574f,%rdx 22fda6: b0 00 mov $0x0,%al 22fda8: e8 43 97 00 00 call 2394f0 return titleBuffer; 22fdad: 48 b8 60 22 24 00 00 00 00 00 movabs $0x242260,%rax 22fdb7: 48 89 45 f8 mov %rax,-0x8(%rbp) 22fdbb: e9 08 00 00 00 jmp 22fdc8 return title; 22fdc0: 48 8b 45 e0 mov -0x20(%rbp),%rax 22fdc4: 48 89 45 f8 mov %rax,-0x8(%rbp) } 22fdc8: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fdcc: 48 83 c4 20 add $0x20,%rsp 22fdd0: 5d pop %rbp 22fdd1: c3 ret 22fdd2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22fddc: 0f 1f 40 00 nopl 0x0(%rax) 000000000022fde0 : static inline int Settings_getActiveDirection(const Settings* this) { 22fde0: 55 push %rbp 22fde1: 48 89 e5 mov %rsp,%rbp 22fde4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->treeView ? this->treeDirection : this->direction; 22fde8: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fdec: f6 40 4a 01 testb $0x1,0x4a(%rax) 22fdf0: 0f 84 0f 00 00 00 je 22fe05 22fdf6: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fdfa: 8b 40 38 mov 0x38(%rax),%eax 22fdfd: 89 45 f4 mov %eax,-0xc(%rbp) 22fe00: e9 0a 00 00 00 jmp 22fe0f 22fe05: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fe09: 8b 40 34 mov 0x34(%rax),%eax 22fe0c: 89 45 f4 mov %eax,-0xc(%rbp) 22fe0f: 8b 45 f4 mov -0xc(%rbp),%eax 22fe12: 5d pop %rbp 22fe13: c3 ret 22fe14: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22fe1e: 66 90 xchg %ax,%ax 000000000022fe20 : void ProcessList_add(ProcessList* this, Process* p) { 22fe20: 55 push %rbp 22fe21: 48 89 e5 mov %rsp,%rbp 22fe24: 48 83 ec 10 sub $0x10,%rsp 22fe28: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22fe2c: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(Vector_indexOf(this->processes, p, Process_pidCompare) == -1); assert(Hashtable_get(this->processTable, p->pid) == NULL); p->processList = this; 22fe30: 48 8b 4d f8 mov -0x8(%rbp),%rcx 22fe34: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fe38: 48 89 48 08 mov %rcx,0x8(%rax) // highlighting processes found in first scan by first scan marked "far in the past" p->seenStampMs = this->monotonicMs; 22fe3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fe40: 48 8b 48 60 mov 0x60(%rax),%rcx 22fe44: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fe48: 48 89 88 f8 00 00 00 mov %rcx,0xf8(%rax) Vector_add(this->processes, p); 22fe4f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fe53: 48 8b 78 08 mov 0x8(%rax),%rdi 22fe57: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22fe5b: e8 80 89 00 00 call 2387e0 Hashtable_put(this->processTable, p->pid, p); 22fe60: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fe64: 48 8b 78 18 mov 0x18(%rax),%rdi 22fe68: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fe6c: 8b 70 18 mov 0x18(%rax),%esi 22fe6f: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22fe73: e8 b8 f1 fe ff call 21f030 assert(Vector_indexOf(this->processes, p, Process_pidCompare) != -1); assert(Hashtable_get(this->processTable, p->pid) != NULL); assert(Hashtable_count(this->processTable) == Vector_count(this->processes)); } 22fe78: 48 83 c4 10 add $0x10,%rsp 22fe7c: 5d pop %rbp 22fe7d: c3 ret 22fe7e: 66 90 xchg %ax,%ax 000000000022fe80 : void ProcessList_remove(ProcessList* this, const Process* p) { 22fe80: 55 push %rbp 22fe81: 48 89 e5 mov %rsp,%rbp 22fe84: 48 83 ec 20 sub $0x20,%rsp 22fe88: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22fe8c: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(Vector_indexOf(this->processes, p, Process_pidCompare) != -1); assert(Hashtable_get(this->processTable, p->pid) != NULL); const Process* pp = Hashtable_remove(this->processTable, p->pid); 22fe90: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fe94: 48 8b 78 18 mov 0x18(%rax),%rdi 22fe98: 48 8b 45 f0 mov -0x10(%rbp),%rax 22fe9c: 8b 70 18 mov 0x18(%rax),%esi 22fe9f: e8 0c f2 fe ff call 21f0b0 22fea4: 48 89 45 e8 mov %rax,-0x18(%rbp) assert(pp == p); (void)pp; pid_t pid = p->pid; 22fea8: 48 8b 45 f0 mov -0x10(%rbp),%rax 22feac: 8b 40 18 mov 0x18(%rax),%eax 22feaf: 89 45 e4 mov %eax,-0x1c(%rbp) int idx = Vector_indexOf(this->processes, p, Process_pidCompare); 22feb2: 48 8b 45 f8 mov -0x8(%rbp),%rax 22feb6: 48 8b 78 08 mov 0x8(%rax),%rdi 22feba: 48 8b 75 f0 mov -0x10(%rbp),%rsi 22febe: 48 ba c0 e6 22 00 00 00 00 00 movabs $0x22e6c0,%rdx 22fec8: e8 53 89 00 00 call 238820 22fecd: 89 45 e0 mov %eax,-0x20(%rbp) assert(idx != -1); if (idx >= 0) { 22fed0: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 22fed4: 0f 8c 10 00 00 00 jl 22feea Vector_remove(this->processes, idx); 22feda: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fede: 48 8b 78 08 mov 0x8(%rax),%rdi 22fee2: 8b 75 e0 mov -0x20(%rbp),%esi 22fee5: e8 06 87 00 00 call 2385f0 } if (this->following != -1 && this->following == pid) { 22feea: 48 8b 45 f8 mov -0x8(%rbp),%rax 22feee: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 22fef2: 0f 84 2d 00 00 00 je 22ff25 22fef8: 48 8b 45 f8 mov -0x8(%rbp),%rax 22fefc: 8b 40 70 mov 0x70(%rax),%eax 22feff: 3b 45 e4 cmp -0x1c(%rbp),%eax 22ff02: 0f 85 1d 00 00 00 jne 22ff25 this->following = -1; 22ff08: 48 8b 45 f8 mov -0x8(%rbp),%rax 22ff0c: c7 40 70 ff ff ff ff movl $0xffffffff,0x70(%rax) Panel_setSelectionColor(this->panel, PANEL_SELECTION_FOCUS); 22ff13: 48 8b 45 f8 mov -0x8(%rbp),%rax 22ff17: 48 8b 78 68 mov 0x68(%rax),%rdi 22ff1b: be 09 00 00 00 mov $0x9,%esi 22ff20: e8 ab 7e ff ff call 227dd0 } assert(Hashtable_get(this->processTable, pid) == NULL); assert(Hashtable_count(this->processTable) == Vector_count(this->processes)); } 22ff25: 48 83 c4 20 add $0x20,%rsp 22ff29: 5d pop %rbp 22ff2a: c3 ret 22ff2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000022ff30 : // Check consistency of the built structures assert(Vector_size(this->processes) == vsize); (void)vsize; assert(Vector_size(this->processes2) == 0); } void ProcessList_sort(ProcessList* this) { 22ff30: 55 push %rbp 22ff31: 48 89 e5 mov %rsp,%rbp 22ff34: 48 83 ec 10 sub $0x10,%rsp 22ff38: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->settings->treeView) { 22ff3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22ff40: 48 8b 00 mov (%rax),%rax 22ff43: f6 40 4a 01 testb $0x1,0x4a(%rax) 22ff47: 0f 84 25 00 00 00 je 22ff72 ProcessList_updateTreeSet(this); 22ff4d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 22ff51: e8 3a 00 00 00 call 22ff90 Vector_quickSortCustomCompare(this->processes, ProcessList_treeProcessCompare); 22ff56: 48 8b 45 f8 mov -0x8(%rbp),%rax 22ff5a: 48 8b 78 08 mov 0x8(%rax),%rdi 22ff5e: 48 be 50 00 23 00 00 00 00 00 movabs $0x230050,%rsi 22ff68: e8 f3 82 00 00 call 238260 } else { 22ff6d: e9 0d 00 00 00 jmp 22ff7f Vector_insertionSort(this->processes); 22ff72: 48 8b 45 f8 mov -0x8(%rbp),%rax 22ff76: 48 8b 78 08 mov 0x8(%rax),%rdi 22ff7a: e8 b1 83 00 00 call 238330 } } 22ff7f: 48 83 c4 10 add $0x10,%rsp 22ff83: 5d pop %rbp 22ff84: c3 ret 22ff85: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 22ff8f: 90 nop 000000000022ff90 : static void ProcessList_updateTreeSet(ProcessList* this) { 22ff90: 55 push %rbp 22ff91: 48 89 e5 mov %rsp,%rbp 22ff94: 48 83 ec 40 sub $0x40,%rsp 22ff98: 48 8b 05 91 28 01 00 mov 0x12891(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 22ff9f: 48 89 45 f8 mov %rax,-0x8(%rbp) 22ffa3: 48 89 7d e8 mov %rdi,-0x18(%rbp) unsigned int index = 0; 22ffa7: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) unsigned int tree_index = 1; 22ffae: c7 45 f0 01 00 00 00 movl $0x1,-0x10(%rbp) const int vsize = Vector_size(this->processes); 22ffb5: 48 8b 45 e8 mov -0x18(%rbp),%rax 22ffb9: 48 8b 78 08 mov 0x8(%rax),%rdi 22ffbd: e8 0e 02 00 00 call 2301d0 22ffc2: 89 45 e4 mov %eax,-0x1c(%rbp) ProcessList_updateTreeSetLayer(this, 0, vsize, 0, 0, vsize * 2 + 1, &index, &tree_index, -1); 22ffc5: 48 8b 7d e8 mov -0x18(%rbp),%rdi 22ffc9: 8b 55 e4 mov -0x1c(%rbp),%edx 22ffcc: 44 8b 4d e4 mov -0x1c(%rbp),%r9d 22ffd0: 41 c1 e1 01 shl $0x1,%r9d 22ffd4: 41 83 c1 01 add $0x1,%r9d 22ffd8: 45 31 c0 xor %r8d,%r8d 22ffdb: 4c 8d 55 f4 lea -0xc(%rbp),%r10 22ffdf: 48 8d 45 f0 lea -0x10(%rbp),%rax 22ffe3: 44 89 c6 mov %r8d,%esi 22ffe6: 44 89 c1 mov %r8d,%ecx 22ffe9: 4c 89 14 24 mov %r10,(%rsp) 22ffed: 48 89 44 24 08 mov %rax,0x8(%rsp) 22fff2: c7 44 24 10 ff ff ff ff movl $0xffffffff,0x10(%rsp) 22fffa: e8 41 0d 00 00 call 230d40 Hashtable* tmp = this->draftingTreeSet; 22ffff: 48 8b 45 e8 mov -0x18(%rbp),%rax 230003: 48 8b 40 30 mov 0x30(%rax),%rax 230007: 48 89 45 d8 mov %rax,-0x28(%rbp) this->draftingTreeSet = this->displayTreeSet; 23000b: 48 8b 45 e8 mov -0x18(%rbp),%rax 23000f: 48 8b 48 28 mov 0x28(%rax),%rcx 230013: 48 8b 45 e8 mov -0x18(%rbp),%rax 230017: 48 89 48 30 mov %rcx,0x30(%rax) this->displayTreeSet = tmp; 23001b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 23001f: 48 8b 45 e8 mov -0x18(%rbp),%rax 230023: 48 89 48 28 mov %rcx,0x28(%rax) 230027: 48 8b 05 02 28 01 00 mov 0x12802(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23002e: 48 8b 4d f8 mov -0x8(%rbp),%rcx 230032: 48 39 c8 cmp %rcx,%rax 230035: 0f 85 06 00 00 00 jne 230041 } 23003b: 48 83 c4 40 add $0x40,%rsp 23003f: 5d pop %rbp 230040: c3 ret 230041: e8 fa e0 00 00 call 23e140 <__stack_chk_fail@plt> 230046: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000230050 : static int ProcessList_treeProcessCompare(const void* v1, const void* v2) { 230050: 55 push %rbp 230051: 48 89 e5 mov %rsp,%rbp 230054: 48 89 7d f8 mov %rdi,-0x8(%rbp) 230058: 48 89 75 f0 mov %rsi,-0x10(%rbp) const Process* p1 = (const Process*)v1; 23005c: 48 8b 45 f8 mov -0x8(%rbp),%rax 230060: 48 89 45 e8 mov %rax,-0x18(%rbp) const Process* p2 = (const Process*)v2; 230064: 48 8b 45 f0 mov -0x10(%rbp),%rax 230068: 48 89 45 e0 mov %rax,-0x20(%rbp) return SPACESHIP_NUMBER(p1->tree_left, p2->tree_left); 23006c: 48 8b 45 e8 mov -0x18(%rbp),%rax 230070: 8b 80 0c 01 00 00 mov 0x10c(%rax),%eax 230076: 48 8b 4d e0 mov -0x20(%rbp),%rcx 23007a: 3b 81 0c 01 00 00 cmp 0x10c(%rcx),%eax 230080: 0f 97 c0 seta %al 230083: 24 01 and $0x1,%al 230085: 0f b6 c0 movzbl %al,%eax 230088: 48 8b 4d e8 mov -0x18(%rbp),%rcx 23008c: 8b 89 0c 01 00 00 mov 0x10c(%rcx),%ecx 230092: 48 8b 55 e0 mov -0x20(%rbp),%rdx 230096: 3b 8a 0c 01 00 00 cmp 0x10c(%rdx),%ecx 23009c: 0f 92 c1 setb %cl 23009f: 80 e1 01 and $0x1,%cl 2300a2: 0f b6 c9 movzbl %cl,%ecx 2300a5: 29 c8 sub %ecx,%eax 2300a7: 5d pop %rbp 2300a8: c3 ret 2300a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002300b0 : ProcessField ProcessList_keyAt(const ProcessList* this, int at) { 2300b0: 55 push %rbp 2300b1: 48 89 e5 mov %rsp,%rbp 2300b4: 48 83 ec 30 sub $0x30,%rsp 2300b8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 2300bc: 89 75 ec mov %esi,-0x14(%rbp) int x = 0; 2300bf: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) const ProcessField* fields = this->settings->fields; 2300c6: 48 8b 45 f0 mov -0x10(%rbp),%rax 2300ca: 48 8b 00 mov (%rax),%rax 2300cd: 48 8b 40 20 mov 0x20(%rax),%rax 2300d1: 48 89 45 e0 mov %rax,-0x20(%rbp) ProcessField field; for (int i = 0; (field = fields[i]); i++) { 2300d5: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 2300dc: 48 8b 45 e0 mov -0x20(%rbp),%rax 2300e0: 48 63 4d d8 movslq -0x28(%rbp),%rcx 2300e4: 8b 04 88 mov (%rax,%rcx,4),%eax 2300e7: 89 45 dc mov %eax,-0x24(%rbp) 2300ea: 83 f8 00 cmp $0x0,%eax 2300ed: 0f 84 56 00 00 00 je 230149 int len = strlen(alignedProcessFieldTitle(this, field)); 2300f3: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2300f7: 8b 75 dc mov -0x24(%rbp),%esi 2300fa: e8 b1 fb ff ff call 22fcb0 2300ff: 48 89 c7 mov %rax,%rdi 230102: e8 e9 e0 00 00 call 23e1f0 230107: 89 45 d4 mov %eax,-0x2c(%rbp) if (at >= x && at <= x + len) { 23010a: 8b 45 ec mov -0x14(%rbp),%eax 23010d: 3b 45 e8 cmp -0x18(%rbp),%eax 230110: 0f 8c 1c 00 00 00 jl 230132 230116: 8b 45 ec mov -0x14(%rbp),%eax 230119: 8b 4d e8 mov -0x18(%rbp),%ecx 23011c: 03 4d d4 add -0x2c(%rbp),%ecx 23011f: 39 c8 cmp %ecx,%eax 230121: 0f 8f 0b 00 00 00 jg 230132 return field; 230127: 8b 45 dc mov -0x24(%rbp),%eax 23012a: 89 45 fc mov %eax,-0x4(%rbp) 23012d: e9 1e 00 00 00 jmp 230150 } x += len; 230132: 8b 45 d4 mov -0x2c(%rbp),%eax 230135: 03 45 e8 add -0x18(%rbp),%eax 230138: 89 45 e8 mov %eax,-0x18(%rbp) for (int i = 0; (field = fields[i]); i++) { 23013b: 8b 45 d8 mov -0x28(%rbp),%eax 23013e: 83 c0 01 add $0x1,%eax 230141: 89 45 d8 mov %eax,-0x28(%rbp) 230144: e9 93 ff ff ff jmp 2300dc } return COMM; 230149: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) } 230150: 8b 45 fc mov -0x4(%rbp),%eax 230153: 48 83 c4 30 add $0x30,%rsp 230157: 5d pop %rbp 230158: c3 ret 230159: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000230160 : void ProcessList_expandTree(ProcessList* this) { 230160: 55 push %rbp 230161: 48 89 e5 mov %rsp,%rbp 230164: 48 83 ec 20 sub $0x20,%rsp 230168: 48 89 7d f8 mov %rdi,-0x8(%rbp) int size = Vector_size(this->processes); 23016c: 48 8b 45 f8 mov -0x8(%rbp),%rax 230170: 48 8b 78 08 mov 0x8(%rax),%rdi 230174: e8 57 00 00 00 call 2301d0 230179: 89 45 f4 mov %eax,-0xc(%rbp) for (int i = 0; i < size; i++) { 23017c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 230183: 8b 45 f0 mov -0x10(%rbp),%eax 230186: 3b 45 f4 cmp -0xc(%rbp),%eax 230189: 0f 8d 2d 00 00 00 jge 2301bc Process* process = (Process*) Vector_get(this->processes, i); 23018f: 48 8b 45 f8 mov -0x8(%rbp),%rax 230193: 48 8b 78 08 mov 0x8(%rax),%rdi 230197: 8b 75 f0 mov -0x10(%rbp),%esi 23019a: e8 51 00 00 00 call 2301f0 23019f: 48 89 45 e8 mov %rax,-0x18(%rbp) process->showChildren = true; 2301a3: 48 8b 45 e8 mov -0x18(%rbp),%rax 2301a7: c6 80 f0 00 00 00 01 movb $0x1,0xf0(%rax) for (int i = 0; i < size; i++) { 2301ae: 8b 45 f0 mov -0x10(%rbp),%eax 2301b1: 83 c0 01 add $0x1,%eax 2301b4: 89 45 f0 mov %eax,-0x10(%rbp) 2301b7: e9 c7 ff ff ff jmp 230183 } } 2301bc: 48 83 c4 20 add $0x20,%rsp 2301c0: 5d pop %rbp 2301c1: c3 ret 2301c2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2301cc: 0f 1f 40 00 nopl 0x0(%rax) 00000000002301d0 : static inline int Vector_size(const Vector* this) { 2301d0: 55 push %rbp 2301d1: 48 89 e5 mov %rsp,%rbp 2301d4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->items; 2301d8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2301dc: 8b 40 18 mov 0x18(%rax),%eax 2301df: 5d pop %rbp 2301e0: c3 ret 2301e1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2301eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002301f0 : static inline Object* Vector_get(const Vector* this, int idx) { 2301f0: 55 push %rbp 2301f1: 48 89 e5 mov %rsp,%rbp 2301f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2301f8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 2301fb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2301ff: 48 8b 00 mov (%rax),%rax 230202: 48 63 4d f4 movslq -0xc(%rbp),%rcx 230206: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 23020a: 5d pop %rbp 23020b: c3 ret 23020c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000230210 : void ProcessList_collapseAllBranches(ProcessList* this) { 230210: 55 push %rbp 230211: 48 89 e5 mov %rsp,%rbp 230214: 48 83 ec 20 sub $0x20,%rsp 230218: 48 89 7d f8 mov %rdi,-0x8(%rbp) int size = Vector_size(this->processes); 23021c: 48 8b 45 f8 mov -0x8(%rbp),%rax 230220: 48 8b 78 08 mov 0x8(%rax),%rdi 230224: e8 a7 ff ff ff call 2301d0 230229: 89 45 f4 mov %eax,-0xc(%rbp) for (int i = 0; i < size; i++) { 23022c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 230233: 8b 45 f0 mov -0x10(%rbp),%eax 230236: 3b 45 f4 cmp -0xc(%rbp),%eax 230239: 0f 8d 51 00 00 00 jge 230290 Process* process = (Process*) Vector_get(this->processes, i); 23023f: 48 8b 45 f8 mov -0x8(%rbp),%rax 230243: 48 8b 78 08 mov 0x8(%rax),%rdi 230247: 8b 75 f0 mov -0x10(%rbp),%esi 23024a: e8 a1 ff ff ff call 2301f0 23024f: 48 89 45 e8 mov %rax,-0x18(%rbp) // FreeBSD has pid 0 = kernel and pid 1 = init, so init has tree_depth = 1 if (process->tree_depth > 0 && process->pid > 1) 230253: 48 8b 45 e8 mov -0x18(%rbp),%rax 230257: 83 b8 14 01 00 00 00 cmpl $0x0,0x114(%rax) 23025e: 0f 86 19 00 00 00 jbe 23027d 230264: 48 8b 45 e8 mov -0x18(%rbp),%rax 230268: 83 78 18 01 cmpl $0x1,0x18(%rax) 23026c: 0f 8e 0b 00 00 00 jle 23027d process->showChildren = false; 230272: 48 8b 45 e8 mov -0x18(%rbp),%rax 230276: c6 80 f0 00 00 00 00 movb $0x0,0xf0(%rax) } 23027d: e9 00 00 00 00 jmp 230282 for (int i = 0; i < size; i++) { 230282: 8b 45 f0 mov -0x10(%rbp),%eax 230285: 83 c0 01 add $0x1,%eax 230288: 89 45 f0 mov %eax,-0x10(%rbp) 23028b: e9 a3 ff ff ff jmp 230233 } 230290: 48 83 c4 20 add $0x20,%rsp 230294: 5d pop %rbp 230295: c3 ret 230296: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 00000000002302a0 : void ProcessList_rebuildPanel(ProcessList* this) { 2302a0: 55 push %rbp 2302a1: 48 89 e5 mov %rsp,%rbp 2302a4: 48 83 ec 60 sub $0x60,%rsp 2302a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) const char* incFilter = this->incFilter; 2302ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302b0: 48 8b 40 78 mov 0x78(%rax),%rax 2302b4: 48 89 45 f0 mov %rax,-0x10(%rbp) const int currPos = Panel_getSelectedIndex(this->panel); 2302b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302bc: 48 8b 78 68 mov 0x68(%rax),%rdi 2302c0: e8 bb 7e ff ff call 228180 2302c5: 89 45 ec mov %eax,-0x14(%rbp) const int currScrollV = this->panel->scrollV; 2302c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302cc: 48 8b 40 68 mov 0x68(%rax),%rax 2302d0: 8b 40 38 mov 0x38(%rax),%eax 2302d3: 89 45 e8 mov %eax,-0x18(%rbp) const int currSize = Panel_size(this->panel); 2302d6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302da: 48 8b 78 68 mov 0x68(%rax),%rdi 2302de: e8 bd 7e ff ff call 2281a0 2302e3: 89 45 e4 mov %eax,-0x1c(%rbp) Panel_prune(this->panel); 2302e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302ea: 48 8b 78 68 mov 0x68(%rax),%rdi 2302ee: e8 9d 7b ff ff call 227e90 /* Follow main process if followed a userland thread and threads are now hidden */ const Settings* settings = this->settings; 2302f3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2302f7: 48 8b 00 mov (%rax),%rax 2302fa: 48 89 45 d8 mov %rax,-0x28(%rbp) if (this->following != -1 && settings->hideUserlandThreads) { 2302fe: 48 8b 45 f8 mov -0x8(%rbp),%rax 230302: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 230306: 0f 84 78 00 00 00 je 230384 23030c: 48 8b 45 d8 mov -0x28(%rbp),%rax 230310: f6 40 51 01 testb $0x1,0x51(%rax) 230314: 0f 84 6a 00 00 00 je 230384 const Process* followedProcess = (const Process*) Hashtable_get(this->processTable, this->following); 23031a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23031e: 48 8b 78 18 mov 0x18(%rax),%rdi 230322: 48 8b 45 f8 mov -0x8(%rbp),%rax 230326: 8b 70 70 mov 0x70(%rax),%esi 230329: e8 b2 ef fe ff call 21f2e0 23032e: 48 89 45 d0 mov %rax,-0x30(%rbp) if (followedProcess && Process_isThread(followedProcess) && Hashtable_get(this->processTable, followedProcess->tgid) != NULL) { 230332: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 230337: 0f 84 42 00 00 00 je 23037f 23033d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 230341: e8 6a 02 00 00 call 2305b0 230346: a8 01 test $0x1,%al 230348: 0f 85 05 00 00 00 jne 230353 23034e: e9 2c 00 00 00 jmp 23037f 230353: 48 8b 45 f8 mov -0x8(%rbp),%rax 230357: 48 8b 78 18 mov 0x18(%rax),%rdi 23035b: 48 8b 45 d0 mov -0x30(%rbp),%rax 23035f: 8b 70 20 mov 0x20(%rax),%esi 230362: e8 79 ef fe ff call 21f2e0 230367: 48 83 f8 00 cmp $0x0,%rax 23036b: 0f 84 0e 00 00 00 je 23037f this->following = followedProcess->tgid; 230371: 48 8b 45 d0 mov -0x30(%rbp),%rax 230375: 8b 48 20 mov 0x20(%rax),%ecx 230378: 48 8b 45 f8 mov -0x8(%rbp),%rax 23037c: 89 48 70 mov %ecx,0x70(%rax) } } 23037f: e9 00 00 00 00 jmp 230384 const int processCount = Vector_size(this->processes); 230384: 48 8b 45 f8 mov -0x8(%rbp),%rax 230388: 48 8b 78 08 mov 0x8(%rax),%rdi 23038c: e8 3f fe ff ff call 2301d0 230391: 89 45 cc mov %eax,-0x34(%rbp) int idx = 0; 230394: c7 45 c8 00 00 00 00 movl $0x0,-0x38(%rbp) bool foundFollowed = false; 23039b: c6 45 c7 00 movb $0x0,-0x39(%rbp) for (int i = 0; i < processCount; i++) { 23039f: c7 45 c0 00 00 00 00 movl $0x0,-0x40(%rbp) 2303a6: 8b 45 c0 mov -0x40(%rbp),%eax 2303a9: 3b 45 cc cmp -0x34(%rbp),%eax 2303ac: 0f 8d 4c 01 00 00 jge 2304fe Process* p = (Process*) Vector_get(this->processes, i); 2303b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2303b6: 48 8b 78 08 mov 0x8(%rax),%rdi 2303ba: 8b 75 c0 mov -0x40(%rbp),%esi 2303bd: e8 2e fe ff ff call 2301f0 2303c2: 48 89 45 b8 mov %rax,-0x48(%rbp) if ( (!p->show) 2303c6: 48 8b 45 b8 mov -0x48(%rbp),%rax || (this->userId != (uid_t) -1 && (p->st_uid != this->userId)) 2303ca: f6 80 ee 00 00 00 01 testb $0x1,0xee(%rax) 2303d1: 0f 84 b3 00 00 00 je 23048a 2303d7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2303db: 83 78 74 ff cmpl $0xffffffff,0x74(%rax) 2303df: 0f 84 14 00 00 00 je 2303f9 2303e5: 48 8b 45 b8 mov -0x48(%rbp),%rax 2303e9: 8b 40 48 mov 0x48(%rax),%eax 2303ec: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2303f0: 3b 41 74 cmp 0x74(%rcx),%eax || (incFilter && !(String_contains_i(Process_getCommand(p), incFilter))) 2303f3: 0f 85 91 00 00 00 jne 23048a 2303f9: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 2303fe: 0f 84 53 00 00 00 je 230457 230404: 48 8b 45 b8 mov -0x48(%rbp),%rax 230408: 48 8b 00 mov (%rax),%rax 23040b: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 230410: 0f 84 1a 00 00 00 je 230430 230416: 48 8b 45 b8 mov -0x48(%rbp),%rax 23041a: 48 8b 00 mov (%rax),%rax 23041d: 48 8b 40 30 mov 0x30(%rax),%rax 230421: 48 8b 7d b8 mov -0x48(%rbp),%rdi 230425: ff d0 call *%rax 230427: 48 89 45 b0 mov %rax,-0x50(%rbp) 23042b: e9 0d 00 00 00 jmp 23043d 230430: 48 8b 7d b8 mov -0x48(%rbp),%rdi 230434: e8 47 df ff ff call 22e380 230439: 48 89 45 b0 mov %rax,-0x50(%rbp) 23043d: 48 8b 7d b0 mov -0x50(%rbp),%rdi 230441: 48 8b 75 f0 mov -0x10(%rbp),%rsi 230445: e8 36 88 00 00 call 238c80 || (this->pidMatchList && !Hashtable_get(this->pidMatchList, p->tgid)) ) 23044a: a8 01 test $0x1,%al 23044c: 0f 85 05 00 00 00 jne 230457 230452: e9 33 00 00 00 jmp 23048a 230457: 48 8b 45 f8 mov -0x8(%rbp),%rax 23045b: 48 83 b8 80 00 00 00 00 cmpq $0x0,0x80(%rax) 230463: 0f 84 26 00 00 00 je 23048f 230469: 48 8b 45 f8 mov -0x8(%rbp),%rax 23046d: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 230474: 48 8b 45 b8 mov -0x48(%rbp),%rax 230478: 8b 70 20 mov 0x20(%rax),%esi 23047b: e8 60 ee fe ff call 21f2e0 230480: 48 83 f8 00 cmp $0x0,%rax if ( (!p->show) 230484: 0f 85 05 00 00 00 jne 23048f continue; 23048a: e9 61 00 00 00 jmp 2304f0 Panel_set(this->panel, idx, (Object*)p); 23048f: 48 8b 45 f8 mov -0x8(%rbp),%rax 230493: 48 8b 78 68 mov 0x68(%rax),%rdi 230497: 8b 75 c8 mov -0x38(%rbp),%esi 23049a: 48 8b 55 b8 mov -0x48(%rbp),%rdx 23049e: e8 ad 7a ff ff call 227f50 if (this->following != -1 && p->pid == this->following) { 2304a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2304a7: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 2304ab: 0f 84 36 00 00 00 je 2304e7 2304b1: 48 8b 45 b8 mov -0x48(%rbp),%rax 2304b5: 8b 40 18 mov 0x18(%rax),%eax 2304b8: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2304bc: 3b 41 70 cmp 0x70(%rcx),%eax 2304bf: 0f 85 22 00 00 00 jne 2304e7 foundFollowed = true; 2304c5: c6 45 c7 01 movb $0x1,-0x39(%rbp) Panel_setSelected(this->panel, idx); 2304c9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2304cd: 48 8b 78 68 mov 0x68(%rax),%rdi 2304d1: 8b 75 c8 mov -0x38(%rbp),%esi 2304d4: e8 e7 7c ff ff call 2281c0 this->panel->scrollV = currScrollV; 2304d9: 8b 4d e8 mov -0x18(%rbp),%ecx 2304dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2304e0: 48 8b 40 68 mov 0x68(%rax),%rax 2304e4: 89 48 38 mov %ecx,0x38(%rax) } idx++; 2304e7: 8b 45 c8 mov -0x38(%rbp),%eax 2304ea: 83 c0 01 add $0x1,%eax 2304ed: 89 45 c8 mov %eax,-0x38(%rbp) for (int i = 0; i < processCount; i++) { 2304f0: 8b 45 c0 mov -0x40(%rbp),%eax 2304f3: 83 c0 01 add $0x1,%eax 2304f6: 89 45 c0 mov %eax,-0x40(%rbp) 2304f9: e9 a8 fe ff ff jmp 2303a6 } if (this->following != -1 && !foundFollowed) { 2304fe: 48 8b 45 f8 mov -0x8(%rbp),%rax 230502: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 230506: 0f 84 27 00 00 00 je 230533 23050c: f6 45 c7 01 testb $0x1,-0x39(%rbp) 230510: 0f 85 1d 00 00 00 jne 230533 /* Reset if current followed pid not found */ this->following = -1; 230516: 48 8b 45 f8 mov -0x8(%rbp),%rax 23051a: c7 40 70 ff ff ff ff movl $0xffffffff,0x70(%rax) Panel_setSelectionColor(this->panel, PANEL_SELECTION_FOCUS); 230521: 48 8b 45 f8 mov -0x8(%rbp),%rax 230525: 48 8b 78 68 mov 0x68(%rax),%rdi 230529: be 09 00 00 00 mov $0x9,%esi 23052e: e8 9d 78 ff ff call 227dd0 } if (this->following == -1) { 230533: 48 8b 45 f8 mov -0x8(%rbp),%rax 230537: 83 78 70 ff cmpl $0xffffffff,0x70(%rax) 23053b: 0f 85 65 00 00 00 jne 2305a6 /* If the last item was selected, keep the new last item selected */ if (currPos > 0 && currPos == currSize - 1) 230541: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 230545: 0f 8e 3d 00 00 00 jle 230588 23054b: 8b 45 ec mov -0x14(%rbp),%eax 23054e: 8b 4d e4 mov -0x1c(%rbp),%ecx 230551: 83 e9 01 sub $0x1,%ecx 230554: 39 c8 cmp %ecx,%eax 230556: 0f 85 2c 00 00 00 jne 230588 Panel_setSelected(this->panel, Panel_size(this->panel) - 1); 23055c: 48 8b 45 f8 mov -0x8(%rbp),%rax 230560: 48 8b 40 68 mov 0x68(%rax),%rax 230564: 48 89 45 a8 mov %rax,-0x58(%rbp) 230568: 48 8b 45 f8 mov -0x8(%rbp),%rax 23056c: 48 8b 78 68 mov 0x68(%rax),%rdi 230570: e8 2b 7c ff ff call 2281a0 230575: 48 8b 7d a8 mov -0x58(%rbp),%rdi 230579: 89 c6 mov %eax,%esi 23057b: 83 ee 01 sub $0x1,%esi 23057e: e8 3d 7c ff ff call 2281c0 230583: e9 10 00 00 00 jmp 230598 else Panel_setSelected(this->panel, currPos); 230588: 48 8b 45 f8 mov -0x8(%rbp),%rax 23058c: 48 8b 78 68 mov 0x68(%rax),%rdi 230590: 8b 75 ec mov -0x14(%rbp),%esi 230593: e8 28 7c ff ff call 2281c0 this->panel->scrollV = currScrollV; 230598: 8b 4d e8 mov -0x18(%rbp),%ecx 23059b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23059f: 48 8b 40 68 mov 0x68(%rax),%rax 2305a3: 89 48 38 mov %ecx,0x38(%rax) } } 2305a6: 48 83 c4 60 add $0x60,%rsp 2305aa: 5d pop %rbp 2305ab: c3 ret 2305ac: 0f 1f 40 00 nopl 0x0(%rax) 00000000002305b0 : static inline bool Process_isThread(const Process* this) { 2305b0: 55 push %rbp 2305b1: 48 89 e5 mov %rsp,%rbp 2305b4: 48 83 ec 10 sub $0x10,%rsp 2305b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Process_isUserlandThread(this) || Process_isKernelThread(this); 2305bc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2305c0: e8 9b 0b 00 00 call 231160 2305c5: 88 c1 mov %al,%cl 2305c7: b0 01 mov $0x1,%al 2305c9: f6 c1 01 test $0x1,%cl 2305cc: 88 45 f7 mov %al,-0x9(%rbp) 2305cf: 0f 85 0c 00 00 00 jne 2305e1 2305d5: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2305d9: e8 a2 0b 00 00 call 231180 2305de: 88 45 f7 mov %al,-0x9(%rbp) 2305e1: 8a 45 f7 mov -0x9(%rbp),%al 2305e4: 24 01 and $0x1,%al 2305e6: 0f b6 c0 movzbl %al,%eax 2305e9: 48 83 c4 10 add $0x10,%rsp 2305ed: 5d pop %rbp 2305ee: c3 ret 2305ef: 90 nop 00000000002305f0 : Process* ProcessList_getProcess(ProcessList* this, pid_t pid, bool* preExisting, Process_New constructor) { 2305f0: 55 push %rbp 2305f1: 48 89 e5 mov %rsp,%rbp 2305f4: 48 83 ec 30 sub $0x30,%rsp 2305f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2305fc: 89 75 f4 mov %esi,-0xc(%rbp) 2305ff: 48 89 55 e8 mov %rdx,-0x18(%rbp) 230603: 48 89 4d e0 mov %rcx,-0x20(%rbp) Process* proc = (Process*) Hashtable_get(this->processTable, pid); 230607: 48 8b 45 f8 mov -0x8(%rbp),%rax 23060b: 48 8b 78 18 mov 0x18(%rax),%rdi 23060f: 8b 75 f4 mov -0xc(%rbp),%esi 230612: e8 c9 ec fe ff call 21f2e0 230617: 48 89 45 d8 mov %rax,-0x28(%rbp) *preExisting = proc != NULL; 23061b: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 230620: 0f 95 c1 setne %cl 230623: 48 8b 45 e8 mov -0x18(%rbp),%rax 230627: 80 e1 01 and $0x1,%cl 23062a: 88 08 mov %cl,(%rax) if (proc) { 23062c: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 230631: 0f 84 05 00 00 00 je 23063c assert(Vector_indexOf(this->processes, proc, Process_pidCompare) != -1); assert(proc->pid == pid); } else { 230637: e9 1b 00 00 00 jmp 230657 proc = constructor(this->settings); 23063c: 48 8b 45 e0 mov -0x20(%rbp),%rax 230640: 48 8b 4d f8 mov -0x8(%rbp),%rcx 230644: 48 8b 39 mov (%rcx),%rdi 230647: ff d0 call *%rax 230649: 48 89 45 d8 mov %rax,-0x28(%rbp) assert(proc->cmdline == NULL); proc->pid = pid; 23064d: 8b 4d f4 mov -0xc(%rbp),%ecx 230650: 48 8b 45 d8 mov -0x28(%rbp),%rax 230654: 89 48 18 mov %ecx,0x18(%rax) } return proc; 230657: 48 8b 45 d8 mov -0x28(%rbp),%rax 23065b: 48 83 c4 30 add $0x30,%rsp 23065f: 5d pop %rbp 230660: c3 ret 230661: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23066b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000230670 : } void ProcessList_scan(ProcessList* this, bool pauseProcessUpdate) { 230670: 55 push %rbp 230671: 48 89 e5 mov %rsp,%rbp 230674: 48 83 ec 30 sub $0x30,%rsp 230678: 40 88 f0 mov %sil,%al 23067b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23067f: 24 01 and $0x1,%al 230681: 88 45 f7 mov %al,-0x9(%rbp) // in pause mode only gather global data for meters (CPU/memory/...) if (pauseProcessUpdate) { 230684: f6 45 f7 01 testb $0x1,-0x9(%rbp) 230688: 0f 84 13 00 00 00 je 2306a1 ProcessList_goThroughEntries(this, true); 23068e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230692: be 01 00 00 00 mov $0x1,%esi 230697: e8 f4 a5 00 00 call 23ac90 return; 23069c: e9 43 02 00 00 jmp 2308e4 } // mark all process as "dirty" for (int i = 0; i < Vector_size(this->processes); i++) { 2306a1: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 2306a8: 8b 45 f0 mov -0x10(%rbp),%eax 2306ab: 89 45 d4 mov %eax,-0x2c(%rbp) 2306ae: 48 8b 45 f8 mov -0x8(%rbp),%rax 2306b2: 48 8b 78 08 mov 0x8(%rax),%rdi 2306b6: e8 15 fb ff ff call 2301d0 2306bb: 89 c1 mov %eax,%ecx 2306bd: 8b 45 d4 mov -0x2c(%rbp),%eax 2306c0: 39 c8 cmp %ecx,%eax 2306c2: 0f 8d 4f 00 00 00 jge 230717 Process* p = (Process*) Vector_get(this->processes, i); 2306c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2306cc: 48 8b 78 08 mov 0x8(%rax),%rdi 2306d0: 8b 75 f0 mov -0x10(%rbp),%esi 2306d3: e8 18 fb ff ff call 2301f0 2306d8: 48 89 45 e8 mov %rax,-0x18(%rbp) p->updated = false; 2306dc: 48 8b 45 e8 mov -0x18(%rbp),%rax 2306e0: c6 80 ec 00 00 00 00 movb $0x0,0xec(%rax) p->wasShown = p->show; 2306e7: 48 8b 45 e8 mov -0x18(%rbp),%rax 2306eb: 8a 88 ee 00 00 00 mov 0xee(%rax),%cl 2306f1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2306f5: 80 e1 01 and $0x1,%cl 2306f8: 88 88 ef 00 00 00 mov %cl,0xef(%rax) p->show = true; 2306fe: 48 8b 45 e8 mov -0x18(%rbp),%rax 230702: c6 80 ee 00 00 00 01 movb $0x1,0xee(%rax) for (int i = 0; i < Vector_size(this->processes); i++) { 230709: 8b 45 f0 mov -0x10(%rbp),%eax 23070c: 83 c0 01 add $0x1,%eax 23070f: 89 45 f0 mov %eax,-0x10(%rbp) 230712: e9 91 ff ff ff jmp 2306a8 } this->totalTasks = 0; 230717: 48 8b 45 f8 mov -0x8(%rbp),%rax 23071b: c7 80 88 00 00 00 00 00 00 00 movl $0x0,0x88(%rax) this->userlandThreads = 0; 230725: 48 8b 45 f8 mov -0x8(%rbp),%rax 230729: c7 80 90 00 00 00 00 00 00 00 movl $0x0,0x90(%rax) this->kernelThreads = 0; 230733: 48 8b 45 f8 mov -0x8(%rbp),%rax 230737: c7 80 94 00 00 00 00 00 00 00 movl $0x0,0x94(%rax) this->runningTasks = 0; 230741: 48 8b 45 f8 mov -0x8(%rbp),%rax 230745: c7 80 8c 00 00 00 00 00 00 00 movl $0x0,0x8c(%rax) // set scan timestamp static bool firstScanDone = false; if (firstScanDone) { 23074f: f6 04 25 30 22 24 00 01 testb $0x1,0x242230 230757: 0f 84 12 00 00 00 je 23076f Platform_gettime_monotonic(&this->monotonicMs); 23075d: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230761: 48 83 c7 60 add $0x60,%rdi 230765: e8 86 01 00 00 call 2308f0 } else { 23076a: e9 14 00 00 00 jmp 230783 this->monotonicMs = 0; 23076f: 48 8b 45 f8 mov -0x8(%rbp),%rax 230773: 48 c7 40 60 00 00 00 00 movq $0x0,0x60(%rax) firstScanDone = true; 23077b: c6 04 25 30 22 24 00 01 movb $0x1,0x242230 } ProcessList_goThroughEntries(this, false); 230783: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230787: 31 f6 xor %esi,%esi 230789: e8 02 a5 00 00 call 23ac90 uid_t maxUid = 0; 23078e: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%rbp) for (int i = Vector_size(this->processes) - 1; i >= 0; i--) { 230795: 48 8b 45 f8 mov -0x8(%rbp),%rax 230799: 48 8b 78 08 mov 0x8(%rax),%rdi 23079d: e8 2e fa ff ff call 2301d0 2307a2: 83 e8 01 sub $0x1,%eax 2307a5: 89 45 e0 mov %eax,-0x20(%rbp) 2307a8: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 2307ac: 0f 8c 03 01 00 00 jl 2308b5 Process* p = (Process*) Vector_get(this->processes, i); 2307b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2307b6: 48 8b 78 08 mov 0x8(%rax),%rdi 2307ba: 8b 75 e0 mov -0x20(%rbp),%esi 2307bd: e8 2e fa ff ff call 2301f0 2307c2: 48 89 45 d8 mov %rax,-0x28(%rbp) Process_makeCommandStr(p); 2307c6: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2307ca: e8 a1 a3 ff ff call 22ab70 // keep track of the highest UID for column scaling if (p->st_uid > maxUid) 2307cf: 48 8b 45 d8 mov -0x28(%rbp),%rax 2307d3: 8b 40 48 mov 0x48(%rax),%eax 2307d6: 3b 45 e4 cmp -0x1c(%rbp),%eax 2307d9: 0f 86 0a 00 00 00 jbe 2307e9 maxUid = p->st_uid; 2307df: 48 8b 45 d8 mov -0x28(%rbp),%rax 2307e3: 8b 40 48 mov 0x48(%rax),%eax 2307e6: 89 45 e4 mov %eax,-0x1c(%rbp) if (p->tombStampMs > 0) { 2307e9: 48 8b 45 d8 mov -0x28(%rbp),%rax 2307ed: 48 83 b8 00 01 00 00 00 cmpq $0x0,0x100(%rax) 2307f5: 0f 86 2b 00 00 00 jbe 230826 // remove tombed process if (this->monotonicMs >= p->tombStampMs) { 2307fb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2307ff: 48 8b 40 60 mov 0x60(%rax),%rax 230803: 48 8b 4d d8 mov -0x28(%rbp),%rcx 230807: 48 3b 81 00 01 00 00 cmp 0x100(%rcx),%rax 23080e: 0f 82 0d 00 00 00 jb 230821 ProcessList_remove(this, p); 230814: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230818: 48 8b 75 d8 mov -0x28(%rbp),%rsi 23081c: e8 5f f6 ff ff call 22fe80 } } else if (p->updated == false) { 230821: e9 7c 00 00 00 jmp 2308a2 230826: 48 8b 45 d8 mov -0x28(%rbp),%rax 23082a: 8a 80 ec 00 00 00 mov 0xec(%rax),%al 230830: 24 01 and $0x1,%al 230832: 0f b6 c0 movzbl %al,%eax 230835: 83 f8 00 cmp $0x0,%eax 230838: 0f 85 5f 00 00 00 jne 23089d // process no longer exists if (this->settings->highlightChanges && p->wasShown) { 23083e: 48 8b 45 f8 mov -0x8(%rbp),%rax 230842: 48 8b 00 mov (%rax),%rax 230845: f6 40 56 01 testb $0x1,0x56(%rax) 230849: 0f 84 3c 00 00 00 je 23088b 23084f: 48 8b 45 d8 mov -0x28(%rbp),%rax 230853: f6 80 ef 00 00 00 01 testb $0x1,0xef(%rax) 23085a: 0f 84 2b 00 00 00 je 23088b // mark tombed p->tombStampMs = this->monotonicMs + 1000 * this->settings->highlightDelaySecs; 230860: 48 8b 45 f8 mov -0x8(%rbp),%rax 230864: 48 8b 48 60 mov 0x60(%rax),%rcx 230868: 48 8b 45 f8 mov -0x8(%rbp),%rax 23086c: 48 8b 00 mov (%rax),%rax 23086f: 69 40 58 e8 03 00 00 imul $0x3e8,0x58(%rax),%eax 230876: 48 98 cltq 230878: 48 01 c1 add %rax,%rcx 23087b: 48 8b 45 d8 mov -0x28(%rbp),%rax 23087f: 48 89 88 00 01 00 00 mov %rcx,0x100(%rax) } else { 230886: e9 0d 00 00 00 jmp 230898 // immediately remove ProcessList_remove(this, p); 23088b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23088f: 48 8b 75 d8 mov -0x28(%rbp),%rsi 230893: e8 e8 f5 ff ff call 22fe80 } } 230898: e9 00 00 00 00 jmp 23089d 23089d: e9 00 00 00 00 jmp 2308a2 } 2308a2: e9 00 00 00 00 jmp 2308a7 for (int i = Vector_size(this->processes) - 1; i >= 0; i--) { 2308a7: 8b 45 e0 mov -0x20(%rbp),%eax 2308aa: 83 c0 ff add $0xffffffff,%eax 2308ad: 89 45 e0 mov %eax,-0x20(%rbp) 2308b0: e9 f3 fe ff ff jmp 2307a8 // Set UID column width based on max UID. Process_setUidColumnWidth(maxUid); 2308b5: 8b 7d e4 mov -0x1c(%rbp),%edi 2308b8: e8 e3 91 ff ff call 229aa0 if (this->settings->treeView) { 2308bd: 48 8b 45 f8 mov -0x8(%rbp),%rax 2308c1: 48 8b 00 mov (%rax),%rax 2308c4: f6 40 4a 01 testb $0x1,0x4a(%rax) 2308c8: 0f 84 16 00 00 00 je 2308e4 // Clear out the hashtable to avoid any left-over processes from previous build // // The sorting algorithm relies on the fact that // len(this->displayTreeSet) == len(this->processes) Hashtable_clear(this->displayTreeSet); 2308ce: 48 8b 45 f8 mov -0x8(%rbp),%rax 2308d2: 48 8b 78 28 mov 0x28(%rax),%rdi 2308d6: e8 b5 e3 fe ff call 21ec90 ProcessList_buildTree(this); 2308db: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2308df: e8 2c 00 00 00 call 230910 } } 2308e4: 48 83 c4 30 add $0x30,%rsp 2308e8: 5d pop %rbp 2308e9: c3 ret 2308ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002308f0 : static inline void Platform_gettime_monotonic(uint64_t* msec) { 2308f0: 55 push %rbp 2308f1: 48 89 e5 mov %rsp,%rbp 2308f4: 48 83 ec 10 sub $0x10,%rsp 2308f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Generic_gettime_monotonic(msec); 2308fc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230900: e8 ab c1 00 00 call 23cab0 } 230905: 48 83 c4 10 add $0x10,%rsp 230909: 5d pop %rbp 23090a: c3 ret 23090b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000230910 : static void ProcessList_buildTree(ProcessList* this) { 230910: 55 push %rbp 230911: 48 89 e5 mov %rsp,%rbp 230914: 48 83 ec 60 sub $0x60,%rsp 230918: 48 8b 05 11 1f 01 00 mov 0x11f11(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23091f: 48 89 45 f8 mov %rax,-0x8(%rbp) 230923: 48 89 7d e8 mov %rdi,-0x18(%rbp) int node_counter = 1; 230927: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%rbp) int node_index = 0; 23092e: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) int direction = Settings_getActiveDirection(this->settings); 230935: 48 8b 45 e8 mov -0x18(%rbp),%rax 230939: 48 8b 38 mov (%rax),%rdi 23093c: e8 9f f4 ff ff call 22fde0 230941: 89 45 e4 mov %eax,-0x1c(%rbp) Vector_quickSortCustomCompare(this->processes, ProcessList_treeProcessCompareByPID); 230944: 48 8b 45 e8 mov -0x18(%rbp),%rax 230948: 48 8b 78 08 mov 0x8(%rax),%rdi 23094c: 48 be a0 11 23 00 00 00 00 00 movabs $0x2311a0,%rsi 230956: e8 05 79 00 00 call 238260 int vsize = Vector_size(this->processes); 23095b: 48 8b 45 e8 mov -0x18(%rbp),%rax 23095f: 48 8b 78 08 mov 0x8(%rax),%rdi 230963: e8 68 f8 ff ff call 2301d0 230968: 89 45 e0 mov %eax,-0x20(%rbp) while ((size = Vector_size(this->processes))) { 23096b: 48 8b 45 e8 mov -0x18(%rbp),%rax 23096f: 48 8b 78 08 mov 0x8(%rax),%rdi 230973: e8 58 f8 ff ff call 2301d0 230978: 89 45 dc mov %eax,-0x24(%rbp) 23097b: 83 f8 00 cmp $0x0,%eax 23097e: 0f 84 ba 02 00 00 je 230c3e for (i = 0; i < size; i++) { 230984: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 23098b: 8b 45 d8 mov -0x28(%rbp),%eax 23098e: 3b 45 dc cmp -0x24(%rbp),%eax 230991: 0f 8d a2 02 00 00 jge 230c39 Process* process = (Process*)Vector_get(this->processes, i); 230997: 48 8b 45 e8 mov -0x18(%rbp),%rax 23099b: 48 8b 78 08 mov 0x8(%rax),%rdi 23099f: 8b 75 d8 mov -0x28(%rbp),%esi 2309a2: e8 49 f8 ff ff call 2301f0 2309a7: 48 89 45 d0 mov %rax,-0x30(%rbp) if (!process->show) { 2309ab: 48 8b 45 d0 mov -0x30(%rbp),%rax 2309af: f6 80 ee 00 00 00 01 testb $0x1,0xee(%rax) 2309b6: 0f 85 ce 00 00 00 jne 230a8a process = (Process*)Vector_take(this->processes, i); 2309bc: 48 8b 45 e8 mov -0x18(%rbp),%rax 2309c0: 48 8b 78 08 mov 0x8(%rax),%rdi 2309c4: 8b 75 d8 mov -0x28(%rbp),%esi 2309c7: e8 94 7b 00 00 call 238560 2309cc: 48 89 45 d0 mov %rax,-0x30(%rbp) process->indent = 0; 2309d0: 48 8b 45 d0 mov -0x30(%rbp),%rax 2309d4: c7 80 08 01 00 00 00 00 00 00 movl $0x0,0x108(%rax) process->tree_depth = 0; 2309de: 48 8b 45 d0 mov -0x30(%rbp),%rax 2309e2: c7 80 14 01 00 00 00 00 00 00 movl $0x0,0x114(%rax) process->tree_left = node_counter++; 2309ec: 8b 4d f4 mov -0xc(%rbp),%ecx 2309ef: 89 c8 mov %ecx,%eax 2309f1: 83 c0 01 add $0x1,%eax 2309f4: 89 45 f4 mov %eax,-0xc(%rbp) 2309f7: 48 8b 45 d0 mov -0x30(%rbp),%rax 2309fb: 89 88 0c 01 00 00 mov %ecx,0x10c(%rax) process->tree_index = node_index++; 230a01: 8b 4d f0 mov -0x10(%rbp),%ecx 230a04: 89 c8 mov %ecx,%eax 230a06: 83 c0 01 add $0x1,%eax 230a09: 89 45 f0 mov %eax,-0x10(%rbp) 230a0c: 48 8b 45 d0 mov -0x30(%rbp),%rax 230a10: 89 88 18 01 00 00 mov %ecx,0x118(%rax) Vector_add(this->processes2, process); 230a16: 48 8b 45 e8 mov -0x18(%rbp),%rax 230a1a: 48 8b 78 10 mov 0x10(%rax),%rdi 230a1e: 48 8b 75 d0 mov -0x30(%rbp),%rsi 230a22: e8 b9 7d 00 00 call 2387e0 ProcessList_buildTreeBranch(this, process->pid, 0, 0, direction, false, &node_counter, &node_index); 230a27: 48 8b 7d e8 mov -0x18(%rbp),%rdi 230a2b: 48 8b 45 d0 mov -0x30(%rbp),%rax 230a2f: 8b 70 18 mov 0x18(%rax),%esi 230a32: 44 8b 45 e4 mov -0x1c(%rbp),%r8d 230a36: 45 31 c9 xor %r9d,%r9d 230a39: 4c 8d 55 f4 lea -0xc(%rbp),%r10 230a3d: 48 8d 45 f0 lea -0x10(%rbp),%rax 230a41: 44 89 ca mov %r9d,%edx 230a44: 44 89 c9 mov %r9d,%ecx 230a47: 4c 89 14 24 mov %r10,(%rsp) 230a4b: 48 89 44 24 08 mov %rax,0x8(%rsp) 230a50: e8 9b 07 00 00 call 2311f0 process->tree_right = node_counter++; 230a55: 8b 4d f4 mov -0xc(%rbp),%ecx 230a58: 89 c8 mov %ecx,%eax 230a5a: 83 c0 01 add $0x1,%eax 230a5d: 89 45 f4 mov %eax,-0xc(%rbp) 230a60: 48 8b 45 d0 mov -0x30(%rbp),%rax 230a64: 89 88 10 01 00 00 mov %ecx,0x110(%rax) Hashtable_put(this->displayTreeSet, process->tree_index, process); 230a6a: 48 8b 45 e8 mov -0x18(%rbp),%rax 230a6e: 48 8b 78 28 mov 0x28(%rax),%rdi 230a72: 48 8b 45 d0 mov -0x30(%rbp),%rax 230a76: 8b b0 18 01 00 00 mov 0x118(%rax),%esi 230a7c: 48 8b 55 d0 mov -0x30(%rbp),%rdx 230a80: e8 ab e5 fe ff call 21f030 break; 230a85: e9 af 01 00 00 jmp 230c39 pid_t ppid = Process_getParentPid(process); 230a8a: 48 8b 7d d0 mov -0x30(%rbp),%rdi 230a8e: e8 5d 0a 00 00 call 2314f0 230a93: 89 45 cc mov %eax,-0x34(%rbp) int l = 0; 230a96: c7 45 c8 00 00 00 00 movl $0x0,-0x38(%rbp) int r = size; 230a9d: 8b 45 dc mov -0x24(%rbp),%eax 230aa0: 89 45 c4 mov %eax,-0x3c(%rbp) if (process->pid == ppid) 230aa3: 48 8b 45 d0 mov -0x30(%rbp),%rax 230aa7: 8b 40 18 mov 0x18(%rax),%eax 230aaa: 3b 45 cc cmp -0x34(%rbp),%eax 230aad: 0f 85 07 00 00 00 jne 230aba r = 0; 230ab3: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) if (!ppid) 230aba: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) 230abe: 0f 85 07 00 00 00 jne 230acb r = 0; 230ac4: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) while (l < r) { 230acb: e9 00 00 00 00 jmp 230ad0 230ad0: 8b 45 c8 mov -0x38(%rbp),%eax 230ad3: 3b 45 c4 cmp -0x3c(%rbp),%eax 230ad6: 0f 8d 62 00 00 00 jge 230b3e int c = (l + r) / 2; 230adc: 8b 45 c8 mov -0x38(%rbp),%eax 230adf: 03 45 c4 add -0x3c(%rbp),%eax 230ae2: b9 02 00 00 00 mov $0x2,%ecx 230ae7: 99 cltd 230ae8: f7 f9 idiv %ecx 230aea: 89 45 c0 mov %eax,-0x40(%rbp) pid_t pid = ((Process*)Vector_get(this->processes, c))->pid; 230aed: 48 8b 45 e8 mov -0x18(%rbp),%rax 230af1: 48 8b 78 08 mov 0x8(%rax),%rdi 230af5: 8b 75 c0 mov -0x40(%rbp),%esi 230af8: e8 f3 f6 ff ff call 2301f0 230afd: 8b 40 18 mov 0x18(%rax),%eax 230b00: 89 45 bc mov %eax,-0x44(%rbp) if (ppid == pid) { 230b03: 8b 45 cc mov -0x34(%rbp),%eax 230b06: 3b 45 bc cmp -0x44(%rbp),%eax 230b09: 0f 85 05 00 00 00 jne 230b14 break; 230b0f: e9 2a 00 00 00 jmp 230b3e } else if (ppid < pid) { 230b14: 8b 45 cc mov -0x34(%rbp),%eax 230b17: 3b 45 bc cmp -0x44(%rbp),%eax 230b1a: 0f 8d 0b 00 00 00 jge 230b2b r = c; 230b20: 8b 45 c0 mov -0x40(%rbp),%eax 230b23: 89 45 c4 mov %eax,-0x3c(%rbp) } else { 230b26: e9 09 00 00 00 jmp 230b34 l = c + 1; 230b2b: 8b 45 c0 mov -0x40(%rbp),%eax 230b2e: 83 c0 01 add $0x1,%eax 230b31: 89 45 c8 mov %eax,-0x38(%rbp) 230b34: e9 00 00 00 00 jmp 230b39 while (l < r) { 230b39: e9 92 ff ff ff jmp 230ad0 if (l >= r) { 230b3e: 8b 45 c8 mov -0x38(%rbp),%eax 230b41: 3b 45 c4 cmp -0x3c(%rbp),%eax 230b44: 0f 8c dc 00 00 00 jl 230c26 process = (Process*)Vector_take(this->processes, i); 230b4a: 48 8b 45 e8 mov -0x18(%rbp),%rax 230b4e: 48 8b 78 08 mov 0x8(%rax),%rdi 230b52: 8b 75 d8 mov -0x28(%rbp),%esi 230b55: e8 06 7a 00 00 call 238560 230b5a: 48 89 45 d0 mov %rax,-0x30(%rbp) process->indent = 0; 230b5e: 48 8b 45 d0 mov -0x30(%rbp),%rax 230b62: c7 80 08 01 00 00 00 00 00 00 movl $0x0,0x108(%rax) process->tree_depth = 0; 230b6c: 48 8b 45 d0 mov -0x30(%rbp),%rax 230b70: c7 80 14 01 00 00 00 00 00 00 movl $0x0,0x114(%rax) process->tree_left = node_counter++; 230b7a: 8b 4d f4 mov -0xc(%rbp),%ecx 230b7d: 89 c8 mov %ecx,%eax 230b7f: 83 c0 01 add $0x1,%eax 230b82: 89 45 f4 mov %eax,-0xc(%rbp) 230b85: 48 8b 45 d0 mov -0x30(%rbp),%rax 230b89: 89 88 0c 01 00 00 mov %ecx,0x10c(%rax) process->tree_index = node_index++; 230b8f: 8b 4d f0 mov -0x10(%rbp),%ecx 230b92: 89 c8 mov %ecx,%eax 230b94: 83 c0 01 add $0x1,%eax 230b97: 89 45 f0 mov %eax,-0x10(%rbp) 230b9a: 48 8b 45 d0 mov -0x30(%rbp),%rax 230b9e: 89 88 18 01 00 00 mov %ecx,0x118(%rax) Vector_add(this->processes2, process); 230ba4: 48 8b 45 e8 mov -0x18(%rbp),%rax 230ba8: 48 8b 78 10 mov 0x10(%rax),%rdi 230bac: 48 8b 75 d0 mov -0x30(%rbp),%rsi 230bb0: e8 2b 7c 00 00 call 2387e0 Hashtable_put(this->displayTreeSet, process->tree_index, process); 230bb5: 48 8b 45 e8 mov -0x18(%rbp),%rax 230bb9: 48 8b 78 28 mov 0x28(%rax),%rdi 230bbd: 48 8b 45 d0 mov -0x30(%rbp),%rax 230bc1: 8b b0 18 01 00 00 mov 0x118(%rax),%esi 230bc7: 48 8b 55 d0 mov -0x30(%rbp),%rdx 230bcb: e8 60 e4 fe ff call 21f030 ProcessList_buildTreeBranch(this, process->pid, 0, 0, direction, process->showChildren, &node_counter, &node_index); 230bd0: 48 8b 7d e8 mov -0x18(%rbp),%rdi 230bd4: 48 8b 45 d0 mov -0x30(%rbp),%rax 230bd8: 8b 70 18 mov 0x18(%rax),%esi 230bdb: 44 8b 45 e4 mov -0x1c(%rbp),%r8d 230bdf: 48 8b 45 d0 mov -0x30(%rbp),%rax 230be3: 44 8a 88 f0 00 00 00 mov 0xf0(%rax),%r9b 230bea: 31 c9 xor %ecx,%ecx 230bec: 4c 8d 55 f4 lea -0xc(%rbp),%r10 230bf0: 48 8d 45 f0 lea -0x10(%rbp),%rax 230bf4: 41 80 e1 01 and $0x1,%r9b 230bf8: 89 ca mov %ecx,%edx 230bfa: 45 0f b6 c9 movzbl %r9b,%r9d 230bfe: 4c 89 14 24 mov %r10,(%rsp) 230c02: 48 89 44 24 08 mov %rax,0x8(%rsp) 230c07: e8 e4 05 00 00 call 2311f0 process->tree_right = node_counter++; 230c0c: 8b 4d f4 mov -0xc(%rbp),%ecx 230c0f: 89 c8 mov %ecx,%eax 230c11: 83 c0 01 add $0x1,%eax 230c14: 89 45 f4 mov %eax,-0xc(%rbp) 230c17: 48 8b 45 d0 mov -0x30(%rbp),%rax 230c1b: 89 88 10 01 00 00 mov %ecx,0x110(%rax) break; 230c21: e9 13 00 00 00 jmp 230c39 } 230c26: e9 00 00 00 00 jmp 230c2b for (i = 0; i < size; i++) { 230c2b: 8b 45 d8 mov -0x28(%rbp),%eax 230c2e: 83 c0 01 add $0x1,%eax 230c31: 89 45 d8 mov %eax,-0x28(%rbp) 230c34: e9 52 fd ff ff jmp 23098b while ((size = Vector_size(this->processes))) { 230c39: e9 2d fd ff ff jmp 23096b Vector* t = this->processes; 230c3e: 48 8b 45 e8 mov -0x18(%rbp),%rax 230c42: 48 8b 40 08 mov 0x8(%rax),%rax 230c46: 48 89 45 b0 mov %rax,-0x50(%rbp) this->processes = this->processes2; 230c4a: 48 8b 45 e8 mov -0x18(%rbp),%rax 230c4e: 48 8b 48 10 mov 0x10(%rax),%rcx 230c52: 48 8b 45 e8 mov -0x18(%rbp),%rax 230c56: 48 89 48 08 mov %rcx,0x8(%rax) this->processes2 = t; 230c5a: 48 8b 4d b0 mov -0x50(%rbp),%rcx 230c5e: 48 8b 45 e8 mov -0x18(%rbp),%rax 230c62: 48 89 48 10 mov %rcx,0x10(%rax) 230c66: 48 8b 05 c3 1b 01 00 mov 0x11bc3(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 230c6d: 48 8b 4d f8 mov -0x8(%rbp),%rcx 230c71: 48 39 c8 cmp %rcx,%rax 230c74: 0f 85 06 00 00 00 jne 230c80 } 230c7a: 48 83 c4 60 add $0x60,%rsp 230c7e: 5d pop %rbp 230c7f: c3 ret 230c80: e8 bb d4 00 00 call 23e140 <__stack_chk_fail@plt> 230c85: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 230c8f: 90 nop 0000000000230c90 : static const char* alignedDynamicColumnTitle(const ProcessList* this, int key) { 230c90: 55 push %rbp 230c91: 48 89 e5 mov %rsp,%rbp 230c94: 48 83 ec 30 sub $0x30,%rsp 230c98: 48 89 7d f0 mov %rdi,-0x10(%rbp) 230c9c: 89 75 ec mov %esi,-0x14(%rbp) const DynamicColumn* column = Hashtable_get(this->dynamicColumns, key); 230c9f: 48 8b 45 f0 mov -0x10(%rbp),%rax 230ca3: 48 8b 78 40 mov 0x40(%rax),%rdi 230ca7: 8b 75 ec mov -0x14(%rbp),%esi 230caa: e8 31 e6 fe ff call 21f2e0 230caf: 48 89 45 e0 mov %rax,-0x20(%rbp) if (column == NULL) 230cb3: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 230cb8: 0f 85 13 00 00 00 jne 230cd1 return "- "; 230cbe: 48 b8 4b 35 20 00 00 00 00 00 movabs $0x20354b,%rax 230cc8: 48 89 45 f8 mov %rax,-0x8(%rbp) 230ccc: e9 65 00 00 00 jmp 230d36 int width = column->width; 230cd1: 48 8b 45 e0 mov -0x20(%rbp),%rax 230cd5: 8b 40 38 mov 0x38(%rax),%eax 230cd8: 89 45 dc mov %eax,-0x24(%rbp) if (!width || abs(width) > DYNAMIC_MAX_COLUMN_WIDTH) 230cdb: 83 7d dc 00 cmpl $0x0,-0x24(%rbp) 230cdf: 0f 84 11 00 00 00 je 230cf6 230ce5: 8b 7d dc mov -0x24(%rbp),%edi 230ce8: e8 c3 da 00 00 call 23e7b0 230ced: 83 f8 1c cmp $0x1c,%eax 230cf0: 0f 8e 07 00 00 00 jle 230cfd width = DYNAMIC_DEFAULT_COLUMN_WIDTH; 230cf6: c7 45 dc fb ff ff ff movl $0xfffffffb,-0x24(%rbp) xSnprintf(titleBuffer, sizeof(titleBuffer), "%*s", width, column->heading); 230cfd: 8b 4d dc mov -0x24(%rbp),%ecx 230d00: 48 8b 45 e0 mov -0x20(%rbp),%rax 230d04: 4c 8b 40 20 mov 0x20(%rax),%r8 230d08: 48 bf 80 22 24 00 00 00 00 00 movabs $0x242280,%rdi 230d12: be 1e 00 00 00 mov $0x1e,%esi 230d17: 48 ba a4 6d 20 00 00 00 00 00 movabs $0x206da4,%rdx 230d21: b0 00 mov $0x0,%al 230d23: e8 c8 87 00 00 call 2394f0 return titleBuffer; 230d28: 48 b8 80 22 24 00 00 00 00 00 movabs $0x242280,%rax 230d32: 48 89 45 f8 mov %rax,-0x8(%rbp) } 230d36: 48 8b 45 f8 mov -0x8(%rbp),%rax 230d3a: 48 83 c4 30 add $0x30,%rsp 230d3e: 5d pop %rbp 230d3f: c3 ret 0000000000230d40 : static void ProcessList_updateTreeSetLayer(ProcessList* this, unsigned int leftBound, unsigned int rightBound, unsigned int deep, unsigned int left, unsigned int right, unsigned int* index, unsigned int* treeIndex, int indent) { 230d40: 55 push %rbp 230d41: 48 89 e5 mov %rsp,%rbp 230d44: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 230d4b: 8b 45 20 mov 0x20(%rbp),%eax 230d4e: 48 8b 45 18 mov 0x18(%rbp),%rax 230d52: 48 8b 45 10 mov 0x10(%rbp),%rax 230d56: 48 89 7d f8 mov %rdi,-0x8(%rbp) 230d5a: 89 75 f4 mov %esi,-0xc(%rbp) 230d5d: 89 55 f0 mov %edx,-0x10(%rbp) 230d60: 89 4d ec mov %ecx,-0x14(%rbp) 230d63: 44 89 45 e8 mov %r8d,-0x18(%rbp) 230d67: 44 89 4d e4 mov %r9d,-0x1c(%rbp) int layerSize = (right - left) / 2; 230d6b: 8b 45 e4 mov -0x1c(%rbp),%eax 230d6e: 2b 45 e8 sub -0x18(%rbp),%eax 230d71: c1 e8 01 shr $0x1,%eax 230d74: 89 45 e0 mov %eax,-0x20(%rbp) if (layerSize == 0) 230d77: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 230d7b: 0f 85 05 00 00 00 jne 230d86 return; 230d81: e9 7f 03 00 00 jmp 231105 Vector* layer = Vector_new(Vector_type(this->processes), false, layerSize); 230d86: 48 8b 45 f8 mov -0x8(%rbp),%rax 230d8a: 48 8b 78 08 mov 0x8(%rax),%rdi 230d8e: e8 7d 03 00 00 call 231110 230d93: 48 89 c7 mov %rax,%rdi 230d96: 8b 55 e0 mov -0x20(%rbp),%edx 230d99: 31 f6 xor %esi,%esi 230d9b: e8 e0 72 00 00 call 238080 230da0: 48 89 45 d8 mov %rax,-0x28(%rbp) for (unsigned int i = leftBound; i < rightBound; i++) { 230da4: 8b 45 f4 mov -0xc(%rbp),%eax 230da7: 89 45 d4 mov %eax,-0x2c(%rbp) 230daa: 8b 45 d4 mov -0x2c(%rbp),%eax 230dad: 3b 45 f0 cmp -0x10(%rbp),%eax 230db0: 0f 83 c1 00 00 00 jae 230e77 Process* proc = (Process*)Hashtable_get(this->displayTreeSet, i); 230db6: 48 8b 45 f8 mov -0x8(%rbp),%rax 230dba: 48 8b 78 28 mov 0x28(%rax),%rdi 230dbe: 8b 75 d4 mov -0x2c(%rbp),%esi 230dc1: e8 1a e5 fe ff call 21f2e0 230dc6: 48 89 45 c8 mov %rax,-0x38(%rbp) if (proc && proc->tree_depth == deep && proc->tree_left > left && proc->tree_right < right) { 230dca: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 230dcf: 0f 84 8f 00 00 00 je 230e64 230dd5: 48 8b 45 c8 mov -0x38(%rbp),%rax 230dd9: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 230ddf: 3b 45 ec cmp -0x14(%rbp),%eax 230de2: 0f 85 7c 00 00 00 jne 230e64 230de8: 48 8b 45 c8 mov -0x38(%rbp),%rax 230dec: 8b 80 0c 01 00 00 mov 0x10c(%rax),%eax 230df2: 3b 45 e8 cmp -0x18(%rbp),%eax 230df5: 0f 86 69 00 00 00 jbe 230e64 230dfb: 48 8b 45 c8 mov -0x38(%rbp),%rax 230dff: 8b 80 10 01 00 00 mov 0x110(%rax),%eax 230e05: 3b 45 e4 cmp -0x1c(%rbp),%eax 230e08: 0f 83 56 00 00 00 jae 230e64 if (Vector_size(layer) > 0) { 230e0e: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230e12: e8 b9 f3 ff ff call 2301d0 230e17: 83 f8 00 cmp $0x0,%eax 230e1a: 0f 8e 37 00 00 00 jle 230e57 Process* previous_process = (Process*)Vector_get(layer, Vector_size(layer) - 1); 230e20: 48 8b 45 d8 mov -0x28(%rbp),%rax 230e24: 48 89 45 80 mov %rax,-0x80(%rbp) 230e28: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230e2c: e8 9f f3 ff ff call 2301d0 230e31: 48 8b 7d 80 mov -0x80(%rbp),%rdi 230e35: 89 c6 mov %eax,%esi 230e37: 83 ee 01 sub $0x1,%esi 230e3a: e8 b1 f3 ff ff call 2301f0 230e3f: 48 89 45 c0 mov %rax,-0x40(%rbp) previous_process->tree_depth = proc->tree_index; 230e43: 48 8b 45 c8 mov -0x38(%rbp),%rax 230e47: 8b 88 18 01 00 00 mov 0x118(%rax),%ecx 230e4d: 48 8b 45 c0 mov -0x40(%rbp),%rax 230e51: 89 88 14 01 00 00 mov %ecx,0x114(%rax) Vector_add(layer, proc); 230e57: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230e5b: 48 8b 75 c8 mov -0x38(%rbp),%rsi 230e5f: e8 7c 79 00 00 call 2387e0 } 230e64: e9 00 00 00 00 jmp 230e69 for (unsigned int i = leftBound; i < rightBound; i++) { 230e69: 8b 45 d4 mov -0x2c(%rbp),%eax 230e6c: 83 c0 01 add $0x1,%eax 230e6f: 89 45 d4 mov %eax,-0x2c(%rbp) 230e72: e9 33 ff ff ff jmp 230daa if (Vector_size(layer) > 0) { 230e77: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230e7b: e8 50 f3 ff ff call 2301d0 230e80: 83 f8 00 cmp $0x0,%eax 230e83: 0f 8e 36 00 00 00 jle 230ebf Process* previous_process = (Process*)Vector_get(layer, Vector_size(layer) - 1); 230e89: 48 8b 45 d8 mov -0x28(%rbp),%rax 230e8d: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 230e94: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230e98: e8 33 f3 ff ff call 2301d0 230e9d: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 230ea4: 89 c6 mov %eax,%esi 230ea6: 83 ee 01 sub $0x1,%esi 230ea9: e8 42 f3 ff ff call 2301f0 230eae: 48 89 45 b8 mov %rax,-0x48(%rbp) previous_process->tree_depth = rightBound; 230eb2: 8b 4d f0 mov -0x10(%rbp),%ecx 230eb5: 48 8b 45 b8 mov -0x48(%rbp),%rax 230eb9: 89 88 14 01 00 00 mov %ecx,0x114(%rax) Vector_quickSort(layer); 230ebf: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230ec3: e8 68 02 00 00 call 231130 int size = Vector_size(layer); 230ec8: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230ecc: e8 ff f2 ff ff call 2301d0 230ed1: 89 45 b4 mov %eax,-0x4c(%rbp) for (int i = 0; i < size; i++) { 230ed4: c7 45 b0 00 00 00 00 movl $0x0,-0x50(%rbp) 230edb: 8b 45 b0 mov -0x50(%rbp),%eax 230ede: 3b 45 b4 cmp -0x4c(%rbp),%eax 230ee1: 0f 8d 15 02 00 00 jge 2310fc Process* proc = (Process*)Vector_get(layer, i); 230ee7: 48 8b 7d d8 mov -0x28(%rbp),%rdi 230eeb: 8b 75 b0 mov -0x50(%rbp),%esi 230eee: e8 fd f2 ff ff call 2301f0 230ef3: 48 89 45 a8 mov %rax,-0x58(%rbp) unsigned int idx = (*index)++; 230ef7: 48 8b 4d 10 mov 0x10(%rbp),%rcx 230efb: 8b 01 mov (%rcx),%eax 230efd: 89 c2 mov %eax,%edx 230eff: 83 c2 01 add $0x1,%edx 230f02: 89 11 mov %edx,(%rcx) 230f04: 89 45 a4 mov %eax,-0x5c(%rbp) int newLeft = (*treeIndex)++; 230f07: 48 8b 4d 18 mov 0x18(%rbp),%rcx 230f0b: 8b 01 mov (%rcx),%eax 230f0d: 89 c2 mov %eax,%edx 230f0f: 83 c2 01 add $0x1,%edx 230f12: 89 11 mov %edx,(%rcx) 230f14: 89 45 a0 mov %eax,-0x60(%rbp) int level = deep == 0 ? 0 : (int)deep - 1; 230f17: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 230f1b: 0f 85 0d 00 00 00 jne 230f2e 230f21: 31 c0 xor %eax,%eax 230f23: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 230f29: e9 0c 00 00 00 jmp 230f3a 230f2e: 8b 45 ec mov -0x14(%rbp),%eax 230f31: 83 e8 01 sub $0x1,%eax 230f34: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 230f3a: 8b 85 74 ff ff ff mov -0x8c(%rbp),%eax 230f40: 89 45 9c mov %eax,-0x64(%rbp) int currentIndent = indent == -1 ? 0 : indent | (1 << level); 230f43: 83 7d 20 ff cmpl $0xffffffff,0x20(%rbp) 230f47: 0f 85 0d 00 00 00 jne 230f5a 230f4d: 31 c0 xor %eax,%eax 230f4f: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) 230f55: e9 17 00 00 00 jmp 230f71 230f5a: 8b 45 20 mov 0x20(%rbp),%eax 230f5d: 8b 4d 9c mov -0x64(%rbp),%ecx 230f60: ba 01 00 00 00 mov $0x1,%edx 230f65: d3 e2 shl %cl,%edx 230f67: 89 d1 mov %edx,%ecx 230f69: 09 c8 or %ecx,%eax 230f6b: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) 230f71: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 230f77: 89 45 98 mov %eax,-0x68(%rbp) int nextIndent = indent == -1 ? 0 : ((i < size - 1) ? currentIndent : indent); 230f7a: 83 7d 20 ff cmpl $0xffffffff,0x20(%rbp) 230f7e: 0f 85 0d 00 00 00 jne 230f91 230f84: 31 c0 xor %eax,%eax 230f86: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 230f8c: e9 34 00 00 00 jmp 230fc5 230f91: 8b 45 b0 mov -0x50(%rbp),%eax 230f94: 8b 4d b4 mov -0x4c(%rbp),%ecx 230f97: 83 e9 01 sub $0x1,%ecx 230f9a: 39 c8 cmp %ecx,%eax 230f9c: 0f 8d 0e 00 00 00 jge 230fb0 230fa2: 8b 45 98 mov -0x68(%rbp),%eax 230fa5: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) 230fab: e9 09 00 00 00 jmp 230fb9 230fb0: 8b 45 20 mov 0x20(%rbp),%eax 230fb3: 89 85 68 ff ff ff mov %eax,-0x98(%rbp) 230fb9: 8b 85 68 ff ff ff mov -0x98(%rbp),%eax 230fbf: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 230fc5: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 230fcb: 89 45 94 mov %eax,-0x6c(%rbp) unsigned int newLeftBound = proc->tree_index; 230fce: 48 8b 45 a8 mov -0x58(%rbp),%rax 230fd2: 8b 80 18 01 00 00 mov 0x118(%rax),%eax 230fd8: 89 45 90 mov %eax,-0x70(%rbp) unsigned int newRightBound = proc->tree_depth; 230fdb: 48 8b 45 a8 mov -0x58(%rbp),%rax 230fdf: 8b 80 14 01 00 00 mov 0x114(%rax),%eax 230fe5: 89 45 8c mov %eax,-0x74(%rbp) ProcessList_updateTreeSetLayer(this, newLeftBound, newRightBound, deep + 1, proc->tree_left, proc->tree_right, index, treeIndex, nextIndent); 230fe8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 230fec: 8b 75 90 mov -0x70(%rbp),%esi 230fef: 8b 55 8c mov -0x74(%rbp),%edx 230ff2: 8b 4d ec mov -0x14(%rbp),%ecx 230ff5: 83 c1 01 add $0x1,%ecx 230ff8: 48 8b 45 a8 mov -0x58(%rbp),%rax 230ffc: 44 8b 80 0c 01 00 00 mov 0x10c(%rax),%r8d 231003: 48 8b 45 a8 mov -0x58(%rbp),%rax 231007: 44 8b 88 10 01 00 00 mov 0x110(%rax),%r9d 23100e: 4c 8b 5d 10 mov 0x10(%rbp),%r11 231012: 4c 8b 55 18 mov 0x18(%rbp),%r10 231016: 8b 45 94 mov -0x6c(%rbp),%eax 231019: 4c 89 1c 24 mov %r11,(%rsp) 23101d: 4c 89 54 24 08 mov %r10,0x8(%rsp) 231022: 89 44 24 10 mov %eax,0x10(%rsp) 231026: e8 15 fd ff ff call 230d40 int newRight = (*treeIndex)++; 23102b: 48 8b 4d 18 mov 0x18(%rbp),%rcx 23102f: 8b 01 mov (%rcx),%eax 231031: 89 c2 mov %eax,%edx 231033: 83 c2 01 add $0x1,%edx 231036: 89 11 mov %edx,(%rcx) 231038: 89 45 88 mov %eax,-0x78(%rbp) proc->tree_left = newLeft; 23103b: 8b 4d a0 mov -0x60(%rbp),%ecx 23103e: 48 8b 45 a8 mov -0x58(%rbp),%rax 231042: 89 88 0c 01 00 00 mov %ecx,0x10c(%rax) proc->tree_right = newRight; 231048: 8b 4d 88 mov -0x78(%rbp),%ecx 23104b: 48 8b 45 a8 mov -0x58(%rbp),%rax 23104f: 89 88 10 01 00 00 mov %ecx,0x110(%rax) proc->tree_index = idx; 231055: 8b 4d a4 mov -0x5c(%rbp),%ecx 231058: 48 8b 45 a8 mov -0x58(%rbp),%rax 23105c: 89 88 18 01 00 00 mov %ecx,0x118(%rax) proc->tree_depth = deep; 231062: 8b 4d ec mov -0x14(%rbp),%ecx 231065: 48 8b 45 a8 mov -0x58(%rbp),%rax 231069: 89 88 14 01 00 00 mov %ecx,0x114(%rax) if (indent == -1) { 23106f: 83 7d 20 ff cmpl $0xffffffff,0x20(%rbp) 231073: 0f 85 13 00 00 00 jne 23108c proc->indent = 0; 231079: 48 8b 45 a8 mov -0x58(%rbp),%rax 23107d: c7 80 08 01 00 00 00 00 00 00 movl $0x0,0x108(%rax) } else if (i == size - 1) { 231087: e9 37 00 00 00 jmp 2310c3 23108c: 8b 45 b0 mov -0x50(%rbp),%eax 23108f: 8b 4d b4 mov -0x4c(%rbp),%ecx 231092: 83 e9 01 sub $0x1,%ecx 231095: 39 c8 cmp %ecx,%eax 231097: 0f 85 14 00 00 00 jne 2310b1 proc->indent = -currentIndent; 23109d: 31 c9 xor %ecx,%ecx 23109f: 2b 4d 98 sub -0x68(%rbp),%ecx 2310a2: 48 8b 45 a8 mov -0x58(%rbp),%rax 2310a6: 89 88 08 01 00 00 mov %ecx,0x108(%rax) } else { 2310ac: e9 0d 00 00 00 jmp 2310be proc->indent = currentIndent; 2310b1: 8b 4d 98 mov -0x68(%rbp),%ecx 2310b4: 48 8b 45 a8 mov -0x58(%rbp),%rax 2310b8: 89 88 08 01 00 00 mov %ecx,0x108(%rax) 2310be: e9 00 00 00 00 jmp 2310c3 Hashtable_put(this->draftingTreeSet, proc->tree_index, proc); 2310c3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2310c7: 48 8b 78 30 mov 0x30(%rax),%rdi 2310cb: 48 8b 45 a8 mov -0x58(%rbp),%rax 2310cf: 8b b0 18 01 00 00 mov 0x118(%rax),%esi 2310d5: 48 8b 55 a8 mov -0x58(%rbp),%rdx 2310d9: e8 52 df fe ff call 21f030 Hashtable_remove(this->displayTreeSet, newLeftBound); 2310de: 48 8b 45 f8 mov -0x8(%rbp),%rax 2310e2: 48 8b 78 28 mov 0x28(%rax),%rdi 2310e6: 8b 75 90 mov -0x70(%rbp),%esi 2310e9: e8 c2 df fe ff call 21f0b0 for (int i = 0; i < size; i++) { 2310ee: 8b 45 b0 mov -0x50(%rbp),%eax 2310f1: 83 c0 01 add $0x1,%eax 2310f4: 89 45 b0 mov %eax,-0x50(%rbp) 2310f7: e9 df fd ff ff jmp 230edb Vector_delete(layer); 2310fc: 48 8b 7d d8 mov -0x28(%rbp),%rdi 231100: e8 0b 70 00 00 call 238110 } 231105: 48 81 c4 b0 00 00 00 add $0xb0,%rsp 23110c: 5d pop %rbp 23110d: c3 ret 23110e: 66 90 xchg %ax,%ax 0000000000231110 : static inline const ObjectClass* Vector_type(const Vector* this) { 231110: 55 push %rbp 231111: 48 89 e5 mov %rsp,%rbp 231114: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->type; 231118: 48 8b 45 f8 mov -0x8(%rbp),%rax 23111c: 48 8b 40 08 mov 0x8(%rax),%rax 231120: 5d pop %rbp 231121: c3 ret 231122: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23112c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000231130 : static inline void Vector_quickSort(Vector* this) { 231130: 55 push %rbp 231131: 48 89 e5 mov %rsp,%rbp 231134: 48 83 ec 10 sub $0x10,%rsp 231138: 48 89 7d f8 mov %rdi,-0x8(%rbp) Vector_quickSortCustomCompare(this, this->type->compare); 23113c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231140: 48 8b 45 f8 mov -0x8(%rbp),%rax 231144: 48 8b 40 08 mov 0x8(%rax),%rax 231148: 48 8b 70 18 mov 0x18(%rax),%rsi 23114c: e8 0f 71 00 00 call 238260 } 231151: 48 83 c4 10 add $0x10,%rsp 231155: 5d pop %rbp 231156: c3 ret 231157: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000231160 : static inline bool Process_isUserlandThread(const Process* this) { 231160: 55 push %rbp 231161: 48 89 e5 mov %rsp,%rbp 231164: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isUserlandThread; 231168: 48 8b 45 f8 mov -0x8(%rbp),%rax 23116c: 8a 40 31 mov 0x31(%rax),%al 23116f: 24 01 and $0x1,%al 231171: 0f b6 c0 movzbl %al,%eax 231174: 5d pop %rbp 231175: c3 ret 231176: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000231180 : static inline bool Process_isKernelThread(const Process* this) { 231180: 55 push %rbp 231181: 48 89 e5 mov %rsp,%rbp 231184: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isKernelThread; 231188: 48 8b 45 f8 mov -0x8(%rbp),%rax 23118c: 8a 40 30 mov 0x30(%rax),%al 23118f: 24 01 and $0x1,%al 231191: 0f b6 c0 movzbl %al,%eax 231194: 5d pop %rbp 231195: c3 ret 231196: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 00000000002311a0 : static int ProcessList_treeProcessCompareByPID(const void* v1, const void* v2) { 2311a0: 55 push %rbp 2311a1: 48 89 e5 mov %rsp,%rbp 2311a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2311a8: 48 89 75 f0 mov %rsi,-0x10(%rbp) const Process* p1 = (const Process*)v1; 2311ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 2311b0: 48 89 45 e8 mov %rax,-0x18(%rbp) const Process* p2 = (const Process*)v2; 2311b4: 48 8b 45 f0 mov -0x10(%rbp),%rax 2311b8: 48 89 45 e0 mov %rax,-0x20(%rbp) return SPACESHIP_NUMBER(p1->pid, p2->pid); 2311bc: 48 8b 45 e8 mov -0x18(%rbp),%rax 2311c0: 8b 40 18 mov 0x18(%rax),%eax 2311c3: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2311c7: 3b 41 18 cmp 0x18(%rcx),%eax 2311ca: 0f 9f c0 setg %al 2311cd: 24 01 and $0x1,%al 2311cf: 0f b6 c0 movzbl %al,%eax 2311d2: 48 8b 4d e8 mov -0x18(%rbp),%rcx 2311d6: 8b 49 18 mov 0x18(%rcx),%ecx 2311d9: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2311dd: 3b 4a 18 cmp 0x18(%rdx),%ecx 2311e0: 0f 9c c1 setl %cl 2311e3: 80 e1 01 and $0x1,%cl 2311e6: 0f b6 c9 movzbl %cl,%ecx 2311e9: 29 c8 sub %ecx,%eax 2311eb: 5d pop %rbp 2311ec: c3 ret 2311ed: 0f 1f 00 nopl (%rax) 00000000002311f0 : static void ProcessList_buildTreeBranch(ProcessList* this, pid_t pid, int level, int indent, int direction, bool show, int* node_counter, int* node_index) { 2311f0: 55 push %rbp 2311f1: 48 89 e5 mov %rsp,%rbp 2311f4: 48 81 ec 90 00 00 00 sub $0x90,%rsp 2311fb: 44 88 c8 mov %r9b,%al 2311fe: 4c 8b 4d 18 mov 0x18(%rbp),%r9 231202: 4c 8b 4d 10 mov 0x10(%rbp),%r9 231206: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23120a: 89 75 f4 mov %esi,-0xc(%rbp) 23120d: 89 55 f0 mov %edx,-0x10(%rbp) 231210: 89 4d ec mov %ecx,-0x14(%rbp) 231213: 44 89 45 e8 mov %r8d,-0x18(%rbp) 231217: 24 01 and $0x1,%al 231219: 88 45 e7 mov %al,-0x19(%rbp) if (pid == 0) 23121c: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 231220: 0f 85 05 00 00 00 jne 23122b return; 231226: e9 b5 02 00 00 jmp 2314e0 Vector* children = Vector_new(Class(Process), false, DEFAULT_SIZE); 23122b: 48 bf f0 a5 20 00 00 00 00 00 movabs $0x20a5f0,%rdi 231235: 31 f6 xor %esi,%esi 231237: ba ff ff ff ff mov $0xffffffff,%edx 23123c: e8 3f 6e 00 00 call 238080 231241: 48 89 45 d8 mov %rax,-0x28(%rbp) for (int i = Vector_size(this->processes) - 1; i >= 0; i--) { 231245: 48 8b 45 f8 mov -0x8(%rbp),%rax 231249: 48 8b 78 08 mov 0x8(%rax),%rdi 23124d: e8 7e ef ff ff call 2301d0 231252: 83 e8 01 sub $0x1,%eax 231255: 89 45 d4 mov %eax,-0x2c(%rbp) 231258: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) 23125c: 0f 8c 72 00 00 00 jl 2312d4 Process* process = (Process*)Vector_get(this->processes, i); 231262: 48 8b 45 f8 mov -0x8(%rbp),%rax 231266: 48 8b 78 08 mov 0x8(%rax),%rdi 23126a: 8b 75 d4 mov -0x2c(%rbp),%esi 23126d: e8 7e ef ff ff call 2301f0 231272: 48 89 45 c8 mov %rax,-0x38(%rbp) if (process->show && Process_isChildOf(process, pid)) { 231276: 48 8b 45 c8 mov -0x38(%rbp),%rax 23127a: f6 80 ee 00 00 00 01 testb $0x1,0xee(%rax) 231281: 0f 84 3a 00 00 00 je 2312c1 231287: 48 8b 7d c8 mov -0x38(%rbp),%rdi 23128b: 8b 75 f4 mov -0xc(%rbp),%esi 23128e: e8 9d 02 00 00 call 231530 231293: a8 01 test $0x1,%al 231295: 0f 85 05 00 00 00 jne 2312a0 23129b: e9 21 00 00 00 jmp 2312c1 process = (Process*)Vector_take(this->processes, i); 2312a0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2312a4: 48 8b 78 08 mov 0x8(%rax),%rdi 2312a8: 8b 75 d4 mov -0x2c(%rbp),%esi 2312ab: e8 b0 72 00 00 call 238560 2312b0: 48 89 45 c8 mov %rax,-0x38(%rbp) Vector_add(children, process); 2312b4: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2312b8: 48 8b 75 c8 mov -0x38(%rbp),%rsi 2312bc: e8 1f 75 00 00 call 2387e0 } 2312c1: e9 00 00 00 00 jmp 2312c6 for (int i = Vector_size(this->processes) - 1; i >= 0; i--) { 2312c6: 8b 45 d4 mov -0x2c(%rbp),%eax 2312c9: 83 c0 ff add $0xffffffff,%eax 2312cc: 89 45 d4 mov %eax,-0x2c(%rbp) 2312cf: e9 84 ff ff ff jmp 231258 int size = Vector_size(children); 2312d4: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2312d8: e8 f3 ee ff ff call 2301d0 2312dd: 89 45 c4 mov %eax,-0x3c(%rbp) for (int i = 0; i < size; i++) { 2312e0: c7 45 c0 00 00 00 00 movl $0x0,-0x40(%rbp) 2312e7: 8b 45 c0 mov -0x40(%rbp),%eax 2312ea: 3b 45 c4 cmp -0x3c(%rbp),%eax 2312ed: 0f 8d e4 01 00 00 jge 2314d7 int index = (*node_index)++; 2312f3: 48 8b 4d 18 mov 0x18(%rbp),%rcx 2312f7: 8b 01 mov (%rcx),%eax 2312f9: 89 c2 mov %eax,%edx 2312fb: 83 c2 01 add $0x1,%edx 2312fe: 89 11 mov %edx,(%rcx) 231300: 89 45 bc mov %eax,-0x44(%rbp) Process* process = (Process*)Vector_get(children, i); 231303: 48 8b 7d d8 mov -0x28(%rbp),%rdi 231307: 8b 75 c0 mov -0x40(%rbp),%esi 23130a: e8 e1 ee ff ff call 2301f0 23130f: 48 89 45 b0 mov %rax,-0x50(%rbp) int lft = (*node_counter)++; 231313: 48 8b 4d 10 mov 0x10(%rbp),%rcx 231317: 8b 01 mov (%rcx),%eax 231319: 89 c2 mov %eax,%edx 23131b: 83 c2 01 add $0x1,%edx 23131e: 89 11 mov %edx,(%rcx) 231320: 89 45 ac mov %eax,-0x54(%rbp) if (!show) { 231323: f6 45 e7 01 testb $0x1,-0x19(%rbp) 231327: 0f 85 0b 00 00 00 jne 231338 process->show = false; 23132d: 48 8b 45 b0 mov -0x50(%rbp),%rax 231331: c6 80 ee 00 00 00 00 movb $0x0,0xee(%rax) int s = Vector_size(this->processes2); 231338: 48 8b 45 f8 mov -0x8(%rbp),%rax 23133c: 48 8b 78 10 mov 0x10(%rax),%rdi 231340: e8 8b ee ff ff call 2301d0 231345: 89 45 a8 mov %eax,-0x58(%rbp) if (direction == 1) { 231348: 83 7d e8 01 cmpl $0x1,-0x18(%rbp) 23134c: 0f 85 16 00 00 00 jne 231368 Vector_add(this->processes2, process); 231352: 48 8b 45 f8 mov -0x8(%rbp),%rax 231356: 48 8b 78 10 mov 0x10(%rax),%rdi 23135a: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23135e: e8 7d 74 00 00 call 2387e0 } else { 231363: e9 13 00 00 00 jmp 23137b Vector_insert(this->processes2, 0, process); 231368: 48 8b 45 f8 mov -0x8(%rbp),%rax 23136c: 48 8b 78 10 mov 0x10(%rax),%rdi 231370: 48 8b 55 b0 mov -0x50(%rbp),%rdx 231374: 31 f6 xor %esi,%esi 231376: e8 c5 70 00 00 call 238440 int nextIndent = indent | (1 << level); 23137b: 8b 45 ec mov -0x14(%rbp),%eax 23137e: 8b 4d f0 mov -0x10(%rbp),%ecx 231381: ba 01 00 00 00 mov $0x1,%edx 231386: d3 e2 shl %cl,%edx 231388: 89 d1 mov %edx,%ecx 23138a: 09 c8 or %ecx,%eax 23138c: 89 45 a4 mov %eax,-0x5c(%rbp) ProcessList_buildTreeBranch(this, process->pid, level + 1, (i < size - 1) ? nextIndent : indent, direction, show ? process->showChildren : false, node_counter, node_index); 23138f: 48 8b 45 f8 mov -0x8(%rbp),%rax 231393: 48 89 45 90 mov %rax,-0x70(%rbp) 231397: 48 8b 45 b0 mov -0x50(%rbp),%rax 23139b: 8b 40 18 mov 0x18(%rax),%eax 23139e: 89 45 98 mov %eax,-0x68(%rbp) 2313a1: 8b 45 f0 mov -0x10(%rbp),%eax 2313a4: 83 c0 01 add $0x1,%eax 2313a7: 89 45 9c mov %eax,-0x64(%rbp) 2313aa: 8b 45 c0 mov -0x40(%rbp),%eax 2313ad: 8b 4d c4 mov -0x3c(%rbp),%ecx 2313b0: 83 e9 01 sub $0x1,%ecx 2313b3: 39 c8 cmp %ecx,%eax 2313b5: 0f 8d 0b 00 00 00 jge 2313c6 2313bb: 8b 45 a4 mov -0x5c(%rbp),%eax 2313be: 89 45 8c mov %eax,-0x74(%rbp) 2313c1: e9 06 00 00 00 jmp 2313cc 2313c6: 8b 45 ec mov -0x14(%rbp),%eax 2313c9: 89 45 8c mov %eax,-0x74(%rbp) 2313cc: 8b 45 8c mov -0x74(%rbp),%eax 2313cf: 89 45 84 mov %eax,-0x7c(%rbp) 2313d2: 8b 45 e8 mov -0x18(%rbp),%eax 2313d5: 89 45 88 mov %eax,-0x78(%rbp) 2313d8: f6 45 e7 01 testb $0x1,-0x19(%rbp) 2313dc: 0f 84 17 00 00 00 je 2313f9 2313e2: 48 8b 45 b0 mov -0x50(%rbp),%rax 2313e6: 8a 80 f0 00 00 00 mov 0xf0(%rax),%al 2313ec: 24 01 and $0x1,%al 2313ee: 0f b6 c0 movzbl %al,%eax 2313f1: 89 45 80 mov %eax,-0x80(%rbp) 2313f4: e9 0a 00 00 00 jmp 231403 2313f9: 31 c0 xor %eax,%eax 2313fb: 89 45 80 mov %eax,-0x80(%rbp) 2313fe: e9 00 00 00 00 jmp 231403 231403: 44 8b 45 88 mov -0x78(%rbp),%r8d 231407: 8b 4d 84 mov -0x7c(%rbp),%ecx 23140a: 8b 55 9c mov -0x64(%rbp),%edx 23140d: 8b 75 98 mov -0x68(%rbp),%esi 231410: 48 8b 7d 90 mov -0x70(%rbp),%rdi 231414: 8b 45 80 mov -0x80(%rbp),%eax 231417: 83 f8 00 cmp $0x0,%eax 23141a: 0f 95 c0 setne %al 23141d: 4c 8b 55 10 mov 0x10(%rbp),%r10 231421: 4c 8b 5d 18 mov 0x18(%rbp),%r11 231425: 49 89 e1 mov %rsp,%r9 231428: 4d 89 59 08 mov %r11,0x8(%r9) 23142c: 4d 89 11 mov %r10,(%r9) 23142f: 44 0f b6 c8 movzbl %al,%r9d 231433: 41 83 e1 01 and $0x1,%r9d 231437: e8 b4 fd ff ff call 2311f0 if (i == size - 1) { 23143c: 8b 45 c0 mov -0x40(%rbp),%eax 23143f: 8b 4d c4 mov -0x3c(%rbp),%ecx 231442: 83 e9 01 sub $0x1,%ecx 231445: 39 c8 cmp %ecx,%eax 231447: 0f 85 14 00 00 00 jne 231461 process->indent = -nextIndent; 23144d: 31 c9 xor %ecx,%ecx 23144f: 2b 4d a4 sub -0x5c(%rbp),%ecx 231452: 48 8b 45 b0 mov -0x50(%rbp),%rax 231456: 89 88 08 01 00 00 mov %ecx,0x108(%rax) } else { 23145c: e9 0d 00 00 00 jmp 23146e process->indent = nextIndent; 231461: 8b 4d a4 mov -0x5c(%rbp),%ecx 231464: 48 8b 45 b0 mov -0x50(%rbp),%rax 231468: 89 88 08 01 00 00 mov %ecx,0x108(%rax) int rht = (*node_counter)++; 23146e: 48 8b 4d 10 mov 0x10(%rbp),%rcx 231472: 8b 01 mov (%rcx),%eax 231474: 89 c2 mov %eax,%edx 231476: 83 c2 01 add $0x1,%edx 231479: 89 11 mov %edx,(%rcx) 23147b: 89 45 a0 mov %eax,-0x60(%rbp) process->tree_left = lft; 23147e: 8b 4d ac mov -0x54(%rbp),%ecx 231481: 48 8b 45 b0 mov -0x50(%rbp),%rax 231485: 89 88 0c 01 00 00 mov %ecx,0x10c(%rax) process->tree_right = rht; 23148b: 8b 4d a0 mov -0x60(%rbp),%ecx 23148e: 48 8b 45 b0 mov -0x50(%rbp),%rax 231492: 89 88 10 01 00 00 mov %ecx,0x110(%rax) process->tree_depth = level + 1; 231498: 8b 4d f0 mov -0x10(%rbp),%ecx 23149b: 83 c1 01 add $0x1,%ecx 23149e: 48 8b 45 b0 mov -0x50(%rbp),%rax 2314a2: 89 88 14 01 00 00 mov %ecx,0x114(%rax) process->tree_index = index; 2314a8: 8b 4d bc mov -0x44(%rbp),%ecx 2314ab: 48 8b 45 b0 mov -0x50(%rbp),%rax 2314af: 89 88 18 01 00 00 mov %ecx,0x118(%rax) Hashtable_put(this->displayTreeSet, index, process); 2314b5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2314b9: 48 8b 78 28 mov 0x28(%rax),%rdi 2314bd: 8b 75 bc mov -0x44(%rbp),%esi 2314c0: 48 8b 55 b0 mov -0x50(%rbp),%rdx 2314c4: e8 67 db fe ff call 21f030 for (int i = 0; i < size; i++) { 2314c9: 8b 45 c0 mov -0x40(%rbp),%eax 2314cc: 83 c0 01 add $0x1,%eax 2314cf: 89 45 c0 mov %eax,-0x40(%rbp) 2314d2: e9 10 fe ff ff jmp 2312e7 Vector_delete(children); 2314d7: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2314db: e8 30 6c 00 00 call 238110 } 2314e0: 48 81 c4 90 00 00 00 add $0x90,%rsp 2314e7: 5d pop %rbp 2314e8: c3 ret 2314e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002314f0 : static inline pid_t Process_getParentPid(const Process* this) { 2314f0: 55 push %rbp 2314f1: 48 89 e5 mov %rsp,%rbp 2314f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->tgid == this->pid ? this->ppid : this->tgid; 2314f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2314fc: 8b 40 20 mov 0x20(%rax),%eax 2314ff: 48 8b 4d f8 mov -0x8(%rbp),%rcx 231503: 3b 41 18 cmp 0x18(%rcx),%eax 231506: 0f 85 0f 00 00 00 jne 23151b 23150c: 48 8b 45 f8 mov -0x8(%rbp),%rax 231510: 8b 40 1c mov 0x1c(%rax),%eax 231513: 89 45 f4 mov %eax,-0xc(%rbp) 231516: e9 0a 00 00 00 jmp 231525 23151b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23151f: 8b 40 20 mov 0x20(%rax),%eax 231522: 89 45 f4 mov %eax,-0xc(%rbp) 231525: 8b 45 f4 mov -0xc(%rbp),%eax 231528: 5d pop %rbp 231529: c3 ret 23152a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000231530 : static inline bool Process_isChildOf(const Process* this, pid_t pid) { 231530: 55 push %rbp 231531: 48 89 e5 mov %rsp,%rbp 231534: 48 83 ec 10 sub $0x10,%rsp 231538: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23153c: 89 75 f4 mov %esi,-0xc(%rbp) return pid == Process_getParentPid(this); 23153f: 8b 45 f4 mov -0xc(%rbp),%eax 231542: 89 45 f0 mov %eax,-0x10(%rbp) 231545: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231549: e8 a2 ff ff ff call 2314f0 23154e: 89 c1 mov %eax,%ecx 231550: 8b 45 f0 mov -0x10(%rbp),%eax 231553: 39 c8 cmp %ecx,%eax 231555: 0f 94 c0 sete %al 231558: 24 01 and $0x1,%al 23155a: 0f b6 c0 movzbl %al,%eax 23155d: 48 83 c4 10 add $0x10,%rsp 231561: 5d pop %rbp 231562: c3 ret 231563: cc int3 231564: cc int3 231565: cc int3 231566: cc int3 231567: cc int3 231568: cc int3 231569: cc int3 23156a: cc int3 23156b: cc int3 23156c: cc int3 23156d: cc int3 23156e: cc int3 23156f: cc int3 0000000000231570 : #include "ProvideCurses.h" #include "Vector.h" #include "XUtils.h" ProcessLocksScreen* ProcessLocksScreen_new(const Process* process) { 231570: 55 push %rbp 231571: 48 89 e5 mov %rsp,%rbp 231574: 48 83 ec 10 sub $0x10,%rsp 231578: 48 89 7d f8 mov %rdi,-0x8(%rbp) ProcessLocksScreen* this = xMalloc(sizeof(ProcessLocksScreen)); 23157c: bf 30 00 00 00 mov $0x30,%edi 231581: e8 da 74 00 00 call 238a60 231586: 48 89 45 f0 mov %rax,-0x10(%rbp) Object_setClass(this, Class(ProcessLocksScreen)); 23158a: 48 8b 45 f0 mov -0x10(%rbp),%rax 23158e: 48 b9 28 a6 20 00 00 00 00 00 movabs $0x20a628,%rcx 231598: 48 89 08 mov %rcx,(%rax) if (Process_isThread(process)) 23159b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23159f: e8 5c 00 00 00 call 231600 2315a4: a8 01 test $0x1,%al 2315a6: 0f 85 05 00 00 00 jne 2315b1 2315ac: e9 13 00 00 00 jmp 2315c4 this->pid = process->tgid; 2315b1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2315b5: 8b 48 20 mov 0x20(%rax),%ecx 2315b8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2315bc: 89 48 28 mov %ecx,0x28(%rax) 2315bf: e9 0e 00 00 00 jmp 2315d2 else this->pid = process->pid; 2315c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2315c8: 8b 48 18 mov 0x18(%rax),%ecx 2315cb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2315cf: 89 48 28 mov %ecx,0x28(%rax) return (ProcessLocksScreen*) InfoScreen_init(&this->super, process, NULL, LINES - 2, " ID TYPE EXCLUSION READ/WRITE DEVICE:INODE START END FILENAME"); 2315d2: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2315d6: 48 8b 75 f8 mov -0x8(%rbp),%rsi 2315da: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 2315e1: 83 e9 02 sub $0x2,%ecx 2315e4: 31 c0 xor %eax,%eax 2315e6: 89 c2 mov %eax,%edx 2315e8: 49 b8 d8 37 20 00 00 00 00 00 movabs $0x2037d8,%r8 2315f2: e8 69 fd fe ff call 221360 2315f7: 48 83 c4 10 add $0x10,%rsp 2315fb: 5d pop %rbp 2315fc: c3 ret 2315fd: 0f 1f 00 nopl (%rax) 0000000000231600 : static inline bool Process_isThread(const Process* this) { 231600: 55 push %rbp 231601: 48 89 e5 mov %rsp,%rbp 231604: 48 83 ec 10 sub $0x10,%rsp 231608: 48 89 7d f8 mov %rdi,-0x8(%rbp) return Process_isUserlandThread(this) || Process_isKernelThread(this); 23160c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231610: e8 ab 05 00 00 call 231bc0 231615: 88 c1 mov %al,%cl 231617: b0 01 mov $0x1,%al 231619: f6 c1 01 test $0x1,%cl 23161c: 88 45 f7 mov %al,-0x9(%rbp) 23161f: 0f 85 0c 00 00 00 jne 231631 231625: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231629: e8 b2 05 00 00 call 231be0 23162e: 88 45 f7 mov %al,-0x9(%rbp) 231631: 8a 45 f7 mov -0x9(%rbp),%al 231634: 24 01 and $0x1,%al 231636: 0f b6 c0 movzbl %al,%eax 231639: 48 83 c4 10 add $0x10,%rsp 23163d: 5d pop %rbp 23163e: c3 ret 23163f: 90 nop 0000000000231640 : } void ProcessLocksScreen_delete(Object* this) { 231640: 55 push %rbp 231641: 48 89 e5 mov %rsp,%rbp 231644: 48 83 ec 10 sub $0x10,%rsp 231648: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(InfoScreen_done((InfoScreen*)this)); 23164c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231650: e8 1b fe fe ff call 221470 231655: 48 89 c7 mov %rax,%rdi 231658: e8 03 cb 00 00 call 23e160 } 23165d: 48 83 c4 10 add $0x10,%rsp 231661: 5d pop %rbp 231662: c3 ret 231663: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23166d: 0f 1f 00 nopl (%rax) 0000000000231670 : free(data->exclusive); free(data->readwrite); free(data->filename); } static void ProcessLocksScreen_scan(InfoScreen* this) { 231670: 55 push %rbp 231671: 48 89 e5 mov %rsp,%rbp 231674: 41 57 push %r15 231676: 41 56 push %r14 231678: 41 54 push %r12 23167a: 53 push %rbx 23167b: 48 81 ec 20 03 00 00 sub $0x320,%rsp 231682: 48 8b 05 a7 11 01 00 mov 0x111a7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231689: 48 89 45 d8 mov %rax,-0x28(%rbp) 23168d: 48 89 bd c8 fd ff ff mov %rdi,-0x238(%rbp) Panel* panel = this->display; 231694: 48 8b 85 c8 fd ff ff mov -0x238(%rbp),%rax 23169b: 48 8b 40 10 mov 0x10(%rax),%rax 23169f: 48 89 85 c0 fd ff ff mov %rax,-0x240(%rbp) int idx = Panel_getSelectedIndex(panel); 2316a6: 48 8b bd c0 fd ff ff mov -0x240(%rbp),%rdi 2316ad: e8 ce 6a ff ff call 228180 2316b2: 89 85 bc fd ff ff mov %eax,-0x244(%rbp) Panel_prune(panel); 2316b8: 48 8b bd c0 fd ff ff mov -0x240(%rbp),%rdi 2316bf: e8 cc 67 ff ff call 227e90 FileLocks_ProcessData* pdata = Platform_getProcessLocks(((ProcessLocksScreen*)this)->pid); 2316c4: 48 8b 85 c8 fd ff ff mov -0x238(%rbp),%rax 2316cb: 8b 78 28 mov 0x28(%rax),%edi 2316ce: e8 5d 89 00 00 call 23a030 2316d3: 48 89 85 b0 fd ff ff mov %rax,-0x250(%rbp) if (!pdata) { 2316da: 48 83 bd b0 fd ff ff 00 cmpq $0x0,-0x250(%rbp) 2316e2: 0f 85 1b 00 00 00 jne 231703 InfoScreen_addLine(this, "This feature is not supported on your platform."); 2316e8: 48 8b bd c8 fd ff ff mov -0x238(%rbp),%rdi 2316ef: 48 be 71 69 20 00 00 00 00 00 movabs $0x206971,%rsi 2316f9: e8 b2 ff fe ff call 2216b0 } else if (pdata->error) { 2316fe: e9 c2 03 00 00 jmp 231ac5 231703: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 23170a: f6 00 01 testb $0x1,(%rax) 23170d: 0f 84 1b 00 00 00 je 23172e InfoScreen_addLine(this, "Could not determine file locks."); 231713: 48 8b bd c8 fd ff ff mov -0x238(%rbp),%rdi 23171a: 48 be 90 4f 20 00 00 00 00 00 movabs $0x204f90,%rsi 231724: e8 87 ff fe ff call 2216b0 } else { 231729: e9 92 03 00 00 jmp 231ac0 FileLocks_LockData* ldata = pdata->locks; 23172e: 48 8b 85 b0 fd ff ff mov -0x250(%rbp),%rax 231735: 48 8b 40 08 mov 0x8(%rax),%rax 231739: 48 89 85 a8 fd ff ff mov %rax,-0x258(%rbp) if (!ldata) { 231740: 48 83 bd a8 fd ff ff 00 cmpq $0x0,-0x258(%rbp) 231748: 0f 85 16 00 00 00 jne 231764 InfoScreen_addLine(this, "No locks have been found for the selected process."); 23174e: 48 8b bd c8 fd ff ff mov -0x238(%rbp),%rdi 231755: 48 be 1d 36 20 00 00 00 00 00 movabs $0x20361d,%rsi 23175f: e8 4c ff fe ff call 2216b0 } while (ldata) { 231764: e9 00 00 00 00 jmp 231769 231769: 48 83 bd a8 fd ff ff 00 cmpq $0x0,-0x258(%rbp) 231771: 0f 84 44 03 00 00 je 231abb FileLocks_Data* data = &ldata->data; 231777: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 23177e: 48 89 85 a0 fd ff ff mov %rax,-0x260(%rbp) char entry[512]; if (ULLONG_MAX == data->end) { 231785: 48 8b 8d a0 fd ff ff mov -0x260(%rbp),%rcx 23178c: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 231793: 48 3b 41 40 cmp 0x40(%rcx),%rax 231797: 0f 85 62 01 00 00 jne 2318ff xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20s %s", 23179d: 48 8d 85 d0 fd ff ff lea -0x230(%rbp),%rax 2317a4: 48 89 85 58 fd ff ff mov %rax,-0x2a8(%rbp) data->id, 2317ab: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2317b2: 8b 40 20 mov 0x20(%rax),%eax 2317b5: 89 85 64 fd ff ff mov %eax,-0x29c(%rbp) data->locktype, data->exclusive, data->readwrite, 2317bb: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2317c2: 48 8b 00 mov (%rax),%rax 2317c5: 48 89 85 68 fd ff ff mov %rax,-0x298(%rbp) 2317cc: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2317d3: 48 8b 40 08 mov 0x8(%rax),%rax 2317d7: 48 89 85 70 fd ff ff mov %rax,-0x290(%rbp) 2317de: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2317e5: 48 8b 40 10 mov 0x10(%rax),%rax 2317e9: 48 89 85 78 fd ff ff mov %rax,-0x288(%rbp) data->dev[0], data->dev[1], data->inode, 2317f0: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2317f7: 8b 40 24 mov 0x24(%rax),%eax 2317fa: 89 85 80 fd ff ff mov %eax,-0x280(%rbp) 231800: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231807: 8b 40 28 mov 0x28(%rax),%eax 23180a: 89 85 84 fd ff ff mov %eax,-0x27c(%rbp) 231810: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231817: 48 8b 40 30 mov 0x30(%rax),%rax 23181b: 48 89 85 88 fd ff ff mov %rax,-0x278(%rbp) data->start, "", 231822: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231829: 48 8b 40 38 mov 0x38(%rax),%rax 23182d: 48 89 85 90 fd ff ff mov %rax,-0x270(%rbp) data->filename ? data->filename : "" 231834: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 23183b: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 231840: 0f 84 17 00 00 00 je 23185d 231846: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 23184d: 48 8b 40 18 mov 0x18(%rax),%rax 231851: 48 89 85 50 fd ff ff mov %rax,-0x2b0(%rbp) 231858: e9 16 00 00 00 jmp 231873 23185d: 48 b8 50 36 20 00 00 00 00 00 movabs $0x203650,%rax 231867: 48 89 85 50 fd ff ff mov %rax,-0x2b0(%rbp) 23186e: e9 00 00 00 00 jmp 231873 231873: 4c 8b 9d 90 fd ff ff mov -0x270(%rbp),%r11 23187a: 48 8b 9d 88 fd ff ff mov -0x278(%rbp),%rbx 231881: 44 8b b5 84 fd ff ff mov -0x27c(%rbp),%r14d 231888: 44 8b bd 80 fd ff ff mov -0x280(%rbp),%r15d 23188f: 4c 8b a5 78 fd ff ff mov -0x288(%rbp),%r12 231896: 4c 8b 8d 70 fd ff ff mov -0x290(%rbp),%r9 23189d: 4c 8b 85 68 fd ff ff mov -0x298(%rbp),%r8 2318a4: 8b 8d 64 fd ff ff mov -0x29c(%rbp),%ecx 2318aa: 48 8b bd 58 fd ff ff mov -0x2a8(%rbp),%rdi 2318b1: 48 8b 85 50 fd ff ff mov -0x2b0(%rbp),%rax xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20s %s", 2318b8: be 00 02 00 00 mov $0x200,%esi 2318bd: 48 ba 92 4a 20 00 00 00 00 00 movabs $0x204a92,%rdx 2318c7: 49 ba ca 4a 20 00 00 00 00 00 movabs $0x204aca,%r10 2318d1: 4c 89 24 24 mov %r12,(%rsp) 2318d5: 44 89 7c 24 08 mov %r15d,0x8(%rsp) 2318da: 44 89 74 24 10 mov %r14d,0x10(%rsp) 2318df: 48 89 5c 24 18 mov %rbx,0x18(%rsp) 2318e4: 4c 89 5c 24 20 mov %r11,0x20(%rsp) 2318e9: 4c 89 54 24 28 mov %r10,0x28(%rsp) 2318ee: 48 89 44 24 30 mov %rax,0x30(%rsp) 2318f3: b0 00 mov $0x0,%al 2318f5: e8 f6 7b 00 00 call 2394f0 ); } else { 2318fa: e9 6c 01 00 00 jmp 231a6b xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20"PRIu64" %s", 2318ff: 48 8d 85 d0 fd ff ff lea -0x230(%rbp),%rax 231906: 48 89 85 08 fd ff ff mov %rax,-0x2f8(%rbp) data->id, 23190d: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231914: 8b 40 20 mov 0x20(%rax),%eax 231917: 89 85 14 fd ff ff mov %eax,-0x2ec(%rbp) data->locktype, data->exclusive, data->readwrite, 23191d: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231924: 48 8b 00 mov (%rax),%rax 231927: 48 89 85 18 fd ff ff mov %rax,-0x2e8(%rbp) 23192e: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231935: 48 8b 40 08 mov 0x8(%rax),%rax 231939: 48 89 85 20 fd ff ff mov %rax,-0x2e0(%rbp) 231940: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231947: 48 8b 40 10 mov 0x10(%rax),%rax 23194b: 48 89 85 28 fd ff ff mov %rax,-0x2d8(%rbp) data->dev[0], data->dev[1], data->inode, 231952: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231959: 8b 40 24 mov 0x24(%rax),%eax 23195c: 89 85 30 fd ff ff mov %eax,-0x2d0(%rbp) 231962: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231969: 8b 40 28 mov 0x28(%rax),%eax 23196c: 89 85 34 fd ff ff mov %eax,-0x2cc(%rbp) 231972: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 231979: 48 8b 40 30 mov 0x30(%rax),%rax 23197d: 48 89 85 38 fd ff ff mov %rax,-0x2c8(%rbp) data->start, data->end, 231984: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 23198b: 48 8b 40 38 mov 0x38(%rax),%rax 23198f: 48 89 85 40 fd ff ff mov %rax,-0x2c0(%rbp) 231996: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 23199d: 48 8b 40 40 mov 0x40(%rax),%rax 2319a1: 48 89 85 48 fd ff ff mov %rax,-0x2b8(%rbp) data->filename ? data->filename : "" 2319a8: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2319af: 48 83 78 18 00 cmpq $0x0,0x18(%rax) 2319b4: 0f 84 17 00 00 00 je 2319d1 2319ba: 48 8b 85 a0 fd ff ff mov -0x260(%rbp),%rax 2319c1: 48 8b 40 18 mov 0x18(%rax),%rax 2319c5: 48 89 85 00 fd ff ff mov %rax,-0x300(%rbp) 2319cc: e9 16 00 00 00 jmp 2319e7 2319d1: 48 b8 50 36 20 00 00 00 00 00 movabs $0x203650,%rax 2319db: 48 89 85 00 fd ff ff mov %rax,-0x300(%rbp) 2319e2: e9 00 00 00 00 jmp 2319e7 2319e7: 4c 8b 95 48 fd ff ff mov -0x2b8(%rbp),%r10 2319ee: 4c 8b 9d 40 fd ff ff mov -0x2c0(%rbp),%r11 2319f5: 48 8b 9d 38 fd ff ff mov -0x2c8(%rbp),%rbx 2319fc: 44 8b b5 34 fd ff ff mov -0x2cc(%rbp),%r14d 231a03: 44 8b bd 30 fd ff ff mov -0x2d0(%rbp),%r15d 231a0a: 4c 8b a5 28 fd ff ff mov -0x2d8(%rbp),%r12 231a11: 4c 8b 8d 20 fd ff ff mov -0x2e0(%rbp),%r9 231a18: 4c 8b 85 18 fd ff ff mov -0x2e8(%rbp),%r8 231a1f: 8b 8d 14 fd ff ff mov -0x2ec(%rbp),%ecx 231a25: 48 8b bd 08 fd ff ff mov -0x2f8(%rbp),%rdi 231a2c: 48 8b 85 00 fd ff ff mov -0x300(%rbp),%rax xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20"PRIu64" %s", 231a33: be 00 02 00 00 mov $0x200,%esi 231a38: 48 ba 64 5e 20 00 00 00 00 00 movabs $0x205e64,%rdx 231a42: 4c 89 24 24 mov %r12,(%rsp) 231a46: 44 89 7c 24 08 mov %r15d,0x8(%rsp) 231a4b: 44 89 74 24 10 mov %r14d,0x10(%rsp) 231a50: 48 89 5c 24 18 mov %rbx,0x18(%rsp) 231a55: 4c 89 5c 24 20 mov %r11,0x20(%rsp) 231a5a: 4c 89 54 24 28 mov %r10,0x28(%rsp) 231a5f: 48 89 44 24 30 mov %rax,0x30(%rsp) 231a64: b0 00 mov $0x0,%al 231a66: e8 85 7a 00 00 call 2394f0 ); } InfoScreen_addLine(this, entry); 231a6b: 48 8b bd c8 fd ff ff mov -0x238(%rbp),%rdi 231a72: 48 8d b5 d0 fd ff ff lea -0x230(%rbp),%rsi 231a79: e8 32 fc fe ff call 2216b0 FileLocks_Data_clear(&ldata->data); 231a7e: 48 8b bd a8 fd ff ff mov -0x258(%rbp),%rdi 231a85: e8 76 01 00 00 call 231c00 FileLocks_LockData* old = ldata; 231a8a: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 231a91: 48 89 85 98 fd ff ff mov %rax,-0x268(%rbp) ldata = ldata->next; 231a98: 48 8b 85 a8 fd ff ff mov -0x258(%rbp),%rax 231a9f: 48 8b 40 48 mov 0x48(%rax),%rax 231aa3: 48 89 85 a8 fd ff ff mov %rax,-0x258(%rbp) free(old); 231aaa: 48 8b bd 98 fd ff ff mov -0x268(%rbp),%rdi 231ab1: e8 aa c6 00 00 call 23e160 while (ldata) { 231ab6: e9 ae fc ff ff jmp 231769 231abb: e9 00 00 00 00 jmp 231ac0 231ac0: e9 00 00 00 00 jmp 231ac5 } } free(pdata); 231ac5: 48 8b bd b0 fd ff ff mov -0x250(%rbp),%rdi 231acc: e8 8f c6 00 00 call 23e160 Vector_insertionSort(this->lines); 231ad1: 48 8b 85 c8 fd ff ff mov -0x238(%rbp),%rax 231ad8: 48 8b 78 20 mov 0x20(%rax),%rdi 231adc: e8 4f 68 00 00 call 238330 Vector_insertionSort(panel->items); 231ae1: 48 8b 85 c0 fd ff ff mov -0x240(%rbp),%rax 231ae8: 48 8b 78 18 mov 0x18(%rax),%rdi 231aec: e8 3f 68 00 00 call 238330 Panel_setSelected(panel, idx); 231af1: 48 8b bd c0 fd ff ff mov -0x240(%rbp),%rdi 231af8: 8b b5 bc fd ff ff mov -0x244(%rbp),%esi 231afe: e8 bd 66 ff ff call 2281c0 231b03: 48 8b 05 26 0d 01 00 mov 0x10d26(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231b0a: 48 8b 4d d8 mov -0x28(%rbp),%rcx 231b0e: 48 39 c8 cmp %rcx,%rax 231b11: 0f 85 10 00 00 00 jne 231b27 } 231b17: 48 81 c4 20 03 00 00 add $0x320,%rsp 231b1e: 5b pop %rbx 231b1f: 41 5c pop %r12 231b21: 41 5e pop %r14 231b23: 41 5f pop %r15 231b25: 5d pop %rbp 231b26: c3 ret 231b27: e8 14 c6 00 00 call 23e140 <__stack_chk_fail@plt> 231b2c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000231b30 : static void ProcessLocksScreen_draw(InfoScreen* this) { 231b30: 55 push %rbp 231b31: 48 89 e5 mov %rsp,%rbp 231b34: 48 83 ec 20 sub $0x20,%rsp 231b38: 48 89 7d f8 mov %rdi,-0x8(%rbp) InfoScreen_drawTitled(this, "Snapshot of file locks of process %d - %s", ((ProcessLocksScreen*)this)->pid, Process_getCommand(this->process)); 231b3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 231b40: 48 89 45 e8 mov %rax,-0x18(%rbp) 231b44: 48 8b 45 f8 mov -0x8(%rbp),%rax 231b48: 8b 40 28 mov 0x28(%rax),%eax 231b4b: 89 45 f4 mov %eax,-0xc(%rbp) 231b4e: 48 8b 45 f8 mov -0x8(%rbp),%rax 231b52: 48 8b 40 08 mov 0x8(%rax),%rax 231b56: 48 8b 00 mov (%rax),%rax 231b59: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 231b5e: 0f 84 22 00 00 00 je 231b86 231b64: 48 8b 45 f8 mov -0x8(%rbp),%rax 231b68: 48 8b 40 08 mov 0x8(%rax),%rax 231b6c: 48 8b 00 mov (%rax),%rax 231b6f: 48 8b 40 30 mov 0x30(%rax),%rax 231b73: 48 8b 4d f8 mov -0x8(%rbp),%rcx 231b77: 48 8b 79 08 mov 0x8(%rcx),%rdi 231b7b: ff d0 call *%rax 231b7d: 48 89 45 e0 mov %rax,-0x20(%rbp) 231b81: e9 11 00 00 00 jmp 231b97 231b86: 48 8b 45 f8 mov -0x8(%rbp),%rax 231b8a: 48 8b 78 08 mov 0x8(%rax),%rdi 231b8e: e8 ed c7 ff ff call 22e380 231b93: 48 89 45 e0 mov %rax,-0x20(%rbp) 231b97: 8b 55 f4 mov -0xc(%rbp),%edx 231b9a: 48 8b 7d e8 mov -0x18(%rbp),%rdi 231b9e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 231ba2: 48 be 9d 5e 20 00 00 00 00 00 movabs $0x205e9d,%rsi 231bac: b0 00 mov $0x0,%al 231bae: e8 fd f8 fe ff call 2214b0 } 231bb3: 48 83 c4 20 add $0x20,%rsp 231bb7: 5d pop %rbp 231bb8: c3 ret 231bb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000231bc0 : static inline bool Process_isUserlandThread(const Process* this) { 231bc0: 55 push %rbp 231bc1: 48 89 e5 mov %rsp,%rbp 231bc4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isUserlandThread; 231bc8: 48 8b 45 f8 mov -0x8(%rbp),%rax 231bcc: 8a 40 31 mov 0x31(%rax),%al 231bcf: 24 01 and $0x1,%al 231bd1: 0f b6 c0 movzbl %al,%eax 231bd4: 5d pop %rbp 231bd5: c3 ret 231bd6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000231be0 : static inline bool Process_isKernelThread(const Process* this) { 231be0: 55 push %rbp 231be1: 48 89 e5 mov %rsp,%rbp 231be4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isKernelThread; 231be8: 48 8b 45 f8 mov -0x8(%rbp),%rax 231bec: 8a 40 30 mov 0x30(%rax),%al 231bef: 24 01 and $0x1,%al 231bf1: 0f b6 c0 movzbl %al,%eax 231bf4: 5d pop %rbp 231bf5: c3 ret 231bf6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000231c00 : static inline void FileLocks_Data_clear(FileLocks_Data* data) { 231c00: 55 push %rbp 231c01: 48 89 e5 mov %rsp,%rbp 231c04: 48 83 ec 10 sub $0x10,%rsp 231c08: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(data->locktype); 231c0c: 48 8b 45 f8 mov -0x8(%rbp),%rax 231c10: 48 8b 38 mov (%rax),%rdi 231c13: e8 48 c5 00 00 call 23e160 free(data->exclusive); 231c18: 48 8b 45 f8 mov -0x8(%rbp),%rax 231c1c: 48 8b 78 08 mov 0x8(%rax),%rdi 231c20: e8 3b c5 00 00 call 23e160 free(data->readwrite); 231c25: 48 8b 45 f8 mov -0x8(%rbp),%rax 231c29: 48 8b 78 10 mov 0x10(%rax),%rdi 231c2d: e8 2e c5 00 00 call 23e160 free(data->filename); 231c32: 48 8b 45 f8 mov -0x8(%rbp),%rax 231c36: 48 8b 78 18 mov 0x18(%rax),%rdi 231c3a: e8 21 c5 00 00 call 23e160 } 231c3f: 48 83 c4 10 add $0x10,%rsp 231c43: 5d pop %rbp 231c44: c3 ret 231c45: cc int3 231c46: cc int3 231c47: cc int3 231c48: cc int3 231c49: cc int3 231c4a: cc int3 231c4b: cc int3 231c4c: cc int3 231c4d: cc int3 231c4e: cc int3 231c4f: cc int3 0000000000231c50 : } else { RichString_extendLen(this, len); } } void RichString_rewind(RichString* this, int count) { 231c50: 55 push %rbp 231c51: 48 89 e5 mov %rsp,%rbp 231c54: 48 83 ec 10 sub $0x10,%rsp 231c58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 231c5c: 89 75 f4 mov %esi,-0xc(%rbp) RichString_setLen(this, this->chlen - count); 231c5f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 231c63: 48 8b 45 f8 mov -0x8(%rbp),%rax 231c67: 8b 30 mov (%rax),%esi 231c69: 2b 75 f4 sub -0xc(%rbp),%esi 231c6c: e8 0f 00 00 00 call 231c80 } 231c71: 48 83 c4 10 add $0x10,%rsp 231c75: 5d pop %rbp 231c76: c3 ret 231c77: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000231c80 : static void RichString_setLen(RichString* this, int len) { 231c80: 55 push %rbp 231c81: 48 89 e5 mov %rsp,%rbp 231c84: 48 83 ec 40 sub $0x40,%rsp 231c88: 48 8b 05 a1 0b 01 00 mov 0x10ba1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231c8f: 48 89 45 f8 mov %rax,-0x8(%rbp) 231c93: 48 89 7d d0 mov %rdi,-0x30(%rbp) 231c97: 89 75 cc mov %esi,-0x34(%rbp) if (len < RICHSTRING_MAXLEN && this->chlen < RICHSTRING_MAXLEN) { 231c9a: 81 7d cc 5e 01 00 00 cmpl $0x15e,-0x34(%rbp) 231ca1: 0f 8d 6b 00 00 00 jge 231d12 231ca7: 48 8b 45 d0 mov -0x30(%rbp),%rax 231cab: 81 38 5e 01 00 00 cmpl $0x15e,(%rax) 231cb1: 0f 8d 5b 00 00 00 jge 231d12 RichString_setChar(this, len, 0); 231cb7: e9 00 00 00 00 jmp 231cbc 231cbc: 48 8b 45 d0 mov -0x30(%rbp),%rax 231cc0: 48 8b 40 08 mov 0x8(%rax),%rax 231cc4: 48 63 4d cc movslq -0x34(%rbp),%rcx 231cc8: 48 6b c9 1c imul $0x1c,%rcx,%rcx 231ccc: 48 01 c8 add %rcx,%rax 231ccf: 48 89 45 c0 mov %rax,-0x40(%rbp) 231cd3: 48 8d 7d d8 lea -0x28(%rbp),%rdi 231cd7: 31 f6 xor %esi,%esi 231cd9: ba 1c 00 00 00 mov $0x1c,%edx 231cde: e8 5d c5 00 00 call 23e240 231ce3: 48 8b 45 c0 mov -0x40(%rbp),%rax 231ce7: 48 8b 4d d8 mov -0x28(%rbp),%rcx 231ceb: 48 89 08 mov %rcx,(%rax) 231cee: 48 8b 4d e0 mov -0x20(%rbp),%rcx 231cf2: 48 89 48 08 mov %rcx,0x8(%rax) 231cf6: 48 8b 4d e8 mov -0x18(%rbp),%rcx 231cfa: 48 89 48 10 mov %rcx,0x10(%rax) 231cfe: 8b 4d f0 mov -0x10(%rbp),%ecx 231d01: 89 48 18 mov %ecx,0x18(%rax) this->chlen = len; 231d04: 8b 4d cc mov -0x34(%rbp),%ecx 231d07: 48 8b 45 d0 mov -0x30(%rbp),%rax 231d0b: 89 08 mov %ecx,(%rax) } else { 231d0d: e9 0c 00 00 00 jmp 231d1e RichString_extendLen(this, len); 231d12: 48 8b 7d d0 mov -0x30(%rbp),%rdi 231d16: 8b 75 cc mov -0x34(%rbp),%esi 231d19: e8 92 0a 00 00 call 2327b0 231d1e: 48 8b 05 0b 0b 01 00 mov 0x10b0b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231d25: 48 8b 4d f8 mov -0x8(%rbp),%rcx 231d29: 48 39 c8 cmp %rcx,%rax 231d2c: 0f 85 06 00 00 00 jne 231d38 } 231d32: 48 83 c4 40 add $0x40,%rsp 231d36: 5d pop %rbp 231d37: c3 ret 231d38: e8 03 c4 00 00 call 23e140 <__stack_chk_fail@plt> 231d3d: 0f 1f 00 nopl (%rax) 0000000000231d40 : } return len; } int RichString_appendnWideColumns(RichString* this, int attrs, const char* data_c, int len, int* columns) { 231d40: 55 push %rbp 231d41: 48 89 e5 mov %rsp,%rbp 231d44: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 231d4b: 48 8b 05 de 0a 01 00 mov 0x10ade(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231d52: 48 89 45 f8 mov %rax,-0x8(%rbp) 231d56: 48 89 7d c8 mov %rdi,-0x38(%rbp) 231d5a: 89 75 c4 mov %esi,-0x3c(%rbp) 231d5d: 48 89 55 b8 mov %rdx,-0x48(%rbp) 231d61: 89 4d b4 mov %ecx,-0x4c(%rbp) 231d64: 4c 89 45 a8 mov %r8,-0x58(%rbp) wchar_t data[len + 1]; 231d68: 8b 45 b4 mov -0x4c(%rbp),%eax 231d6b: 83 c0 01 add $0x1,%eax 231d6e: 48 89 e1 mov %rsp,%rcx 231d71: 48 89 4d a0 mov %rcx,-0x60(%rbp) 231d75: 48 8d 0c 85 0f 00 00 00 lea 0xf(,%rax,4),%rcx 231d7d: 48 83 e1 f0 and $0xfffffffffffffff0,%rcx 231d81: 48 89 e7 mov %rsp,%rdi 231d84: 48 29 cf sub %rcx,%rdi 231d87: 48 89 bd 70 ff ff ff mov %rdi,-0x90(%rbp) 231d8e: 48 89 fc mov %rdi,%rsp 231d91: 48 89 45 98 mov %rax,-0x68(%rbp) len = mbstowcs(data, data_c, len); 231d95: 48 8b 75 b8 mov -0x48(%rbp),%rsi 231d99: 48 63 55 b4 movslq -0x4c(%rbp),%rdx 231d9d: e8 1e ca 00 00 call 23e7c0 231da2: 89 45 b4 mov %eax,-0x4c(%rbp) if (len <= 0) 231da5: 83 7d b4 00 cmpl $0x0,-0x4c(%rbp) 231da9: 0f 8f 13 00 00 00 jg 231dc2 return 0; 231daf: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 231db6: c7 45 94 01 00 00 00 movl $0x1,-0x6c(%rbp) 231dbd: e9 81 01 00 00 jmp 231f43 int from = this->chlen; 231dc2: 48 8b 45 c8 mov -0x38(%rbp),%rax 231dc6: 8b 00 mov (%rax),%eax 231dc8: 89 45 90 mov %eax,-0x70(%rbp) int newLen = from + len; 231dcb: 8b 45 90 mov -0x70(%rbp),%eax 231dce: 03 45 b4 add -0x4c(%rbp),%eax 231dd1: 89 45 8c mov %eax,-0x74(%rbp) RichString_setLen(this, newLen); 231dd4: 48 8b 7d c8 mov -0x38(%rbp),%rdi 231dd8: 8b 75 8c mov -0x74(%rbp),%esi 231ddb: e8 a0 fe ff ff call 231c80 int columnsWritten = 0; 231de0: c7 45 88 00 00 00 00 movl $0x0,-0x78(%rbp) int pos = from; 231de7: 8b 45 90 mov -0x70(%rbp),%eax 231dea: 89 45 84 mov %eax,-0x7c(%rbp) for (int j = 0; j < len; j++) { 231ded: c7 45 80 00 00 00 00 movl $0x0,-0x80(%rbp) 231df4: 8b 45 80 mov -0x80(%rbp),%eax 231df7: 3b 45 b4 cmp -0x4c(%rbp),%eax 231dfa: 0f 8d 1e 01 00 00 jge 231f1e 231e00: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax wchar_t c = iswprint(data[j]) ? data[j] : '?'; 231e07: 48 63 4d 80 movslq -0x80(%rbp),%rcx 231e0b: 8b 3c 88 mov (%rax,%rcx,4),%edi 231e0e: be 00 00 04 00 mov $0x40000,%esi 231e13: e8 68 01 00 00 call 231f80 <__istype> 231e18: 83 f8 00 cmp $0x0,%eax 231e1b: 0f 84 19 00 00 00 je 231e3a 231e21: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 231e28: 48 63 4d 80 movslq -0x80(%rbp),%rcx 231e2c: 8b 04 88 mov (%rax,%rcx,4),%eax 231e2f: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 231e35: e9 10 00 00 00 jmp 231e4a 231e3a: b8 3f 00 00 00 mov $0x3f,%eax 231e3f: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 231e45: e9 00 00 00 00 jmp 231e4a 231e4a: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 231e50: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) int cwidth = wcwidth(c); 231e56: 8b bd 7c ff ff ff mov -0x84(%rbp),%edi 231e5c: e8 4f 01 00 00 call 231fb0 <__wcwidth> 231e61: 89 85 78 ff ff ff mov %eax,-0x88(%rbp) if (cwidth > *columns) 231e67: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 231e6d: 48 8b 4d a8 mov -0x58(%rbp),%rcx 231e71: 3b 01 cmp (%rcx),%eax 231e73: 0f 8e 05 00 00 00 jle 231e7e break; 231e79: e9 a0 00 00 00 jmp 231f1e *columns -= cwidth; 231e7e: 8b 95 78 ff ff ff mov -0x88(%rbp),%edx 231e84: 48 8b 45 a8 mov -0x58(%rbp),%rax 231e88: 8b 08 mov (%rax),%ecx 231e8a: 29 d1 sub %edx,%ecx 231e8c: 89 08 mov %ecx,(%rax) columnsWritten += cwidth; 231e8e: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 231e94: 03 45 88 add -0x78(%rbp),%eax 231e97: 89 45 88 mov %eax,-0x78(%rbp) this->chptr[pos] = (CharType) { .attr = attrs & 0xffffff, .chars = { c, '\0' } }; 231e9a: 48 8b 45 c8 mov -0x38(%rbp),%rax 231e9e: 48 8b 40 08 mov 0x8(%rax),%rax 231ea2: 48 63 4d 84 movslq -0x7c(%rbp),%rcx 231ea6: 48 6b c9 1c imul $0x1c,%rcx,%rcx 231eaa: 48 01 c8 add %rcx,%rax 231ead: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 231eb4: 8b 45 c4 mov -0x3c(%rbp),%eax 231eb7: 25 ff ff ff 00 and $0xffffff,%eax 231ebc: 89 45 d8 mov %eax,-0x28(%rbp) 231ebf: 48 8d 7d d8 lea -0x28(%rbp),%rdi 231ec3: 48 83 c7 04 add $0x4,%rdi 231ec7: 31 f6 xor %esi,%esi 231ec9: ba 14 00 00 00 mov $0x14,%edx 231ece: e8 6d c3 00 00 call 23e240 231ed3: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 231eda: 8b 8d 7c ff ff ff mov -0x84(%rbp),%ecx 231ee0: 89 4d dc mov %ecx,-0x24(%rbp) 231ee3: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 231eea: 48 8b 4d d8 mov -0x28(%rbp),%rcx 231eee: 48 89 08 mov %rcx,(%rax) 231ef1: 48 8b 4d e0 mov -0x20(%rbp),%rcx 231ef5: 48 89 48 08 mov %rcx,0x8(%rax) 231ef9: 48 8b 4d e8 mov -0x18(%rbp),%rcx 231efd: 48 89 48 10 mov %rcx,0x10(%rax) 231f01: 8b 4d f0 mov -0x10(%rbp),%ecx 231f04: 89 48 18 mov %ecx,0x18(%rax) pos++; 231f07: 8b 45 84 mov -0x7c(%rbp),%eax 231f0a: 83 c0 01 add $0x1,%eax 231f0d: 89 45 84 mov %eax,-0x7c(%rbp) for (int j = 0; j < len; j++) { 231f10: 8b 45 80 mov -0x80(%rbp),%eax 231f13: 83 c0 01 add $0x1,%eax 231f16: 89 45 80 mov %eax,-0x80(%rbp) 231f19: e9 d6 fe ff ff jmp 231df4 } RichString_setLen(this, pos); 231f1e: 48 8b 7d c8 mov -0x38(%rbp),%rdi 231f22: 8b 75 84 mov -0x7c(%rbp),%esi 231f25: e8 56 fd ff ff call 231c80 *columns = columnsWritten; 231f2a: 8b 4d 88 mov -0x78(%rbp),%ecx 231f2d: 48 8b 45 a8 mov -0x58(%rbp),%rax 231f31: 89 08 mov %ecx,(%rax) return pos - from; 231f33: 8b 45 84 mov -0x7c(%rbp),%eax 231f36: 2b 45 90 sub -0x70(%rbp),%eax 231f39: 89 45 d4 mov %eax,-0x2c(%rbp) 231f3c: c7 45 94 01 00 00 00 movl $0x1,-0x6c(%rbp) } 231f43: 48 8b 45 a0 mov -0x60(%rbp),%rax 231f47: 48 89 c4 mov %rax,%rsp 231f4a: 8b 45 d4 mov -0x2c(%rbp),%eax 231f4d: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 231f53: 48 8b 05 d6 08 01 00 mov 0x108d6(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 231f5a: 48 8b 4d f8 mov -0x8(%rbp),%rcx 231f5e: 48 39 c8 cmp %rcx,%rax 231f61: 0f 85 0b 00 00 00 jne 231f72 231f67: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax 231f6d: 48 89 ec mov %rbp,%rsp 231f70: 5d pop %rbp 231f71: c3 ret 231f72: e8 c9 c1 00 00 call 23e140 <__stack_chk_fail@plt> 231f77: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000231f80 <__istype>: { 231f80: 55 push %rbp 231f81: 48 89 e5 mov %rsp,%rbp 231f84: 48 83 ec 10 sub $0x10,%rsp 231f88: 89 7d fc mov %edi,-0x4(%rbp) 231f8b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__maskrune(_c, _f)); 231f8f: 8b 7d fc mov -0x4(%rbp),%edi 231f92: 48 8b 75 f0 mov -0x10(%rbp),%rsi 231f96: e8 85 09 00 00 call 232920 <__maskrune> 231f9b: 83 f8 00 cmp $0x0,%eax 231f9e: 0f 95 c0 setne %al 231fa1: 34 ff xor $0xff,%al 231fa3: 34 ff xor $0xff,%al 231fa5: 24 01 and $0x1,%al 231fa7: 0f b6 c0 movzbl %al,%eax 231faa: 48 83 c4 10 add $0x10,%rsp 231fae: 5d pop %rbp 231faf: c3 ret 0000000000231fb0 <__wcwidth>: _CurrentRuneLocale->__maplower[_c]; } static __inline int __wcwidth(__ct_rune_t _c) { 231fb0: 55 push %rbp 231fb1: 48 89 e5 mov %rsp,%rbp 231fb4: 48 83 ec 10 sub $0x10,%rsp 231fb8: 89 7d f8 mov %edi,-0x8(%rbp) unsigned int _x; if (_c == 0) 231fbb: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) 231fbf: 0f 85 0c 00 00 00 jne 231fd1 <__wcwidth+0x21> return (0); 231fc5: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 231fcc: e9 66 00 00 00 jmp 232037 <__wcwidth+0x87> _x = (unsigned int)__maskrune(_c, _CTYPE_SWM|_CTYPE_R); 231fd1: 8b 7d f8 mov -0x8(%rbp),%edi 231fd4: be 00 00 04 e0 mov $0xe0040000,%esi 231fd9: e8 42 09 00 00 call 232920 <__maskrune> 231fde: 89 45 f4 mov %eax,-0xc(%rbp) if ((_x & _CTYPE_SWM) != 0) 231fe1: 8b 45 f4 mov -0xc(%rbp),%eax 231fe4: 48 b9 00 00 00 e0 00 00 00 00 movabs $0xe0000000,%rcx 231fee: 48 21 c8 and %rcx,%rax 231ff1: 48 83 f8 00 cmp $0x0,%rax 231ff5: 0f 84 1c 00 00 00 je 232017 <__wcwidth+0x67> return ((_x & _CTYPE_SWM) >> _CTYPE_SWS); 231ffb: 8b 45 f4 mov -0xc(%rbp),%eax 231ffe: 48 b9 00 00 00 e0 00 00 00 00 movabs $0xe0000000,%rcx 232008: 48 21 c8 and %rcx,%rax 23200b: 48 c1 f8 1e sar $0x1e,%rax 23200f: 89 45 fc mov %eax,-0x4(%rbp) 232012: e9 20 00 00 00 jmp 232037 <__wcwidth+0x87> return ((_x & _CTYPE_R) != 0 ? 1 : -1); 232017: 8b 45 f4 mov -0xc(%rbp),%eax 23201a: 89 c2 mov %eax,%edx 23201c: 48 81 e2 00 00 04 00 and $0x40000,%rdx 232023: b8 ff ff ff ff mov $0xffffffff,%eax 232028: b9 01 00 00 00 mov $0x1,%ecx 23202d: 48 83 fa 00 cmp $0x0,%rdx 232031: 0f 45 c1 cmovne %ecx,%eax 232034: 89 45 fc mov %eax,-0x4(%rbp) } 232037: 8b 45 fc mov -0x4(%rbp),%eax 23203a: 48 83 c4 10 add $0x10,%rsp 23203e: 5d pop %rbp 23203f: c3 ret 0000000000232040 : } return len; } inline void RichString_setAttrn(RichString* this, int attrs, int start, int charcount) { 232040: 55 push %rbp 232041: 48 89 e5 mov %rsp,%rbp 232044: 48 89 7d f8 mov %rdi,-0x8(%rbp) 232048: 89 75 f4 mov %esi,-0xc(%rbp) 23204b: 89 55 f0 mov %edx,-0x10(%rbp) 23204e: 89 4d ec mov %ecx,-0x14(%rbp) int end = CLAMP(start + charcount, 0, this->chlen); 232051: 8b 45 f0 mov -0x10(%rbp),%eax 232054: 03 45 ec add -0x14(%rbp),%eax 232057: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23205b: 3b 01 cmp (%rcx),%eax 23205d: 0f 8e 0e 00 00 00 jle 232071 232063: 48 8b 45 f8 mov -0x8(%rbp),%rax 232067: 8b 00 mov (%rax),%eax 232069: 89 45 e0 mov %eax,-0x20(%rbp) 23206c: e9 2d 00 00 00 jmp 23209e 232071: 8b 45 f0 mov -0x10(%rbp),%eax 232074: 03 45 ec add -0x14(%rbp),%eax 232077: 83 f8 00 cmp $0x0,%eax 23207a: 0f 8e 0e 00 00 00 jle 23208e 232080: 8b 45 f0 mov -0x10(%rbp),%eax 232083: 03 45 ec add -0x14(%rbp),%eax 232086: 89 45 dc mov %eax,-0x24(%rbp) 232089: e9 0a 00 00 00 jmp 232098 23208e: 31 c0 xor %eax,%eax 232090: 89 45 dc mov %eax,-0x24(%rbp) 232093: e9 00 00 00 00 jmp 232098 232098: 8b 45 dc mov -0x24(%rbp),%eax 23209b: 89 45 e0 mov %eax,-0x20(%rbp) 23209e: 8b 45 e0 mov -0x20(%rbp),%eax 2320a1: 89 45 e8 mov %eax,-0x18(%rbp) for (int i = start; i < end; i++) { 2320a4: 8b 45 f0 mov -0x10(%rbp),%eax 2320a7: 89 45 e4 mov %eax,-0x1c(%rbp) 2320aa: 8b 45 e4 mov -0x1c(%rbp),%eax 2320ad: 3b 45 e8 cmp -0x18(%rbp),%eax 2320b0: 0f 8d 26 00 00 00 jge 2320dc this->chptr[i].attr = attrs; 2320b6: 8b 4d f4 mov -0xc(%rbp),%ecx 2320b9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2320bd: 48 8b 40 08 mov 0x8(%rax),%rax 2320c1: 48 63 55 e4 movslq -0x1c(%rbp),%rdx 2320c5: 48 6b d2 1c imul $0x1c,%rdx,%rdx 2320c9: 48 01 d0 add %rdx,%rax 2320cc: 89 08 mov %ecx,(%rax) for (int i = start; i < end; i++) { 2320ce: 8b 45 e4 mov -0x1c(%rbp),%eax 2320d1: 83 c0 01 add $0x1,%eax 2320d4: 89 45 e4 mov %eax,-0x1c(%rbp) 2320d7: e9 ce ff ff ff jmp 2320aa } } 2320dc: 5d pop %rbp 2320dd: c3 ret 2320de: 66 90 xchg %ax,%ax 00000000002320e0 : void RichString_appendChr(RichString* this, int attrs, char c, int count) { 2320e0: 55 push %rbp 2320e1: 48 89 e5 mov %rsp,%rbp 2320e4: 48 83 ec 50 sub $0x50,%rsp 2320e8: 88 d0 mov %dl,%al 2320ea: 48 8b 15 3f 07 01 00 mov 0x1073f(%rip),%rdx # 242830 <__stack_chk_guard@@FBSD_1.0> 2320f1: 48 89 55 f8 mov %rdx,-0x8(%rbp) 2320f5: 48 89 7d d0 mov %rdi,-0x30(%rbp) 2320f9: 89 75 cc mov %esi,-0x34(%rbp) 2320fc: 88 45 cb mov %al,-0x35(%rbp) 2320ff: 89 4d c4 mov %ecx,-0x3c(%rbp) int from = this->chlen; 232102: 48 8b 45 d0 mov -0x30(%rbp),%rax 232106: 8b 00 mov (%rax),%eax 232108: 89 45 c0 mov %eax,-0x40(%rbp) int newLen = from + count; 23210b: 8b 45 c0 mov -0x40(%rbp),%eax 23210e: 03 45 c4 add -0x3c(%rbp),%eax 232111: 89 45 bc mov %eax,-0x44(%rbp) RichString_setLen(this, newLen); 232114: 48 8b 7d d0 mov -0x30(%rbp),%rdi 232118: 8b 75 bc mov -0x44(%rbp),%esi 23211b: e8 60 fb ff ff call 231c80 for (int i = from; i < newLen; i++) { 232120: 8b 45 c0 mov -0x40(%rbp),%eax 232123: 89 45 b8 mov %eax,-0x48(%rbp) 232126: 8b 45 b8 mov -0x48(%rbp),%eax 232129: 3b 45 bc cmp -0x44(%rbp),%eax 23212c: 0f 8d 6e 00 00 00 jge 2321a0 this->chptr[i] = (CharType) { .attr = attrs, .chars = { c, 0 } }; 232132: 48 8b 45 d0 mov -0x30(%rbp),%rax 232136: 48 8b 40 08 mov 0x8(%rax),%rax 23213a: 48 63 4d b8 movslq -0x48(%rbp),%rcx 23213e: 48 6b c9 1c imul $0x1c,%rcx,%rcx 232142: 48 01 c8 add %rcx,%rax 232145: 48 89 45 b0 mov %rax,-0x50(%rbp) 232149: 8b 45 cc mov -0x34(%rbp),%eax 23214c: 89 45 d8 mov %eax,-0x28(%rbp) 23214f: 48 8d 7d d8 lea -0x28(%rbp),%rdi 232153: 48 83 c7 04 add $0x4,%rdi 232157: 31 f6 xor %esi,%esi 232159: ba 14 00 00 00 mov $0x14,%edx 23215e: e8 dd c0 00 00 call 23e240 232163: 48 8b 45 b0 mov -0x50(%rbp),%rax 232167: 0f be 4d cb movsbl -0x35(%rbp),%ecx 23216b: 89 4d dc mov %ecx,-0x24(%rbp) 23216e: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 232175: 48 8b 4d d8 mov -0x28(%rbp),%rcx 232179: 48 89 08 mov %rcx,(%rax) 23217c: 48 8b 4d e0 mov -0x20(%rbp),%rcx 232180: 48 89 48 08 mov %rcx,0x8(%rax) 232184: 48 8b 4d e8 mov -0x18(%rbp),%rcx 232188: 48 89 48 10 mov %rcx,0x10(%rax) 23218c: 8b 4d f0 mov -0x10(%rbp),%ecx 23218f: 89 48 18 mov %ecx,0x18(%rax) for (int i = from; i < newLen; i++) { 232192: 8b 45 b8 mov -0x48(%rbp),%eax 232195: 83 c0 01 add $0x1,%eax 232198: 89 45 b8 mov %eax,-0x48(%rbp) 23219b: e9 86 ff ff ff jmp 232126 2321a0: 48 8b 05 89 06 01 00 mov 0x10689(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2321a7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2321ab: 48 39 c8 cmp %rcx,%rax 2321ae: 0f 85 06 00 00 00 jne 2321ba } } 2321b4: 48 83 c4 50 add $0x50,%rsp 2321b8: 5d pop %rbp 2321b9: c3 ret 2321ba: e8 81 bf 00 00 call 23e140 <__stack_chk_fail@plt> 2321bf: 90 nop 00000000002321c0 : int RichString_findChar(const RichString* this, char c, int start) { 2321c0: 55 push %rbp 2321c1: 48 89 e5 mov %rsp,%rbp 2321c4: 48 83 ec 30 sub $0x30,%rsp 2321c8: 40 88 f0 mov %sil,%al 2321cb: 48 89 7d f0 mov %rdi,-0x10(%rbp) 2321cf: 88 45 ef mov %al,-0x11(%rbp) 2321d2: 89 55 e8 mov %edx,-0x18(%rbp) const wchar_t wc = btowc(c); 2321d5: 0f be 7d ef movsbl -0x11(%rbp),%edi 2321d9: e8 f2 c5 00 00 call 23e7d0 2321de: 89 45 e4 mov %eax,-0x1c(%rbp) const cchar_t* ch = this->chptr + start; 2321e1: 48 8b 45 f0 mov -0x10(%rbp),%rax 2321e5: 48 8b 40 08 mov 0x8(%rax),%rax 2321e9: 48 63 4d e8 movslq -0x18(%rbp),%rcx 2321ed: 48 6b c9 1c imul $0x1c,%rcx,%rcx 2321f1: 48 01 c8 add %rcx,%rax 2321f4: 48 89 45 d8 mov %rax,-0x28(%rbp) for (int i = start; i < this->chlen; i++) { 2321f8: 8b 45 e8 mov -0x18(%rbp),%eax 2321fb: 89 45 d4 mov %eax,-0x2c(%rbp) 2321fe: 8b 45 d4 mov -0x2c(%rbp),%eax 232201: 48 8b 4d f0 mov -0x10(%rbp),%rcx 232205: 3b 01 cmp (%rcx),%eax 232207: 0f 8d 35 00 00 00 jge 232242 if (ch->chars[0] == wc) 23220d: 48 8b 45 d8 mov -0x28(%rbp),%rax 232211: 8b 40 04 mov 0x4(%rax),%eax 232214: 3b 45 e4 cmp -0x1c(%rbp),%eax 232217: 0f 85 0b 00 00 00 jne 232228 return i; 23221d: 8b 45 d4 mov -0x2c(%rbp),%eax 232220: 89 45 fc mov %eax,-0x4(%rbp) 232223: e9 21 00 00 00 jmp 232249 ch++; 232228: 48 8b 45 d8 mov -0x28(%rbp),%rax 23222c: 48 83 c0 1c add $0x1c,%rax 232230: 48 89 45 d8 mov %rax,-0x28(%rbp) for (int i = start; i < this->chlen; i++) { 232234: 8b 45 d4 mov -0x2c(%rbp),%eax 232237: 83 c0 01 add $0x1,%eax 23223a: 89 45 d4 mov %eax,-0x2c(%rbp) 23223d: e9 bc ff ff ff jmp 2321fe } return -1; 232242: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } 232249: 8b 45 fc mov -0x4(%rbp),%eax 23224c: 48 83 c4 30 add $0x30,%rsp 232250: 5d pop %rbp 232251: c3 ret 232252: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23225c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000232260 : return -1; } #endif /* HAVE_LIBNCURSESW */ void RichString_delete(RichString* this) { 232260: 55 push %rbp 232261: 48 89 e5 mov %rsp,%rbp 232264: 48 83 ec 10 sub $0x10,%rsp 232268: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->chlen > RICHSTRING_MAXLEN) { 23226c: 48 8b 45 f8 mov -0x8(%rbp),%rax 232270: 81 38 5e 01 00 00 cmpl $0x15e,(%rax) 232276: 0f 8e 1d 00 00 00 jle 232299 free(this->chptr); 23227c: 48 8b 45 f8 mov -0x8(%rbp),%rax 232280: 48 8b 78 08 mov 0x8(%rax),%rdi 232284: e8 d7 be 00 00 call 23e160 this->chptr = this->chstr; 232289: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23228d: 48 83 c1 10 add $0x10,%rcx 232291: 48 8b 45 f8 mov -0x8(%rbp),%rax 232295: 48 89 48 08 mov %rcx,0x8(%rax) } } 232299: 48 83 c4 10 add $0x10,%rsp 23229d: 5d pop %rbp 23229e: c3 ret 23229f: 90 nop 00000000002322a0 : void RichString_setAttr(RichString* this, int attrs) { 2322a0: 55 push %rbp 2322a1: 48 89 e5 mov %rsp,%rbp 2322a4: 48 83 ec 10 sub $0x10,%rsp 2322a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2322ac: 89 75 f4 mov %esi,-0xc(%rbp) RichString_setAttrn(this, attrs, 0, this->chlen); 2322af: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2322b3: 8b 75 f4 mov -0xc(%rbp),%esi 2322b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2322ba: 8b 08 mov (%rax),%ecx 2322bc: 31 d2 xor %edx,%edx 2322be: e8 7d fd ff ff call 232040 } 2322c3: 48 83 c4 10 add $0x10,%rsp 2322c7: 5d pop %rbp 2322c8: c3 ret 2322c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002322d0 : int RichString_appendWide(RichString* this, int attrs, const char* data) { 2322d0: 55 push %rbp 2322d1: 48 89 e5 mov %rsp,%rbp 2322d4: 48 83 ec 40 sub $0x40,%rsp 2322d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2322dc: 89 75 f4 mov %esi,-0xc(%rbp) 2322df: 48 89 55 e8 mov %rdx,-0x18(%rbp) return RichString_writeFromWide(this, attrs, data, this->chlen, strlen(data)); 2322e3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2322e7: 48 89 45 c8 mov %rax,-0x38(%rbp) 2322eb: 8b 45 f4 mov -0xc(%rbp),%eax 2322ee: 89 45 d4 mov %eax,-0x2c(%rbp) 2322f1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2322f5: 48 89 45 d8 mov %rax,-0x28(%rbp) 2322f9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2322fd: 8b 00 mov (%rax),%eax 2322ff: 89 45 e4 mov %eax,-0x1c(%rbp) 232302: 48 8b 7d e8 mov -0x18(%rbp),%rdi 232306: e8 e5 be 00 00 call 23e1f0 23230b: 48 8b 7d c8 mov -0x38(%rbp),%rdi 23230f: 8b 75 d4 mov -0x2c(%rbp),%esi 232312: 48 8b 55 d8 mov -0x28(%rbp),%rdx 232316: 8b 4d e4 mov -0x1c(%rbp),%ecx 232319: 41 89 c0 mov %eax,%r8d 23231c: e8 0f 00 00 00 call 232330 232321: 48 83 c4 40 add $0x40,%rsp 232325: 5d pop %rbp 232326: c3 ret 232327: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000232330 : static inline int RichString_writeFromWide(RichString* this, int attrs, const char* data_c, int from, int len) { 232330: 55 push %rbp 232331: 48 89 e5 mov %rsp,%rbp 232334: 48 81 ec 90 00 00 00 sub $0x90,%rsp 23233b: 48 8b 05 ee 04 01 00 mov 0x104ee(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 232342: 48 89 45 f8 mov %rax,-0x8(%rbp) 232346: 48 89 7d c8 mov %rdi,-0x38(%rbp) 23234a: 89 75 c4 mov %esi,-0x3c(%rbp) 23234d: 48 89 55 b8 mov %rdx,-0x48(%rbp) 232351: 89 4d b4 mov %ecx,-0x4c(%rbp) 232354: 44 89 45 b0 mov %r8d,-0x50(%rbp) wchar_t data[len + 1]; 232358: 8b 45 b0 mov -0x50(%rbp),%eax 23235b: 83 c0 01 add $0x1,%eax 23235e: 48 89 e1 mov %rsp,%rcx 232361: 48 89 4d a8 mov %rcx,-0x58(%rbp) 232365: 48 8d 0c 85 0f 00 00 00 lea 0xf(,%rax,4),%rcx 23236d: 48 83 e1 f0 and $0xfffffffffffffff0,%rcx 232371: 48 89 e7 mov %rsp,%rdi 232374: 48 29 cf sub %rcx,%rdi 232377: 48 89 7d 88 mov %rdi,-0x78(%rbp) 23237b: 48 89 fc mov %rdi,%rsp 23237e: 48 89 45 a0 mov %rax,-0x60(%rbp) len = mbstowcs(data, data_c, len); 232382: 48 8b 75 b8 mov -0x48(%rbp),%rsi 232386: 48 63 55 b0 movslq -0x50(%rbp),%rdx 23238a: e8 31 c4 00 00 call 23e7c0 23238f: 89 45 b0 mov %eax,-0x50(%rbp) if (len <= 0) 232392: 83 7d b0 00 cmpl $0x0,-0x50(%rbp) 232396: 0f 8f 13 00 00 00 jg 2323af return 0; 23239c: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 2323a3: c7 45 9c 01 00 00 00 movl $0x1,-0x64(%rbp) 2323aa: e9 0a 01 00 00 jmp 2324b9 int newLen = from + len; 2323af: 8b 45 b4 mov -0x4c(%rbp),%eax 2323b2: 03 45 b0 add -0x50(%rbp),%eax 2323b5: 89 45 98 mov %eax,-0x68(%rbp) RichString_setLen(this, newLen); 2323b8: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2323bc: 8b 75 98 mov -0x68(%rbp),%esi 2323bf: e8 bc f8 ff ff call 231c80 for (int i = from, j = 0; i < newLen; i++, j++) { 2323c4: 8b 45 b4 mov -0x4c(%rbp),%eax 2323c7: 89 45 94 mov %eax,-0x6c(%rbp) 2323ca: c7 45 90 00 00 00 00 movl $0x0,-0x70(%rbp) 2323d1: 8b 45 94 mov -0x6c(%rbp),%eax 2323d4: 3b 45 98 cmp -0x68(%rbp),%eax 2323d7: 0f 8d cf 00 00 00 jge 2324ac this->chptr[i] = (CharType) { .attr = attrs & 0xffffff, .chars = { (iswprint(data[j]) ? data[j] : '?') } }; 2323dd: 48 8b 45 c8 mov -0x38(%rbp),%rax 2323e1: 48 8b 40 08 mov 0x8(%rax),%rax 2323e5: 48 63 4d 94 movslq -0x6c(%rbp),%rcx 2323e9: 48 6b c9 1c imul $0x1c,%rcx,%rcx 2323ed: 48 01 c8 add %rcx,%rax 2323f0: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 2323f7: 8b 45 c4 mov -0x3c(%rbp),%eax 2323fa: 25 ff ff ff 00 and $0xffffff,%eax 2323ff: 89 45 d8 mov %eax,-0x28(%rbp) 232402: 48 8d 7d d8 lea -0x28(%rbp),%rdi 232406: 48 83 c7 04 add $0x4,%rdi 23240a: 48 89 7d 80 mov %rdi,-0x80(%rbp) 23240e: 31 f6 xor %esi,%esi 232410: ba 14 00 00 00 mov $0x14,%edx 232415: e8 26 be 00 00 call 23e240 23241a: 48 8b 45 88 mov -0x78(%rbp),%rax 23241e: 48 63 4d 90 movslq -0x70(%rbp),%rcx 232422: 8b 3c 88 mov (%rax,%rcx,4),%edi 232425: be 00 00 04 00 mov $0x40000,%esi 23242a: e8 51 fb ff ff call 231f80 <__istype> 23242f: 83 f8 00 cmp $0x0,%eax 232432: 0f 84 16 00 00 00 je 23244e 232438: 48 8b 45 88 mov -0x78(%rbp),%rax 23243c: 48 63 4d 90 movslq -0x70(%rbp),%rcx 232440: 8b 04 88 mov (%rax,%rcx,4),%eax 232443: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 232449: e9 10 00 00 00 jmp 23245e 23244e: b8 3f 00 00 00 mov $0x3f,%eax 232453: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp) 232459: e9 00 00 00 00 jmp 23245e 23245e: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 232465: 48 8b 4d 80 mov -0x80(%rbp),%rcx 232469: 8b 95 74 ff ff ff mov -0x8c(%rbp),%edx 23246f: 89 11 mov %edx,(%rcx) 232471: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 232478: 48 8b 4d d8 mov -0x28(%rbp),%rcx 23247c: 48 89 08 mov %rcx,(%rax) 23247f: 48 8b 4d e0 mov -0x20(%rbp),%rcx 232483: 48 89 48 08 mov %rcx,0x8(%rax) 232487: 48 8b 4d e8 mov -0x18(%rbp),%rcx 23248b: 48 89 48 10 mov %rcx,0x10(%rax) 23248f: 8b 4d f0 mov -0x10(%rbp),%ecx 232492: 89 48 18 mov %ecx,0x18(%rax) for (int i = from, j = 0; i < newLen; i++, j++) { 232495: 8b 45 94 mov -0x6c(%rbp),%eax 232498: 83 c0 01 add $0x1,%eax 23249b: 89 45 94 mov %eax,-0x6c(%rbp) 23249e: 8b 45 90 mov -0x70(%rbp),%eax 2324a1: 83 c0 01 add $0x1,%eax 2324a4: 89 45 90 mov %eax,-0x70(%rbp) 2324a7: e9 25 ff ff ff jmp 2323d1 return len; 2324ac: 8b 45 b0 mov -0x50(%rbp),%eax 2324af: 89 45 d4 mov %eax,-0x2c(%rbp) 2324b2: c7 45 9c 01 00 00 00 movl $0x1,-0x64(%rbp) } 2324b9: 48 8b 45 a8 mov -0x58(%rbp),%rax 2324bd: 48 89 c4 mov %rax,%rsp 2324c0: 8b 45 d4 mov -0x2c(%rbp),%eax 2324c3: 89 85 70 ff ff ff mov %eax,-0x90(%rbp) 2324c9: 48 8b 05 60 03 01 00 mov 0x10360(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2324d0: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2324d4: 48 39 c8 cmp %rcx,%rax 2324d7: 0f 85 0b 00 00 00 jne 2324e8 2324dd: 8b 85 70 ff ff ff mov -0x90(%rbp),%eax 2324e3: 48 89 ec mov %rbp,%rsp 2324e6: 5d pop %rbp 2324e7: c3 ret 2324e8: e8 53 bc 00 00 call 23e140 <__stack_chk_fail@plt> 2324ed: 0f 1f 00 nopl (%rax) 00000000002324f0 : } int RichString_appendnWide(RichString* this, int attrs, const char* data, int len) { 2324f0: 55 push %rbp 2324f1: 48 89 e5 mov %rsp,%rbp 2324f4: 48 83 ec 20 sub $0x20,%rsp 2324f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2324fc: 89 75 f4 mov %esi,-0xc(%rbp) 2324ff: 48 89 55 e8 mov %rdx,-0x18(%rbp) 232503: 89 4d e4 mov %ecx,-0x1c(%rbp) return RichString_writeFromWide(this, attrs, data, this->chlen, len); 232506: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23250a: 8b 75 f4 mov -0xc(%rbp),%esi 23250d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 232511: 48 8b 45 f8 mov -0x8(%rbp),%rax 232515: 8b 08 mov (%rax),%ecx 232517: 44 8b 45 e4 mov -0x1c(%rbp),%r8d 23251b: e8 10 fe ff ff call 232330 232520: 48 83 c4 20 add $0x20,%rsp 232524: 5d pop %rbp 232525: c3 ret 232526: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000232530 : } int RichString_writeWide(RichString* this, int attrs, const char* data) { 232530: 55 push %rbp 232531: 48 89 e5 mov %rsp,%rbp 232534: 48 83 ec 30 sub $0x30,%rsp 232538: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23253c: 89 75 f4 mov %esi,-0xc(%rbp) 23253f: 48 89 55 e8 mov %rdx,-0x18(%rbp) return RichString_writeFromWide(this, attrs, data, 0, strlen(data)); 232543: 48 8b 45 f8 mov -0x8(%rbp),%rax 232547: 48 89 45 d0 mov %rax,-0x30(%rbp) 23254b: 8b 45 f4 mov -0xc(%rbp),%eax 23254e: 89 45 dc mov %eax,-0x24(%rbp) 232551: 48 8b 45 e8 mov -0x18(%rbp),%rax 232555: 48 89 45 e0 mov %rax,-0x20(%rbp) 232559: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23255d: e8 8e bc 00 00 call 23e1f0 232562: 48 8b 7d d0 mov -0x30(%rbp),%rdi 232566: 8b 75 dc mov -0x24(%rbp),%esi 232569: 48 8b 55 e0 mov -0x20(%rbp),%rdx 23256d: 41 89 c0 mov %eax,%r8d 232570: 31 c9 xor %ecx,%ecx 232572: e8 b9 fd ff ff call 232330 232577: 48 83 c4 30 add $0x30,%rsp 23257b: 5d pop %rbp 23257c: c3 ret 23257d: 0f 1f 00 nopl (%rax) 0000000000232580 : } int RichString_appendAscii(RichString* this, int attrs, const char* data) { 232580: 55 push %rbp 232581: 48 89 e5 mov %rsp,%rbp 232584: 48 83 ec 40 sub $0x40,%rsp 232588: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23258c: 89 75 f4 mov %esi,-0xc(%rbp) 23258f: 48 89 55 e8 mov %rdx,-0x18(%rbp) return RichString_writeFromAscii(this, attrs, data, this->chlen, strlen(data)); 232593: 48 8b 45 f8 mov -0x8(%rbp),%rax 232597: 48 89 45 c8 mov %rax,-0x38(%rbp) 23259b: 8b 45 f4 mov -0xc(%rbp),%eax 23259e: 89 45 d4 mov %eax,-0x2c(%rbp) 2325a1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2325a5: 48 89 45 d8 mov %rax,-0x28(%rbp) 2325a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2325ad: 8b 00 mov (%rax),%eax 2325af: 89 45 e4 mov %eax,-0x1c(%rbp) 2325b2: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2325b6: e8 35 bc 00 00 call 23e1f0 2325bb: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2325bf: 8b 75 d4 mov -0x2c(%rbp),%esi 2325c2: 48 8b 55 d8 mov -0x28(%rbp),%rdx 2325c6: 8b 4d e4 mov -0x1c(%rbp),%ecx 2325c9: 41 89 c0 mov %eax,%r8d 2325cc: e8 0f 00 00 00 call 2325e0 2325d1: 48 83 c4 40 add $0x40,%rsp 2325d5: 5d pop %rbp 2325d6: c3 ret 2325d7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 00000000002325e0 : static inline int RichString_writeFromAscii(RichString* this, int attrs, const char* data, int from, int len) { 2325e0: 55 push %rbp 2325e1: 48 89 e5 mov %rsp,%rbp 2325e4: 48 83 ec 70 sub $0x70,%rsp 2325e8: 48 8b 05 41 02 01 00 mov 0x10241(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2325ef: 48 89 45 f8 mov %rax,-0x8(%rbp) 2325f3: 48 89 7d d0 mov %rdi,-0x30(%rbp) 2325f7: 89 75 cc mov %esi,-0x34(%rbp) 2325fa: 48 89 55 c0 mov %rdx,-0x40(%rbp) 2325fe: 89 4d bc mov %ecx,-0x44(%rbp) 232601: 44 89 45 b8 mov %r8d,-0x48(%rbp) int newLen = from + len; 232605: 8b 45 bc mov -0x44(%rbp),%eax 232608: 03 45 b8 add -0x48(%rbp),%eax 23260b: 89 45 b4 mov %eax,-0x4c(%rbp) RichString_setLen(this, newLen); 23260e: 48 8b 7d d0 mov -0x30(%rbp),%rdi 232612: 8b 75 b4 mov -0x4c(%rbp),%esi 232615: e8 66 f6 ff ff call 231c80 for (int i = from, j = 0; i < newLen; i++, j++) { 23261a: 8b 45 bc mov -0x44(%rbp),%eax 23261d: 89 45 b0 mov %eax,-0x50(%rbp) 232620: c7 45 ac 00 00 00 00 movl $0x0,-0x54(%rbp) 232627: 8b 45 b0 mov -0x50(%rbp),%eax 23262a: 3b 45 b4 cmp -0x4c(%rbp),%eax 23262d: 0f 8d c2 00 00 00 jge 2326f5 this->chptr[i] = (CharType) { .attr = attrs & 0xffffff, .chars = { (isprint(data[j]) ? data[j] : '?') } }; 232633: 48 8b 45 d0 mov -0x30(%rbp),%rax 232637: 48 8b 40 08 mov 0x8(%rax),%rax 23263b: 48 63 4d b0 movslq -0x50(%rbp),%rcx 23263f: 48 6b c9 1c imul $0x1c,%rcx,%rcx 232643: 48 01 c8 add %rcx,%rax 232646: 48 89 45 98 mov %rax,-0x68(%rbp) 23264a: 8b 45 cc mov -0x34(%rbp),%eax 23264d: 25 ff ff ff 00 and $0xffffff,%eax 232652: 89 45 d8 mov %eax,-0x28(%rbp) 232655: 48 8d 7d d8 lea -0x28(%rbp),%rdi 232659: 48 83 c7 04 add $0x4,%rdi 23265d: 48 89 7d a0 mov %rdi,-0x60(%rbp) 232661: 31 f6 xor %esi,%esi 232663: ba 14 00 00 00 mov $0x14,%edx 232668: e8 d3 bb 00 00 call 23e240 23266d: 48 8b 45 c0 mov -0x40(%rbp),%rax 232671: 48 63 4d ac movslq -0x54(%rbp),%rcx 232675: 0f be 3c 08 movsbl (%rax,%rcx,1),%edi 232679: be 00 00 04 00 mov $0x40000,%esi 23267e: e8 5d 03 00 00 call 2329e0 <__sbistype> 232683: 83 f8 00 cmp $0x0,%eax 232686: 0f 84 14 00 00 00 je 2326a0 23268c: 48 8b 45 c0 mov -0x40(%rbp),%rax 232690: 48 63 4d ac movslq -0x54(%rbp),%rcx 232694: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 232698: 89 45 94 mov %eax,-0x6c(%rbp) 23269b: e9 0d 00 00 00 jmp 2326ad 2326a0: b8 3f 00 00 00 mov $0x3f,%eax 2326a5: 89 45 94 mov %eax,-0x6c(%rbp) 2326a8: e9 00 00 00 00 jmp 2326ad 2326ad: 48 8b 45 98 mov -0x68(%rbp),%rax 2326b1: 48 8b 4d a0 mov -0x60(%rbp),%rcx 2326b5: 8b 55 94 mov -0x6c(%rbp),%edx 2326b8: 89 11 mov %edx,(%rcx) 2326ba: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%rbp) 2326c1: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2326c5: 48 89 08 mov %rcx,(%rax) 2326c8: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2326cc: 48 89 48 08 mov %rcx,0x8(%rax) 2326d0: 48 8b 4d e8 mov -0x18(%rbp),%rcx 2326d4: 48 89 48 10 mov %rcx,0x10(%rax) 2326d8: 8b 4d f0 mov -0x10(%rbp),%ecx 2326db: 89 48 18 mov %ecx,0x18(%rax) for (int i = from, j = 0; i < newLen; i++, j++) { 2326de: 8b 45 b0 mov -0x50(%rbp),%eax 2326e1: 83 c0 01 add $0x1,%eax 2326e4: 89 45 b0 mov %eax,-0x50(%rbp) 2326e7: 8b 45 ac mov -0x54(%rbp),%eax 2326ea: 83 c0 01 add $0x1,%eax 2326ed: 89 45 ac mov %eax,-0x54(%rbp) 2326f0: e9 32 ff ff ff jmp 232627 return len; 2326f5: 8b 45 b8 mov -0x48(%rbp),%eax 2326f8: 89 45 90 mov %eax,-0x70(%rbp) 2326fb: 48 8b 05 2e 01 01 00 mov 0x1012e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 232702: 48 8b 4d f8 mov -0x8(%rbp),%rcx 232706: 48 39 c8 cmp %rcx,%rax 232709: 0f 85 09 00 00 00 jne 232718 23270f: 8b 45 90 mov -0x70(%rbp),%eax 232712: 48 83 c4 70 add $0x70,%rsp 232716: 5d pop %rbp 232717: c3 ret 232718: e8 23 ba 00 00 call 23e140 <__stack_chk_fail@plt> 23271d: 0f 1f 00 nopl (%rax) 0000000000232720 : } int RichString_appendnAscii(RichString* this, int attrs, const char* data, int len) { 232720: 55 push %rbp 232721: 48 89 e5 mov %rsp,%rbp 232724: 48 83 ec 20 sub $0x20,%rsp 232728: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23272c: 89 75 f4 mov %esi,-0xc(%rbp) 23272f: 48 89 55 e8 mov %rdx,-0x18(%rbp) 232733: 89 4d e4 mov %ecx,-0x1c(%rbp) return RichString_writeFromAscii(this, attrs, data, this->chlen, len); 232736: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23273a: 8b 75 f4 mov -0xc(%rbp),%esi 23273d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 232741: 48 8b 45 f8 mov -0x8(%rbp),%rax 232745: 8b 08 mov (%rax),%ecx 232747: 44 8b 45 e4 mov -0x1c(%rbp),%r8d 23274b: e8 90 fe ff ff call 2325e0 232750: 48 83 c4 20 add $0x20,%rsp 232754: 5d pop %rbp 232755: c3 ret 232756: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000232760 : } int RichString_writeAscii(RichString* this, int attrs, const char* data) { 232760: 55 push %rbp 232761: 48 89 e5 mov %rsp,%rbp 232764: 48 83 ec 30 sub $0x30,%rsp 232768: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23276c: 89 75 f4 mov %esi,-0xc(%rbp) 23276f: 48 89 55 e8 mov %rdx,-0x18(%rbp) return RichString_writeFromAscii(this, attrs, data, 0, strlen(data)); 232773: 48 8b 45 f8 mov -0x8(%rbp),%rax 232777: 48 89 45 d0 mov %rax,-0x30(%rbp) 23277b: 8b 45 f4 mov -0xc(%rbp),%eax 23277e: 89 45 dc mov %eax,-0x24(%rbp) 232781: 48 8b 45 e8 mov -0x18(%rbp),%rax 232785: 48 89 45 e0 mov %rax,-0x20(%rbp) 232789: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23278d: e8 5e ba 00 00 call 23e1f0 232792: 48 8b 7d d0 mov -0x30(%rbp),%rdi 232796: 8b 75 dc mov -0x24(%rbp),%esi 232799: 48 8b 55 e0 mov -0x20(%rbp),%rdx 23279d: 41 89 c0 mov %eax,%r8d 2327a0: 31 c9 xor %ecx,%ecx 2327a2: e8 39 fe ff ff call 2325e0 2327a7: 48 83 c4 30 add $0x30,%rsp 2327ab: 5d pop %rbp 2327ac: c3 ret 2327ad: 0f 1f 00 nopl (%rax) 00000000002327b0 : static void RichString_extendLen(RichString* this, int len) { 2327b0: 55 push %rbp 2327b1: 48 89 e5 mov %rsp,%rbp 2327b4: 48 83 ec 40 sub $0x40,%rsp 2327b8: 48 8b 05 71 00 01 00 mov 0x10071(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2327bf: 48 89 45 f8 mov %rax,-0x8(%rbp) 2327c3: 48 89 7d d0 mov %rdi,-0x30(%rbp) 2327c7: 89 75 cc mov %esi,-0x34(%rbp) if (this->chlen <= RICHSTRING_MAXLEN) { 2327ca: 48 8b 45 d0 mov -0x30(%rbp),%rax 2327ce: 81 38 5e 01 00 00 cmpl $0x15e,(%rax) 2327d4: 0f 8f 4e 00 00 00 jg 232828 if (len > RICHSTRING_MAXLEN) { 2327da: 81 7d cc 5e 01 00 00 cmpl $0x15e,-0x34(%rbp) 2327e1: 0f 8e 3c 00 00 00 jle 232823 this->chptr = xMalloc(charBytes(len + 1)); 2327e7: 8b 45 cc mov -0x34(%rbp),%eax 2327ea: 83 c0 01 add $0x1,%eax 2327ed: 48 98 cltq 2327ef: 48 6b f8 1c imul $0x1c,%rax,%rdi 2327f3: e8 68 62 00 00 call 238a60 2327f8: 48 89 c1 mov %rax,%rcx 2327fb: 48 8b 45 d0 mov -0x30(%rbp),%rax 2327ff: 48 89 48 08 mov %rcx,0x8(%rax) memcpy(this->chptr, this->chstr, charBytes(this->chlen)); 232803: 48 8b 45 d0 mov -0x30(%rbp),%rax 232807: 48 8b 78 08 mov 0x8(%rax),%rdi 23280b: 48 8b 75 d0 mov -0x30(%rbp),%rsi 23280f: 48 83 c6 10 add $0x10,%rsi 232813: 48 8b 45 d0 mov -0x30(%rbp),%rax 232817: 48 63 00 movslq (%rax),%rax 23281a: 48 6b d0 1c imul $0x1c,%rax,%rdx 23281e: e8 6d ba 00 00 call 23e290 } else { 232823: e9 75 00 00 00 jmp 23289d if (len <= RICHSTRING_MAXLEN) { 232828: 81 7d cc 5e 01 00 00 cmpl $0x15e,-0x34(%rbp) 23282f: 0f 8f 3f 00 00 00 jg 232874 memcpy(this->chstr, this->chptr, charBytes(len)); 232835: 48 8b 7d d0 mov -0x30(%rbp),%rdi 232839: 48 83 c7 10 add $0x10,%rdi 23283d: 48 8b 45 d0 mov -0x30(%rbp),%rax 232841: 48 8b 70 08 mov 0x8(%rax),%rsi 232845: 48 63 45 cc movslq -0x34(%rbp),%rax 232849: 48 6b d0 1c imul $0x1c,%rax,%rdx 23284d: e8 3e ba 00 00 call 23e290 free(this->chptr); 232852: 48 8b 45 d0 mov -0x30(%rbp),%rax 232856: 48 8b 78 08 mov 0x8(%rax),%rdi 23285a: e8 01 b9 00 00 call 23e160 this->chptr = this->chstr; 23285f: 48 8b 4d d0 mov -0x30(%rbp),%rcx 232863: 48 83 c1 10 add $0x10,%rcx 232867: 48 8b 45 d0 mov -0x30(%rbp),%rax 23286b: 48 89 48 08 mov %rcx,0x8(%rax) } else { 23286f: e9 24 00 00 00 jmp 232898 this->chptr = xRealloc(this->chptr, charBytes(len + 1)); 232874: 48 8b 45 d0 mov -0x30(%rbp),%rax 232878: 48 8b 78 08 mov 0x8(%rax),%rdi 23287c: 8b 45 cc mov -0x34(%rbp),%eax 23287f: 83 c0 01 add $0x1,%eax 232882: 48 98 cltq 232884: 48 6b f0 1c imul $0x1c,%rax,%rsi 232888: e8 c3 62 00 00 call 238b50 23288d: 48 89 c1 mov %rax,%rcx 232890: 48 8b 45 d0 mov -0x30(%rbp),%rax 232894: 48 89 48 08 mov %rcx,0x8(%rax) 232898: e9 00 00 00 00 jmp 23289d RichString_setChar(this, len, 0); 23289d: e9 00 00 00 00 jmp 2328a2 2328a2: 48 8b 45 d0 mov -0x30(%rbp),%rax 2328a6: 48 8b 40 08 mov 0x8(%rax),%rax 2328aa: 48 63 4d cc movslq -0x34(%rbp),%rcx 2328ae: 48 6b c9 1c imul $0x1c,%rcx,%rcx 2328b2: 48 01 c8 add %rcx,%rax 2328b5: 48 89 45 c0 mov %rax,-0x40(%rbp) 2328b9: 48 8d 7d d8 lea -0x28(%rbp),%rdi 2328bd: 31 f6 xor %esi,%esi 2328bf: ba 1c 00 00 00 mov $0x1c,%edx 2328c4: e8 77 b9 00 00 call 23e240 2328c9: 48 8b 45 c0 mov -0x40(%rbp),%rax 2328cd: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2328d1: 48 89 08 mov %rcx,(%rax) 2328d4: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2328d8: 48 89 48 08 mov %rcx,0x8(%rax) 2328dc: 48 8b 4d e8 mov -0x18(%rbp),%rcx 2328e0: 48 89 48 10 mov %rcx,0x10(%rax) 2328e4: 8b 4d f0 mov -0x10(%rbp),%ecx 2328e7: 89 48 18 mov %ecx,0x18(%rax) this->chlen = len; 2328ea: 8b 4d cc mov -0x34(%rbp),%ecx 2328ed: 48 8b 45 d0 mov -0x30(%rbp),%rax 2328f1: 89 08 mov %ecx,(%rax) 2328f3: 48 8b 05 36 ff 00 00 mov 0xff36(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2328fa: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2328fe: 48 39 c8 cmp %rcx,%rax 232901: 0f 85 06 00 00 00 jne 23290d } 232907: 48 83 c4 40 add $0x40,%rsp 23290b: 5d pop %rbp 23290c: c3 ret 23290d: e8 2e b8 00 00 call 23e140 <__stack_chk_fail@plt> 232912: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23291c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000232920 <__maskrune>: { 232920: 55 push %rbp 232921: 48 89 e5 mov %rsp,%rbp 232924: 48 83 ec 20 sub $0x20,%rsp 232928: 89 7d fc mov %edi,-0x4(%rbp) 23292b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return ((_c < 0 || _c >= _CACHED_RUNES) ? ___runetype(_c) : 23292f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 232933: 0f 8c 0d 00 00 00 jl 232946 <__maskrune+0x26> 232939: 81 7d fc 00 01 00 00 cmpl $0x100,-0x4(%rbp) 232940: 0f 8c 11 00 00 00 jl 232957 <__maskrune+0x37> 232946: 8b 7d fc mov -0x4(%rbp),%edi 232949: e8 92 be 00 00 call 23e7e0 <___runetype@plt> 23294e: 48 89 45 e8 mov %rax,-0x18(%rbp) 232952: e9 12 00 00 00 jmp 232969 <__maskrune+0x49> _CurrentRuneLocale->__runetype[_c]) & _f; 232957: e8 24 00 00 00 call 232980 <__getCurrentRuneLocale> 23295c: 48 63 4d fc movslq -0x4(%rbp),%rcx 232960: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 232965: 48 89 45 e8 mov %rax,-0x18(%rbp) 232969: 48 8b 45 e8 mov -0x18(%rbp),%rax 23296d: 48 23 45 f0 and -0x10(%rbp),%rax return ((_c < 0 || _c >= _CACHED_RUNES) ? ___runetype(_c) : 232971: 48 83 c4 20 add $0x20,%rsp 232975: 5d pop %rbp 232976: c3 ret 232977: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000232980 <__getCurrentRuneLocale>: { 232980: 55 push %rbp 232981: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 232984: 48 8b 0d 25 d3 00 00 mov 0xd325(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 23298b: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 232994: 48 8b 04 08 mov (%rax,%rcx,1),%rax 232998: 48 83 f8 00 cmp $0x0,%rax 23299c: 0f 84 1d 00 00 00 je 2329bf <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 2329a2: 48 8b 0d 07 d3 00 00 mov 0xd307(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 2329a9: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 2329b2: 48 8b 04 08 mov (%rax,%rcx,1),%rax 2329b6: 48 89 45 f8 mov %rax,-0x8(%rbp) 2329ba: e9 0c 00 00 00 jmp 2329cb <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 2329bf: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 2329c7: 48 89 45 f8 mov %rax,-0x8(%rbp) } 2329cb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2329cf: 5d pop %rbp 2329d0: c3 ret 2329d1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2329db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002329e0 <__sbistype>: { 2329e0: 55 push %rbp 2329e1: 48 89 e5 mov %rsp,%rbp 2329e4: 48 83 ec 10 sub $0x10,%rsp 2329e8: 89 7d fc mov %edi,-0x4(%rbp) 2329eb: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 2329ef: 8b 7d fc mov -0x4(%rbp),%edi 2329f2: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2329f6: e8 15 00 00 00 call 232a10 <__sbmaskrune> 2329fb: 83 f8 00 cmp $0x0,%eax 2329fe: 0f 95 c0 setne %al 232a01: 34 ff xor $0xff,%al 232a03: 34 ff xor $0xff,%al 232a05: 24 01 and $0x1,%al 232a07: 0f b6 c0 movzbl %al,%eax 232a0a: 48 83 c4 10 add $0x10,%rsp 232a0e: 5d pop %rbp 232a0f: c3 ret 0000000000232a10 <__sbmaskrune>: { 232a10: 55 push %rbp 232a11: 48 89 e5 mov %rsp,%rbp 232a14: 48 83 ec 20 sub $0x20,%rsp 232a18: 89 7d fc mov %edi,-0x4(%rbp) 232a1b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 232a1f: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 232a23: 0f 8c 10 00 00 00 jl 232a39 <__sbmaskrune+0x29> 232a29: 8b 45 fc mov -0x4(%rbp),%eax 232a2c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 232a33: 0f 8c 0b 00 00 00 jl 232a44 <__sbmaskrune+0x34> 232a39: 31 c0 xor %eax,%eax 232a3b: 48 89 45 e8 mov %rax,-0x18(%rbp) 232a3f: e9 16 00 00 00 jmp 232a5a <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 232a44: e8 37 ff ff ff call 232980 <__getCurrentRuneLocale> 232a49: 48 63 4d fc movslq -0x4(%rbp),%rcx 232a4d: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 232a52: 48 23 45 f0 and -0x10(%rbp),%rax 232a56: 48 89 45 e8 mov %rax,-0x18(%rbp) 232a5a: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 232a5e: 48 83 c4 20 add $0x20,%rsp 232a62: 5d pop %rbp 232a63: c3 ret 232a64: cc int3 232a65: cc int3 232a66: cc int3 232a67: cc int3 232a68: cc int3 232a69: cc int3 232a6a: cc int3 232a6b: cc int3 232a6c: cc int3 232a6d: cc int3 232a6e: cc int3 232a6f: cc int3 0000000000232a70 : #include "ProcessList.h" #include "ProvideCurses.h" #include "XUtils.h" ScreenManager* ScreenManager_new(Header* header, const Settings* settings, const State* state, bool owner) { 232a70: 55 push %rbp 232a71: 48 89 e5 mov %rsp,%rbp 232a74: 48 83 ec 30 sub $0x30,%rsp 232a78: 88 c8 mov %cl,%al 232a7a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 232a7e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 232a82: 48 89 55 e8 mov %rdx,-0x18(%rbp) 232a86: 24 01 and $0x1,%al 232a88: 88 45 e7 mov %al,-0x19(%rbp) ScreenManager* this; this = xMalloc(sizeof(ScreenManager)); 232a8b: bf 40 00 00 00 mov $0x40,%edi 232a90: e8 cb 5f 00 00 call 238a60 232a95: 48 89 45 d8 mov %rax,-0x28(%rbp) this->x1 = 0; 232a99: 48 8b 45 d8 mov -0x28(%rbp),%rax 232a9d: c7 00 00 00 00 00 movl $0x0,(%rax) this->y1 = 0; 232aa3: 48 8b 45 d8 mov -0x28(%rbp),%rax 232aa7: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) this->x2 = 0; 232aae: 48 8b 45 d8 mov -0x28(%rbp),%rax 232ab2: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->y2 = -1; 232ab9: 48 8b 45 d8 mov -0x28(%rbp),%rax 232abd: c7 40 0c ff ff ff ff movl $0xffffffff,0xc(%rax) this->panels = Vector_new(Class(Panel), owner, DEFAULT_SIZE); 232ac4: 8a 45 e7 mov -0x19(%rbp),%al 232ac7: 48 bf f8 9c 20 00 00 00 00 00 movabs $0x209cf8,%rdi 232ad1: ba ff ff ff ff mov $0xffffffff,%edx 232ad6: 24 01 and $0x1,%al 232ad8: 0f b6 f0 movzbl %al,%esi 232adb: e8 a0 55 00 00 call 238080 232ae0: 48 89 c1 mov %rax,%rcx 232ae3: 48 8b 45 d8 mov -0x28(%rbp),%rax 232ae7: 48 89 48 10 mov %rcx,0x10(%rax) this->panelCount = 0; 232aeb: 48 8b 45 d8 mov -0x28(%rbp),%rax 232aef: c7 40 18 00 00 00 00 movl $0x0,0x18(%rax) this->header = header; 232af6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 232afa: 48 8b 45 d8 mov -0x28(%rbp),%rax 232afe: 48 89 48 20 mov %rcx,0x20(%rax) this->settings = settings; 232b02: 48 8b 4d f0 mov -0x10(%rbp),%rcx 232b06: 48 8b 45 d8 mov -0x28(%rbp),%rax 232b0a: 48 89 48 28 mov %rcx,0x28(%rax) this->state = state; 232b0e: 48 8b 4d e8 mov -0x18(%rbp),%rcx 232b12: 48 8b 45 d8 mov -0x28(%rbp),%rax 232b16: 48 89 48 30 mov %rcx,0x30(%rax) this->allowFocusChange = true; 232b1a: 48 8b 45 d8 mov -0x28(%rbp),%rax 232b1e: c6 40 38 01 movb $0x1,0x38(%rax) return this; 232b22: 48 8b 45 d8 mov -0x28(%rbp),%rax 232b26: 48 83 c4 30 add $0x30,%rsp 232b2a: 5d pop %rbp 232b2b: c3 ret 232b2c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000232b30 : } void ScreenManager_delete(ScreenManager* this) { 232b30: 55 push %rbp 232b31: 48 89 e5 mov %rsp,%rbp 232b34: 48 83 ec 10 sub $0x10,%rsp 232b38: 48 89 7d f8 mov %rdi,-0x8(%rbp) Vector_delete(this->panels); 232b3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 232b40: 48 8b 78 10 mov 0x10(%rax),%rdi 232b44: e8 c7 55 00 00 call 238110 free(this); 232b49: 48 8b 7d f8 mov -0x8(%rbp),%rdi 232b4d: e8 0e b6 00 00 call 23e160 } 232b52: 48 83 c4 10 add $0x10,%rsp 232b56: 5d pop %rbp 232b57: c3 ret 232b58: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000232b60 : inline int ScreenManager_size(const ScreenManager* this) { 232b60: 55 push %rbp 232b61: 48 89 e5 mov %rsp,%rbp 232b64: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->panelCount; 232b68: 48 8b 45 f8 mov -0x8(%rbp),%rax 232b6c: 8b 40 18 mov 0x18(%rax),%eax 232b6f: 5d pop %rbp 232b70: c3 ret 232b71: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 232b7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000232b80 : } void ScreenManager_add(ScreenManager* this, Panel* item, int size) { 232b80: 55 push %rbp 232b81: 48 89 e5 mov %rsp,%rbp 232b84: 48 83 ec 50 sub $0x50,%rsp 232b88: 48 89 7d f8 mov %rdi,-0x8(%rbp) 232b8c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 232b90: 89 55 ec mov %edx,-0x14(%rbp) int lastX = 0; 232b93: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) if (this->panelCount > 0) { 232b9a: 48 8b 45 f8 mov -0x8(%rbp),%rax 232b9e: 83 78 18 00 cmpl $0x0,0x18(%rax) 232ba2: 0f 8e 2f 00 00 00 jle 232bd7 const Panel* last = (const Panel*) Vector_get(this->panels, this->panelCount - 1); 232ba8: 48 8b 45 f8 mov -0x8(%rbp),%rax 232bac: 48 8b 78 10 mov 0x10(%rax),%rdi 232bb0: 48 8b 45 f8 mov -0x8(%rbp),%rax 232bb4: 8b 70 18 mov 0x18(%rax),%esi 232bb7: 83 ee 01 sub $0x1,%esi 232bba: e8 31 01 00 00 call 232cf0 232bbf: 48 89 45 e0 mov %rax,-0x20(%rbp) lastX = last->x + last->w + 1; 232bc3: 48 8b 45 e0 mov -0x20(%rbp),%rax 232bc7: 8b 40 08 mov 0x8(%rax),%eax 232bca: 48 8b 4d e0 mov -0x20(%rbp),%rcx 232bce: 03 41 10 add 0x10(%rcx),%eax 232bd1: 83 c0 01 add $0x1,%eax 232bd4: 89 45 e8 mov %eax,-0x18(%rbp) } int height = LINES - this->y1 - (this->header ? this->header->height : 0) + this->y2; 232bd7: 8b 04 25 80 28 24 00 mov 0x242880,%eax 232bde: 48 8b 4d f8 mov -0x8(%rbp),%rcx 232be2: 2b 41 04 sub 0x4(%rcx),%eax 232be5: 89 45 d8 mov %eax,-0x28(%rbp) 232be8: 48 8b 45 f8 mov -0x8(%rbp),%rax 232bec: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 232bf1: 0f 84 13 00 00 00 je 232c0a 232bf7: 48 8b 45 f8 mov -0x8(%rbp),%rax 232bfb: 48 8b 40 20 mov 0x20(%rax),%rax 232bff: 8b 40 20 mov 0x20(%rax),%eax 232c02: 89 45 d4 mov %eax,-0x2c(%rbp) 232c05: e9 0a 00 00 00 jmp 232c14 232c0a: 31 c0 xor %eax,%eax 232c0c: 89 45 d4 mov %eax,-0x2c(%rbp) 232c0f: e9 00 00 00 00 jmp 232c14 232c14: 8b 45 d8 mov -0x28(%rbp),%eax 232c17: 8b 4d d4 mov -0x2c(%rbp),%ecx 232c1a: 29 c8 sub %ecx,%eax 232c1c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 232c20: 03 41 0c add 0xc(%rcx),%eax 232c23: 89 45 dc mov %eax,-0x24(%rbp) if (size > 0) { 232c26: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 232c2a: 0f 8e 14 00 00 00 jle 232c44 Panel_resize(item, size, height); 232c30: 48 8b 7d f0 mov -0x10(%rbp),%rdi 232c34: 8b 75 ec mov -0x14(%rbp),%esi 232c37: 8b 55 dc mov -0x24(%rbp),%edx 232c3a: e8 21 52 ff ff call 227e60 } else { 232c3f: e9 23 00 00 00 jmp 232c67 Panel_resize(item, COLS - this->x1 + this->x2 - lastX, height); 232c44: 48 8b 7d f0 mov -0x10(%rbp),%rdi 232c48: 8b 34 25 70 28 24 00 mov 0x242870,%esi 232c4f: 48 8b 45 f8 mov -0x8(%rbp),%rax 232c53: 2b 30 sub (%rax),%esi 232c55: 48 8b 45 f8 mov -0x8(%rbp),%rax 232c59: 03 70 08 add 0x8(%rax),%esi 232c5c: 2b 75 e8 sub -0x18(%rbp),%esi 232c5f: 8b 55 dc mov -0x24(%rbp),%edx 232c62: e8 f9 51 ff ff call 227e60 } Panel_move(item, lastX, this->y1 + (this->header ? this->header->height : 0)); 232c67: 48 8b 45 f0 mov -0x10(%rbp),%rax 232c6b: 48 89 45 c0 mov %rax,-0x40(%rbp) 232c6f: 8b 45 e8 mov -0x18(%rbp),%eax 232c72: 89 45 cc mov %eax,-0x34(%rbp) 232c75: 48 8b 45 f8 mov -0x8(%rbp),%rax 232c79: 8b 40 04 mov 0x4(%rax),%eax 232c7c: 89 45 d0 mov %eax,-0x30(%rbp) 232c7f: 48 8b 45 f8 mov -0x8(%rbp),%rax 232c83: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 232c88: 0f 84 13 00 00 00 je 232ca1 232c8e: 48 8b 45 f8 mov -0x8(%rbp),%rax 232c92: 48 8b 40 20 mov 0x20(%rax),%rax 232c96: 8b 40 20 mov 0x20(%rax),%eax 232c99: 89 45 bc mov %eax,-0x44(%rbp) 232c9c: e9 0a 00 00 00 jmp 232cab 232ca1: 31 c0 xor %eax,%eax 232ca3: 89 45 bc mov %eax,-0x44(%rbp) 232ca6: e9 00 00 00 00 jmp 232cab 232cab: 8b 75 cc mov -0x34(%rbp),%esi 232cae: 48 8b 7d c0 mov -0x40(%rbp),%rdi 232cb2: 8b 55 d0 mov -0x30(%rbp),%edx 232cb5: 8b 45 bc mov -0x44(%rbp),%eax 232cb8: 01 c2 add %eax,%edx 232cba: e8 71 51 ff ff call 227e30 Vector_add(this->panels, item); 232cbf: 48 8b 45 f8 mov -0x8(%rbp),%rax 232cc3: 48 8b 78 10 mov 0x10(%rax),%rdi 232cc7: 48 8b 75 f0 mov -0x10(%rbp),%rsi 232ccb: e8 10 5b 00 00 call 2387e0 item->needsRedraw = true; 232cd0: 48 8b 45 f0 mov -0x10(%rbp),%rax 232cd4: c6 40 40 01 movb $0x1,0x40(%rax) this->panelCount++; 232cd8: 48 8b 45 f8 mov -0x8(%rbp),%rax 232cdc: 8b 48 18 mov 0x18(%rax),%ecx 232cdf: 83 c1 01 add $0x1,%ecx 232ce2: 89 48 18 mov %ecx,0x18(%rax) } 232ce5: 48 83 c4 50 add $0x50,%rsp 232ce9: 5d pop %rbp 232cea: c3 ret 232ceb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000232cf0 : static inline Object* Vector_get(const Vector* this, int idx) { 232cf0: 55 push %rbp 232cf1: 48 89 e5 mov %rsp,%rbp 232cf4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 232cf8: 89 75 f4 mov %esi,-0xc(%rbp) return this->array[idx]; 232cfb: 48 8b 45 f8 mov -0x8(%rbp),%rax 232cff: 48 8b 00 mov (%rax),%rax 232d02: 48 63 4d f4 movslq -0xc(%rbp),%rcx 232d06: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 232d0a: 5d pop %rbp 232d0b: c3 ret 232d0c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000232d10 : Panel* ScreenManager_remove(ScreenManager* this, int idx) { 232d10: 55 push %rbp 232d11: 48 89 e5 mov %rsp,%rbp 232d14: 48 83 ec 20 sub $0x20,%rsp 232d18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 232d1c: 89 75 f4 mov %esi,-0xc(%rbp) assert(this->panelCount > idx); Panel* panel = (Panel*) Vector_remove(this->panels, idx); 232d1f: 48 8b 45 f8 mov -0x8(%rbp),%rax 232d23: 48 8b 78 10 mov 0x10(%rax),%rdi 232d27: 8b 75 f4 mov -0xc(%rbp),%esi 232d2a: e8 c1 58 00 00 call 2385f0 232d2f: 48 89 45 e8 mov %rax,-0x18(%rbp) this->panelCount--; 232d33: 48 8b 45 f8 mov -0x8(%rbp),%rax 232d37: 8b 48 18 mov 0x18(%rax),%ecx 232d3a: 83 c1 ff add $0xffffffff,%ecx 232d3d: 89 48 18 mov %ecx,0x18(%rax) return panel; 232d40: 48 8b 45 e8 mov -0x18(%rbp),%rax 232d44: 48 83 c4 20 add $0x20,%rsp 232d48: 5d pop %rbp 232d49: c3 ret 232d4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000232d50 : } void ScreenManager_resize(ScreenManager* this) { 232d50: 55 push %rbp 232d51: 48 89 e5 mov %rsp,%rbp 232d54: 48 83 ec 30 sub $0x30,%rsp 232d58: 48 89 7d f8 mov %rdi,-0x8(%rbp) int y1_header = this->y1 + (this->header ? this->header->height : 0); 232d5c: 48 8b 45 f8 mov -0x8(%rbp),%rax 232d60: 8b 40 04 mov 0x4(%rax),%eax 232d63: 89 45 d4 mov %eax,-0x2c(%rbp) 232d66: 48 8b 45 f8 mov -0x8(%rbp),%rax 232d6a: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 232d6f: 0f 84 13 00 00 00 je 232d88 232d75: 48 8b 45 f8 mov -0x8(%rbp),%rax 232d79: 48 8b 40 20 mov 0x20(%rax),%rax 232d7d: 8b 40 20 mov 0x20(%rax),%eax 232d80: 89 45 d0 mov %eax,-0x30(%rbp) 232d83: e9 0a 00 00 00 jmp 232d92 232d88: 31 c0 xor %eax,%eax 232d8a: 89 45 d0 mov %eax,-0x30(%rbp) 232d8d: e9 00 00 00 00 jmp 232d92 232d92: 8b 45 d4 mov -0x2c(%rbp),%eax 232d95: 8b 4d d0 mov -0x30(%rbp),%ecx 232d98: 01 c8 add %ecx,%eax 232d9a: 89 45 f4 mov %eax,-0xc(%rbp) int panels = this->panelCount; 232d9d: 48 8b 45 f8 mov -0x8(%rbp),%rax 232da1: 8b 40 18 mov 0x18(%rax),%eax 232da4: 89 45 f0 mov %eax,-0x10(%rbp) int lastX = 0; 232da7: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) for (int i = 0; i < panels - 1; i++) { 232dae: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 232db5: 8b 45 e8 mov -0x18(%rbp),%eax 232db8: 8b 4d f0 mov -0x10(%rbp),%ecx 232dbb: 83 e9 01 sub $0x1,%ecx 232dbe: 39 c8 cmp %ecx,%eax 232dc0: 0f 8d 66 00 00 00 jge 232e2c Panel* panel = (Panel*) Vector_get(this->panels, i); 232dc6: 48 8b 45 f8 mov -0x8(%rbp),%rax 232dca: 48 8b 78 10 mov 0x10(%rax),%rdi 232dce: 8b 75 e8 mov -0x18(%rbp),%esi 232dd1: e8 1a ff ff ff call 232cf0 232dd6: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_resize(panel, panel->w, LINES - y1_header + this->y2); 232dda: 48 8b 7d e0 mov -0x20(%rbp),%rdi 232dde: 48 8b 45 e0 mov -0x20(%rbp),%rax 232de2: 8b 70 10 mov 0x10(%rax),%esi 232de5: 8b 14 25 80 28 24 00 mov 0x242880,%edx 232dec: 2b 55 f4 sub -0xc(%rbp),%edx 232def: 48 8b 45 f8 mov -0x8(%rbp),%rax 232df3: 03 50 0c add 0xc(%rax),%edx 232df6: e8 65 50 ff ff call 227e60 Panel_move(panel, lastX, y1_header); 232dfb: 48 8b 7d e0 mov -0x20(%rbp),%rdi 232dff: 8b 75 ec mov -0x14(%rbp),%esi 232e02: 8b 55 f4 mov -0xc(%rbp),%edx 232e05: e8 26 50 ff ff call 227e30 lastX = panel->x + panel->w + 1; 232e0a: 48 8b 45 e0 mov -0x20(%rbp),%rax 232e0e: 8b 40 08 mov 0x8(%rax),%eax 232e11: 48 8b 4d e0 mov -0x20(%rbp),%rcx 232e15: 03 41 10 add 0x10(%rcx),%eax 232e18: 83 c0 01 add $0x1,%eax 232e1b: 89 45 ec mov %eax,-0x14(%rbp) for (int i = 0; i < panels - 1; i++) { 232e1e: 8b 45 e8 mov -0x18(%rbp),%eax 232e21: 83 c0 01 add $0x1,%eax 232e24: 89 45 e8 mov %eax,-0x18(%rbp) 232e27: e9 89 ff ff ff jmp 232db5 } Panel* panel = (Panel*) Vector_get(this->panels, panels - 1); 232e2c: 48 8b 45 f8 mov -0x8(%rbp),%rax 232e30: 48 8b 78 10 mov 0x10(%rax),%rdi 232e34: 8b 75 f0 mov -0x10(%rbp),%esi 232e37: 83 ee 01 sub $0x1,%esi 232e3a: e8 b1 fe ff ff call 232cf0 232e3f: 48 89 45 d8 mov %rax,-0x28(%rbp) Panel_resize(panel, COLS - this->x1 + this->x2 - lastX, LINES - y1_header + this->y2); 232e43: 48 8b 7d d8 mov -0x28(%rbp),%rdi 232e47: 8b 34 25 70 28 24 00 mov 0x242870,%esi 232e4e: 48 8b 45 f8 mov -0x8(%rbp),%rax 232e52: 2b 30 sub (%rax),%esi 232e54: 48 8b 45 f8 mov -0x8(%rbp),%rax 232e58: 03 70 08 add 0x8(%rax),%esi 232e5b: 2b 75 ec sub -0x14(%rbp),%esi 232e5e: 8b 14 25 80 28 24 00 mov 0x242880,%edx 232e65: 2b 55 f4 sub -0xc(%rbp),%edx 232e68: 48 8b 45 f8 mov -0x8(%rbp),%rax 232e6c: 03 50 0c add 0xc(%rax),%edx 232e6f: e8 ec 4f ff ff call 227e60 Panel_move(panel, lastX, y1_header); 232e74: 48 8b 7d d8 mov -0x28(%rbp),%rdi 232e78: 8b 75 ec mov -0x14(%rbp),%esi 232e7b: 8b 55 f4 mov -0xc(%rbp),%edx 232e7e: e8 ad 4f ff ff call 227e30 } 232e83: 48 83 c4 30 add $0x30,%rsp 232e87: 5d pop %rbp 232e88: c3 ret 232e89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000232e90 : State_hideFunctionBar(this->state)); mvvline(panel->y, panel->x + panel->w, ' ', panel->h + (State_hideFunctionBar(this->state) ? 1 : 0)); } } void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) { 232e90: 55 push %rbp 232e91: 48 89 e5 mov %rsp,%rbp 232e94: 48 81 ec a0 00 00 00 sub $0xa0,%rsp 232e9b: 48 8b 05 8e f9 00 00 mov 0xf98e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 232ea2: 48 89 45 f8 mov %rax,-0x8(%rbp) 232ea6: 48 89 7d c8 mov %rdi,-0x38(%rbp) 232eaa: 48 89 75 c0 mov %rsi,-0x40(%rbp) 232eae: 48 89 55 b8 mov %rdx,-0x48(%rbp) bool quit = false; 232eb2: c6 45 b7 00 movb $0x0,-0x49(%rbp) int focus = 0; 232eb6: c7 45 b0 00 00 00 00 movl $0x0,-0x50(%rbp) Panel* panelFocus = (Panel*) Vector_get(this->panels, focus); 232ebd: 48 8b 45 c8 mov -0x38(%rbp),%rax 232ec1: 48 8b 78 10 mov 0x10(%rax),%rdi 232ec5: 8b 75 b0 mov -0x50(%rbp),%esi 232ec8: e8 23 fe ff ff call 232cf0 232ecd: 48 89 45 a8 mov %rax,-0x58(%rbp) double oldTime = 0.0; 232ed1: 0f 57 c0 xorps %xmm0,%xmm0 232ed4: f2 0f 11 45 f0 movsd %xmm0,-0x10(%rbp) int ch = ERR; 232ed9: c7 45 a4 ff ff ff ff movl $0xffffffff,-0x5c(%rbp) int closeTimeout = 0; 232ee0: c7 45 a0 00 00 00 00 movl $0x0,-0x60(%rbp) bool timedOut = true; 232ee7: c6 45 ef 01 movb $0x1,-0x11(%rbp) bool redraw = true; 232eeb: c6 45 ee 01 movb $0x1,-0x12(%rbp) bool force_redraw = true; 232eef: c6 45 ed 01 movb $0x1,-0x13(%rbp) bool rescan = false; 232ef3: c6 45 ec 00 movb $0x0,-0x14(%rbp) int sortTimeout = 0; 232ef7: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) int resetSortTimeout = 5; 232efe: c7 45 9c 05 00 00 00 movl $0x5,-0x64(%rbp) while (!quit) { 232f05: 8a 45 b7 mov -0x49(%rbp),%al 232f08: 34 ff xor $0xff,%al 232f0a: a8 01 test $0x1,%al 232f0c: 0f 85 05 00 00 00 jne 232f17 232f12: e9 23 06 00 00 jmp 23353a if (this->header) { 232f17: 48 8b 45 c8 mov -0x38(%rbp),%rax 232f1b: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 232f20: 0f 84 25 00 00 00 je 232f4b checkRecalculation(this, &oldTime, &sortTimeout, &redraw, &rescan, &timedOut, &force_redraw); 232f26: 48 8b 7d c8 mov -0x38(%rbp),%rdi 232f2a: 48 8d 75 f0 lea -0x10(%rbp),%rsi 232f2e: 48 8d 55 e8 lea -0x18(%rbp),%rdx 232f32: 48 8d 4d ee lea -0x12(%rbp),%rcx 232f36: 4c 8d 45 ec lea -0x14(%rbp),%r8 232f3a: 4c 8d 4d ef lea -0x11(%rbp),%r9 232f3e: 48 8d 45 ed lea -0x13(%rbp),%rax 232f42: 48 89 04 24 mov %rax,(%rsp) 232f46: e8 45 06 00 00 call 233590 } if (redraw || force_redraw) { 232f4b: f6 45 ee 01 testb $0x1,-0x12(%rbp) 232f4f: 0f 85 0a 00 00 00 jne 232f5f 232f55: f6 45 ed 01 testb $0x1,-0x13(%rbp) 232f59: 0f 84 18 00 00 00 je 232f77 ScreenManager_drawPanels(this, focus, force_redraw); 232f5f: 48 8b 7d c8 mov -0x38(%rbp),%rdi 232f63: 8b 75 b0 mov -0x50(%rbp),%esi 232f66: 8a 45 ed mov -0x13(%rbp),%al 232f69: 24 01 and $0x1,%al 232f6b: 0f b6 d0 movzbl %al,%edx 232f6e: e8 ed 07 00 00 call 233760 force_redraw = false; 232f73: c6 45 ed 00 movb $0x0,-0x13(%rbp) } int prevCh = ch; 232f77: 8b 45 a4 mov -0x5c(%rbp),%eax 232f7a: 89 45 98 mov %eax,-0x68(%rbp) #ifdef HAVE_SET_ESCDELAY set_escdelay(25); 232f7d: bf 19 00 00 00 mov $0x19,%edi 232f82: e8 79 b6 00 00 call 23e600 #endif ch = getch(); 232f87: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 232f8f: e8 6c b5 00 00 call 23e500 232f94: 89 45 a4 mov %eax,-0x5c(%rbp) HandlerResult result = IGNORED; 232f97: c7 45 94 02 00 00 00 movl $0x2,-0x6c(%rbp) #ifdef HAVE_GETMOUSE if (ch == KEY_MOUSE && this->settings->enableMouse) { 232f9e: 81 7d a4 99 01 00 00 cmpl $0x199,-0x5c(%rbp) 232fa5: 0f 85 0a 02 00 00 jne 2331b5 232fab: 48 8b 45 c8 mov -0x38(%rbp),%rax 232faf: 48 8b 40 28 mov 0x28(%rax),%rax 232fb3: f6 40 62 01 testb $0x1,0x62(%rax) 232fb7: 0f 84 f8 01 00 00 je 2331b5 ch = ERR; 232fbd: c7 45 a4 ff ff ff ff movl $0xffffffff,-0x5c(%rbp) MEVENT mevent; int ok = getmouse(&mevent); 232fc4: 48 8d 7d d0 lea -0x30(%rbp),%rdi 232fc8: e8 43 b6 00 00 call 23e610 232fcd: 89 45 90 mov %eax,-0x70(%rbp) if (ok == OK) { 232fd0: 83 7d 90 00 cmpl $0x0,-0x70(%rbp) 232fd4: 0f 85 d6 01 00 00 jne 2331b0 if (mevent.bstate & BUTTON1_RELEASED) { 232fda: 8b 45 e0 mov -0x20(%rbp),%eax 232fdd: 48 83 e0 01 and $0x1,%rax 232fe1: 48 83 f8 00 cmp $0x0,%rax 232fe5: 0f 84 7d 01 00 00 je 233168 if (mevent.y == LINES - 1) { 232feb: 8b 45 d8 mov -0x28(%rbp),%eax 232fee: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 232ff5: 83 e9 01 sub $0x1,%ecx 232ff8: 39 c8 cmp %ecx,%eax 232ffa: 0f 85 18 00 00 00 jne 233018 ch = FunctionBar_synthesizeEvent(panelFocus->currentBar, mevent.x); 233000: 48 8b 45 a8 mov -0x58(%rbp),%rax 233004: 48 8b 78 48 mov 0x48(%rax),%rdi 233008: 8b 75 d4 mov -0x2c(%rbp),%esi 23300b: e8 40 ba fe ff call 21ea50 233010: 89 45 a4 mov %eax,-0x5c(%rbp) } else { 233013: e9 4b 01 00 00 jmp 233163 for (int i = 0; i < this->panelCount; i++) { 233018: c7 45 8c 00 00 00 00 movl $0x0,-0x74(%rbp) 23301f: 8b 45 8c mov -0x74(%rbp),%eax 233022: 48 8b 4d c8 mov -0x38(%rbp),%rcx 233026: 3b 41 18 cmp 0x18(%rcx),%eax 233029: 0f 8d 2f 01 00 00 jge 23315e Panel* panel = (Panel*) Vector_get(this->panels, i); 23302f: 48 8b 45 c8 mov -0x38(%rbp),%rax 233033: 48 8b 78 10 mov 0x10(%rax),%rdi 233037: 8b 75 8c mov -0x74(%rbp),%esi 23303a: e8 b1 fc ff ff call 232cf0 23303f: 48 89 45 80 mov %rax,-0x80(%rbp) if (mevent.x >= panel->x && mevent.x <= panel->x + panel->w) { 233043: 8b 45 d4 mov -0x2c(%rbp),%eax 233046: 48 8b 4d 80 mov -0x80(%rbp),%rcx 23304a: 3b 41 08 cmp 0x8(%rcx),%eax 23304d: 0f 8c f8 00 00 00 jl 23314b 233053: 8b 45 d4 mov -0x2c(%rbp),%eax 233056: 48 8b 4d 80 mov -0x80(%rbp),%rcx 23305a: 8b 49 08 mov 0x8(%rcx),%ecx 23305d: 48 8b 55 80 mov -0x80(%rbp),%rdx 233061: 03 4a 10 add 0x10(%rdx),%ecx 233064: 39 c8 cmp %ecx,%eax 233066: 0f 8f df 00 00 00 jg 23314b if (mevent.y == panel->y) { 23306c: 8b 45 d8 mov -0x28(%rbp),%eax 23306f: 48 8b 4d 80 mov -0x80(%rbp),%rcx 233073: 3b 41 0c cmp 0xc(%rcx),%eax 233076: 0f 85 17 00 00 00 jne 233093 ch = EVENT_HEADER_CLICK(mevent.x - panel->x); 23307c: 8b 45 d4 mov -0x2c(%rbp),%eax 23307f: 48 8b 4d 80 mov -0x80(%rbp),%rcx 233083: 2b 41 08 sub 0x8(%rcx),%eax 233086: 05 f0 d8 ff ff add $0xffffd8f0,%eax 23308b: 89 45 a4 mov %eax,-0x5c(%rbp) break; 23308e: e9 cb 00 00 00 jmp 23315e } else if (mevent.y > panel->y && mevent.y <= panel->y + panel->h) { 233093: 8b 45 d8 mov -0x28(%rbp),%eax 233096: 48 8b 4d 80 mov -0x80(%rbp),%rcx 23309a: 3b 41 0c cmp 0xc(%rcx),%eax 23309d: 0f 8e 9e 00 00 00 jle 233141 2330a3: 8b 45 d8 mov -0x28(%rbp),%eax 2330a6: 48 8b 4d 80 mov -0x80(%rbp),%rcx 2330aa: 8b 49 0c mov 0xc(%rcx),%ecx 2330ad: 48 8b 55 80 mov -0x80(%rbp),%rdx 2330b1: 03 4a 14 add 0x14(%rdx),%ecx 2330b4: 39 c8 cmp %ecx,%eax 2330b6: 0f 8f 85 00 00 00 jg 233141 ch = KEY_MOUSE; 2330bc: c7 45 a4 99 01 00 00 movl $0x199,-0x5c(%rbp) if (panel == panelFocus || this->allowFocusChange) { 2330c3: 48 8b 45 80 mov -0x80(%rbp),%rax 2330c7: 48 3b 45 a8 cmp -0x58(%rbp),%rax 2330cb: 0f 84 0e 00 00 00 je 2330df 2330d1: 48 8b 45 c8 mov -0x38(%rbp),%rax 2330d5: f6 40 38 01 testb $0x1,0x38(%rax) 2330d9: 0f 84 5d 00 00 00 je 23313c focus = i; 2330df: 8b 45 8c mov -0x74(%rbp),%eax 2330e2: 89 45 b0 mov %eax,-0x50(%rbp) panelFocus = panel; 2330e5: 48 8b 45 80 mov -0x80(%rbp),%rax 2330e9: 48 89 45 a8 mov %rax,-0x58(%rbp) const Object* oldSelection = Panel_getSelected(panel); 2330ed: 48 8b 7d 80 mov -0x80(%rbp),%rdi 2330f1: e8 7a 4f ff ff call 228070 2330f6: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) Panel_setSelected(panel, mevent.y - panel->y + panel->scrollV - 1); 2330fd: 48 8b 7d 80 mov -0x80(%rbp),%rdi 233101: 8b 75 d8 mov -0x28(%rbp),%esi 233104: 48 8b 45 80 mov -0x80(%rbp),%rax 233108: 2b 70 0c sub 0xc(%rax),%esi 23310b: 48 8b 45 80 mov -0x80(%rbp),%rax 23310f: 03 70 38 add 0x38(%rax),%esi 233112: 83 ee 01 sub $0x1,%esi 233115: e8 a6 50 ff ff call 2281c0 if (Panel_getSelected(panel) == oldSelection) { 23311a: 48 8b 7d 80 mov -0x80(%rbp),%rdi 23311e: e8 4d 4f ff ff call 228070 233123: 48 3b 85 78 ff ff ff cmp -0x88(%rbp),%rax 23312a: 0f 85 07 00 00 00 jne 233137 ch = KEY_RECLICK; 233130: c7 45 a4 28 01 00 00 movl $0x128,-0x5c(%rbp) } } 233137: e9 00 00 00 00 jmp 23313c break; 23313c: e9 1d 00 00 00 jmp 23315e 233141: e9 00 00 00 00 jmp 233146 } } 233146: e9 00 00 00 00 jmp 23314b } 23314b: e9 00 00 00 00 jmp 233150 for (int i = 0; i < this->panelCount; i++) { 233150: 8b 45 8c mov -0x74(%rbp),%eax 233153: 83 c0 01 add $0x1,%eax 233156: 89 45 8c mov %eax,-0x74(%rbp) 233159: e9 c1 fe ff ff jmp 23301f 23315e: e9 00 00 00 00 jmp 233163 } #if NCURSES_MOUSE_VERSION > 1 } else if (mevent.bstate & BUTTON4_PRESSED) { 233163: e9 43 00 00 00 jmp 2331ab 233168: 8b 45 e0 mov -0x20(%rbp),%eax 23316b: 48 25 00 00 01 00 and $0x10000,%rax 233171: 48 83 f8 00 cmp $0x0,%rax 233175: 0f 84 0c 00 00 00 je 233187 ch = KEY_WHEELUP; 23317b: c7 45 a4 26 01 00 00 movl $0x126,-0x5c(%rbp) } else if (mevent.bstate & BUTTON5_PRESSED) { 233182: e9 1f 00 00 00 jmp 2331a6 233187: 8b 45 e0 mov -0x20(%rbp),%eax 23318a: 48 25 00 00 20 00 and $0x200000,%rax 233190: 48 83 f8 00 cmp $0x0,%rax 233194: 0f 84 07 00 00 00 je 2331a1 ch = KEY_WHEELDOWN; 23319a: c7 45 a4 27 01 00 00 movl $0x127,-0x5c(%rbp) 2331a1: e9 00 00 00 00 jmp 2331a6 2331a6: e9 00 00 00 00 jmp 2331ab #endif } } 2331ab: e9 00 00 00 00 jmp 2331b0 } 2331b0: e9 00 00 00 00 jmp 2331b5 #endif if (ch == ERR) { 2331b5: 83 7d a4 ff cmpl $0xffffffff,-0x5c(%rbp) 2331b9: 0f 85 56 00 00 00 jne 233215 if (sortTimeout > 0) 2331bf: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) 2331c3: 0f 8e 09 00 00 00 jle 2331d2 sortTimeout--; 2331c9: 8b 45 e8 mov -0x18(%rbp),%eax 2331cc: 83 c0 ff add $0xffffffff,%eax 2331cf: 89 45 e8 mov %eax,-0x18(%rbp) if (prevCh == ch && !timedOut) { 2331d2: 8b 45 98 mov -0x68(%rbp),%eax 2331d5: 3b 45 a4 cmp -0x5c(%rbp),%eax 2331d8: 0f 85 27 00 00 00 jne 233205 2331de: f6 45 ef 01 testb $0x1,-0x11(%rbp) 2331e2: 0f 85 1d 00 00 00 jne 233205 closeTimeout++; 2331e8: 8b 45 a0 mov -0x60(%rbp),%eax 2331eb: 83 c0 01 add $0x1,%eax 2331ee: 89 45 a0 mov %eax,-0x60(%rbp) if (closeTimeout == 100) { 2331f1: 83 7d a0 64 cmpl $0x64,-0x60(%rbp) 2331f5: 0f 85 05 00 00 00 jne 233200 break; 2331fb: e9 3a 03 00 00 jmp 23353a } } else { 233200: e9 07 00 00 00 jmp 23320c closeTimeout = 0; 233205: c7 45 a0 00 00 00 00 movl $0x0,-0x60(%rbp) } redraw = false; 23320c: c6 45 ee 00 movb $0x0,-0x12(%rbp) continue; 233210: e9 f0 fc ff ff jmp 232f05 } switch (ch) { 233215: 8b 45 a4 mov -0x5c(%rbp),%eax 233218: 05 cb fe ff ff add $0xfffffecb,%eax 23321d: 89 c1 mov %eax,%ecx 23321f: 48 89 8d 70 ff ff ff mov %rcx,-0x90(%rbp) 233226: 83 e8 04 sub $0x4,%eax 233229: 0f 87 3c 00 00 00 ja 23326b 23322f: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 233236: 48 8b 04 c5 68 a6 20 00 mov 0x20a668(,%rax,8),%rax 23323e: ff e0 jmp *%rax case KEY_ALT('H'): ch = KEY_LEFT; break; 233240: c7 45 a4 04 01 00 00 movl $0x104,-0x5c(%rbp) 233247: e9 1f 00 00 00 jmp 23326b case KEY_ALT('J'): ch = KEY_DOWN; break; 23324c: c7 45 a4 02 01 00 00 movl $0x102,-0x5c(%rbp) 233253: e9 13 00 00 00 jmp 23326b case KEY_ALT('K'): ch = KEY_UP; break; 233258: c7 45 a4 03 01 00 00 movl $0x103,-0x5c(%rbp) 23325f: e9 07 00 00 00 jmp 23326b case KEY_ALT('L'): ch = KEY_RIGHT; break; 233264: c7 45 a4 05 01 00 00 movl $0x105,-0x5c(%rbp) } redraw = true; 23326b: c6 45 ee 01 movb $0x1,-0x12(%rbp) if (Panel_eventHandlerFn(panelFocus)) { 23326f: 48 8b 45 a8 mov -0x58(%rbp),%rax 233273: 48 8b 00 mov (%rax),%rax 233276: 48 83 78 20 00 cmpq $0x0,0x20(%rax) 23327b: 0f 84 17 00 00 00 je 233298 result = Panel_eventHandler(panelFocus, ch); 233281: 48 8b 45 a8 mov -0x58(%rbp),%rax 233285: 48 8b 00 mov (%rax),%rax 233288: 48 8b 40 20 mov 0x20(%rax),%rax 23328c: 48 8b 7d a8 mov -0x58(%rbp),%rdi 233290: 8b 75 a4 mov -0x5c(%rbp),%esi 233293: ff d0 call *%rax 233295: 89 45 94 mov %eax,-0x6c(%rbp) } if (result & SYNTH_KEY) { 233298: 8b 45 94 mov -0x6c(%rbp),%eax 23329b: 25 80 00 00 00 and $0x80,%eax 2332a0: 83 f8 00 cmp $0x0,%eax 2332a3: 0f 84 09 00 00 00 je 2332b2 ch = result >> 16; 2332a9: 8b 45 94 mov -0x6c(%rbp),%eax 2332ac: c1 e8 10 shr $0x10,%eax 2332af: 89 45 a4 mov %eax,-0x5c(%rbp) } if (result & REFRESH) { 2332b2: 8b 45 94 mov -0x6c(%rbp),%eax 2332b5: 83 e0 08 and $0x8,%eax 2332b8: 83 f8 00 cmp $0x0,%eax 2332bb: 0f 84 07 00 00 00 je 2332c8 sortTimeout = 0; 2332c1: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) } if (result & REDRAW) { 2332c8: 8b 45 94 mov -0x6c(%rbp),%eax 2332cb: 83 e0 10 and $0x10,%eax 2332ce: 83 f8 00 cmp $0x0,%eax 2332d1: 0f 84 04 00 00 00 je 2332db force_redraw = true; 2332d7: c6 45 ed 01 movb $0x1,-0x13(%rbp) } if (result & RESIZE) { 2332db: 8b 45 94 mov -0x6c(%rbp),%eax 2332de: 83 e0 40 and $0x40,%eax 2332e1: 83 f8 00 cmp $0x0,%eax 2332e4: 0f 84 0d 00 00 00 je 2332f7 ScreenManager_resize(this); 2332ea: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2332ee: e8 5d fa ff ff call 232d50 force_redraw = true; 2332f3: c6 45 ed 01 movb $0x1,-0x13(%rbp) } if (result & RESCAN) { 2332f7: 8b 45 94 mov -0x6c(%rbp),%eax 2332fa: 83 e0 20 and $0x20,%eax 2332fd: 83 f8 00 cmp $0x0,%eax 233300: 0f 84 0b 00 00 00 je 233311 rescan = true; 233306: c6 45 ec 01 movb $0x1,-0x14(%rbp) sortTimeout = 0; 23330a: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) } if (result & HANDLED) { 233311: 8b 45 94 mov -0x6c(%rbp),%eax 233314: 83 e0 01 and $0x1,%eax 233317: 83 f8 00 cmp $0x0,%eax 23331a: 0f 84 05 00 00 00 je 233325 continue; 233320: e9 e0 fb ff ff jmp 232f05 } else if (result & BREAK_LOOP) { 233325: 8b 45 94 mov -0x6c(%rbp),%eax 233328: 83 e0 04 and $0x4,%eax 23332b: 83 f8 00 cmp $0x0,%eax 23332e: 0f 84 09 00 00 00 je 23333d quit = true; 233334: c6 45 b7 01 movb $0x1,-0x49(%rbp) continue; 233338: e9 c8 fb ff ff jmp 232f05 23333d: e9 00 00 00 00 jmp 233342 } switch (ch) { 233342: 8b 45 a4 mov -0x5c(%rbp),%eax 233345: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 23334b: 83 e8 02 sub $0x2,%eax 23334e: 0f 84 bb 00 00 00 je 23340f 233354: e9 00 00 00 00 jmp 233359 233359: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 23335f: 83 e8 06 sub $0x6,%eax 233362: 0f 84 1f 01 00 00 je 233487 233368: e9 00 00 00 00 jmp 23336d 23336d: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 233373: 83 e8 09 sub $0x9,%eax 233376: 0f 84 0b 01 00 00 je 233487 23337c: e9 00 00 00 00 jmp 233381 233381: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 233387: 83 e8 1b sub $0x1b,%eax 23338a: 0f 84 85 01 00 00 je 233515 233390: e9 00 00 00 00 jmp 233395 233395: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 23339b: 83 e8 71 sub $0x71,%eax 23339e: 0f 84 71 01 00 00 je 233515 2333a4: e9 00 00 00 00 jmp 2333a9 2333a9: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 2333af: 2d 04 01 00 00 sub $0x104,%eax 2333b4: 0f 84 55 00 00 00 je 23340f 2333ba: e9 00 00 00 00 jmp 2333bf 2333bf: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 2333c5: 2d 05 01 00 00 sub $0x105,%eax 2333ca: 0f 84 b7 00 00 00 je 233487 2333d0: e9 00 00 00 00 jmp 2333d5 2333d5: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 2333db: 2d 12 01 00 00 sub $0x112,%eax 2333e0: 0f 84 2f 01 00 00 je 233515 2333e6: e9 00 00 00 00 jmp 2333eb 2333eb: 8b 85 6c ff ff ff mov -0x94(%rbp),%eax 2333f1: 2d 9a 01 00 00 sub $0x19a,%eax 2333f6: 0f 85 22 01 00 00 jne 23351e 2333fc: e9 00 00 00 00 jmp 233401 case KEY_RESIZE: { ScreenManager_resize(this); 233401: 48 8b 7d c8 mov -0x38(%rbp),%rdi 233405: e8 46 f9 ff ff call 232d50 continue; 23340a: e9 f6 fa ff ff jmp 232f05 } case KEY_LEFT: case KEY_CTRL('B'): if (this->panelCount < 2) { 23340f: 48 8b 45 c8 mov -0x38(%rbp),%rax 233413: 83 78 18 02 cmpl $0x2,0x18(%rax) 233417: 0f 8d 05 00 00 00 jge 233422 goto defaultHandler; 23341d: e9 01 01 00 00 jmp 233523 } if (!this->allowFocusChange) { 233422: 48 8b 45 c8 mov -0x38(%rbp),%rax 233426: f6 40 38 01 testb $0x1,0x38(%rax) 23342a: 0f 85 05 00 00 00 jne 233435 break; 233430: e9 00 01 00 00 jmp 233535 if (!this->allowFocusChange) { 233435: e9 00 00 00 00 jmp 23343a } tryLeft: if (focus > 0) { 23343a: 83 7d b0 00 cmpl $0x0,-0x50(%rbp) 23343e: 0f 8e 09 00 00 00 jle 23344d focus--; 233444: 8b 45 b0 mov -0x50(%rbp),%eax 233447: 83 c0 ff add $0xffffffff,%eax 23344a: 89 45 b0 mov %eax,-0x50(%rbp) } panelFocus = (Panel*) Vector_get(this->panels, focus); 23344d: 48 8b 45 c8 mov -0x38(%rbp),%rax 233451: 48 8b 78 10 mov 0x10(%rax),%rdi 233455: 8b 75 b0 mov -0x50(%rbp),%esi 233458: e8 93 f8 ff ff call 232cf0 23345d: 48 89 45 a8 mov %rax,-0x58(%rbp) if (Panel_size(panelFocus) == 0 && focus > 0) { 233461: 48 8b 7d a8 mov -0x58(%rbp),%rdi 233465: e8 36 4d ff ff call 2281a0 23346a: 83 f8 00 cmp $0x0,%eax 23346d: 0f 85 0f 00 00 00 jne 233482 233473: 83 7d b0 00 cmpl $0x0,-0x50(%rbp) 233477: 0f 8e 05 00 00 00 jle 233482 goto tryLeft; 23347d: e9 b8 ff ff ff jmp 23343a } break; 233482: e9 ae 00 00 00 jmp 233535 case KEY_RIGHT: case KEY_CTRL('F'): case 9: if (this->panelCount < 2) { 233487: 48 8b 45 c8 mov -0x38(%rbp),%rax 23348b: 83 78 18 02 cmpl $0x2,0x18(%rax) 23348f: 0f 8d 05 00 00 00 jge 23349a goto defaultHandler; 233495: e9 89 00 00 00 jmp 233523 } if (!this->allowFocusChange) { 23349a: 48 8b 45 c8 mov -0x38(%rbp),%rax 23349e: f6 40 38 01 testb $0x1,0x38(%rax) 2334a2: 0f 85 05 00 00 00 jne 2334ad break; 2334a8: e9 88 00 00 00 jmp 233535 if (!this->allowFocusChange) { 2334ad: e9 00 00 00 00 jmp 2334b2 } tryRight: if (focus < this->panelCount - 1) { 2334b2: 8b 45 b0 mov -0x50(%rbp),%eax 2334b5: 48 8b 4d c8 mov -0x38(%rbp),%rcx 2334b9: 8b 49 18 mov 0x18(%rcx),%ecx 2334bc: 83 e9 01 sub $0x1,%ecx 2334bf: 39 c8 cmp %ecx,%eax 2334c1: 0f 8d 09 00 00 00 jge 2334d0 focus++; 2334c7: 8b 45 b0 mov -0x50(%rbp),%eax 2334ca: 83 c0 01 add $0x1,%eax 2334cd: 89 45 b0 mov %eax,-0x50(%rbp) } panelFocus = (Panel*) Vector_get(this->panels, focus); 2334d0: 48 8b 45 c8 mov -0x38(%rbp),%rax 2334d4: 48 8b 78 10 mov 0x10(%rax),%rdi 2334d8: 8b 75 b0 mov -0x50(%rbp),%esi 2334db: e8 10 f8 ff ff call 232cf0 2334e0: 48 89 45 a8 mov %rax,-0x58(%rbp) if (Panel_size(panelFocus) == 0 && focus < this->panelCount - 1) { 2334e4: 48 8b 7d a8 mov -0x58(%rbp),%rdi 2334e8: e8 b3 4c ff ff call 2281a0 2334ed: 83 f8 00 cmp $0x0,%eax 2334f0: 0f 85 1a 00 00 00 jne 233510 2334f6: 8b 45 b0 mov -0x50(%rbp),%eax 2334f9: 48 8b 4d c8 mov -0x38(%rbp),%rcx 2334fd: 8b 49 18 mov 0x18(%rcx),%ecx 233500: 83 e9 01 sub $0x1,%ecx 233503: 39 c8 cmp %ecx,%eax 233505: 0f 8d 05 00 00 00 jge 233510 goto tryRight; 23350b: e9 a2 ff ff ff jmp 2334b2 } break; 233510: e9 20 00 00 00 jmp 233535 case 27: case 'q': case KEY_F(10): quit = true; 233515: c6 45 b7 01 movb $0x1,-0x49(%rbp) continue; 233519: e9 e7 f9 ff ff jmp 232f05 23351e: e9 00 00 00 00 jmp 233523 default: defaultHandler: sortTimeout = resetSortTimeout; 233523: 8b 45 9c mov -0x64(%rbp),%eax 233526: 89 45 e8 mov %eax,-0x18(%rbp) Panel_onKey(panelFocus, ch); 233529: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23352d: 8b 75 a4 mov -0x5c(%rbp),%esi 233530: e8 6b 5a ff ff call 228fa0 while (!quit) { 233535: e9 cb f9 ff ff jmp 232f05 break; } } if (lastFocus) { 23353a: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 23353f: 0f 84 0b 00 00 00 je 233550 *lastFocus = panelFocus; 233545: 48 8b 4d a8 mov -0x58(%rbp),%rcx 233549: 48 8b 45 c0 mov -0x40(%rbp),%rax 23354d: 48 89 08 mov %rcx,(%rax) } if (lastKey) { 233550: 48 83 7d b8 00 cmpq $0x0,-0x48(%rbp) 233555: 0f 84 09 00 00 00 je 233564 *lastKey = ch; 23355b: 8b 4d a4 mov -0x5c(%rbp),%ecx 23355e: 48 8b 45 b8 mov -0x48(%rbp),%rax 233562: 89 08 mov %ecx,(%rax) 233564: 48 8b 05 c5 f2 00 00 mov 0xf2c5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23356b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23356f: 48 39 c8 cmp %rcx,%rax 233572: 0f 85 09 00 00 00 jne 233581 } } 233578: 48 81 c4 a0 00 00 00 add $0xa0,%rsp 23357f: 5d pop %rbp 233580: c3 ret 233581: e8 ba ab 00 00 call 23e140 <__stack_chk_fail@plt> 233586: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000233590 : static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTimeout, bool* redraw, bool* rescan, bool* timedOut, bool *force_redraw) { 233590: 55 push %rbp 233591: 48 89 e5 mov %rsp,%rbp 233594: 48 83 ec 50 sub $0x50,%rsp 233598: 48 8b 45 10 mov 0x10(%rbp),%rax 23359c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2335a0: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2335a4: 48 89 55 e8 mov %rdx,-0x18(%rbp) 2335a8: 48 89 4d e0 mov %rcx,-0x20(%rbp) 2335ac: 4c 89 45 d8 mov %r8,-0x28(%rbp) 2335b0: 4c 89 4d d0 mov %r9,-0x30(%rbp) ProcessList* pl = this->header->pl; 2335b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2335b8: 48 8b 40 20 mov 0x20(%rax),%rax 2335bc: 48 8b 40 10 mov 0x10(%rax),%rax 2335c0: 48 89 45 c8 mov %rax,-0x38(%rbp) Platform_gettime_realtime(&pl->realtime, &pl->realtimeMs); 2335c4: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2335c8: 48 83 c7 48 add $0x48,%rdi 2335cc: 48 8b 75 c8 mov -0x38(%rbp),%rsi 2335d0: 48 83 c6 58 add $0x58,%rsi 2335d4: e8 e7 02 00 00 call 2338c0 double newTime = ((double)pl->realtime.tv_sec * 10) + ((double)pl->realtime.tv_usec / 100000); 2335d9: 48 8b 45 c8 mov -0x38(%rbp),%rax 2335dd: f2 48 0f 2a 40 48 cvtsi2sdq 0x48(%rax),%xmm0 2335e3: f2 0f 10 0d 25 3d fd ff movsd -0x2c2db(%rip),%xmm1 # 207310 2335eb: f2 0f 59 c1 mulsd %xmm1,%xmm0 2335ef: 48 8b 45 c8 mov -0x38(%rbp),%rax 2335f3: f2 48 0f 2a 48 50 cvtsi2sdq 0x50(%rax),%xmm1 2335f9: f2 0f 10 15 37 3d fd ff movsd -0x2c2c9(%rip),%xmm2 # 207338 233601: f2 0f 5e ca divsd %xmm2,%xmm1 233605: f2 0f 58 c1 addsd %xmm1,%xmm0 233609: f2 0f 11 45 c0 movsd %xmm0,-0x40(%rbp) *timedOut = (newTime - *oldTime > this->settings->delay); 23360e: f2 0f 10 45 c0 movsd -0x40(%rbp),%xmm0 233613: 48 8b 45 f0 mov -0x10(%rbp),%rax 233617: f2 0f 5c 00 subsd (%rax),%xmm0 23361b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23361f: 48 8b 40 28 mov 0x28(%rax),%rax 233623: f2 0f 2a 48 30 cvtsi2sdl 0x30(%rax),%xmm1 233628: 66 0f 2e c1 ucomisd %xmm1,%xmm0 23362c: 0f 97 c1 seta %cl 23362f: 48 8b 45 d0 mov -0x30(%rbp),%rax 233633: 80 e1 01 and $0x1,%cl 233636: 88 08 mov %cl,(%rax) *rescan |= *timedOut; 233638: 48 8b 45 d0 mov -0x30(%rbp),%rax 23363c: 8a 00 mov (%rax),%al 23363e: 24 01 and $0x1,%al 233640: 0f b6 d0 movzbl %al,%edx 233643: 48 8b 45 d8 mov -0x28(%rbp),%rax 233647: 8a 08 mov (%rax),%cl 233649: 80 e1 01 and $0x1,%cl 23364c: 0f b6 c9 movzbl %cl,%ecx 23364f: 09 d1 or %edx,%ecx 233651: 83 f9 00 cmp $0x0,%ecx 233654: 0f 95 c1 setne %cl 233657: 80 e1 01 and $0x1,%cl 23365a: 88 08 mov %cl,(%rax) if (newTime < *oldTime) { 23365c: f2 0f 10 4d c0 movsd -0x40(%rbp),%xmm1 233661: 48 8b 45 f0 mov -0x10(%rbp),%rax 233665: f2 0f 10 00 movsd (%rax),%xmm0 233669: 66 0f 2e c1 ucomisd %xmm1,%xmm0 23366d: 0f 86 07 00 00 00 jbe 23367a *rescan = true; // clock was adjusted? 233673: 48 8b 45 d8 mov -0x28(%rbp),%rax 233677: c6 00 01 movb $0x1,(%rax) if (*rescan) { 23367a: 48 8b 45 d8 mov -0x28(%rbp),%rax 23367e: f6 00 01 testb $0x1,(%rax) 233681: 0f 84 9f 00 00 00 je 233726 *oldTime = newTime; 233687: f2 0f 10 45 c0 movsd -0x40(%rbp),%xmm0 23368c: 48 8b 45 f0 mov -0x10(%rbp),%rax 233690: f2 0f 11 00 movsd %xmm0,(%rax) int oldUidDigits = Process_uidDigits; 233694: 8b 04 25 5c 18 24 00 mov 0x24185c,%eax 23369b: 89 45 bc mov %eax,-0x44(%rbp) ProcessList_scan(pl, this->state->pauseProcessUpdate); 23369e: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2336a2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2336a6: 48 8b 40 30 mov 0x30(%rax),%rax 2336aa: 8a 40 28 mov 0x28(%rax),%al 2336ad: 24 01 and $0x1,%al 2336af: 0f b6 f0 movzbl %al,%esi 2336b2: e8 b9 cf ff ff call 230670 Header_updateData(this->header); 2336b7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2336bb: 48 8b 78 20 mov 0x20(%rax),%rdi 2336bf: e8 8c cc fe ff call 220350 if (!this->state->pauseProcessUpdate && (*sortTimeout == 0 || this->settings->treeView)) { 2336c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2336c8: 48 8b 40 30 mov 0x30(%rax),%rax 2336cc: f6 40 28 01 testb $0x1,0x28(%rax) 2336d0: 0f 85 32 00 00 00 jne 233708 2336d6: 48 8b 45 e8 mov -0x18(%rbp),%rax 2336da: 83 38 00 cmpl $0x0,(%rax) 2336dd: 0f 84 12 00 00 00 je 2336f5 2336e3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2336e7: 48 8b 40 28 mov 0x28(%rax),%rax 2336eb: f6 40 4a 01 testb $0x1,0x4a(%rax) 2336ef: 0f 84 13 00 00 00 je 233708 ProcessList_sort(pl); 2336f5: 48 8b 7d c8 mov -0x38(%rbp),%rdi 2336f9: e8 32 c8 ff ff call 22ff30 *sortTimeout = 1; 2336fe: 48 8b 45 e8 mov -0x18(%rbp),%rax 233702: c7 00 01 00 00 00 movl $0x1,(%rax) if (Process_uidDigits != oldUidDigits) { 233708: 8b 04 25 5c 18 24 00 mov 0x24185c,%eax 23370f: 3b 45 bc cmp -0x44(%rbp),%eax 233712: 0f 84 07 00 00 00 je 23371f *force_redraw = true; 233718: 48 8b 45 10 mov 0x10(%rbp),%rax 23371c: c6 00 01 movb $0x1,(%rax) *redraw = true; 23371f: 48 8b 45 e0 mov -0x20(%rbp),%rax 233723: c6 00 01 movb $0x1,(%rax) if (*redraw) { 233726: 48 8b 45 e0 mov -0x20(%rbp),%rax 23372a: f6 00 01 testb $0x1,(%rax) 23372d: 0f 84 16 00 00 00 je 233749 ProcessList_rebuildPanel(pl); 233733: 48 8b 7d c8 mov -0x38(%rbp),%rdi 233737: e8 64 cb ff ff call 2302a0 Header_draw(this->header); 23373c: 48 8b 45 f8 mov -0x8(%rbp),%rax 233740: 48 8b 78 20 mov 0x20(%rax),%rdi 233744: e8 f7 c8 fe ff call 220040 *rescan = false; 233749: 48 8b 45 d8 mov -0x28(%rbp),%rax 23374d: c6 00 00 movb $0x0,(%rax) } 233750: 48 83 c4 50 add $0x50,%rsp 233754: 5d pop %rbp 233755: c3 ret 233756: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000233760 : static void ScreenManager_drawPanels(ScreenManager* this, int focus, bool force_redraw) { 233760: 55 push %rbp 233761: 48 89 e5 mov %rsp,%rbp 233764: 48 83 ec 50 sub $0x50,%rsp 233768: 88 d0 mov %dl,%al 23376a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23376e: 89 75 f4 mov %esi,-0xc(%rbp) 233771: 24 01 and $0x1,%al 233773: 88 45 f3 mov %al,-0xd(%rbp) const int nPanels = this->panelCount; 233776: 48 8b 45 f8 mov -0x8(%rbp),%rax 23377a: 8b 40 18 mov 0x18(%rax),%eax 23377d: 89 45 ec mov %eax,-0x14(%rbp) for (int i = 0; i < nPanels; i++) { 233780: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 233787: 8b 45 e8 mov -0x18(%rbp),%eax 23378a: 3b 45 ec cmp -0x14(%rbp),%eax 23378d: 0f 8d 22 01 00 00 jge 2338b5 Panel* panel = (Panel*) Vector_get(this->panels, i); 233793: 48 8b 45 f8 mov -0x8(%rbp),%rax 233797: 48 8b 78 10 mov 0x10(%rax),%rdi 23379b: 8b 75 e8 mov -0x18(%rbp),%esi 23379e: e8 4d f5 ff ff call 232cf0 2337a3: 48 89 45 e0 mov %rax,-0x20(%rbp) Panel_draw(panel, 2337a7: 48 8b 45 e0 mov -0x20(%rbp),%rax 2337ab: 48 89 45 d0 mov %rax,-0x30(%rbp) force_redraw, 2337af: 8a 45 f3 mov -0xd(%rbp),%al 2337b2: 88 45 dd mov %al,-0x23(%rbp) i == focus, 2337b5: 8b 45 e8 mov -0x18(%rbp),%eax 2337b8: 3b 45 f4 cmp -0xc(%rbp),%eax 2337bb: 0f 94 c0 sete %al 2337be: 88 45 de mov %al,-0x22(%rbp) panel != (Panel*)this->state->mainPanel || !this->state->hideProcessSelection, 2337c1: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2337c5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2337c9: 48 8b 40 30 mov 0x30(%rax),%rax 2337cd: 48 8b 50 18 mov 0x18(%rax),%rdx 2337d1: b0 01 mov $0x1,%al 2337d3: 48 39 d1 cmp %rdx,%rcx 2337d6: 88 45 df mov %al,-0x21(%rbp) 2337d9: 0f 85 10 00 00 00 jne 2337ef 2337df: 48 8b 45 f8 mov -0x8(%rbp),%rax 2337e3: 48 8b 40 30 mov 0x30(%rax),%rax 2337e7: 8a 40 29 mov 0x29(%rax),%al 2337ea: 34 ff xor $0xff,%al 2337ec: 88 45 df mov %al,-0x21(%rbp) 2337ef: 8a 45 df mov -0x21(%rbp),%al 2337f2: 88 45 cf mov %al,-0x31(%rbp) State_hideFunctionBar(this->state)); 2337f5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2337f9: 48 8b 78 30 mov 0x30(%rax),%rdi 2337fd: e8 ee 00 00 00 call 2338f0 233802: 40 8a 75 dd mov -0x23(%rbp),%sil 233806: 8a 55 de mov -0x22(%rbp),%dl 233809: 8a 4d cf mov -0x31(%rbp),%cl 23380c: 48 8b 7d d0 mov -0x30(%rbp),%rdi Panel_draw(panel, 233810: 40 0f b6 f6 movzbl %sil,%esi 233814: 83 e6 01 and $0x1,%esi 233817: 0f b6 d2 movzbl %dl,%edx 23381a: 83 e2 01 and $0x1,%edx 23381d: 0f b6 c9 movzbl %cl,%ecx 233820: 83 e1 01 and $0x1,%ecx 233823: 44 0f b6 c0 movzbl %al,%r8d 233827: 41 83 e0 01 and $0x1,%r8d 23382b: e8 40 4a ff ff call 228270 mvvline(panel->y, panel->x + panel->w, ' ', panel->h + (State_hideFunctionBar(this->state) ? 1 : 0)); 233830: 48 8b 3c 25 90 28 24 00 mov 0x242890,%rdi 233838: 48 8b 45 e0 mov -0x20(%rbp),%rax 23383c: 8b 70 0c mov 0xc(%rax),%esi 23383f: 48 8b 45 e0 mov -0x20(%rbp),%rax 233843: 8b 50 08 mov 0x8(%rax),%edx 233846: 48 8b 45 e0 mov -0x20(%rbp),%rax 23384a: 03 50 10 add 0x10(%rax),%edx 23384d: e8 3e a9 00 00 call 23e190 233852: 83 f8 ff cmp $0xffffffff,%eax 233855: 0f 85 05 00 00 00 jne 233860 23385b: e9 47 00 00 00 jmp 2338a7 233860: 48 8b 04 25 90 28 24 00 mov 0x242890,%rax 233868: 48 89 45 c0 mov %rax,-0x40(%rbp) 23386c: 48 8b 45 e0 mov -0x20(%rbp),%rax 233870: 8b 40 14 mov 0x14(%rax),%eax 233873: 89 45 bc mov %eax,-0x44(%rbp) 233876: 48 8b 45 f8 mov -0x8(%rbp),%rax 23387a: 48 8b 78 30 mov 0x30(%rax),%rdi 23387e: e8 6d 00 00 00 call 2338f0 233883: 8b 55 bc mov -0x44(%rbp),%edx 233886: 48 8b 7d c0 mov -0x40(%rbp),%rdi 23388a: 40 88 c6 mov %al,%sil 23388d: 31 c0 xor %eax,%eax 23388f: b9 01 00 00 00 mov $0x1,%ecx 233894: 40 f6 c6 01 test $0x1,%sil 233898: 0f 45 c1 cmovne %ecx,%eax 23389b: 01 c2 add %eax,%edx 23389d: be 20 00 00 00 mov $0x20,%esi 2338a2: e8 49 af 00 00 call 23e7f0 for (int i = 0; i < nPanels; i++) { 2338a7: 8b 45 e8 mov -0x18(%rbp),%eax 2338aa: 83 c0 01 add $0x1,%eax 2338ad: 89 45 e8 mov %eax,-0x18(%rbp) 2338b0: e9 d2 fe ff ff jmp 233787 } 2338b5: 48 83 c4 50 add $0x50,%rsp 2338b9: 5d pop %rbp 2338ba: c3 ret 2338bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002338c0 : static inline void Platform_gettime_realtime(struct timeval* tv, uint64_t* msec) { 2338c0: 55 push %rbp 2338c1: 48 89 e5 mov %rsp,%rbp 2338c4: 48 83 ec 10 sub $0x10,%rsp 2338c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2338cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) Generic_gettime_realtime(tv, msec); 2338d0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2338d4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2338d8: e8 13 91 00 00 call 23c9f0 } 2338dd: 48 83 c4 10 add $0x10,%rsp 2338e1: 5d pop %rbp 2338e2: c3 ret 2338e3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2338ed: 0f 1f 00 nopl (%rax) 00000000002338f0 : static inline bool State_hideFunctionBar(const State* st) { 2338f0: 55 push %rbp 2338f1: 48 89 e5 mov %rsp,%rbp 2338f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return st->settings->hideFunctionBar == 2 || (st->settings->hideFunctionBar == 1 && st->hideProcessSelection); 2338f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2338fc: 48 8b 08 mov (%rax),%rcx 2338ff: b0 01 mov $0x1,%al 233901: 83 79 64 02 cmpl $0x2,0x64(%rcx) 233905: 88 45 f7 mov %al,-0x9(%rbp) 233908: 0f 84 26 00 00 00 je 233934 23390e: 48 8b 45 f8 mov -0x8(%rbp),%rax 233912: 48 8b 08 mov (%rax),%rcx 233915: 31 c0 xor %eax,%eax 233917: 83 79 64 01 cmpl $0x1,0x64(%rcx) 23391b: 88 45 f6 mov %al,-0xa(%rbp) 23391e: 0f 85 0a 00 00 00 jne 23392e 233924: 48 8b 45 f8 mov -0x8(%rbp),%rax 233928: 8a 40 29 mov 0x29(%rax),%al 23392b: 88 45 f6 mov %al,-0xa(%rbp) 23392e: 8a 45 f6 mov -0xa(%rbp),%al 233931: 88 45 f7 mov %al,-0x9(%rbp) 233934: 8a 45 f7 mov -0x9(%rbp),%al 233937: 24 01 and $0x1,%al 233939: 0f b6 c0 movzbl %al,%eax 23393c: 5d pop %rbp 23393d: c3 ret 23393e: cc int3 23393f: cc int3 0000000000233940 : #include "Meter.h" #include "Platform.h" #include "XUtils.h" void Settings_delete(Settings* this) { 233940: 55 push %rbp 233941: 48 89 e5 mov %rsp,%rbp 233944: 48 83 ec 20 sub $0x20,%rsp 233948: 48 89 7d f8 mov %rdi,-0x8(%rbp) free(this->filename); 23394c: 48 8b 45 f8 mov -0x8(%rbp),%rax 233950: 48 8b 38 mov (%rax),%rdi 233953: e8 08 a8 00 00 call 23e160 free(this->fields); 233958: 48 8b 45 f8 mov -0x8(%rbp),%rax 23395c: 48 8b 78 20 mov 0x20(%rax),%rdi 233960: e8 fb a7 00 00 call 23e160 for (unsigned int i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 233965: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 23396c: 8b 45 f4 mov -0xc(%rbp),%eax 23396f: 48 89 45 e8 mov %rax,-0x18(%rbp) 233973: 48 8b 45 f8 mov -0x8(%rbp),%rax 233977: 8b 78 0c mov 0xc(%rax),%edi 23397a: e8 71 00 00 00 call 2339f0 23397f: 48 89 c1 mov %rax,%rcx 233982: 48 8b 45 e8 mov -0x18(%rbp),%rax 233986: 48 39 c8 cmp %rcx,%rax 233989: 0f 83 44 00 00 00 jae 2339d3 String_freeArray(this->hColumns[i].names); 23398f: 48 8b 45 f8 mov -0x8(%rbp),%rax 233993: 48 8b 40 10 mov 0x10(%rax),%rax 233997: 8b 4d f4 mov -0xc(%rbp),%ecx 23399a: 48 6b c9 18 imul $0x18,%rcx,%rcx 23399e: 48 01 c8 add %rcx,%rax 2339a1: 48 8b 78 08 mov 0x8(%rax),%rdi 2339a5: e8 86 56 00 00 call 239030 free(this->hColumns[i].modes); 2339aa: 48 8b 45 f8 mov -0x8(%rbp),%rax 2339ae: 48 8b 40 10 mov 0x10(%rax),%rax 2339b2: 8b 4d f4 mov -0xc(%rbp),%ecx 2339b5: 48 6b c9 18 imul $0x18,%rcx,%rcx 2339b9: 48 01 c8 add %rcx,%rax 2339bc: 48 8b 78 10 mov 0x10(%rax),%rdi 2339c0: e8 9b a7 00 00 call 23e160 for (unsigned int i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 2339c5: 8b 45 f4 mov -0xc(%rbp),%eax 2339c8: 83 c0 01 add $0x1,%eax 2339cb: 89 45 f4 mov %eax,-0xc(%rbp) 2339ce: e9 99 ff ff ff jmp 23396c } free(this->hColumns); 2339d3: 48 8b 45 f8 mov -0x8(%rbp),%rax 2339d7: 48 8b 78 10 mov 0x10(%rax),%rdi 2339db: e8 80 a7 00 00 call 23e160 free(this); 2339e0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2339e4: e8 77 a7 00 00 call 23e160 } 2339e9: 48 83 c4 20 add $0x20,%rsp 2339ed: 5d pop %rbp 2339ee: c3 ret 2339ef: 90 nop 00000000002339f0 : static inline size_t HeaderLayout_getColumns(HeaderLayout hLayout) { 2339f0: 55 push %rbp 2339f1: 48 89 e5 mov %rsp,%rbp 2339f4: 89 7d fc mov %edi,-0x4(%rbp) return HeaderLayout_layouts[hLayout].columns; 2339f7: 8b 45 fc mov -0x4(%rbp),%eax 2339fa: 89 c1 mov %eax,%ecx 2339fc: 48 b8 90 a6 20 00 00 00 00 00 movabs $0x20a690,%rax 233a06: 48 6b c9 18 imul $0x18,%rcx,%rcx 233a0a: 48 01 c8 add %rcx,%rax 233a0d: 0f b6 00 movzbl (%rax),%eax 233a10: 5d pop %rbp 233a11: c3 ret 233a12: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 233a1c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000233a20 : sep = " "; } fputc(separator, fd); } int Settings_write(const Settings* this, bool onCrash) { 233a20: 55 push %rbp 233a21: 48 89 e5 mov %rsp,%rbp 233a24: 48 83 ec 50 sub $0x50,%rsp 233a28: 40 88 f0 mov %sil,%al 233a2b: 48 89 7d f0 mov %rdi,-0x10(%rbp) 233a2f: 24 01 and $0x1,%al 233a31: 88 45 ef mov %al,-0x11(%rbp) FILE* fd; char separator; if (onCrash) { 233a34: f6 45 ef 01 testb $0x1,-0x11(%rbp) 233a38: 0f 84 15 00 00 00 je 233a53 fd = stderr; 233a3e: 48 8b 04 25 a8 28 24 00 mov 0x2428a8,%rax 233a46: 48 89 45 e0 mov %rax,-0x20(%rbp) separator = ';'; 233a4a: c6 45 df 3b movb $0x3b,-0x21(%rbp) } else { 233a4e: e9 3d 00 00 00 jmp 233a90 fd = fopen(this->filename, "w"); 233a53: 48 8b 45 f0 mov -0x10(%rbp),%rax 233a57: 48 8b 38 mov (%rax),%rdi 233a5a: 48 be d8 4a 20 00 00 00 00 00 movabs $0x204ad8,%rsi 233a64: e8 97 ad 00 00 call 23e800 233a69: 48 89 45 e0 mov %rax,-0x20(%rbp) if (fd == NULL) 233a6d: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 233a72: 0f 85 14 00 00 00 jne 233a8c return -errno; 233a78: e8 a3 a8 00 00 call 23e320 <__error@plt> 233a7d: 48 89 c1 mov %rax,%rcx 233a80: 31 c0 xor %eax,%eax 233a82: 2b 01 sub (%rcx),%eax 233a84: 89 45 fc mov %eax,-0x4(%rbp) 233a87: e9 05 07 00 00 jmp 234191 separator = '\n'; 233a8c: c6 45 df 0a movb $0xa,-0x21(%rbp) #define printSettingInteger(setting_, value_) \ fprintf(fd, setting_ "=%d%c", (int) (value_), separator) #define printSettingString(setting_, value_) \ fprintf(fd, setting_ "=%s%c", value_, separator) if (!onCrash) { 233a90: f6 45 ef 01 testb $0x1,-0x11(%rbp) 233a94: 0f 85 2a 00 00 00 jne 233ac4 fprintf(fd, "# Beware! This file is rewritten by htop when settings are changed in the interface.\n"); 233a9a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233a9e: 48 be b0 4f 20 00 00 00 00 00 movabs $0x204fb0,%rsi 233aa8: b0 00 mov $0x0,%al 233aaa: e8 d1 a7 00 00 call 23e280 fprintf(fd, "# The parser is also very primitive, and not human-friendly.\n"); 233aaf: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233ab3: 48 be 67 53 20 00 00 00 00 00 movabs $0x205367,%rsi 233abd: b0 00 mov $0x0,%al 233abf: e8 bc a7 00 00 call 23e280 } printSettingString("htop_version", VERSION); 233ac4: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233ac8: 0f be 4d df movsbl -0x21(%rbp),%ecx 233acc: 48 be 96 55 20 00 00 00 00 00 movabs $0x205596,%rsi 233ad6: 48 ba 54 38 20 00 00 00 00 00 movabs $0x203854,%rdx 233ae0: b0 00 mov $0x0,%al 233ae2: e8 99 a7 00 00 call 23e280 printSettingInteger("config_reader_min_version", CONFIG_READER_MIN_VERSION); 233ae7: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233aeb: 0f be 4d df movsbl -0x21(%rbp),%ecx 233aef: 48 be 8c 40 20 00 00 00 00 00 movabs $0x20408c,%rsi 233af9: ba 02 00 00 00 mov $0x2,%edx 233afe: b0 00 mov $0x0,%al 233b00: e8 7b a7 00 00 call 23e280 writeFields(fd, this->fields, this->dynamicColumns, "fields", separator); 233b05: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233b09: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b0d: 48 8b 70 20 mov 0x20(%rax),%rsi 233b11: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b15: 48 8b 50 18 mov 0x18(%rax),%rdx 233b19: 48 b9 55 66 20 00 00 00 00 00 movabs $0x206655,%rcx 233b23: 44 0f be 45 df movsbl -0x21(%rbp),%r8d 233b28: e8 73 06 00 00 call 2341a0 // This "-1" is for compatibility with the older enum format. printSettingInteger("sort_key", this->sortKey - 1); 233b2d: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233b31: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b35: 8b 50 3c mov 0x3c(%rax),%edx 233b38: 83 ea 01 sub $0x1,%edx 233b3b: 0f be 4d df movsbl -0x21(%rbp),%ecx 233b3f: 48 be 33 3c 20 00 00 00 00 00 movabs $0x203c33,%rsi 233b49: b0 00 mov $0x0,%al 233b4b: e8 30 a7 00 00 call 23e280 printSettingInteger("sort_direction", this->direction); 233b50: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233b54: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b58: 8b 50 34 mov 0x34(%rax),%edx 233b5b: 0f be 4d df movsbl -0x21(%rbp),%ecx 233b5f: 48 be 36 46 20 00 00 00 00 00 movabs $0x204636,%rsi 233b69: b0 00 mov $0x0,%al 233b6b: e8 10 a7 00 00 call 23e280 printSettingInteger("tree_sort_key", this->treeSortKey - 1); 233b70: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233b74: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b78: 8b 50 40 mov 0x40(%rax),%edx 233b7b: 83 ea 01 sub $0x1,%edx 233b7e: 0f be 4d df movsbl -0x21(%rbp),%ecx 233b82: 48 be cd 4d 20 00 00 00 00 00 movabs $0x204dcd,%rsi 233b8c: b0 00 mov $0x0,%al 233b8e: e8 ed a6 00 00 call 23e280 printSettingInteger("tree_sort_direction", this->treeDirection); 233b93: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233b97: 48 8b 45 f0 mov -0x10(%rbp),%rax 233b9b: 8b 50 38 mov 0x38(%rax),%edx 233b9e: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ba2: 48 be 5c 66 20 00 00 00 00 00 movabs $0x20665c,%rsi 233bac: b0 00 mov $0x0,%al 233bae: e8 cd a6 00 00 call 23e280 printSettingInteger("hide_kernel_threads", this->hideKernelThreads); 233bb3: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233bb7: 48 8b 45 f0 mov -0x10(%rbp),%rax 233bbb: 8a 40 50 mov 0x50(%rax),%al 233bbe: 24 01 and $0x1,%al 233bc0: 0f b6 d0 movzbl %al,%edx 233bc3: 0f be 4d df movsbl -0x21(%rbp),%ecx 233bc7: 48 be 6a 48 20 00 00 00 00 00 movabs $0x20486a,%rsi 233bd1: b0 00 mov $0x0,%al 233bd3: e8 a8 a6 00 00 call 23e280 printSettingInteger("hide_userland_threads", this->hideUserlandThreads); 233bd8: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233bdc: 48 8b 45 f0 mov -0x10(%rbp),%rax 233be0: 8a 40 51 mov 0x51(%rax),%al 233be3: 24 01 and $0x1,%al 233be5: 0f b6 d0 movzbl %al,%edx 233be8: 0f be 4d df movsbl -0x21(%rbp),%ecx 233bec: 48 be 67 59 20 00 00 00 00 00 movabs $0x205967,%rsi 233bf6: b0 00 mov $0x0,%al 233bf8: e8 83 a6 00 00 call 23e280 printSettingInteger("shadow_other_users", this->shadowOtherUsers); 233bfd: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233c01: 48 8b 45 f0 mov -0x10(%rbp),%rax 233c05: 8a 40 4e mov 0x4e(%rax),%al 233c08: 24 01 and $0x1,%al 233c0a: 0f b6 d0 movzbl %al,%edx 233c0d: 0f be 4d df movsbl -0x21(%rbp),%ecx 233c11: 48 be db 6c 20 00 00 00 00 00 movabs $0x206cdb,%rsi 233c1b: b0 00 mov $0x0,%al 233c1d: e8 5e a6 00 00 call 23e280 printSettingInteger("show_thread_names", this->showThreadNames); 233c22: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233c26: 48 8b 45 f0 mov -0x10(%rbp),%rax 233c2a: 8a 40 4f mov 0x4f(%rax),%al 233c2d: 24 01 and $0x1,%al 233c2f: 0f b6 d0 movzbl %al,%edx 233c32: 0f be 4d df movsbl -0x21(%rbp),%ecx 233c36: 48 be da 4a 20 00 00 00 00 00 movabs $0x204ada,%rsi 233c40: b0 00 mov $0x0,%al 233c42: e8 39 a6 00 00 call 23e280 printSettingInteger("show_program_path", this->showProgramPath); 233c47: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233c4b: 48 8b 45 f0 mov -0x10(%rbp),%rax 233c4f: 8a 40 4d mov 0x4d(%rax),%al 233c52: 24 01 and $0x1,%al 233c54: 0f b6 d0 movzbl %al,%edx 233c57: 0f be 4d df movsbl -0x21(%rbp),%ecx 233c5b: 48 be a8 55 20 00 00 00 00 00 movabs $0x2055a8,%rsi 233c65: b0 00 mov $0x0,%al 233c67: e8 14 a6 00 00 call 23e280 printSettingInteger("highlight_base_name", this->highlightBaseName); 233c6c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233c70: 48 8b 45 f0 mov -0x10(%rbp),%rax 233c74: 8a 40 52 mov 0x52(%rax),%al 233c77: 24 01 and $0x1,%al 233c79: 0f b6 d0 movzbl %al,%edx 233c7c: 0f be 4d df movsbl -0x21(%rbp),%ecx 233c80: 48 be 82 59 20 00 00 00 00 00 movabs $0x205982,%rsi 233c8a: b0 00 mov $0x0,%al 233c8c: e8 ef a5 00 00 call 23e280 printSettingInteger("highlight_deleted_exe", this->highlightDeletedExe); 233c91: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233c95: 48 8b 45 f0 mov -0x10(%rbp),%rax 233c99: 8a 40 53 mov 0x53(%rax),%al 233c9c: 24 01 and $0x1,%al 233c9e: 0f b6 d0 movzbl %al,%edx 233ca1: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ca5: 48 be 43 5b 20 00 00 00 00 00 movabs $0x205b43,%rsi 233caf: b0 00 mov $0x0,%al 233cb1: e8 ca a5 00 00 call 23e280 printSettingInteger("highlight_megabytes", this->highlightMegabytes); 233cb6: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233cba: 48 8b 45 f0 mov -0x10(%rbp),%rax 233cbe: 8a 40 54 mov 0x54(%rax),%al 233cc1: 24 01 and $0x1,%al 233cc3: 0f b6 d0 movzbl %al,%edx 233cc6: 0f be 4d df movsbl -0x21(%rbp),%ecx 233cca: 48 be 4a 46 20 00 00 00 00 00 movabs $0x20464a,%rsi 233cd4: b0 00 mov $0x0,%al 233cd6: e8 a5 a5 00 00 call 23e280 printSettingInteger("highlight_threads", this->highlightThreads); 233cdb: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233cdf: 48 8b 45 f0 mov -0x10(%rbp),%rax 233ce3: 8a 40 55 mov 0x55(%rax),%al 233ce6: 24 01 and $0x1,%al 233ce8: 0f b6 d0 movzbl %al,%edx 233ceb: 0f be 4d df movsbl -0x21(%rbp),%ecx 233cef: 48 be b0 3d 20 00 00 00 00 00 movabs $0x203db0,%rsi 233cf9: b0 00 mov $0x0,%al 233cfb: e8 80 a5 00 00 call 23e280 printSettingInteger("highlight_changes", this->highlightChanges); 233d00: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233d04: 48 8b 45 f0 mov -0x10(%rbp),%rax 233d08: 8a 40 56 mov 0x56(%rax),%al 233d0b: 24 01 and $0x1,%al 233d0d: 0f b6 d0 movzbl %al,%edx 233d10: 0f be 4d df movsbl -0x21(%rbp),%ecx 233d14: 48 be 63 46 20 00 00 00 00 00 movabs $0x204663,%rsi 233d1e: b0 00 mov $0x0,%al 233d20: e8 5b a5 00 00 call 23e280 printSettingInteger("highlight_changes_delay_secs", this->highlightDelaySecs); 233d25: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233d29: 48 8b 45 f0 mov -0x10(%rbp),%rax 233d2d: 8b 50 58 mov 0x58(%rax),%edx 233d30: 0f be 4d df movsbl -0x21(%rbp),%ecx 233d34: 48 be 5a 38 20 00 00 00 00 00 movabs $0x20385a,%rsi 233d3e: b0 00 mov $0x0,%al 233d40: e8 3b a5 00 00 call 23e280 printSettingInteger("find_comm_in_cmdline", this->findCommInCmdline); 233d45: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233d49: 48 8b 45 f0 mov -0x10(%rbp),%rax 233d4d: 8a 40 5c mov 0x5c(%rax),%al 233d50: 24 01 and $0x1,%al 233d52: 0f b6 d0 movzbl %al,%edx 233d55: 0f be 4d df movsbl -0x21(%rbp),%ecx 233d59: 48 be 7a 46 20 00 00 00 00 00 movabs $0x20467a,%rsi 233d63: b0 00 mov $0x0,%al 233d65: e8 16 a5 00 00 call 23e280 printSettingInteger("strip_exe_from_cmdline", this->stripExeFromCmdline); 233d6a: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233d6e: 48 8b 45 f0 mov -0x10(%rbp),%rax 233d72: 8a 40 5d mov 0x5d(%rax),%al 233d75: 24 01 and $0x1,%al 233d77: 0f b6 d0 movzbl %al,%edx 233d7a: 0f be 4d df movsbl -0x21(%rbp),%ecx 233d7e: 48 be 83 48 20 00 00 00 00 00 movabs $0x204883,%rsi 233d88: b0 00 mov $0x0,%al 233d8a: e8 f1 a4 00 00 call 23e280 printSettingInteger("show_merged_command", this->showMergedCommand); 233d8f: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233d93: 48 8b 45 f0 mov -0x10(%rbp),%rax 233d97: 8a 40 5e mov 0x5e(%rax),%al 233d9a: 24 01 and $0x1,%al 233d9c: 0f b6 d0 movzbl %al,%edx 233d9f: 0f be 4d df movsbl -0x21(%rbp),%ecx 233da3: 48 be 9f 48 20 00 00 00 00 00 movabs $0x20489f,%rsi 233dad: b0 00 mov $0x0,%al 233daf: e8 cc a4 00 00 call 23e280 printSettingInteger("tree_view", this->treeView); 233db4: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233db8: 48 8b 45 f0 mov -0x10(%rbp),%rax 233dbc: 8a 40 4a mov 0x4a(%rax),%al 233dbf: 24 01 and $0x1,%al 233dc1: 0f b6 d0 movzbl %al,%edx 233dc4: 0f be 4d df movsbl -0x21(%rbp),%ecx 233dc8: 48 be 54 57 20 00 00 00 00 00 movabs $0x205754,%rsi 233dd2: b0 00 mov $0x0,%al 233dd4: e8 a7 a4 00 00 call 23e280 printSettingInteger("tree_view_always_by_pid", this->treeViewAlwaysByPID); 233dd9: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233ddd: 48 8b 45 f0 mov -0x10(%rbp),%rax 233de1: 8a 40 4b mov 0x4b(%rax),%al 233de4: 24 01 and $0x1,%al 233de6: 0f b6 d0 movzbl %al,%edx 233de9: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ded: 48 be e0 4d 20 00 00 00 00 00 movabs $0x204de0,%rsi 233df7: b0 00 mov $0x0,%al 233df9: e8 82 a4 00 00 call 23e280 printSettingInteger("all_branches_collapsed", this->allBranchesCollapsed); 233dfe: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233e02: 48 8b 45 f0 mov -0x10(%rbp),%rax 233e06: 8a 40 4c mov 0x4c(%rax),%al 233e09: 24 01 and $0x1,%al 233e0b: 0f b6 d0 movzbl %al,%edx 233e0e: 0f be 4d df movsbl -0x21(%rbp),%ecx 233e12: 48 be 41 3c 20 00 00 00 00 00 movabs $0x203c41,%rsi 233e1c: b0 00 mov $0x0,%al 233e1e: e8 5d a4 00 00 call 23e280 printSettingInteger("header_margin", this->headerMargin); 233e23: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233e27: 48 8b 45 f0 mov -0x10(%rbp),%rax 233e2b: 8a 40 61 mov 0x61(%rax),%al 233e2e: 24 01 and $0x1,%al 233e30: 0f b6 d0 movzbl %al,%edx 233e33: 0f be 4d df movsbl -0x21(%rbp),%ecx 233e37: 48 be b1 6b 20 00 00 00 00 00 movabs $0x206bb1,%rsi 233e41: b0 00 mov $0x0,%al 233e43: e8 38 a4 00 00 call 23e280 printSettingInteger("detailed_cpu_time", this->detailedCPUTime); 233e48: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233e4c: 48 8b 45 f0 mov -0x10(%rbp),%rax 233e50: 8a 40 45 mov 0x45(%rax),%al 233e53: 24 01 and $0x1,%al 233e55: 0f b6 d0 movzbl %al,%edx 233e58: 0f be 4d df movsbl -0x21(%rbp),%ecx 233e5c: 48 be e1 4b 20 00 00 00 00 00 movabs $0x204be1,%rsi 233e66: b0 00 mov $0x0,%al 233e68: e8 13 a4 00 00 call 23e280 printSettingInteger("cpu_count_from_one", this->countCPUsFromOne); 233e6d: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233e71: 48 8b 45 f0 mov -0x10(%rbp),%rax 233e75: 8a 40 44 mov 0x44(%rax),%al 233e78: 24 01 and $0x1,%al 233e7a: 0f b6 d0 movzbl %al,%edx 233e7d: 0f be 4d df movsbl -0x21(%rbp),%ecx 233e81: 48 be 06 50 20 00 00 00 00 00 movabs $0x205006,%rsi 233e8b: b0 00 mov $0x0,%al 233e8d: e8 ee a3 00 00 call 23e280 printSettingInteger("show_cpu_usage", this->showCPUUsage); 233e92: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233e96: 48 8b 45 f0 mov -0x10(%rbp),%rax 233e9a: 8a 40 46 mov 0x46(%rax),%al 233e9d: 24 01 and $0x1,%al 233e9f: 0f b6 d0 movzbl %al,%edx 233ea2: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ea6: 48 be b8 48 20 00 00 00 00 00 movabs $0x2048b8,%rsi 233eb0: b0 00 mov $0x0,%al 233eb2: e8 c9 a3 00 00 call 23e280 printSettingInteger("show_cpu_frequency", this->showCPUFrequency); 233eb7: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233ebb: 48 8b 45 f0 mov -0x10(%rbp),%rax 233ebf: 8a 40 47 mov 0x47(%rax),%al 233ec2: 24 01 and $0x1,%al 233ec4: 0f b6 d0 movzbl %al,%edx 233ec7: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ecb: 48 be 9b 59 20 00 00 00 00 00 movabs $0x20599b,%rsi 233ed5: b0 00 mov $0x0,%al 233ed7: e8 a4 a3 00 00 call 23e280 #ifdef BUILD_WITH_CPU_TEMP printSettingInteger("show_cpu_temperature", this->showCPUTemperature); 233edc: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233ee0: 48 8b 45 f0 mov -0x10(%rbp),%rax 233ee4: 8a 40 48 mov 0x48(%rax),%al 233ee7: 24 01 and $0x1,%al 233ee9: 0f b6 d0 movzbl %al,%edx 233eec: 0f be 4d df movsbl -0x21(%rbp),%ecx 233ef0: 48 be 5e 5b 20 00 00 00 00 00 movabs $0x205b5e,%rsi 233efa: b0 00 mov $0x0,%al 233efc: e8 7f a3 00 00 call 23e280 printSettingInteger("degree_fahrenheit", this->degreeFahrenheit); 233f01: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233f05: 48 8b 45 f0 mov -0x10(%rbp),%rax 233f09: 8a 40 49 mov 0x49(%rax),%al 233f0c: 24 01 and $0x1,%al 233f0e: 0f b6 d0 movzbl %al,%edx 233f11: 0f be 4d df movsbl -0x21(%rbp),%ecx 233f15: 48 be 78 5b 20 00 00 00 00 00 movabs $0x205b78,%rsi 233f1f: b0 00 mov $0x0,%al 233f21: e8 5a a3 00 00 call 23e280 #endif printSettingInteger("update_process_names", this->updateProcessNames); 233f26: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233f2a: 48 8b 45 f0 mov -0x10(%rbp),%rax 233f2e: 8a 40 5f mov 0x5f(%rax),%al 233f31: 24 01 and $0x1,%al 233f33: 0f b6 d0 movzbl %al,%edx 233f36: 0f be 4d df movsbl -0x21(%rbp),%ecx 233f3a: 48 be 56 36 20 00 00 00 00 00 movabs $0x203656,%rsi 233f44: b0 00 mov $0x0,%al 233f46: e8 35 a3 00 00 call 23e280 printSettingInteger("account_guest_in_cpu_meter", this->accountGuestInCPUMeter); 233f4b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233f4f: 48 8b 45 f0 mov -0x10(%rbp),%rax 233f53: 8a 40 60 mov 0x60(%rax),%al 233f56: 24 01 and $0x1,%al 233f58: 0f b6 d0 movzbl %al,%edx 233f5b: 0f be 4d df movsbl -0x21(%rbp),%ecx 233f5f: 48 be 1e 50 20 00 00 00 00 00 movabs $0x20501e,%rsi 233f69: b0 00 mov $0x0,%al 233f6b: e8 10 a3 00 00 call 23e280 printSettingInteger("color_scheme", this->colorScheme); 233f70: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233f74: 48 8b 45 f0 mov -0x10(%rbp),%rax 233f78: 8b 50 2c mov 0x2c(%rax),%edx 233f7b: 0f be 4d df movsbl -0x21(%rbp),%ecx 233f7f: 48 be f8 4b 20 00 00 00 00 00 movabs $0x204bf8,%rsi 233f89: b0 00 mov $0x0,%al 233f8b: e8 f0 a2 00 00 call 23e280 #ifdef HAVE_GETMOUSE printSettingInteger("enable_mouse", this->enableMouse); 233f90: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233f94: 48 8b 45 f0 mov -0x10(%rbp),%rax 233f98: 8a 40 62 mov 0x62(%rax),%al 233f9b: 24 01 and $0x1,%al 233f9d: 0f b6 d0 movzbl %al,%edx 233fa0: 0f be 4d df movsbl -0x21(%rbp),%ecx 233fa4: 48 be 80 34 20 00 00 00 00 00 movabs $0x203480,%rsi 233fae: b0 00 mov $0x0,%al 233fb0: e8 cb a2 00 00 call 23e280 #endif printSettingInteger("delay", (int) this->delay); 233fb5: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233fb9: 48 8b 45 f0 mov -0x10(%rbp),%rax 233fbd: 8b 50 30 mov 0x30(%rax),%edx 233fc0: 0f be 4d df movsbl -0x21(%rbp),%ecx 233fc4: 48 be 0a 4c 20 00 00 00 00 00 movabs $0x204c0a,%rsi 233fce: b0 00 mov $0x0,%al 233fd0: e8 ab a2 00 00 call 23e280 printSettingInteger("hide_function_bar", (int) this->hideFunctionBar); 233fd5: 48 8b 7d e0 mov -0x20(%rbp),%rdi 233fd9: 48 8b 45 f0 mov -0x10(%rbp),%rax 233fdd: 8b 50 64 mov 0x64(%rax),%edx 233fe0: 0f be 4d df movsbl -0x21(%rbp),%ecx 233fe4: 48 be 15 4c 20 00 00 00 00 00 movabs $0x204c15,%rsi 233fee: b0 00 mov $0x0,%al 233ff0: e8 8b a2 00 00 call 23e280 #ifdef HAVE_LIBHWLOC printSettingInteger("topology_affinity", this->topologyAffinity); #endif printSettingString("header_layout", HeaderLayout_getName(this->hLayout)); 233ff5: 48 8b 45 e0 mov -0x20(%rbp),%rax 233ff9: 48 89 45 c8 mov %rax,-0x38(%rbp) 233ffd: 48 8b 45 f0 mov -0x10(%rbp),%rax 234001: 8b 78 0c mov 0xc(%rax),%edi 234004: e8 97 02 00 00 call 2342a0 234009: 48 8b 7d c8 mov -0x38(%rbp),%rdi 23400d: 48 89 c2 mov %rax,%rdx 234010: 0f be 4d df movsbl -0x21(%rbp),%ecx 234014: 48 be 48 3f 20 00 00 00 00 00 movabs $0x203f48,%rsi 23401e: b0 00 mov $0x0,%al 234020: e8 5b a2 00 00 call 23e280 for (unsigned int i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 234025: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%rbp) 23402c: 8b 45 d8 mov -0x28(%rbp),%eax 23402f: 48 89 45 c0 mov %rax,-0x40(%rbp) 234033: 48 8b 45 f0 mov -0x10(%rbp),%rax 234037: 8b 78 0c mov 0xc(%rax),%edi 23403a: e8 b1 f9 ff ff call 2339f0 23403f: 48 89 c1 mov %rax,%rcx 234042: 48 8b 45 c0 mov -0x40(%rbp),%rax 234046: 48 39 c8 cmp %rcx,%rax 234049: 0f 83 6a 00 00 00 jae 2340b9 fprintf(fd, "column_meters_%u=", i); 23404f: 48 8b 7d e0 mov -0x20(%rbp),%rdi 234053: 8b 55 d8 mov -0x28(%rbp),%edx 234056: 48 be 7c 38 20 00 00 00 00 00 movabs $0x20387c,%rsi 234060: b0 00 mov $0x0,%al 234062: e8 19 a2 00 00 call 23e280 writeMeters(this, fd, separator, i); 234067: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23406b: 48 8b 75 e0 mov -0x20(%rbp),%rsi 23406f: 8a 45 df mov -0x21(%rbp),%al 234072: 8b 4d d8 mov -0x28(%rbp),%ecx 234075: 0f be d0 movsbl %al,%edx 234078: e8 53 02 00 00 call 2342d0 fprintf(fd, "column_meter_modes_%u=", i); 23407d: 48 8b 7d e0 mov -0x20(%rbp),%rdi 234081: 8b 55 d8 mov -0x28(%rbp),%edx 234084: 48 be a8 6d 20 00 00 00 00 00 movabs $0x206da8,%rsi 23408e: b0 00 mov $0x0,%al 234090: e8 eb a1 00 00 call 23e280 writeMeterModes(this, fd, separator, i); 234095: 48 8b 7d f0 mov -0x10(%rbp),%rdi 234099: 48 8b 75 e0 mov -0x20(%rbp),%rsi 23409d: 8a 45 df mov -0x21(%rbp),%al 2340a0: 8b 4d d8 mov -0x28(%rbp),%ecx 2340a3: 0f be d0 movsbl %al,%edx 2340a6: e8 e5 02 00 00 call 234390 for (unsigned int i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 2340ab: 8b 45 d8 mov -0x28(%rbp),%eax 2340ae: 83 c0 01 add $0x1,%eax 2340b1: 89 45 d8 mov %eax,-0x28(%rbp) 2340b4: e9 73 ff ff ff jmp 23402c } #undef printSettingString #undef printSettingInteger if (onCrash) 2340b9: f6 45 ef 01 testb $0x1,-0x11(%rbp) 2340bd: 0f 84 0c 00 00 00 je 2340cf return 0; 2340c3: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) 2340ca: e9 c2 00 00 00 jmp 234191 int r = 0; 2340cf: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) if (ferror(fd) != 0) 2340d6: 83 3c 25 c0 28 24 00 00 cmpl $0x0,0x2428c0 2340de: 0f 85 1e 00 00 00 jne 234102 2340e4: 48 8b 45 e0 mov -0x20(%rbp),%rax 2340e8: 0f bf 40 10 movswl 0x10(%rax),%eax 2340ec: 83 e0 40 and $0x40,%eax 2340ef: 83 f8 00 cmp $0x0,%eax 2340f2: 0f 95 c0 setne %al 2340f5: 24 01 and $0x1,%al 2340f7: 0f b6 c0 movzbl %al,%eax 2340fa: 89 45 bc mov %eax,-0x44(%rbp) 2340fd: e9 0c 00 00 00 jmp 23410e 234102: 48 8b 7d e0 mov -0x20(%rbp),%rdi 234106: e8 05 a7 00 00 call 23e810 23410b: 89 45 bc mov %eax,-0x44(%rbp) 23410e: 8b 45 bc mov -0x44(%rbp),%eax 234111: 83 f8 00 cmp $0x0,%eax 234114: 0f 84 35 00 00 00 je 23414f r = (errno != 0) ? -errno : -EBADF; 23411a: e8 01 a2 00 00 call 23e320 <__error@plt> 23411f: 83 38 00 cmpl $0x0,(%rax) 234122: 0f 84 14 00 00 00 je 23413c 234128: e8 f3 a1 00 00 call 23e320 <__error@plt> 23412d: 48 89 c1 mov %rax,%rcx 234130: 31 c0 xor %eax,%eax 234132: 2b 01 sub (%rcx),%eax 234134: 89 45 b8 mov %eax,-0x48(%rbp) 234137: e9 0d 00 00 00 jmp 234149 23413c: b8 f7 ff ff ff mov $0xfffffff7,%eax 234141: 89 45 b8 mov %eax,-0x48(%rbp) 234144: e9 00 00 00 00 jmp 234149 234149: 8b 45 b8 mov -0x48(%rbp),%eax 23414c: 89 45 d4 mov %eax,-0x2c(%rbp) if (fclose(fd) != 0) 23414f: 48 8b 7d e0 mov -0x20(%rbp),%rdi 234153: e8 88 a5 00 00 call 23e6e0 234158: 83 f8 00 cmp $0x0,%eax 23415b: 0f 84 2a 00 00 00 je 23418b r = r ? r : -errno; 234161: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) 234165: 0f 84 0b 00 00 00 je 234176 23416b: 8b 45 d4 mov -0x2c(%rbp),%eax 23416e: 89 45 b4 mov %eax,-0x4c(%rbp) 234171: e9 0f 00 00 00 jmp 234185 234176: e8 a5 a1 00 00 call 23e320 <__error@plt> 23417b: 48 89 c1 mov %rax,%rcx 23417e: 31 c0 xor %eax,%eax 234180: 2b 01 sub (%rcx),%eax 234182: 89 45 b4 mov %eax,-0x4c(%rbp) 234185: 8b 45 b4 mov -0x4c(%rbp),%eax 234188: 89 45 d4 mov %eax,-0x2c(%rbp) return r; 23418b: 8b 45 d4 mov -0x2c(%rbp),%eax 23418e: 89 45 fc mov %eax,-0x4(%rbp) } 234191: 8b 45 fc mov -0x4(%rbp),%eax 234194: 48 83 c4 50 add $0x50,%rsp 234198: 5d pop %rbp 234199: c3 ret 23419a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002341a0 : static void writeFields(FILE* fd, const ProcessField* fields, Hashtable* columns, const char* name, char separator) { 2341a0: 55 push %rbp 2341a1: 48 89 e5 mov %rsp,%rbp 2341a4: 48 83 ec 40 sub $0x40,%rsp 2341a8: 44 88 c0 mov %r8b,%al 2341ab: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2341af: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2341b3: 48 89 55 e8 mov %rdx,-0x18(%rbp) 2341b7: 48 89 4d e0 mov %rcx,-0x20(%rbp) 2341bb: 88 45 df mov %al,-0x21(%rbp) fprintf(fd, "%s=", name); 2341be: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2341c2: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2341c6: 48 be b3 59 20 00 00 00 00 00 movabs $0x2059b3,%rsi 2341d0: b0 00 mov $0x0,%al 2341d2: e8 a9 a0 00 00 call 23e280 const char* sep = ""; 2341d7: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 2341e1: 48 89 45 d0 mov %rax,-0x30(%rbp) for (unsigned int i = 0; fields[i]; i++) { 2341e5: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) 2341ec: 48 8b 45 f0 mov -0x10(%rbp),%rax 2341f0: 8b 4d cc mov -0x34(%rbp),%ecx 2341f3: 83 3c 88 00 cmpl $0x0,(%rax,%rcx,4) 2341f7: 0f 84 8c 00 00 00 je 234289 if (fields[i] >= LAST_PROCESSFIELD) { 2341fd: 48 8b 45 f0 mov -0x10(%rbp),%rax 234201: 8b 4d cc mov -0x34(%rbp),%ecx 234204: 83 3c 88 7f cmpl $0x7f,(%rax,%rcx,4) 234208: 0f 82 39 00 00 00 jb 234247 const DynamicColumn* column = DynamicColumn_lookup(columns, fields[i]); 23420e: 48 8b 7d e8 mov -0x18(%rbp),%rdi 234212: 48 8b 45 f0 mov -0x10(%rbp),%rax 234216: 8b 4d cc mov -0x34(%rbp),%ecx 234219: 8b 34 88 mov (%rax,%rcx,4),%esi 23421c: e8 ef 99 fe ff call 21dc10 234221: 48 89 45 c0 mov %rax,-0x40(%rbp) fprintf(fd, "%sDynamic(%s)", sep, column->name); 234225: 48 8b 7d f8 mov -0x8(%rbp),%rdi 234229: 48 8b 55 d0 mov -0x30(%rbp),%rdx 23422d: 48 8b 4d c0 mov -0x40(%rbp),%rcx 234231: 48 be a1 69 20 00 00 00 00 00 movabs $0x2069a1,%rsi 23423b: b0 00 mov $0x0,%al 23423d: e8 3e a0 00 00 call 23e280 } else { 234242: e9 26 00 00 00 jmp 23426d fprintf(fd, "%s%d", sep, (int) fields[i] - 1); 234247: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23424b: 48 8b 55 d0 mov -0x30(%rbp),%rdx 23424f: 48 8b 45 f0 mov -0x10(%rbp),%rax 234253: 8b 4d cc mov -0x34(%rbp),%ecx 234256: 8b 0c 88 mov (%rax,%rcx,4),%ecx 234259: 83 e9 01 sub $0x1,%ecx 23425c: 48 be 75 66 20 00 00 00 00 00 movabs $0x206675,%rsi 234266: b0 00 mov $0x0,%al 234268: e8 13 a0 00 00 call 23e280 sep = " "; 23426d: 48 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rax 234277: 48 89 45 d0 mov %rax,-0x30(%rbp) for (unsigned int i = 0; fields[i]; i++) { 23427b: 8b 45 cc mov -0x34(%rbp),%eax 23427e: 83 c0 01 add $0x1,%eax 234281: 89 45 cc mov %eax,-0x34(%rbp) 234284: e9 63 ff ff ff jmp 2341ec fputc(separator, fd); 234289: 0f be 7d df movsbl -0x21(%rbp),%edi 23428d: 48 8b 75 f8 mov -0x8(%rbp),%rsi 234291: e8 8a a5 00 00 call 23e820 } 234296: 48 83 c4 40 add $0x40,%rsp 23429a: 5d pop %rbp 23429b: c3 ret 23429c: 0f 1f 40 00 nopl 0x0(%rax) 00000000002342a0 : } static inline const char* HeaderLayout_getName(HeaderLayout hLayout) { 2342a0: 55 push %rbp 2342a1: 48 89 e5 mov %rsp,%rbp 2342a4: 89 7d fc mov %edi,-0x4(%rbp) /* assert the layout is initialized */ assert(0 <= hLayout); assert(hLayout < LAST_HEADER_LAYOUT); assert(HeaderLayout_layouts[hLayout].name[0]); assert(HeaderLayout_layouts[hLayout].description[0]); return HeaderLayout_layouts[hLayout].name; 2342a7: 8b 45 fc mov -0x4(%rbp),%eax 2342aa: 89 c1 mov %eax,%ecx 2342ac: 48 b8 90 a6 20 00 00 00 00 00 movabs $0x20a690,%rax 2342b6: 48 6b c9 18 imul $0x18,%rcx,%rcx 2342ba: 48 01 c8 add %rcx,%rax 2342bd: 48 8b 40 08 mov 0x8(%rax),%rax 2342c1: 5d pop %rbp 2342c2: c3 ret 2342c3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2342cd: 0f 1f 00 nopl (%rax) 00000000002342d0 : static void writeMeters(const Settings* this, FILE* fd, char separator, unsigned int column) { 2342d0: 55 push %rbp 2342d1: 48 89 e5 mov %rsp,%rbp 2342d4: 48 83 ec 30 sub $0x30,%rsp 2342d8: 88 d0 mov %dl,%al 2342da: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2342de: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2342e2: 88 45 ef mov %al,-0x11(%rbp) 2342e5: 89 4d e8 mov %ecx,-0x18(%rbp) const char* sep = ""; 2342e8: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 2342f2: 48 89 45 e0 mov %rax,-0x20(%rbp) for (size_t i = 0; i < this->hColumns[column].len; i++) { 2342f6: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 2342fe: 48 8b 45 d8 mov -0x28(%rbp),%rax 234302: 48 8b 4d f8 mov -0x8(%rbp),%rcx 234306: 48 8b 49 10 mov 0x10(%rcx),%rcx 23430a: 8b 55 e8 mov -0x18(%rbp),%edx 23430d: 48 6b d2 18 imul $0x18,%rdx,%rdx 234311: 48 01 d1 add %rdx,%rcx 234314: 48 3b 01 cmp (%rcx),%rax 234317: 0f 83 56 00 00 00 jae 234373 fprintf(fd, "%s%s", sep, this->hColumns[column].names[i]); 23431d: 48 8b 7d f0 mov -0x10(%rbp),%rdi 234321: 48 8b 55 e0 mov -0x20(%rbp),%rdx 234325: 48 8b 45 f8 mov -0x8(%rbp),%rax 234329: 48 8b 40 10 mov 0x10(%rax),%rax 23432d: 8b 4d e8 mov -0x18(%rbp),%ecx 234330: 48 6b c9 18 imul $0x18,%rcx,%rcx 234334: 48 01 c8 add %rcx,%rax 234337: 48 8b 40 08 mov 0x8(%rax),%rax 23433b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 23433f: 48 8b 0c c8 mov (%rax,%rcx,8),%rcx 234343: 48 be 22 69 20 00 00 00 00 00 movabs $0x206922,%rsi 23434d: b0 00 mov $0x0,%al 23434f: e8 2c 9f 00 00 call 23e280 sep = " "; 234354: 48 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rax 23435e: 48 89 45 e0 mov %rax,-0x20(%rbp) for (size_t i = 0; i < this->hColumns[column].len; i++) { 234362: 48 8b 45 d8 mov -0x28(%rbp),%rax 234366: 48 83 c0 01 add $0x1,%rax 23436a: 48 89 45 d8 mov %rax,-0x28(%rbp) 23436e: e9 8b ff ff ff jmp 2342fe fputc(separator, fd); 234373: 0f be 7d ef movsbl -0x11(%rbp),%edi 234377: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23437b: e8 a0 a4 00 00 call 23e820 } 234380: 48 83 c4 30 add $0x30,%rsp 234384: 5d pop %rbp 234385: c3 ret 234386: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000234390 : static void writeMeterModes(const Settings* this, FILE* fd, char separator, unsigned int column) { 234390: 55 push %rbp 234391: 48 89 e5 mov %rsp,%rbp 234394: 48 83 ec 30 sub $0x30,%rsp 234398: 88 d0 mov %dl,%al 23439a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23439e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2343a2: 88 45 ef mov %al,-0x11(%rbp) 2343a5: 89 4d e8 mov %ecx,-0x18(%rbp) const char* sep = ""; 2343a8: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 2343b2: 48 89 45 e0 mov %rax,-0x20(%rbp) for (size_t i = 0; i < this->hColumns[column].len; i++) { 2343b6: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 2343be: 48 8b 45 d8 mov -0x28(%rbp),%rax 2343c2: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2343c6: 48 8b 49 10 mov 0x10(%rcx),%rcx 2343ca: 8b 55 e8 mov -0x18(%rbp),%edx 2343cd: 48 6b d2 18 imul $0x18,%rdx,%rdx 2343d1: 48 01 d1 add %rdx,%rcx 2343d4: 48 3b 01 cmp (%rcx),%rax 2343d7: 0f 83 55 00 00 00 jae 234432 fprintf(fd, "%s%d", sep, this->hColumns[column].modes[i]); 2343dd: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2343e1: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2343e5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2343e9: 48 8b 40 10 mov 0x10(%rax),%rax 2343ed: 8b 4d e8 mov -0x18(%rbp),%ecx 2343f0: 48 6b c9 18 imul $0x18,%rcx,%rcx 2343f4: 48 01 c8 add %rcx,%rax 2343f7: 48 8b 40 10 mov 0x10(%rax),%rax 2343fb: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2343ff: 8b 0c 88 mov (%rax,%rcx,4),%ecx 234402: 48 be 75 66 20 00 00 00 00 00 movabs $0x206675,%rsi 23440c: b0 00 mov $0x0,%al 23440e: e8 6d 9e 00 00 call 23e280 sep = " "; 234413: 48 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rax 23441d: 48 89 45 e0 mov %rax,-0x20(%rbp) for (size_t i = 0; i < this->hColumns[column].len; i++) { 234421: 48 8b 45 d8 mov -0x28(%rbp),%rax 234425: 48 83 c0 01 add $0x1,%rax 234429: 48 89 45 d8 mov %rax,-0x28(%rbp) 23442d: e9 8c ff ff ff jmp 2343be fputc(separator, fd); 234432: 0f be 7d ef movsbl -0x11(%rbp),%edi 234436: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23443a: e8 e1 a3 00 00 call 23e820 } 23443f: 48 83 c4 30 add $0x30,%rsp 234443: 5d pop %rbp 234444: c3 ret 234445: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23444f: 90 nop 0000000000234450 : Settings* Settings_new(unsigned int initialCpuCount, Hashtable* dynamicColumns) { 234450: 55 push %rbp 234451: 48 89 e5 mov %rsp,%rbp 234454: 48 81 ec 50 01 00 00 sub $0x150,%rsp 23445b: 48 8b 05 ce e3 00 00 mov 0xe3ce(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 234462: 48 89 45 f8 mov %rax,-0x8(%rbp) 234466: 89 bd 14 ff ff ff mov %edi,-0xec(%rbp) 23446c: 48 89 b5 08 ff ff ff mov %rsi,-0xf8(%rbp) Settings* this = xCalloc(1, sizeof(Settings)); 234473: bf 01 00 00 00 mov $0x1,%edi 234478: be 70 00 00 00 mov $0x70,%esi 23447d: e8 6e 46 00 00 call 238af0 234482: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) this->dynamicColumns = dynamicColumns; 234489: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx 234490: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234497: 48 89 48 18 mov %rcx,0x18(%rax) this->hLayout = HF_TWO_50_50; 23449b: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344a2: c7 40 0c 00 00 00 00 movl $0x0,0xc(%rax) this->hColumns = xCalloc(HeaderLayout_getColumns(this->hLayout), sizeof(MeterColumnSetting)); 2344a9: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344b0: 8b 78 0c mov 0xc(%rax),%edi 2344b3: e8 38 f5 ff ff call 2339f0 2344b8: 48 89 c7 mov %rax,%rdi 2344bb: be 18 00 00 00 mov $0x18,%esi 2344c0: e8 2b 46 00 00 call 238af0 2344c5: 48 89 c1 mov %rax,%rcx 2344c8: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344cf: 48 89 48 10 mov %rcx,0x10(%rax) this->sortKey = PERCENT_CPU; 2344d3: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344da: c7 40 3c 2f 00 00 00 movl $0x2f,0x3c(%rax) this->treeSortKey = PID; 2344e1: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344e8: c7 40 40 01 00 00 00 movl $0x1,0x40(%rax) this->direction = -1; 2344ef: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2344f6: c7 40 34 ff ff ff ff movl $0xffffffff,0x34(%rax) this->treeDirection = 1; 2344fd: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234504: c7 40 38 01 00 00 00 movl $0x1,0x38(%rax) this->shadowOtherUsers = false; 23450b: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234512: c6 40 4e 00 movb $0x0,0x4e(%rax) this->showThreadNames = false; 234516: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23451d: c6 40 4f 00 movb $0x0,0x4f(%rax) this->hideKernelThreads = true; 234521: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234528: c6 40 50 01 movb $0x1,0x50(%rax) this->hideUserlandThreads = false; 23452c: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234533: c6 40 51 00 movb $0x0,0x51(%rax) this->treeView = false; 234537: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23453e: c6 40 4a 00 movb $0x0,0x4a(%rax) this->allBranchesCollapsed = false; 234542: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234549: c6 40 4c 00 movb $0x0,0x4c(%rax) this->highlightBaseName = false; 23454d: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234554: c6 40 52 00 movb $0x0,0x52(%rax) this->highlightDeletedExe = true; 234558: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23455f: c6 40 53 01 movb $0x1,0x53(%rax) this->highlightMegabytes = true; 234563: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23456a: c6 40 54 01 movb $0x1,0x54(%rax) this->detailedCPUTime = false; 23456e: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234575: c6 40 45 00 movb $0x0,0x45(%rax) this->countCPUsFromOne = false; 234579: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234580: c6 40 44 00 movb $0x0,0x44(%rax) this->showCPUUsage = true; 234584: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23458b: c6 40 46 01 movb $0x1,0x46(%rax) this->showCPUFrequency = false; 23458f: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234596: c6 40 47 00 movb $0x0,0x47(%rax) #ifdef BUILD_WITH_CPU_TEMP this->showCPUTemperature = false; 23459a: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345a1: c6 40 48 00 movb $0x0,0x48(%rax) this->degreeFahrenheit = false; 2345a5: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345ac: c6 40 49 00 movb $0x0,0x49(%rax) #endif this->updateProcessNames = false; 2345b0: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345b7: c6 40 5f 00 movb $0x0,0x5f(%rax) this->showProgramPath = true; 2345bb: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345c2: c6 40 4d 01 movb $0x1,0x4d(%rax) this->highlightThreads = true; 2345c6: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345cd: c6 40 55 01 movb $0x1,0x55(%rax) this->highlightChanges = false; 2345d1: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345d8: c6 40 56 00 movb $0x0,0x56(%rax) this->highlightDelaySecs = DEFAULT_HIGHLIGHT_SECS; 2345dc: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345e3: c7 40 58 05 00 00 00 movl $0x5,0x58(%rax) this->findCommInCmdline = true; 2345ea: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345f1: c6 40 5c 01 movb $0x1,0x5c(%rax) this->stripExeFromCmdline = true; 2345f5: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2345fc: c6 40 5d 01 movb $0x1,0x5d(%rax) this->showMergedCommand = false; 234600: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234607: c6 40 5e 00 movb $0x0,0x5e(%rax) this->hideFunctionBar = 0; 23460b: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234612: c7 40 64 00 00 00 00 movl $0x0,0x64(%rax) this->headerMargin = true; 234619: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234620: c6 40 61 01 movb $0x1,0x61(%rax) #ifdef HAVE_LIBHWLOC this->topologyAffinity = false; #endif this->fields = xCalloc(LAST_PROCESSFIELD + 1, sizeof(ProcessField)); 234624: bf 80 00 00 00 mov $0x80,%edi 234629: be 04 00 00 00 mov $0x4,%esi 23462e: e8 bd 44 00 00 call 238af0 234633: 48 89 c1 mov %rax,%rcx 234636: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23463d: 48 89 48 20 mov %rcx,0x20(%rax) // TODO: turn 'fields' into a Vector, // (and ProcessFields into proper objects). this->flags = 0; 234641: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234648: c7 40 28 00 00 00 00 movl $0x0,0x28(%rax) const ProcessField* defaults = Platform_defaultFields; 23464f: 48 b8 c0 aa 20 00 00 00 00 00 movabs $0x20aac0,%rax 234659: 48 89 85 f8 fe ff ff mov %rax,-0x108(%rbp) for (int i = 0; defaults[i]; i++) { 234660: c7 85 f4 fe ff ff 00 00 00 00 movl $0x0,-0x10c(%rbp) 23466a: 48 8b 85 f8 fe ff ff mov -0x108(%rbp),%rax 234671: 48 63 8d f4 fe ff ff movslq -0x10c(%rbp),%rcx 234678: 83 3c 88 00 cmpl $0x0,(%rax,%rcx,4) 23467c: 0f 84 6e 00 00 00 je 2346f0 this->fields[i] = defaults[i]; 234682: 48 8b 85 f8 fe ff ff mov -0x108(%rbp),%rax 234689: 48 63 8d f4 fe ff ff movslq -0x10c(%rbp),%rcx 234690: 8b 14 88 mov (%rax,%rcx,4),%edx 234693: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23469a: 48 8b 40 20 mov 0x20(%rax),%rax 23469e: 48 63 8d f4 fe ff ff movslq -0x10c(%rbp),%rcx 2346a5: 89 14 88 mov %edx,(%rax,%rcx,4) this->flags |= Process_fields[defaults[i]].flags; 2346a8: 48 8b 85 f8 fe ff ff mov -0x108(%rbp),%rax 2346af: 48 63 8d f4 fe ff ff movslq -0x10c(%rbp),%rcx 2346b6: 8b 04 88 mov (%rax,%rcx,4),%eax 2346b9: 89 c1 mov %eax,%ecx 2346bb: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2346c5: 48 c1 e1 05 shl $0x5,%rcx 2346c9: 48 01 c8 add %rcx,%rax 2346cc: 8b 48 18 mov 0x18(%rax),%ecx 2346cf: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2346d6: 0b 48 28 or 0x28(%rax),%ecx 2346d9: 89 48 28 mov %ecx,0x28(%rax) for (int i = 0; defaults[i]; i++) { 2346dc: 8b 85 f4 fe ff ff mov -0x10c(%rbp),%eax 2346e2: 83 c0 01 add $0x1,%eax 2346e5: 89 85 f4 fe ff ff mov %eax,-0x10c(%rbp) 2346eb: e9 7a ff ff ff jmp 23466a } char* legacyDotfile = NULL; 2346f0: 48 c7 85 e8 fe ff ff 00 00 00 00 movq $0x0,-0x118(%rbp) const char* rcfile = getenv("HTOPRC"); 2346fb: 48 bf fd 4d 20 00 00 00 00 00 movabs $0x204dfd,%rdi 234705: e8 16 9b 00 00 call 23e220 23470a: 48 89 85 e0 fe ff ff mov %rax,-0x120(%rbp) if (rcfile) { 234711: 48 83 bd e0 fe ff ff 00 cmpq $0x0,-0x120(%rbp) 234719: 0f 84 1e 00 00 00 je 23473d this->filename = xStrdup(rcfile); 23471f: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 234726: e8 c5 48 00 00 call 238ff0 23472b: 48 89 c1 mov %rax,%rcx 23472e: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234735: 48 89 08 mov %rcx,(%rax) } else { 234738: e9 d4 01 00 00 jmp 234911 const char* home = getenv("HOME"); 23473d: 48 bf 3e 50 20 00 00 00 00 00 movabs $0x20503e,%rdi 234747: e8 d4 9a 00 00 call 23e220 23474c: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) if (!home) 234753: 48 83 bd d8 fe ff ff 00 cmpq $0x0,-0x128(%rbp) 23475b: 0f 85 11 00 00 00 jne 234772 home = ""; 234761: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 23476b: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) const char* xdgConfigHome = getenv("XDG_CONFIG_HOME"); 234772: 48 bf ab 40 20 00 00 00 00 00 movabs $0x2040ab,%rdi 23477c: e8 9f 9a 00 00 call 23e220 234781: 48 89 85 d0 fe ff ff mov %rax,-0x130(%rbp) char* configDir = NULL; 234788: 48 c7 85 c8 fe ff ff 00 00 00 00 movq $0x0,-0x138(%rbp) char* htopDir = NULL; 234793: 48 c7 85 c0 fe ff ff 00 00 00 00 movq $0x0,-0x140(%rbp) if (xdgConfigHome) { 23479e: 48 83 bd d0 fe ff ff 00 cmpq $0x0,-0x130(%rbp) 2347a6: 0f 84 58 00 00 00 je 234804 this->filename = String_cat(xdgConfigHome, "/htop/htoprc"); 2347ac: 48 8b bd d0 fe ff ff mov -0x130(%rbp),%rdi 2347b3: 48 be fe 39 20 00 00 00 00 00 movabs $0x2039fe,%rsi 2347bd: e8 ee 44 00 00 call 238cb0 2347c2: 48 89 c1 mov %rax,%rcx 2347c5: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2347cc: 48 89 08 mov %rcx,(%rax) configDir = xStrdup(xdgConfigHome); 2347cf: 48 8b bd d0 fe ff ff mov -0x130(%rbp),%rdi 2347d6: e8 15 48 00 00 call 238ff0 2347db: 48 89 85 c8 fe ff ff mov %rax,-0x138(%rbp) htopDir = String_cat(xdgConfigHome, "/htop"); 2347e2: 48 8b bd d0 fe ff ff mov -0x130(%rbp),%rdi 2347e9: 48 be c4 6b 20 00 00 00 00 00 movabs $0x206bc4,%rsi 2347f3: e8 b8 44 00 00 call 238cb0 2347f8: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) } else { 2347ff: e9 5d 00 00 00 jmp 234861 this->filename = String_cat(home, "/.config/htop/htoprc"); 234804: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 23480b: 48 be c7 3d 20 00 00 00 00 00 movabs $0x203dc7,%rsi 234815: e8 96 44 00 00 call 238cb0 23481a: 48 89 c1 mov %rax,%rcx 23481d: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234824: 48 89 08 mov %rcx,(%rax) configDir = String_cat(home, "/.config"); 234827: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 23482e: 48 be b9 43 20 00 00 00 00 00 movabs $0x2043b9,%rsi 234838: e8 73 44 00 00 call 238cb0 23483d: 48 89 85 c8 fe ff ff mov %rax,-0x138(%rbp) htopDir = String_cat(home, "/.config/htop"); 234844: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 23484b: 48 be 34 64 20 00 00 00 00 00 movabs $0x206434,%rsi 234855: e8 56 44 00 00 call 238cb0 23485a: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) } legacyDotfile = String_cat(home, "/.htoprc"); 234861: 48 8b bd d8 fe ff ff mov -0x128(%rbp),%rdi 234868: 48 be de 5c 20 00 00 00 00 00 movabs $0x205cde,%rsi 234872: e8 39 44 00 00 call 238cb0 234877: 48 89 85 e8 fe ff ff mov %rax,-0x118(%rbp) (void) mkdir(configDir, 0700); 23487e: 48 8b bd c8 fe ff ff mov -0x138(%rbp),%rdi 234885: be c0 01 00 00 mov $0x1c0,%esi 23488a: e8 a1 9f 00 00 call 23e830 (void) mkdir(htopDir, 0700); 23488f: 48 8b bd c0 fe ff ff mov -0x140(%rbp),%rdi 234896: be c0 01 00 00 mov $0x1c0,%esi 23489b: e8 90 9f 00 00 call 23e830 free(htopDir); 2348a0: 48 8b bd c0 fe ff ff mov -0x140(%rbp),%rdi 2348a7: e8 b4 98 00 00 call 23e160 free(configDir); 2348ac: 48 8b bd c8 fe ff ff mov -0x138(%rbp),%rdi 2348b3: e8 a8 98 00 00 call 23e160 struct stat st; int err = lstat(legacyDotfile, &st); 2348b8: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi 2348bf: 48 8d b5 18 ff ff ff lea -0xe8(%rbp),%rsi 2348c6: e8 75 9a 00 00 call 23e340 2348cb: 89 85 bc fe ff ff mov %eax,-0x144(%rbp) if (err || S_ISLNK(st.st_mode)) { 2348d1: 83 bd bc fe ff ff 00 cmpl $0x0,-0x144(%rbp) 2348d8: 0f 85 17 00 00 00 jne 2348f5 2348de: 0f b7 85 30 ff ff ff movzwl -0xd0(%rbp),%eax 2348e5: 25 00 f0 00 00 and $0xf000,%eax 2348ea: 3d 00 a0 00 00 cmp $0xa000,%eax 2348ef: 0f 85 17 00 00 00 jne 23490c free(legacyDotfile); 2348f5: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi 2348fc: e8 5f 98 00 00 call 23e160 legacyDotfile = NULL; 234901: 48 c7 85 e8 fe ff ff 00 00 00 00 movq $0x0,-0x118(%rbp) 23490c: e9 00 00 00 00 jmp 234911 } } this->colorScheme = 0; 234911: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234918: c7 40 2c 00 00 00 00 movl $0x0,0x2c(%rax) #ifdef HAVE_GETMOUSE this->enableMouse = true; 23491f: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234926: c6 40 62 01 movb $0x1,0x62(%rax) #endif this->changed = false; 23492a: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234931: c6 40 68 00 movb $0x0,0x68(%rax) this->delay = DEFAULT_DELAY; 234935: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 23493c: c7 40 30 0f 00 00 00 movl $0xf,0x30(%rax) bool ok = false; 234943: c6 85 bb fe ff ff 00 movb $0x0,-0x145(%rbp) if (legacyDotfile) { 23494a: 48 83 bd e8 fe ff ff 00 cmpq $0x0,-0x118(%rbp) 234952: 0f 84 62 00 00 00 je 2349ba ok = Settings_read(this, legacyDotfile, initialCpuCount); 234958: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 23495f: 48 8b b5 e8 fe ff ff mov -0x118(%rbp),%rsi 234966: 8b 95 14 ff ff ff mov -0xec(%rbp),%edx 23496c: e8 0f 01 00 00 call 234a80 234971: 24 01 and $0x1,%al 234973: 88 85 bb fe ff ff mov %al,-0x145(%rbp) if (ok) { 234979: f6 85 bb fe ff ff 01 testb $0x1,-0x145(%rbp) 234980: 0f 84 28 00 00 00 je 2349ae // Transition to new location and delete old configuration file if (Settings_write(this, false) == 0) { 234986: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 23498d: 31 f6 xor %esi,%esi 23498f: e8 8c f0 ff ff call 233a20 234994: 83 f8 00 cmp $0x0,%eax 234997: 0f 85 0c 00 00 00 jne 2349a9 unlink(legacyDotfile); 23499d: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi 2349a4: e8 97 9e 00 00 call 23e840 } } 2349a9: e9 00 00 00 00 jmp 2349ae free(legacyDotfile); 2349ae: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi 2349b5: e8 a6 97 00 00 call 23e160 } if (!ok) { 2349ba: f6 85 bb fe ff ff 01 testb $0x1,-0x145(%rbp) 2349c1: 0f 85 24 00 00 00 jne 2349eb ok = Settings_read(this, this->filename, initialCpuCount); 2349c7: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 2349ce: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2349d5: 48 8b 30 mov (%rax),%rsi 2349d8: 8b 95 14 ff ff ff mov -0xec(%rbp),%edx 2349de: e8 9d 00 00 00 call 234a80 2349e3: 24 01 and $0x1,%al 2349e5: 88 85 bb fe ff ff mov %al,-0x145(%rbp) } if (!ok) { 2349eb: f6 85 bb fe ff ff 01 testb $0x1,-0x145(%rbp) 2349f2: 0f 85 2f 00 00 00 jne 234a27 this->changed = true; 2349f8: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 2349ff: c6 40 68 01 movb $0x1,0x68(%rax) ok = Settings_read(this, SYSCONFDIR "/htoprc", initialCpuCount); 234a03: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 234a0a: 8b 95 14 ff ff ff mov -0xec(%rbp),%edx 234a10: 48 be f3 6c 20 00 00 00 00 00 movabs $0x206cf3,%rsi 234a1a: e8 61 00 00 00 call 234a80 234a1f: 24 01 and $0x1,%al 234a21: 88 85 bb fe ff ff mov %al,-0x145(%rbp) } if (!ok) { 234a27: f6 85 bb fe ff ff 01 testb $0x1,-0x145(%rbp) 234a2e: 0f 85 12 00 00 00 jne 234a46 Settings_defaultMeters(this, initialCpuCount); 234a34: 48 8b bd 00 ff ff ff mov -0x100(%rbp),%rdi 234a3b: 8b b5 14 ff ff ff mov -0xec(%rbp),%esi 234a41: e8 4a 10 00 00 call 235a90 } return this; 234a46: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax 234a4d: 48 89 85 b0 fe ff ff mov %rax,-0x150(%rbp) 234a54: 48 8b 05 d5 dd 00 00 mov 0xddd5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 234a5b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 234a5f: 48 39 c8 cmp %rcx,%rax 234a62: 0f 85 10 00 00 00 jne 234a78 234a68: 48 8b 85 b0 fe ff ff mov -0x150(%rbp),%rax 234a6f: 48 81 c4 50 01 00 00 add $0x150,%rsp 234a76: 5d pop %rbp 234a77: c3 ret 234a78: e8 c3 96 00 00 call 23e140 <__stack_chk_fail@plt> 234a7d: 0f 1f 00 nopl (%rax) 0000000000234a80 : static bool Settings_read(Settings* this, const char* fileName, unsigned int initialCpuCount) { 234a80: 55 push %rbp 234a81: 48 89 e5 mov %rsp,%rbp 234a84: 48 81 ec 90 00 00 00 sub $0x90,%rsp 234a8b: 48 8b 05 9e dd 00 00 mov 0xdd9e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 234a92: 48 89 45 f8 mov %rax,-0x8(%rbp) 234a96: 48 89 7d e0 mov %rdi,-0x20(%rbp) 234a9a: 48 89 75 d8 mov %rsi,-0x28(%rbp) 234a9e: 89 55 d4 mov %edx,-0x2c(%rbp) FILE* fd = fopen(fileName, "r"); 234aa1: 48 8b 7d d8 mov -0x28(%rbp),%rdi 234aa5: 48 be 76 55 20 00 00 00 00 00 movabs $0x205576,%rsi 234aaf: e8 4c 9d 00 00 call 23e800 234ab4: 48 89 45 c8 mov %rax,-0x38(%rbp) if (!fd) 234ab8: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 234abd: 0f 85 09 00 00 00 jne 234acc return false; 234ac3: c6 45 ef 00 movb $0x0,-0x11(%rbp) 234ac7: e9 80 0f 00 00 jmp 235a4c bool didReadMeters = false; 234acc: c6 45 c7 00 movb $0x0,-0x39(%rbp) bool didReadAny = false; 234ad0: c6 45 c6 00 movb $0x0,-0x3a(%rbp) char* line = String_readLine(fd); 234ad4: 48 8b 7d c8 mov -0x38(%rbp),%rdi 234ad8: e8 53 47 00 00 call 239230 234add: 48 89 45 b8 mov %rax,-0x48(%rbp) if (!line) { 234ae1: 48 83 7d b8 00 cmpq $0x0,-0x48(%rbp) 234ae6: 0f 85 05 00 00 00 jne 234af1 break; 234aec: e9 23 0f 00 00 jmp 235a14 didReadAny = true; 234af1: c6 45 c6 01 movb $0x1,-0x3a(%rbp) char** option = String_split(line, '=', &nOptions); 234af5: 48 8b 7d b8 mov -0x48(%rbp),%rdi 234af9: be 3d 00 00 00 mov $0x3d,%esi 234afe: 48 8d 55 f0 lea -0x10(%rbp),%rdx 234b02: e8 89 43 00 00 call 238e90 234b07: 48 89 45 b0 mov %rax,-0x50(%rbp) free (line); 234b0b: 48 8b 7d b8 mov -0x48(%rbp),%rdi 234b0f: e8 4c 96 00 00 call 23e160 if (nOptions < 2) { 234b14: 48 83 7d f0 02 cmpq $0x2,-0x10(%rbp) 234b19: 0f 83 0e 00 00 00 jae 234b2d String_freeArray(option); 234b1f: 48 8b 7d b0 mov -0x50(%rbp),%rdi 234b23: e8 08 45 00 00 call 239030 continue; 234b28: e9 a7 ff ff ff jmp 234ad4 if (String_eq(option[0], "config_reader_min_version")) { 234b2d: 48 8b 45 b0 mov -0x50(%rbp),%rax 234b31: 48 8b 38 mov (%rax),%rdi 234b34: 48 be bf 6d 20 00 00 00 00 00 movabs $0x206dbf,%rsi 234b3e: e8 cd 17 00 00 call 236310 234b43: a8 01 test $0x1,%al 234b45: 0f 85 05 00 00 00 jne 234b50 234b4b: e9 b9 00 00 00 jmp 234c09 this->config_version = atoi(option[1]); 234b50: 48 8b 45 b0 mov -0x50(%rbp),%rax 234b54: 48 8b 78 08 mov 0x8(%rax),%rdi 234b58: e8 a3 97 00 00 call 23e300 234b5d: 89 c1 mov %eax,%ecx 234b5f: 48 8b 45 e0 mov -0x20(%rbp),%rax 234b63: 89 48 08 mov %ecx,0x8(%rax) if (this->config_version > CONFIG_READER_MIN_VERSION) { 234b66: 48 8b 45 e0 mov -0x20(%rbp),%rax 234b6a: 83 78 08 02 cmpl $0x2,0x8(%rax) 234b6e: 0f 8e 90 00 00 00 jle 234c04 fprintf(stderr, "WARNING: %s specifies configuration format\n", fileName); 234b74: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 234b7c: 48 8b 55 d8 mov -0x28(%rbp),%rdx 234b80: 48 be f1 4a 20 00 00 00 00 00 movabs $0x204af1,%rsi 234b8a: b0 00 mov $0x0,%al 234b8c: e8 ef 96 00 00 call 23e280 fprintf(stderr, " version v%d, but this %s binary only supports up to version v%d.\n", this->config_version, PACKAGE, CONFIG_READER_MIN_VERSION); 234b91: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 234b99: 48 8b 45 e0 mov -0x20(%rbp),%rax 234b9d: 8b 50 08 mov 0x8(%rax),%edx 234ba0: 48 be 94 46 20 00 00 00 00 00 movabs $0x204694,%rsi 234baa: 48 b9 a9 50 20 00 00 00 00 00 movabs $0x2050a9,%rcx 234bb4: 41 b8 02 00 00 00 mov $0x2,%r8d 234bba: b0 00 mov $0x0,%al 234bbc: e8 bf 96 00 00 call 23e280 fprintf(stderr, " The configuration file will be downgraded to v%d when %s exits.\n", CONFIG_READER_MIN_VERSION, PACKAGE); 234bc1: 48 8b 3c 25 a8 28 24 00 mov 0x2428a8,%rdi 234bc9: 48 be df 46 20 00 00 00 00 00 movabs $0x2046df,%rsi 234bd3: ba 02 00 00 00 mov $0x2,%edx 234bd8: 48 b9 a9 50 20 00 00 00 00 00 movabs $0x2050a9,%rcx 234be2: b0 00 mov $0x0,%al 234be4: e8 97 96 00 00 call 23e280 String_freeArray(option); 234be9: 48 8b 7d b0 mov -0x50(%rbp),%rdi 234bed: e8 3e 44 00 00 call 239030 fclose(fd); 234bf2: 48 8b 7d c8 mov -0x38(%rbp),%rdi 234bf6: e8 e5 9a 00 00 call 23e6e0 return false; 234bfb: c6 45 ef 00 movb $0x0,-0x11(%rbp) 234bff: e9 48 0e 00 00 jmp 235a4c } else if (String_eq(option[0], "fields")) { 234c04: e9 fd 0d 00 00 jmp 235a06 234c09: 48 8b 45 b0 mov -0x50(%rbp),%rax 234c0d: 48 8b 38 mov (%rax),%rdi 234c10: 48 be 55 66 20 00 00 00 00 00 movabs $0x206655,%rsi 234c1a: e8 f1 16 00 00 call 236310 234c1f: a8 01 test $0x1,%al 234c21: 0f 85 05 00 00 00 jne 234c2c 234c27: e9 16 00 00 00 jmp 234c42 Settings_readFields(this, option[1]); 234c2c: 48 8b 7d e0 mov -0x20(%rbp),%rdi 234c30: 48 8b 45 b0 mov -0x50(%rbp),%rax 234c34: 48 8b 70 08 mov 0x8(%rax),%rsi 234c38: e8 03 17 00 00 call 236340 } else if (String_eq(option[0], "sort_key")) { 234c3d: e9 bf 0d 00 00 jmp 235a01 234c42: 48 8b 45 b0 mov -0x50(%rbp),%rax 234c46: 48 8b 38 mov (%rax),%rdi 234c49: 48 be 29 47 20 00 00 00 00 00 movabs $0x204729,%rsi 234c53: e8 b8 16 00 00 call 236310 234c58: a8 01 test $0x1,%al 234c5a: 0f 85 05 00 00 00 jne 234c65 234c60: e9 1e 00 00 00 jmp 234c83 this->sortKey = atoi(option[1]) + 1; 234c65: 48 8b 45 b0 mov -0x50(%rbp),%rax 234c69: 48 8b 78 08 mov 0x8(%rax),%rdi 234c6d: e8 8e 96 00 00 call 23e300 234c72: 89 c1 mov %eax,%ecx 234c74: 83 c1 01 add $0x1,%ecx 234c77: 48 8b 45 e0 mov -0x20(%rbp),%rax 234c7b: 89 48 3c mov %ecx,0x3c(%rax) } else if (String_eq(option[0], "tree_sort_key")) { 234c7e: e9 79 0d 00 00 jmp 2359fc 234c83: 48 8b 45 b0 mov -0x50(%rbp),%rax 234c87: 48 8b 38 mov (%rax),%rdi 234c8a: 48 be 4c 68 20 00 00 00 00 00 movabs $0x20684c,%rsi 234c94: e8 77 16 00 00 call 236310 234c99: a8 01 test $0x1,%al 234c9b: 0f 85 05 00 00 00 jne 234ca6 234ca1: e9 1e 00 00 00 jmp 234cc4 this->treeSortKey = atoi(option[1]) + 1; 234ca6: 48 8b 45 b0 mov -0x50(%rbp),%rax 234caa: 48 8b 78 08 mov 0x8(%rax),%rdi 234cae: e8 4d 96 00 00 call 23e300 234cb3: 89 c1 mov %eax,%ecx 234cb5: 83 c1 01 add $0x1,%ecx 234cb8: 48 8b 45 e0 mov -0x20(%rbp),%rax 234cbc: 89 48 40 mov %ecx,0x40(%rax) } else if (String_eq(option[0], "sort_direction")) { 234cbf: e9 33 0d 00 00 jmp 2359f7 234cc4: 48 8b 45 b0 mov -0x50(%rbp),%rax 234cc8: 48 8b 38 mov (%rax),%rdi 234ccb: 48 be 92 34 20 00 00 00 00 00 movabs $0x203492,%rsi 234cd5: e8 36 16 00 00 call 236310 234cda: a8 01 test $0x1,%al 234cdc: 0f 85 05 00 00 00 jne 234ce7 234ce2: e9 1b 00 00 00 jmp 234d02 this->direction = atoi(option[1]); 234ce7: 48 8b 45 b0 mov -0x50(%rbp),%rax 234ceb: 48 8b 78 08 mov 0x8(%rax),%rdi 234cef: e8 0c 96 00 00 call 23e300 234cf4: 89 c1 mov %eax,%ecx 234cf6: 48 8b 45 e0 mov -0x20(%rbp),%rax 234cfa: 89 48 34 mov %ecx,0x34(%rax) } else if (String_eq(option[0], "tree_sort_direction")) { 234cfd: e9 f0 0c 00 00 jmp 2359f2 234d02: 48 8b 45 b0 mov -0x50(%rbp),%rax 234d06: 48 8b 38 mov (%rax),%rdi 234d09: 48 be 04 4e 20 00 00 00 00 00 movabs $0x204e04,%rsi 234d13: e8 f8 15 00 00 call 236310 234d18: a8 01 test $0x1,%al 234d1a: 0f 85 05 00 00 00 jne 234d25 234d20: e9 1b 00 00 00 jmp 234d40 this->treeDirection = atoi(option[1]); 234d25: 48 8b 45 b0 mov -0x50(%rbp),%rax 234d29: 48 8b 78 08 mov 0x8(%rax),%rdi 234d2d: e8 ce 95 00 00 call 23e300 234d32: 89 c1 mov %eax,%ecx 234d34: 48 8b 45 e0 mov -0x20(%rbp),%rax 234d38: 89 48 38 mov %ecx,0x38(%rax) } else if (String_eq(option[0], "tree_view")) { 234d3b: e9 ad 0c 00 00 jmp 2359ed 234d40: 48 8b 45 b0 mov -0x50(%rbp),%rax 234d44: 48 8b 38 mov (%rax),%rdi 234d47: 48 be 70 36 20 00 00 00 00 00 movabs $0x203670,%rsi 234d51: e8 ba 15 00 00 call 236310 234d56: a8 01 test $0x1,%al 234d58: 0f 85 05 00 00 00 jne 234d63 234d5e: e9 22 00 00 00 jmp 234d85 this->treeView = atoi(option[1]); 234d63: 48 8b 45 b0 mov -0x50(%rbp),%rax 234d67: 48 8b 78 08 mov 0x8(%rax),%rdi 234d6b: e8 90 95 00 00 call 23e300 234d70: 83 f8 00 cmp $0x0,%eax 234d73: 0f 95 c1 setne %cl 234d76: 48 8b 45 e0 mov -0x20(%rbp),%rax 234d7a: 80 e1 01 and $0x1,%cl 234d7d: 88 48 4a mov %cl,0x4a(%rax) } else if (String_eq(option[0], "tree_view_always_by_pid")) { 234d80: e9 63 0c 00 00 jmp 2359e8 234d85: 48 8b 45 b0 mov -0x50(%rbp),%rax 234d89: 48 8b 38 mov (%rax),%rdi 234d8c: 48 be 18 4e 20 00 00 00 00 00 movabs $0x204e18,%rsi 234d96: e8 75 15 00 00 call 236310 234d9b: a8 01 test $0x1,%al 234d9d: 0f 85 05 00 00 00 jne 234da8 234da3: e9 22 00 00 00 jmp 234dca this->treeViewAlwaysByPID = atoi(option[1]); 234da8: 48 8b 45 b0 mov -0x50(%rbp),%rax 234dac: 48 8b 78 08 mov 0x8(%rax),%rdi 234db0: e8 4b 95 00 00 call 23e300 234db5: 83 f8 00 cmp $0x0,%eax 234db8: 0f 95 c1 setne %cl 234dbb: 48 8b 45 e0 mov -0x20(%rbp),%rax 234dbf: 80 e1 01 and $0x1,%cl 234dc2: 88 48 4b mov %cl,0x4b(%rax) } else if (String_eq(option[0], "all_branches_collapsed")) { 234dc5: e9 19 0c 00 00 jmp 2359e3 234dca: 48 8b 45 b0 mov -0x50(%rbp),%rax 234dce: 48 8b 38 mov (%rax),%rdi 234dd1: 48 be 32 47 20 00 00 00 00 00 movabs $0x204732,%rsi 234ddb: e8 30 15 00 00 call 236310 234de0: a8 01 test $0x1,%al 234de2: 0f 85 05 00 00 00 jne 234ded 234de8: e9 22 00 00 00 jmp 234e0f this->allBranchesCollapsed = atoi(option[1]); 234ded: 48 8b 45 b0 mov -0x50(%rbp),%rax 234df1: 48 8b 78 08 mov 0x8(%rax),%rdi 234df5: e8 06 95 00 00 call 23e300 234dfa: 83 f8 00 cmp $0x0,%eax 234dfd: 0f 95 c1 setne %cl 234e00: 48 8b 45 e0 mov -0x20(%rbp),%rax 234e04: 80 e1 01 and $0x1,%cl 234e07: 88 48 4c mov %cl,0x4c(%rax) } else if (String_eq(option[0], "hide_kernel_threads")) { 234e0a: e9 cf 0b 00 00 jmp 2359de 234e0f: 48 8b 45 b0 mov -0x50(%rbp),%rax 234e13: 48 8b 38 mov (%rax),%rdi 234e16: 48 be a1 34 20 00 00 00 00 00 movabs $0x2034a1,%rsi 234e20: e8 eb 14 00 00 call 236310 234e25: a8 01 test $0x1,%al 234e27: 0f 85 05 00 00 00 jne 234e32 234e2d: e9 22 00 00 00 jmp 234e54 this->hideKernelThreads = atoi(option[1]); 234e32: 48 8b 45 b0 mov -0x50(%rbp),%rax 234e36: 48 8b 78 08 mov 0x8(%rax),%rdi 234e3a: e8 c1 94 00 00 call 23e300 234e3f: 83 f8 00 cmp $0x0,%eax 234e42: 0f 95 c1 setne %cl 234e45: 48 8b 45 e0 mov -0x20(%rbp),%rax 234e49: 80 e1 01 and $0x1,%cl 234e4c: 88 48 50 mov %cl,0x50(%rax) } else if (String_eq(option[0], "hide_userland_threads")) { 234e4f: e9 85 0b 00 00 jmp 2359d9 234e54: 48 8b 45 b0 mov -0x50(%rbp),%rax 234e58: 48 8b 38 mov (%rax),%rdi 234e5b: 48 be 2c 4c 20 00 00 00 00 00 movabs $0x204c2c,%rsi 234e65: e8 a6 14 00 00 call 236310 234e6a: a8 01 test $0x1,%al 234e6c: 0f 85 05 00 00 00 jne 234e77 234e72: e9 22 00 00 00 jmp 234e99 this->hideUserlandThreads = atoi(option[1]); 234e77: 48 8b 45 b0 mov -0x50(%rbp),%rax 234e7b: 48 8b 78 08 mov 0x8(%rax),%rdi 234e7f: e8 7c 94 00 00 call 23e300 234e84: 83 f8 00 cmp $0x0,%eax 234e87: 0f 95 c1 setne %cl 234e8a: 48 8b 45 e0 mov -0x20(%rbp),%rax 234e8e: 80 e1 01 and $0x1,%cl 234e91: 88 48 51 mov %cl,0x51(%rax) } else if (String_eq(option[0], "shadow_other_users")) { 234e94: e9 3b 0b 00 00 jmp 2359d4 234e99: 48 8b 45 b0 mov -0x50(%rbp),%rax 234e9d: 48 8b 38 mov (%rax),%rdi 234ea0: 48 be 1d 4b 20 00 00 00 00 00 movabs $0x204b1d,%rsi 234eaa: e8 61 14 00 00 call 236310 234eaf: a8 01 test $0x1,%al 234eb1: 0f 85 05 00 00 00 jne 234ebc 234eb7: e9 22 00 00 00 jmp 234ede this->shadowOtherUsers = atoi(option[1]); 234ebc: 48 8b 45 b0 mov -0x50(%rbp),%rax 234ec0: 48 8b 78 08 mov 0x8(%rax),%rdi 234ec4: e8 37 94 00 00 call 23e300 234ec9: 83 f8 00 cmp $0x0,%eax 234ecc: 0f 95 c1 setne %cl 234ecf: 48 8b 45 e0 mov -0x20(%rbp),%rax 234ed3: 80 e1 01 and $0x1,%cl 234ed6: 88 48 4e mov %cl,0x4e(%rax) } else if (String_eq(option[0], "show_thread_names")) { 234ed9: e9 f1 0a 00 00 jmp 2359cf 234ede: 48 8b 45 b0 mov -0x50(%rbp),%rax 234ee2: 48 8b 38 mov (%rax),%rdi 234ee5: 48 be 7a 36 20 00 00 00 00 00 movabs $0x20367a,%rsi 234eef: e8 1c 14 00 00 call 236310 234ef4: a8 01 test $0x1,%al 234ef6: 0f 85 05 00 00 00 jne 234f01 234efc: e9 22 00 00 00 jmp 234f23 this->showThreadNames = atoi(option[1]); 234f01: 48 8b 45 b0 mov -0x50(%rbp),%rax 234f05: 48 8b 78 08 mov 0x8(%rax),%rdi 234f09: e8 f2 93 00 00 call 23e300 234f0e: 83 f8 00 cmp $0x0,%eax 234f11: 0f 95 c1 setne %cl 234f14: 48 8b 45 e0 mov -0x20(%rbp),%rax 234f18: 80 e1 01 and $0x1,%cl 234f1b: 88 48 4f mov %cl,0x4f(%rax) } else if (String_eq(option[0], "show_program_path")) { 234f1e: e9 a7 0a 00 00 jmp 2359ca 234f23: 48 8b 45 b0 mov -0x50(%rbp),%rax 234f27: 48 8b 38 mov (%rax),%rdi 234f2a: 48 be b7 59 20 00 00 00 00 00 movabs $0x2059b7,%rsi 234f34: e8 d7 13 00 00 call 236310 234f39: a8 01 test $0x1,%al 234f3b: 0f 85 05 00 00 00 jne 234f46 234f41: e9 22 00 00 00 jmp 234f68 this->showProgramPath = atoi(option[1]); 234f46: 48 8b 45 b0 mov -0x50(%rbp),%rax 234f4a: 48 8b 78 08 mov 0x8(%rax),%rdi 234f4e: e8 ad 93 00 00 call 23e300 234f53: 83 f8 00 cmp $0x0,%eax 234f56: 0f 95 c1 setne %cl 234f59: 48 8b 45 e0 mov -0x20(%rbp),%rax 234f5d: 80 e1 01 and $0x1,%cl 234f60: 88 48 4d mov %cl,0x4d(%rax) } else if (String_eq(option[0], "highlight_base_name")) { 234f63: e9 5d 0a 00 00 jmp 2359c5 234f68: 48 8b 45 b0 mov -0x50(%rbp),%rax 234f6c: 48 8b 38 mov (%rax),%rdi 234f6f: 48 be 63 57 20 00 00 00 00 00 movabs $0x205763,%rsi 234f79: e8 92 13 00 00 call 236310 234f7e: a8 01 test $0x1,%al 234f80: 0f 85 05 00 00 00 jne 234f8b 234f86: e9 22 00 00 00 jmp 234fad this->highlightBaseName = atoi(option[1]); 234f8b: 48 8b 45 b0 mov -0x50(%rbp),%rax 234f8f: 48 8b 78 08 mov 0x8(%rax),%rdi 234f93: e8 68 93 00 00 call 23e300 234f98: 83 f8 00 cmp $0x0,%eax 234f9b: 0f 95 c1 setne %cl 234f9e: 48 8b 45 e0 mov -0x20(%rbp),%rax 234fa2: 80 e1 01 and $0x1,%cl 234fa5: 88 48 52 mov %cl,0x52(%rax) } else if (String_eq(option[0], "highlight_deleted_exe")) { 234fa8: e9 13 0a 00 00 jmp 2359c0 234fad: 48 8b 45 b0 mov -0x50(%rbp),%rax 234fb1: 48 8b 38 mov (%rax),%rdi 234fb4: 48 be 57 42 20 00 00 00 00 00 movabs $0x204257,%rsi 234fbe: e8 4d 13 00 00 call 236310 234fc3: a8 01 test $0x1,%al 234fc5: 0f 85 05 00 00 00 jne 234fd0 234fcb: e9 22 00 00 00 jmp 234ff2 this->highlightDeletedExe = atoi(option[1]); 234fd0: 48 8b 45 b0 mov -0x50(%rbp),%rax 234fd4: 48 8b 78 08 mov 0x8(%rax),%rdi 234fd8: e8 23 93 00 00 call 23e300 234fdd: 83 f8 00 cmp $0x0,%eax 234fe0: 0f 95 c1 setne %cl 234fe3: 48 8b 45 e0 mov -0x20(%rbp),%rax 234fe7: 80 e1 01 and $0x1,%cl 234fea: 88 48 53 mov %cl,0x53(%rax) } else if (String_eq(option[0], "highlight_megabytes")) { 234fed: e9 c9 09 00 00 jmp 2359bb 234ff2: 48 8b 45 b0 mov -0x50(%rbp),%rax 234ff6: 48 8b 38 mov (%rax),%rdi 234ff9: 48 be c2 43 20 00 00 00 00 00 movabs $0x2043c2,%rsi 235003: e8 08 13 00 00 call 236310 235008: a8 01 test $0x1,%al 23500a: 0f 85 05 00 00 00 jne 235015 235010: e9 22 00 00 00 jmp 235037 this->highlightMegabytes = atoi(option[1]); 235015: 48 8b 45 b0 mov -0x50(%rbp),%rax 235019: 48 8b 78 08 mov 0x8(%rax),%rdi 23501d: e8 de 92 00 00 call 23e300 235022: 83 f8 00 cmp $0x0,%eax 235025: 0f 95 c1 setne %cl 235028: 48 8b 45 e0 mov -0x20(%rbp),%rax 23502c: 80 e1 01 and $0x1,%cl 23502f: 88 48 54 mov %cl,0x54(%rax) } else if (String_eq(option[0], "highlight_threads")) { 235032: e9 7f 09 00 00 jmp 2359b6 235037: 48 8b 45 b0 mov -0x50(%rbp),%rax 23503b: 48 8b 38 mov (%rax),%rdi 23503e: 48 be 43 50 20 00 00 00 00 00 movabs $0x205043,%rsi 235048: e8 c3 12 00 00 call 236310 23504d: a8 01 test $0x1,%al 23504f: 0f 85 05 00 00 00 jne 23505a 235055: e9 22 00 00 00 jmp 23507c this->highlightThreads = atoi(option[1]); 23505a: 48 8b 45 b0 mov -0x50(%rbp),%rax 23505e: 48 8b 78 08 mov 0x8(%rax),%rdi 235062: e8 99 92 00 00 call 23e300 235067: 83 f8 00 cmp $0x0,%eax 23506a: 0f 95 c1 setne %cl 23506d: 48 8b 45 e0 mov -0x20(%rbp),%rax 235071: 80 e1 01 and $0x1,%cl 235074: 88 48 55 mov %cl,0x55(%rax) } else if (String_eq(option[0], "highlight_changes")) { 235077: e9 35 09 00 00 jmp 2359b1 23507c: 48 8b 45 b0 mov -0x50(%rbp),%rax 235080: 48 8b 38 mov (%rax),%rdi 235083: 48 be b5 34 20 00 00 00 00 00 movabs $0x2034b5,%rsi 23508d: e8 7e 12 00 00 call 236310 235092: a8 01 test $0x1,%al 235094: 0f 85 05 00 00 00 jne 23509f 23509a: e9 22 00 00 00 jmp 2350c1 this->highlightChanges = atoi(option[1]); 23509f: 48 8b 45 b0 mov -0x50(%rbp),%rax 2350a3: 48 8b 78 08 mov 0x8(%rax),%rdi 2350a7: e8 54 92 00 00 call 23e300 2350ac: 83 f8 00 cmp $0x0,%eax 2350af: 0f 95 c1 setne %cl 2350b2: 48 8b 45 e0 mov -0x20(%rbp),%rax 2350b6: 80 e1 01 and $0x1,%cl 2350b9: 88 48 56 mov %cl,0x56(%rax) } else if (String_eq(option[0], "highlight_changes_delay_secs")) { 2350bc: e9 eb 08 00 00 jmp 2359ac 2350c1: 48 8b 45 b0 mov -0x50(%rbp),%rax 2350c5: 48 8b 38 mov (%rax),%rdi 2350c8: 48 be 8f 5b 20 00 00 00 00 00 movabs $0x205b8f,%rsi 2350d2: e8 39 12 00 00 call 236310 2350d7: a8 01 test $0x1,%al 2350d9: 0f 85 05 00 00 00 jne 2350e4 2350df: e9 72 00 00 00 jmp 235156 this->highlightDelaySecs = CLAMP(atoi(option[1]), 1, 24 * 60 * 60); 2350e4: 48 8b 45 b0 mov -0x50(%rbp),%rax 2350e8: 48 8b 78 08 mov 0x8(%rax),%rdi 2350ec: e8 0f 92 00 00 call 23e300 2350f1: 3d 80 51 01 00 cmp $0x15180,%eax 2350f6: 0f 8e 0d 00 00 00 jle 235109 2350fc: b8 80 51 01 00 mov $0x15180,%eax 235101: 89 45 ac mov %eax,-0x54(%rbp) 235104: e9 3e 00 00 00 jmp 235147 235109: 48 8b 45 b0 mov -0x50(%rbp),%rax 23510d: 48 8b 78 08 mov 0x8(%rax),%rdi 235111: e8 ea 91 00 00 call 23e300 235116: 83 f8 01 cmp $0x1,%eax 235119: 0f 8e 15 00 00 00 jle 235134 23511f: 48 8b 45 b0 mov -0x50(%rbp),%rax 235123: 48 8b 78 08 mov 0x8(%rax),%rdi 235127: e8 d4 91 00 00 call 23e300 23512c: 89 45 a8 mov %eax,-0x58(%rbp) 23512f: e9 0d 00 00 00 jmp 235141 235134: b8 01 00 00 00 mov $0x1,%eax 235139: 89 45 a8 mov %eax,-0x58(%rbp) 23513c: e9 00 00 00 00 jmp 235141 235141: 8b 45 a8 mov -0x58(%rbp),%eax 235144: 89 45 ac mov %eax,-0x54(%rbp) 235147: 8b 4d ac mov -0x54(%rbp),%ecx 23514a: 48 8b 45 e0 mov -0x20(%rbp),%rax 23514e: 89 48 58 mov %ecx,0x58(%rax) } else if (String_eq(option[0], "find_comm_in_cmdline")) { 235151: e9 51 08 00 00 jmp 2359a7 235156: 48 8b 45 b0 mov -0x50(%rbp),%rax 23515a: 48 8b 38 mov (%rax),%rdi 23515d: 48 be 30 4e 20 00 00 00 00 00 movabs $0x204e30,%rsi 235167: e8 a4 11 00 00 call 236310 23516c: a8 01 test $0x1,%al 23516e: 0f 85 05 00 00 00 jne 235179 235174: e9 22 00 00 00 jmp 23519b this->findCommInCmdline = atoi(option[1]); 235179: 48 8b 45 b0 mov -0x50(%rbp),%rax 23517d: 48 8b 78 08 mov 0x8(%rax),%rdi 235181: e8 7a 91 00 00 call 23e300 235186: 83 f8 00 cmp $0x0,%eax 235189: 0f 95 c1 setne %cl 23518c: 48 8b 45 e0 mov -0x20(%rbp),%rax 235190: 80 e1 01 and $0x1,%cl 235193: 88 48 5c mov %cl,0x5c(%rax) } else if (String_eq(option[0], "strip_exe_from_cmdline")) { 235196: e9 07 08 00 00 jmp 2359a2 23519b: 48 8b 45 b0 mov -0x50(%rbp),%rax 23519f: 48 8b 38 mov (%rax),%rdi 2351a2: 48 be a5 53 20 00 00 00 00 00 movabs $0x2053a5,%rsi 2351ac: e8 5f 11 00 00 call 236310 2351b1: a8 01 test $0x1,%al 2351b3: 0f 85 05 00 00 00 jne 2351be 2351b9: e9 22 00 00 00 jmp 2351e0 this->stripExeFromCmdline = atoi(option[1]); 2351be: 48 8b 45 b0 mov -0x50(%rbp),%rax 2351c2: 48 8b 78 08 mov 0x8(%rax),%rdi 2351c6: e8 35 91 00 00 call 23e300 2351cb: 83 f8 00 cmp $0x0,%eax 2351ce: 0f 95 c1 setne %cl 2351d1: 48 8b 45 e0 mov -0x20(%rbp),%rax 2351d5: 80 e1 01 and $0x1,%cl 2351d8: 88 48 5d mov %cl,0x5d(%rax) } else if (String_eq(option[0], "show_merged_command")) { 2351db: e9 bd 07 00 00 jmp 23599d 2351e0: 48 8b 45 b0 mov -0x50(%rbp),%rax 2351e4: 48 8b 38 mov (%rax),%rdi 2351e7: 48 be 09 6d 20 00 00 00 00 00 movabs $0x206d09,%rsi 2351f1: e8 1a 11 00 00 call 236310 2351f6: a8 01 test $0x1,%al 2351f8: 0f 85 05 00 00 00 jne 235203 2351fe: e9 22 00 00 00 jmp 235225 this->showMergedCommand = atoi(option[1]); 235203: 48 8b 45 b0 mov -0x50(%rbp),%rax 235207: 48 8b 78 08 mov 0x8(%rax),%rdi 23520b: e8 f0 90 00 00 call 23e300 235210: 83 f8 00 cmp $0x0,%eax 235213: 0f 95 c1 setne %cl 235216: 48 8b 45 e0 mov -0x20(%rbp),%rax 23521a: 80 e1 01 and $0x1,%cl 23521d: 88 48 5e mov %cl,0x5e(%rax) } else if (String_eq(option[0], "header_margin")) { 235220: e9 73 07 00 00 jmp 235998 235225: 48 8b 45 b0 mov -0x50(%rbp),%rax 235229: 48 8b 38 mov (%rax),%rdi 23522c: 48 be 7a 66 20 00 00 00 00 00 movabs $0x20667a,%rsi 235236: e8 d5 10 00 00 call 236310 23523b: a8 01 test $0x1,%al 23523d: 0f 85 05 00 00 00 jne 235248 235243: e9 22 00 00 00 jmp 23526a this->headerMargin = atoi(option[1]); 235248: 48 8b 45 b0 mov -0x50(%rbp),%rax 23524c: 48 8b 78 08 mov 0x8(%rax),%rdi 235250: e8 ab 90 00 00 call 23e300 235255: 83 f8 00 cmp $0x0,%eax 235258: 0f 95 c1 setne %cl 23525b: 48 8b 45 e0 mov -0x20(%rbp),%rax 23525f: 80 e1 01 and $0x1,%cl 235262: 88 48 61 mov %cl,0x61(%rax) } else if (String_eq(option[0], "expand_system_time")) { 235265: e9 29 07 00 00 jmp 235993 23526a: 48 8b 45 b0 mov -0x50(%rbp),%rax 23526e: 48 8b 38 mov (%rax),%rdi 235271: 48 be 8c 36 20 00 00 00 00 00 movabs $0x20368c,%rsi 23527b: e8 90 10 00 00 call 236310 235280: a8 01 test $0x1,%al 235282: 0f 85 05 00 00 00 jne 23528d 235288: e9 22 00 00 00 jmp 2352af this->detailedCPUTime = atoi(option[1]); 23528d: 48 8b 45 b0 mov -0x50(%rbp),%rax 235291: 48 8b 78 08 mov 0x8(%rax),%rdi 235295: e8 66 90 00 00 call 23e300 23529a: 83 f8 00 cmp $0x0,%eax 23529d: 0f 95 c1 setne %cl 2352a0: 48 8b 45 e0 mov -0x20(%rbp),%rax 2352a4: 80 e1 01 and $0x1,%cl 2352a7: 88 48 45 mov %cl,0x45(%rax) } else if (String_eq(option[0], "detailed_cpu_time")) { 2352aa: e9 df 06 00 00 jmp 23598e 2352af: 48 8b 45 b0 mov -0x50(%rbp),%rax 2352b3: 48 8b 38 mov (%rax),%rdi 2352b6: 48 be dc 3d 20 00 00 00 00 00 movabs $0x203ddc,%rsi 2352c0: e8 4b 10 00 00 call 236310 2352c5: a8 01 test $0x1,%al 2352c7: 0f 85 05 00 00 00 jne 2352d2 2352cd: e9 22 00 00 00 jmp 2352f4 this->detailedCPUTime = atoi(option[1]); 2352d2: 48 8b 45 b0 mov -0x50(%rbp),%rax 2352d6: 48 8b 78 08 mov 0x8(%rax),%rdi 2352da: e8 21 90 00 00 call 23e300 2352df: 83 f8 00 cmp $0x0,%eax 2352e2: 0f 95 c1 setne %cl 2352e5: 48 8b 45 e0 mov -0x20(%rbp),%rax 2352e9: 80 e1 01 and $0x1,%cl 2352ec: 88 48 45 mov %cl,0x45(%rax) } else if (String_eq(option[0], "cpu_count_from_one")) { 2352ef: e9 95 06 00 00 jmp 235989 2352f4: 48 8b 45 b0 mov -0x50(%rbp),%rax 2352f8: 48 8b 38 mov (%rax),%rdi 2352fb: 48 be 5a 68 20 00 00 00 00 00 movabs $0x20685a,%rsi 235305: e8 06 10 00 00 call 236310 23530a: a8 01 test $0x1,%al 23530c: 0f 85 05 00 00 00 jne 235317 235312: e9 22 00 00 00 jmp 235339 this->countCPUsFromOne = atoi(option[1]); 235317: 48 8b 45 b0 mov -0x50(%rbp),%rax 23531b: 48 8b 78 08 mov 0x8(%rax),%rdi 23531f: e8 dc 8f 00 00 call 23e300 235324: 83 f8 00 cmp $0x0,%eax 235327: 0f 95 c1 setne %cl 23532a: 48 8b 45 e0 mov -0x20(%rbp),%rax 23532e: 80 e1 01 and $0x1,%cl 235331: 88 48 44 mov %cl,0x44(%rax) } else if (String_eq(option[0], "cpu_count_from_zero")) { 235334: e9 4b 06 00 00 jmp 235984 235339: 48 8b 45 b0 mov -0x50(%rbp),%rax 23533d: 48 8b 38 mov (%rax),%rdi 235340: 48 be 6d 68 20 00 00 00 00 00 movabs $0x20686d,%rsi 23534a: e8 c1 0f 00 00 call 236310 23534f: a8 01 test $0x1,%al 235351: 0f 85 05 00 00 00 jne 23535c 235357: e9 25 00 00 00 jmp 235381 this->countCPUsFromOne = !atoi(option[1]); 23535c: 48 8b 45 b0 mov -0x50(%rbp),%rax 235360: 48 8b 78 08 mov 0x8(%rax),%rdi 235364: e8 97 8f 00 00 call 23e300 235369: 83 f8 00 cmp $0x0,%eax 23536c: 0f 95 c1 setne %cl 23536f: 80 f1 ff xor $0xff,%cl 235372: 48 8b 45 e0 mov -0x20(%rbp),%rax 235376: 80 e1 01 and $0x1,%cl 235379: 88 48 44 mov %cl,0x44(%rax) } else if (String_eq(option[0], "show_cpu_usage")) { 23537c: e9 fe 05 00 00 jmp 23597f 235381: 48 8b 45 b0 mov -0x50(%rbp),%rax 235385: 48 8b 38 mov (%rax),%rdi 235388: 48 be bb 40 20 00 00 00 00 00 movabs $0x2040bb,%rsi 235392: e8 79 0f 00 00 call 236310 235397: a8 01 test $0x1,%al 235399: 0f 85 05 00 00 00 jne 2353a4 23539f: e9 22 00 00 00 jmp 2353c6 this->showCPUUsage = atoi(option[1]); 2353a4: 48 8b 45 b0 mov -0x50(%rbp),%rax 2353a8: 48 8b 78 08 mov 0x8(%rax),%rdi 2353ac: e8 4f 8f 00 00 call 23e300 2353b1: 83 f8 00 cmp $0x0,%eax 2353b4: 0f 95 c1 setne %cl 2353b7: 48 8b 45 e0 mov -0x20(%rbp),%rax 2353bb: 80 e1 01 and $0x1,%cl 2353be: 88 48 46 mov %cl,0x46(%rax) } else if (String_eq(option[0], "show_cpu_frequency")) { 2353c1: e9 b4 05 00 00 jmp 23597a 2353c6: 48 8b 45 b0 mov -0x50(%rbp),%rax 2353ca: 48 8b 38 mov (%rax),%rdi 2353cd: 48 be ee 3d 20 00 00 00 00 00 movabs $0x203dee,%rsi 2353d7: e8 34 0f 00 00 call 236310 2353dc: a8 01 test $0x1,%al 2353de: 0f 85 05 00 00 00 jne 2353e9 2353e4: e9 22 00 00 00 jmp 23540b this->showCPUFrequency = atoi(option[1]); 2353e9: 48 8b 45 b0 mov -0x50(%rbp),%rax 2353ed: 48 8b 78 08 mov 0x8(%rax),%rdi 2353f1: e8 0a 8f 00 00 call 23e300 2353f6: 83 f8 00 cmp $0x0,%eax 2353f9: 0f 95 c1 setne %cl 2353fc: 48 8b 45 e0 mov -0x20(%rbp),%rax 235400: 80 e1 01 and $0x1,%cl 235403: 88 48 47 mov %cl,0x47(%rax) } else if (String_eq(option[0], "show_cpu_temperature")) { 235406: e9 6a 05 00 00 jmp 235975 23540b: 48 8b 45 b0 mov -0x50(%rbp),%rax 23540f: 48 8b 38 mov (%rax),%rdi 235412: 48 be 42 64 20 00 00 00 00 00 movabs $0x206442,%rsi 23541c: e8 ef 0e 00 00 call 236310 235421: a8 01 test $0x1,%al 235423: 0f 85 05 00 00 00 jne 23542e 235429: e9 22 00 00 00 jmp 235450 this->showCPUTemperature = atoi(option[1]); 23542e: 48 8b 45 b0 mov -0x50(%rbp),%rax 235432: 48 8b 78 08 mov 0x8(%rax),%rdi 235436: e8 c5 8e 00 00 call 23e300 23543b: 83 f8 00 cmp $0x0,%eax 23543e: 0f 95 c1 setne %cl 235441: 48 8b 45 e0 mov -0x20(%rbp),%rax 235445: 80 e1 01 and $0x1,%cl 235448: 88 48 48 mov %cl,0x48(%rax) } else if (String_eq(option[0], "degree_fahrenheit")) { 23544b: e9 20 05 00 00 jmp 235970 235450: 48 8b 45 b0 mov -0x50(%rbp),%rax 235454: 48 8b 38 mov (%rax),%rdi 235457: 48 be 4f 32 20 00 00 00 00 00 movabs $0x20324f,%rsi 235461: e8 aa 0e 00 00 call 236310 235466: a8 01 test $0x1,%al 235468: 0f 85 05 00 00 00 jne 235473 23546e: e9 22 00 00 00 jmp 235495 this->degreeFahrenheit = atoi(option[1]); 235473: 48 8b 45 b0 mov -0x50(%rbp),%rax 235477: 48 8b 78 08 mov 0x8(%rax),%rdi 23547b: e8 80 8e 00 00 call 23e300 235480: 83 f8 00 cmp $0x0,%eax 235483: 0f 95 c1 setne %cl 235486: 48 8b 45 e0 mov -0x20(%rbp),%rax 23548a: 80 e1 01 and $0x1,%cl 23548d: 88 48 49 mov %cl,0x49(%rax) } else if (String_eq(option[0], "update_process_names")) { 235490: e9 d6 04 00 00 jmp 23596b 235495: 48 8b 45 b0 mov -0x50(%rbp),%rax 235499: 48 8b 38 mov (%rax),%rdi 23549c: 48 be 42 4c 20 00 00 00 00 00 movabs $0x204c42,%rsi 2354a6: e8 65 0e 00 00 call 236310 2354ab: a8 01 test $0x1,%al 2354ad: 0f 85 05 00 00 00 jne 2354b8 2354b3: e9 22 00 00 00 jmp 2354da this->updateProcessNames = atoi(option[1]); 2354b8: 48 8b 45 b0 mov -0x50(%rbp),%rax 2354bc: 48 8b 78 08 mov 0x8(%rax),%rdi 2354c0: e8 3b 8e 00 00 call 23e300 2354c5: 83 f8 00 cmp $0x0,%eax 2354c8: 0f 95 c1 setne %cl 2354cb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2354cf: 80 e1 01 and $0x1,%cl 2354d2: 88 48 5f mov %cl,0x5f(%rax) } else if (String_eq(option[0], "account_guest_in_cpu_meter")) { 2354d5: e9 8c 04 00 00 jmp 235966 2354da: 48 8b 45 b0 mov -0x50(%rbp),%rax 2354de: 48 8b 38 mov (%rax),%rdi 2354e1: 48 be 57 64 20 00 00 00 00 00 movabs $0x206457,%rsi 2354eb: e8 20 0e 00 00 call 236310 2354f0: a8 01 test $0x1,%al 2354f2: 0f 85 05 00 00 00 jne 2354fd 2354f8: e9 22 00 00 00 jmp 23551f this->accountGuestInCPUMeter = atoi(option[1]); 2354fd: 48 8b 45 b0 mov -0x50(%rbp),%rax 235501: 48 8b 78 08 mov 0x8(%rax),%rdi 235505: e8 f6 8d 00 00 call 23e300 23550a: 83 f8 00 cmp $0x0,%eax 23550d: 0f 95 c1 setne %cl 235510: 48 8b 45 e0 mov -0x20(%rbp),%rax 235514: 80 e1 01 and $0x1,%cl 235517: 88 48 60 mov %cl,0x60(%rax) } else if (String_eq(option[0], "delay")) { 23551a: e9 42 04 00 00 jmp 235961 23551f: 48 8b 45 b0 mov -0x50(%rbp),%rax 235523: 48 8b 38 mov (%rax),%rdi 235526: 48 be 3d 43 20 00 00 00 00 00 movabs $0x20433d,%rsi 235530: e8 db 0d 00 00 call 236310 235535: a8 01 test $0x1,%al 235537: 0f 85 05 00 00 00 jne 235542 23553d: e9 72 00 00 00 jmp 2355b4 this->delay = CLAMP(atoi(option[1]), 1, 255); 235542: 48 8b 45 b0 mov -0x50(%rbp),%rax 235546: 48 8b 78 08 mov 0x8(%rax),%rdi 23554a: e8 b1 8d 00 00 call 23e300 23554f: 3d ff 00 00 00 cmp $0xff,%eax 235554: 0f 8e 0d 00 00 00 jle 235567 23555a: b8 ff 00 00 00 mov $0xff,%eax 23555f: 89 45 a4 mov %eax,-0x5c(%rbp) 235562: e9 3e 00 00 00 jmp 2355a5 235567: 48 8b 45 b0 mov -0x50(%rbp),%rax 23556b: 48 8b 78 08 mov 0x8(%rax),%rdi 23556f: e8 8c 8d 00 00 call 23e300 235574: 83 f8 01 cmp $0x1,%eax 235577: 0f 8e 15 00 00 00 jle 235592 23557d: 48 8b 45 b0 mov -0x50(%rbp),%rax 235581: 48 8b 78 08 mov 0x8(%rax),%rdi 235585: e8 76 8d 00 00 call 23e300 23558a: 89 45 a0 mov %eax,-0x60(%rbp) 23558d: e9 0d 00 00 00 jmp 23559f 235592: b8 01 00 00 00 mov $0x1,%eax 235597: 89 45 a0 mov %eax,-0x60(%rbp) 23559a: e9 00 00 00 00 jmp 23559f 23559f: 8b 45 a0 mov -0x60(%rbp),%eax 2355a2: 89 45 a4 mov %eax,-0x5c(%rbp) 2355a5: 8b 4d a4 mov -0x5c(%rbp),%ecx 2355a8: 48 8b 45 e0 mov -0x20(%rbp),%rax 2355ac: 89 48 30 mov %ecx,0x30(%rax) } else if (String_eq(option[0], "color_scheme")) { 2355af: e9 a8 03 00 00 jmp 23595c 2355b4: 48 8b 45 b0 mov -0x50(%rbp),%rax 2355b8: 48 8b 38 mov (%rax),%rdi 2355bb: 48 be 61 32 20 00 00 00 00 00 movabs $0x203261,%rsi 2355c5: e8 46 0d 00 00 call 236310 2355ca: a8 01 test $0x1,%al 2355cc: 0f 85 05 00 00 00 jne 2355d7 2355d2: e9 42 00 00 00 jmp 235619 this->colorScheme = atoi(option[1]); 2355d7: 48 8b 45 b0 mov -0x50(%rbp),%rax 2355db: 48 8b 78 08 mov 0x8(%rax),%rdi 2355df: e8 1c 8d 00 00 call 23e300 2355e4: 89 c1 mov %eax,%ecx 2355e6: 48 8b 45 e0 mov -0x20(%rbp),%rax 2355ea: 89 48 2c mov %ecx,0x2c(%rax) if (this->colorScheme < 0 || this->colorScheme >= LAST_COLORSCHEME) { 2355ed: 48 8b 45 e0 mov -0x20(%rbp),%rax 2355f1: 83 78 2c 00 cmpl $0x0,0x2c(%rax) 2355f5: 0f 8c 0e 00 00 00 jl 235609 2355fb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2355ff: 83 78 2c 07 cmpl $0x7,0x2c(%rax) 235603: 0f 8c 0b 00 00 00 jl 235614 this->colorScheme = 0; 235609: 48 8b 45 e0 mov -0x20(%rbp),%rax 23560d: c7 40 2c 00 00 00 00 movl $0x0,0x2c(%rax) } else if (String_eq(option[0], "enable_mouse")) { 235614: e9 3e 03 00 00 jmp 235957 235619: 48 8b 45 b0 mov -0x50(%rbp),%rax 23561d: 48 8b 38 mov (%rax),%rdi 235620: 48 be 72 64 20 00 00 00 00 00 movabs $0x206472,%rsi 23562a: e8 e1 0c 00 00 call 236310 23562f: a8 01 test $0x1,%al 235631: 0f 85 05 00 00 00 jne 23563c 235637: e9 22 00 00 00 jmp 23565e this->enableMouse = atoi(option[1]); 23563c: 48 8b 45 b0 mov -0x50(%rbp),%rax 235640: 48 8b 78 08 mov 0x8(%rax),%rdi 235644: e8 b7 8c 00 00 call 23e300 235649: 83 f8 00 cmp $0x0,%eax 23564c: 0f 95 c1 setne %cl 23564f: 48 8b 45 e0 mov -0x20(%rbp),%rax 235653: 80 e1 01 and $0x1,%cl 235656: 88 48 62 mov %cl,0x62(%rax) } else if (String_eq(option[0], "header_layout")) { 235659: e9 f4 02 00 00 jmp 235952 23565e: 48 8b 45 b0 mov -0x50(%rbp),%rax 235662: 48 8b 38 mov (%rax),%rdi 235665: 48 be ca 40 20 00 00 00 00 00 movabs $0x2040ca,%rsi 23566f: e8 9c 0c 00 00 call 236310 235674: a8 01 test $0x1,%al 235676: 0f 85 05 00 00 00 jne 235681 23567c: e9 aa 00 00 00 jmp 23572b this->hLayout = isdigit((unsigned char)option[1][0]) ? ((HeaderLayout) atoi(option[1])) : HeaderLayout_fromName(option[1]); 235681: 48 8b 45 b0 mov -0x50(%rbp),%rax 235685: 48 8b 40 08 mov 0x8(%rax),%rax 235689: 0f b6 38 movzbl (%rax),%edi 23568c: be 00 04 00 00 mov $0x400,%esi 235691: e8 fa 0e 00 00 call 236590 <__sbistype> 235696: 83 f8 00 cmp $0x0,%eax 235699: 0f 84 15 00 00 00 je 2356b4 23569f: 48 8b 45 b0 mov -0x50(%rbp),%rax 2356a3: 48 8b 78 08 mov 0x8(%rax),%rdi 2356a7: e8 54 8c 00 00 call 23e300 2356ac: 89 45 9c mov %eax,-0x64(%rbp) 2356af: e9 10 00 00 00 jmp 2356c4 2356b4: 48 8b 45 b0 mov -0x50(%rbp),%rax 2356b8: 48 8b 78 08 mov 0x8(%rax),%rdi 2356bc: e8 ff 0e 00 00 call 2365c0 2356c1: 89 45 9c mov %eax,-0x64(%rbp) 2356c4: 8b 4d 9c mov -0x64(%rbp),%ecx 2356c7: 48 8b 45 e0 mov -0x20(%rbp),%rax 2356cb: 89 48 0c mov %ecx,0xc(%rax) if (this->hLayout < 0 || this->hLayout >= LAST_HEADER_LAYOUT) 2356ce: 48 8b 45 e0 mov -0x20(%rbp),%rax 2356d2: 83 78 0c 00 cmpl $0x0,0xc(%rax) 2356d6: 0f 82 0e 00 00 00 jb 2356ea 2356dc: 48 8b 45 e0 mov -0x20(%rbp),%rax 2356e0: 83 78 0c 09 cmpl $0x9,0xc(%rax) 2356e4: 0f 82 0b 00 00 00 jb 2356f5 this->hLayout = HF_TWO_50_50; 2356ea: 48 8b 45 e0 mov -0x20(%rbp),%rax 2356ee: c7 40 0c 00 00 00 00 movl $0x0,0xc(%rax) free(this->hColumns); 2356f5: 48 8b 45 e0 mov -0x20(%rbp),%rax 2356f9: 48 8b 78 10 mov 0x10(%rax),%rdi 2356fd: e8 5e 8a 00 00 call 23e160 this->hColumns = xCalloc(HeaderLayout_getColumns(this->hLayout), sizeof(MeterColumnSetting)); 235702: 48 8b 45 e0 mov -0x20(%rbp),%rax 235706: 8b 78 0c mov 0xc(%rax),%edi 235709: e8 e2 e2 ff ff call 2339f0 23570e: 48 89 c7 mov %rax,%rdi 235711: be 18 00 00 00 mov $0x18,%esi 235716: e8 d5 33 00 00 call 238af0 23571b: 48 89 c1 mov %rax,%rcx 23571e: 48 8b 45 e0 mov -0x20(%rbp),%rax 235722: 48 89 48 10 mov %rcx,0x10(%rax) } else if (String_eq(option[0], "left_meters")) { 235726: e9 22 02 00 00 jmp 23594d 23572b: 48 8b 45 b0 mov -0x50(%rbp),%rax 23572f: 48 8b 38 mov (%rax),%rdi 235732: 48 be 30 4b 20 00 00 00 00 00 movabs $0x204b30,%rsi 23573c: e8 cf 0b 00 00 call 236310 235741: a8 01 test $0x1,%al 235743: 0f 85 05 00 00 00 jne 23574e 235749: e9 1c 00 00 00 jmp 23576a Settings_readMeters(this, option[1], 0); 23574e: 48 8b 7d e0 mov -0x20(%rbp),%rdi 235752: 48 8b 45 b0 mov -0x50(%rbp),%rax 235756: 48 8b 70 08 mov 0x8(%rax),%rsi 23575a: 31 d2 xor %edx,%edx 23575c: e8 df 0e 00 00 call 236640 didReadMeters = true; 235761: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_eq(option[0], "right_meters")) { 235765: e9 de 01 00 00 jmp 235948 23576a: 48 8b 45 b0 mov -0x50(%rbp),%rax 23576e: 48 8b 38 mov (%rax),%rdi 235771: 48 be d8 40 20 00 00 00 00 00 movabs $0x2040d8,%rsi 23577b: e8 90 0b 00 00 call 236310 235780: a8 01 test $0x1,%al 235782: 0f 85 05 00 00 00 jne 23578d 235788: e9 1f 00 00 00 jmp 2357ac Settings_readMeters(this, option[1], 1); 23578d: 48 8b 7d e0 mov -0x20(%rbp),%rdi 235791: 48 8b 45 b0 mov -0x50(%rbp),%rax 235795: 48 8b 70 08 mov 0x8(%rax),%rsi 235799: ba 01 00 00 00 mov $0x1,%edx 23579e: e8 9d 0e 00 00 call 236640 didReadMeters = true; 2357a3: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_eq(option[0], "left_meter_modes")) { 2357a7: e9 97 01 00 00 jmp 235943 2357ac: 48 8b 45 b0 mov -0x50(%rbp),%rax 2357b0: 48 8b 38 mov (%rax),%rdi 2357b3: 48 be ac 5b 20 00 00 00 00 00 movabs $0x205bac,%rsi 2357bd: e8 4e 0b 00 00 call 236310 2357c2: a8 01 test $0x1,%al 2357c4: 0f 85 05 00 00 00 jne 2357cf 2357ca: e9 1c 00 00 00 jmp 2357eb Settings_readMeterModes(this, option[1], 0); 2357cf: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2357d3: 48 8b 45 b0 mov -0x50(%rbp),%rax 2357d7: 48 8b 70 08 mov 0x8(%rax),%rsi 2357db: 31 d2 xor %edx,%edx 2357dd: e8 0e 0f 00 00 call 2366f0 didReadMeters = true; 2357e2: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_eq(option[0], "right_meter_modes")) { 2357e6: e9 53 01 00 00 jmp 23593e 2357eb: 48 8b 45 b0 mov -0x50(%rbp),%rax 2357ef: 48 8b 38 mov (%rax),%rdi 2357f2: 48 be 45 4e 20 00 00 00 00 00 movabs $0x204e45,%rsi 2357fc: e8 0f 0b 00 00 call 236310 235801: a8 01 test $0x1,%al 235803: 0f 85 05 00 00 00 jne 23580e 235809: e9 1f 00 00 00 jmp 23582d Settings_readMeterModes(this, option[1], 1); 23580e: 48 8b 7d e0 mov -0x20(%rbp),%rdi 235812: 48 8b 45 b0 mov -0x50(%rbp),%rax 235816: 48 8b 70 08 mov 0x8(%rax),%rsi 23581a: ba 01 00 00 00 mov $0x1,%edx 23581f: e8 cc 0e 00 00 call 2366f0 didReadMeters = true; 235824: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_startsWith(option[0], "column_meters_")) { 235828: e9 0c 01 00 00 jmp 235939 23582d: 48 8b 45 b0 mov -0x50(%rbp),%rax 235831: 48 8b 38 mov (%rax),%rdi 235834: 48 be 77 57 20 00 00 00 00 00 movabs $0x205777,%rsi 23583e: e8 2d 10 00 00 call 236870 235843: a8 01 test $0x1,%al 235845: 0f 85 05 00 00 00 jne 235850 23584b: e9 3c 00 00 00 jmp 23588c Settings_readMeters(this, option[1], atoi(option[0] + strlen("column_meters_"))); 235850: 48 8b 45 e0 mov -0x20(%rbp),%rax 235854: 48 89 45 88 mov %rax,-0x78(%rbp) 235858: 48 8b 45 b0 mov -0x50(%rbp),%rax 23585c: 48 8b 40 08 mov 0x8(%rax),%rax 235860: 48 89 45 90 mov %rax,-0x70(%rbp) 235864: 48 8b 45 b0 mov -0x50(%rbp),%rax 235868: 48 8b 38 mov (%rax),%rdi 23586b: 48 83 c7 0e add $0xe,%rdi 23586f: e8 8c 8a 00 00 call 23e300 235874: 48 8b 7d 88 mov -0x78(%rbp),%rdi 235878: 48 8b 75 90 mov -0x70(%rbp),%rsi 23587c: 89 c2 mov %eax,%edx 23587e: e8 bd 0d 00 00 call 236640 didReadMeters = true; 235883: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_startsWith(option[0], "column_meter_modes_")) { 235887: e9 a8 00 00 00 jmp 235934 23588c: 48 8b 45 b0 mov -0x50(%rbp),%rax 235890: 48 8b 38 mov (%rax),%rdi 235893: 48 be 57 4c 20 00 00 00 00 00 movabs $0x204c57,%rsi 23589d: e8 ce 0f 00 00 call 236870 2358a2: a8 01 test $0x1,%al 2358a4: 0f 85 05 00 00 00 jne 2358af 2358aa: e9 42 00 00 00 jmp 2358f1 Settings_readMeterModes(this, option[1], atoi(option[0] + strlen("column_meter_modes_"))); 2358af: 48 8b 45 e0 mov -0x20(%rbp),%rax 2358b3: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) 2358ba: 48 8b 45 b0 mov -0x50(%rbp),%rax 2358be: 48 8b 40 08 mov 0x8(%rax),%rax 2358c2: 48 89 45 80 mov %rax,-0x80(%rbp) 2358c6: 48 8b 45 b0 mov -0x50(%rbp),%rax 2358ca: 48 8b 38 mov (%rax),%rdi 2358cd: 48 83 c7 13 add $0x13,%rdi 2358d1: e8 2a 8a 00 00 call 23e300 2358d6: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi 2358dd: 48 8b 75 80 mov -0x80(%rbp),%rsi 2358e1: 89 c2 mov %eax,%edx 2358e3: e8 08 0e 00 00 call 2366f0 didReadMeters = true; 2358e8: c6 45 c7 01 movb $0x1,-0x39(%rbp) } else if (String_eq(option[0], "hide_function_bar")) { 2358ec: e9 3e 00 00 00 jmp 23592f 2358f1: 48 8b 45 b0 mov -0x50(%rbp),%rax 2358f5: 48 8b 38 mov (%rax),%rdi 2358f8: 48 be 88 66 20 00 00 00 00 00 movabs $0x206688,%rsi 235902: e8 09 0a 00 00 call 236310 235907: a8 01 test $0x1,%al 235909: 0f 85 05 00 00 00 jne 235914 23590f: e9 16 00 00 00 jmp 23592a this->hideFunctionBar = atoi(option[1]); 235914: 48 8b 45 b0 mov -0x50(%rbp),%rax 235918: 48 8b 78 08 mov 0x8(%rax),%rdi 23591c: e8 df 89 00 00 call 23e300 235921: 89 c1 mov %eax,%ecx 235923: 48 8b 45 e0 mov -0x20(%rbp),%rax 235927: 89 48 64 mov %ecx,0x64(%rax) 23592a: e9 00 00 00 00 jmp 23592f 23592f: e9 00 00 00 00 jmp 235934 235934: e9 00 00 00 00 jmp 235939 235939: e9 00 00 00 00 jmp 23593e 23593e: e9 00 00 00 00 jmp 235943 235943: e9 00 00 00 00 jmp 235948 235948: e9 00 00 00 00 jmp 23594d 23594d: e9 00 00 00 00 jmp 235952 235952: e9 00 00 00 00 jmp 235957 235957: e9 00 00 00 00 jmp 23595c 23595c: e9 00 00 00 00 jmp 235961 235961: e9 00 00 00 00 jmp 235966 235966: e9 00 00 00 00 jmp 23596b 23596b: e9 00 00 00 00 jmp 235970 235970: e9 00 00 00 00 jmp 235975 235975: e9 00 00 00 00 jmp 23597a 23597a: e9 00 00 00 00 jmp 23597f 23597f: e9 00 00 00 00 jmp 235984 235984: e9 00 00 00 00 jmp 235989 235989: e9 00 00 00 00 jmp 23598e 23598e: e9 00 00 00 00 jmp 235993 235993: e9 00 00 00 00 jmp 235998 235998: e9 00 00 00 00 jmp 23599d 23599d: e9 00 00 00 00 jmp 2359a2 2359a2: e9 00 00 00 00 jmp 2359a7 2359a7: e9 00 00 00 00 jmp 2359ac 2359ac: e9 00 00 00 00 jmp 2359b1 2359b1: e9 00 00 00 00 jmp 2359b6 2359b6: e9 00 00 00 00 jmp 2359bb 2359bb: e9 00 00 00 00 jmp 2359c0 2359c0: e9 00 00 00 00 jmp 2359c5 2359c5: e9 00 00 00 00 jmp 2359ca 2359ca: e9 00 00 00 00 jmp 2359cf 2359cf: e9 00 00 00 00 jmp 2359d4 2359d4: e9 00 00 00 00 jmp 2359d9 2359d9: e9 00 00 00 00 jmp 2359de 2359de: e9 00 00 00 00 jmp 2359e3 2359e3: e9 00 00 00 00 jmp 2359e8 2359e8: e9 00 00 00 00 jmp 2359ed 2359ed: e9 00 00 00 00 jmp 2359f2 2359f2: e9 00 00 00 00 jmp 2359f7 2359f7: e9 00 00 00 00 jmp 2359fc 2359fc: e9 00 00 00 00 jmp 235a01 235a01: e9 00 00 00 00 jmp 235a06 String_freeArray(option); 235a06: 48 8b 7d b0 mov -0x50(%rbp),%rdi 235a0a: e8 21 36 00 00 call 239030 for (;;) { 235a0f: e9 c0 f0 ff ff jmp 234ad4 fclose(fd); 235a14: 48 8b 7d c8 mov -0x38(%rbp),%rdi 235a18: e8 c3 8c 00 00 call 23e6e0 if (!didReadMeters || !Settings_validateMeters(this)) { 235a1d: f6 45 c7 01 testb $0x1,-0x39(%rbp) 235a21: 0f 84 11 00 00 00 je 235a38 235a27: 48 8b 7d e0 mov -0x20(%rbp),%rdi 235a2b: e8 90 0e 00 00 call 2368c0 235a30: a8 01 test $0x1,%al 235a32: 0f 85 0c 00 00 00 jne 235a44 Settings_defaultMeters(this, initialCpuCount); 235a38: 48 8b 7d e0 mov -0x20(%rbp),%rdi 235a3c: 8b 75 d4 mov -0x2c(%rbp),%esi 235a3f: e8 4c 00 00 00 call 235a90 return didReadAny; 235a44: 8a 45 c6 mov -0x3a(%rbp),%al 235a47: 24 01 and $0x1,%al 235a49: 88 45 ef mov %al,-0x11(%rbp) } 235a4c: 8a 45 ef mov -0x11(%rbp),%al 235a4f: 88 85 77 ff ff ff mov %al,-0x89(%rbp) 235a55: 48 8b 05 d4 cd 00 00 mov 0xcdd4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 235a5c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 235a60: 48 39 c8 cmp %rcx,%rax 235a63: 0f 85 14 00 00 00 jne 235a7d 235a69: 8a 85 77 ff ff ff mov -0x89(%rbp),%al 235a6f: 24 01 and $0x1,%al 235a71: 0f b6 c0 movzbl %al,%eax 235a74: 48 81 c4 90 00 00 00 add $0x90,%rsp 235a7b: 5d pop %rbp 235a7c: c3 ret 235a7d: e8 be 86 00 00 call 23e140 <__stack_chk_fail@plt> 235a82: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 235a8c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000235a90 : static void Settings_defaultMeters(Settings* this, unsigned int initialCpuCount) { 235a90: 55 push %rbp 235a91: 48 89 e5 mov %rsp,%rbp 235a94: 48 83 ec 40 sub $0x40,%rsp 235a98: 48 8b 05 91 cd 00 00 mov 0xcd91(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 235a9f: 48 89 45 f8 mov %rax,-0x8(%rbp) 235aa3: 48 89 7d e8 mov %rdi,-0x18(%rbp) 235aa7: 89 75 e4 mov %esi,-0x1c(%rbp) int sizes[] = { 3, 3 }; 235aaa: 48 8b 04 25 90 73 20 00 mov 0x207390,%rax 235ab2: 48 89 45 f0 mov %rax,-0x10(%rbp) if (initialCpuCount > 4 && initialCpuCount <= 128) { 235ab6: 83 7d e4 04 cmpl $0x4,-0x1c(%rbp) 235aba: 0f 86 16 00 00 00 jbe 235ad6 235ac0: 81 7d e4 80 00 00 00 cmpl $0x80,-0x1c(%rbp) 235ac7: 0f 87 09 00 00 00 ja 235ad6 sizes[1]++; 235acd: 8b 45 f4 mov -0xc(%rbp),%eax 235ad0: 83 c0 01 add $0x1,%eax 235ad3: 89 45 f4 mov %eax,-0xc(%rbp) for (size_t i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 235ad6: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) 235ade: 48 8b 45 d8 mov -0x28(%rbp),%rax 235ae2: 48 89 45 c0 mov %rax,-0x40(%rbp) 235ae6: 48 8b 45 e8 mov -0x18(%rbp),%rax 235aea: 8b 78 0c mov 0xc(%rax),%edi 235aed: e8 fe de ff ff call 2339f0 235af2: 48 89 c1 mov %rax,%rcx 235af5: 48 8b 45 c0 mov -0x40(%rbp),%rax 235af9: 48 39 c8 cmp %rcx,%rax 235afc: 0f 83 43 00 00 00 jae 235b45 String_freeArray(this->hColumns[i].names); 235b02: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b06: 48 8b 40 10 mov 0x10(%rax),%rax 235b0a: 48 6b 4d d8 18 imul $0x18,-0x28(%rbp),%rcx 235b0f: 48 01 c8 add %rcx,%rax 235b12: 48 8b 78 08 mov 0x8(%rax),%rdi 235b16: e8 15 35 00 00 call 239030 free(this->hColumns[i].modes); 235b1b: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b1f: 48 8b 40 10 mov 0x10(%rax),%rax 235b23: 48 6b 4d d8 18 imul $0x18,-0x28(%rbp),%rcx 235b28: 48 01 c8 add %rcx,%rax 235b2b: 48 8b 78 10 mov 0x10(%rax),%rdi 235b2f: e8 2c 86 00 00 call 23e160 for (size_t i = 0; i < HeaderLayout_getColumns(this->hLayout); i++) { 235b34: 48 8b 45 d8 mov -0x28(%rbp),%rax 235b38: 48 83 c0 01 add $0x1,%rax 235b3c: 48 89 45 d8 mov %rax,-0x28(%rbp) 235b40: e9 99 ff ff ff jmp 235ade free(this->hColumns); 235b45: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b49: 48 8b 78 10 mov 0x10(%rax),%rdi 235b4d: e8 0e 86 00 00 call 23e160 this->hLayout = HF_TWO_50_50; 235b52: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b56: c7 40 0c 00 00 00 00 movl $0x0,0xc(%rax) this->hColumns = xCalloc(HeaderLayout_getColumns(this->hLayout), sizeof(MeterColumnSetting)); 235b5d: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b61: 8b 78 0c mov 0xc(%rax),%edi 235b64: e8 87 de ff ff call 2339f0 235b69: 48 89 c7 mov %rax,%rdi 235b6c: be 18 00 00 00 mov $0x18,%esi 235b71: e8 7a 2f 00 00 call 238af0 235b76: 48 89 c1 mov %rax,%rcx 235b79: 48 8b 45 e8 mov -0x18(%rbp),%rax 235b7d: 48 89 48 10 mov %rcx,0x10(%rax) for (size_t i = 0; i < 2; i++) { 235b81: 48 c7 45 d0 00 00 00 00 movq $0x0,-0x30(%rbp) 235b89: 48 83 7d d0 02 cmpq $0x2,-0x30(%rbp) 235b8e: 0f 83 86 00 00 00 jae 235c1a this->hColumns[i].names = xCalloc(sizes[i] + 1, sizeof(char*)); 235b94: 48 8b 45 d0 mov -0x30(%rbp),%rax 235b98: 8b 44 85 f0 mov -0x10(%rbp,%rax,4),%eax 235b9c: 83 c0 01 add $0x1,%eax 235b9f: 48 63 f8 movslq %eax,%rdi 235ba2: be 08 00 00 00 mov $0x8,%esi 235ba7: e8 44 2f 00 00 call 238af0 235bac: 48 89 c1 mov %rax,%rcx 235baf: 48 8b 45 e8 mov -0x18(%rbp),%rax 235bb3: 48 8b 40 10 mov 0x10(%rax),%rax 235bb7: 48 6b 55 d0 18 imul $0x18,-0x30(%rbp),%rdx 235bbc: 48 01 d0 add %rdx,%rax 235bbf: 48 89 48 08 mov %rcx,0x8(%rax) this->hColumns[i].modes = xCalloc(sizes[i], sizeof(int)); 235bc3: 48 8b 45 d0 mov -0x30(%rbp),%rax 235bc7: 48 63 7c 85 f0 movslq -0x10(%rbp,%rax,4),%rdi 235bcc: be 04 00 00 00 mov $0x4,%esi 235bd1: e8 1a 2f 00 00 call 238af0 235bd6: 48 89 c1 mov %rax,%rcx 235bd9: 48 8b 45 e8 mov -0x18(%rbp),%rax 235bdd: 48 8b 40 10 mov 0x10(%rax),%rax 235be1: 48 6b 55 d0 18 imul $0x18,-0x30(%rbp),%rdx 235be6: 48 01 d0 add %rdx,%rax 235be9: 48 89 48 10 mov %rcx,0x10(%rax) this->hColumns[i].len = sizes[i]; 235bed: 48 8b 45 d0 mov -0x30(%rbp),%rax 235bf1: 48 63 4c 85 f0 movslq -0x10(%rbp,%rax,4),%rcx 235bf6: 48 8b 45 e8 mov -0x18(%rbp),%rax 235bfa: 48 8b 40 10 mov 0x10(%rax),%rax 235bfe: 48 6b 55 d0 18 imul $0x18,-0x30(%rbp),%rdx 235c03: 48 01 d0 add %rdx,%rax 235c06: 48 89 08 mov %rcx,(%rax) for (size_t i = 0; i < 2; i++) { 235c09: 48 8b 45 d0 mov -0x30(%rbp),%rax 235c0d: 48 83 c0 01 add $0x1,%rax 235c11: 48 89 45 d0 mov %rax,-0x30(%rbp) 235c15: e9 6f ff ff ff jmp 235b89 int r = 0; 235c1a: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) if (initialCpuCount > 128) { 235c21: 81 7d e4 80 00 00 00 cmpl $0x80,-0x1c(%rbp) 235c28: 0f 86 38 00 00 00 jbe 235c66 this->hColumns[0].names[0] = xStrdup("CPU"); 235c2e: 48 bf 26 31 20 00 00 00 00 00 movabs $0x203126,%rdi 235c38: e8 b3 33 00 00 call 238ff0 235c3d: 48 89 c1 mov %rax,%rcx 235c40: 48 8b 45 e8 mov -0x18(%rbp),%rax 235c44: 48 8b 40 10 mov 0x10(%rax),%rax 235c48: 48 8b 40 08 mov 0x8(%rax),%rax 235c4c: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235c4f: 48 8b 45 e8 mov -0x18(%rbp),%rax 235c53: 48 8b 40 10 mov 0x10(%rax),%rax 235c57: 48 8b 40 10 mov 0x10(%rax),%rax 235c5b: c7 00 01 00 00 00 movl $0x1,(%rax) } else if (initialCpuCount > 32) { 235c61: e9 6b 02 00 00 jmp 235ed1 235c66: 83 7d e4 20 cmpl $0x20,-0x1c(%rbp) 235c6a: 0f 86 7f 00 00 00 jbe 235cef this->hColumns[0].names[0] = xStrdup("LeftCPUs8"); 235c70: 48 bf 41 3d 20 00 00 00 00 00 movabs $0x203d41,%rdi 235c7a: e8 71 33 00 00 call 238ff0 235c7f: 48 89 c1 mov %rax,%rcx 235c82: 48 8b 45 e8 mov -0x18(%rbp),%rax 235c86: 48 8b 40 10 mov 0x10(%rax),%rax 235c8a: 48 8b 40 08 mov 0x8(%rax),%rax 235c8e: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235c91: 48 8b 45 e8 mov -0x18(%rbp),%rax 235c95: 48 8b 40 10 mov 0x10(%rax),%rax 235c99: 48 8b 40 10 mov 0x10(%rax),%rax 235c9d: c7 00 01 00 00 00 movl $0x1,(%rax) this->hColumns[1].names[r] = xStrdup("RightCPUs8"); 235ca3: 48 bf 69 35 20 00 00 00 00 00 movabs $0x203569,%rdi 235cad: e8 3e 33 00 00 call 238ff0 235cb2: 48 89 c2 mov %rax,%rdx 235cb5: 48 8b 45 e8 mov -0x18(%rbp),%rax 235cb9: 48 8b 40 10 mov 0x10(%rax),%rax 235cbd: 48 8b 40 20 mov 0x20(%rax),%rax 235cc1: 48 63 4d cc movslq -0x34(%rbp),%rcx 235cc5: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = BAR_METERMODE; 235cc9: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ccd: 48 8b 40 10 mov 0x10(%rax),%rax 235cd1: 48 8b 40 28 mov 0x28(%rax),%rax 235cd5: 8b 4d cc mov -0x34(%rbp),%ecx 235cd8: 89 ca mov %ecx,%edx 235cda: 83 c2 01 add $0x1,%edx 235cdd: 89 55 cc mov %edx,-0x34(%rbp) 235ce0: 48 63 c9 movslq %ecx,%rcx 235ce3: c7 04 88 01 00 00 00 movl $0x1,(%rax,%rcx,4) } else if (initialCpuCount > 16) { 235cea: e9 dd 01 00 00 jmp 235ecc 235cef: 83 7d e4 10 cmpl $0x10,-0x1c(%rbp) 235cf3: 0f 86 7f 00 00 00 jbe 235d78 this->hColumns[0].names[0] = xStrdup("LeftCPUs4"); 235cf9: 48 bf 28 4d 20 00 00 00 00 00 movabs $0x204d28,%rdi 235d03: e8 e8 32 00 00 call 238ff0 235d08: 48 89 c1 mov %rax,%rcx 235d0b: 48 8b 45 e8 mov -0x18(%rbp),%rax 235d0f: 48 8b 40 10 mov 0x10(%rax),%rax 235d13: 48 8b 40 08 mov 0x8(%rax),%rax 235d17: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235d1a: 48 8b 45 e8 mov -0x18(%rbp),%rax 235d1e: 48 8b 40 10 mov 0x10(%rax),%rax 235d22: 48 8b 40 10 mov 0x10(%rax),%rax 235d26: c7 00 01 00 00 00 movl $0x1,(%rax) this->hColumns[1].names[r] = xStrdup("RightCPUs4"); 235d2c: 48 bf 75 37 20 00 00 00 00 00 movabs $0x203775,%rdi 235d36: e8 b5 32 00 00 call 238ff0 235d3b: 48 89 c2 mov %rax,%rdx 235d3e: 48 8b 45 e8 mov -0x18(%rbp),%rax 235d42: 48 8b 40 10 mov 0x10(%rax),%rax 235d46: 48 8b 40 20 mov 0x20(%rax),%rax 235d4a: 48 63 4d cc movslq -0x34(%rbp),%rcx 235d4e: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = BAR_METERMODE; 235d52: 48 8b 45 e8 mov -0x18(%rbp),%rax 235d56: 48 8b 40 10 mov 0x10(%rax),%rax 235d5a: 48 8b 40 28 mov 0x28(%rax),%rax 235d5e: 8b 4d cc mov -0x34(%rbp),%ecx 235d61: 89 ca mov %ecx,%edx 235d63: 83 c2 01 add $0x1,%edx 235d66: 89 55 cc mov %edx,-0x34(%rbp) 235d69: 48 63 c9 movslq %ecx,%rcx 235d6c: c7 04 88 01 00 00 00 movl $0x1,(%rax,%rcx,4) } else if (initialCpuCount > 8) { 235d73: e9 4f 01 00 00 jmp 235ec7 235d78: 83 7d e4 08 cmpl $0x8,-0x1c(%rbp) 235d7c: 0f 86 7f 00 00 00 jbe 235e01 this->hColumns[0].names[0] = xStrdup("LeftCPUs2"); 235d82: 48 bf de 5d 20 00 00 00 00 00 movabs $0x205dde,%rdi 235d8c: e8 5f 32 00 00 call 238ff0 235d91: 48 89 c1 mov %rax,%rcx 235d94: 48 8b 45 e8 mov -0x18(%rbp),%rax 235d98: 48 8b 40 10 mov 0x10(%rax),%rax 235d9c: 48 8b 40 08 mov 0x8(%rax),%rax 235da0: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235da3: 48 8b 45 e8 mov -0x18(%rbp),%rax 235da7: 48 8b 40 10 mov 0x10(%rax),%rax 235dab: 48 8b 40 10 mov 0x10(%rax),%rax 235daf: c7 00 01 00 00 00 movl $0x1,(%rax) this->hColumns[1].names[r] = xStrdup("RightCPUs2"); 235db5: 48 bf 68 56 20 00 00 00 00 00 movabs $0x205668,%rdi 235dbf: e8 2c 32 00 00 call 238ff0 235dc4: 48 89 c2 mov %rax,%rdx 235dc7: 48 8b 45 e8 mov -0x18(%rbp),%rax 235dcb: 48 8b 40 10 mov 0x10(%rax),%rax 235dcf: 48 8b 40 20 mov 0x20(%rax),%rax 235dd3: 48 63 4d cc movslq -0x34(%rbp),%rcx 235dd7: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = BAR_METERMODE; 235ddb: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ddf: 48 8b 40 10 mov 0x10(%rax),%rax 235de3: 48 8b 40 28 mov 0x28(%rax),%rax 235de7: 8b 4d cc mov -0x34(%rbp),%ecx 235dea: 89 ca mov %ecx,%edx 235dec: 83 c2 01 add $0x1,%edx 235def: 89 55 cc mov %edx,-0x34(%rbp) 235df2: 48 63 c9 movslq %ecx,%rcx 235df5: c7 04 88 01 00 00 00 movl $0x1,(%rax,%rcx,4) } else if (initialCpuCount > 4) { 235dfc: e9 c1 00 00 00 jmp 235ec2 235e01: 83 7d e4 04 cmpl $0x4,-0x1c(%rbp) 235e05: 0f 86 7f 00 00 00 jbe 235e8a this->hColumns[0].names[0] = xStrdup("LeftCPUs"); 235e0b: 48 bf 91 63 20 00 00 00 00 00 movabs $0x206391,%rdi 235e15: e8 d6 31 00 00 call 238ff0 235e1a: 48 89 c1 mov %rax,%rcx 235e1d: 48 8b 45 e8 mov -0x18(%rbp),%rax 235e21: 48 8b 40 10 mov 0x10(%rax),%rax 235e25: 48 8b 40 08 mov 0x8(%rax),%rax 235e29: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235e2c: 48 8b 45 e8 mov -0x18(%rbp),%rax 235e30: 48 8b 40 10 mov 0x10(%rax),%rax 235e34: 48 8b 40 10 mov 0x10(%rax),%rax 235e38: c7 00 01 00 00 00 movl $0x1,(%rax) this->hColumns[1].names[r] = xStrdup("RightCPUs"); 235e3e: 48 bf e7 49 20 00 00 00 00 00 movabs $0x2049e7,%rdi 235e48: e8 a3 31 00 00 call 238ff0 235e4d: 48 89 c2 mov %rax,%rdx 235e50: 48 8b 45 e8 mov -0x18(%rbp),%rax 235e54: 48 8b 40 10 mov 0x10(%rax),%rax 235e58: 48 8b 40 20 mov 0x20(%rax),%rax 235e5c: 48 63 4d cc movslq -0x34(%rbp),%rcx 235e60: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = BAR_METERMODE; 235e64: 48 8b 45 e8 mov -0x18(%rbp),%rax 235e68: 48 8b 40 10 mov 0x10(%rax),%rax 235e6c: 48 8b 40 28 mov 0x28(%rax),%rax 235e70: 8b 4d cc mov -0x34(%rbp),%ecx 235e73: 89 ca mov %ecx,%edx 235e75: 83 c2 01 add $0x1,%edx 235e78: 89 55 cc mov %edx,-0x34(%rbp) 235e7b: 48 63 c9 movslq %ecx,%rcx 235e7e: c7 04 88 01 00 00 00 movl $0x1,(%rax,%rcx,4) } else { 235e85: e9 33 00 00 00 jmp 235ebd this->hColumns[0].names[0] = xStrdup("AllCPUs"); 235e8a: 48 bf 7e 5a 20 00 00 00 00 00 movabs $0x205a7e,%rdi 235e94: e8 57 31 00 00 call 238ff0 235e99: 48 89 c1 mov %rax,%rcx 235e9c: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ea0: 48 8b 40 10 mov 0x10(%rax),%rax 235ea4: 48 8b 40 08 mov 0x8(%rax),%rax 235ea8: 48 89 08 mov %rcx,(%rax) this->hColumns[0].modes[0] = BAR_METERMODE; 235eab: 48 8b 45 e8 mov -0x18(%rbp),%rax 235eaf: 48 8b 40 10 mov 0x10(%rax),%rax 235eb3: 48 8b 40 10 mov 0x10(%rax),%rax 235eb7: c7 00 01 00 00 00 movl $0x1,(%rax) 235ebd: e9 00 00 00 00 jmp 235ec2 235ec2: e9 00 00 00 00 jmp 235ec7 235ec7: e9 00 00 00 00 jmp 235ecc 235ecc: e9 00 00 00 00 jmp 235ed1 this->hColumns[0].names[1] = xStrdup("Memory"); 235ed1: 48 bf f5 33 20 00 00 00 00 00 movabs $0x2033f5,%rdi 235edb: e8 10 31 00 00 call 238ff0 235ee0: 48 89 c1 mov %rax,%rcx 235ee3: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ee7: 48 8b 40 10 mov 0x10(%rax),%rax 235eeb: 48 8b 40 08 mov 0x8(%rax),%rax 235eef: 48 89 48 08 mov %rcx,0x8(%rax) this->hColumns[0].modes[1] = BAR_METERMODE; 235ef3: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ef7: 48 8b 40 10 mov 0x10(%rax),%rax 235efb: 48 8b 40 10 mov 0x10(%rax),%rax 235eff: c7 40 04 01 00 00 00 movl $0x1,0x4(%rax) this->hColumns[0].names[2] = xStrdup("Swap"); 235f06: 48 bf e5 40 20 00 00 00 00 00 movabs $0x2040e5,%rdi 235f10: e8 db 30 00 00 call 238ff0 235f15: 48 89 c1 mov %rax,%rcx 235f18: 48 8b 45 e8 mov -0x18(%rbp),%rax 235f1c: 48 8b 40 10 mov 0x10(%rax),%rax 235f20: 48 8b 40 08 mov 0x8(%rax),%rax 235f24: 48 89 48 10 mov %rcx,0x10(%rax) this->hColumns[0].modes[2] = BAR_METERMODE; 235f28: 48 8b 45 e8 mov -0x18(%rbp),%rax 235f2c: 48 8b 40 10 mov 0x10(%rax),%rax 235f30: 48 8b 40 10 mov 0x10(%rax),%rax 235f34: c7 40 08 01 00 00 00 movl $0x1,0x8(%rax) this->hColumns[1].names[r] = xStrdup("Tasks"); 235f3b: 48 bf e7 5c 20 00 00 00 00 00 movabs $0x205ce7,%rdi 235f45: e8 a6 30 00 00 call 238ff0 235f4a: 48 89 c2 mov %rax,%rdx 235f4d: 48 8b 45 e8 mov -0x18(%rbp),%rax 235f51: 48 8b 40 10 mov 0x10(%rax),%rax 235f55: 48 8b 40 20 mov 0x20(%rax),%rax 235f59: 48 63 4d cc movslq -0x34(%rbp),%rcx 235f5d: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = TEXT_METERMODE; 235f61: 48 8b 45 e8 mov -0x18(%rbp),%rax 235f65: 48 8b 40 10 mov 0x10(%rax),%rax 235f69: 48 8b 40 28 mov 0x28(%rax),%rax 235f6d: 8b 4d cc mov -0x34(%rbp),%ecx 235f70: 89 ca mov %ecx,%edx 235f72: 83 c2 01 add $0x1,%edx 235f75: 89 55 cc mov %edx,-0x34(%rbp) 235f78: 48 63 c9 movslq %ecx,%rcx 235f7b: c7 04 88 02 00 00 00 movl $0x2,(%rax,%rcx,4) this->hColumns[1].names[r] = xStrdup("LoadAverage"); 235f82: 48 bf 0f 46 20 00 00 00 00 00 movabs $0x20460f,%rdi 235f8c: e8 5f 30 00 00 call 238ff0 235f91: 48 89 c2 mov %rax,%rdx 235f94: 48 8b 45 e8 mov -0x18(%rbp),%rax 235f98: 48 8b 40 10 mov 0x10(%rax),%rax 235f9c: 48 8b 40 20 mov 0x20(%rax),%rax 235fa0: 48 63 4d cc movslq -0x34(%rbp),%rcx 235fa4: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = TEXT_METERMODE; 235fa8: 48 8b 45 e8 mov -0x18(%rbp),%rax 235fac: 48 8b 40 10 mov 0x10(%rax),%rax 235fb0: 48 8b 40 28 mov 0x28(%rax),%rax 235fb4: 8b 4d cc mov -0x34(%rbp),%ecx 235fb7: 89 ca mov %ecx,%edx 235fb9: 83 c2 01 add $0x1,%edx 235fbc: 89 55 cc mov %edx,-0x34(%rbp) 235fbf: 48 63 c9 movslq %ecx,%rcx 235fc2: c7 04 88 02 00 00 00 movl $0x2,(%rax,%rcx,4) this->hColumns[1].names[r] = xStrdup("Uptime"); 235fc9: 48 bf 3c 4b 20 00 00 00 00 00 movabs $0x204b3c,%rdi 235fd3: e8 18 30 00 00 call 238ff0 235fd8: 48 89 c2 mov %rax,%rdx 235fdb: 48 8b 45 e8 mov -0x18(%rbp),%rax 235fdf: 48 8b 40 10 mov 0x10(%rax),%rax 235fe3: 48 8b 40 20 mov 0x20(%rax),%rax 235fe7: 48 63 4d cc movslq -0x34(%rbp),%rcx 235feb: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->hColumns[1].modes[r++] = TEXT_METERMODE; 235fef: 48 8b 45 e8 mov -0x18(%rbp),%rax 235ff3: 48 8b 40 10 mov 0x10(%rax),%rax 235ff7: 48 8b 40 28 mov 0x28(%rax),%rax 235ffb: 8b 4d cc mov -0x34(%rbp),%ecx 235ffe: 89 ca mov %ecx,%edx 236000: 83 c2 01 add $0x1,%edx 236003: 89 55 cc mov %edx,-0x34(%rbp) 236006: 48 63 c9 movslq %ecx,%rcx 236009: c7 04 88 02 00 00 00 movl $0x2,(%rax,%rcx,4) 236010: 48 8b 05 19 c8 00 00 mov 0xc819(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 236017: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23601b: 48 39 c8 cmp %rcx,%rax 23601e: 0f 85 06 00 00 00 jne 23602a } 236024: 48 83 c4 40 add $0x40,%rsp 236028: 5d pop %rbp 236029: c3 ret 23602a: e8 11 81 00 00 call 23e140 <__stack_chk_fail@plt> 23602f: 90 nop 0000000000236030 : } void Settings_invertSortOrder(Settings* this) { 236030: 55 push %rbp 236031: 48 89 e5 mov %rsp,%rbp 236034: 48 89 7d f8 mov %rdi,-0x8(%rbp) int* attr = (this->treeView) ? &(this->treeDirection) : &(this->direction); 236038: 48 8b 45 f8 mov -0x8(%rbp),%rax 23603c: f6 40 4a 01 testb $0x1,0x4a(%rax) 236040: 0f 84 11 00 00 00 je 236057 236046: 48 8b 45 f8 mov -0x8(%rbp),%rax 23604a: 48 83 c0 38 add $0x38,%rax 23604e: 48 89 45 e8 mov %rax,-0x18(%rbp) 236052: e9 0c 00 00 00 jmp 236063 236057: 48 8b 45 f8 mov -0x8(%rbp),%rax 23605b: 48 83 c0 34 add $0x34,%rax 23605f: 48 89 45 e8 mov %rax,-0x18(%rbp) 236063: 48 8b 45 e8 mov -0x18(%rbp),%rax 236067: 48 89 45 f0 mov %rax,-0x10(%rbp) *attr = (*attr == 1) ? -1 : 1; 23606b: 48 8b 45 f0 mov -0x10(%rbp),%rax 23606f: 8b 10 mov (%rax),%edx 236071: b9 01 00 00 00 mov $0x1,%ecx 236076: b8 ff ff ff ff mov $0xffffffff,%eax 23607b: 83 fa 01 cmp $0x1,%edx 23607e: 0f 44 c8 cmove %eax,%ecx 236081: 48 8b 45 f0 mov -0x10(%rbp),%rax 236085: 89 08 mov %ecx,(%rax) } 236087: 5d pop %rbp 236088: c3 ret 236089: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000236090 : void Settings_setSortKey(Settings* this, ProcessField sortKey) { 236090: 55 push %rbp 236091: 48 89 e5 mov %rsp,%rbp 236094: 48 89 7d f8 mov %rdi,-0x8(%rbp) 236098: 89 75 f4 mov %esi,-0xc(%rbp) if (this->treeViewAlwaysByPID || !this->treeView) { 23609b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23609f: f6 40 4b 01 testb $0x1,0x4b(%rax) 2360a3: 0f 85 0e 00 00 00 jne 2360b7 2360a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2360ad: f6 40 4a 01 testb $0x1,0x4a(%rax) 2360b1: 0f 85 47 00 00 00 jne 2360fe this->sortKey = sortKey; 2360b7: 8b 4d f4 mov -0xc(%rbp),%ecx 2360ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 2360be: 89 48 3c mov %ecx,0x3c(%rax) this->direction = (Process_fields[sortKey].defaultSortDesc) ? -1 : 1; 2360c1: 8b 45 f4 mov -0xc(%rbp),%eax 2360c4: 89 c1 mov %eax,%ecx 2360c6: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2360d0: 48 c1 e1 05 shl $0x5,%rcx 2360d4: 48 01 c8 add %rcx,%rax 2360d7: 8a 50 1d mov 0x1d(%rax),%dl 2360da: b9 01 00 00 00 mov $0x1,%ecx 2360df: b8 ff ff ff ff mov $0xffffffff,%eax 2360e4: f6 c2 01 test $0x1,%dl 2360e7: 0f 45 c8 cmovne %eax,%ecx 2360ea: 48 8b 45 f8 mov -0x8(%rbp),%rax 2360ee: 89 48 34 mov %ecx,0x34(%rax) this->treeView = false; 2360f1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2360f5: c6 40 4a 00 movb $0x0,0x4a(%rax) } else { 2360f9: e9 3a 00 00 00 jmp 236138 this->treeSortKey = sortKey; 2360fe: 8b 4d f4 mov -0xc(%rbp),%ecx 236101: 48 8b 45 f8 mov -0x8(%rbp),%rax 236105: 89 48 40 mov %ecx,0x40(%rax) this->treeDirection = (Process_fields[sortKey].defaultSortDesc) ? -1 : 1; 236108: 8b 45 f4 mov -0xc(%rbp),%eax 23610b: 89 c1 mov %eax,%ecx 23610d: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 236117: 48 c1 e1 05 shl $0x5,%rcx 23611b: 48 01 c8 add %rcx,%rax 23611e: 8a 50 1d mov 0x1d(%rax),%dl 236121: b9 01 00 00 00 mov $0x1,%ecx 236126: b8 ff ff ff ff mov $0xffffffff,%eax 23612b: f6 c2 01 test $0x1,%dl 23612e: 0f 45 c8 cmovne %eax,%ecx 236131: 48 8b 45 f8 mov -0x8(%rbp),%rax 236135: 89 48 38 mov %ecx,0x38(%rax) } } 236138: 5d pop %rbp 236139: c3 ret 23613a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000236140 : static bool readonly = false; void Settings_enableReadonly(void) { 236140: 55 push %rbp 236141: 48 89 e5 mov %rsp,%rbp readonly = true; 236144: c6 04 25 9e 22 24 00 01 movb $0x1,0x24229e } 23614c: 5d pop %rbp 23614d: c3 ret 23614e: 66 90 xchg %ax,%ax 0000000000236150 : bool Settings_isReadonly(void) { 236150: 55 push %rbp 236151: 48 89 e5 mov %rsp,%rbp return readonly; 236154: 8a 04 25 9e 22 24 00 mov 0x24229e,%al 23615b: 24 01 and $0x1,%al 23615d: 0f b6 c0 movzbl %al,%eax 236160: 5d pop %rbp 236161: c3 ret 236162: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23616c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000236170 : } void Settings_setHeaderLayout(Settings* this, HeaderLayout hLayout) { 236170: 55 push %rbp 236171: 48 89 e5 mov %rsp,%rbp 236174: 48 83 ec 20 sub $0x20,%rsp 236178: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23617c: 89 75 f4 mov %esi,-0xc(%rbp) unsigned int oldColumns = HeaderLayout_getColumns(this->hLayout); 23617f: 48 8b 45 f8 mov -0x8(%rbp),%rax 236183: 8b 78 0c mov 0xc(%rax),%edi 236186: e8 65 d8 ff ff call 2339f0 23618b: 89 45 f0 mov %eax,-0x10(%rbp) unsigned int newColumns = HeaderLayout_getColumns(hLayout); 23618e: 8b 7d f4 mov -0xc(%rbp),%edi 236191: e8 5a d8 ff ff call 2339f0 236196: 89 45 ec mov %eax,-0x14(%rbp) if (newColumns > oldColumns) { 236199: 8b 45 ec mov -0x14(%rbp),%eax 23619c: 3b 45 f0 cmp -0x10(%rbp),%eax 23619f: 0f 86 4c 00 00 00 jbe 2361f1 this->hColumns = xReallocArray(this->hColumns, newColumns, sizeof(MeterColumnSetting)); 2361a5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2361a9: 48 8b 78 10 mov 0x10(%rax),%rdi 2361ad: 8b 45 ec mov -0x14(%rbp),%eax 2361b0: 89 c6 mov %eax,%esi 2361b2: ba 18 00 00 00 mov $0x18,%edx 2361b7: e8 e4 29 00 00 call 238ba0 2361bc: 48 89 c1 mov %rax,%rcx 2361bf: 48 8b 45 f8 mov -0x8(%rbp),%rax 2361c3: 48 89 48 10 mov %rcx,0x10(%rax) memset(this->hColumns + oldColumns, 0, (newColumns - oldColumns) * sizeof(MeterColumnSetting)); 2361c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2361cb: 48 8b 78 10 mov 0x10(%rax),%rdi 2361cf: 8b 45 f0 mov -0x10(%rbp),%eax 2361d2: 48 6b c0 18 imul $0x18,%rax,%rax 2361d6: 48 01 c7 add %rax,%rdi 2361d9: 8b 45 ec mov -0x14(%rbp),%eax 2361dc: 2b 45 f0 sub -0x10(%rbp),%eax 2361df: 89 c0 mov %eax,%eax 2361e1: 48 6b d0 18 imul $0x18,%rax,%rdx 2361e5: 31 f6 xor %esi,%esi 2361e7: e8 54 80 00 00 call 23e240 } else if (newColumns < oldColumns) { 2361ec: e9 01 01 00 00 jmp 2362f2 2361f1: 8b 45 ec mov -0x14(%rbp),%eax 2361f4: 3b 45 f0 cmp -0x10(%rbp),%eax 2361f7: 0f 83 f0 00 00 00 jae 2362ed for (unsigned int i = newColumns; i < oldColumns; i++) { 2361fd: 8b 45 ec mov -0x14(%rbp),%eax 236200: 89 45 e8 mov %eax,-0x18(%rbp) 236203: 8b 45 e8 mov -0x18(%rbp),%eax 236206: 3b 45 f0 cmp -0x10(%rbp),%eax 236209: 0f 83 bc 00 00 00 jae 2362cb if (this->hColumns[i].names) { 23620f: 48 8b 45 f8 mov -0x8(%rbp),%rax 236213: 48 8b 40 10 mov 0x10(%rax),%rax 236217: 8b 4d e8 mov -0x18(%rbp),%ecx 23621a: 48 6b c9 18 imul $0x18,%rcx,%rcx 23621e: 48 01 c8 add %rcx,%rax 236221: 48 83 78 08 00 cmpq $0x0,0x8(%rax) 236226: 0f 84 76 00 00 00 je 2362a2 for (size_t j = 0; j < this->hColumns[i].len; j++) 23622c: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) 236234: 48 8b 45 e0 mov -0x20(%rbp),%rax 236238: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23623c: 48 8b 49 10 mov 0x10(%rcx),%rcx 236240: 8b 55 e8 mov -0x18(%rbp),%edx 236243: 48 6b d2 18 imul $0x18,%rdx,%rdx 236247: 48 01 d1 add %rdx,%rcx 23624a: 48 3b 01 cmp (%rcx),%rax 23624d: 0f 83 34 00 00 00 jae 236287 free(this->hColumns[i].names[j]); 236253: 48 8b 45 f8 mov -0x8(%rbp),%rax 236257: 48 8b 40 10 mov 0x10(%rax),%rax 23625b: 8b 4d e8 mov -0x18(%rbp),%ecx 23625e: 48 6b c9 18 imul $0x18,%rcx,%rcx 236262: 48 01 c8 add %rcx,%rax 236265: 48 8b 40 08 mov 0x8(%rax),%rax 236269: 48 8b 4d e0 mov -0x20(%rbp),%rcx 23626d: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 236271: e8 ea 7e 00 00 call 23e160 for (size_t j = 0; j < this->hColumns[i].len; j++) 236276: 48 8b 45 e0 mov -0x20(%rbp),%rax 23627a: 48 83 c0 01 add $0x1,%rax 23627e: 48 89 45 e0 mov %rax,-0x20(%rbp) 236282: e9 ad ff ff ff jmp 236234 free(this->hColumns[i].names); 236287: 48 8b 45 f8 mov -0x8(%rbp),%rax 23628b: 48 8b 40 10 mov 0x10(%rax),%rax 23628f: 8b 4d e8 mov -0x18(%rbp),%ecx 236292: 48 6b c9 18 imul $0x18,%rcx,%rcx 236296: 48 01 c8 add %rcx,%rax 236299: 48 8b 78 08 mov 0x8(%rax),%rdi 23629d: e8 be 7e 00 00 call 23e160 } free(this->hColumns[i].modes); 2362a2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2362a6: 48 8b 40 10 mov 0x10(%rax),%rax 2362aa: 8b 4d e8 mov -0x18(%rbp),%ecx 2362ad: 48 6b c9 18 imul $0x18,%rcx,%rcx 2362b1: 48 01 c8 add %rcx,%rax 2362b4: 48 8b 78 10 mov 0x10(%rax),%rdi 2362b8: e8 a3 7e 00 00 call 23e160 for (unsigned int i = newColumns; i < oldColumns; i++) { 2362bd: 8b 45 e8 mov -0x18(%rbp),%eax 2362c0: 83 c0 01 add $0x1,%eax 2362c3: 89 45 e8 mov %eax,-0x18(%rbp) 2362c6: e9 38 ff ff ff jmp 236203 } this->hColumns = xReallocArray(this->hColumns, newColumns, sizeof(MeterColumnSetting)); 2362cb: 48 8b 45 f8 mov -0x8(%rbp),%rax 2362cf: 48 8b 78 10 mov 0x10(%rax),%rdi 2362d3: 8b 45 ec mov -0x14(%rbp),%eax 2362d6: 89 c6 mov %eax,%esi 2362d8: ba 18 00 00 00 mov $0x18,%edx 2362dd: e8 be 28 00 00 call 238ba0 2362e2: 48 89 c1 mov %rax,%rcx 2362e5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2362e9: 48 89 48 10 mov %rcx,0x10(%rax) 2362ed: e9 00 00 00 00 jmp 2362f2 } this->hLayout = hLayout; 2362f2: 8b 4d f4 mov -0xc(%rbp),%ecx 2362f5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2362f9: 89 48 0c mov %ecx,0xc(%rax) this->changed = true; 2362fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 236300: c6 40 68 01 movb $0x1,0x68(%rax) } 236304: 48 83 c4 20 add $0x20,%rsp 236308: 5d pop %rbp 236309: c3 ret 23630a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000236310 : static inline bool String_eq(const char* s1, const char* s2) { 236310: 55 push %rbp 236311: 48 89 e5 mov %rsp,%rbp 236314: 48 83 ec 10 sub $0x10,%rsp 236318: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23631c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 236320: 48 8b 7d f8 mov -0x8(%rbp),%rdi 236324: 48 8b 75 f0 mov -0x10(%rbp),%rsi 236328: e8 b3 7e 00 00 call 23e1e0 23632d: 83 f8 00 cmp $0x0,%eax 236330: 0f 94 c0 sete %al 236333: 24 01 and $0x1,%al 236335: 0f b6 c0 movzbl %al,%eax 236338: 48 83 c4 10 add $0x10,%rsp 23633c: 5d pop %rbp 23633d: c3 ret 23633e: 66 90 xchg %ax,%ax 0000000000236340 : static void Settings_readFields(Settings* settings, const char* line) { 236340: 55 push %rbp 236341: 48 89 e5 mov %rsp,%rbp 236344: 48 83 ec 70 sub $0x70,%rsp 236348: 48 8b 05 e1 c4 00 00 mov 0xc4e1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23634f: 48 89 45 f8 mov %rax,-0x8(%rbp) 236353: 48 89 7d c0 mov %rdi,-0x40(%rbp) 236357: 48 89 75 b8 mov %rsi,-0x48(%rbp) char* trim = String_trim(line); 23635b: 48 8b 7d b8 mov -0x48(%rbp),%rdi 23635f: e8 cc 29 00 00 call 238d30 236364: 48 89 45 b0 mov %rax,-0x50(%rbp) char** ids = String_split(trim, ' ', NULL); 236368: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23636c: be 20 00 00 00 mov $0x20,%esi 236371: 31 c0 xor %eax,%eax 236373: 89 c2 mov %eax,%edx 236375: e8 16 2b 00 00 call 238e90 23637a: 48 89 45 a8 mov %rax,-0x58(%rbp) free(trim); 23637e: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236382: e8 d9 7d 00 00 call 23e160 settings->flags = 0; 236387: 48 8b 45 c0 mov -0x40(%rbp),%rax 23638b: c7 40 28 00 00 00 00 movl $0x0,0x28(%rax) for (j = 0, i = 0; ids[i]; i++) { 236392: c7 45 a0 00 00 00 00 movl $0x0,-0x60(%rbp) 236399: c7 45 a4 00 00 00 00 movl $0x0,-0x5c(%rbp) 2363a0: 48 8b 45 a8 mov -0x58(%rbp),%rax 2363a4: 8b 4d a4 mov -0x5c(%rbp),%ecx 2363a7: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 2363ac: 0f 84 9b 01 00 00 je 23654d if (j >= UINT_MAX / sizeof(ProcessField)) 2363b2: 8b 45 a0 mov -0x60(%rbp),%eax 2363b5: 48 3d ff ff ff 3f cmp $0x3fffffff,%rax 2363bb: 0f 82 05 00 00 00 jb 2363c6 continue; 2363c1: e9 79 01 00 00 jmp 23653f if (j >= LAST_PROCESSFIELD) { 2363c6: 83 7d a0 7f cmpl $0x7f,-0x60(%rbp) 2363ca: 0f 82 3f 00 00 00 jb 23640f settings->fields = xRealloc(settings->fields, j * sizeof(ProcessField)); 2363d0: 48 8b 45 c0 mov -0x40(%rbp),%rax 2363d4: 48 8b 78 20 mov 0x20(%rax),%rdi 2363d8: 8b 45 a0 mov -0x60(%rbp),%eax 2363db: 89 c6 mov %eax,%esi 2363dd: 48 c1 e6 02 shl $0x2,%rsi 2363e1: e8 6a 27 00 00 call 238b50 2363e6: 48 89 c1 mov %rax,%rcx 2363e9: 48 8b 45 c0 mov -0x40(%rbp),%rax 2363ed: 48 89 48 20 mov %rcx,0x20(%rax) memset(&settings->fields[j], 0, sizeof(ProcessField)); 2363f1: 48 8b 45 c0 mov -0x40(%rbp),%rax 2363f5: 48 8b 78 20 mov 0x20(%rax),%rdi 2363f9: 8b 45 a0 mov -0x60(%rbp),%eax 2363fc: 48 c1 e0 02 shl $0x2,%rax 236400: 48 01 c7 add %rax,%rdi 236403: 31 f6 xor %esi,%esi 236405: ba 04 00 00 00 mov $0x4,%edx 23640a: e8 31 7e 00 00 call 23e240 char dynamic[32] = {0}; 23640f: 48 8d 7d d0 lea -0x30(%rbp),%rdi 236413: 31 f6 xor %esi,%esi 236415: ba 20 00 00 00 mov $0x20,%edx 23641a: e8 21 7e 00 00 call 23e240 if (sscanf(ids[i], "Dynamic(%30s)", dynamic)) { 23641f: 48 8b 45 a8 mov -0x58(%rbp),%rax 236423: 8b 4d a4 mov -0x5c(%rbp),%ecx 236426: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 23642a: 48 8d 55 d0 lea -0x30(%rbp),%rdx 23642e: 48 be 6e 32 20 00 00 00 00 00 movabs $0x20326e,%rsi 236438: b0 00 mov $0x0,%al 23643a: e8 81 7e 00 00 call 23e2c0 23643f: 83 f8 00 cmp $0x0,%eax 236442: 0f 84 6c 00 00 00 je 2364b4 if ((end = strrchr(dynamic, ')')) == NULL) 236448: 48 8d 7d d0 lea -0x30(%rbp),%rdi 23644c: be 29 00 00 00 mov $0x29,%esi 236451: e8 6a 81 00 00 call 23e5c0 236456: 48 89 45 98 mov %rax,-0x68(%rbp) 23645a: 48 83 f8 00 cmp $0x0,%rax 23645e: 0f 85 05 00 00 00 jne 236469 continue; 236464: e9 d6 00 00 00 jmp 23653f *end = '\0'; 236469: 48 8b 45 98 mov -0x68(%rbp),%rax 23646d: c6 00 00 movb $0x0,(%rax) if (!DynamicColumn_search(settings->dynamicColumns, dynamic, &key)) 236470: 48 8b 45 c0 mov -0x40(%rbp),%rax 236474: 48 8b 78 18 mov 0x18(%rax),%rdi 236478: 48 8d 75 d0 lea -0x30(%rbp),%rsi 23647c: 48 8d 55 cc lea -0x34(%rbp),%rdx 236480: e8 8b 76 fe ff call 21db10 236485: 48 83 f8 00 cmp $0x0,%rax 236489: 0f 85 05 00 00 00 jne 236494 continue; 23648f: e9 ab 00 00 00 jmp 23653f settings->fields[j++] = key; 236494: 8b 55 cc mov -0x34(%rbp),%edx 236497: 48 8b 45 c0 mov -0x40(%rbp),%rax 23649b: 48 8b 40 20 mov 0x20(%rax),%rax 23649f: 8b 4d a0 mov -0x60(%rbp),%ecx 2364a2: 89 ce mov %ecx,%esi 2364a4: 83 c6 01 add $0x1,%esi 2364a7: 89 75 a0 mov %esi,-0x60(%rbp) 2364aa: 89 c9 mov %ecx,%ecx 2364ac: 89 14 88 mov %edx,(%rax,%rcx,4) continue; 2364af: e9 8b 00 00 00 jmp 23653f int id = atoi(ids[i]) + 1; 2364b4: 48 8b 45 a8 mov -0x58(%rbp),%rax 2364b8: 8b 4d a4 mov -0x5c(%rbp),%ecx 2364bb: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 2364bf: e8 3c 7e 00 00 call 23e300 2364c4: 83 c0 01 add $0x1,%eax 2364c7: 89 45 94 mov %eax,-0x6c(%rbp) if (id > 0 && id < LAST_PROCESSFIELD && Process_fields[id].name) { 2364ca: 83 7d 94 00 cmpl $0x0,-0x6c(%rbp) 2364ce: 0f 8e 66 00 00 00 jle 23653a 2364d4: 83 7d 94 7f cmpl $0x7f,-0x6c(%rbp) 2364d8: 0f 8d 5c 00 00 00 jge 23653a 2364de: 48 63 4d 94 movslq -0x6c(%rbp),%rcx 2364e2: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 2364ec: 48 c1 e1 05 shl $0x5,%rcx 2364f0: 48 01 c8 add %rcx,%rax 2364f3: 48 83 38 00 cmpq $0x0,(%rax) 2364f7: 0f 84 3d 00 00 00 je 23653a settings->flags |= Process_fields[id].flags; 2364fd: 48 63 4d 94 movslq -0x6c(%rbp),%rcx 236501: 48 b8 d0 ae 20 00 00 00 00 00 movabs $0x20aed0,%rax 23650b: 48 c1 e1 05 shl $0x5,%rcx 23650f: 48 01 c8 add %rcx,%rax 236512: 8b 48 18 mov 0x18(%rax),%ecx 236515: 48 8b 45 c0 mov -0x40(%rbp),%rax 236519: 0b 48 28 or 0x28(%rax),%ecx 23651c: 89 48 28 mov %ecx,0x28(%rax) settings->fields[j++] = id; 23651f: 8b 55 94 mov -0x6c(%rbp),%edx 236522: 48 8b 45 c0 mov -0x40(%rbp),%rax 236526: 48 8b 40 20 mov 0x20(%rax),%rax 23652a: 8b 4d a0 mov -0x60(%rbp),%ecx 23652d: 89 ce mov %ecx,%esi 23652f: 83 c6 01 add $0x1,%esi 236532: 89 75 a0 mov %esi,-0x60(%rbp) 236535: 89 c9 mov %ecx,%ecx 236537: 89 14 88 mov %edx,(%rax,%rcx,4) } 23653a: e9 00 00 00 00 jmp 23653f for (j = 0, i = 0; ids[i]; i++) { 23653f: 8b 45 a4 mov -0x5c(%rbp),%eax 236542: 83 c0 01 add $0x1,%eax 236545: 89 45 a4 mov %eax,-0x5c(%rbp) 236548: e9 53 fe ff ff jmp 2363a0 settings->fields[j] = NULL_PROCESSFIELD; 23654d: 48 8b 45 c0 mov -0x40(%rbp),%rax 236551: 48 8b 40 20 mov 0x20(%rax),%rax 236555: 8b 4d a0 mov -0x60(%rbp),%ecx 236558: c7 04 88 00 00 00 00 movl $0x0,(%rax,%rcx,4) String_freeArray(ids); 23655f: 48 8b 7d a8 mov -0x58(%rbp),%rdi 236563: e8 c8 2a 00 00 call 239030 236568: 48 8b 05 c1 c2 00 00 mov 0xc2c1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23656f: 48 8b 4d f8 mov -0x8(%rbp),%rcx 236573: 48 39 c8 cmp %rcx,%rax 236576: 0f 85 06 00 00 00 jne 236582 } 23657c: 48 83 c4 70 add $0x70,%rsp 236580: 5d pop %rbp 236581: c3 ret 236582: e8 b9 7b 00 00 call 23e140 <__stack_chk_fail@plt> 236587: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000236590 <__sbistype>: { 236590: 55 push %rbp 236591: 48 89 e5 mov %rsp,%rbp 236594: 48 83 ec 10 sub $0x10,%rsp 236598: 89 7d fc mov %edi,-0x4(%rbp) 23659b: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (!!__sbmaskrune(_c, _f)); 23659f: 8b 7d fc mov -0x4(%rbp),%edi 2365a2: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2365a6: e8 45 04 00 00 call 2369f0 <__sbmaskrune> 2365ab: 83 f8 00 cmp $0x0,%eax 2365ae: 0f 95 c0 setne %al 2365b1: 34 ff xor $0xff,%al 2365b3: 34 ff xor $0xff,%al 2365b5: 24 01 and $0x1,%al 2365b7: 0f b6 c0 movzbl %al,%eax 2365ba: 48 83 c4 10 add $0x10,%rsp 2365be: 5d pop %rbp 2365bf: c3 ret 00000000002365c0 : } static inline HeaderLayout HeaderLayout_fromName(const char* name) { 2365c0: 55 push %rbp 2365c1: 48 89 e5 mov %rsp,%rbp 2365c4: 48 83 ec 20 sub $0x20,%rsp 2365c8: 48 89 7d f0 mov %rdi,-0x10(%rbp) for (size_t i = 0; i < LAST_HEADER_LAYOUT; i++) { 2365cc: 48 c7 45 e8 00 00 00 00 movq $0x0,-0x18(%rbp) 2365d4: 48 83 7d e8 09 cmpq $0x9,-0x18(%rbp) 2365d9: 0f 83 4e 00 00 00 jae 23662d if (String_eq(HeaderLayout_layouts[i].name, name)) 2365df: 48 b8 90 a6 20 00 00 00 00 00 movabs $0x20a690,%rax 2365e9: 48 6b 4d e8 18 imul $0x18,-0x18(%rbp),%rcx 2365ee: 48 01 c8 add %rcx,%rax 2365f1: 48 8b 78 08 mov 0x8(%rax),%rdi 2365f5: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2365f9: e8 12 fd ff ff call 236310 2365fe: a8 01 test $0x1,%al 236600: 0f 85 05 00 00 00 jne 23660b 236606: e9 0c 00 00 00 jmp 236617 return (HeaderLayout) i; 23660b: 48 8b 45 e8 mov -0x18(%rbp),%rax 23660f: 89 45 fc mov %eax,-0x4(%rbp) 236612: e9 1d 00 00 00 jmp 236634 } 236617: e9 00 00 00 00 jmp 23661c for (size_t i = 0; i < LAST_HEADER_LAYOUT; i++) { 23661c: 48 8b 45 e8 mov -0x18(%rbp),%rax 236620: 48 83 c0 01 add $0x1,%rax 236624: 48 89 45 e8 mov %rax,-0x18(%rbp) 236628: e9 a7 ff ff ff jmp 2365d4 return LAST_HEADER_LAYOUT; 23662d: c7 45 fc 09 00 00 00 movl $0x9,-0x4(%rbp) } 236634: 8b 45 fc mov -0x4(%rbp),%eax 236637: 48 83 c4 20 add $0x20,%rsp 23663b: 5d pop %rbp 23663c: c3 ret 23663d: 0f 1f 00 nopl (%rax) 0000000000236640 : static void Settings_readMeters(Settings* this, const char* line, unsigned int column) { 236640: 55 push %rbp 236641: 48 89 e5 mov %rsp,%rbp 236644: 48 83 ec 40 sub $0x40,%rsp 236648: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23664c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 236650: 89 55 ec mov %edx,-0x14(%rbp) char* trim = String_trim(line); 236653: 48 8b 7d f0 mov -0x10(%rbp),%rdi 236657: e8 d4 26 00 00 call 238d30 23665c: 48 89 45 e0 mov %rax,-0x20(%rbp) char** ids = String_split(trim, ' ', NULL); 236660: 48 8b 7d e0 mov -0x20(%rbp),%rdi 236664: be 20 00 00 00 mov $0x20,%esi 236669: 31 c0 xor %eax,%eax 23666b: 89 c2 mov %eax,%edx 23666d: e8 1e 28 00 00 call 238e90 236672: 48 89 45 d8 mov %rax,-0x28(%rbp) free(trim); 236676: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23667a: e8 e1 7a 00 00 call 23e160 column = MINIMUM(column, HeaderLayout_getColumns(this->hLayout) - 1); 23667f: 8b 45 ec mov -0x14(%rbp),%eax 236682: 48 89 45 d0 mov %rax,-0x30(%rbp) 236686: 48 8b 45 f8 mov -0x8(%rbp),%rax 23668a: 8b 78 0c mov 0xc(%rax),%edi 23668d: e8 5e d3 ff ff call 2339f0 236692: 48 89 c1 mov %rax,%rcx 236695: 48 8b 45 d0 mov -0x30(%rbp),%rax 236699: 48 83 e9 01 sub $0x1,%rcx 23669d: 48 39 c8 cmp %rcx,%rax 2366a0: 0f 83 0c 00 00 00 jae 2366b2 2366a6: 8b 45 ec mov -0x14(%rbp),%eax 2366a9: 48 89 45 c8 mov %rax,-0x38(%rbp) 2366ad: e9 14 00 00 00 jmp 2366c6 2366b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2366b6: 8b 78 0c mov 0xc(%rax),%edi 2366b9: e8 32 d3 ff ff call 2339f0 2366be: 48 83 e8 01 sub $0x1,%rax 2366c2: 48 89 45 c8 mov %rax,-0x38(%rbp) 2366c6: 48 8b 45 c8 mov -0x38(%rbp),%rax 2366ca: 89 45 ec mov %eax,-0x14(%rbp) this->hColumns[column].names = ids; 2366cd: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2366d1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2366d5: 48 8b 40 10 mov 0x10(%rax),%rax 2366d9: 8b 55 ec mov -0x14(%rbp),%edx 2366dc: 48 6b d2 18 imul $0x18,%rdx,%rdx 2366e0: 48 01 d0 add %rdx,%rax 2366e3: 48 89 48 08 mov %rcx,0x8(%rax) } 2366e7: 48 83 c4 40 add $0x40,%rsp 2366eb: 5d pop %rbp 2366ec: c3 ret 2366ed: 0f 1f 00 nopl (%rax) 00000000002366f0 : static void Settings_readMeterModes(Settings* this, const char* line, unsigned int column) { 2366f0: 55 push %rbp 2366f1: 48 89 e5 mov %rsp,%rbp 2366f4: 48 83 ec 60 sub $0x60,%rsp 2366f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2366fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) 236700: 89 55 ec mov %edx,-0x14(%rbp) char* trim = String_trim(line); 236703: 48 8b 7d f0 mov -0x10(%rbp),%rdi 236707: e8 24 26 00 00 call 238d30 23670c: 48 89 45 e0 mov %rax,-0x20(%rbp) char** ids = String_split(trim, ' ', NULL); 236710: 48 8b 7d e0 mov -0x20(%rbp),%rdi 236714: be 20 00 00 00 mov $0x20,%esi 236719: 31 c0 xor %eax,%eax 23671b: 89 c2 mov %eax,%edx 23671d: e8 6e 27 00 00 call 238e90 236722: 48 89 45 d8 mov %rax,-0x28(%rbp) free(trim); 236726: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23672a: e8 31 7a 00 00 call 23e160 int len = 0; 23672f: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) for (int i = 0; ids[i]; i++) { 236736: c7 45 d0 00 00 00 00 movl $0x0,-0x30(%rbp) 23673d: 48 8b 45 d8 mov -0x28(%rbp),%rax 236741: 48 63 4d d0 movslq -0x30(%rbp),%rcx 236745: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 23674a: 0f 84 17 00 00 00 je 236767 len++; 236750: 8b 45 d4 mov -0x2c(%rbp),%eax 236753: 83 c0 01 add $0x1,%eax 236756: 89 45 d4 mov %eax,-0x2c(%rbp) for (int i = 0; ids[i]; i++) { 236759: 8b 45 d0 mov -0x30(%rbp),%eax 23675c: 83 c0 01 add $0x1,%eax 23675f: 89 45 d0 mov %eax,-0x30(%rbp) 236762: e9 d6 ff ff ff jmp 23673d column = MINIMUM(column, HeaderLayout_getColumns(this->hLayout) - 1); 236767: 8b 45 ec mov -0x14(%rbp),%eax 23676a: 48 89 45 b8 mov %rax,-0x48(%rbp) 23676e: 48 8b 45 f8 mov -0x8(%rbp),%rax 236772: 8b 78 0c mov 0xc(%rax),%edi 236775: e8 76 d2 ff ff call 2339f0 23677a: 48 89 c1 mov %rax,%rcx 23677d: 48 8b 45 b8 mov -0x48(%rbp),%rax 236781: 48 83 e9 01 sub $0x1,%rcx 236785: 48 39 c8 cmp %rcx,%rax 236788: 0f 83 0c 00 00 00 jae 23679a 23678e: 8b 45 ec mov -0x14(%rbp),%eax 236791: 48 89 45 b0 mov %rax,-0x50(%rbp) 236795: e9 14 00 00 00 jmp 2367ae 23679a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23679e: 8b 78 0c mov 0xc(%rax),%edi 2367a1: e8 4a d2 ff ff call 2339f0 2367a6: 48 83 e8 01 sub $0x1,%rax 2367aa: 48 89 45 b0 mov %rax,-0x50(%rbp) 2367ae: 48 8b 45 b0 mov -0x50(%rbp),%rax 2367b2: 89 45 ec mov %eax,-0x14(%rbp) this->hColumns[column].len = len; 2367b5: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 2367b9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2367bd: 48 8b 40 10 mov 0x10(%rax),%rax 2367c1: 8b 55 ec mov -0x14(%rbp),%edx 2367c4: 48 6b d2 18 imul $0x18,%rdx,%rdx 2367c8: 48 01 d0 add %rdx,%rax 2367cb: 48 89 08 mov %rcx,(%rax) int* modes = len ? xCalloc(len, sizeof(int)) : NULL; 2367ce: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) 2367d2: 0f 84 17 00 00 00 je 2367ef 2367d8: 48 63 7d d4 movslq -0x2c(%rbp),%rdi 2367dc: be 04 00 00 00 mov $0x4,%esi 2367e1: e8 0a 23 00 00 call 238af0 2367e6: 48 89 45 a8 mov %rax,-0x58(%rbp) 2367ea: e9 0b 00 00 00 jmp 2367fa 2367ef: 31 c0 xor %eax,%eax 2367f1: 48 89 45 a8 mov %rax,-0x58(%rbp) 2367f5: e9 00 00 00 00 jmp 2367fa 2367fa: 48 8b 45 a8 mov -0x58(%rbp),%rax 2367fe: 48 89 45 c8 mov %rax,-0x38(%rbp) for (int i = 0; i < len; i++) { 236802: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) 236809: 8b 45 c4 mov -0x3c(%rbp),%eax 23680c: 3b 45 d4 cmp -0x2c(%rbp),%eax 23680f: 0f 8d 2c 00 00 00 jge 236841 modes[i] = atoi(ids[i]); 236815: 48 8b 45 d8 mov -0x28(%rbp),%rax 236819: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 23681d: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 236821: e8 da 7a 00 00 call 23e300 236826: 89 c2 mov %eax,%edx 236828: 48 8b 45 c8 mov -0x38(%rbp),%rax 23682c: 48 63 4d c4 movslq -0x3c(%rbp),%rcx 236830: 89 14 88 mov %edx,(%rax,%rcx,4) for (int i = 0; i < len; i++) { 236833: 8b 45 c4 mov -0x3c(%rbp),%eax 236836: 83 c0 01 add $0x1,%eax 236839: 89 45 c4 mov %eax,-0x3c(%rbp) 23683c: e9 c8 ff ff ff jmp 236809 String_freeArray(ids); 236841: 48 8b 7d d8 mov -0x28(%rbp),%rdi 236845: e8 e6 27 00 00 call 239030 this->hColumns[column].modes = modes; 23684a: 48 8b 4d c8 mov -0x38(%rbp),%rcx 23684e: 48 8b 45 f8 mov -0x8(%rbp),%rax 236852: 48 8b 40 10 mov 0x10(%rax),%rax 236856: 8b 55 ec mov -0x14(%rbp),%edx 236859: 48 6b d2 18 imul $0x18,%rdx,%rdx 23685d: 48 01 d0 add %rdx,%rax 236860: 48 89 48 10 mov %rcx,0x10(%rax) } 236864: 48 83 c4 60 add $0x60,%rsp 236868: 5d pop %rbp 236869: c3 ret 23686a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000236870 : static inline bool String_startsWith(const char* s, const char* match) { 236870: 55 push %rbp 236871: 48 89 e5 mov %rsp,%rbp 236874: 48 83 ec 20 sub $0x20,%rsp 236878: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23687c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strncmp(s, match, strlen(match)) == 0; 236880: 48 8b 45 f8 mov -0x8(%rbp),%rax 236884: 48 89 45 e0 mov %rax,-0x20(%rbp) 236888: 48 8b 45 f0 mov -0x10(%rbp),%rax 23688c: 48 89 45 e8 mov %rax,-0x18(%rbp) 236890: 48 8b 7d f0 mov -0x10(%rbp),%rdi 236894: e8 57 79 00 00 call 23e1f0 236899: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23689d: 48 8b 75 e8 mov -0x18(%rbp),%rsi 2368a1: 48 89 c2 mov %rax,%rdx 2368a4: e8 d7 7b 00 00 call 23e480 2368a9: 83 f8 00 cmp $0x0,%eax 2368ac: 0f 94 c0 sete %al 2368af: 24 01 and $0x1,%al 2368b1: 0f b6 c0 movzbl %al,%eax 2368b4: 48 83 c4 20 add $0x20,%rsp 2368b8: 5d pop %rbp 2368b9: c3 ret 2368ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002368c0 : static bool Settings_validateMeters(Settings* this) { 2368c0: 55 push %rbp 2368c1: 48 89 e5 mov %rsp,%rbp 2368c4: 48 83 ec 40 sub $0x40,%rsp 2368c8: 48 89 7d f0 mov %rdi,-0x10(%rbp) const size_t colCount = HeaderLayout_getColumns(this->hLayout); 2368cc: 48 8b 45 f0 mov -0x10(%rbp),%rax 2368d0: 8b 78 0c mov 0xc(%rax),%edi 2368d3: e8 18 d1 ff ff call 2339f0 2368d8: 48 89 45 e8 mov %rax,-0x18(%rbp) for (size_t column = 0; column < colCount; column++) { 2368dc: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) 2368e4: 48 8b 45 e0 mov -0x20(%rbp),%rax 2368e8: 48 3b 45 e8 cmp -0x18(%rbp),%rax 2368ec: 0f 83 eb 00 00 00 jae 2369dd char** names = this->hColumns[column].names; 2368f2: 48 8b 45 f0 mov -0x10(%rbp),%rax 2368f6: 48 8b 40 10 mov 0x10(%rax),%rax 2368fa: 48 6b 4d e0 18 imul $0x18,-0x20(%rbp),%rcx 2368ff: 48 01 c8 add %rcx,%rax 236902: 48 8b 40 08 mov 0x8(%rax),%rax 236906: 48 89 45 d8 mov %rax,-0x28(%rbp) const int* modes = this->hColumns[column].modes; 23690a: 48 8b 45 f0 mov -0x10(%rbp),%rax 23690e: 48 8b 40 10 mov 0x10(%rax),%rax 236912: 48 6b 4d e0 18 imul $0x18,-0x20(%rbp),%rcx 236917: 48 01 c8 add %rcx,%rax 23691a: 48 8b 40 10 mov 0x10(%rax),%rax 23691e: 48 89 45 d0 mov %rax,-0x30(%rbp) const size_t len = this->hColumns[column].len; 236922: 48 8b 45 f0 mov -0x10(%rbp),%rax 236926: 48 8b 40 10 mov 0x10(%rax),%rax 23692a: 48 6b 4d e0 18 imul $0x18,-0x20(%rbp),%rcx 23692f: 48 01 c8 add %rcx,%rax 236932: 48 8b 00 mov (%rax),%rax 236935: 48 89 45 c8 mov %rax,-0x38(%rbp) if (!names || !modes || !len) 236939: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 23693e: 0f 84 16 00 00 00 je 23695a 236944: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 236949: 0f 84 0b 00 00 00 je 23695a 23694f: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 236954: 0f 85 09 00 00 00 jne 236963 return false; 23695a: c6 45 ff 00 movb $0x0,-0x1(%rbp) 23695e: e9 7e 00 00 00 jmp 2369e1 for (size_t meterIdx = 0; meterIdx < len; meterIdx++) 236963: 48 c7 45 c0 00 00 00 00 movq $0x0,-0x40(%rbp) 23696b: 48 8b 45 c0 mov -0x40(%rbp),%rax 23696f: 48 3b 45 c8 cmp -0x38(%rbp),%rax 236973: 0f 83 32 00 00 00 jae 2369ab if (!names[meterIdx]) 236979: 48 8b 45 d8 mov -0x28(%rbp),%rax 23697d: 48 8b 4d c0 mov -0x40(%rbp),%rcx 236981: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 236986: 0f 85 09 00 00 00 jne 236995 return false; 23698c: c6 45 ff 00 movb $0x0,-0x1(%rbp) 236990: e9 4c 00 00 00 jmp 2369e1 if (!names[meterIdx]) 236995: e9 00 00 00 00 jmp 23699a for (size_t meterIdx = 0; meterIdx < len; meterIdx++) 23699a: 48 8b 45 c0 mov -0x40(%rbp),%rax 23699e: 48 83 c0 01 add $0x1,%rax 2369a2: 48 89 45 c0 mov %rax,-0x40(%rbp) 2369a6: e9 c0 ff ff ff jmp 23696b if (names[len]) 2369ab: 48 8b 45 d8 mov -0x28(%rbp),%rax 2369af: 48 8b 4d c8 mov -0x38(%rbp),%rcx 2369b3: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 2369b8: 0f 84 09 00 00 00 je 2369c7 return false; 2369be: c6 45 ff 00 movb $0x0,-0x1(%rbp) 2369c2: e9 1a 00 00 00 jmp 2369e1 } 2369c7: e9 00 00 00 00 jmp 2369cc for (size_t column = 0; column < colCount; column++) { 2369cc: 48 8b 45 e0 mov -0x20(%rbp),%rax 2369d0: 48 83 c0 01 add $0x1,%rax 2369d4: 48 89 45 e0 mov %rax,-0x20(%rbp) 2369d8: e9 07 ff ff ff jmp 2368e4 return true; 2369dd: c6 45 ff 01 movb $0x1,-0x1(%rbp) } 2369e1: 8a 45 ff mov -0x1(%rbp),%al 2369e4: 24 01 and $0x1,%al 2369e6: 0f b6 c0 movzbl %al,%eax 2369e9: 48 83 c4 40 add $0x40,%rsp 2369ed: 5d pop %rbp 2369ee: c3 ret 2369ef: 90 nop 00000000002369f0 <__sbmaskrune>: { 2369f0: 55 push %rbp 2369f1: 48 89 e5 mov %rsp,%rbp 2369f4: 48 83 ec 20 sub $0x20,%rsp 2369f8: 89 7d fc mov %edi,-0x4(%rbp) 2369fb: 48 89 75 f0 mov %rsi,-0x10(%rbp) return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 2369ff: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 236a03: 0f 8c 10 00 00 00 jl 236a19 <__sbmaskrune+0x29> 236a09: 8b 45 fc mov -0x4(%rbp),%eax 236a0c: 3b 04 25 98 28 24 00 cmp 0x242898,%eax 236a13: 0f 8c 0b 00 00 00 jl 236a24 <__sbmaskrune+0x34> 236a19: 31 c0 xor %eax,%eax 236a1b: 48 89 45 e8 mov %rax,-0x18(%rbp) 236a1f: e9 16 00 00 00 jmp 236a3a <__sbmaskrune+0x4a> _CurrentRuneLocale->__runetype[_c] & _f; 236a24: e8 27 00 00 00 call 236a50 <__getCurrentRuneLocale> 236a29: 48 63 4d fc movslq -0x4(%rbp),%rcx 236a2d: 48 8b 44 c8 40 mov 0x40(%rax,%rcx,8),%rax 236a32: 48 23 45 f0 and -0x10(%rbp),%rax 236a36: 48 89 45 e8 mov %rax,-0x18(%rbp) 236a3a: 48 8b 45 e8 mov -0x18(%rbp),%rax return (_c < 0 || _c >= __mb_sb_limit) ? 0 : 236a3e: 48 83 c4 20 add $0x20,%rsp 236a42: 5d pop %rbp 236a43: c3 ret 236a44: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 236a4e: 66 90 xchg %ax,%ax 0000000000236a50 <__getCurrentRuneLocale>: { 236a50: 55 push %rbp 236a51: 48 89 e5 mov %rsp,%rbp if (_ThreadRuneLocale) 236a54: 48 8b 0d 55 92 00 00 mov 0x9255(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 236a5b: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 236a64: 48 8b 04 08 mov (%rax,%rcx,1),%rax 236a68: 48 83 f8 00 cmp $0x0,%rax 236a6c: 0f 84 1d 00 00 00 je 236a8f <__getCurrentRuneLocale+0x3f> return _ThreadRuneLocale; 236a72: 48 8b 0d 37 92 00 00 mov 0x9237(%rip),%rcx # 23fcb0 <_ThreadRuneLocale@FBSD_1.3> 236a79: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax 236a82: 48 8b 04 08 mov (%rax,%rcx,1),%rax 236a86: 48 89 45 f8 mov %rax,-0x8(%rbp) 236a8a: e9 0c 00 00 00 jmp 236a9b <__getCurrentRuneLocale+0x4b> return _CurrentRuneLocale; 236a8f: 48 8b 04 25 a0 28 24 00 mov 0x2428a0,%rax 236a97: 48 89 45 f8 mov %rax,-0x8(%rbp) } 236a9b: 48 8b 45 f8 mov -0x8(%rbp),%rax 236a9f: 5d pop %rbp 236aa0: c3 ret 236aa1: cc int3 236aa2: cc int3 236aa3: cc int3 236aa4: cc int3 236aa5: cc int3 236aa6: cc int3 236aa7: cc int3 236aa8: cc int3 236aa9: cc int3 236aaa: cc int3 236aab: cc int3 236aac: cc int3 236aad: cc int3 236aae: cc int3 236aaf: cc int3 0000000000236ab0 : #include "Panel.h" #include "Platform.h" #include "XUtils.h" Panel* SignalsPanel_new() { 236ab0: 55 push %rbp 236ab1: 48 89 e5 mov %rsp,%rbp 236ab4: 48 83 ec 40 sub $0x40,%rsp Panel* this = Panel_new(1, 1, 1, 1, Class(ListItem), true, FunctionBar_newEnterEsc("Send ", "Cancel ")); 236ab8: 48 bf 01 3e 20 00 00 00 00 00 movabs $0x203e01,%rdi 236ac2: 48 be a0 47 20 00 00 00 00 00 movabs $0x2047a0,%rsi 236acc: e8 ff 77 fe ff call 21e2d0 236ad1: 41 b9 01 00 00 00 mov $0x1,%r9d 236ad7: 49 b8 a0 8e 20 00 00 00 00 00 movabs $0x208ea0,%r8 236ae1: 44 89 cf mov %r9d,%edi 236ae4: 44 89 ce mov %r9d,%esi 236ae7: 44 89 ca mov %r9d,%edx 236aea: 44 89 c9 mov %r9d,%ecx 236aed: 48 89 04 24 mov %rax,(%rsp) 236af1: e8 8a 10 ff ff call 227b80 236af6: 48 89 45 f8 mov %rax,-0x8(%rbp) const int defaultSignal = SIGTERM; 236afa: c7 45 f4 0f 00 00 00 movl $0xf,-0xc(%rbp) int defaultPosition = 15; 236b01: c7 45 f0 0f 00 00 00 movl $0xf,-0x10(%rbp) unsigned int i; for (i = 0; i < Platform_numberOfSignals; i++) { 236b08: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) 236b0f: 8b 45 ec mov -0x14(%rbp),%eax 236b12: 3b 04 25 10 ad 20 00 cmp 0x20ad10,%eax 236b19: 0f 83 8d 00 00 00 jae 236bac Panel_set(this, i, (Object*) ListItem_new(Platform_signals[i].name, Platform_signals[i].number)); 236b1f: 48 8b 45 f8 mov -0x8(%rbp),%rax 236b23: 48 89 45 d8 mov %rax,-0x28(%rbp) 236b27: 8b 45 ec mov -0x14(%rbp),%eax 236b2a: 89 45 e0 mov %eax,-0x20(%rbp) 236b2d: 8b 45 ec mov -0x14(%rbp),%eax 236b30: 89 c1 mov %eax,%ecx 236b32: 48 b8 f0 aa 20 00 00 00 00 00 movabs $0x20aaf0,%rax 236b3c: 48 c1 e1 04 shl $0x4,%rcx 236b40: 48 01 c8 add %rcx,%rax 236b43: 48 8b 38 mov (%rax),%rdi 236b46: 8b 45 ec mov -0x14(%rbp),%eax 236b49: 89 c1 mov %eax,%ecx 236b4b: 48 b8 f0 aa 20 00 00 00 00 00 movabs $0x20aaf0,%rax 236b55: 48 c1 e1 04 shl $0x4,%rcx 236b59: 48 01 c8 add %rcx,%rax 236b5c: 8b 70 08 mov 0x8(%rax),%esi 236b5f: e8 ec b1 fe ff call 221d50 236b64: 48 8b 7d d8 mov -0x28(%rbp),%rdi 236b68: 8b 75 e0 mov -0x20(%rbp),%esi 236b6b: 48 89 c2 mov %rax,%rdx 236b6e: e8 dd 13 ff ff call 227f50 // signal 15 is not always the 15th signal in the table if (Platform_signals[i].number == defaultSignal) { 236b73: 8b 45 ec mov -0x14(%rbp),%eax 236b76: 89 c1 mov %eax,%ecx 236b78: 48 b8 f0 aa 20 00 00 00 00 00 movabs $0x20aaf0,%rax 236b82: 48 c1 e1 04 shl $0x4,%rcx 236b86: 48 01 c8 add %rcx,%rax 236b89: 83 78 08 0f cmpl $0xf,0x8(%rax) 236b8d: 0f 85 06 00 00 00 jne 236b99 defaultPosition = i; 236b93: 8b 45 ec mov -0x14(%rbp),%eax 236b96: 89 45 f0 mov %eax,-0x10(%rbp) } } 236b99: e9 00 00 00 00 jmp 236b9e for (i = 0; i < Platform_numberOfSignals; i++) { 236b9e: 8b 45 ec mov -0x14(%rbp),%eax 236ba1: 83 c0 01 add $0x1,%eax 236ba4: 89 45 ec mov %eax,-0x14(%rbp) 236ba7: e9 63 ff ff ff jmp 236b0f #if (defined(SIGRTMIN) && defined(SIGRTMAX)) if (SIGRTMAX - SIGRTMIN <= 100) { static char buf[16]; for (int sig = SIGRTMIN; sig <= SIGRTMAX; i++, sig++) { 236bac: c7 45 e8 41 00 00 00 movl $0x41,-0x18(%rbp) 236bb3: 83 7d e8 7e cmpl $0x7e,-0x18(%rbp) 236bb7: 0f 8f 88 00 00 00 jg 236c45 int n = sig - SIGRTMIN; 236bbd: 8b 45 e8 mov -0x18(%rbp),%eax 236bc0: 83 e8 41 sub $0x41,%eax 236bc3: 89 45 e4 mov %eax,-0x1c(%rbp) xSnprintf(buf, sizeof(buf), "%2d SIGRTMIN%-+3d", sig, n); 236bc6: 8b 4d e8 mov -0x18(%rbp),%ecx 236bc9: 44 8b 45 e4 mov -0x1c(%rbp),%r8d 236bcd: 48 bf a0 22 24 00 00 00 00 00 movabs $0x2422a0,%rdi 236bd7: be 10 00 00 00 mov $0x10,%esi 236bdc: 48 ba ca 6b 20 00 00 00 00 00 movabs $0x206bca,%rdx 236be6: b0 00 mov $0x0,%al 236be8: e8 03 29 00 00 call 2394f0 if (n == 0) { 236bed: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 236bf1: 0f 85 08 00 00 00 jne 236bff buf[11] = '\0'; 236bf7: c6 04 25 ab 22 24 00 00 movb $0x0,0x2422ab } Panel_set(this, i, (Object*) ListItem_new(buf, sig)); 236bff: 48 8b 45 f8 mov -0x8(%rbp),%rax 236c03: 48 89 45 c8 mov %rax,-0x38(%rbp) 236c07: 8b 45 ec mov -0x14(%rbp),%eax 236c0a: 89 45 d4 mov %eax,-0x2c(%rbp) 236c0d: 8b 75 e8 mov -0x18(%rbp),%esi 236c10: 48 bf a0 22 24 00 00 00 00 00 movabs $0x2422a0,%rdi 236c1a: e8 31 b1 fe ff call 221d50 236c1f: 48 8b 7d c8 mov -0x38(%rbp),%rdi 236c23: 8b 75 d4 mov -0x2c(%rbp),%esi 236c26: 48 89 c2 mov %rax,%rdx 236c29: e8 22 13 ff ff call 227f50 for (int sig = SIGRTMIN; sig <= SIGRTMAX; i++, sig++) { 236c2e: 8b 45 ec mov -0x14(%rbp),%eax 236c31: 83 c0 01 add $0x1,%eax 236c34: 89 45 ec mov %eax,-0x14(%rbp) 236c37: 8b 45 e8 mov -0x18(%rbp),%eax 236c3a: 83 c0 01 add $0x1,%eax 236c3d: 89 45 e8 mov %eax,-0x18(%rbp) 236c40: e9 6e ff ff ff jmp 236bb3 } } #endif Panel_setHeader(this, "Send signal:"); 236c45: 48 8b 7d f8 mov -0x8(%rbp),%rdi 236c49: 48 be bc 53 20 00 00 00 00 00 movabs $0x2053bc,%rsi 236c53: e8 98 11 ff ff call 227df0 Panel_setSelected(this, defaultPosition); 236c58: 48 8b 7d f8 mov -0x8(%rbp),%rdi 236c5c: 8b 75 f0 mov -0x10(%rbp),%esi 236c5f: e8 5c 15 ff ff call 2281c0 return this; 236c64: 48 8b 45 f8 mov -0x8(%rbp),%rax 236c68: 48 83 c4 40 add $0x40,%rsp 236c6c: 5d pop %rbp 236c6d: c3 ret 236c6e: cc int3 236c6f: cc int3 0000000000236c70 : METER_BUFFER_APPEND_CHR(buffer, size, '/'); Meter_humanUnit(buffer, this->total, size); } static void SwapMeter_display(const Object* cast, RichString* out) { 236c70: 55 push %rbp 236c71: 48 89 e5 mov %rsp,%rbp 236c74: 48 83 ec 70 sub $0x70,%rsp 236c78: 48 8b 05 b1 bb 00 00 mov 0xbbb1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 236c7f: 48 89 45 f8 mov %rax,-0x8(%rbp) 236c83: 48 89 7d b8 mov %rdi,-0x48(%rbp) 236c87: 48 89 75 b0 mov %rsi,-0x50(%rbp) char buffer[50]; const Meter* this = (const Meter*)cast; 236c8b: 48 8b 45 b8 mov -0x48(%rbp),%rax 236c8f: 48 89 45 a8 mov %rax,-0x58(%rbp) RichString_writeAscii(out, CRT_colors[METER_TEXT], ":"); 236c93: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236c97: 48 8b 05 e2 b4 00 00 mov 0xb4e2(%rip),%rax # 242180 236c9e: 8b 70 38 mov 0x38(%rax),%esi 236ca1: ba ac 6c 20 00 mov $0x206cac,%edx 236ca6: e8 b5 ba ff ff call 232760 Meter_humanUnit(buffer, this->total, sizeof(buffer)); 236cab: 48 8b 45 a8 mov -0x58(%rbp),%rax 236caf: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 236cb7: f2 0f 10 15 a1 06 fd ff movsd -0x2f95f(%rip),%xmm2 # 207360 236cbf: f2 0f 11 55 98 movsd %xmm2,-0x68(%rbp) 236cc4: 0f 28 c8 movaps %xmm0,%xmm1 236cc7: f2 0f 5c ca subsd %xmm2,%xmm1 236ccb: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 236cd0: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 236cd5: 48 89 f1 mov %rsi,%rcx 236cd8: 48 c1 f9 3f sar $0x3f,%rcx 236cdc: 48 21 c8 and %rcx,%rax 236cdf: 48 09 c6 or %rax,%rsi 236ce2: 48 8d 7d c0 lea -0x40(%rbp),%rdi 236ce6: 48 89 7d a0 mov %rdi,-0x60(%rbp) 236cea: ba 32 00 00 00 mov $0x32,%edx 236cef: e8 1c cd fe ff call 223a10 236cf4: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 236cf8: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236cfc: 48 8b 05 7d b4 00 00 mov 0xb47d(%rip),%rax # 242180 236d03: 8b 70 3c mov 0x3c(%rax),%esi 236d06: e8 75 b8 ff ff call 232580 236d0b: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 236d10: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[0], sizeof(buffer)); 236d14: 48 8b 45 a8 mov -0x58(%rbp),%rax 236d18: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 236d1f: f2 0f 10 00 movsd (%rax),%xmm0 236d23: 0f 28 c8 movaps %xmm0,%xmm1 236d26: f2 0f 5c ca subsd %xmm2,%xmm1 236d2a: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 236d2f: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 236d34: 48 89 f1 mov %rsi,%rcx 236d37: 48 c1 f9 3f sar $0x3f,%rcx 236d3b: 48 21 c8 and %rcx,%rax 236d3e: 48 09 c6 or %rax,%rsi 236d41: ba 32 00 00 00 mov $0x32,%edx 236d46: e8 c5 cc fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " used:"); 236d4b: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236d4f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 236d57: 8b 70 38 mov 0x38(%rax),%esi 236d5a: 48 ba 46 5e 20 00 00 00 00 00 movabs $0x205e46,%rdx 236d64: e8 17 b8 ff ff call 232580 RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 236d69: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236d6d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 236d75: 8b 70 3c mov 0x3c(%rax),%esi 236d78: 48 8d 55 c0 lea -0x40(%rbp),%rdx 236d7c: e8 ff b7 ff ff call 232580 if (!isnan(this->values[1])) { 236d81: 48 8b 45 a8 mov -0x58(%rbp),%rax 236d85: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 236d8c: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 236d91: e8 0a 02 00 00 call 236fa0 <__inline_isnan> 236d96: 83 f8 00 cmp $0x0,%eax 236d99: 0f 85 7a 00 00 00 jne 236e19 236d9f: 48 8d 7d c0 lea -0x40(%rbp),%rdi Meter_humanUnit(buffer, this->values[1], sizeof(buffer)); 236da3: 48 8b 45 a8 mov -0x58(%rbp),%rax 236da7: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 236dae: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 236db3: f2 0f 10 15 a5 05 fd ff movsd -0x2fa5b(%rip),%xmm2 # 207360 236dbb: 0f 28 c8 movaps %xmm0,%xmm1 236dbe: f2 0f 5c ca subsd %xmm2,%xmm1 236dc2: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 236dc7: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 236dcc: 48 89 f1 mov %rsi,%rcx 236dcf: 48 c1 f9 3f sar $0x3f,%rcx 236dd3: 48 21 c8 and %rcx,%rax 236dd6: 48 09 c6 or %rax,%rsi 236dd9: ba 32 00 00 00 mov $0x32,%edx 236dde: e8 2d cc fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " cache:"); 236de3: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236de7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 236def: 8b 70 38 mov 0x38(%rax),%esi 236df2: 48 ba 23 57 20 00 00 00 00 00 movabs $0x205723,%rdx 236dfc: e8 7f b7 ff ff call 232580 RichString_appendAscii(out, CRT_colors[SWAP_CACHE], buffer); 236e01: 48 8b 7d b0 mov -0x50(%rbp),%rdi 236e05: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 236e0d: 8b 70 6c mov 0x6c(%rax),%esi 236e10: 48 8d 55 c0 lea -0x40(%rbp),%rdx 236e14: e8 67 b7 ff ff call 232580 236e19: 48 8b 05 10 ba 00 00 mov 0xba10(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 236e20: 48 8b 4d f8 mov -0x8(%rbp),%rcx 236e24: 48 39 c8 cmp %rcx,%rax 236e27: 0f 85 06 00 00 00 jne 236e33 } } 236e2d: 48 83 c4 70 add $0x70,%rsp 236e31: 5d pop %rbp 236e32: c3 ret 236e33: e8 08 73 00 00 call 23e140 <__stack_chk_fail@plt> 236e38: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000236e40 : static void SwapMeter_updateValues(Meter* this) { 236e40: 55 push %rbp 236e41: 48 89 e5 mov %rsp,%rbp 236e44: 48 83 ec 20 sub $0x20,%rsp 236e48: 48 89 7d f8 mov %rdi,-0x8(%rbp) char* buffer = this->txtBuffer; 236e4c: 48 8b 45 f8 mov -0x8(%rbp),%rax 236e50: 48 83 c0 48 add $0x48,%rax 236e54: 48 89 45 f0 mov %rax,-0x10(%rbp) size_t size = sizeof(this->txtBuffer); 236e58: 48 c7 45 e8 00 01 00 00 movq $0x100,-0x18(%rbp) this->values[1] = NAN; /* 'cached' not present on all platforms */ 236e60: 48 8b 45 f8 mov -0x8(%rbp),%rax 236e64: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 236e6b: 48 b9 00 00 00 00 00 00 f8 7f movabs $0x7ff8000000000000,%rcx 236e75: 48 89 48 08 mov %rcx,0x8(%rax) Platform_setSwapValues(this); 236e79: 48 8b 7d f8 mov -0x8(%rbp),%rdi 236e7d: e8 4e 2f 00 00 call 239dd0 written = Meter_humanUnit(buffer, this->values[0], size); 236e82: 48 8b 7d f0 mov -0x10(%rbp),%rdi 236e86: 48 8b 45 f8 mov -0x8(%rbp),%rax 236e8a: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 236e91: f2 0f 10 00 movsd (%rax),%xmm0 236e95: f2 0f 10 15 c3 04 fd ff movsd -0x2fb3d(%rip),%xmm2 # 207360 236e9d: 0f 28 c8 movaps %xmm0,%xmm1 236ea0: f2 0f 5c ca subsd %xmm2,%xmm1 236ea4: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 236ea9: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 236eae: 48 89 f1 mov %rsi,%rcx 236eb1: 48 c1 f9 3f sar $0x3f,%rcx 236eb5: 48 21 c8 and %rcx,%rax 236eb8: 48 09 c6 or %rax,%rsi 236ebb: 48 8b 55 e8 mov -0x18(%rbp),%rdx 236ebf: e8 4c cb fe ff call 223a10 236ec4: 89 45 e4 mov %eax,-0x1c(%rbp) METER_BUFFER_CHECK(buffer, size, written); 236ec7: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 236ecb: 0f 8c 0e 00 00 00 jl 236edf 236ed1: 48 63 45 e4 movslq -0x1c(%rbp),%rax 236ed5: 48 3b 45 e8 cmp -0x18(%rbp),%rax 236ed9: 0f 82 05 00 00 00 jb 236ee4 236edf: e9 ae 00 00 00 jmp 236f92 236ee4: 8b 4d e4 mov -0x1c(%rbp),%ecx 236ee7: 48 8b 45 f0 mov -0x10(%rbp),%rax 236eeb: 48 63 c9 movslq %ecx,%rcx 236eee: 48 01 c8 add %rcx,%rax 236ef1: 48 89 45 f0 mov %rax,-0x10(%rbp) 236ef5: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 236ef9: 48 8b 45 e8 mov -0x18(%rbp),%rax 236efd: 48 29 c8 sub %rcx,%rax 236f00: 48 89 45 e8 mov %rax,-0x18(%rbp) METER_BUFFER_APPEND_CHR(buffer, size, '/'); 236f04: e9 00 00 00 00 jmp 236f09 236f09: 48 83 7d e8 02 cmpq $0x2,-0x18(%rbp) 236f0e: 0f 83 05 00 00 00 jae 236f19 236f14: e9 79 00 00 00 jmp 236f92 236f19: 48 8b 45 f0 mov -0x10(%rbp),%rax 236f1d: 48 89 c1 mov %rax,%rcx 236f20: 48 83 c1 01 add $0x1,%rcx 236f24: 48 89 4d f0 mov %rcx,-0x10(%rbp) 236f28: c6 00 2f movb $0x2f,(%rax) 236f2b: 48 8b 45 f0 mov -0x10(%rbp),%rax 236f2f: c6 00 00 movb $0x0,(%rax) 236f32: 48 8b 45 e8 mov -0x18(%rbp),%rax 236f36: 48 83 c0 ff add $0xffffffffffffffff,%rax 236f3a: 48 89 45 e8 mov %rax,-0x18(%rbp) 236f3e: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 236f43: 0f 85 05 00 00 00 jne 236f4e 236f49: e9 44 00 00 00 jmp 236f92 236f4e: e9 00 00 00 00 jmp 236f53 Meter_humanUnit(buffer, this->total, size); 236f53: 48 8b 7d f0 mov -0x10(%rbp),%rdi 236f57: 48 8b 45 f8 mov -0x8(%rbp),%rax 236f5b: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 236f63: f2 0f 10 15 f5 03 fd ff movsd -0x2fc0b(%rip),%xmm2 # 207360 236f6b: 0f 28 c8 movaps %xmm0,%xmm1 236f6e: f2 0f 5c ca subsd %xmm2,%xmm1 236f72: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 236f77: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 236f7c: 48 89 f1 mov %rsi,%rcx 236f7f: 48 c1 f9 3f sar $0x3f,%rcx 236f83: 48 21 c8 and %rcx,%rax 236f86: 48 09 c6 or %rax,%rsi 236f89: 48 8b 55 e8 mov -0x18(%rbp),%rdx 236f8d: e8 7e ca fe ff call 223a10 } 236f92: 48 83 c4 20 add $0x20,%rsp 236f96: 5d pop %rbp 236f97: c3 ret 236f98: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000236fa0 <__inline_isnan>: { 236fa0: 55 push %rbp 236fa1: 48 89 e5 mov %rsp,%rbp 236fa4: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 236fa9: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 236fae: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 236fb3: 0f 95 c0 setne %al 236fb6: 0f 9a c1 setp %cl 236fb9: 08 c8 or %cl,%al 236fbb: 24 01 and $0x1,%al 236fbd: 0f b6 c0 movzbl %al,%eax 236fc0: 5d pop %rbp 236fc1: c3 ret 236fc2: cc int3 236fc3: cc int3 236fc4: cc int3 236fc5: cc int3 236fc6: cc int3 236fc7: cc int3 236fc8: cc int3 236fc9: cc int3 236fca: cc int3 236fcb: cc int3 236fcc: cc int3 236fcd: cc int3 236fce: cc int3 236fcf: cc int3 0000000000236fd0 : #include "XUtils.h" static const int SysArchMeter_attributes[] = {HOSTNAME}; static void SysArchMeter_updateValues(Meter* this) { 236fd0: 55 push %rbp 236fd1: 48 89 e5 mov %rsp,%rbp 236fd4: 48 83 ec 10 sub $0x10,%rsp 236fd8: 48 89 7d f8 mov %rdi,-0x8(%rbp) static char* string; if (string == NULL) 236fdc: 48 83 3c 25 b0 22 24 00 00 cmpq $0x0,0x2422b0 236fe5: 0f 85 0f 00 00 00 jne 236ffa Platform_getRelease(&string); 236feb: 48 bf b0 22 24 00 00 00 00 00 movabs $0x2422b0,%rdi 236ff5: e8 26 00 00 00 call 237020 String_safeStrncpy(this->txtBuffer, string, sizeof(this->txtBuffer)); 236ffa: 48 8b 7d f8 mov -0x8(%rbp),%rdi 236ffe: 48 83 c7 48 add $0x48,%rdi 237002: 48 8b 34 25 b0 22 24 00 mov 0x2422b0,%rsi 23700a: ba 00 01 00 00 mov $0x100,%edx 23700f: e8 4c 23 00 00 call 239360 } 237014: 48 83 c4 10 add $0x10,%rsp 237018: 5d pop %rbp 237019: c3 ret 23701a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000237020 : static inline void Platform_getRelease(char** string) { 237020: 55 push %rbp 237021: 48 89 e5 mov %rsp,%rbp 237024: 48 83 ec 10 sub $0x10,%rsp 237028: 48 89 7d f8 mov %rdi,-0x8(%rbp) *string = Generic_uname(); 23702c: e8 9f 5f 00 00 call 23cfd0 237031: 48 89 c1 mov %rax,%rcx 237034: 48 8b 45 f8 mov -0x8(%rbp),%rax 237038: 48 89 08 mov %rcx,(%rax) } 23703b: 48 83 c4 10 add $0x10,%rsp 23703f: 5d pop %rbp 237040: c3 ret 237041: cc int3 237042: cc int3 237043: cc int3 237044: cc int3 237045: cc int3 237046: cc int3 237047: cc int3 237048: cc int3 237049: cc int3 23704a: cc int3 23704b: cc int3 23704c: cc int3 23704d: cc int3 23704e: cc int3 23704f: cc int3 0000000000237050 : this->total = pl->totalTasks; xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%u/%u", MINIMUM(pl->runningTasks, pl->activeCPUs), pl->totalTasks); } static void TasksMeter_display(const Object* cast, RichString* out) { 237050: 55 push %rbp 237051: 48 89 e5 mov %rsp,%rbp 237054: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 23705b: 48 8b 05 ce b7 00 00 mov 0xb7ce(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237062: 48 89 45 f8 mov %rax,-0x8(%rbp) 237066: 48 89 7d d8 mov %rdi,-0x28(%rbp) 23706a: 48 89 75 d0 mov %rsi,-0x30(%rbp) const Meter* this = (const Meter*)cast; 23706e: 48 8b 45 d8 mov -0x28(%rbp),%rax 237072: 48 89 45 c8 mov %rax,-0x38(%rbp) const Settings* settings = this->pl->settings; 237076: 48 8b 45 c8 mov -0x38(%rbp),%rax 23707a: 48 8b 40 30 mov 0x30(%rax),%rax 23707e: 48 8b 00 mov (%rax),%rax 237081: 48 89 45 c0 mov %rax,-0x40(%rbp) char buffer[20]; int len; len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[2]); 237085: 48 8d 7d e0 lea -0x20(%rbp),%rdi 237089: 48 8b 45 c8 mov -0x38(%rbp),%rax 23708d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237094: f2 0f 2c 48 10 cvttsd2si 0x10(%rax),%ecx 237099: be 14 00 00 00 mov $0x14,%esi 23709e: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 2370a8: b0 00 mov $0x0,%al 2370aa: e8 41 24 00 00 call 2394f0 2370af: 89 45 bc mov %eax,-0x44(%rbp) RichString_appendnAscii(out, CRT_colors[METER_VALUE], buffer, len); 2370b2: 48 8b 7d d0 mov -0x30(%rbp),%rdi 2370b6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2370be: 8b 70 3c mov 0x3c(%rax),%esi 2370c1: 48 8d 55 e0 lea -0x20(%rbp),%rdx 2370c5: 8b 4d bc mov -0x44(%rbp),%ecx 2370c8: e8 53 b6 ff ff call 232720 RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); 2370cd: 48 8b 45 d0 mov -0x30(%rbp),%rax 2370d1: 48 89 45 b0 mov %rax,-0x50(%rbp) 2370d5: 48 8b 45 c0 mov -0x40(%rbp),%rax 2370d9: f6 40 51 01 testb $0x1,0x51(%rax) 2370dd: 0f 84 13 00 00 00 je 2370f6 2370e3: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2370eb: 8b 40 34 mov 0x34(%rax),%eax 2370ee: 89 45 ac mov %eax,-0x54(%rbp) 2370f1: e9 0e 00 00 00 jmp 237104 2370f6: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2370fe: 8b 40 38 mov 0x38(%rax),%eax 237101: 89 45 ac mov %eax,-0x54(%rbp) 237104: 48 8b 7d b0 mov -0x50(%rbp),%rdi 237108: 8b 75 ac mov -0x54(%rbp),%esi 23710b: 48 ba 9a 66 20 00 00 00 00 00 movabs $0x20669a,%rdx 237115: e8 66 b4 ff ff call 232580 len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[1]); 23711a: 48 8d 7d e0 lea -0x20(%rbp),%rdi 23711e: 48 8b 45 c8 mov -0x38(%rbp),%rax 237122: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237129: f2 0f 2c 48 08 cvttsd2si 0x8(%rax),%ecx 23712e: be 14 00 00 00 mov $0x14,%esi 237133: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 23713d: b0 00 mov $0x0,%al 23713f: e8 ac 23 00 00 call 2394f0 237144: 89 45 bc mov %eax,-0x44(%rbp) RichString_appendnAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer, len); 237147: 48 8b 45 d0 mov -0x30(%rbp),%rax 23714b: 48 89 45 a0 mov %rax,-0x60(%rbp) 23714f: 48 8b 45 c0 mov -0x40(%rbp),%rax 237153: f6 40 51 01 testb $0x1,0x51(%rax) 237157: 0f 84 13 00 00 00 je 237170 23715d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237165: 8b 40 34 mov 0x34(%rax),%eax 237168: 89 45 9c mov %eax,-0x64(%rbp) 23716b: e9 0e 00 00 00 jmp 23717e 237170: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237178: 8b 40 64 mov 0x64(%rax),%eax 23717b: 89 45 9c mov %eax,-0x64(%rbp) 23717e: 48 8b 7d a0 mov -0x60(%rbp),%rdi 237182: 8b 75 9c mov -0x64(%rbp),%esi 237185: 48 8d 55 e0 lea -0x20(%rbp),%rdx 237189: 8b 4d bc mov -0x44(%rbp),%ecx 23718c: e8 8f b5 ff ff call 232720 RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " thr"); 237191: 48 8b 45 d0 mov -0x30(%rbp),%rax 237195: 48 89 45 90 mov %rax,-0x70(%rbp) 237199: 48 8b 45 c0 mov -0x40(%rbp),%rax 23719d: f6 40 51 01 testb $0x1,0x51(%rax) 2371a1: 0f 84 13 00 00 00 je 2371ba 2371a7: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2371af: 8b 40 34 mov 0x34(%rax),%eax 2371b2: 89 45 8c mov %eax,-0x74(%rbp) 2371b5: e9 0e 00 00 00 jmp 2371c8 2371ba: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2371c2: 8b 40 38 mov 0x38(%rax),%eax 2371c5: 89 45 8c mov %eax,-0x74(%rbp) 2371c8: 48 8b 7d 90 mov -0x70(%rbp),%rdi 2371cc: 8b 75 8c mov -0x74(%rbp),%esi 2371cf: 48 ba 7f 64 20 00 00 00 00 00 movabs $0x20647f,%rdx 2371d9: e8 a2 b3 ff ff call 232580 RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); 2371de: 48 8b 45 d0 mov -0x30(%rbp),%rax 2371e2: 48 89 45 80 mov %rax,-0x80(%rbp) 2371e6: 48 8b 45 c0 mov -0x40(%rbp),%rax 2371ea: f6 40 50 01 testb $0x1,0x50(%rax) 2371ee: 0f 84 16 00 00 00 je 23720a 2371f4: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2371fc: 8b 40 34 mov 0x34(%rax),%eax 2371ff: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) 237205: e9 11 00 00 00 jmp 23721b 23720a: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237212: 8b 40 38 mov 0x38(%rax),%eax 237215: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) 23721b: 48 8b 7d 80 mov -0x80(%rbp),%rdi 23721f: 8b b5 7c ff ff ff mov -0x84(%rbp),%esi 237225: 48 ba 9a 66 20 00 00 00 00 00 movabs $0x20669a,%rdx 23722f: e8 4c b3 ff ff call 232580 len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[0]); 237234: 48 8d 7d e0 lea -0x20(%rbp),%rdi 237238: 48 8b 45 c8 mov -0x38(%rbp),%rax 23723c: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237243: f2 0f 2c 08 cvttsd2si (%rax),%ecx 237247: be 14 00 00 00 mov $0x14,%esi 23724c: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 237256: b0 00 mov $0x0,%al 237258: e8 93 22 00 00 call 2394f0 23725d: 89 45 bc mov %eax,-0x44(%rbp) RichString_appendnAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer, len); 237260: 48 8b 45 d0 mov -0x30(%rbp),%rax 237264: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 23726b: 48 8b 45 c0 mov -0x40(%rbp),%rax 23726f: f6 40 50 01 testb $0x1,0x50(%rax) 237273: 0f 84 16 00 00 00 je 23728f 237279: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237281: 8b 40 34 mov 0x34(%rax),%eax 237284: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 23728a: e9 11 00 00 00 jmp 2372a0 23728f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237297: 8b 40 64 mov 0x64(%rax),%eax 23729a: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) 2372a0: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi 2372a7: 8b b5 6c ff ff ff mov -0x94(%rbp),%esi 2372ad: 48 8d 55 e0 lea -0x20(%rbp),%rdx 2372b1: 8b 4d bc mov -0x44(%rbp),%ecx 2372b4: e8 67 b4 ff ff call 232720 RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " kthr"); 2372b9: 48 8b 45 d0 mov -0x30(%rbp),%rax 2372bd: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 2372c4: 48 8b 45 c0 mov -0x40(%rbp),%rax 2372c8: f6 40 50 01 testb $0x1,0x50(%rax) 2372cc: 0f 84 16 00 00 00 je 2372e8 2372d2: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2372da: 8b 40 34 mov 0x34(%rax),%eax 2372dd: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 2372e3: e9 11 00 00 00 jmp 2372f9 2372e8: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 2372f0: 8b 40 38 mov 0x38(%rax),%eax 2372f3: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp) 2372f9: 48 8b bd 60 ff ff ff mov -0xa0(%rbp),%rdi 237300: 8b b5 5c ff ff ff mov -0xa4(%rbp),%esi 237306: 48 ba c9 53 20 00 00 00 00 00 movabs $0x2053c9,%rdx 237310: e8 6b b2 ff ff call 232580 RichString_appendAscii(out, CRT_colors[METER_TEXT], "; "); 237315: 48 8b 7d d0 mov -0x30(%rbp),%rdi 237319: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237321: 8b 70 38 mov 0x38(%rax),%esi 237324: 48 ba 1d 6d 20 00 00 00 00 00 movabs $0x206d1d,%rdx 23732e: e8 4d b2 ff ff call 232580 len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[3]); 237333: 48 8d 7d e0 lea -0x20(%rbp),%rdi 237337: 48 8b 45 c8 mov -0x38(%rbp),%rax 23733b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237342: f2 0f 2c 48 18 cvttsd2si 0x18(%rax),%ecx 237347: be 14 00 00 00 mov $0x14,%esi 23734c: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 237356: b0 00 mov $0x0,%al 237358: e8 93 21 00 00 call 2394f0 23735d: 89 45 bc mov %eax,-0x44(%rbp) RichString_appendnAscii(out, CRT_colors[TASKS_RUNNING], buffer, len); 237360: 48 8b 7d d0 mov -0x30(%rbp),%rdi 237364: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23736c: 8b 70 64 mov 0x64(%rax),%esi 23736f: 48 8d 55 e0 lea -0x20(%rbp),%rdx 237373: 8b 4d bc mov -0x44(%rbp),%ecx 237376: e8 a5 b3 ff ff call 232720 RichString_appendAscii(out, CRT_colors[METER_TEXT], " running"); 23737b: 48 8b 7d d0 mov -0x30(%rbp),%rdi 23737f: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 237387: 8b 70 38 mov 0x38(%rax),%esi 23738a: 48 ba ed 5c 20 00 00 00 00 00 movabs $0x205ced,%rdx 237394: e8 e7 b1 ff ff call 232580 237399: 48 8b 05 90 b4 00 00 mov 0xb490(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2373a0: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2373a4: 48 39 c8 cmp %rcx,%rax 2373a7: 0f 85 09 00 00 00 jne 2373b6 } 2373ad: 48 81 c4 b0 00 00 00 add $0xb0,%rsp 2373b4: 5d pop %rbp 2373b5: c3 ret 2373b6: e8 85 6d 00 00 call 23e140 <__stack_chk_fail@plt> 2373bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002373c0 : static void TasksMeter_updateValues(Meter* this) { 2373c0: 55 push %rbp 2373c1: 48 89 e5 mov %rsp,%rbp 2373c4: 48 83 ec 30 sub $0x30,%rsp 2373c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) const ProcessList* pl = this->pl; 2373cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2373d0: 48 8b 40 30 mov 0x30(%rax),%rax 2373d4: 48 89 45 f0 mov %rax,-0x10(%rbp) this->values[0] = pl->kernelThreads; 2373d8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2373dc: 8b 80 94 00 00 00 mov 0x94(%rax),%eax 2373e2: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 2373e7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2373eb: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 2373f2: f2 0f 11 00 movsd %xmm0,(%rax) this->values[1] = pl->userlandThreads; 2373f6: 48 8b 45 f0 mov -0x10(%rbp),%rax 2373fa: 8b 80 90 00 00 00 mov 0x90(%rax),%eax 237400: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 237405: 48 8b 45 f8 mov -0x8(%rbp),%rax 237409: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237410: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads; 237415: 48 8b 4d f0 mov -0x10(%rbp),%rcx 237419: 8b 91 94 00 00 00 mov 0x94(%rcx),%edx 23741f: 8b 81 88 00 00 00 mov 0x88(%rcx),%eax 237425: 8b 89 90 00 00 00 mov 0x90(%rcx),%ecx 23742b: 29 d0 sub %edx,%eax 23742d: 29 c8 sub %ecx,%eax 23742f: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 237434: 48 8b 45 f8 mov -0x8(%rbp),%rax 237438: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23743f: f2 0f 11 40 10 movsd %xmm0,0x10(%rax) this->values[3] = MINIMUM(pl->runningTasks, pl->activeCPUs); 237444: 48 8b 45 f0 mov -0x10(%rbp),%rax 237448: 8b 80 8c 00 00 00 mov 0x8c(%rax),%eax 23744e: 48 8b 4d f0 mov -0x10(%rbp),%rcx 237452: 3b 81 e0 00 00 00 cmp 0xe0(%rcx),%eax 237458: 0f 83 12 00 00 00 jae 237470 23745e: 48 8b 45 f0 mov -0x10(%rbp),%rax 237462: 8b 80 8c 00 00 00 mov 0x8c(%rax),%eax 237468: 89 45 ec mov %eax,-0x14(%rbp) 23746b: e9 0d 00 00 00 jmp 23747d 237470: 48 8b 45 f0 mov -0x10(%rbp),%rax 237474: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 23747a: 89 45 ec mov %eax,-0x14(%rbp) 23747d: 8b 45 ec mov -0x14(%rbp),%eax 237480: 89 c0 mov %eax,%eax 237482: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 237487: 48 8b 45 f8 mov -0x8(%rbp),%rax 23748b: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237492: f2 0f 11 40 18 movsd %xmm0,0x18(%rax) this->total = pl->totalTasks; 237497: 48 8b 45 f0 mov -0x10(%rbp),%rax 23749b: 8b 80 88 00 00 00 mov 0x88(%rax),%eax 2374a1: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 2374a6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2374aa: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%u/%u", MINIMUM(pl->runningTasks, pl->activeCPUs), pl->totalTasks); 2374b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2374b6: 48 83 c0 48 add $0x48,%rax 2374ba: 48 89 45 e0 mov %rax,-0x20(%rbp) 2374be: 48 8b 45 f0 mov -0x10(%rbp),%rax 2374c2: 8b 80 8c 00 00 00 mov 0x8c(%rax),%eax 2374c8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2374cc: 3b 81 e0 00 00 00 cmp 0xe0(%rcx),%eax 2374d2: 0f 83 12 00 00 00 jae 2374ea 2374d8: 48 8b 45 f0 mov -0x10(%rbp),%rax 2374dc: 8b 80 8c 00 00 00 mov 0x8c(%rax),%eax 2374e2: 89 45 dc mov %eax,-0x24(%rbp) 2374e5: e9 0d 00 00 00 jmp 2374f7 2374ea: 48 8b 45 f0 mov -0x10(%rbp),%rax 2374ee: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 2374f4: 89 45 dc mov %eax,-0x24(%rbp) 2374f7: 48 8b 7d e0 mov -0x20(%rbp),%rdi 2374fb: 8b 4d dc mov -0x24(%rbp),%ecx 2374fe: 48 8b 45 f0 mov -0x10(%rbp),%rax 237502: 44 8b 80 88 00 00 00 mov 0x88(%rax),%r8d 237509: be 00 01 00 00 mov $0x100,%esi 23750e: 48 ba 9b 38 20 00 00 00 00 00 movabs $0x20389b,%rdx 237518: b0 00 mov $0x0,%al 23751a: e8 d1 1f 00 00 call 2394f0 } 23751f: 48 83 c4 30 add $0x30,%rsp 237523: 5d pop %rbp 237524: c3 ret 237525: cc int3 237526: cc int3 237527: cc int3 237528: cc int3 237529: cc int3 23752a: cc int3 23752b: cc int3 23752c: cc int3 23752d: cc int3 23752e: cc int3 23752f: cc int3 0000000000237530 : static const char* const TraceScreenKeys[] = {"F3", "F4", "F8", "F9", "Esc"}; static const int TraceScreenEvents[] = {KEY_F(3), KEY_F(4), KEY_F(8), KEY_F(9), 27}; TraceScreen* TraceScreen_new(const Process* process) { 237530: 55 push %rbp 237531: 48 89 e5 mov %rsp,%rbp 237534: 48 83 ec 20 sub $0x20,%rsp 237538: 48 89 7d f8 mov %rdi,-0x8(%rbp) // This initializes all TraceScreen variables to "false" so only default = true ones need to be set below TraceScreen* this = xCalloc(1, sizeof(TraceScreen)); 23753c: bf 01 00 00 00 mov $0x1,%edi 237541: be 40 00 00 00 mov $0x40,%esi 237546: e8 a5 15 00 00 call 238af0 23754b: 48 89 45 f0 mov %rax,-0x10(%rbp) Object_setClass(this, Class(TraceScreen)); 23754f: 48 8b 45 f0 mov -0x10(%rbp),%rax 237553: 48 b9 60 a9 20 00 00 00 00 00 movabs $0x20a960,%rcx 23755d: 48 89 08 mov %rcx,(%rax) this->tracing = true; 237560: 48 8b 45 f0 mov -0x10(%rbp),%rax 237564: c6 40 28 01 movb $0x1,0x28(%rax) FunctionBar* fuBar = FunctionBar_new(TraceScreenFunctions, TraceScreenKeys, TraceScreenEvents); 237568: 48 bf a0 a9 20 00 00 00 00 00 movabs $0x20a9a0,%rdi 237572: 48 be d0 a9 20 00 00 00 00 00 movabs $0x20a9d0,%rsi 23757c: 48 ba 00 aa 20 00 00 00 00 00 movabs $0x20aa00,%rdx 237586: e8 c5 6d fe ff call 21e350 23758b: 48 89 45 e8 mov %rax,-0x18(%rbp) CRT_disableDelay(); 23758f: e8 5c 51 fe ff call 21c6f0 return (TraceScreen*) InfoScreen_init(&this->super, process, fuBar, LINES - 2, " "); 237594: 48 8b 7d f0 mov -0x10(%rbp),%rdi 237598: 48 8b 75 f8 mov -0x8(%rbp),%rsi 23759c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2375a0: 8b 0c 25 80 28 24 00 mov 0x242880,%ecx 2375a7: 83 e9 02 sub $0x2,%ecx 2375aa: 49 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%r8 2375b4: e8 a7 9d fe ff call 221360 2375b9: 48 83 c4 20 add $0x20,%rsp 2375bd: 5d pop %rbp 2375be: c3 ret 2375bf: 90 nop 00000000002375c0 : } void TraceScreen_delete(Object* cast) { 2375c0: 55 push %rbp 2375c1: 48 89 e5 mov %rsp,%rbp 2375c4: 48 83 ec 10 sub $0x10,%rsp 2375c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) TraceScreen* this = (TraceScreen*) cast; 2375cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2375d0: 48 89 45 f0 mov %rax,-0x10(%rbp) if (this->child > 0) { 2375d4: 48 8b 45 f0 mov -0x10(%rbp),%rax 2375d8: 83 78 2c 00 cmpl $0x0,0x2c(%rax) 2375dc: 0f 8e 23 00 00 00 jle 237605 kill(this->child, SIGTERM); 2375e2: 48 8b 45 f0 mov -0x10(%rbp),%rax 2375e6: 8b 78 2c mov 0x2c(%rax),%edi 2375e9: be 0f 00 00 00 mov $0xf,%esi 2375ee: e8 ad 71 00 00 call 23e7a0 waitpid(this->child, NULL, 0); 2375f3: 48 8b 45 f0 mov -0x10(%rbp),%rax 2375f7: 8b 78 2c mov 0x2c(%rax),%edi 2375fa: 31 c0 xor %eax,%eax 2375fc: 89 c6 mov %eax,%esi 2375fe: 31 d2 xor %edx,%edx 237600: e8 eb 70 00 00 call 23e6f0 } if (this->strace) { 237605: 48 8b 45 f0 mov -0x10(%rbp),%rax 237609: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 23760e: 0f 84 0d 00 00 00 je 237621 fclose(this->strace); 237614: 48 8b 45 f0 mov -0x10(%rbp),%rax 237618: 48 8b 78 30 mov 0x30(%rax),%rdi 23761c: e8 bf 70 00 00 call 23e6e0 } CRT_enableDelay(); 237621: e8 fa 50 fe ff call 21c720 free(InfoScreen_done((InfoScreen*)this)); 237626: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23762a: e8 41 9e fe ff call 221470 23762f: 48 89 c7 mov %rax,%rdi 237632: e8 29 6b 00 00 call 23e160 } 237637: 48 83 c4 10 add $0x10,%rsp 23763b: 5d pop %rbp 23763c: c3 ret 23763d: 0f 1f 00 nopl (%rax) 0000000000237640 : static void TraceScreen_draw(InfoScreen* this) { InfoScreen_drawTitled(this, "Trace of process %d - %s", this->process->pid, Process_getCommand(this->process)); } bool TraceScreen_forkTracer(TraceScreen* this) { 237640: 55 push %rbp 237641: 48 89 e5 mov %rsp,%rbp 237644: 48 81 ec 80 00 00 00 sub $0x80,%rsp 23764b: 48 8b 05 de b1 00 00 mov 0xb1de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237652: 48 89 45 f8 mov %rax,-0x8(%rbp) 237656: 48 89 7d c0 mov %rdi,-0x40(%rbp) int fdpair[2] = {0, 0}; 23765a: 48 8d 7d f0 lea -0x10(%rbp),%rdi 23765e: 31 f6 xor %esi,%esi 237660: ba 08 00 00 00 mov $0x8,%edx 237665: e8 d6 6b 00 00 call 23e240 if (pipe(fdpair) == -1) 23766a: 48 8d 7d f0 lea -0x10(%rbp),%rdi 23766e: e8 fd 6f 00 00 call 23e670 237673: 83 f8 ff cmp $0xffffffff,%eax 237676: 0f 85 09 00 00 00 jne 237685 return false; 23767c: c6 45 cf 00 movb $0x0,-0x31(%rbp) 237680: e9 b7 01 00 00 jmp 23783c if (fcntl(fdpair[0], F_SETFL, O_NONBLOCK) < 0) 237685: 8b 7d f0 mov -0x10(%rbp),%edi 237688: ba 04 00 00 00 mov $0x4,%edx 23768d: 89 d6 mov %edx,%esi 23768f: b0 00 mov $0x0,%al 237691: e8 ba 71 00 00 call 23e850 237696: 83 f8 00 cmp $0x0,%eax 237699: 0f 8d 05 00 00 00 jge 2376a4 goto err; 23769f: e9 84 01 00 00 jmp 237828 if (fcntl(fdpair[1], F_SETFL, O_NONBLOCK) < 0) 2376a4: 8b 7d f4 mov -0xc(%rbp),%edi 2376a7: ba 04 00 00 00 mov $0x4,%edx 2376ac: 89 d6 mov %edx,%esi 2376ae: b0 00 mov $0x0,%al 2376b0: e8 9b 71 00 00 call 23e850 2376b5: 83 f8 00 cmp $0x0,%eax 2376b8: 0f 8d 05 00 00 00 jge 2376c3 goto err; 2376be: e9 65 01 00 00 jmp 237828 pid_t child = fork(); 2376c3: e8 b8 6f 00 00 call 23e680 2376c8: 89 45 bc mov %eax,-0x44(%rbp) if (child == -1) 2376cb: 83 7d bc ff cmpl $0xffffffff,-0x44(%rbp) 2376cf: 0f 85 05 00 00 00 jne 2376da goto err; 2376d5: e9 4e 01 00 00 jmp 237828 if (child == 0) { 2376da: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 2376de: 0f 85 f7 00 00 00 jne 2377db close(fdpair[0]); 2376e4: 8b 7d f0 mov -0x10(%rbp),%edi 2376e7: e8 a4 6f 00 00 call 23e690 dup2(fdpair[1], STDOUT_FILENO); 2376ec: 8b 7d f4 mov -0xc(%rbp),%edi 2376ef: be 01 00 00 00 mov $0x1,%esi 2376f4: e8 a7 6f 00 00 call 23e6a0 dup2(fdpair[1], STDERR_FILENO); 2376f9: 8b 7d f4 mov -0xc(%rbp),%edi 2376fc: be 02 00 00 00 mov $0x2,%esi 237701: e8 9a 6f 00 00 call 23e6a0 close(fdpair[1]); 237706: 8b 7d f4 mov -0xc(%rbp),%edi 237709: e8 82 6f 00 00 call 23e690 char buffer[32] = {0}; 23770e: 48 8d 7d d0 lea -0x30(%rbp),%rdi 237712: 31 f6 xor %esi,%esi 237714: ba 20 00 00 00 mov $0x20,%edx 237719: e8 22 6b 00 00 call 23e240 xSnprintf(buffer, sizeof(buffer), "%d", this->super.process->pid); 23771e: 48 8d 7d d0 lea -0x30(%rbp),%rdi 237722: 48 8b 45 c0 mov -0x40(%rbp),%rax 237726: 48 8b 40 08 mov 0x8(%rax),%rax 23772a: 8b 48 18 mov 0x18(%rax),%ecx 23772d: be 20 00 00 00 mov $0x20,%esi 237732: 48 ba 39 32 20 00 00 00 00 00 movabs $0x203239,%rdx 23773c: b0 00 mov $0x0,%al 23773e: e8 ad 1d 00 00 call 2394f0 execlp("strace", "strace", "-T", "-tt", "-s", "512", "-p", buffer, NULL); 237743: 48 8d 45 d0 lea -0x30(%rbp),%rax 237747: 48 be 5b 3f 20 00 00 00 00 00 movabs $0x203f5b,%rsi 237751: 48 ba 5d 3c 20 00 00 00 00 00 movabs $0x203c5d,%rdx 23775b: 48 b9 81 68 20 00 00 00 00 00 movabs $0x206881,%rcx 237765: 49 b8 bf 55 20 00 00 00 00 00 movabs $0x2055bf,%r8 23776f: 49 b9 c7 34 20 00 00 00 00 00 movabs $0x2034c7,%r9 237779: 49 ba 34 5b 20 00 00 00 00 00 movabs $0x205b34,%r10 237783: 31 ff xor %edi,%edi 237785: 48 89 f7 mov %rsi,%rdi 237788: 4c 89 14 24 mov %r10,(%rsp) 23778c: 48 89 44 24 08 mov %rax,0x8(%rsp) 237791: 48 c7 44 24 10 00 00 00 00 movq $0x0,0x10(%rsp) 23779a: b0 00 mov $0x0,%al 23779c: e8 1f 6f 00 00 call 23e6c0 // Should never reach here, unless execlp fails ... const char* message = "Could not execute 'strace'. Please make sure it is available in your $PATH."; 2377a1: 48 b8 de 43 20 00 00 00 00 00 movabs $0x2043de,%rax 2377ab: 48 89 45 b0 mov %rax,-0x50(%rbp) (void)! write(STDERR_FILENO, message, strlen(message)); 2377af: 48 8b 45 b0 mov -0x50(%rbp),%rax 2377b3: 48 89 45 a0 mov %rax,-0x60(%rbp) 2377b7: 48 8b 7d b0 mov -0x50(%rbp),%rdi 2377bb: e8 30 6a 00 00 call 23e1f0 2377c0: 48 8b 75 a0 mov -0x60(%rbp),%rsi 2377c4: 48 89 c2 mov %rax,%rdx 2377c7: bf 02 00 00 00 mov $0x2,%edi 2377cc: e8 8f 70 00 00 call 23e860 exit(127); 2377d1: bf 7f 00 00 00 mov $0x7f,%edi 2377d6: e8 35 69 00 00 call 23e110 } FILE* fd = fdopen(fdpair[0], "r"); 2377db: 8b 7d f0 mov -0x10(%rbp),%edi 2377de: 48 be 76 55 20 00 00 00 00 00 movabs $0x205576,%rsi 2377e8: e8 e3 6e 00 00 call 23e6d0 2377ed: 48 89 45 a8 mov %rax,-0x58(%rbp) if (!fd) 2377f1: 48 83 7d a8 00 cmpq $0x0,-0x58(%rbp) 2377f6: 0f 85 05 00 00 00 jne 237801 goto err; 2377fc: e9 27 00 00 00 jmp 237828 close(fdpair[1]); 237801: 8b 7d f4 mov -0xc(%rbp),%edi 237804: e8 87 6e 00 00 call 23e690 this->child = child; 237809: 8b 4d bc mov -0x44(%rbp),%ecx 23780c: 48 8b 45 c0 mov -0x40(%rbp),%rax 237810: 89 48 2c mov %ecx,0x2c(%rax) this->strace = fd; 237813: 48 8b 4d a8 mov -0x58(%rbp),%rcx 237817: 48 8b 45 c0 mov -0x40(%rbp),%rax 23781b: 48 89 48 30 mov %rcx,0x30(%rax) return true; 23781f: c6 45 cf 01 movb $0x1,-0x31(%rbp) 237823: e9 14 00 00 00 jmp 23783c err: close(fdpair[1]); 237828: 8b 7d f4 mov -0xc(%rbp),%edi 23782b: e8 60 6e 00 00 call 23e690 close(fdpair[0]); 237830: 8b 7d f0 mov -0x10(%rbp),%edi 237833: e8 58 6e 00 00 call 23e690 return false; 237838: c6 45 cf 00 movb $0x0,-0x31(%rbp) } 23783c: 8a 45 cf mov -0x31(%rbp),%al 23783f: 88 45 9f mov %al,-0x61(%rbp) 237842: 48 8b 05 e7 af 00 00 mov 0xafe7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237849: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23784d: 48 39 c8 cmp %rcx,%rax 237850: 0f 85 11 00 00 00 jne 237867 237856: 8a 45 9f mov -0x61(%rbp),%al 237859: 24 01 and $0x1,%al 23785b: 0f b6 c0 movzbl %al,%eax 23785e: 48 81 c4 80 00 00 00 add $0x80,%rsp 237865: 5d pop %rbp 237866: c3 ret 237867: e8 d4 68 00 00 call 23e140 <__stack_chk_fail@plt> 23786c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000237870 : static void TraceScreen_draw(InfoScreen* this) { 237870: 55 push %rbp 237871: 48 89 e5 mov %rsp,%rbp 237874: 48 83 ec 20 sub $0x20,%rsp 237878: 48 89 7d f8 mov %rdi,-0x8(%rbp) InfoScreen_drawTitled(this, "Trace of process %d - %s", this->process->pid, Process_getCommand(this->process)); 23787c: 48 8b 45 f8 mov -0x8(%rbp),%rax 237880: 48 89 45 e8 mov %rax,-0x18(%rbp) 237884: 48 8b 45 f8 mov -0x8(%rbp),%rax 237888: 48 8b 40 08 mov 0x8(%rax),%rax 23788c: 8b 40 18 mov 0x18(%rax),%eax 23788f: 89 45 f4 mov %eax,-0xc(%rbp) 237892: 48 8b 45 f8 mov -0x8(%rbp),%rax 237896: 48 8b 40 08 mov 0x8(%rax),%rax 23789a: 48 8b 00 mov (%rax),%rax 23789d: 48 83 78 30 00 cmpq $0x0,0x30(%rax) 2378a2: 0f 84 22 00 00 00 je 2378ca 2378a8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2378ac: 48 8b 40 08 mov 0x8(%rax),%rax 2378b0: 48 8b 00 mov (%rax),%rax 2378b3: 48 8b 40 30 mov 0x30(%rax),%rax 2378b7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2378bb: 48 8b 79 08 mov 0x8(%rcx),%rdi 2378bf: ff d0 call *%rax 2378c1: 48 89 45 e0 mov %rax,-0x20(%rbp) 2378c5: e9 11 00 00 00 jmp 2378db 2378ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 2378ce: 48 8b 78 08 mov 0x8(%rax),%rdi 2378d2: e8 a9 6a ff ff call 22e380 2378d7: 48 89 45 e0 mov %rax,-0x20(%rbp) 2378db: 8b 55 f4 mov -0xc(%rbp),%edx 2378de: 48 8b 7d e8 mov -0x18(%rbp),%rdi 2378e2: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2378e6: 48 be a1 38 20 00 00 00 00 00 movabs $0x2038a1,%rsi 2378f0: b0 00 mov $0x0,%al 2378f2: e8 b9 9b fe ff call 2214b0 } 2378f7: 48 83 c4 20 add $0x20,%rsp 2378fb: 5d pop %rbp 2378fc: c3 ret 2378fd: 0f 1f 00 nopl (%rax) 0000000000237900 : static void TraceScreen_updateTrace(InfoScreen* super) { 237900: 55 push %rbp 237901: 48 89 e5 mov %rsp,%rbp 237904: 48 81 ec 00 05 00 00 sub $0x500,%rsp 23790b: 48 8b 05 1e af 00 00 mov 0xaf1e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237912: 48 89 45 f8 mov %rax,-0x8(%rbp) 237916: 48 89 bd 58 fb ff ff mov %rdi,-0x4a8(%rbp) TraceScreen* this = (TraceScreen*) super; 23791d: 48 8b 85 58 fb ff ff mov -0x4a8(%rbp),%rax 237924: 48 89 85 50 fb ff ff mov %rax,-0x4b0(%rbp) char buffer[1025]; int fd_strace = fileno(this->strace); 23792b: 83 3c 25 c0 28 24 00 00 cmpl $0x0,0x2428c0 237933: 0f 85 1a 00 00 00 jne 237953 237939: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237940: 48 8b 40 30 mov 0x30(%rax),%rax 237944: 0f bf 40 12 movswl 0x12(%rax),%eax 237948: 89 85 14 fb ff ff mov %eax,-0x4ec(%rbp) 23794e: e9 16 00 00 00 jmp 237969 237953: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 23795a: 48 8b 78 30 mov 0x30(%rax),%rdi 23795e: e8 0d 6f 00 00 call 23e870 237963: 89 85 14 fb ff ff mov %eax,-0x4ec(%rbp) 237969: 8b 85 14 fb ff ff mov -0x4ec(%rbp),%eax 23796f: 89 85 4c fb ff ff mov %eax,-0x4b4(%rbp) assert(fd_strace != -1); fd_set fds; FD_ZERO(&fds); 237975: 48 8d 85 70 fb ff ff lea -0x490(%rbp),%rax 23797c: 48 89 85 40 fb ff ff mov %rax,-0x4c0(%rbp) 237983: 48 c7 85 38 fb ff ff 10 00 00 00 movq $0x10,-0x4c8(%rbp) 23798e: 48 83 bd 38 fb ff ff 00 cmpq $0x0,-0x4c8(%rbp) 237996: 0f 86 2a 00 00 00 jbe 2379c6 23799c: 48 8b 85 40 fb ff ff mov -0x4c0(%rbp),%rax 2379a3: 48 8b 8d 38 fb ff ff mov -0x4c8(%rbp),%rcx 2379aa: 48 89 ca mov %rcx,%rdx 2379ad: 48 83 c2 ff add $0xffffffffffffffff,%rdx 2379b1: 48 89 95 38 fb ff ff mov %rdx,-0x4c8(%rbp) 2379b8: 48 c7 44 c8 f8 00 00 00 00 movq $0x0,-0x8(%rax,%rcx,8) 2379c1: e9 c8 ff ff ff jmp 23798e 2379c6: e9 00 00 00 00 jmp 2379cb // FD_SET(STDIN_FILENO, &fds); FD_SET(fd_strace, &fds); 2379cb: 48 63 8d 4c fb ff ff movslq -0x4b4(%rbp),%rcx 2379d2: 48 83 e1 3f and $0x3f,%rcx 2379d6: b8 01 00 00 00 mov $0x1,%eax 2379db: 48 d3 e0 shl %cl,%rax 2379de: 48 89 c1 mov %rax,%rcx 2379e1: 48 63 85 4c fb ff ff movslq -0x4b4(%rbp),%rax 2379e8: 48 c1 e8 06 shr $0x6,%rax 2379ec: 48 0b 8c c5 70 fb ff ff or -0x490(%rbp,%rax,8),%rcx 2379f4: 48 89 8c c5 70 fb ff ff mov %rcx,-0x490(%rbp,%rax,8) struct timeval tv = { .tv_sec = 0, .tv_usec = 500 }; 2379fc: 48 8b 04 25 00 86 20 00 mov 0x208600,%rax 237a04: 48 89 85 60 fb ff ff mov %rax,-0x4a0(%rbp) 237a0b: 48 8b 04 25 08 86 20 00 mov 0x208608,%rax 237a13: 48 89 85 68 fb ff ff mov %rax,-0x498(%rbp) int ready = select(fd_strace + 1, &fds, NULL, NULL, &tv); 237a1a: 8b bd 4c fb ff ff mov -0x4b4(%rbp),%edi 237a20: 83 c7 01 add $0x1,%edi 237a23: 48 8d b5 70 fb ff ff lea -0x490(%rbp),%rsi 237a2a: 31 c0 xor %eax,%eax 237a2c: 89 c1 mov %eax,%ecx 237a2e: 4c 8d 85 60 fb ff ff lea -0x4a0(%rbp),%r8 237a35: 48 89 ca mov %rcx,%rdx 237a38: e8 43 6e 00 00 call 23e880 237a3d: 89 85 34 fb ff ff mov %eax,-0x4cc(%rbp) size_t nread = 0; 237a43: 48 c7 85 28 fb ff ff 00 00 00 00 movq $0x0,-0x4d8(%rbp) if (ready > 0 && FD_ISSET(fd_strace, &fds)) 237a4e: 83 bd 34 fb ff ff 00 cmpl $0x0,-0x4cc(%rbp) 237a55: 0f 8e 5e 00 00 00 jle 237ab9 237a5b: 48 63 85 4c fb ff ff movslq -0x4b4(%rbp),%rax 237a62: 48 c1 e8 06 shr $0x6,%rax 237a66: 48 8b 84 c5 70 fb ff ff mov -0x490(%rbp,%rax,8),%rax 237a6e: 48 63 8d 4c fb ff ff movslq -0x4b4(%rbp),%rcx 237a75: 48 83 e1 3f and $0x3f,%rcx 237a79: ba 01 00 00 00 mov $0x1,%edx 237a7e: 48 d3 e2 shl %cl,%rdx 237a81: 48 89 d1 mov %rdx,%rcx 237a84: 48 21 c8 and %rcx,%rax 237a87: 48 83 f8 00 cmp $0x0,%rax 237a8b: 0f 84 28 00 00 00 je 237ab9 nread = fread(buffer, 1, sizeof(buffer) - 1, this->strace); 237a91: 48 8d bd f0 fb ff ff lea -0x410(%rbp),%rdi 237a98: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237a9f: 48 8b 48 30 mov 0x30(%rax),%rcx 237aa3: be 01 00 00 00 mov $0x1,%esi 237aa8: ba 00 04 00 00 mov $0x400,%edx 237aad: e8 de 6d 00 00 call 23e890 237ab2: 48 89 85 28 fb ff ff mov %rax,-0x4d8(%rbp) if (nread && this->tracing) { 237ab9: 48 83 bd 28 fb ff ff 00 cmpq $0x0,-0x4d8(%rbp) 237ac1: 0f 84 84 01 00 00 je 237c4b 237ac7: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237ace: f6 40 28 01 testb $0x1,0x28(%rax) 237ad2: 0f 84 73 01 00 00 je 237c4b const char* line = buffer; 237ad8: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 237adf: 48 89 85 20 fb ff ff mov %rax,-0x4e0(%rbp) buffer[nread] = '\0'; 237ae6: 48 8b 85 28 fb ff ff mov -0x4d8(%rbp),%rax 237aed: c6 84 05 f0 fb ff ff 00 movb $0x0,-0x410(%rbp,%rax,1) for (size_t i = 0; i < nread; i++) { 237af5: 48 c7 85 18 fb ff ff 00 00 00 00 movq $0x0,-0x4e8(%rbp) 237b00: 48 8b 85 18 fb ff ff mov -0x4e8(%rbp),%rax 237b07: 48 3b 85 28 fb ff ff cmp -0x4d8(%rbp),%rax 237b0e: 0f 83 a3 00 00 00 jae 237bb7 if (buffer[i] == '\n') { 237b14: 48 8b 85 18 fb ff ff mov -0x4e8(%rbp),%rax 237b1b: 0f be 84 05 f0 fb ff ff movsbl -0x410(%rbp,%rax,1),%eax 237b23: 83 f8 0a cmp $0xa,%eax 237b26: 0f 85 6f 00 00 00 jne 237b9b buffer[i] = '\0'; 237b2c: 48 8b 85 18 fb ff ff mov -0x4e8(%rbp),%rax 237b33: c6 84 05 f0 fb ff ff 00 movb $0x0,-0x410(%rbp,%rax,1) if (this->contLine) { 237b3b: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237b42: f6 40 38 01 testb $0x1,0x38(%rax) 237b46: 0f 84 23 00 00 00 je 237b6f InfoScreen_appendLine(&this->super, line); 237b4c: 48 8b bd 50 fb ff ff mov -0x4b0(%rbp),%rdi 237b53: 48 8b b5 20 fb ff ff mov -0x4e0(%rbp),%rsi 237b5a: e8 81 9c fe ff call 2217e0 this->contLine = false; 237b5f: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237b66: c6 40 38 00 movb $0x0,0x38(%rax) } else { 237b6a: e9 13 00 00 00 jmp 237b82 InfoScreen_addLine(&this->super, line); 237b6f: 48 8b bd 50 fb ff ff mov -0x4b0(%rbp),%rdi 237b76: 48 8b b5 20 fb ff ff mov -0x4e0(%rbp),%rsi 237b7d: e8 2e 9b fe ff call 2216b0 } line = buffer + i + 1; 237b82: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 237b89: 48 03 85 18 fb ff ff add -0x4e8(%rbp),%rax 237b90: 48 83 c0 01 add $0x1,%rax 237b94: 48 89 85 20 fb ff ff mov %rax,-0x4e0(%rbp) } } 237b9b: e9 00 00 00 00 jmp 237ba0 for (size_t i = 0; i < nread; i++) { 237ba0: 48 8b 85 18 fb ff ff mov -0x4e8(%rbp),%rax 237ba7: 48 83 c0 01 add $0x1,%rax 237bab: 48 89 85 18 fb ff ff mov %rax,-0x4e8(%rbp) 237bb2: e9 49 ff ff ff jmp 237b00 if (line < buffer + nread) { 237bb7: 48 8b 85 20 fb ff ff mov -0x4e0(%rbp),%rax 237bbe: 48 8d 8d f0 fb ff ff lea -0x410(%rbp),%rcx 237bc5: 48 03 8d 28 fb ff ff add -0x4d8(%rbp),%rcx 237bcc: 48 39 c8 cmp %rcx,%rax 237bcf: 0f 83 2d 00 00 00 jae 237c02 InfoScreen_addLine(&this->super, line); 237bd5: 48 8b bd 50 fb ff ff mov -0x4b0(%rbp),%rdi 237bdc: 48 8b b5 20 fb ff ff mov -0x4e0(%rbp),%rsi 237be3: e8 c8 9a fe ff call 2216b0 buffer[nread] = '\0'; 237be8: 48 8b 85 28 fb ff ff mov -0x4d8(%rbp),%rax 237bef: c6 84 05 f0 fb ff ff 00 movb $0x0,-0x410(%rbp,%rax,1) this->contLine = true; 237bf7: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237bfe: c6 40 38 01 movb $0x1,0x38(%rax) } if (this->follow) { 237c02: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237c09: f6 40 39 01 testb $0x1,0x39(%rax) 237c0d: 0f 84 33 00 00 00 je 237c46 Panel_setSelected(this->super.display, Panel_size(this->super.display) - 1); 237c13: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237c1a: 48 8b 40 10 mov 0x10(%rax),%rax 237c1e: 48 89 85 08 fb ff ff mov %rax,-0x4f8(%rbp) 237c25: 48 8b 85 50 fb ff ff mov -0x4b0(%rbp),%rax 237c2c: 48 8b 78 10 mov 0x10(%rax),%rdi 237c30: e8 6b 05 ff ff call 2281a0 237c35: 48 8b bd 08 fb ff ff mov -0x4f8(%rbp),%rdi 237c3c: 89 c6 mov %eax,%esi 237c3e: 83 ee 01 sub $0x1,%esi 237c41: e8 7a 05 ff ff call 2281c0 } } 237c46: e9 00 00 00 00 jmp 237c4b 237c4b: 48 8b 05 de ab 00 00 mov 0xabde(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237c52: 48 8b 4d f8 mov -0x8(%rbp),%rcx 237c56: 48 39 c8 cmp %rcx,%rax 237c59: 0f 85 09 00 00 00 jne 237c68 } 237c5f: 48 81 c4 00 05 00 00 add $0x500,%rsp 237c66: 5d pop %rbp 237c67: c3 ret 237c68: e8 d3 64 00 00 call 23e140 <__stack_chk_fail@plt> 237c6d: 0f 1f 00 nopl (%rax) 0000000000237c70 : static bool TraceScreen_onKey(InfoScreen* super, int ch) { 237c70: 55 push %rbp 237c71: 48 89 e5 mov %rsp,%rbp 237c74: 48 83 ec 30 sub $0x30,%rsp 237c78: 48 89 7d f0 mov %rdi,-0x10(%rbp) 237c7c: 89 75 ec mov %esi,-0x14(%rbp) TraceScreen* this = (TraceScreen*) super; 237c7f: 48 8b 45 f0 mov -0x10(%rbp),%rax 237c83: 48 89 45 e0 mov %rax,-0x20(%rbp) switch(ch) { 237c87: 8b 45 ec mov -0x14(%rbp),%eax 237c8a: 89 45 dc mov %eax,-0x24(%rbp) 237c8d: 83 e8 66 sub $0x66,%eax 237c90: 0f 84 3c 00 00 00 je 237cd2 237c96: e9 00 00 00 00 jmp 237c9b 237c9b: 8b 45 dc mov -0x24(%rbp),%eax 237c9e: 83 e8 74 sub $0x74,%eax 237ca1: 0f 84 7d 00 00 00 je 237d24 237ca7: e9 00 00 00 00 jmp 237cac 237cac: 8b 45 dc mov -0x24(%rbp),%eax 237caf: 2d 10 01 00 00 sub $0x110,%eax 237cb4: 0f 84 18 00 00 00 je 237cd2 237cba: e9 00 00 00 00 jmp 237cbf 237cbf: 8b 45 dc mov -0x24(%rbp),%eax 237cc2: 2d 11 01 00 00 sub $0x111,%eax 237cc7: 0f 84 57 00 00 00 je 237d24 237ccd: e9 b8 00 00 00 jmp 237d8a case 'f': case KEY_F(8): this->follow = !(this->follow); 237cd2: 48 8b 45 e0 mov -0x20(%rbp),%rax 237cd6: 8a 48 39 mov 0x39(%rax),%cl 237cd9: 80 f1 ff xor $0xff,%cl 237cdc: 48 8b 45 e0 mov -0x20(%rbp),%rax 237ce0: 80 e1 01 and $0x1,%cl 237ce3: 88 48 39 mov %cl,0x39(%rax) if (this->follow) 237ce6: 48 8b 45 e0 mov -0x20(%rbp),%rax 237cea: f6 40 39 01 testb $0x1,0x39(%rax) 237cee: 0f 84 27 00 00 00 je 237d1b Panel_setSelected(super->display, Panel_size(super->display)-1); 237cf4: 48 8b 45 f0 mov -0x10(%rbp),%rax 237cf8: 48 8b 40 10 mov 0x10(%rax),%rax 237cfc: 48 89 45 d0 mov %rax,-0x30(%rbp) 237d00: 48 8b 45 f0 mov -0x10(%rbp),%rax 237d04: 48 8b 78 10 mov 0x10(%rax),%rdi 237d08: e8 93 04 ff ff call 2281a0 237d0d: 48 8b 7d d0 mov -0x30(%rbp),%rdi 237d11: 89 c6 mov %eax,%esi 237d13: 83 ee 01 sub $0x1,%esi 237d16: e8 a5 04 ff ff call 2281c0 return true; 237d1b: c6 45 ff 01 movb $0x1,-0x1(%rbp) 237d1f: e9 72 00 00 00 jmp 237d96 case 't': case KEY_F(9): this->tracing = !this->tracing; 237d24: 48 8b 45 e0 mov -0x20(%rbp),%rax 237d28: 8a 48 28 mov 0x28(%rax),%cl 237d2b: 80 f1 ff xor $0xff,%cl 237d2e: 48 8b 45 e0 mov -0x20(%rbp),%rax 237d32: 80 e1 01 and $0x1,%cl 237d35: 88 48 28 mov %cl,0x28(%rax) FunctionBar_setLabel(super->display->defaultBar, KEY_F(9), this->tracing?"Stop Tracing ":"Resume Tracing "); 237d38: 48 8b 45 f0 mov -0x10(%rbp),%rax 237d3c: 48 8b 40 10 mov 0x10(%rax),%rax 237d40: 48 8b 78 50 mov 0x50(%rax),%rdi 237d44: 48 8b 45 e0 mov -0x20(%rbp),%rax 237d48: 8a 48 28 mov 0x28(%rax),%cl 237d4b: 48 ba 9f 36 20 00 00 00 00 00 movabs $0x20369f,%rdx 237d55: 48 b8 60 3c 20 00 00 00 00 00 movabs $0x203c60,%rax 237d5f: f6 c1 01 test $0x1,%cl 237d62: 48 0f 45 d0 cmovne %rax,%rdx 237d66: be 11 01 00 00 mov $0x111,%esi 237d6b: e8 c0 68 fe ff call 21e630 InfoScreen_draw(this); 237d70: 48 8b 45 e0 mov -0x20(%rbp),%rax 237d74: 48 8b 00 mov (%rax),%rax 237d77: 48 8b 40 28 mov 0x28(%rax),%rax 237d7b: 48 8b 7d e0 mov -0x20(%rbp),%rdi 237d7f: ff d0 call *%rax return true; 237d81: c6 45 ff 01 movb $0x1,-0x1(%rbp) 237d85: e9 0c 00 00 00 jmp 237d96 } this->follow = false; 237d8a: 48 8b 45 e0 mov -0x20(%rbp),%rax 237d8e: c6 40 39 00 movb $0x0,0x39(%rax) return false; 237d92: c6 45 ff 00 movb $0x0,-0x1(%rbp) } 237d96: 8a 45 ff mov -0x1(%rbp),%al 237d99: 24 01 and $0x1,%al 237d9b: 0f b6 c0 movzbl %al,%eax 237d9e: 48 83 c4 30 add $0x30,%rsp 237da2: 5d pop %rbp 237da3: c3 ret 237da4: cc int3 237da5: cc int3 237da6: cc int3 237da7: cc int3 237da8: cc int3 237da9: cc int3 237daa: cc int3 237dab: cc int3 237dac: cc int3 237dad: cc int3 237dae: cc int3 237daf: cc int3 0000000000237db0 : static const int UptimeMeter_attributes[] = { UPTIME }; static void UptimeMeter_updateValues(Meter* this) { 237db0: 55 push %rbp 237db1: 48 89 e5 mov %rsp,%rbp 237db4: 48 83 ec 60 sub $0x60,%rsp 237db8: 48 8b 05 71 aa 00 00 mov 0xaa71(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237dbf: 48 89 45 f8 mov %rax,-0x8(%rbp) 237dc3: 48 89 7d c8 mov %rdi,-0x38(%rbp) int totalseconds = Platform_getUptime(); 237dc7: e8 14 1b 00 00 call 2398e0 237dcc: 89 45 c4 mov %eax,-0x3c(%rbp) if (totalseconds <= 0) { 237dcf: 83 7d c4 00 cmpl $0x0,-0x3c(%rbp) 237dd3: 0f 8f 23 00 00 00 jg 237dfc xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "(unknown)"); 237dd9: 48 8b 7d c8 mov -0x38(%rbp),%rdi 237ddd: 48 83 c7 48 add $0x48,%rdi 237de1: be 00 01 00 00 mov $0x100,%esi 237de6: 48 ba 2a 44 20 00 00 00 00 00 movabs $0x20442a,%rdx 237df0: b0 00 mov $0x0,%al 237df2: e8 f9 16 00 00 call 2394f0 return; 237df7: e9 43 01 00 00 jmp 237f3f } int seconds = totalseconds % 60; 237dfc: 8b 45 c4 mov -0x3c(%rbp),%eax 237dff: b9 3c 00 00 00 mov $0x3c,%ecx 237e04: 99 cltd 237e05: f7 f9 idiv %ecx 237e07: 89 55 c0 mov %edx,-0x40(%rbp) int minutes = (totalseconds / 60) % 60; 237e0a: 8b 45 c4 mov -0x3c(%rbp),%eax 237e0d: b9 3c 00 00 00 mov $0x3c,%ecx 237e12: 99 cltd 237e13: f7 f9 idiv %ecx 237e15: b9 3c 00 00 00 mov $0x3c,%ecx 237e1a: 99 cltd 237e1b: f7 f9 idiv %ecx 237e1d: 89 55 bc mov %edx,-0x44(%rbp) int hours = (totalseconds / 3600) % 24; 237e20: 8b 45 c4 mov -0x3c(%rbp),%eax 237e23: b9 10 0e 00 00 mov $0xe10,%ecx 237e28: 99 cltd 237e29: f7 f9 idiv %ecx 237e2b: b9 18 00 00 00 mov $0x18,%ecx 237e30: 99 cltd 237e31: f7 f9 idiv %ecx 237e33: 89 55 b8 mov %edx,-0x48(%rbp) int days = (totalseconds / 86400); 237e36: 8b 45 c4 mov -0x3c(%rbp),%eax 237e39: b9 80 51 01 00 mov $0x15180,%ecx 237e3e: 99 cltd 237e3f: f7 f9 idiv %ecx 237e41: 89 45 b4 mov %eax,-0x4c(%rbp) this->values[0] = days; 237e44: f2 0f 2a 45 b4 cvtsi2sdl -0x4c(%rbp),%xmm0 237e49: 48 8b 45 c8 mov -0x38(%rbp),%rax 237e4d: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 237e54: f2 0f 11 00 movsd %xmm0,(%rax) if (days > this->total) { 237e58: f2 0f 2a 45 b4 cvtsi2sdl -0x4c(%rbp),%xmm0 237e5d: 48 8b 45 c8 mov -0x38(%rbp),%rax 237e61: 66 0f 2e 80 50 01 00 00 ucomisd 0x150(%rax),%xmm0 237e69: 0f 86 11 00 00 00 jbe 237e80 this->total = days; 237e6f: f2 0f 2a 45 b4 cvtsi2sdl -0x4c(%rbp),%xmm0 237e74: 48 8b 45 c8 mov -0x38(%rbp),%rax 237e78: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) } char daysbuf[32]; if (days > 100) { 237e80: 83 7d b4 64 cmpl $0x64,-0x4c(%rbp) 237e84: 0f 8e 22 00 00 00 jle 237eac xSnprintf(daysbuf, sizeof(daysbuf), "%d days(!), ", days); 237e8a: 48 8d 7d d0 lea -0x30(%rbp),%rdi 237e8e: 8b 4d b4 mov -0x4c(%rbp),%ecx 237e91: be 20 00 00 00 mov $0x20,%esi 237e96: 48 ba d2 59 20 00 00 00 00 00 movabs $0x2059d2,%rdx 237ea0: b0 00 mov $0x0,%al 237ea2: e8 49 16 00 00 call 2394f0 } else if (days > 1) { 237ea7: e9 63 00 00 00 jmp 237f0f 237eac: 83 7d b4 01 cmpl $0x1,-0x4c(%rbp) 237eb0: 0f 8e 22 00 00 00 jle 237ed8 xSnprintf(daysbuf, sizeof(daysbuf), "%d days, ", days); 237eb6: 48 8d 7d d0 lea -0x30(%rbp),%rdi 237eba: 8b 4d b4 mov -0x4c(%rbp),%ecx 237ebd: be 20 00 00 00 mov $0x20,%esi 237ec2: 48 ba df 59 20 00 00 00 00 00 movabs $0x2059df,%rdx 237ecc: b0 00 mov $0x0,%al 237ece: e8 1d 16 00 00 call 2394f0 } else if (days == 1) { 237ed3: e9 32 00 00 00 jmp 237f0a 237ed8: 83 7d b4 01 cmpl $0x1,-0x4c(%rbp) 237edc: 0f 85 1f 00 00 00 jne 237f01 xSnprintf(daysbuf, sizeof(daysbuf), "1 day, "); 237ee2: 48 8d 7d d0 lea -0x30(%rbp),%rdi 237ee6: be 20 00 00 00 mov $0x20,%esi 237eeb: 48 ba e9 59 20 00 00 00 00 00 movabs $0x2059e9,%rdx 237ef5: b0 00 mov $0x0,%al 237ef7: e8 f4 15 00 00 call 2394f0 } else { 237efc: e9 04 00 00 00 jmp 237f05 daysbuf[0] = '\0'; 237f01: c6 45 d0 00 movb $0x0,-0x30(%rbp) 237f05: e9 00 00 00 00 jmp 237f0a 237f0a: e9 00 00 00 00 jmp 237f0f } xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%s%02d:%02d:%02d", daysbuf, hours, minutes, seconds); 237f0f: 48 8b 7d c8 mov -0x38(%rbp),%rdi 237f13: 48 83 c7 48 add $0x48,%rdi 237f17: 48 8d 4d d0 lea -0x30(%rbp),%rcx 237f1b: 44 8b 45 b8 mov -0x48(%rbp),%r8d 237f1f: 44 8b 4d bc mov -0x44(%rbp),%r9d 237f23: 8b 45 c0 mov -0x40(%rbp),%eax 237f26: be 00 01 00 00 mov $0x100,%esi 237f2b: 48 ba bd 5b 20 00 00 00 00 00 movabs $0x205bbd,%rdx 237f35: 89 04 24 mov %eax,(%rsp) 237f38: b0 00 mov $0x0,%al 237f3a: e8 b1 15 00 00 call 2394f0 237f3f: 48 8b 05 ea a8 00 00 mov 0xa8ea(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 237f46: 48 8b 4d f8 mov -0x8(%rbp),%rcx 237f4a: 48 39 c8 cmp %rcx,%rax 237f4d: 0f 85 06 00 00 00 jne 237f59 } 237f53: 48 83 c4 60 add $0x60,%rsp 237f57: 5d pop %rbp 237f58: c3 ret 237f59: e8 e2 61 00 00 call 23e140 <__stack_chk_fail@plt> 237f5e: cc int3 237f5f: cc int3 0000000000237f60 : #include #include "XUtils.h" UsersTable* UsersTable_new() { 237f60: 55 push %rbp 237f61: 48 89 e5 mov %rsp,%rbp 237f64: 48 83 ec 10 sub $0x10,%rsp UsersTable* this; this = xMalloc(sizeof(UsersTable)); 237f68: bf 08 00 00 00 mov $0x8,%edi 237f6d: e8 ee 0a 00 00 call 238a60 237f72: 48 89 45 f8 mov %rax,-0x8(%rbp) this->users = Hashtable_new(10, true); 237f76: bf 0a 00 00 00 mov $0xa,%edi 237f7b: be 01 00 00 00 mov $0x1,%esi 237f80: e8 8b 6b fe ff call 21eb10 237f85: 48 89 c1 mov %rax,%rcx 237f88: 48 8b 45 f8 mov -0x8(%rbp),%rax 237f8c: 48 89 08 mov %rcx,(%rax) return this; 237f8f: 48 8b 45 f8 mov -0x8(%rbp),%rax 237f93: 48 83 c4 10 add $0x10,%rsp 237f97: 5d pop %rbp 237f98: c3 ret 237f99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000237fa0 : } void UsersTable_delete(UsersTable* this) { 237fa0: 55 push %rbp 237fa1: 48 89 e5 mov %rsp,%rbp 237fa4: 48 83 ec 10 sub $0x10,%rsp 237fa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Hashtable_delete(this->users); 237fac: 48 8b 45 f8 mov -0x8(%rbp),%rax 237fb0: 48 8b 38 mov (%rax),%rdi 237fb3: e8 98 6c fe ff call 21ec50 free(this); 237fb8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 237fbc: e8 9f 61 00 00 call 23e160 } 237fc1: 48 83 c4 10 add $0x10,%rsp 237fc5: 5d pop %rbp 237fc6: c3 ret 237fc7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000237fd0 : char* UsersTable_getRef(UsersTable* this, unsigned int uid) { 237fd0: 55 push %rbp 237fd1: 48 89 e5 mov %rsp,%rbp 237fd4: 48 83 ec 20 sub $0x20,%rsp 237fd8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 237fdc: 89 75 f4 mov %esi,-0xc(%rbp) char* name = Hashtable_get(this->users, uid); 237fdf: 48 8b 45 f8 mov -0x8(%rbp),%rax 237fe3: 48 8b 38 mov (%rax),%rdi 237fe6: 8b 75 f4 mov -0xc(%rbp),%esi 237fe9: e8 f2 72 fe ff call 21f2e0 237fee: 48 89 45 e8 mov %rax,-0x18(%rbp) if (name == NULL) { 237ff2: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 237ff7: 0f 85 3f 00 00 00 jne 23803c const struct passwd* userData = getpwuid(uid); 237ffd: 8b 7d f4 mov -0xc(%rbp),%edi 238000: e8 9b 68 00 00 call 23e8a0 238005: 48 89 45 e0 mov %rax,-0x20(%rbp) if (userData != NULL) { 238009: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 23800e: 0f 84 23 00 00 00 je 238037 name = xStrdup(userData->pw_name); 238014: 48 8b 45 e0 mov -0x20(%rbp),%rax 238018: 48 8b 38 mov (%rax),%rdi 23801b: e8 d0 0f 00 00 call 238ff0 238020: 48 89 45 e8 mov %rax,-0x18(%rbp) Hashtable_put(this->users, uid, name); 238024: 48 8b 45 f8 mov -0x8(%rbp),%rax 238028: 48 8b 38 mov (%rax),%rdi 23802b: 8b 75 f4 mov -0xc(%rbp),%esi 23802e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 238032: e8 f9 6f fe ff call 21f030 } } 238037: e9 00 00 00 00 jmp 23803c return name; 23803c: 48 8b 45 e8 mov -0x18(%rbp),%rax 238040: 48 83 c4 20 add $0x20,%rsp 238044: 5d pop %rbp 238045: c3 ret 238046: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000238050 : } inline void UsersTable_foreach(UsersTable* this, Hashtable_PairFunction f, void* userData) { 238050: 55 push %rbp 238051: 48 89 e5 mov %rsp,%rbp 238054: 48 83 ec 20 sub $0x20,%rsp 238058: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23805c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 238060: 48 89 55 e8 mov %rdx,-0x18(%rbp) Hashtable_foreach(this->users, f, userData); 238064: 48 8b 45 f8 mov -0x8(%rbp),%rax 238068: 48 8b 38 mov (%rax),%rdi 23806b: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23806f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 238073: e8 68 73 fe ff call 21f3e0 } 238078: 48 83 c4 20 add $0x20,%rsp 23807c: 5d pop %rbp 23807d: c3 ret 23807e: cc int3 23807f: cc int3 0000000000238080 : #include #include "XUtils.h" Vector* Vector_new(const ObjectClass* type, bool owner, int size) { 238080: 55 push %rbp 238081: 48 89 e5 mov %rsp,%rbp 238084: 48 83 ec 20 sub $0x20,%rsp 238088: 40 88 f0 mov %sil,%al 23808b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23808f: 24 01 and $0x1,%al 238091: 88 45 f7 mov %al,-0x9(%rbp) 238094: 89 55 f0 mov %edx,-0x10(%rbp) Vector* this; if (size == DEFAULT_SIZE) { 238097: 83 7d f0 ff cmpl $0xffffffff,-0x10(%rbp) 23809b: 0f 85 07 00 00 00 jne 2380a8 size = 10; 2380a1: c7 45 f0 0a 00 00 00 movl $0xa,-0x10(%rbp) } assert(size > 0); this = xMalloc(sizeof(Vector)); 2380a8: bf 20 00 00 00 mov $0x20,%edi 2380ad: e8 ae 09 00 00 call 238a60 2380b2: 48 89 45 e8 mov %rax,-0x18(%rbp) this->growthRate = size; 2380b6: 8b 4d f0 mov -0x10(%rbp),%ecx 2380b9: 48 8b 45 e8 mov -0x18(%rbp),%rax 2380bd: 89 48 14 mov %ecx,0x14(%rax) this->array = (Object**) xCalloc(size, sizeof(Object*)); 2380c0: 48 63 7d f0 movslq -0x10(%rbp),%rdi 2380c4: be 08 00 00 00 mov $0x8,%esi 2380c9: e8 22 0a 00 00 call 238af0 2380ce: 48 89 c1 mov %rax,%rcx 2380d1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2380d5: 48 89 08 mov %rcx,(%rax) this->arraySize = size; 2380d8: 8b 4d f0 mov -0x10(%rbp),%ecx 2380db: 48 8b 45 e8 mov -0x18(%rbp),%rax 2380df: 89 48 10 mov %ecx,0x10(%rax) this->items = 0; 2380e2: 48 8b 45 e8 mov -0x18(%rbp),%rax 2380e6: c7 40 18 00 00 00 00 movl $0x0,0x18(%rax) this->type = type; 2380ed: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2380f1: 48 8b 45 e8 mov -0x18(%rbp),%rax 2380f5: 48 89 48 08 mov %rcx,0x8(%rax) this->owner = owner; 2380f9: 8a 4d f7 mov -0x9(%rbp),%cl 2380fc: 48 8b 45 e8 mov -0x18(%rbp),%rax 238100: 80 e1 01 and $0x1,%cl 238103: 88 48 1c mov %cl,0x1c(%rax) return this; 238106: 48 8b 45 e8 mov -0x18(%rbp),%rax 23810a: 48 83 c4 20 add $0x20,%rsp 23810e: 5d pop %rbp 23810f: c3 ret 0000000000238110 : } void Vector_delete(Vector* this) { 238110: 55 push %rbp 238111: 48 89 e5 mov %rsp,%rbp 238114: 48 83 ec 10 sub $0x10,%rsp 238118: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->owner) { 23811c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238120: f6 40 1c 01 testb $0x1,0x1c(%rax) 238124: 0f 84 6c 00 00 00 je 238196 for (int i = 0; i < this->items; i++) { 23812a: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 238131: 8b 45 f4 mov -0xc(%rbp),%eax 238134: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238138: 3b 41 18 cmp 0x18(%rcx),%eax 23813b: 0f 8d 50 00 00 00 jge 238191 if (this->array[i]) { 238141: 48 8b 45 f8 mov -0x8(%rbp),%rax 238145: 48 8b 00 mov (%rax),%rax 238148: 48 63 4d f4 movslq -0xc(%rbp),%rcx 23814c: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 238151: 0f 84 27 00 00 00 je 23817e Object_delete(this->array[i]); 238157: 48 8b 45 f8 mov -0x8(%rbp),%rax 23815b: 48 8b 00 mov (%rax),%rax 23815e: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238162: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238166: 48 8b 00 mov (%rax),%rax 238169: 48 8b 40 10 mov 0x10(%rax),%rax 23816d: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238171: 48 8b 09 mov (%rcx),%rcx 238174: 48 63 55 f4 movslq -0xc(%rbp),%rdx 238178: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 23817c: ff d0 call *%rax } } 23817e: e9 00 00 00 00 jmp 238183 for (int i = 0; i < this->items; i++) { 238183: 8b 45 f4 mov -0xc(%rbp),%eax 238186: 83 c0 01 add $0x1,%eax 238189: 89 45 f4 mov %eax,-0xc(%rbp) 23818c: e9 a0 ff ff ff jmp 238131 } 238191: e9 00 00 00 00 jmp 238196 free(this->array); 238196: 48 8b 45 f8 mov -0x8(%rbp),%rax 23819a: 48 8b 38 mov (%rax),%rdi 23819d: e8 be 5f 00 00 call 23e160 free(this); 2381a2: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2381a6: e8 b5 5f 00 00 call 23e160 } 2381ab: 48 83 c4 10 add $0x10,%rsp 2381af: 5d pop %rbp 2381b0: c3 ret 2381b1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2381bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002381c0 : return this->items; } #endif /* NDEBUG */ void Vector_prune(Vector* this) { 2381c0: 55 push %rbp 2381c1: 48 89 e5 mov %rsp,%rbp 2381c4: 48 83 ec 10 sub $0x10,%rsp 2381c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) assert(Vector_isConsistent(this)); if (this->owner) { 2381cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 2381d0: f6 40 1c 01 testb $0x1,0x1c(%rax) 2381d4: 0f 84 6c 00 00 00 je 238246 for (int i = 0; i < this->items; i++) 2381da: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) 2381e1: 8b 45 f4 mov -0xc(%rbp),%eax 2381e4: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2381e8: 3b 41 18 cmp 0x18(%rcx),%eax 2381eb: 0f 8d 50 00 00 00 jge 238241 if (this->array[i]) { 2381f1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2381f5: 48 8b 00 mov (%rax),%rax 2381f8: 48 63 4d f4 movslq -0xc(%rbp),%rcx 2381fc: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 238201: 0f 84 27 00 00 00 je 23822e Object_delete(this->array[i]); 238207: 48 8b 45 f8 mov -0x8(%rbp),%rax 23820b: 48 8b 00 mov (%rax),%rax 23820e: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238212: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238216: 48 8b 00 mov (%rax),%rax 238219: 48 8b 40 10 mov 0x10(%rax),%rax 23821d: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238221: 48 8b 09 mov (%rcx),%rcx 238224: 48 63 55 f4 movslq -0xc(%rbp),%rdx 238228: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 23822c: ff d0 call *%rax if (this->array[i]) { 23822e: e9 00 00 00 00 jmp 238233 for (int i = 0; i < this->items; i++) 238233: 8b 45 f4 mov -0xc(%rbp),%eax 238236: 83 c0 01 add $0x1,%eax 238239: 89 45 f4 mov %eax,-0xc(%rbp) 23823c: e9 a0 ff ff ff jmp 2381e1 //this->array[i] = NULL; } } 238241: e9 00 00 00 00 jmp 238246 this->items = 0; 238246: 48 8b 45 f8 mov -0x8(%rbp),%rax 23824a: c7 40 18 00 00 00 00 movl $0x0,0x18(%rax) } 238251: 48 83 c4 10 add $0x10,%rsp 238255: 5d pop %rbp 238256: c3 ret 238257: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000238260 : } array[j + 1] = t; } } void Vector_quickSortCustomCompare(Vector* this, Object_Compare compare) { 238260: 55 push %rbp 238261: 48 89 e5 mov %rsp,%rbp 238264: 48 83 ec 10 sub $0x10,%rsp 238268: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23826c: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(compare); assert(Vector_isConsistent(this)); quickSort(this->array, 0, this->items - 1, compare); 238270: 48 8b 45 f8 mov -0x8(%rbp),%rax 238274: 48 8b 38 mov (%rax),%rdi 238277: 48 8b 45 f8 mov -0x8(%rbp),%rax 23827b: 8b 50 18 mov 0x18(%rax),%edx 23827e: 83 ea 01 sub $0x1,%edx 238281: 48 8b 4d f0 mov -0x10(%rbp),%rcx 238285: 31 f6 xor %esi,%esi 238287: e8 14 00 00 00 call 2382a0 assert(Vector_isConsistent(this)); } 23828c: 48 83 c4 10 add $0x10,%rsp 238290: 5d pop %rbp 238291: c3 ret 238292: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23829c: 0f 1f 40 00 nopl 0x0(%rax) 00000000002382a0 : static void quickSort(Object** array, int left, int right, Object_Compare compare) { 2382a0: 55 push %rbp 2382a1: 48 89 e5 mov %rsp,%rbp 2382a4: 48 83 ec 20 sub $0x20,%rsp 2382a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2382ac: 89 75 f4 mov %esi,-0xc(%rbp) 2382af: 89 55 f0 mov %edx,-0x10(%rbp) 2382b2: 48 89 4d e8 mov %rcx,-0x18(%rbp) if (left >= right) 2382b6: 8b 45 f4 mov -0xc(%rbp),%eax 2382b9: 3b 45 f0 cmp -0x10(%rbp),%eax 2382bc: 0f 8c 05 00 00 00 jl 2382c7 return; 2382c2: e9 56 00 00 00 jmp 23831d int pivotIndex = (left + right) / 2; 2382c7: 8b 45 f4 mov -0xc(%rbp),%eax 2382ca: 03 45 f0 add -0x10(%rbp),%eax 2382cd: b9 02 00 00 00 mov $0x2,%ecx 2382d2: 99 cltd 2382d3: f7 f9 idiv %ecx 2382d5: 89 45 e4 mov %eax,-0x1c(%rbp) int pivotNewIndex = partition(array, left, right, pivotIndex, compare); 2382d8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2382dc: 8b 75 f4 mov -0xc(%rbp),%esi 2382df: 8b 55 f0 mov -0x10(%rbp),%edx 2382e2: 8b 4d e4 mov -0x1c(%rbp),%ecx 2382e5: 4c 8b 45 e8 mov -0x18(%rbp),%r8 2382e9: e8 52 06 00 00 call 238940 2382ee: 89 45 e0 mov %eax,-0x20(%rbp) quickSort(array, left, pivotNewIndex - 1, compare); 2382f1: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2382f5: 8b 75 f4 mov -0xc(%rbp),%esi 2382f8: 8b 55 e0 mov -0x20(%rbp),%edx 2382fb: 83 ea 01 sub $0x1,%edx 2382fe: 48 8b 4d e8 mov -0x18(%rbp),%rcx 238302: e8 99 ff ff ff call 2382a0 quickSort(array, pivotNewIndex + 1, right, compare); 238307: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23830b: 8b 75 e0 mov -0x20(%rbp),%esi 23830e: 83 c6 01 add $0x1,%esi 238311: 8b 55 f0 mov -0x10(%rbp),%edx 238314: 48 8b 4d e8 mov -0x18(%rbp),%rcx 238318: e8 83 ff ff ff call 2382a0 } 23831d: 48 83 c4 20 add $0x20,%rsp 238321: 5d pop %rbp 238322: c3 ret 238323: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23832d: 0f 1f 00 nopl (%rax) 0000000000238330 : void Vector_insertionSort(Vector* this) { 238330: 55 push %rbp 238331: 48 89 e5 mov %rsp,%rbp 238334: 48 83 ec 10 sub $0x10,%rsp 238338: 48 89 7d f8 mov %rdi,-0x8(%rbp) assert(this->type->compare); assert(Vector_isConsistent(this)); insertionSort(this->array, 0, this->items - 1, this->type->compare); 23833c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238340: 48 8b 38 mov (%rax),%rdi 238343: 48 8b 45 f8 mov -0x8(%rbp),%rax 238347: 8b 50 18 mov 0x18(%rax),%edx 23834a: 83 ea 01 sub $0x1,%edx 23834d: 48 8b 45 f8 mov -0x8(%rbp),%rax 238351: 48 8b 40 08 mov 0x8(%rax),%rax 238355: 48 8b 48 18 mov 0x18(%rax),%rcx 238359: 31 f6 xor %esi,%esi 23835b: e8 10 00 00 00 call 238370 assert(Vector_isConsistent(this)); } 238360: 48 83 c4 10 add $0x10,%rsp 238364: 5d pop %rbp 238365: c3 ret 238366: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000238370 : static void insertionSort(Object** array, int left, int right, Object_Compare compare) { 238370: 55 push %rbp 238371: 48 89 e5 mov %rsp,%rbp 238374: 48 83 ec 30 sub $0x30,%rsp 238378: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23837c: 89 75 f4 mov %esi,-0xc(%rbp) 23837f: 89 55 f0 mov %edx,-0x10(%rbp) 238382: 48 89 4d e8 mov %rcx,-0x18(%rbp) for (int i = left + 1; i <= right; i++) { 238386: 8b 45 f4 mov -0xc(%rbp),%eax 238389: 83 c0 01 add $0x1,%eax 23838c: 89 45 e4 mov %eax,-0x1c(%rbp) 23838f: 8b 45 e4 mov -0x1c(%rbp),%eax 238392: 3b 45 f0 cmp -0x10(%rbp),%eax 238395: 0f 8f 97 00 00 00 jg 238432 Object* t = array[i]; 23839b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23839f: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 2383a3: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 2383a7: 48 89 45 d8 mov %rax,-0x28(%rbp) int j = i - 1; 2383ab: 8b 45 e4 mov -0x1c(%rbp),%eax 2383ae: 83 e8 01 sub $0x1,%eax 2383b1: 89 45 d4 mov %eax,-0x2c(%rbp) while (j >= left) { 2383b4: 8b 45 d4 mov -0x2c(%rbp),%eax 2383b7: 3b 45 f4 cmp -0xc(%rbp),%eax 2383ba: 0f 8c 4f 00 00 00 jl 23840f if (compare(array[j], t) <= 0) 2383c0: 48 8b 45 e8 mov -0x18(%rbp),%rax 2383c4: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2383c8: 48 63 55 d4 movslq -0x2c(%rbp),%rdx 2383cc: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 2383d0: 48 8b 75 d8 mov -0x28(%rbp),%rsi 2383d4: ff d0 call *%rax 2383d6: 83 f8 00 cmp $0x0,%eax 2383d9: 0f 8f 05 00 00 00 jg 2383e4 break; 2383df: e9 2b 00 00 00 jmp 23840f array[j + 1] = array[j]; 2383e4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2383e8: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 2383ec: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 2383f0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2383f4: 8b 4d d4 mov -0x2c(%rbp),%ecx 2383f7: 83 c1 01 add $0x1,%ecx 2383fa: 48 63 c9 movslq %ecx,%rcx 2383fd: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) j--; 238401: 8b 45 d4 mov -0x2c(%rbp),%eax 238404: 83 c0 ff add $0xffffffff,%eax 238407: 89 45 d4 mov %eax,-0x2c(%rbp) while (j >= left) { 23840a: e9 a5 ff ff ff jmp 2383b4 array[j + 1] = t; 23840f: 48 8b 55 d8 mov -0x28(%rbp),%rdx 238413: 48 8b 45 f8 mov -0x8(%rbp),%rax 238417: 8b 4d d4 mov -0x2c(%rbp),%ecx 23841a: 83 c1 01 add $0x1,%ecx 23841d: 48 63 c9 movslq %ecx,%rcx 238420: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) for (int i = left + 1; i <= right; i++) { 238424: 8b 45 e4 mov -0x1c(%rbp),%eax 238427: 83 c0 01 add $0x1,%eax 23842a: 89 45 e4 mov %eax,-0x1c(%rbp) 23842d: e9 5d ff ff ff jmp 23838f } 238432: 48 83 c4 30 add $0x30,%rsp 238436: 5d pop %rbp 238437: c3 ret 238438: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000238440 : // this->array[i] = NULL; } assert(Vector_isConsistent(this)); } void Vector_insert(Vector* this, int idx, void* data_) { 238440: 55 push %rbp 238441: 48 89 e5 mov %rsp,%rbp 238444: 48 83 ec 20 sub $0x20,%rsp 238448: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23844c: 89 75 f4 mov %esi,-0xc(%rbp) 23844f: 48 89 55 e8 mov %rdx,-0x18(%rbp) Object* data = data_; 238453: 48 8b 45 e8 mov -0x18(%rbp),%rax 238457: 48 89 45 e0 mov %rax,-0x20(%rbp) assert(idx >= 0); assert(Object_isA(data, this->type)); assert(Vector_isConsistent(this)); if (idx > this->items) { 23845b: 8b 45 f4 mov -0xc(%rbp),%eax 23845e: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238462: 3b 41 18 cmp 0x18(%rcx),%eax 238465: 0f 8e 0a 00 00 00 jle 238475 idx = this->items; 23846b: 48 8b 45 f8 mov -0x8(%rbp),%rax 23846f: 8b 40 18 mov 0x18(%rax),%eax 238472: 89 45 f4 mov %eax,-0xc(%rbp) } Vector_checkArraySize(this); 238475: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238479: e8 82 00 00 00 call 238500 //assert(this->array[this->items] == NULL); if (idx < this->items) { 23847e: 8b 45 f4 mov -0xc(%rbp),%eax 238481: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238485: 3b 41 18 cmp 0x18(%rcx),%eax 238488: 0f 8d 3e 00 00 00 jge 2384cc memmove(&this->array[idx + 1], &this->array[idx], (this->items - idx) * sizeof(this->array[0])); 23848e: 48 8b 45 f8 mov -0x8(%rbp),%rax 238492: 48 8b 38 mov (%rax),%rdi 238495: 8b 45 f4 mov -0xc(%rbp),%eax 238498: 83 c0 01 add $0x1,%eax 23849b: 48 98 cltq 23849d: 48 c1 e0 03 shl $0x3,%rax 2384a1: 48 01 c7 add %rax,%rdi 2384a4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2384a8: 48 8b 30 mov (%rax),%rsi 2384ab: 48 63 45 f4 movslq -0xc(%rbp),%rax 2384af: 48 c1 e0 03 shl $0x3,%rax 2384b3: 48 01 c6 add %rax,%rsi 2384b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 2384ba: 8b 40 18 mov 0x18(%rax),%eax 2384bd: 2b 45 f4 sub -0xc(%rbp),%eax 2384c0: 48 63 d0 movslq %eax,%rdx 2384c3: 48 c1 e2 03 shl $0x3,%rdx 2384c7: e8 e4 63 00 00 call 23e8b0 } this->array[idx] = data; 2384cc: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2384d0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2384d4: 48 8b 00 mov (%rax),%rax 2384d7: 48 63 4d f4 movslq -0xc(%rbp),%rcx 2384db: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->items++; 2384df: 48 8b 45 f8 mov -0x8(%rbp),%rax 2384e3: 8b 48 18 mov 0x18(%rax),%ecx 2384e6: 83 c1 01 add $0x1,%ecx 2384e9: 89 48 18 mov %ecx,0x18(%rax) assert(Vector_isConsistent(this)); } 2384ec: 48 83 c4 20 add $0x20,%rsp 2384f0: 5d pop %rbp 2384f1: c3 ret 2384f2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2384fc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238500 : static void Vector_checkArraySize(Vector* this) { 238500: 55 push %rbp 238501: 48 89 e5 mov %rsp,%rbp 238504: 48 83 ec 10 sub $0x10,%rsp 238508: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (this->items >= this->arraySize) { 23850c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238510: 8b 40 18 mov 0x18(%rax),%eax 238513: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238517: 3b 41 10 cmp 0x10(%rcx),%eax 23851a: 0f 8c 37 00 00 00 jl 238557 this->arraySize = this->items + this->growthRate; 238520: 48 8b 45 f8 mov -0x8(%rbp),%rax 238524: 8b 48 18 mov 0x18(%rax),%ecx 238527: 48 8b 45 f8 mov -0x8(%rbp),%rax 23852b: 03 48 14 add 0x14(%rax),%ecx 23852e: 48 8b 45 f8 mov -0x8(%rbp),%rax 238532: 89 48 10 mov %ecx,0x10(%rax) this->array = (Object**) xRealloc(this->array, sizeof(Object*) * this->arraySize); 238535: 48 8b 45 f8 mov -0x8(%rbp),%rax 238539: 48 8b 38 mov (%rax),%rdi 23853c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238540: 48 63 70 10 movslq 0x10(%rax),%rsi 238544: 48 c1 e6 03 shl $0x3,%rsi 238548: e8 03 06 00 00 call 238b50 23854d: 48 89 c1 mov %rax,%rcx 238550: 48 8b 45 f8 mov -0x8(%rbp),%rax 238554: 48 89 08 mov %rcx,(%rax) } 238557: 48 83 c4 10 add $0x10,%rsp 23855b: 5d pop %rbp 23855c: c3 ret 23855d: 0f 1f 00 nopl (%rax) 0000000000238560 : Object* Vector_take(Vector* this, int idx) { 238560: 55 push %rbp 238561: 48 89 e5 mov %rsp,%rbp 238564: 48 83 ec 20 sub $0x20,%rsp 238568: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23856c: 89 75 f4 mov %esi,-0xc(%rbp) assert(idx >= 0 && idx < this->items); assert(Vector_isConsistent(this)); Object* removed = this->array[idx]; 23856f: 48 8b 45 f8 mov -0x8(%rbp),%rax 238573: 48 8b 00 mov (%rax),%rax 238576: 48 63 4d f4 movslq -0xc(%rbp),%rcx 23857a: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 23857e: 48 89 45 e8 mov %rax,-0x18(%rbp) assert(removed); this->items--; 238582: 48 8b 45 f8 mov -0x8(%rbp),%rax 238586: 8b 48 18 mov 0x18(%rax),%ecx 238589: 83 c1 ff add $0xffffffff,%ecx 23858c: 89 48 18 mov %ecx,0x18(%rax) if (idx < this->items) { 23858f: 8b 45 f4 mov -0xc(%rbp),%eax 238592: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238596: 3b 41 18 cmp 0x18(%rcx),%eax 238599: 0f 8d 3e 00 00 00 jge 2385dd memmove(&this->array[idx], &this->array[idx + 1], (this->items - idx) * sizeof(this->array[0])); 23859f: 48 8b 45 f8 mov -0x8(%rbp),%rax 2385a3: 48 8b 38 mov (%rax),%rdi 2385a6: 48 63 45 f4 movslq -0xc(%rbp),%rax 2385aa: 48 c1 e0 03 shl $0x3,%rax 2385ae: 48 01 c7 add %rax,%rdi 2385b1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2385b5: 48 8b 30 mov (%rax),%rsi 2385b8: 8b 45 f4 mov -0xc(%rbp),%eax 2385bb: 83 c0 01 add $0x1,%eax 2385be: 48 98 cltq 2385c0: 48 c1 e0 03 shl $0x3,%rax 2385c4: 48 01 c6 add %rax,%rsi 2385c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 2385cb: 8b 40 18 mov 0x18(%rax),%eax 2385ce: 2b 45 f4 sub -0xc(%rbp),%eax 2385d1: 48 63 d0 movslq %eax,%rdx 2385d4: 48 c1 e2 03 shl $0x3,%rdx 2385d8: e8 d3 62 00 00 call 23e8b0 } //this->array[this->items] = NULL; assert(Vector_isConsistent(this)); return removed; 2385dd: 48 8b 45 e8 mov -0x18(%rbp),%rax 2385e1: 48 83 c4 20 add $0x20,%rsp 2385e5: 5d pop %rbp 2385e6: c3 ret 2385e7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 00000000002385f0 : } Object* Vector_remove(Vector* this, int idx) { 2385f0: 55 push %rbp 2385f1: 48 89 e5 mov %rsp,%rbp 2385f4: 48 83 ec 20 sub $0x20,%rsp 2385f8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 2385fc: 89 75 ec mov %esi,-0x14(%rbp) Object* removed = Vector_take(this, idx); 2385ff: 48 8b 7d f0 mov -0x10(%rbp),%rdi 238603: 8b 75 ec mov -0x14(%rbp),%esi 238606: e8 55 ff ff ff call 238560 23860b: 48 89 45 e0 mov %rax,-0x20(%rbp) if (this->owner) { 23860f: 48 8b 45 f0 mov -0x10(%rbp),%rax 238613: f6 40 1c 01 testb $0x1,0x1c(%rax) 238617: 0f 84 1e 00 00 00 je 23863b Object_delete(removed); 23861d: 48 8b 45 e0 mov -0x20(%rbp),%rax 238621: 48 8b 00 mov (%rax),%rax 238624: 48 8b 40 10 mov 0x10(%rax),%rax 238628: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23862c: ff d0 call *%rax return NULL; 23862e: 48 c7 45 f8 00 00 00 00 movq $0x0,-0x8(%rbp) 238636: e9 08 00 00 00 jmp 238643 } else { return removed; 23863b: 48 8b 45 e0 mov -0x20(%rbp),%rax 23863f: 48 89 45 f8 mov %rax,-0x8(%rbp) } } 238643: 48 8b 45 f8 mov -0x8(%rbp),%rax 238647: 48 83 c4 20 add $0x20,%rsp 23864b: 5d pop %rbp 23864c: c3 ret 23864d: 0f 1f 00 nopl (%rax) 0000000000238650 : void Vector_moveUp(Vector* this, int idx) { 238650: 55 push %rbp 238651: 48 89 e5 mov %rsp,%rbp 238654: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238658: 89 75 f4 mov %esi,-0xc(%rbp) assert(idx >= 0 && idx < this->items); assert(Vector_isConsistent(this)); if (idx == 0) 23865b: 83 7d f4 00 cmpl $0x0,-0xc(%rbp) 23865f: 0f 85 05 00 00 00 jne 23866a return; 238665: e9 4e 00 00 00 jmp 2386b8 Object* temp = this->array[idx]; 23866a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23866e: 48 8b 00 mov (%rax),%rax 238671: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238675: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238679: 48 89 45 e8 mov %rax,-0x18(%rbp) this->array[idx] = this->array[idx - 1]; 23867d: 48 8b 45 f8 mov -0x8(%rbp),%rax 238681: 48 8b 00 mov (%rax),%rax 238684: 8b 4d f4 mov -0xc(%rbp),%ecx 238687: 83 e9 01 sub $0x1,%ecx 23868a: 48 63 c9 movslq %ecx,%rcx 23868d: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 238691: 48 8b 45 f8 mov -0x8(%rbp),%rax 238695: 48 8b 00 mov (%rax),%rax 238698: 48 63 4d f4 movslq -0xc(%rbp),%rcx 23869c: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->array[idx - 1] = temp; 2386a0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2386a4: 48 8b 45 f8 mov -0x8(%rbp),%rax 2386a8: 48 8b 00 mov (%rax),%rax 2386ab: 8b 4d f4 mov -0xc(%rbp),%ecx 2386ae: 83 e9 01 sub $0x1,%ecx 2386b1: 48 63 c9 movslq %ecx,%rcx 2386b4: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) } 2386b8: 5d pop %rbp 2386b9: c3 ret 2386ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002386c0 : void Vector_moveDown(Vector* this, int idx) { 2386c0: 55 push %rbp 2386c1: 48 89 e5 mov %rsp,%rbp 2386c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2386c8: 89 75 f4 mov %esi,-0xc(%rbp) assert(idx >= 0 && idx < this->items); assert(Vector_isConsistent(this)); if (idx == this->items - 1) 2386cb: 8b 45 f4 mov -0xc(%rbp),%eax 2386ce: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2386d2: 8b 49 18 mov 0x18(%rcx),%ecx 2386d5: 83 e9 01 sub $0x1,%ecx 2386d8: 39 c8 cmp %ecx,%eax 2386da: 0f 85 05 00 00 00 jne 2386e5 return; 2386e0: e9 4e 00 00 00 jmp 238733 Object* temp = this->array[idx]; 2386e5: 48 8b 45 f8 mov -0x8(%rbp),%rax 2386e9: 48 8b 00 mov (%rax),%rax 2386ec: 48 63 4d f4 movslq -0xc(%rbp),%rcx 2386f0: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 2386f4: 48 89 45 e8 mov %rax,-0x18(%rbp) this->array[idx] = this->array[idx + 1]; 2386f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2386fc: 48 8b 00 mov (%rax),%rax 2386ff: 8b 4d f4 mov -0xc(%rbp),%ecx 238702: 83 c1 01 add $0x1,%ecx 238705: 48 63 c9 movslq %ecx,%rcx 238708: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 23870c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238710: 48 8b 00 mov (%rax),%rax 238713: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238717: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) this->array[idx + 1] = temp; 23871b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23871f: 48 8b 45 f8 mov -0x8(%rbp),%rax 238723: 48 8b 00 mov (%rax),%rax 238726: 8b 4d f4 mov -0xc(%rbp),%ecx 238729: 83 c1 01 add $0x1,%ecx 23872c: 48 63 c9 movslq %ecx,%rcx 23872f: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) } 238733: 5d pop %rbp 238734: c3 ret 238735: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23873f: 90 nop 0000000000238740 : void Vector_set(Vector* this, int idx, void* data_) { 238740: 55 push %rbp 238741: 48 89 e5 mov %rsp,%rbp 238744: 48 83 ec 30 sub $0x30,%rsp 238748: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23874c: 89 75 f4 mov %esi,-0xc(%rbp) 23874f: 48 89 55 e8 mov %rdx,-0x18(%rbp) Object* data = data_; 238753: 48 8b 45 e8 mov -0x18(%rbp),%rax 238757: 48 89 45 e0 mov %rax,-0x20(%rbp) assert(idx >= 0); assert(Object_isA(data, this->type)); assert(Vector_isConsistent(this)); Vector_checkArraySize(this); 23875b: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23875f: e8 9c fd ff ff call 238500 if (idx >= this->items) { 238764: 8b 45 f4 mov -0xc(%rbp),%eax 238767: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23876b: 3b 41 18 cmp 0x18(%rcx),%eax 23876e: 0f 8c 12 00 00 00 jl 238786 this->items = idx + 1; 238774: 8b 4d f4 mov -0xc(%rbp),%ecx 238777: 83 c1 01 add $0x1,%ecx 23877a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23877e: 89 48 18 mov %ecx,0x18(%rax) } else { 238781: e9 37 00 00 00 jmp 2387bd if (this->owner) { 238786: 48 8b 45 f8 mov -0x8(%rbp),%rax 23878a: f6 40 1c 01 testb $0x1,0x1c(%rax) 23878e: 0f 84 24 00 00 00 je 2387b8 Object* removed = this->array[idx]; 238794: 48 8b 45 f8 mov -0x8(%rbp),%rax 238798: 48 8b 00 mov (%rax),%rax 23879b: 48 63 4d f4 movslq -0xc(%rbp),%rcx 23879f: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 2387a3: 48 89 45 d8 mov %rax,-0x28(%rbp) assert (removed != NULL); Object_delete(removed); 2387a7: 48 8b 45 d8 mov -0x28(%rbp),%rax 2387ab: 48 8b 00 mov (%rax),%rax 2387ae: 48 8b 40 10 mov 0x10(%rax),%rax 2387b2: 48 8b 7d d8 mov -0x28(%rbp),%rdi 2387b6: ff d0 call *%rax 2387b8: e9 00 00 00 00 jmp 2387bd } } this->array[idx] = data; 2387bd: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2387c1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2387c5: 48 8b 00 mov (%rax),%rax 2387c8: 48 63 4d f4 movslq -0xc(%rbp),%rcx 2387cc: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) assert(Vector_isConsistent(this)); } 2387d0: 48 83 c4 30 add $0x30,%rsp 2387d4: 5d pop %rbp 2387d5: c3 ret 2387d6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 00000000002387e0 : assert(Vector_isConsistent(this)); } */ void Vector_add(Vector* this, void* data_) { 2387e0: 55 push %rbp 2387e1: 48 89 e5 mov %rsp,%rbp 2387e4: 48 83 ec 20 sub $0x20,%rsp 2387e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2387ec: 48 89 75 f0 mov %rsi,-0x10(%rbp) Object* data = data_; 2387f0: 48 8b 45 f0 mov -0x10(%rbp),%rax 2387f4: 48 89 45 e8 mov %rax,-0x18(%rbp) assert(Object_isA(data, this->type)); assert(Vector_isConsistent(this)); int i = this->items; 2387f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 2387fc: 8b 40 18 mov 0x18(%rax),%eax 2387ff: 89 45 e4 mov %eax,-0x1c(%rbp) Vector_set(this, this->items, data); 238802: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238806: 48 8b 45 f8 mov -0x8(%rbp),%rax 23880a: 8b 70 18 mov 0x18(%rax),%esi 23880d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 238811: e8 2a ff ff ff call 238740 assert(this->items == i + 1); (void)(i); assert(Vector_isConsistent(this)); } 238816: 48 83 c4 20 add $0x20,%rsp 23881a: 5d pop %rbp 23881b: c3 ret 23881c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238820 : int Vector_indexOf(const Vector* this, const void* search_, Object_Compare compare) { 238820: 55 push %rbp 238821: 48 89 e5 mov %rsp,%rbp 238824: 48 83 ec 40 sub $0x40,%rsp 238828: 48 89 7d f0 mov %rdi,-0x10(%rbp) 23882c: 48 89 75 e8 mov %rsi,-0x18(%rbp) 238830: 48 89 55 e0 mov %rdx,-0x20(%rbp) const Object* search = search_; 238834: 48 8b 45 e8 mov -0x18(%rbp),%rax 238838: 48 89 45 d8 mov %rax,-0x28(%rbp) assert(Object_isA(search, this->type)); assert(compare); assert(Vector_isConsistent(this)); for (int i = 0; i < this->items; i++) { 23883c: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 238843: 8b 45 d4 mov -0x2c(%rbp),%eax 238846: 48 8b 4d f0 mov -0x10(%rbp),%rcx 23884a: 3b 41 18 cmp 0x18(%rcx),%eax 23884d: 0f 8d 48 00 00 00 jge 23889b const Object* o = this->array[i]; 238853: 48 8b 45 f0 mov -0x10(%rbp),%rax 238857: 48 8b 00 mov (%rax),%rax 23885a: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 23885e: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238862: 48 89 45 c8 mov %rax,-0x38(%rbp) assert(o); if (compare(search, o) == 0) { 238866: 48 8b 45 e0 mov -0x20(%rbp),%rax 23886a: 48 8b 7d d8 mov -0x28(%rbp),%rdi 23886e: 48 8b 75 c8 mov -0x38(%rbp),%rsi 238872: ff d0 call *%rax 238874: 83 f8 00 cmp $0x0,%eax 238877: 0f 85 0b 00 00 00 jne 238888 return i; 23887d: 8b 45 d4 mov -0x2c(%rbp),%eax 238880: 89 45 fc mov %eax,-0x4(%rbp) 238883: e9 1a 00 00 00 jmp 2388a2 } } 238888: e9 00 00 00 00 jmp 23888d for (int i = 0; i < this->items; i++) { 23888d: 8b 45 d4 mov -0x2c(%rbp),%eax 238890: 83 c0 01 add $0x1,%eax 238893: 89 45 d4 mov %eax,-0x2c(%rbp) 238896: e9 a8 ff ff ff jmp 238843 return -1; 23889b: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } 2388a2: 8b 45 fc mov -0x4(%rbp),%eax 2388a5: 48 83 c4 40 add $0x40,%rsp 2388a9: 5d pop %rbp 2388aa: c3 ret 2388ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000002388b0 : void Vector_splice(Vector* this, Vector* from) { 2388b0: 55 push %rbp 2388b1: 48 89 e5 mov %rsp,%rbp 2388b4: 48 83 ec 20 sub $0x20,%rsp 2388b8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2388bc: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(Vector_isConsistent(this)); assert(Vector_isConsistent(from)); assert(!(this->owner && from->owner)); int olditems = this->items; 2388c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 2388c4: 8b 40 18 mov 0x18(%rax),%eax 2388c7: 89 45 ec mov %eax,-0x14(%rbp) this->items += from->items; 2388ca: 48 8b 45 f0 mov -0x10(%rbp),%rax 2388ce: 8b 48 18 mov 0x18(%rax),%ecx 2388d1: 48 8b 45 f8 mov -0x8(%rbp),%rax 2388d5: 03 48 18 add 0x18(%rax),%ecx 2388d8: 89 48 18 mov %ecx,0x18(%rax) Vector_checkArraySize(this); 2388db: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2388df: e8 1c fc ff ff call 238500 for (int j = 0; j < from->items; j++) { 2388e4: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) 2388eb: 8b 45 e8 mov -0x18(%rbp),%eax 2388ee: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2388f2: 3b 41 18 cmp 0x18(%rcx),%eax 2388f5: 0f 8d 31 00 00 00 jge 23892c this->array[olditems + j] = from->array[j]; 2388fb: 48 8b 45 f0 mov -0x10(%rbp),%rax 2388ff: 48 8b 00 mov (%rax),%rax 238902: 48 63 4d e8 movslq -0x18(%rbp),%rcx 238906: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 23890a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23890e: 48 8b 00 mov (%rax),%rax 238911: 8b 4d ec mov -0x14(%rbp),%ecx 238914: 03 4d e8 add -0x18(%rbp),%ecx 238917: 48 63 c9 movslq %ecx,%rcx 23891a: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) for (int j = 0; j < from->items; j++) { 23891e: 8b 45 e8 mov -0x18(%rbp),%eax 238921: 83 c0 01 add $0x1,%eax 238924: 89 45 e8 mov %eax,-0x18(%rbp) 238927: e9 bf ff ff ff jmp 2388eb } } 23892c: 48 83 c4 20 add $0x20,%rsp 238930: 5d pop %rbp 238931: c3 ret 238932: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23893c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238940 : static int partition(Object** array, int left, int right, int pivotIndex, Object_Compare compare) { 238940: 55 push %rbp 238941: 48 89 e5 mov %rsp,%rbp 238944: 48 83 ec 30 sub $0x30,%rsp 238948: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23894c: 89 75 f4 mov %esi,-0xc(%rbp) 23894f: 89 55 f0 mov %edx,-0x10(%rbp) 238952: 89 4d ec mov %ecx,-0x14(%rbp) 238955: 4c 89 45 e0 mov %r8,-0x20(%rbp) const Object* pivotValue = array[pivotIndex]; 238959: 48 8b 45 f8 mov -0x8(%rbp),%rax 23895d: 48 63 4d ec movslq -0x14(%rbp),%rcx 238961: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238965: 48 89 45 d8 mov %rax,-0x28(%rbp) swap(array, pivotIndex, right); 238969: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23896d: 8b 75 ec mov -0x14(%rbp),%esi 238970: 8b 55 f0 mov -0x10(%rbp),%edx 238973: e8 88 00 00 00 call 238a00 int storeIndex = left; 238978: 8b 45 f4 mov -0xc(%rbp),%eax 23897b: 89 45 d4 mov %eax,-0x2c(%rbp) for (int i = left; i < right; i++) { 23897e: 8b 45 f4 mov -0xc(%rbp),%eax 238981: 89 45 d0 mov %eax,-0x30(%rbp) 238984: 8b 45 d0 mov -0x30(%rbp),%eax 238987: 3b 45 f0 cmp -0x10(%rbp),%eax 23898a: 0f 8d 4a 00 00 00 jge 2389da if (compare(array[i], pivotValue) <= 0) { 238990: 48 8b 45 e0 mov -0x20(%rbp),%rax 238994: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238998: 48 63 55 d0 movslq -0x30(%rbp),%rdx 23899c: 48 8b 3c d1 mov (%rcx,%rdx,8),%rdi 2389a0: 48 8b 75 d8 mov -0x28(%rbp),%rsi 2389a4: ff d0 call *%rax 2389a6: 83 f8 00 cmp $0x0,%eax 2389a9: 0f 8f 18 00 00 00 jg 2389c7 swap(array, i, storeIndex); 2389af: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2389b3: 8b 75 d0 mov -0x30(%rbp),%esi 2389b6: 8b 55 d4 mov -0x2c(%rbp),%edx 2389b9: e8 42 00 00 00 call 238a00 storeIndex++; 2389be: 8b 45 d4 mov -0x2c(%rbp),%eax 2389c1: 83 c0 01 add $0x1,%eax 2389c4: 89 45 d4 mov %eax,-0x2c(%rbp) } 2389c7: e9 00 00 00 00 jmp 2389cc for (int i = left; i < right; i++) { 2389cc: 8b 45 d0 mov -0x30(%rbp),%eax 2389cf: 83 c0 01 add $0x1,%eax 2389d2: 89 45 d0 mov %eax,-0x30(%rbp) 2389d5: e9 aa ff ff ff jmp 238984 swap(array, storeIndex, right); 2389da: 48 8b 7d f8 mov -0x8(%rbp),%rdi 2389de: 8b 75 d4 mov -0x2c(%rbp),%esi 2389e1: 8b 55 f0 mov -0x10(%rbp),%edx 2389e4: e8 17 00 00 00 call 238a00 return storeIndex; 2389e9: 8b 45 d4 mov -0x2c(%rbp),%eax 2389ec: 48 83 c4 30 add $0x30,%rsp 2389f0: 5d pop %rbp 2389f1: c3 ret 2389f2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2389fc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238a00 : static void swap(Object** array, int indexA, int indexB) { 238a00: 55 push %rbp 238a01: 48 89 e5 mov %rsp,%rbp 238a04: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238a08: 89 75 f4 mov %esi,-0xc(%rbp) 238a0b: 89 55 f0 mov %edx,-0x10(%rbp) Object* tmp = array[indexA]; 238a0e: 48 8b 45 f8 mov -0x8(%rbp),%rax 238a12: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238a16: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 238a1a: 48 89 45 e8 mov %rax,-0x18(%rbp) array[indexA] = array[indexB]; 238a1e: 48 8b 45 f8 mov -0x8(%rbp),%rax 238a22: 48 63 4d f0 movslq -0x10(%rbp),%rcx 238a26: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 238a2a: 48 8b 45 f8 mov -0x8(%rbp),%rax 238a2e: 48 63 4d f4 movslq -0xc(%rbp),%rcx 238a32: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) array[indexB] = tmp; 238a36: 48 8b 55 e8 mov -0x18(%rbp),%rdx 238a3a: 48 8b 45 f8 mov -0x8(%rbp),%rax 238a3e: 48 63 4d f0 movslq -0x10(%rbp),%rcx 238a42: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) } 238a46: 5d pop %rbp 238a47: c3 ret 238a48: cc int3 238a49: cc int3 238a4a: cc int3 238a4b: cc int3 238a4c: cc int3 238a4d: cc int3 238a4e: cc int3 238a4f: cc int3 0000000000238a50 : #include #include "CRT.h" void fail() { 238a50: 55 push %rbp 238a51: 48 89 e5 mov %rsp,%rbp CRT_done(); 238a54: e8 c7 3b fe ff call 21c620 abort(); 238a59: e8 a2 5c 00 00 call 23e700 238a5e: 66 90 xchg %ax,%ax 0000000000238a60 : _exit(1); // Should never reach here } void* xMalloc(size_t size) { 238a60: 55 push %rbp 238a61: 48 89 e5 mov %rsp,%rbp 238a64: 48 83 ec 10 sub $0x10,%rsp 238a68: 48 89 7d f8 mov %rdi,-0x8(%rbp) assert(size > 0); void* data = malloc(size); 238a6c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238a70: e8 4b 5e 00 00 call 23e8c0 238a75: 48 89 45 f0 mov %rax,-0x10(%rbp) if (!data) { 238a79: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 238a7e: 0f 85 05 00 00 00 jne 238a89 fail(); 238a84: e8 c7 ff ff ff call 238a50 } return data; 238a89: 48 8b 45 f0 mov -0x10(%rbp),%rax 238a8d: 48 83 c4 10 add $0x10,%rsp 238a91: 5d pop %rbp 238a92: c3 ret 238a93: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 238a9d: 0f 1f 00 nopl (%rax) 0000000000238aa0 : } void* xMallocArray(size_t nmemb, size_t size) { 238aa0: 55 push %rbp 238aa1: 48 89 e5 mov %rsp,%rbp 238aa4: 48 83 ec 10 sub $0x10,%rsp 238aa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238aac: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(nmemb > 0); assert(size > 0); if (SIZE_MAX / nmemb < size) { 238ab0: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 238ab7: 31 c9 xor %ecx,%ecx 238ab9: 89 ca mov %ecx,%edx 238abb: 48 f7 75 f8 divq -0x8(%rbp) 238abf: 48 3b 45 f0 cmp -0x10(%rbp),%rax 238ac3: 0f 83 05 00 00 00 jae 238ace fail(); 238ac9: e8 82 ff ff ff call 238a50 } return xMalloc(nmemb * size); 238ace: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238ad2: 48 0f af 7d f0 imul -0x10(%rbp),%rdi 238ad7: e8 84 ff ff ff call 238a60 238adc: 48 83 c4 10 add $0x10,%rsp 238ae0: 5d pop %rbp 238ae1: c3 ret 238ae2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 238aec: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238af0 : } void* xCalloc(size_t nmemb, size_t size) { 238af0: 55 push %rbp 238af1: 48 89 e5 mov %rsp,%rbp 238af4: 48 83 ec 20 sub $0x20,%rsp 238af8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238afc: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(nmemb > 0); assert(size > 0); if (SIZE_MAX / nmemb < size) { 238b00: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 238b07: 31 c9 xor %ecx,%ecx 238b09: 89 ca mov %ecx,%edx 238b0b: 48 f7 75 f8 divq -0x8(%rbp) 238b0f: 48 3b 45 f0 cmp -0x10(%rbp),%rax 238b13: 0f 83 05 00 00 00 jae 238b1e fail(); 238b19: e8 32 ff ff ff call 238a50 } void* data = calloc(nmemb, size); 238b1e: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238b22: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238b26: e8 a5 5d 00 00 call 23e8d0 238b2b: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!data) { 238b2f: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 238b34: 0f 85 05 00 00 00 jne 238b3f fail(); 238b3a: e8 11 ff ff ff call 238a50 } return data; 238b3f: 48 8b 45 e8 mov -0x18(%rbp),%rax 238b43: 48 83 c4 20 add $0x20,%rsp 238b47: 5d pop %rbp 238b48: c3 ret 238b49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 0000000000238b50 : } void* xRealloc(void* ptr, size_t size) { 238b50: 55 push %rbp 238b51: 48 89 e5 mov %rsp,%rbp 238b54: 48 83 ec 20 sub $0x20,%rsp 238b58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238b5c: 48 89 75 f0 mov %rsi,-0x10(%rbp) assert(size > 0); void* data = realloc(ptr, size); // deepcode ignore MemoryLeakOnRealloc: this goes to fail() 238b60: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238b64: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238b68: e8 73 5d 00 00 call 23e8e0 238b6d: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!data) { 238b71: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 238b76: 0f 85 0e 00 00 00 jne 238b8a free(ptr); 238b7c: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238b80: e8 db 55 00 00 call 23e160 fail(); 238b85: e8 c6 fe ff ff call 238a50 } return data; 238b8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 238b8e: 48 83 c4 20 add $0x20,%rsp 238b92: 5d pop %rbp 238b93: c3 ret 238b94: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 238b9e: 66 90 xchg %ax,%ax 0000000000238ba0 : } void* xReallocArray(void* ptr, size_t nmemb, size_t size) { 238ba0: 55 push %rbp 238ba1: 48 89 e5 mov %rsp,%rbp 238ba4: 48 83 ec 20 sub $0x20,%rsp 238ba8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238bac: 48 89 75 f0 mov %rsi,-0x10(%rbp) 238bb0: 48 89 55 e8 mov %rdx,-0x18(%rbp) assert(nmemb > 0); assert(size > 0); if (SIZE_MAX / nmemb < size) { 238bb4: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 238bbb: 31 c9 xor %ecx,%ecx 238bbd: 89 ca mov %ecx,%edx 238bbf: 48 f7 75 f0 divq -0x10(%rbp) 238bc3: 48 3b 45 e8 cmp -0x18(%rbp),%rax 238bc7: 0f 83 05 00 00 00 jae 238bd2 fail(); 238bcd: e8 7e fe ff ff call 238a50 } return xRealloc(ptr, nmemb * size); 238bd2: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238bd6: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238bda: 48 0f af 75 e8 imul -0x18(%rbp),%rsi 238bdf: e8 6c ff ff ff call 238b50 238be4: 48 83 c4 20 add $0x20,%rsp 238be8: 5d pop %rbp 238be9: c3 ret 238bea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000238bf0 : } void* xReallocArrayZero(void* ptr, size_t prevmemb, size_t newmemb, size_t size) { 238bf0: 55 push %rbp 238bf1: 48 89 e5 mov %rsp,%rbp 238bf4: 48 83 ec 30 sub $0x30,%rsp 238bf8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 238bfc: 48 89 75 e8 mov %rsi,-0x18(%rbp) 238c00: 48 89 55 e0 mov %rdx,-0x20(%rbp) 238c04: 48 89 4d d8 mov %rcx,-0x28(%rbp) assert((ptr == NULL) == (prevmemb == 0)); if (prevmemb == newmemb) { 238c08: 48 8b 45 e8 mov -0x18(%rbp),%rax 238c0c: 48 3b 45 e0 cmp -0x20(%rbp),%rax 238c10: 0f 85 0d 00 00 00 jne 238c23 return ptr; 238c16: 48 8b 45 f0 mov -0x10(%rbp),%rax 238c1a: 48 89 45 f8 mov %rax,-0x8(%rbp) 238c1e: e9 4f 00 00 00 jmp 238c72 } void* ret = xReallocArray(ptr, newmemb, size); 238c23: 48 8b 7d f0 mov -0x10(%rbp),%rdi 238c27: 48 8b 75 e0 mov -0x20(%rbp),%rsi 238c2b: 48 8b 55 d8 mov -0x28(%rbp),%rdx 238c2f: e8 6c ff ff ff call 238ba0 238c34: 48 89 45 d0 mov %rax,-0x30(%rbp) if (newmemb > prevmemb) { 238c38: 48 8b 45 e0 mov -0x20(%rbp),%rax 238c3c: 48 3b 45 e8 cmp -0x18(%rbp),%rax 238c40: 0f 86 24 00 00 00 jbe 238c6a memset((unsigned char*)ret + prevmemb * size, '\0', (newmemb - prevmemb) * size); 238c46: 48 8b 7d d0 mov -0x30(%rbp),%rdi 238c4a: 48 8b 45 e8 mov -0x18(%rbp),%rax 238c4e: 48 0f af 45 d8 imul -0x28(%rbp),%rax 238c53: 48 01 c7 add %rax,%rdi 238c56: 48 8b 55 e0 mov -0x20(%rbp),%rdx 238c5a: 48 2b 55 e8 sub -0x18(%rbp),%rdx 238c5e: 48 0f af 55 d8 imul -0x28(%rbp),%rdx 238c63: 31 f6 xor %esi,%esi 238c65: e8 d6 55 00 00 call 23e240 } return ret; 238c6a: 48 8b 45 d0 mov -0x30(%rbp),%rax 238c6e: 48 89 45 f8 mov %rax,-0x8(%rbp) } 238c72: 48 8b 45 f8 mov -0x8(%rbp),%rax 238c76: 48 83 c4 30 add $0x30,%rsp 238c7a: 5d pop %rbp 238c7b: c3 ret 238c7c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238c80 : inline bool String_contains_i(const char* s1, const char* s2) { 238c80: 55 push %rbp 238c81: 48 89 e5 mov %rsp,%rbp 238c84: 48 83 ec 10 sub $0x10,%rsp 238c88: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238c8c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcasestr(s1, s2) != NULL; 238c90: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238c94: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238c98: e8 53 5c 00 00 call 23e8f0 238c9d: 48 83 f8 00 cmp $0x0,%rax 238ca1: 0f 95 c0 setne %al 238ca4: 24 01 and $0x1,%al 238ca6: 0f b6 c0 movzbl %al,%eax 238ca9: 48 83 c4 10 add $0x10,%rsp 238cad: 5d pop %rbp 238cae: c3 ret 238caf: 90 nop 0000000000238cb0 : } char* String_cat(const char* s1, const char* s2) { 238cb0: 55 push %rbp 238cb1: 48 89 e5 mov %rsp,%rbp 238cb4: 48 83 ec 30 sub $0x30,%rsp 238cb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238cbc: 48 89 75 f0 mov %rsi,-0x10(%rbp) const size_t l1 = strlen(s1); 238cc0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238cc4: e8 27 55 00 00 call 23e1f0 238cc9: 48 89 45 e8 mov %rax,-0x18(%rbp) const size_t l2 = strlen(s2); 238ccd: 48 8b 7d f0 mov -0x10(%rbp),%rdi 238cd1: e8 1a 55 00 00 call 23e1f0 238cd6: 48 89 45 e0 mov %rax,-0x20(%rbp) char* out = xMalloc(l1 + l2 + 1); 238cda: 48 8b 7d e8 mov -0x18(%rbp),%rdi 238cde: 48 03 7d e0 add -0x20(%rbp),%rdi 238ce2: 48 83 c7 01 add $0x1,%rdi 238ce6: e8 75 fd ff ff call 238a60 238ceb: 48 89 45 d8 mov %rax,-0x28(%rbp) memcpy(out, s1, l1); 238cef: 48 8b 7d d8 mov -0x28(%rbp),%rdi 238cf3: 48 8b 75 f8 mov -0x8(%rbp),%rsi 238cf7: 48 8b 55 e8 mov -0x18(%rbp),%rdx 238cfb: e8 90 55 00 00 call 23e290 memcpy(out + l1, s2, l2); 238d00: 48 8b 7d d8 mov -0x28(%rbp),%rdi 238d04: 48 03 7d e8 add -0x18(%rbp),%rdi 238d08: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238d0c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 238d10: e8 7b 55 00 00 call 23e290 out[l1 + l2] = '\0'; 238d15: 48 8b 45 d8 mov -0x28(%rbp),%rax 238d19: 48 8b 4d e8 mov -0x18(%rbp),%rcx 238d1d: 48 03 4d e0 add -0x20(%rbp),%rcx 238d21: c6 04 08 00 movb $0x0,(%rax,%rcx,1) return out; 238d25: 48 8b 45 d8 mov -0x28(%rbp),%rax 238d29: 48 83 c4 30 add $0x30,%rsp 238d2d: 5d pop %rbp 238d2e: c3 ret 238d2f: 90 nop 0000000000238d30 : } char* String_trim(const char* in) { 238d30: 55 push %rbp 238d31: 48 89 e5 mov %rsp,%rbp 238d34: 48 83 ec 20 sub $0x20,%rsp 238d38: 48 89 7d f8 mov %rdi,-0x8(%rbp) while (in[0] == ' ' || in[0] == '\t' || in[0] == '\n') { 238d3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 238d40: 0f be 08 movsbl (%rax),%ecx 238d43: b0 01 mov $0x1,%al 238d45: 83 f9 20 cmp $0x20,%ecx 238d48: 88 45 ef mov %al,-0x11(%rbp) 238d4b: 0f 84 25 00 00 00 je 238d76 238d51: 48 8b 45 f8 mov -0x8(%rbp),%rax 238d55: 0f be 08 movsbl (%rax),%ecx 238d58: b0 01 mov $0x1,%al 238d5a: 83 f9 09 cmp $0x9,%ecx 238d5d: 88 45 ef mov %al,-0x11(%rbp) 238d60: 0f 84 10 00 00 00 je 238d76 238d66: 48 8b 45 f8 mov -0x8(%rbp),%rax 238d6a: 0f be 00 movsbl (%rax),%eax 238d6d: 83 f8 0a cmp $0xa,%eax 238d70: 0f 94 c0 sete %al 238d73: 88 45 ef mov %al,-0x11(%rbp) 238d76: 8a 45 ef mov -0x11(%rbp),%al 238d79: a8 01 test $0x1,%al 238d7b: 0f 85 05 00 00 00 jne 238d86 238d81: e9 11 00 00 00 jmp 238d97 in++; 238d86: 48 8b 45 f8 mov -0x8(%rbp),%rax 238d8a: 48 83 c0 01 add $0x1,%rax 238d8e: 48 89 45 f8 mov %rax,-0x8(%rbp) while (in[0] == ' ' || in[0] == '\t' || in[0] == '\n') { 238d92: e9 a5 ff ff ff jmp 238d3c } size_t len = strlen(in); 238d97: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238d9b: e8 50 54 00 00 call 23e1f0 238da0: 48 89 45 f0 mov %rax,-0x10(%rbp) while (len > 0 && (in[len - 1] == ' ' || in[len - 1] == '\t' || in[len - 1] == '\n')) { 238da4: 31 c0 xor %eax,%eax 238da6: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 238dab: 88 45 ee mov %al,-0x12(%rbp) 238dae: 0f 86 5b 00 00 00 jbe 238e0f 238db4: 48 8b 45 f8 mov -0x8(%rbp),%rax 238db8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 238dbc: 48 83 e9 01 sub $0x1,%rcx 238dc0: 0f be 0c 08 movsbl (%rax,%rcx,1),%ecx 238dc4: b0 01 mov $0x1,%al 238dc6: 83 f9 20 cmp $0x20,%ecx 238dc9: 88 45 ed mov %al,-0x13(%rbp) 238dcc: 0f 84 37 00 00 00 je 238e09 238dd2: 48 8b 45 f8 mov -0x8(%rbp),%rax 238dd6: 48 8b 4d f0 mov -0x10(%rbp),%rcx 238dda: 48 83 e9 01 sub $0x1,%rcx 238dde: 0f be 0c 08 movsbl (%rax,%rcx,1),%ecx 238de2: b0 01 mov $0x1,%al 238de4: 83 f9 09 cmp $0x9,%ecx 238de7: 88 45 ed mov %al,-0x13(%rbp) 238dea: 0f 84 19 00 00 00 je 238e09 238df0: 48 8b 45 f8 mov -0x8(%rbp),%rax 238df4: 48 8b 4d f0 mov -0x10(%rbp),%rcx 238df8: 48 83 e9 01 sub $0x1,%rcx 238dfc: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 238e00: 83 f8 0a cmp $0xa,%eax 238e03: 0f 94 c0 sete %al 238e06: 88 45 ed mov %al,-0x13(%rbp) 238e09: 8a 45 ed mov -0x13(%rbp),%al 238e0c: 88 45 ee mov %al,-0x12(%rbp) 238e0f: 8a 45 ee mov -0x12(%rbp),%al 238e12: a8 01 test $0x1,%al 238e14: 0f 85 05 00 00 00 jne 238e1f 238e1a: e9 11 00 00 00 jmp 238e30 len--; 238e1f: 48 8b 45 f0 mov -0x10(%rbp),%rax 238e23: 48 83 c0 ff add $0xffffffffffffffff,%rax 238e27: 48 89 45 f0 mov %rax,-0x10(%rbp) while (len > 0 && (in[len - 1] == ' ' || in[len - 1] == '\t' || in[len - 1] == '\n')) { 238e2b: e9 74 ff ff ff jmp 238da4 } return xStrndup(in, len); 238e30: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238e34: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238e38: e8 13 00 00 00 call 238e50 238e3d: 48 83 c4 20 add $0x20,%rsp 238e41: 5d pop %rbp 238e42: c3 ret 238e43: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 238e4d: 0f 1f 00 nopl (%rax) 0000000000238e50 : free(*ptr); *ptr = xStrdup(str); } char* xStrndup(const char* str, size_t len) { 238e50: 55 push %rbp 238e51: 48 89 e5 mov %rsp,%rbp 238e54: 48 83 ec 20 sub $0x20,%rsp 238e58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238e5c: 48 89 75 f0 mov %rsi,-0x10(%rbp) char* data = strndup(str, len); 238e60: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238e64: 48 8b 75 f0 mov -0x10(%rbp),%rsi 238e68: e8 93 5a 00 00 call 23e900 238e6d: 48 89 45 e8 mov %rax,-0x18(%rbp) if (!data) { 238e71: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 238e76: 0f 85 05 00 00 00 jne 238e81 fail(); 238e7c: e8 cf fb ff ff call 238a50 } return data; 238e81: 48 8b 45 e8 mov -0x18(%rbp),%rax 238e85: 48 83 c4 20 add $0x20,%rsp 238e89: 5d pop %rbp 238e8a: c3 ret 238e8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000238e90 : char** String_split(const char* s, char sep, size_t* n) { 238e90: 55 push %rbp 238e91: 48 89 e5 mov %rsp,%rbp 238e94: 48 83 ec 50 sub $0x50,%rsp 238e98: 40 88 f0 mov %sil,%al 238e9b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 238e9f: 88 45 f7 mov %al,-0x9(%rbp) 238ea2: 48 89 55 e8 mov %rdx,-0x18(%rbp) const unsigned int rate = 10; 238ea6: c7 45 e4 0a 00 00 00 movl $0xa,-0x1c(%rbp) char** out = xCalloc(rate, sizeof(char*)); 238ead: bf 0a 00 00 00 mov $0xa,%edi 238eb2: be 08 00 00 00 mov $0x8,%esi 238eb7: e8 34 fc ff ff call 238af0 238ebc: 48 89 45 d8 mov %rax,-0x28(%rbp) size_t ctr = 0; 238ec0: 48 c7 45 d0 00 00 00 00 movq $0x0,-0x30(%rbp) unsigned int blocks = rate; 238ec8: c7 45 cc 0a 00 00 00 movl $0xa,-0x34(%rbp) while ((where = strchr(s, sep)) != NULL) { 238ecf: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238ed3: 0f be 75 f7 movsbl -0x9(%rbp),%esi 238ed7: e8 f4 56 00 00 call 23e5d0 238edc: 48 89 45 c0 mov %rax,-0x40(%rbp) 238ee0: 48 83 f8 00 cmp $0x0,%rax 238ee4: 0f 84 7b 00 00 00 je 238f65 size_t size = (size_t)(where - s); 238eea: 48 8b 45 c0 mov -0x40(%rbp),%rax 238eee: 48 8b 4d f8 mov -0x8(%rbp),%rcx 238ef2: 48 29 c8 sub %rcx,%rax 238ef5: 48 89 45 b8 mov %rax,-0x48(%rbp) out[ctr] = xStrndup(s, size); 238ef9: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238efd: 48 8b 75 b8 mov -0x48(%rbp),%rsi 238f01: e8 4a ff ff ff call 238e50 238f06: 48 89 c2 mov %rax,%rdx 238f09: 48 8b 45 d8 mov -0x28(%rbp),%rax 238f0d: 48 8b 4d d0 mov -0x30(%rbp),%rcx 238f11: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) ctr++; 238f15: 48 8b 45 d0 mov -0x30(%rbp),%rax 238f19: 48 83 c0 01 add $0x1,%rax 238f1d: 48 89 45 d0 mov %rax,-0x30(%rbp) if (ctr == blocks) { 238f21: 48 8b 45 d0 mov -0x30(%rbp),%rax 238f25: 8b 4d cc mov -0x34(%rbp),%ecx 238f28: 48 39 c8 cmp %rcx,%rax 238f2b: 0f 85 1f 00 00 00 jne 238f50 blocks += rate; 238f31: 8b 45 cc mov -0x34(%rbp),%eax 238f34: 83 c0 0a add $0xa,%eax 238f37: 89 45 cc mov %eax,-0x34(%rbp) out = (char**) xRealloc(out, sizeof(char*) * blocks); 238f3a: 48 8b 7d d8 mov -0x28(%rbp),%rdi 238f3e: 8b 45 cc mov -0x34(%rbp),%eax 238f41: 89 c6 mov %eax,%esi 238f43: 48 c1 e6 03 shl $0x3,%rsi 238f47: e8 04 fc ff ff call 238b50 238f4c: 48 89 45 d8 mov %rax,-0x28(%rbp) s += size + 1; 238f50: 48 8b 45 b8 mov -0x48(%rbp),%rax 238f54: 48 83 c0 01 add $0x1,%rax 238f58: 48 03 45 f8 add -0x8(%rbp),%rax 238f5c: 48 89 45 f8 mov %rax,-0x8(%rbp) while ((where = strchr(s, sep)) != NULL) { 238f60: e9 6a ff ff ff jmp 238ecf if (s[0] != '\0') { 238f65: 48 8b 45 f8 mov -0x8(%rbp),%rax 238f69: 0f be 00 movsbl (%rax),%eax 238f6c: 83 f8 00 cmp $0x0,%eax 238f6f: 0f 84 24 00 00 00 je 238f99 out[ctr] = xStrdup(s); 238f75: 48 8b 7d f8 mov -0x8(%rbp),%rdi 238f79: e8 72 00 00 00 call 238ff0 238f7e: 48 89 c2 mov %rax,%rdx 238f81: 48 8b 45 d8 mov -0x28(%rbp),%rax 238f85: 48 8b 4d d0 mov -0x30(%rbp),%rcx 238f89: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) ctr++; 238f8d: 48 8b 45 d0 mov -0x30(%rbp),%rax 238f91: 48 83 c0 01 add $0x1,%rax 238f95: 48 89 45 d0 mov %rax,-0x30(%rbp) out = xRealloc(out, sizeof(char*) * (ctr + 1)); 238f99: 48 8b 7d d8 mov -0x28(%rbp),%rdi 238f9d: 48 8b 75 d0 mov -0x30(%rbp),%rsi 238fa1: 48 83 c6 01 add $0x1,%rsi 238fa5: 48 c1 e6 03 shl $0x3,%rsi 238fa9: e8 a2 fb ff ff call 238b50 238fae: 48 89 45 d8 mov %rax,-0x28(%rbp) out[ctr] = NULL; 238fb2: 48 8b 45 d8 mov -0x28(%rbp),%rax 238fb6: 48 8b 4d d0 mov -0x30(%rbp),%rcx 238fba: 48 c7 04 c8 00 00 00 00 movq $0x0,(%rax,%rcx,8) if (n) 238fc2: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 238fc7: 0f 84 0b 00 00 00 je 238fd8 *n = ctr; 238fcd: 48 8b 4d d0 mov -0x30(%rbp),%rcx 238fd1: 48 8b 45 e8 mov -0x18(%rbp),%rax 238fd5: 48 89 08 mov %rcx,(%rax) return out; 238fd8: 48 8b 45 d8 mov -0x28(%rbp),%rax 238fdc: 48 83 c4 50 add $0x50,%rsp 238fe0: 5d pop %rbp 238fe1: c3 ret 238fe2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 238fec: 0f 1f 40 00 nopl 0x0(%rax) 0000000000238ff0 : char* xStrdup(const char* str) { 238ff0: 55 push %rbp 238ff1: 48 89 e5 mov %rsp,%rbp 238ff4: 48 83 ec 10 sub $0x10,%rsp 238ff8: 48 89 7d f8 mov %rdi,-0x8(%rbp) char* data = strdup(str); 238ffc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 239000: e8 0b 59 00 00 call 23e910 239005: 48 89 45 f0 mov %rax,-0x10(%rbp) if (!data) { 239009: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 23900e: 0f 85 05 00 00 00 jne 239019 fail(); 239014: e8 37 fa ff ff call 238a50 return data; 239019: 48 8b 45 f0 mov -0x10(%rbp),%rax 23901d: 48 83 c4 10 add $0x10,%rsp 239021: 5d pop %rbp 239022: c3 ret 239023: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23902d: 0f 1f 00 nopl (%rax) 0000000000239030 : void String_freeArray(char** s) { 239030: 55 push %rbp 239031: 48 89 e5 mov %rsp,%rbp 239034: 48 83 ec 10 sub $0x10,%rsp 239038: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!s) { 23903c: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 239041: 0f 85 05 00 00 00 jne 23904c return; 239047: e9 46 00 00 00 jmp 239092 for (size_t i = 0; s[i] != NULL; i++) { 23904c: 48 c7 45 f0 00 00 00 00 movq $0x0,-0x10(%rbp) 239054: 48 8b 45 f8 mov -0x8(%rbp),%rax 239058: 48 8b 4d f0 mov -0x10(%rbp),%rcx 23905c: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 239061: 0f 84 22 00 00 00 je 239089 free(s[i]); 239067: 48 8b 45 f8 mov -0x8(%rbp),%rax 23906b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 23906f: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 239073: e8 e8 50 00 00 call 23e160 for (size_t i = 0; s[i] != NULL; i++) { 239078: 48 8b 45 f0 mov -0x10(%rbp),%rax 23907c: 48 83 c0 01 add $0x1,%rax 239080: 48 89 45 f0 mov %rax,-0x10(%rbp) 239084: e9 cb ff ff ff jmp 239054 free(s); 239089: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23908d: e8 ce 50 00 00 call 23e160 } 239092: 48 83 c4 10 add $0x10,%rsp 239096: 5d pop %rbp 239097: c3 ret 239098: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002390a0 : char* String_getToken(const char* line, const unsigned short int numMatch) { 2390a0: 55 push %rbp 2390a1: 48 89 e5 mov %rsp,%rbp 2390a4: 48 81 ec 80 00 00 00 sub $0x80,%rsp 2390ab: 66 89 f0 mov %si,%ax 2390ae: 48 8b 0d 7b 97 00 00 mov 0x977b(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 2390b5: 48 89 4d f8 mov %rcx,-0x8(%rbp) 2390b9: 48 89 7d b8 mov %rdi,-0x48(%rbp) 2390bd: 66 89 45 b6 mov %ax,-0x4a(%rbp) const size_t len = strlen(line); 2390c1: 48 8b 7d b8 mov -0x48(%rbp),%rdi 2390c5: e8 26 51 00 00 call 23e1f0 2390ca: 48 89 45 a8 mov %rax,-0x58(%rbp) char inWord = 0; 2390ce: c6 45 a7 00 movb $0x0,-0x59(%rbp) unsigned short int count = 0; 2390d2: 66 c7 45 a4 00 00 movw $0x0,-0x5c(%rbp) size_t foundCount = 0; 2390d8: 48 c7 45 98 00 00 00 00 movq $0x0,-0x68(%rbp) for (size_t i = 0; i < len; i++) { 2390e0: 48 c7 45 90 00 00 00 00 movq $0x0,-0x70(%rbp) 2390e8: 48 8b 45 90 mov -0x70(%rbp),%rax 2390ec: 48 3b 45 a8 cmp -0x58(%rbp),%rax 2390f0: 0f 83 f3 00 00 00 jae 2391e9 char lastState = inWord; 2390f6: 8a 45 a7 mov -0x59(%rbp),%al 2390f9: 88 45 8f mov %al,-0x71(%rbp) inWord = line[i] == ' ' ? 0 : 1; 2390fc: 48 8b 45 b8 mov -0x48(%rbp),%rax 239100: 48 8b 4d 90 mov -0x70(%rbp),%rcx 239104: 0f be 14 08 movsbl (%rax,%rcx,1),%edx 239108: b8 01 00 00 00 mov $0x1,%eax 23910d: 31 c9 xor %ecx,%ecx 23910f: 83 fa 20 cmp $0x20,%edx 239112: 0f 44 c1 cmove %ecx,%eax 239115: 88 45 a7 mov %al,-0x59(%rbp) if (lastState == 0 && inWord == 1) 239118: 0f be 45 8f movsbl -0x71(%rbp),%eax 23911c: 83 f8 00 cmp $0x0,%eax 23911f: 0f 85 19 00 00 00 jne 23913e 239125: 0f be 45 a7 movsbl -0x59(%rbp),%eax 239129: 83 f8 01 cmp $0x1,%eax 23912c: 0f 85 0c 00 00 00 jne 23913e count++; 239132: 66 8b 45 a4 mov -0x5c(%rbp),%ax 239136: 66 83 c0 01 add $0x1,%ax 23913a: 66 89 45 a4 mov %ax,-0x5c(%rbp) if (inWord == 1) { 23913e: 0f be 45 a7 movsbl -0x59(%rbp),%eax 239142: 83 f8 01 cmp $0x1,%eax 239145: 0f 85 88 00 00 00 jne 2391d3 if (count == numMatch && line[i] != ' ' && line[i] != '\0' && line[i] != '\n' && line[i] != (char)EOF) { 23914b: 0f b7 45 a4 movzwl -0x5c(%rbp),%eax 23914f: 0f b7 4d b6 movzwl -0x4a(%rbp),%ecx 239153: 39 c8 cmp %ecx,%eax 239155: 0f 85 73 00 00 00 jne 2391ce 23915b: 48 8b 45 b8 mov -0x48(%rbp),%rax 23915f: 48 8b 4d 90 mov -0x70(%rbp),%rcx 239163: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 239167: 83 f8 20 cmp $0x20,%eax 23916a: 0f 84 5e 00 00 00 je 2391ce 239170: 48 8b 45 b8 mov -0x48(%rbp),%rax 239174: 48 8b 4d 90 mov -0x70(%rbp),%rcx 239178: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 23917c: 83 f8 00 cmp $0x0,%eax 23917f: 0f 84 49 00 00 00 je 2391ce 239185: 48 8b 45 b8 mov -0x48(%rbp),%rax 239189: 48 8b 4d 90 mov -0x70(%rbp),%rcx 23918d: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 239191: 83 f8 0a cmp $0xa,%eax 239194: 0f 84 34 00 00 00 je 2391ce 23919a: 48 8b 45 b8 mov -0x48(%rbp),%rax 23919e: 48 8b 4d 90 mov -0x70(%rbp),%rcx 2391a2: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 2391a6: 83 f8 ff cmp $0xffffffff,%eax 2391a9: 0f 84 1f 00 00 00 je 2391ce match[foundCount] = line[i]; 2391af: 48 8b 45 b8 mov -0x48(%rbp),%rax 2391b3: 48 8b 4d 90 mov -0x70(%rbp),%rcx 2391b7: 8a 0c 08 mov (%rax,%rcx,1),%cl 2391ba: 48 8b 45 98 mov -0x68(%rbp),%rax 2391be: 88 4c 05 c0 mov %cl,-0x40(%rbp,%rax,1) foundCount++; 2391c2: 48 8b 45 98 mov -0x68(%rbp),%rax 2391c6: 48 83 c0 01 add $0x1,%rax 2391ca: 48 89 45 98 mov %rax,-0x68(%rbp) } 2391ce: e9 00 00 00 00 jmp 2391d3 } 2391d3: e9 00 00 00 00 jmp 2391d8 for (size_t i = 0; i < len; i++) { 2391d8: 48 8b 45 90 mov -0x70(%rbp),%rax 2391dc: 48 83 c0 01 add $0x1,%rax 2391e0: 48 89 45 90 mov %rax,-0x70(%rbp) 2391e4: e9 ff fe ff ff jmp 2390e8 match[foundCount] = '\0'; 2391e9: 48 8b 45 98 mov -0x68(%rbp),%rax 2391ed: c6 44 05 c0 00 movb $0x0,-0x40(%rbp,%rax,1) return xStrdup(match); 2391f2: 48 8d 7d c0 lea -0x40(%rbp),%rdi 2391f6: e8 f5 fd ff ff call 238ff0 2391fb: 48 89 45 80 mov %rax,-0x80(%rbp) 2391ff: 48 8b 05 2a 96 00 00 mov 0x962a(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239206: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23920a: 48 39 c8 cmp %rcx,%rax 23920d: 0f 85 0d 00 00 00 jne 239220 239213: 48 8b 45 80 mov -0x80(%rbp),%rax 239217: 48 81 c4 80 00 00 00 add $0x80,%rsp 23921e: 5d pop %rbp 23921f: c3 ret 239220: e8 1b 4f 00 00 call 23e140 <__stack_chk_fail@plt> 239225: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23922f: 90 nop 0000000000239230 : char* String_readLine(FILE* fd) { 239230: 55 push %rbp 239231: 48 89 e5 mov %rsp,%rbp 239234: 48 83 ec 40 sub $0x40,%rsp 239238: 48 89 7d f0 mov %rdi,-0x10(%rbp) const unsigned int step = 1024; 23923c: c7 45 ec 00 04 00 00 movl $0x400,-0x14(%rbp) unsigned int bufSize = step; 239243: c7 45 e8 00 04 00 00 movl $0x400,-0x18(%rbp) char* buffer = xMalloc(step + 1); 23924a: bf 01 04 00 00 mov $0x401,%edi 23924f: e8 0c f8 ff ff call 238a60 239254: 48 89 45 e0 mov %rax,-0x20(%rbp) char* at = buffer; 239258: 48 8b 45 e0 mov -0x20(%rbp),%rax 23925c: 48 89 45 d8 mov %rax,-0x28(%rbp) const char* ok = fgets(at, step + 1, fd); 239260: 48 8b 7d d8 mov -0x28(%rbp),%rdi 239264: 48 8b 55 f0 mov -0x10(%rbp),%rdx 239268: be 01 04 00 00 mov $0x401,%esi 23926d: e8 ae 56 00 00 call 23e920 239272: 48 89 45 d0 mov %rax,-0x30(%rbp) if (!ok) { 239276: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 23927b: 0f 85 16 00 00 00 jne 239297 free(buffer); 239281: 48 8b 7d e0 mov -0x20(%rbp),%rdi 239285: e8 d6 4e 00 00 call 23e160 return NULL; 23928a: 48 c7 45 f8 00 00 00 00 movq $0x0,-0x8(%rbp) 239292: e9 b7 00 00 00 jmp 23934e char* newLine = strrchr(at, '\n'); 239297: 48 8b 7d d8 mov -0x28(%rbp),%rdi 23929b: be 0a 00 00 00 mov $0xa,%esi 2392a0: e8 1b 53 00 00 call 23e5c0 2392a5: 48 89 45 c8 mov %rax,-0x38(%rbp) if (newLine) { 2392a9: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 2392ae: 0f 84 14 00 00 00 je 2392c8 *newLine = '\0'; 2392b4: 48 8b 45 c8 mov -0x38(%rbp),%rax 2392b8: c6 00 00 movb $0x0,(%rax) return buffer; 2392bb: 48 8b 45 e0 mov -0x20(%rbp),%rax 2392bf: 48 89 45 f8 mov %rax,-0x8(%rbp) 2392c3: e9 86 00 00 00 jmp 23934e if (feof(fd)) { 2392c8: 83 3c 25 c0 28 24 00 00 cmpl $0x0,0x2428c0 2392d0: 0f 85 19 00 00 00 jne 2392ef 2392d6: 48 8b 45 f0 mov -0x10(%rbp),%rax 2392da: 0f bf 40 10 movswl 0x10(%rax),%eax 2392de: 83 e0 20 and $0x20,%eax 2392e1: 83 f8 00 cmp $0x0,%eax 2392e4: 0f 85 17 00 00 00 jne 239301 2392ea: e9 1f 00 00 00 jmp 23930e 2392ef: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2392f3: e8 38 56 00 00 call 23e930 2392f8: 83 f8 00 cmp $0x0,%eax 2392fb: 0f 84 0d 00 00 00 je 23930e return buffer; 239301: 48 8b 45 e0 mov -0x20(%rbp),%rax 239305: 48 89 45 f8 mov %rax,-0x8(%rbp) 239309: e9 40 00 00 00 jmp 23934e 23930e: e9 00 00 00 00 jmp 239313 bufSize += step; 239313: 8b 45 e8 mov -0x18(%rbp),%eax 239316: 05 00 04 00 00 add $0x400,%eax 23931b: 89 45 e8 mov %eax,-0x18(%rbp) buffer = xRealloc(buffer, bufSize + 1); 23931e: 48 8b 7d e0 mov -0x20(%rbp),%rdi 239322: 8b 45 e8 mov -0x18(%rbp),%eax 239325: 83 c0 01 add $0x1,%eax 239328: 89 c0 mov %eax,%eax 23932a: 89 c6 mov %eax,%esi 23932c: e8 1f f8 ff ff call 238b50 239331: 48 89 45 e0 mov %rax,-0x20(%rbp) at = buffer + bufSize - step; 239335: 48 8b 45 e0 mov -0x20(%rbp),%rax 239339: 8b 4d e8 mov -0x18(%rbp),%ecx 23933c: 48 01 c8 add %rcx,%rax 23933f: 48 05 00 fc ff ff add $0xfffffffffffffc00,%rax 239345: 48 89 45 d8 mov %rax,-0x28(%rbp) for (;;) { 239349: e9 12 ff ff ff jmp 239260 } 23934e: 48 8b 45 f8 mov -0x8(%rbp),%rax 239352: 48 83 c4 40 add $0x40,%rsp 239356: 5d pop %rbp 239357: c3 ret 239358: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 0000000000239360 : size_t String_safeStrncpy(char* restrict dest, const char* restrict src, size_t size) { 239360: 55 push %rbp 239361: 48 89 e5 mov %rsp,%rbp 239364: 48 89 7d f8 mov %rdi,-0x8(%rbp) 239368: 48 89 75 f0 mov %rsi,-0x10(%rbp) 23936c: 48 89 55 e8 mov %rdx,-0x18(%rbp) size_t i = 0; 239370: 48 c7 45 e0 00 00 00 00 movq $0x0,-0x20(%rbp) for (; i < size - 1 && src[i]; i++) 239378: 48 8b 4d e0 mov -0x20(%rbp),%rcx 23937c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 239380: 48 83 ea 01 sub $0x1,%rdx 239384: 31 c0 xor %eax,%eax 239386: 48 39 d1 cmp %rdx,%rcx 239389: 88 45 df mov %al,-0x21(%rbp) 23938c: 0f 83 15 00 00 00 jae 2393a7 239392: 48 8b 45 f0 mov -0x10(%rbp),%rax 239396: 48 8b 4d e0 mov -0x20(%rbp),%rcx 23939a: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 23939e: 83 f8 00 cmp $0x0,%eax 2393a1: 0f 95 c0 setne %al 2393a4: 88 45 df mov %al,-0x21(%rbp) 2393a7: 8a 45 df mov -0x21(%rbp),%al 2393aa: a8 01 test $0x1,%al 2393ac: 0f 85 05 00 00 00 jne 2393b7 2393b2: e9 27 00 00 00 jmp 2393de dest[i] = src[i]; 2393b7: 48 8b 45 f0 mov -0x10(%rbp),%rax 2393bb: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2393bf: 8a 14 08 mov (%rax,%rcx,1),%dl 2393c2: 48 8b 45 f8 mov -0x8(%rbp),%rax 2393c6: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2393ca: 88 14 08 mov %dl,(%rax,%rcx,1) for (; i < size - 1 && src[i]; i++) 2393cd: 48 8b 45 e0 mov -0x20(%rbp),%rax 2393d1: 48 83 c0 01 add $0x1,%rax 2393d5: 48 89 45 e0 mov %rax,-0x20(%rbp) 2393d9: e9 9a ff ff ff jmp 239378 dest[i] = '\0'; 2393de: 48 8b 45 f8 mov -0x8(%rbp),%rax 2393e2: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2393e6: c6 04 08 00 movb $0x0,(%rax,%rcx,1) return i; 2393ea: 48 8b 45 e0 mov -0x20(%rbp),%rax 2393ee: 5d pop %rbp 2393ef: c3 ret 00000000002393f0 : int xAsprintf(char** strp, const char* fmt, ...) { 2393f0: 55 push %rbp 2393f1: 48 89 e5 mov %rsp,%rbp 2393f4: 48 81 ec 00 01 00 00 sub $0x100,%rsp 2393fb: 84 c0 test %al,%al 2393fd: 0f 84 2c 00 00 00 je 23942f 239403: 0f 29 85 40 ff ff ff movaps %xmm0,-0xc0(%rbp) 23940a: 0f 29 8d 50 ff ff ff movaps %xmm1,-0xb0(%rbp) 239411: 0f 29 95 60 ff ff ff movaps %xmm2,-0xa0(%rbp) 239418: 0f 29 9d 70 ff ff ff movaps %xmm3,-0x90(%rbp) 23941f: 0f 29 65 80 movaps %xmm4,-0x80(%rbp) 239423: 0f 29 6d 90 movaps %xmm5,-0x70(%rbp) 239427: 0f 29 75 a0 movaps %xmm6,-0x60(%rbp) 23942b: 0f 29 7d b0 movaps %xmm7,-0x50(%rbp) 23942f: 4c 89 8d 38 ff ff ff mov %r9,-0xc8(%rbp) 239436: 4c 89 85 30 ff ff ff mov %r8,-0xd0(%rbp) 23943d: 48 89 8d 28 ff ff ff mov %rcx,-0xd8(%rbp) 239444: 48 89 95 20 ff ff ff mov %rdx,-0xe0(%rbp) 23944b: 48 8b 05 de 93 00 00 mov 0x93de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239452: 48 89 45 f8 mov %rax,-0x8(%rbp) 239456: 48 89 7d d8 mov %rdi,-0x28(%rbp) 23945a: 48 89 75 d0 mov %rsi,-0x30(%rbp) va_start(vl, fmt); 23945e: 48 8d 45 e0 lea -0x20(%rbp),%rax 239462: 48 8d 8d 10 ff ff ff lea -0xf0(%rbp),%rcx 239469: 48 89 48 10 mov %rcx,0x10(%rax) 23946d: 48 8d 4d 10 lea 0x10(%rbp),%rcx 239471: 48 89 48 08 mov %rcx,0x8(%rax) 239475: c7 40 04 30 00 00 00 movl $0x30,0x4(%rax) 23947c: c7 00 10 00 00 00 movl $0x10,(%rax) int r = vasprintf(strp, fmt, vl); 239482: 48 8b 7d d8 mov -0x28(%rbp),%rdi 239486: 48 8b 75 d0 mov -0x30(%rbp),%rsi 23948a: 48 8d 55 e0 lea -0x20(%rbp),%rdx 23948e: e8 ad 54 00 00 call 23e940 239493: 89 45 cc mov %eax,-0x34(%rbp) va_end(vl); 239496: 48 8d 45 e0 lea -0x20(%rbp),%rax if (r < 0 || !*strp) { 23949a: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) 23949e: 0f 8c 0e 00 00 00 jl 2394b2 2394a4: 48 8b 45 d8 mov -0x28(%rbp),%rax 2394a8: 48 83 38 00 cmpq $0x0,(%rax) 2394ac: 0f 85 05 00 00 00 jne 2394b7 fail(); 2394b2: e8 99 f5 ff ff call 238a50 return r; 2394b7: 8b 45 cc mov -0x34(%rbp),%eax 2394ba: 89 85 0c ff ff ff mov %eax,-0xf4(%rbp) 2394c0: 48 8b 05 69 93 00 00 mov 0x9369(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2394c7: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2394cb: 48 39 c8 cmp %rcx,%rax 2394ce: 0f 85 0f 00 00 00 jne 2394e3 2394d4: 8b 85 0c ff ff ff mov -0xf4(%rbp),%eax 2394da: 48 81 c4 00 01 00 00 add $0x100,%rsp 2394e1: 5d pop %rbp 2394e2: c3 ret 2394e3: e8 58 4c 00 00 call 23e140 <__stack_chk_fail@plt> 2394e8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 00000000002394f0 : int xSnprintf(char* buf, size_t len, const char* fmt, ...) { 2394f0: 55 push %rbp 2394f1: 48 89 e5 mov %rsp,%rbp 2394f4: 48 81 ec 00 01 00 00 sub $0x100,%rsp 2394fb: 84 c0 test %al,%al 2394fd: 0f 84 2c 00 00 00 je 23952f 239503: 0f 29 85 40 ff ff ff movaps %xmm0,-0xc0(%rbp) 23950a: 0f 29 8d 50 ff ff ff movaps %xmm1,-0xb0(%rbp) 239511: 0f 29 95 60 ff ff ff movaps %xmm2,-0xa0(%rbp) 239518: 0f 29 9d 70 ff ff ff movaps %xmm3,-0x90(%rbp) 23951f: 0f 29 65 80 movaps %xmm4,-0x80(%rbp) 239523: 0f 29 6d 90 movaps %xmm5,-0x70(%rbp) 239527: 0f 29 75 a0 movaps %xmm6,-0x60(%rbp) 23952b: 0f 29 7d b0 movaps %xmm7,-0x50(%rbp) 23952f: 4c 89 8d 38 ff ff ff mov %r9,-0xc8(%rbp) 239536: 4c 89 85 30 ff ff ff mov %r8,-0xd0(%rbp) 23953d: 48 89 8d 28 ff ff ff mov %rcx,-0xd8(%rbp) 239544: 48 8b 05 e5 92 00 00 mov 0x92e5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23954b: 48 89 45 f8 mov %rax,-0x8(%rbp) 23954f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 239553: 48 89 75 d0 mov %rsi,-0x30(%rbp) 239557: 48 89 55 c8 mov %rdx,-0x38(%rbp) va_start(vl, fmt); 23955b: 48 8d 45 e0 lea -0x20(%rbp),%rax 23955f: 48 8d 8d 10 ff ff ff lea -0xf0(%rbp),%rcx 239566: 48 89 48 10 mov %rcx,0x10(%rax) 23956a: 48 8d 4d 10 lea 0x10(%rbp),%rcx 23956e: 48 89 48 08 mov %rcx,0x8(%rax) 239572: c7 40 04 30 00 00 00 movl $0x30,0x4(%rax) 239579: c7 00 18 00 00 00 movl $0x18,(%rax) int n = vsnprintf(buf, len, fmt, vl); 23957f: 48 8b 7d d8 mov -0x28(%rbp),%rdi 239583: 48 8b 75 d0 mov -0x30(%rbp),%rsi 239587: 48 8b 55 c8 mov -0x38(%rbp),%rdx 23958b: 48 8d 4d e0 lea -0x20(%rbp),%rcx 23958f: e8 5c 50 00 00 call 23e5f0 239594: 89 45 c4 mov %eax,-0x3c(%rbp) va_end(vl); 239597: 48 8d 45 e0 lea -0x20(%rbp),%rax if (n < 0 || (size_t)n >= len) { 23959b: 83 7d c4 00 cmpl $0x0,-0x3c(%rbp) 23959f: 0f 8c 0e 00 00 00 jl 2395b3 2395a5: 48 63 45 c4 movslq -0x3c(%rbp),%rax 2395a9: 48 3b 45 d0 cmp -0x30(%rbp),%rax 2395ad: 0f 82 05 00 00 00 jb 2395b8 fail(); 2395b3: e8 98 f4 ff ff call 238a50 return n; 2395b8: 8b 45 c4 mov -0x3c(%rbp),%eax 2395bb: 89 85 0c ff ff ff mov %eax,-0xf4(%rbp) 2395c1: 48 8b 05 68 92 00 00 mov 0x9268(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2395c8: 48 8b 4d f8 mov -0x8(%rbp),%rcx 2395cc: 48 39 c8 cmp %rcx,%rax 2395cf: 0f 85 0f 00 00 00 jne 2395e4 2395d5: 8b 85 0c ff ff ff mov -0xf4(%rbp),%eax 2395db: 48 81 c4 00 01 00 00 add $0x100,%rsp 2395e2: 5d pop %rbp 2395e3: c3 ret 2395e4: e8 57 4b 00 00 call 23e140 <__stack_chk_fail@plt> 2395e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 00000000002395f0 : void free_and_xStrdup(char** ptr, const char* str) { 2395f0: 55 push %rbp 2395f1: 48 89 e5 mov %rsp,%rbp 2395f4: 48 83 ec 10 sub $0x10,%rsp 2395f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2395fc: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (*ptr && String_eq(*ptr, str)) 239600: 48 8b 45 f8 mov -0x8(%rbp),%rax 239604: 48 83 38 00 cmpq $0x0,(%rax) 239608: 0f 84 22 00 00 00 je 239630 23960e: 48 8b 45 f8 mov -0x8(%rbp),%rax 239612: 48 8b 38 mov (%rax),%rdi 239615: 48 8b 75 f0 mov -0x10(%rbp),%rsi 239619: e8 42 00 00 00 call 239660 23961e: a8 01 test $0x1,%al 239620: 0f 85 05 00 00 00 jne 23962b 239626: e9 05 00 00 00 jmp 239630 return; 23962b: e9 1f 00 00 00 jmp 23964f free(*ptr); 239630: 48 8b 45 f8 mov -0x8(%rbp),%rax 239634: 48 8b 38 mov (%rax),%rdi 239637: e8 24 4b 00 00 call 23e160 *ptr = xStrdup(str); 23963c: 48 8b 7d f0 mov -0x10(%rbp),%rdi 239640: e8 ab f9 ff ff call 238ff0 239645: 48 89 c1 mov %rax,%rcx 239648: 48 8b 45 f8 mov -0x8(%rbp),%rax 23964c: 48 89 08 mov %rcx,(%rax) } 23964f: 48 83 c4 10 add $0x10,%rsp 239653: 5d pop %rbp 239654: c3 ret 239655: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23965f: 90 nop 0000000000239660 : static inline bool String_eq(const char* s1, const char* s2) { 239660: 55 push %rbp 239661: 48 89 e5 mov %rsp,%rbp 239664: 48 83 ec 10 sub $0x10,%rsp 239668: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23966c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 239670: 48 8b 7d f8 mov -0x8(%rbp),%rdi 239674: 48 8b 75 f0 mov -0x10(%rbp),%rsi 239678: e8 63 4b 00 00 call 23e1e0 23967d: 83 f8 00 cmp $0x0,%eax 239680: 0f 94 c0 sete %al 239683: 24 01 and $0x1,%al 239685: 0f b6 c0 movzbl %al,%eax 239688: 48 83 c4 10 add $0x10,%rsp 23968c: 5d pop %rbp 23968d: c3 ret 23968e: 66 90 xchg %ax,%ax 0000000000239690 : return alreadyRead; } } } ssize_t xReadfile(const char* pathname, void* buffer, size_t count) { 239690: 55 push %rbp 239691: 48 89 e5 mov %rsp,%rbp 239694: 48 83 ec 30 sub $0x30,%rsp 239698: 48 89 7d f0 mov %rdi,-0x10(%rbp) 23969c: 48 89 75 e8 mov %rsi,-0x18(%rbp) 2396a0: 48 89 55 e0 mov %rdx,-0x20(%rbp) int fd = open(pathname, O_RDONLY); 2396a4: 48 8b 7d f0 mov -0x10(%rbp),%rdi 2396a8: 31 f6 xor %esi,%esi 2396aa: b0 00 mov $0x0,%al 2396ac: e8 ff 4f 00 00 call 23e6b0 2396b1: 89 45 dc mov %eax,-0x24(%rbp) if (fd < 0) 2396b4: 83 7d dc 00 cmpl $0x0,-0x24(%rbp) 2396b8: 0f 8d 17 00 00 00 jge 2396d5 return -errno; 2396be: e8 5d 4c 00 00 call 23e320 <__error@plt> 2396c3: 48 89 c1 mov %rax,%rcx 2396c6: 31 c0 xor %eax,%eax 2396c8: 2b 01 sub (%rcx),%eax 2396ca: 48 98 cltq 2396cc: 48 89 45 f8 mov %rax,-0x8(%rbp) 2396d0: e9 14 00 00 00 jmp 2396e9 return readfd_internal(fd, buffer, count); 2396d5: 8b 7d dc mov -0x24(%rbp),%edi 2396d8: 48 8b 75 e8 mov -0x18(%rbp),%rsi 2396dc: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2396e0: e8 1b 00 00 00 call 239700 2396e5: 48 89 45 f8 mov %rax,-0x8(%rbp) } 2396e9: 48 8b 45 f8 mov -0x8(%rbp),%rax 2396ed: 48 83 c4 30 add $0x30,%rsp 2396f1: 5d pop %rbp 2396f2: c3 ret 2396f3: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 2396fd: 0f 1f 00 nopl (%rax) 0000000000239700 : static ssize_t readfd_internal(int fd, void* buffer, size_t count) { 239700: 55 push %rbp 239701: 48 89 e5 mov %rsp,%rbp 239704: 48 83 ec 30 sub $0x30,%rsp 239708: 89 7d f4 mov %edi,-0xc(%rbp) 23970b: 48 89 75 e8 mov %rsi,-0x18(%rbp) 23970f: 48 89 55 e0 mov %rdx,-0x20(%rbp) if (!count) { 239713: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 239718: 0f 85 15 00 00 00 jne 239733 close(fd); 23971e: 8b 7d f4 mov -0xc(%rbp),%edi 239721: e8 6a 4f 00 00 call 23e690 return -EINVAL; 239726: 48 c7 45 f8 ea ff ff ff movq $0xffffffffffffffea,-0x8(%rbp) 23972e: e9 ce 00 00 00 jmp 239801 ssize_t alreadyRead = 0; 239733: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) count--; // reserve one for null-terminator 23973b: 48 8b 45 e0 mov -0x20(%rbp),%rax 23973f: 48 83 c0 ff add $0xffffffffffffffff,%rax 239743: 48 89 45 e0 mov %rax,-0x20(%rbp) ssize_t res = read(fd, buffer, count); 239747: 8b 7d f4 mov -0xc(%rbp),%edi 23974a: 48 8b 75 e8 mov -0x18(%rbp),%rsi 23974e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 239752: e8 f9 51 00 00 call 23e950 239757: 48 89 45 d0 mov %rax,-0x30(%rbp) if (res == -1) { 23975b: 48 83 7d d0 ff cmpq $0xffffffffffffffff,-0x30(%rbp) 239760: 0f 85 32 00 00 00 jne 239798 if (errno == EINTR) 239766: e8 b5 4b 00 00 call 23e320 <__error@plt> 23976b: 83 38 04 cmpl $0x4,(%rax) 23976e: 0f 85 05 00 00 00 jne 239779 continue; 239774: e9 ce ff ff ff jmp 239747 close(fd); 239779: 8b 7d f4 mov -0xc(%rbp),%edi 23977c: e8 0f 4f 00 00 call 23e690 return -errno; 239781: e8 9a 4b 00 00 call 23e320 <__error@plt> 239786: 48 89 c1 mov %rax,%rcx 239789: 31 c0 xor %eax,%eax 23978b: 2b 01 sub (%rcx),%eax 23978d: 48 98 cltq 23978f: 48 89 45 f8 mov %rax,-0x8(%rbp) 239793: e9 69 00 00 00 jmp 239801 if (res > 0) { 239798: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 23979d: 0f 8e 27 00 00 00 jle 2397ca buffer = ((char*)buffer) + res; 2397a3: 48 8b 45 e8 mov -0x18(%rbp),%rax 2397a7: 48 03 45 d0 add -0x30(%rbp),%rax 2397ab: 48 89 45 e8 mov %rax,-0x18(%rbp) count -= (size_t)res; 2397af: 48 8b 4d d0 mov -0x30(%rbp),%rcx 2397b3: 48 8b 45 e0 mov -0x20(%rbp),%rax 2397b7: 48 29 c8 sub %rcx,%rax 2397ba: 48 89 45 e0 mov %rax,-0x20(%rbp) alreadyRead += res; 2397be: 48 8b 45 d0 mov -0x30(%rbp),%rax 2397c2: 48 03 45 d8 add -0x28(%rbp),%rax 2397c6: 48 89 45 d8 mov %rax,-0x28(%rbp) if (count == 0 || res == 0) { 2397ca: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 2397cf: 0f 84 0b 00 00 00 je 2397e0 2397d5: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 2397da: 0f 85 1c 00 00 00 jne 2397fc close(fd); 2397e0: 8b 7d f4 mov -0xc(%rbp),%edi 2397e3: e8 a8 4e 00 00 call 23e690 *((char*)buffer) = '\0'; 2397e8: 48 8b 45 e8 mov -0x18(%rbp),%rax 2397ec: c6 00 00 movb $0x0,(%rax) return alreadyRead; 2397ef: 48 8b 45 d8 mov -0x28(%rbp),%rax 2397f3: 48 89 45 f8 mov %rax,-0x8(%rbp) 2397f7: e9 05 00 00 00 jmp 239801 for (;;) { 2397fc: e9 46 ff ff ff jmp 239747 } 239801: 48 8b 45 f8 mov -0x8(%rbp),%rax 239805: 48 83 c4 30 add $0x30,%rsp 239809: 5d pop %rbp 23980a: c3 ret 23980b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000239810 : ssize_t xReadfileat(openat_arg_t dirfd, const char* pathname, void* buffer, size_t count) { 239810: 55 push %rbp 239811: 48 89 e5 mov %rsp,%rbp 239814: 48 83 ec 30 sub $0x30,%rsp 239818: 89 7d f4 mov %edi,-0xc(%rbp) 23981b: 48 89 75 e8 mov %rsi,-0x18(%rbp) 23981f: 48 89 55 e0 mov %rdx,-0x20(%rbp) 239823: 48 89 4d d8 mov %rcx,-0x28(%rbp) int fd = Compat_openat(dirfd, pathname, O_RDONLY); 239827: 8b 7d f4 mov -0xc(%rbp),%edi 23982a: 48 8b 75 e8 mov -0x18(%rbp),%rsi 23982e: 31 d2 xor %edx,%edx 239830: e8 4b 00 00 00 call 239880 239835: 89 45 d4 mov %eax,-0x2c(%rbp) if (fd < 0) 239838: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) 23983c: 0f 8d 17 00 00 00 jge 239859 return -errno; 239842: e8 d9 4a 00 00 call 23e320 <__error@plt> 239847: 48 89 c1 mov %rax,%rcx 23984a: 31 c0 xor %eax,%eax 23984c: 2b 01 sub (%rcx),%eax 23984e: 48 98 cltq 239850: 48 89 45 f8 mov %rax,-0x8(%rbp) 239854: e9 14 00 00 00 jmp 23986d return readfd_internal(fd, buffer, count); 239859: 8b 7d d4 mov -0x2c(%rbp),%edi 23985c: 48 8b 75 e0 mov -0x20(%rbp),%rsi 239860: 48 8b 55 d8 mov -0x28(%rbp),%rdx 239864: e8 97 fe ff ff call 239700 239869: 48 89 45 f8 mov %rax,-0x8(%rbp) } 23986d: 48 8b 45 f8 mov -0x8(%rbp),%rax 239871: 48 83 c4 30 add $0x30,%rsp 239875: 5d pop %rbp 239876: c3 ret 239877: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000239880 : static inline void Compat_openatArgClose(openat_arg_t dirfd) { close(dirfd); } static inline int Compat_openat(openat_arg_t dirfd, const char* pathname, int flags) { 239880: 55 push %rbp 239881: 48 89 e5 mov %rsp,%rbp 239884: 48 83 ec 20 sub $0x20,%rsp 239888: 89 7d fc mov %edi,-0x4(%rbp) 23988b: 48 89 75 f0 mov %rsi,-0x10(%rbp) 23988f: 89 55 ec mov %edx,-0x14(%rbp) return openat(dirfd, pathname, flags); 239892: 8b 7d fc mov -0x4(%rbp),%edi 239895: 48 8b 75 f0 mov -0x10(%rbp),%rsi 239899: 8b 55 ec mov -0x14(%rbp),%edx 23989c: b0 00 mov $0x0,%al 23989e: e8 bd 50 00 00 call 23e960 2398a3: 48 83 c4 20 add $0x20,%rsp 2398a7: 5d pop %rbp 2398a8: c3 ret 2398a9: cc int3 2398aa: cc int3 2398ab: cc int3 2398ac: cc int3 2398ad: cc int3 2398ae: cc int3 2398af: cc int3 00000000002398b0 : &DiskIOMeter_class, &NetworkIOMeter_class, NULL }; bool Platform_init(void) { 2398b0: 55 push %rbp 2398b1: 48 89 e5 mov %rsp,%rbp /* no platform-specific setup needed */ return true; 2398b4: b0 01 mov $0x1,%al 2398b6: 24 01 and $0x1,%al 2398b8: 0f b6 c0 movzbl %al,%eax 2398bb: 5d pop %rbp 2398bc: c3 ret 2398bd: 0f 1f 00 nopl (%rax) 00000000002398c0 : } void Platform_done(void) { 2398c0: 55 push %rbp 2398c1: 48 89 e5 mov %rsp,%rbp /* no platform-specific cleanup needed */ } 2398c4: 5d pop %rbp 2398c5: c3 ret 2398c6: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 00000000002398d0 : void Platform_setBindings(Htop_Action* keys) { 2398d0: 55 push %rbp 2398d1: 48 89 e5 mov %rsp,%rbp 2398d4: 48 89 7d f8 mov %rdi,-0x8(%rbp) /* no platform-specific key bindings */ (void) keys; } 2398d8: 5d pop %rbp 2398d9: c3 ret 2398da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 00000000002398e0 : int Platform_getUptime() { 2398e0: 55 push %rbp 2398e1: 48 89 e5 mov %rsp,%rbp 2398e4: 48 83 ec 50 sub $0x50,%rsp 2398e8: 48 8b 05 41 8f 00 00 mov 0x8f41(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 2398ef: 48 89 45 f8 mov %rax,-0x8(%rbp) struct timeval bootTime, currTime; const int mib[2] = { CTL_KERN, KERN_BOOTTIME }; 2398f3: 48 8b 04 25 40 73 20 00 mov 0x207340,%rax 2398fb: 48 89 45 f0 mov %rax,-0x10(%rbp) size_t size = sizeof(bootTime); 2398ff: 48 c7 45 c8 10 00 00 00 movq $0x10,-0x38(%rbp) int err = sysctl(mib, 2, &bootTime, &size, NULL, 0); 239907: 48 8d 7d f0 lea -0x10(%rbp),%rdi 23990b: 48 8d 55 e0 lea -0x20(%rbp),%rdx 23990f: be 02 00 00 00 mov $0x2,%esi 239914: 48 8d 4d c8 lea -0x38(%rbp),%rcx 239918: 31 c0 xor %eax,%eax 23991a: 41 89 c1 mov %eax,%r9d 23991d: 4d 89 c8 mov %r9,%r8 239920: e8 4b 50 00 00 call 23e970 239925: 89 45 c0 mov %eax,-0x40(%rbp) if (err) { 239928: 83 7d c0 00 cmpl $0x0,-0x40(%rbp) 23992c: 0f 84 0c 00 00 00 je 23993e return -1; 239932: c7 45 c4 ff ff ff ff movl $0xffffffff,-0x3c(%rbp) 239939: e9 21 00 00 00 jmp 23995f } gettimeofday(&currTime, NULL); 23993e: 48 8d 7d d0 lea -0x30(%rbp),%rdi 239942: 31 c0 xor %eax,%eax 239944: 89 c6 mov %eax,%esi 239946: e8 35 50 00 00 call 23e980 return (int) difftime(currTime.tv_sec, bootTime.tv_sec); 23994b: 48 8b 7d d0 mov -0x30(%rbp),%rdi 23994f: 48 8b 75 e0 mov -0x20(%rbp),%rsi 239953: e8 38 50 00 00 call 23e990 239958: f2 0f 2c c0 cvttsd2si %xmm0,%eax 23995c: 89 45 c4 mov %eax,-0x3c(%rbp) } 23995f: 8b 45 c4 mov -0x3c(%rbp),%eax 239962: 89 45 bc mov %eax,-0x44(%rbp) 239965: 48 8b 05 c4 8e 00 00 mov 0x8ec4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23996c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 239970: 48 39 c8 cmp %rcx,%rax 239973: 0f 85 09 00 00 00 jne 239982 239979: 8b 45 bc mov -0x44(%rbp),%eax 23997c: 48 83 c4 50 add $0x50,%rsp 239980: 5d pop %rbp 239981: c3 ret 239982: e8 b9 47 00 00 call 23e140 <__stack_chk_fail@plt> 239987: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 0000000000239990 : void Platform_getLoadAverage(double* one, double* five, double* fifteen) { 239990: 55 push %rbp 239991: 48 89 e5 mov %rsp,%rbp 239994: 48 83 ec 50 sub $0x50,%rsp 239998: 48 8b 05 91 8e 00 00 mov 0x8e91(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23999f: 48 89 45 f8 mov %rax,-0x8(%rbp) 2399a3: 48 89 7d c8 mov %rdi,-0x38(%rbp) 2399a7: 48 89 75 c0 mov %rsi,-0x40(%rbp) 2399ab: 48 89 55 b8 mov %rdx,-0x48(%rbp) struct loadavg loadAverage; const int mib[2] = { CTL_VM, VM_LOADAVG }; 2399af: 48 8b 04 25 20 73 20 00 mov 0x207320,%rax 2399b7: 48 89 45 d8 mov %rax,-0x28(%rbp) size_t size = sizeof(loadAverage); 2399bb: 48 c7 45 d0 18 00 00 00 movq $0x18,-0x30(%rbp) int err = sysctl(mib, 2, &loadAverage, &size, NULL, 0); 2399c3: 48 8d 7d d8 lea -0x28(%rbp),%rdi 2399c7: 48 8d 55 e0 lea -0x20(%rbp),%rdx 2399cb: be 02 00 00 00 mov $0x2,%esi 2399d0: 48 8d 4d d0 lea -0x30(%rbp),%rcx 2399d4: 31 c0 xor %eax,%eax 2399d6: 41 89 c1 mov %eax,%r9d 2399d9: 4d 89 c8 mov %r9,%r8 2399dc: e8 8f 4f 00 00 call 23e970 2399e1: 89 45 b4 mov %eax,-0x4c(%rbp) if (err) { 2399e4: 83 7d b4 00 cmpl $0x0,-0x4c(%rbp) 2399e8: 0f 84 26 00 00 00 je 239a14 *one = 0; 2399ee: 48 8b 45 c8 mov -0x38(%rbp),%rax 2399f2: 0f 57 c0 xorps %xmm0,%xmm0 2399f5: f2 0f 11 00 movsd %xmm0,(%rax) *five = 0; 2399f9: 48 8b 45 c0 mov -0x40(%rbp),%rax 2399fd: 0f 57 c0 xorps %xmm0,%xmm0 239a00: f2 0f 11 00 movsd %xmm0,(%rax) *fifteen = 0; 239a04: 48 8b 45 b8 mov -0x48(%rbp),%rax 239a08: 0f 57 c0 xorps %xmm0,%xmm0 239a0b: f2 0f 11 00 movsd %xmm0,(%rax) return; 239a0f: e9 4e 00 00 00 jmp 239a62 } *one = (double) loadAverage.ldavg[0] / loadAverage.fscale; 239a14: 8b 45 e0 mov -0x20(%rbp),%eax 239a17: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 239a1c: f2 48 0f 2a 4d f0 cvtsi2sdq -0x10(%rbp),%xmm1 239a22: f2 0f 5e c1 divsd %xmm1,%xmm0 239a26: 48 8b 45 c8 mov -0x38(%rbp),%rax 239a2a: f2 0f 11 00 movsd %xmm0,(%rax) *five = (double) loadAverage.ldavg[1] / loadAverage.fscale; 239a2e: 8b 45 e4 mov -0x1c(%rbp),%eax 239a31: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 239a36: f2 48 0f 2a 4d f0 cvtsi2sdq -0x10(%rbp),%xmm1 239a3c: f2 0f 5e c1 divsd %xmm1,%xmm0 239a40: 48 8b 45 c0 mov -0x40(%rbp),%rax 239a44: f2 0f 11 00 movsd %xmm0,(%rax) *fifteen = (double) loadAverage.ldavg[2] / loadAverage.fscale; 239a48: 8b 45 e8 mov -0x18(%rbp),%eax 239a4b: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 239a50: f2 48 0f 2a 4d f0 cvtsi2sdq -0x10(%rbp),%xmm1 239a56: f2 0f 5e c1 divsd %xmm1,%xmm0 239a5a: 48 8b 45 b8 mov -0x48(%rbp),%rax 239a5e: f2 0f 11 00 movsd %xmm0,(%rax) 239a62: 48 8b 05 c7 8d 00 00 mov 0x8dc7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239a69: 48 8b 4d f8 mov -0x8(%rbp),%rcx 239a6d: 48 39 c8 cmp %rcx,%rax 239a70: 0f 85 06 00 00 00 jne 239a7c } 239a76: 48 83 c4 50 add $0x50,%rsp 239a7a: 5d pop %rbp 239a7b: c3 ret 239a7c: e8 bf 46 00 00 call 23e140 <__stack_chk_fail@plt> 239a81: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 239a8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000239a90 : int Platform_getMaxPid() { 239a90: 55 push %rbp 239a91: 48 89 e5 mov %rsp,%rbp 239a94: 48 83 ec 30 sub $0x30,%rsp 239a98: 48 8b 05 91 8d 00 00 mov 0x8d91(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239a9f: 48 89 45 f8 mov %rax,-0x8(%rbp) int maxPid; size_t size = sizeof(maxPid); 239aa3: 48 c7 45 e8 04 00 00 00 movq $0x4,-0x18(%rbp) int err = sysctlbyname("kern.pid_max", &maxPid, &size, NULL, 0); 239aab: 48 8d 75 f4 lea -0xc(%rbp),%rsi 239aaf: 48 bf 2b 6d 20 00 00 00 00 00 movabs $0x206d2b,%rdi 239ab9: 48 8d 55 e8 lea -0x18(%rbp),%rdx 239abd: 31 c0 xor %eax,%eax 239abf: 41 89 c0 mov %eax,%r8d 239ac2: 4c 89 c1 mov %r8,%rcx 239ac5: e8 d6 4e 00 00 call 23e9a0 239aca: 89 45 e0 mov %eax,-0x20(%rbp) if (err) { 239acd: 83 7d e0 00 cmpl $0x0,-0x20(%rbp) 239ad1: 0f 84 0c 00 00 00 je 239ae3 return 99999; 239ad7: c7 45 e4 9f 86 01 00 movl $0x1869f,-0x1c(%rbp) 239ade: e9 06 00 00 00 jmp 239ae9 } return maxPid; 239ae3: 8b 45 f4 mov -0xc(%rbp),%eax 239ae6: 89 45 e4 mov %eax,-0x1c(%rbp) } 239ae9: 8b 45 e4 mov -0x1c(%rbp),%eax 239aec: 89 45 dc mov %eax,-0x24(%rbp) 239aef: 48 8b 05 3a 8d 00 00 mov 0x8d3a(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239af6: 48 8b 4d f8 mov -0x8(%rbp),%rcx 239afa: 48 39 c8 cmp %rcx,%rax 239afd: 0f 85 09 00 00 00 jne 239b0c 239b03: 8b 45 dc mov -0x24(%rbp),%eax 239b06: 48 83 c4 30 add $0x30,%rsp 239b0a: 5d pop %rbp 239b0b: c3 ret 239b0c: e8 2f 46 00 00 call 23e140 <__stack_chk_fail@plt> 239b11: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 239b1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 0000000000239b20 : double Platform_setCPUValues(Meter* this, unsigned int cpu) { 239b20: 55 push %rbp 239b21: 48 89 e5 mov %rsp,%rbp 239b24: 48 89 7d f8 mov %rdi,-0x8(%rbp) 239b28: 89 75 f4 mov %esi,-0xc(%rbp) const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl; 239b2b: 48 8b 45 f8 mov -0x8(%rbp),%rax 239b2f: 48 8b 40 30 mov 0x30(%rax),%rax 239b33: 48 89 45 e8 mov %rax,-0x18(%rbp) unsigned int cpus = this->pl->activeCPUs; 239b37: 48 8b 45 f8 mov -0x8(%rbp),%rax 239b3b: 48 8b 40 30 mov 0x30(%rax),%rax 239b3f: 8b 80 e0 00 00 00 mov 0xe0(%rax),%eax 239b45: 89 45 e4 mov %eax,-0x1c(%rbp) const CPUData* cpuData; if (cpus == 1) { 239b48: 83 7d e4 01 cmpl $0x1,-0x1c(%rbp) 239b4c: 0f 85 14 00 00 00 jne 239b66 // single CPU box has everything in fpl->cpus[0] cpuData = &(fpl->cpus[0]); 239b52: 48 8b 45 e8 mov -0x18(%rbp),%rax 239b56: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 239b5d: 48 89 45 d8 mov %rax,-0x28(%rbp) } else { 239b61: e9 19 00 00 00 jmp 239b7f cpuData = &(fpl->cpus[cpu]); 239b66: 48 8b 45 e8 mov -0x18(%rbp),%rax 239b6a: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 239b71: 8b 4d f4 mov -0xc(%rbp),%ecx 239b74: 48 6b c9 38 imul $0x38,%rcx,%rcx 239b78: 48 01 c8 add %rcx,%rax 239b7b: 48 89 45 d8 mov %rax,-0x28(%rbp) } double percent; double* v = this->values; 239b7f: 48 8b 45 f8 mov -0x8(%rbp),%rax 239b83: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239b8a: 48 89 45 c8 mov %rax,-0x38(%rbp) v[CPU_METER_NICE] = cpuData->nicePercent; 239b8e: 48 8b 45 d8 mov -0x28(%rbp),%rax 239b92: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 239b97: 48 8b 45 c8 mov -0x38(%rbp),%rax 239b9b: f2 0f 11 00 movsd %xmm0,(%rax) v[CPU_METER_NORMAL] = cpuData->userPercent; 239b9f: 48 8b 45 d8 mov -0x28(%rbp),%rax 239ba3: f2 0f 10 00 movsd (%rax),%xmm0 239ba7: 48 8b 45 c8 mov -0x38(%rbp),%rax 239bab: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) if (this->pl->settings->detailedCPUTime) { 239bb0: 48 8b 45 f8 mov -0x8(%rbp),%rax 239bb4: 48 8b 40 30 mov 0x30(%rax),%rax 239bb8: 48 8b 00 mov (%rax),%rax 239bbb: f6 40 45 01 testb $0x1,0x45(%rax) 239bbf: 0f 84 59 00 00 00 je 239c1e v[CPU_METER_KERNEL] = cpuData->systemPercent; 239bc5: 48 8b 45 d8 mov -0x28(%rbp),%rax 239bc9: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 239bce: 48 8b 45 c8 mov -0x38(%rbp),%rax 239bd2: f2 0f 11 40 10 movsd %xmm0,0x10(%rax) v[CPU_METER_IRQ] = cpuData->irqPercent; 239bd7: 48 8b 45 d8 mov -0x28(%rbp),%rax 239bdb: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 239be0: 48 8b 45 c8 mov -0x38(%rbp),%rax 239be4: f2 0f 11 40 18 movsd %xmm0,0x18(%rax) this->curItems = 4; 239be9: 48 8b 45 f8 mov -0x8(%rbp),%rax 239bed: c6 40 38 04 movb $0x4,0x38(%rax) percent = v[0] + v[1] + v[2] + v[3]; 239bf1: 48 8b 45 c8 mov -0x38(%rbp),%rax 239bf5: f2 0f 10 00 movsd (%rax),%xmm0 239bf9: 48 8b 45 c8 mov -0x38(%rbp),%rax 239bfd: f2 0f 58 40 08 addsd 0x8(%rax),%xmm0 239c02: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c06: f2 0f 58 40 10 addsd 0x10(%rax),%xmm0 239c0b: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c0f: f2 0f 58 40 18 addsd 0x18(%rax),%xmm0 239c14: f2 0f 11 45 d0 movsd %xmm0,-0x30(%rbp) } else { 239c19: e9 39 00 00 00 jmp 239c57 v[2] = cpuData->systemAllPercent; 239c1e: 48 8b 45 d8 mov -0x28(%rbp),%rax 239c22: f2 0f 10 40 20 movsd 0x20(%rax),%xmm0 239c27: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c2b: f2 0f 11 40 10 movsd %xmm0,0x10(%rax) this->curItems = 3; 239c30: 48 8b 45 f8 mov -0x8(%rbp),%rax 239c34: c6 40 38 03 movb $0x3,0x38(%rax) percent = v[0] + v[1] + v[2]; 239c38: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c3c: f2 0f 10 00 movsd (%rax),%xmm0 239c40: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c44: f2 0f 58 40 08 addsd 0x8(%rax),%xmm0 239c49: 48 8b 45 c8 mov -0x38(%rbp),%rax 239c4d: f2 0f 58 40 10 addsd 0x10(%rax),%xmm0 239c52: f2 0f 11 45 d0 movsd %xmm0,-0x30(%rbp) } percent = CLAMP(percent, 0.0, 100.0); 239c57: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 239c5c: f2 0f 10 0d 34 d7 fc ff movsd -0x328cc(%rip),%xmm1 # 207398 239c64: 66 0f 2e c1 ucomisd %xmm1,%xmm0 239c68: 0f 86 12 00 00 00 jbe 239c80 239c6e: f2 0f 10 05 22 d7 fc ff movsd -0x328de(%rip),%xmm0 # 207398 239c76: f2 0f 11 45 c0 movsd %xmm0,-0x40(%rbp) 239c7b: e9 38 00 00 00 jmp 239cb8 239c80: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 239c85: 0f 57 c9 xorps %xmm1,%xmm1 239c88: 66 0f 2e c1 ucomisd %xmm1,%xmm0 239c8c: 0f 86 0f 00 00 00 jbe 239ca1 239c92: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 239c97: f2 0f 11 45 b8 movsd %xmm0,-0x48(%rbp) 239c9c: e9 0d 00 00 00 jmp 239cae 239ca1: 0f 57 c0 xorps %xmm0,%xmm0 239ca4: f2 0f 11 45 b8 movsd %xmm0,-0x48(%rbp) 239ca9: e9 00 00 00 00 jmp 239cae 239cae: f2 0f 10 45 b8 movsd -0x48(%rbp),%xmm0 239cb3: f2 0f 11 45 c0 movsd %xmm0,-0x40(%rbp) 239cb8: f2 0f 10 45 c0 movsd -0x40(%rbp),%xmm0 239cbd: f2 0f 11 45 d0 movsd %xmm0,-0x30(%rbp) v[CPU_METER_FREQUENCY] = cpuData->frequency; 239cc2: 48 8b 45 d8 mov -0x28(%rbp),%rax 239cc6: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 239ccb: 48 8b 45 c8 mov -0x38(%rbp),%rax 239ccf: f2 0f 11 40 40 movsd %xmm0,0x40(%rax) v[CPU_METER_TEMPERATURE] = cpuData->temperature; 239cd4: 48 8b 45 d8 mov -0x28(%rbp),%rax 239cd8: f2 0f 10 40 30 movsd 0x30(%rax),%xmm0 239cdd: 48 8b 45 c8 mov -0x38(%rbp),%rax 239ce1: f2 0f 11 40 48 movsd %xmm0,0x48(%rax) return percent; 239ce6: f2 0f 10 45 d0 movsd -0x30(%rbp),%xmm0 239ceb: 5d pop %rbp 239cec: c3 ret 239ced: 0f 1f 00 nopl (%rax) 0000000000239cf0 : } void Platform_setMemoryValues(Meter* this) { 239cf0: 55 push %rbp 239cf1: 48 89 e5 mov %rsp,%rbp 239cf4: 48 89 7d f8 mov %rdi,-0x8(%rbp) const ProcessList* pl = this->pl; 239cf8: 48 8b 45 f8 mov -0x8(%rbp),%rax 239cfc: 48 8b 40 30 mov 0x30(%rax),%rax 239d00: 48 89 45 f0 mov %rax,-0x10(%rbp) this->total = pl->totalMem; 239d04: 48 8b 45 f0 mov -0x10(%rbp),%rax 239d08: f3 0f 7e 80 98 00 00 00 movq 0x98(%rax),%xmm0 239d10: 0f 28 15 c9 e8 fc ff movaps -0x31737(%rip),%xmm2 # 2085e0 239d17: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239d1b: 66 0f 28 0d cd e8 fc ff movapd -0x31733(%rip),%xmm1 # 2085f0 239d23: 66 0f 5c c1 subpd %xmm1,%xmm0 239d27: 0f 28 d8 movaps %xmm0,%xmm3 239d2a: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239d2e: f2 0f 58 c3 addsd %xmm3,%xmm0 239d32: 48 8b 45 f8 mov -0x8(%rbp),%rax 239d36: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->values[0] = pl->usedMem; 239d3e: 48 8b 45 f0 mov -0x10(%rbp),%rax 239d42: f3 0f 7e 80 a0 00 00 00 movq 0xa0(%rax),%xmm0 239d4a: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239d4e: 66 0f 5c c1 subpd %xmm1,%xmm0 239d52: 0f 28 d8 movaps %xmm0,%xmm3 239d55: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239d59: f2 0f 58 c3 addsd %xmm3,%xmm0 239d5d: 48 8b 45 f8 mov -0x8(%rbp),%rax 239d61: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239d68: f2 0f 11 00 movsd %xmm0,(%rax) this->values[1] = pl->buffersMem; 239d6c: 48 8b 45 f0 mov -0x10(%rbp),%rax 239d70: f3 0f 7e 80 a8 00 00 00 movq 0xa8(%rax),%xmm0 239d78: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239d7c: 66 0f 5c c1 subpd %xmm1,%xmm0 239d80: 0f 28 d8 movaps %xmm0,%xmm3 239d83: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239d87: f2 0f 58 c3 addsd %xmm3,%xmm0 239d8b: 48 8b 45 f8 mov -0x8(%rbp),%rax 239d8f: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239d96: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) // this->values[2] = "shared memory, like tmpfs and shm" this->values[3] = pl->cachedMem; 239d9b: 48 8b 45 f0 mov -0x10(%rbp),%rax 239d9f: f3 0f 7e 80 b0 00 00 00 movq 0xb0(%rax),%xmm0 239da7: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239dab: 66 0f 5c c1 subpd %xmm1,%xmm0 239daf: 0f 28 c8 movaps %xmm0,%xmm1 239db2: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239db6: f2 0f 58 c1 addsd %xmm1,%xmm0 239dba: 48 8b 45 f8 mov -0x8(%rbp),%rax 239dbe: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239dc5: f2 0f 11 40 18 movsd %xmm0,0x18(%rax) // this->values[4] = "available memory" } 239dca: 5d pop %rbp 239dcb: c3 ret 239dcc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000239dd0 : void Platform_setSwapValues(Meter* this) { 239dd0: 55 push %rbp 239dd1: 48 89 e5 mov %rsp,%rbp 239dd4: 48 89 7d f8 mov %rdi,-0x8(%rbp) const ProcessList* pl = this->pl; 239dd8: 48 8b 45 f8 mov -0x8(%rbp),%rax 239ddc: 48 8b 40 30 mov 0x30(%rax),%rax 239de0: 48 89 45 f0 mov %rax,-0x10(%rbp) this->total = pl->totalSwap; 239de4: 48 8b 45 f0 mov -0x10(%rbp),%rax 239de8: f3 0f 7e 80 c8 00 00 00 movq 0xc8(%rax),%xmm0 239df0: 0f 28 15 e9 e7 fc ff movaps -0x31817(%rip),%xmm2 # 2085e0 239df7: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239dfb: 66 0f 28 0d ed e7 fc ff movapd -0x31813(%rip),%xmm1 # 2085f0 239e03: 66 0f 5c c1 subpd %xmm1,%xmm0 239e07: 0f 28 d8 movaps %xmm0,%xmm3 239e0a: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239e0e: f2 0f 58 c3 addsd %xmm3,%xmm0 239e12: 48 8b 45 f8 mov -0x8(%rbp),%rax 239e16: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->values[0] = pl->usedSwap; 239e1e: 48 8b 45 f0 mov -0x10(%rbp),%rax 239e22: f3 0f 7e 80 d0 00 00 00 movq 0xd0(%rax),%xmm0 239e2a: 66 0f 62 c2 punpckldq %xmm2,%xmm0 239e2e: 66 0f 5c c1 subpd %xmm1,%xmm0 239e32: 0f 28 c8 movaps %xmm0,%xmm1 239e35: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 239e39: f2 0f 58 c1 addsd %xmm1,%xmm0 239e3d: 48 8b 45 f8 mov -0x8(%rbp),%rax 239e41: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239e48: f2 0f 11 00 movsd %xmm0,(%rax) this->values[1] = NAN; 239e4c: 48 8b 45 f8 mov -0x8(%rbp),%rax 239e50: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 239e57: f2 0f 10 05 29 d5 fc ff movsd -0x32ad7(%rip),%xmm0 # 207388 239e5f: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) } 239e64: 5d pop %rbp 239e65: c3 ret 239e66: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0000000000239e70 : void Platform_setZfsArcValues(Meter* this) { 239e70: 55 push %rbp 239e71: 48 89 e5 mov %rsp,%rbp 239e74: 48 83 ec 10 sub $0x10,%rsp 239e78: 48 89 7d f8 mov %rdi,-0x8(%rbp) const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl; 239e7c: 48 8b 45 f8 mov -0x8(%rbp),%rax 239e80: 48 8b 40 30 mov 0x30(%rax),%rax 239e84: 48 89 45 f0 mov %rax,-0x10(%rbp) ZfsArcMeter_readStats(this, &(fpl->zfs)); 239e88: 48 8b 7d f8 mov -0x8(%rbp),%rdi 239e8c: 48 8b 75 f0 mov -0x10(%rbp),%rsi 239e90: 48 81 c6 00 01 00 00 add $0x100,%rsi 239e97: e8 e4 37 00 00 call 23d680 } 239e9c: 48 83 c4 10 add $0x10,%rsp 239ea0: 5d pop %rbp 239ea1: c3 ret 239ea2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 239eac: 0f 1f 40 00 nopl 0x0(%rax) 0000000000239eb0 : void Platform_setZfsCompressedArcValues(Meter* this) { 239eb0: 55 push %rbp 239eb1: 48 89 e5 mov %rsp,%rbp 239eb4: 48 83 ec 10 sub $0x10,%rsp 239eb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl; 239ebc: 48 8b 45 f8 mov -0x8(%rbp),%rax 239ec0: 48 8b 40 30 mov 0x30(%rax),%rax 239ec4: 48 89 45 f0 mov %rax,-0x10(%rbp) ZfsCompressedArcMeter_readStats(this, &(fpl->zfs)); 239ec8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 239ecc: 48 8b 75 f0 mov -0x10(%rbp),%rsi 239ed0: 48 81 c6 00 01 00 00 add $0x100,%rsi 239ed7: e8 04 3e 00 00 call 23dce0 } 239edc: 48 83 c4 10 add $0x10,%rsp 239ee0: 5d pop %rbp 239ee1: c3 ret 239ee2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 239eec: 0f 1f 40 00 nopl 0x0(%rax) 0000000000239ef0 : char* Platform_getProcessEnv(pid_t pid) { 239ef0: 55 push %rbp 239ef1: 48 89 e5 mov %rsp,%rbp 239ef4: 48 83 ec 50 sub $0x50,%rsp 239ef8: 48 8b 05 31 89 00 00 mov 0x8931(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239eff: 48 89 45 f8 mov %rax,-0x8(%rbp) 239f03: 89 7d cc mov %edi,-0x34(%rbp) const int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ENV, pid }; 239f06: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) 239f0d: c7 45 e4 0e 00 00 00 movl $0xe,-0x1c(%rbp) 239f14: c7 45 e8 23 00 00 00 movl $0x23,-0x18(%rbp) 239f1b: 8b 45 cc mov -0x34(%rbp),%eax 239f1e: 89 45 ec mov %eax,-0x14(%rbp) size_t capacity = ARG_MAX; 239f21: 48 c7 45 d8 00 00 08 00 movq $0x80000,-0x28(%rbp) char* env = xMalloc(capacity); 239f29: 48 8b 7d d8 mov -0x28(%rbp),%rdi 239f2d: e8 2e eb ff ff call 238a60 239f32: 48 89 45 c0 mov %rax,-0x40(%rbp) int err = sysctl(mib, 4, env, &capacity, NULL, 0); 239f36: 48 8d 7d e0 lea -0x20(%rbp),%rdi 239f3a: 48 8b 55 c0 mov -0x40(%rbp),%rdx 239f3e: be 04 00 00 00 mov $0x4,%esi 239f43: 48 8d 4d d8 lea -0x28(%rbp),%rcx 239f47: 31 c0 xor %eax,%eax 239f49: 41 89 c1 mov %eax,%r9d 239f4c: 4d 89 c8 mov %r9,%r8 239f4f: e8 1c 4a 00 00 call 23e970 239f54: 89 45 bc mov %eax,-0x44(%rbp) if (err || capacity == 0) { 239f57: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 239f5b: 0f 85 0b 00 00 00 jne 239f6c 239f61: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 239f66: 0f 85 16 00 00 00 jne 239f82 free(env); 239f6c: 48 8b 7d c0 mov -0x40(%rbp),%rdi 239f70: e8 eb 41 00 00 call 23e160 return NULL; 239f75: 48 c7 45 d0 00 00 00 00 movq $0x0,-0x30(%rbp) 239f7d: e9 68 00 00 00 jmp 239fea } if (env[capacity - 1] || env[capacity - 2]) { 239f82: 48 8b 45 c0 mov -0x40(%rbp),%rax 239f86: 48 8b 4d d8 mov -0x28(%rbp),%rcx 239f8a: 48 83 e9 01 sub $0x1,%rcx 239f8e: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 239f92: 83 f8 00 cmp $0x0,%eax 239f95: 0f 85 19 00 00 00 jne 239fb4 239f9b: 48 8b 45 c0 mov -0x40(%rbp),%rax 239f9f: 48 8b 4d d8 mov -0x28(%rbp),%rcx 239fa3: 48 83 e9 02 sub $0x2,%rcx 239fa7: 0f be 04 08 movsbl (%rax,%rcx,1),%eax 239fab: 83 f8 00 cmp $0x0,%eax 239fae: 0f 84 2e 00 00 00 je 239fe2 env = xRealloc(env, capacity + 2); 239fb4: 48 8b 7d c0 mov -0x40(%rbp),%rdi 239fb8: 48 8b 75 d8 mov -0x28(%rbp),%rsi 239fbc: 48 83 c6 02 add $0x2,%rsi 239fc0: e8 8b eb ff ff call 238b50 239fc5: 48 89 45 c0 mov %rax,-0x40(%rbp) env[capacity] = 0; 239fc9: 48 8b 45 c0 mov -0x40(%rbp),%rax 239fcd: 48 8b 4d d8 mov -0x28(%rbp),%rcx 239fd1: c6 04 08 00 movb $0x0,(%rax,%rcx,1) env[capacity + 1] = 0; 239fd5: 48 8b 45 c0 mov -0x40(%rbp),%rax 239fd9: 48 8b 4d d8 mov -0x28(%rbp),%rcx 239fdd: c6 44 08 01 00 movb $0x0,0x1(%rax,%rcx,1) } return env; 239fe2: 48 8b 45 c0 mov -0x40(%rbp),%rax 239fe6: 48 89 45 d0 mov %rax,-0x30(%rbp) } 239fea: 48 8b 45 d0 mov -0x30(%rbp),%rax 239fee: 48 89 45 b0 mov %rax,-0x50(%rbp) 239ff2: 48 8b 05 37 88 00 00 mov 0x8837(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 239ff9: 48 8b 4d f8 mov -0x8(%rbp),%rcx 239ffd: 48 39 c8 cmp %rcx,%rax 23a000: 0f 85 0a 00 00 00 jne 23a010 23a006: 48 8b 45 b0 mov -0x50(%rbp),%rax 23a00a: 48 83 c4 50 add $0x50,%rsp 23a00e: 5d pop %rbp 23a00f: c3 ret 23a010: e8 2b 41 00 00 call 23e140 <__stack_chk_fail@plt> 23a015: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23a01f: 90 nop 000000000023a020 : char* Platform_getInodeFilename(pid_t pid, ino_t inode) { 23a020: 55 push %rbp 23a021: 48 89 e5 mov %rsp,%rbp 23a024: 89 7d fc mov %edi,-0x4(%rbp) 23a027: 48 89 75 f0 mov %rsi,-0x10(%rbp) (void)pid; (void)inode; return NULL; 23a02b: 31 c0 xor %eax,%eax 23a02d: 5d pop %rbp 23a02e: c3 ret 23a02f: 90 nop 000000000023a030 : } FileLocks_ProcessData* Platform_getProcessLocks(pid_t pid) { 23a030: 55 push %rbp 23a031: 48 89 e5 mov %rsp,%rbp 23a034: 89 7d fc mov %edi,-0x4(%rbp) (void)pid; return NULL; 23a037: 31 c0 xor %eax,%eax 23a039: 5d pop %rbp 23a03a: c3 ret 23a03b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000023a040 : } bool Platform_getDiskIO(DiskIOData* data) { 23a040: 55 push %rbp 23a041: 48 89 e5 mov %rsp,%rbp 23a044: 48 81 ec 00 01 00 00 sub $0x100,%rsp 23a04b: 48 8b 05 de 87 00 00 mov 0x87de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a052: 48 89 45 f8 mov %rax,-0x8(%rbp) 23a056: 48 89 bd 70 ff ff ff mov %rdi,-0x90(%rbp) if (devstat_checkversion(NULL) < 0) 23a05d: 31 c0 xor %eax,%eax 23a05f: 89 c7 mov %eax,%edi 23a061: e8 4a 49 00 00 call 23e9b0 23a066: 83 f8 00 cmp $0x0,%eax 23a069: 0f 8d 0c 00 00 00 jge 23a07b return false; 23a06f: c6 85 7f ff ff ff 00 movb $0x0,-0x81(%rbp) 23a076: e9 de 01 00 00 jmp 23a259 // use static to plug memory leak; see #841 static struct devinfo info = { 0 }; struct statinfo current = { .dinfo = &info }; 23a07b: 48 8d 7d a0 lea -0x60(%rbp),%rdi 23a07f: 48 be 20 ae 20 00 00 00 00 00 movabs $0x20ae20,%rsi 23a089: ba 50 00 00 00 mov $0x50,%edx 23a08e: e8 fd 41 00 00 call 23e290 // get number of devices if (devstat_getdevs(NULL, ¤t) < 0) 23a093: 31 c0 xor %eax,%eax 23a095: 89 c7 mov %eax,%edi 23a097: 48 8d 75 a0 lea -0x60(%rbp),%rsi 23a09b: e8 20 49 00 00 call 23e9c0 23a0a0: 83 f8 00 cmp $0x0,%eax 23a0a3: 0f 8d 0c 00 00 00 jge 23a0b5 return false; 23a0a9: c6 85 7f ff ff ff 00 movb $0x0,-0x81(%rbp) 23a0b0: e9 a4 01 00 00 jmp 23a259 int count = current.dinfo->numdevs; 23a0b5: 48 8b 45 d8 mov -0x28(%rbp),%rax 23a0b9: 8b 40 18 mov 0x18(%rax),%eax 23a0bc: 89 85 6c ff ff ff mov %eax,-0x94(%rbp) unsigned long long int bytesReadSum = 0, bytesWriteSum = 0, timeSpendSum = 0; 23a0c2: 48 c7 85 60 ff ff ff 00 00 00 00 movq $0x0,-0xa0(%rbp) 23a0cd: 48 c7 85 58 ff ff ff 00 00 00 00 movq $0x0,-0xa8(%rbp) 23a0d8: 48 c7 85 50 ff ff ff 00 00 00 00 movq $0x0,-0xb0(%rbp) // get data for (int i = 0; i < count; i++) { 23a0e3: c7 85 4c ff ff ff 00 00 00 00 movl $0x0,-0xb4(%rbp) 23a0ed: 8b 85 4c ff ff ff mov -0xb4(%rbp),%eax 23a0f3: 3b 85 6c ff ff ff cmp -0x94(%rbp),%eax 23a0f9: 0f 8d 1e 01 00 00 jge 23a21d uint64_t bytes_read, bytes_write; long double busy_time; devstat_compute_statistics(¤t.dinfo->devices[i], 23a0ff: 48 8b 45 d8 mov -0x28(%rbp),%rax 23a103: 48 8b 38 mov (%rax),%rdi 23a106: 48 63 85 4c ff ff ff movslq -0xb4(%rbp),%rax 23a10d: 48 8d 04 c0 lea (%rax,%rax,8),%rax 23a111: 48 c1 e0 05 shl $0x5,%rax 23a115: 48 01 c7 add %rax,%rdi 23a118: 48 89 e0 mov %rsp,%rax 23a11b: 48 8d 4d 80 lea -0x80(%rbp),%rcx 23a11f: 48 89 48 18 mov %rcx,0x18(%rax) 23a123: d9 e8 fld1 23a125: db 38 fstpt (%rax) 23a127: c7 40 20 00 00 00 00 movl $0x0,0x20(%rax) 23a12e: c7 40 10 2c 00 00 00 movl $0x2c,0x10(%rax) 23a135: 31 c0 xor %eax,%eax 23a137: 89 c6 mov %eax,%esi 23a139: ba 02 00 00 00 mov $0x2,%edx 23a13e: 48 8d 4d 98 lea -0x68(%rbp),%rcx 23a142: 41 b8 03 00 00 00 mov $0x3,%r8d 23a148: 4c 8d 4d 90 lea -0x70(%rbp),%r9 23a14c: e8 7f 48 00 00 call 23e9d0 DSM_TOTAL_BYTES_READ, &bytes_read, DSM_TOTAL_BYTES_WRITE, &bytes_write, DSM_TOTAL_BUSY_TIME, &busy_time, DSM_NONE); bytesReadSum += bytes_read; 23a151: 48 8b 4d 98 mov -0x68(%rbp),%rcx 23a155: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 23a15c: 48 01 c8 add %rcx,%rax 23a15f: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) bytesWriteSum += bytes_write; 23a166: 48 8b 4d 90 mov -0x70(%rbp),%rcx 23a16a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 23a171: 48 01 c8 add %rcx,%rax 23a174: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) timeSpendSum += 1000 * busy_time; 23a17b: db 6d 80 fldt -0x80(%rbp) 23a17e: d9 05 f0 e8 fc ff flds -0x31710(%rip) # 208a74 23a184: de c9 fmulp %st,%st(1) 23a186: 48 8b 85 50 ff ff ff mov -0xb0(%rbp),%rax 23a18d: 48 89 85 38 ff ff ff mov %rax,-0xc8(%rbp) 23a194: 48 85 c0 test %rax,%rax 23a197: 0f 98 c0 sets %al 23a19a: 0f b6 c0 movzbl %al,%eax 23a19d: df ad 38 ff ff ff fildll -0xc8(%rbp) 23a1a3: d9 04 85 50 73 20 00 flds 0x207350(,%rax,4) 23a1aa: de c1 faddp %st,%st(1) 23a1ac: de c1 faddp %st,%st(1) 23a1ae: d9 05 c8 e8 fc ff flds -0x31738(%rip) # 208a7c 23a1b4: d9 c9 fxch %st(1) 23a1b6: db e9 fucomi %st(1),%st 23a1b8: d9 ee fldz 23a1ba: db c2 fcmovnb %st(2),%st 23a1bc: dd da fstp %st(2) 23a1be: de e1 fsubp %st,%st(1) 23a1c0: 0f 93 c0 setae %al 23a1c3: d9 bd 36 ff ff ff fnstcw -0xca(%rbp) 23a1c9: 0f b7 8d 36 ff ff ff movzwl -0xca(%rbp),%ecx 23a1d0: 81 c9 00 0c 00 00 or $0xc00,%ecx 23a1d6: 66 89 8d 34 ff ff ff mov %cx,-0xcc(%rbp) 23a1dd: d9 ad 34 ff ff ff fldcw -0xcc(%rbp) 23a1e3: df bd 40 ff ff ff fistpll -0xc0(%rbp) 23a1e9: d9 ad 36 ff ff ff fldcw -0xca(%rbp) 23a1ef: 0f b6 c0 movzbl %al,%eax 23a1f2: 89 c1 mov %eax,%ecx 23a1f4: 48 c1 e1 3f shl $0x3f,%rcx 23a1f8: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax 23a1ff: 48 31 c8 xor %rcx,%rax 23a202: 48 89 85 50 ff ff ff mov %rax,-0xb0(%rbp) for (int i = 0; i < count; i++) { 23a209: 8b 85 4c ff ff ff mov -0xb4(%rbp),%eax 23a20f: 83 c0 01 add $0x1,%eax 23a212: 89 85 4c ff ff ff mov %eax,-0xb4(%rbp) 23a218: e9 d0 fe ff ff jmp 23a0ed } data->totalBytesRead = bytesReadSum; 23a21d: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 23a224: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 23a22b: 48 89 08 mov %rcx,(%rax) data->totalBytesWritten = bytesWriteSum; 23a22e: 48 8b 8d 58 ff ff ff mov -0xa8(%rbp),%rcx 23a235: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 23a23c: 48 89 48 08 mov %rcx,0x8(%rax) data->totalMsTimeSpend = timeSpendSum; 23a240: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 23a247: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 23a24e: 48 89 48 10 mov %rcx,0x10(%rax) return true; 23a252: c6 85 7f ff ff ff 01 movb $0x1,-0x81(%rbp) } 23a259: 8a 85 7f ff ff ff mov -0x81(%rbp),%al 23a25f: 88 85 33 ff ff ff mov %al,-0xcd(%rbp) 23a265: 48 8b 05 c4 85 00 00 mov 0x85c4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a26c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23a270: 48 39 c8 cmp %rcx,%rax 23a273: 0f 85 14 00 00 00 jne 23a28d 23a279: 8a 85 33 ff ff ff mov -0xcd(%rbp),%al 23a27f: 24 01 and $0x1,%al 23a281: 0f b6 c0 movzbl %al,%eax 23a284: 48 81 c4 00 01 00 00 add $0x100,%rsp 23a28b: 5d pop %rbp 23a28c: c3 ret 23a28d: e8 ae 3e 00 00 call 23e140 <__stack_chk_fail@plt> 23a292: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23a29c: 0f 1f 40 00 nopl 0x0(%rax) 000000000023a2a0 : bool Platform_getNetworkIO(NetworkIOData* data) { 23a2a0: 55 push %rbp 23a2a1: 48 89 e5 mov %rsp,%rbp 23a2a4: 48 81 ec 50 01 00 00 sub $0x150,%rsp 23a2ab: 48 8b 05 7e 85 00 00 mov 0x857e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a2b2: 48 89 45 f8 mov %rax,-0x8(%rbp) 23a2b6: 48 89 bd c8 fe ff ff mov %rdi,-0x138(%rbp) // get number of interfaces int count; size_t countLen = sizeof(count); 23a2bd: 48 c7 85 e0 fe ff ff 04 00 00 00 movq $0x4,-0x120(%rbp) const int countMib[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_SYSTEM, IFMIB_IFCOUNT }; 23a2c8: 48 8b 04 25 70 ae 20 00 mov 0x20ae70,%rax 23a2d0: 48 89 45 e0 mov %rax,-0x20(%rbp) 23a2d4: 48 8b 04 25 78 ae 20 00 mov 0x20ae78,%rax 23a2dc: 48 89 45 e8 mov %rax,-0x18(%rbp) 23a2e0: 8b 04 25 80 ae 20 00 mov 0x20ae80,%eax 23a2e7: 89 45 f0 mov %eax,-0x10(%rbp) int r = sysctl(countMib, ARRAYSIZE(countMib), &count, &countLen, NULL, 0); 23a2ea: 48 8d 7d e0 lea -0x20(%rbp),%rdi 23a2ee: 48 8d 95 ec fe ff ff lea -0x114(%rbp),%rdx 23a2f5: be 05 00 00 00 mov $0x5,%esi 23a2fa: 48 8d 8d e0 fe ff ff lea -0x120(%rbp),%rcx 23a301: 31 c0 xor %eax,%eax 23a303: 41 89 c1 mov %eax,%r9d 23a306: 4d 89 c8 mov %r9,%r8 23a309: e8 62 46 00 00 call 23e970 23a30e: 89 85 c4 fe ff ff mov %eax,-0x13c(%rbp) if (r < 0) 23a314: 83 bd c4 fe ff ff 00 cmpl $0x0,-0x13c(%rbp) 23a31b: 0f 8d 0c 00 00 00 jge 23a32d return false; 23a321: c6 85 d7 fe ff ff 00 movb $0x0,-0x129(%rbp) 23a328: e9 39 01 00 00 jmp 23a466 memset(data, 0, sizeof(NetworkIOData)); 23a32d: 48 8b bd c8 fe ff ff mov -0x138(%rbp),%rdi 23a334: 31 f6 xor %esi,%esi 23a336: ba 20 00 00 00 mov $0x20,%edx 23a33b: e8 00 3f 00 00 call 23e240 for (int i = 1; i <= count; i++) { 23a340: c7 85 c0 fe ff ff 01 00 00 00 movl $0x1,-0x140(%rbp) 23a34a: 8b 85 c0 fe ff ff mov -0x140(%rbp),%eax 23a350: 3b 85 ec fe ff ff cmp -0x114(%rbp),%eax 23a356: 0f 8f 03 01 00 00 jg 23a45f struct ifmibdata ifmd; size_t ifmdLen = sizeof(ifmd); 23a35c: 48 c7 85 d8 fe ff ff d0 00 00 00 movq $0xd0,-0x128(%rbp) const int dataMib[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_IFDATA, i, IFDATA_GENERAL }; 23a367: c7 85 f0 fe ff ff 04 00 00 00 movl $0x4,-0x110(%rbp) 23a371: c7 85 f4 fe ff ff 12 00 00 00 movl $0x12,-0x10c(%rbp) 23a37b: c7 85 f8 fe ff ff 00 00 00 00 movl $0x0,-0x108(%rbp) 23a385: c7 85 fc fe ff ff 02 00 00 00 movl $0x2,-0x104(%rbp) 23a38f: 8b 85 c0 fe ff ff mov -0x140(%rbp),%eax 23a395: 89 85 00 ff ff ff mov %eax,-0x100(%rbp) 23a39b: c7 85 04 ff ff ff 01 00 00 00 movl $0x1,-0xfc(%rbp) r = sysctl(dataMib, ARRAYSIZE(dataMib), &ifmd, &ifmdLen, NULL, 0); 23a3a5: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 23a3ac: 48 8d 95 10 ff ff ff lea -0xf0(%rbp),%rdx 23a3b3: be 06 00 00 00 mov $0x6,%esi 23a3b8: 48 8d 8d d8 fe ff ff lea -0x128(%rbp),%rcx 23a3bf: 31 c0 xor %eax,%eax 23a3c1: 41 89 c1 mov %eax,%r9d 23a3c4: 4d 89 c8 mov %r9,%r8 23a3c7: e8 a4 45 00 00 call 23e970 23a3cc: 89 85 c4 fe ff ff mov %eax,-0x13c(%rbp) if (r < 0) 23a3d2: 83 bd c4 fe ff ff 00 cmpl $0x0,-0x13c(%rbp) 23a3d9: 0f 8d 05 00 00 00 jge 23a3e4 continue; 23a3df: e9 67 00 00 00 jmp 23a44b if (ifmd.ifmd_flags & IFF_LOOPBACK) 23a3e4: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 23a3ea: 83 e0 08 and $0x8,%eax 23a3ed: 83 f8 00 cmp $0x0,%eax 23a3f0: 0f 84 05 00 00 00 je 23a3fb continue; 23a3f6: e9 50 00 00 00 jmp 23a44b data->bytesReceived += ifmd.ifmd_data.ifi_ibytes; 23a3fb: 48 8b 4d 88 mov -0x78(%rbp),%rcx 23a3ff: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 23a406: 48 03 08 add (%rax),%rcx 23a409: 48 89 08 mov %rcx,(%rax) data->packetsReceived += ifmd.ifmd_data.ifi_ipackets; 23a40c: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 23a413: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 23a41a: 48 03 48 08 add 0x8(%rax),%rcx 23a41e: 48 89 48 08 mov %rcx,0x8(%rax) data->bytesTransmitted += ifmd.ifmd_data.ifi_obytes; 23a422: 48 8b 4d 90 mov -0x70(%rbp),%rcx 23a426: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 23a42d: 48 03 48 10 add 0x10(%rax),%rcx 23a431: 48 89 48 10 mov %rcx,0x10(%rax) data->packetsTransmitted += ifmd.ifmd_data.ifi_opackets; 23a435: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx 23a43c: 48 8b 85 c8 fe ff ff mov -0x138(%rbp),%rax 23a443: 48 03 48 18 add 0x18(%rax),%rcx 23a447: 48 89 48 18 mov %rcx,0x18(%rax) for (int i = 1; i <= count; i++) { 23a44b: 8b 85 c0 fe ff ff mov -0x140(%rbp),%eax 23a451: 83 c0 01 add $0x1,%eax 23a454: 89 85 c0 fe ff ff mov %eax,-0x140(%rbp) 23a45a: e9 eb fe ff ff jmp 23a34a } return true; 23a45f: c6 85 d7 fe ff ff 01 movb $0x1,-0x129(%rbp) } 23a466: 8a 85 d7 fe ff ff mov -0x129(%rbp),%al 23a46c: 88 85 bf fe ff ff mov %al,-0x141(%rbp) 23a472: 48 8b 05 b7 83 00 00 mov 0x83b7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a479: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23a47d: 48 39 c8 cmp %rcx,%rax 23a480: 0f 85 14 00 00 00 jne 23a49a 23a486: 8a 85 bf fe ff ff mov -0x141(%rbp),%al 23a48c: 24 01 and $0x1,%al 23a48e: 0f b6 c0 movzbl %al,%eax 23a491: 48 81 c4 50 01 00 00 add $0x150,%rsp 23a498: 5d pop %rbp 23a499: c3 ret 23a49a: e8 a1 3c 00 00 call 23e140 <__stack_chk_fail@plt> 23a49f: 90 nop 000000000023a4a0 : void Platform_getBattery(double* percent, ACPresence* isOnAC) { 23a4a0: 55 push %rbp 23a4a1: 48 89 e5 mov %rsp,%rbp 23a4a4: 48 83 ec 40 sub $0x40,%rsp 23a4a8: 48 8b 05 81 83 00 00 mov 0x8381(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a4af: 48 89 45 f8 mov %rax,-0x8(%rbp) 23a4b3: 48 89 7d d0 mov %rdi,-0x30(%rbp) 23a4b7: 48 89 75 c8 mov %rsi,-0x38(%rbp) int life; size_t life_len = sizeof(life); 23a4bb: 48 c7 45 e8 04 00 00 00 movq $0x4,-0x18(%rbp) if (sysctlbyname("hw.acpi.battery.life", &life, &life_len, NULL, 0) == -1) 23a4c3: 48 8d 75 f4 lea -0xc(%rbp),%rsi 23a4c7: 48 bf 34 44 20 00 00 00 00 00 movabs $0x204434,%rdi 23a4d1: 48 8d 55 e8 lea -0x18(%rbp),%rdx 23a4d5: 31 c0 xor %eax,%eax 23a4d7: 41 89 c0 mov %eax,%r8d 23a4da: 4c 89 c1 mov %r8,%rcx 23a4dd: e8 be 44 00 00 call 23e9a0 23a4e2: 83 f8 ff cmp $0xffffffff,%eax 23a4e5: 0f 85 15 00 00 00 jne 23a500 *percent = NAN; 23a4eb: 48 8b 45 d0 mov -0x30(%rbp),%rax 23a4ef: f2 0f 10 05 91 ce fc ff movsd -0x3316f(%rip),%xmm0 # 207388 23a4f7: f2 0f 11 00 movsd %xmm0,(%rax) 23a4fb: e9 0d 00 00 00 jmp 23a50d else *percent = life; 23a500: f2 0f 2a 45 f4 cvtsi2sdl -0xc(%rbp),%xmm0 23a505: 48 8b 45 d0 mov -0x30(%rbp),%rax 23a509: f2 0f 11 00 movsd %xmm0,(%rax) int acline; size_t acline_len = sizeof(acline); 23a50d: 48 c7 45 d8 04 00 00 00 movq $0x4,-0x28(%rbp) if (sysctlbyname("hw.acpi.acline", &acline, &acline_len, NULL, 0) == -1) 23a515: 48 8d 75 e4 lea -0x1c(%rbp),%rsi 23a519: 48 bf 49 44 20 00 00 00 00 00 movabs $0x204449,%rdi 23a523: 48 8d 55 d8 lea -0x28(%rbp),%rdx 23a527: 31 c0 xor %eax,%eax 23a529: 41 89 c0 mov %eax,%r8d 23a52c: 4c 89 c1 mov %r8,%rcx 23a52f: e8 6c 44 00 00 call 23e9a0 23a534: 83 f8 ff cmp $0xffffffff,%eax 23a537: 0f 85 0f 00 00 00 jne 23a54c *isOnAC = AC_ERROR; 23a53d: 48 8b 45 c8 mov -0x38(%rbp),%rax 23a541: c7 00 02 00 00 00 movl $0x2,(%rax) 23a547: e9 16 00 00 00 jmp 23a562 else *isOnAC = acline == 0 ? AC_ABSENT : AC_PRESENT; 23a54c: 8b 55 e4 mov -0x1c(%rbp),%edx 23a54f: b9 01 00 00 00 mov $0x1,%ecx 23a554: 31 c0 xor %eax,%eax 23a556: 83 fa 00 cmp $0x0,%edx 23a559: 0f 44 c8 cmove %eax,%ecx 23a55c: 48 8b 45 c8 mov -0x38(%rbp),%rax 23a560: 89 08 mov %ecx,(%rax) 23a562: 48 8b 05 c7 82 00 00 mov 0x82c7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a569: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23a56d: 48 39 c8 cmp %rcx,%rax 23a570: 0f 85 06 00 00 00 jne 23a57c } 23a576: 48 83 c4 40 add $0x40,%rsp 23a57a: 5d pop %rbp 23a57b: c3 ret 23a57c: e8 bf 3b 00 00 call 23e140 <__stack_chk_fail@plt> 23a581: cc int3 23a582: cc int3 23a583: cc int3 23a584: cc int3 23a585: cc int3 23a586: cc int3 23a587: cc int3 23a588: cc int3 23a589: cc int3 23a58a: cc int3 23a58b: cc int3 23a58c: cc int3 23a58d: cc int3 23a58e: cc int3 23a58f: cc int3 000000000023a590 : static int MIB_kern_cp_time[2]; static int MIB_kern_cp_times[2]; static int kernelFScale; ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* dynamicMeters, Hashtable* DynamicColumns, Hashtable* pidMatchList, uid_t userId) { 23a590: 55 push %rbp 23a591: 48 89 e5 mov %rsp,%rbp 23a594: 48 81 ec 80 08 00 00 sub $0x880,%rsp 23a59b: 48 8b 05 8e 82 00 00 mov 0x828e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23a5a2: 48 89 45 f8 mov %rax,-0x8(%rbp) 23a5a6: 48 89 bd d8 f7 ff ff mov %rdi,-0x828(%rbp) 23a5ad: 48 89 b5 d0 f7 ff ff mov %rsi,-0x830(%rbp) 23a5b4: 48 89 95 c8 f7 ff ff mov %rdx,-0x838(%rbp) 23a5bb: 48 89 8d c0 f7 ff ff mov %rcx,-0x840(%rbp) 23a5c2: 44 89 85 bc f7 ff ff mov %r8d,-0x844(%rbp) size_t len; char errbuf[_POSIX2_LINE_MAX]; FreeBSDProcessList* fpl = xCalloc(1, sizeof(FreeBSDProcessList)); 23a5c9: bf 01 00 00 00 mov $0x1,%edi 23a5ce: be 78 01 00 00 mov $0x178,%esi 23a5d3: e8 18 e5 ff ff call 238af0 23a5d8: 48 89 85 b0 f7 ff ff mov %rax,-0x850(%rbp) ProcessList* pl = (ProcessList*) fpl; 23a5df: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23a5e6: 48 89 85 a8 f7 ff ff mov %rax,-0x858(%rbp) ProcessList_init(pl, Class(FreeBSDProcess), usersTable, dynamicMeters, DynamicColumns, pidMatchList, userId); 23a5ed: 48 8b bd a8 f7 ff ff mov -0x858(%rbp),%rdi 23a5f4: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 23a5fb: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 23a602: 4c 8b 85 c8 f7 ff ff mov -0x838(%rbp),%r8 23a609: 4c 8b 8d c0 f7 ff ff mov -0x840(%rbp),%r9 23a610: 8b 85 bc f7 ff ff mov -0x844(%rbp),%eax 23a616: 48 be b0 be 20 00 00 00 00 00 movabs $0x20beb0,%rsi 23a620: 89 04 24 mov %eax,(%rsp) 23a623: e8 48 52 ff ff call 22f870 // physical memory in system: hw.physmem // physical page size: hw.pagesize // usable pagesize : vm.stats.vm.v_page_size len = 2; sysctlnametomib("hw.physmem", MIB_hw_physmem, &len); 23a628: 48 c7 85 e8 f7 ff ff 02 00 00 00 movq $0x2,-0x818(%rbp) 23a633: 48 bf c4 38 20 00 00 00 00 00 movabs $0x2038c4,%rdi 23a63d: 48 be e0 22 24 00 00 00 00 00 movabs $0x2422e0,%rsi 23a647: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a64e: e8 8d 43 00 00 call 23e9e0 len = sizeof(pageSize); 23a653: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) if (sysctlbyname("vm.stats.vm.v_page_size", &pageSize, &len, NULL, 0) == -1) 23a65e: 48 bf 79 42 20 00 00 00 00 00 movabs $0x204279,%rdi 23a668: 48 be e8 22 24 00 00 00 00 00 movabs $0x2422e8,%rsi 23a672: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a679: 31 c0 xor %eax,%eax 23a67b: 41 89 c0 mov %eax,%r8d 23a67e: 4c 89 c1 mov %r8,%rcx 23a681: e8 1a 43 00 00 call 23e9a0 23a686: 83 f8 ff cmp $0xffffffff,%eax 23a689: 0f 85 0f 00 00 00 jne 23a69e CRT_fatalError("Cannot get pagesize by sysctl"); 23a68f: 48 bf 44 45 20 00 00 00 00 00 movabs $0x204544,%rdi 23a699: e8 b2 1f fe ff call 21c650 pageSizeKb = pageSize / ONE_K; 23a69e: 48 63 04 25 e8 22 24 00 movslq 0x2422e8,%rax 23a6a6: 48 c1 e8 0a shr $0xa,%rax 23a6aa: 89 04 25 ec 22 24 00 mov %eax,0x2422ec // usable page count vm.stats.vm.v_page_count // actually usable memory : vm.stats.vm.v_page_count * vm.stats.vm.v_page_size len = 4; sysctlnametomib("vm.stats.vm.v_page_count", MIB_vm_stats_vm_v_page_count, &len); 23a6b1: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a6bc: 48 bf 16 3a 20 00 00 00 00 00 movabs $0x203a16,%rdi 23a6c6: 48 be f0 22 24 00 00 00 00 00 movabs $0x2422f0,%rsi 23a6d0: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a6d7: e8 04 43 00 00 call 23e9e0 len = 4; sysctlnametomib("vm.stats.vm.v_wire_count", MIB_vm_stats_vm_v_wire_count, &len); 23a6dc: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a6e7: 48 bf 62 4e 20 00 00 00 00 00 movabs $0x204e62,%rdi 23a6f1: 48 be 00 23 24 00 00 00 00 00 movabs $0x242300,%rsi 23a6fb: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a702: e8 d9 42 00 00 call 23e9e0 len = 4; sysctlnametomib("vm.stats.vm.v_active_count", MIB_vm_stats_vm_v_active_count, &len); 23a707: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a712: 48 bf 75 3f 20 00 00 00 00 00 movabs $0x203f75,%rdi 23a71c: 48 be 10 23 24 00 00 00 00 00 movabs $0x242310,%rsi 23a726: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a72d: e8 ae 42 00 00 call 23e9e0 len = 4; sysctlnametomib("vm.stats.vm.v_cache_count", MIB_vm_stats_vm_v_cache_count, &len); 23a732: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a73d: 48 bf dc 6b 20 00 00 00 00 00 movabs $0x206bdc,%rdi 23a747: 48 be 20 23 24 00 00 00 00 00 movabs $0x242320,%rsi 23a751: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a758: e8 83 42 00 00 call 23e9e0 len = 4; sysctlnametomib("vm.stats.vm.v_inactive_count", MIB_vm_stats_vm_v_inactive_count, &len); 23a75d: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a768: 48 bf 7b 3c 20 00 00 00 00 00 movabs $0x203c7b,%rdi 23a772: 48 be 30 23 24 00 00 00 00 00 movabs $0x242330,%rsi 23a77c: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a783: e8 58 42 00 00 call 23e9e0 len = 4; sysctlnametomib("vm.stats.vm.v_free_count", MIB_vm_stats_vm_v_free_count, &len); 23a788: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) 23a793: 48 bf 54 47 20 00 00 00 00 00 movabs $0x204754,%rdi 23a79d: 48 be 40 23 24 00 00 00 00 00 movabs $0x242340,%rsi 23a7a7: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a7ae: e8 2d 42 00 00 call 23e9e0 len = 2; sysctlnametomib("vfs.bufspace", MIB_vfs_bufspace, &len); 23a7b3: 48 c7 85 e8 f7 ff ff 02 00 00 00 movq $0x2,-0x818(%rbp) 23a7be: 48 bf 90 3f 20 00 00 00 00 00 movabs $0x203f90,%rdi 23a7c8: 48 be 50 23 24 00 00 00 00 00 movabs $0x242350,%rsi 23a7d2: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a7d9: e8 02 42 00 00 call 23e9e0 openzfs_sysctl_init(&fpl->zfs); 23a7de: 48 8b bd b0 f7 ff ff mov -0x850(%rbp),%rdi 23a7e5: 48 81 c7 00 01 00 00 add $0x100,%rdi 23a7ec: e8 7f 23 00 00 call 23cb70 openzfs_sysctl_updateArcStats(&fpl->zfs); 23a7f1: 48 8b bd b0 f7 ff ff mov -0x850(%rbp),%rdi 23a7f8: 48 81 c7 00 01 00 00 add $0x100,%rdi 23a7ff: e8 2c 25 00 00 call 23cd30 int smp = 0; 23a804: c7 85 e4 f7 ff ff 00 00 00 00 movl $0x0,-0x81c(%rbp) len = sizeof(smp); 23a80e: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) if (sysctlbyname("kern.smp.active", &smp, &len, NULL, 0) != 0 || len != sizeof(smp)) { 23a819: 48 8d b5 e4 f7 ff ff lea -0x81c(%rbp),%rsi 23a820: 48 bf c5 36 20 00 00 00 00 00 movabs $0x2036c5,%rdi 23a82a: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a831: 31 c0 xor %eax,%eax 23a833: 41 89 c0 mov %eax,%r8d 23a836: 4c 89 c1 mov %r8,%rcx 23a839: e8 62 41 00 00 call 23e9a0 23a83e: 83 f8 00 cmp $0x0,%eax 23a841: 0f 85 0e 00 00 00 jne 23a855 23a847: 48 83 bd e8 f7 ff ff 04 cmpq $0x4,-0x818(%rbp) 23a84f: 0f 84 0a 00 00 00 je 23a85f smp = 0; 23a855: c7 85 e4 f7 ff ff 00 00 00 00 movl $0x0,-0x81c(%rbp) } int cpus = 1; 23a85f: c7 85 e0 f7 ff ff 01 00 00 00 movl $0x1,-0x820(%rbp) len = sizeof(cpus); 23a869: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) if (smp) { 23a874: 83 bd e4 f7 ff ff 00 cmpl $0x0,-0x81c(%rbp) 23a87b: 0f 84 47 00 00 00 je 23a8c8 int err = sysctlbyname("kern.smp.cpus", &cpus, &len, NULL, 0); 23a881: 48 8d b5 e0 f7 ff ff lea -0x820(%rbp),%rsi 23a888: 48 bf 0b 41 20 00 00 00 00 00 movabs $0x20410b,%rdi 23a892: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a899: 31 c0 xor %eax,%eax 23a89b: 41 89 c0 mov %eax,%r8d 23a89e: 4c 89 c1 mov %r8,%rcx 23a8a1: e8 fa 40 00 00 call 23e9a0 23a8a6: 89 85 a4 f7 ff ff mov %eax,-0x85c(%rbp) if (err) { 23a8ac: 83 bd a4 f7 ff ff 00 cmpl $0x0,-0x85c(%rbp) 23a8b3: 0f 84 0a 00 00 00 je 23a8c3 cpus = 1; 23a8b9: c7 85 e0 f7 ff ff 01 00 00 00 movl $0x1,-0x820(%rbp) } } else { 23a8c3: e9 0a 00 00 00 jmp 23a8d2 cpus = 1; 23a8c8: c7 85 e0 f7 ff ff 01 00 00 00 movl $0x1,-0x820(%rbp) } size_t sizeof_cp_time_array = sizeof(unsigned long) * CPUSTATES; 23a8d2: 48 c7 85 98 f7 ff ff 28 00 00 00 movq $0x28,-0x868(%rbp) len = 2; sysctlnametomib("kern.cp_time", MIB_kern_cp_time, &len); 23a8dd: 48 c7 85 e8 f7 ff ff 02 00 00 00 movq $0x2,-0x818(%rbp) 23a8e8: 48 bf 58 44 20 00 00 00 00 00 movabs $0x204458,%rdi 23a8f2: 48 be 58 23 24 00 00 00 00 00 movabs $0x242358,%rsi 23a8fc: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a903: e8 d8 40 00 00 call 23e9e0 fpl->cp_time_o = xCalloc(CPUSTATES, sizeof(unsigned long)); 23a908: bf 05 00 00 00 mov $0x5,%edi 23a90d: be 08 00 00 00 mov $0x8,%esi 23a912: e8 d9 e1 ff ff call 238af0 23a917: 48 89 c1 mov %rax,%rcx 23a91a: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23a921: 48 89 88 58 01 00 00 mov %rcx,0x158(%rax) fpl->cp_time_n = xCalloc(CPUSTATES, sizeof(unsigned long)); 23a928: bf 05 00 00 00 mov $0x5,%edi 23a92d: be 08 00 00 00 mov $0x8,%esi 23a932: e8 b9 e1 ff ff call 238af0 23a937: 48 89 c1 mov %rax,%rcx 23a93a: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23a941: 48 89 88 60 01 00 00 mov %rcx,0x160(%rax) len = sizeof_cp_time_array; 23a948: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 23a94f: 48 89 85 e8 f7 ff ff mov %rax,-0x818(%rbp) // fetch initial single (or average) CPU clicks from kernel sysctl(MIB_kern_cp_time, 2, fpl->cp_time_o, &len, NULL, 0); 23a956: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23a95d: 48 8b 90 58 01 00 00 mov 0x158(%rax),%rdx 23a964: 48 bf 58 23 24 00 00 00 00 00 movabs $0x242358,%rdi 23a96e: be 02 00 00 00 mov $0x2,%esi 23a973: 48 8d 8d e8 f7 ff ff lea -0x818(%rbp),%rcx 23a97a: 31 c0 xor %eax,%eax 23a97c: 41 89 c1 mov %eax,%r9d 23a97f: 4d 89 c8 mov %r9,%r8 23a982: e8 e9 3f 00 00 call 23e970 // on smp box, fetch rest of initial CPU's clicks if (cpus > 1) { 23a987: 83 bd e0 f7 ff ff 01 cmpl $0x1,-0x820(%rbp) 23a98e: 0f 8e ba 00 00 00 jle 23aa4e len = 2; sysctlnametomib("kern.cp_times", MIB_kern_cp_times, &len); 23a994: 48 c7 85 e8 f7 ff ff 02 00 00 00 movq $0x2,-0x818(%rbp) 23a99f: 48 bf 19 41 20 00 00 00 00 00 movabs $0x204119,%rdi 23a9a9: 48 be 60 23 24 00 00 00 00 00 movabs $0x242360,%rsi 23a9b3: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23a9ba: e8 21 40 00 00 call 23e9e0 fpl->cp_times_o = xCalloc(cpus, sizeof_cp_time_array); 23a9bf: 48 63 bd e0 f7 ff ff movslq -0x820(%rbp),%rdi 23a9c6: 48 8b b5 98 f7 ff ff mov -0x868(%rbp),%rsi 23a9cd: e8 1e e1 ff ff call 238af0 23a9d2: 48 89 c1 mov %rax,%rcx 23a9d5: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23a9dc: 48 89 88 68 01 00 00 mov %rcx,0x168(%rax) fpl->cp_times_n = xCalloc(cpus, sizeof_cp_time_array); 23a9e3: 48 63 bd e0 f7 ff ff movslq -0x820(%rbp),%rdi 23a9ea: 48 8b b5 98 f7 ff ff mov -0x868(%rbp),%rsi 23a9f1: e8 fa e0 ff ff call 238af0 23a9f6: 48 89 c1 mov %rax,%rcx 23a9f9: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23aa00: 48 89 88 70 01 00 00 mov %rcx,0x170(%rax) len = cpus * sizeof_cp_time_array; 23aa07: 48 63 85 e0 f7 ff ff movslq -0x820(%rbp),%rax 23aa0e: 48 0f af 85 98 f7 ff ff imul -0x868(%rbp),%rax 23aa16: 48 89 85 e8 f7 ff ff mov %rax,-0x818(%rbp) sysctl(MIB_kern_cp_times, 2, fpl->cp_times_o, &len, NULL, 0); 23aa1d: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23aa24: 48 8b 90 68 01 00 00 mov 0x168(%rax),%rdx 23aa2b: 48 bf 60 23 24 00 00 00 00 00 movabs $0x242360,%rdi 23aa35: be 02 00 00 00 mov $0x2,%esi 23aa3a: 48 8d 8d e8 f7 ff ff lea -0x818(%rbp),%rcx 23aa41: 31 c0 xor %eax,%eax 23aa43: 41 89 c1 mov %eax,%r9d 23aa46: 4d 89 c8 mov %r9,%r8 23aa49: e8 22 3f 00 00 call 23e970 } pl->existingCPUs = MAXIMUM(cpus, 1); 23aa4e: 83 bd e0 f7 ff ff 01 cmpl $0x1,-0x820(%rbp) 23aa55: 0f 8e 11 00 00 00 jle 23aa6c 23aa5b: 8b 85 e0 f7 ff ff mov -0x820(%rbp),%eax 23aa61: 89 85 94 f7 ff ff mov %eax,-0x86c(%rbp) 23aa67: e9 10 00 00 00 jmp 23aa7c 23aa6c: b8 01 00 00 00 mov $0x1,%eax 23aa71: 89 85 94 f7 ff ff mov %eax,-0x86c(%rbp) 23aa77: e9 00 00 00 00 jmp 23aa7c 23aa7c: 8b 8d 94 f7 ff ff mov -0x86c(%rbp),%ecx 23aa82: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 23aa89: 89 88 e4 00 00 00 mov %ecx,0xe4(%rax) // TODO: support offline CPUs and hot swapping pl->activeCPUs = pl->existingCPUs; 23aa8f: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 23aa96: 8b 88 e4 00 00 00 mov 0xe4(%rax),%ecx 23aa9c: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 23aaa3: 89 88 e0 00 00 00 mov %ecx,0xe0(%rax) if (cpus == 1 ) { 23aaa9: 83 bd e0 f7 ff ff 01 cmpl $0x1,-0x820(%rbp) 23aab0: 0f 85 2e 00 00 00 jne 23aae4 fpl->cpus = xRealloc(fpl->cpus, sizeof(CPUData)); 23aab6: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23aabd: 48 8b b8 50 01 00 00 mov 0x150(%rax),%rdi 23aac4: be 38 00 00 00 mov $0x38,%esi 23aac9: e8 82 e0 ff ff call 238b50 23aace: 48 89 c1 mov %rax,%rcx 23aad1: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23aad8: 48 89 88 50 01 00 00 mov %rcx,0x150(%rax) } else { 23aadf: e9 3a 00 00 00 jmp 23ab1e // on smp we need CPUs + 1 to store averages too (as kernel kindly provides that as well) fpl->cpus = xRealloc(fpl->cpus, (pl->existingCPUs + 1) * sizeof(CPUData)); 23aae4: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23aaeb: 48 8b b8 50 01 00 00 mov 0x150(%rax),%rdi 23aaf2: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 23aaf9: 8b 80 e4 00 00 00 mov 0xe4(%rax),%eax 23aaff: 83 c0 01 add $0x1,%eax 23ab02: 89 c0 mov %eax,%eax 23ab04: 48 6b f0 38 imul $0x38,%rax,%rsi 23ab08: e8 43 e0 ff ff call 238b50 23ab0d: 48 89 c1 mov %rax,%rcx 23ab10: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23ab17: 48 89 88 50 01 00 00 mov %rcx,0x150(%rax) } len = sizeof(kernelFScale); 23ab1e: 48 c7 85 e8 f7 ff ff 04 00 00 00 movq $0x4,-0x818(%rbp) if (sysctlbyname("kern.fscale", &kernelFScale, &len, NULL, 0) == -1) { 23ab29: 48 bf 81 4c 20 00 00 00 00 00 movabs $0x204c81,%rdi 23ab33: 48 be 68 23 24 00 00 00 00 00 movabs $0x242368,%rsi 23ab3d: 48 8d 95 e8 f7 ff ff lea -0x818(%rbp),%rdx 23ab44: 31 c0 xor %eax,%eax 23ab46: 41 89 c0 mov %eax,%r8d 23ab49: 4c 89 c1 mov %r8,%rcx 23ab4c: e8 4f 3e 00 00 call 23e9a0 23ab51: 83 f8 ff cmp $0xffffffff,%eax 23ab54: 0f 85 0b 00 00 00 jne 23ab65 //sane default for kernel provided CPU percentage scaling, at least on x86 machines, in case this sysctl call failed kernelFScale = 2048; 23ab5a: c7 04 25 68 23 24 00 00 08 00 00 movl $0x800,0x242368 } fpl->kd = kvm_openfiles(NULL, "/dev/null", NULL, 0, errbuf); 23ab65: 4c 8d 85 f0 f7 ff ff lea -0x810(%rbp),%r8 23ab6c: 31 c0 xor %eax,%eax 23ab6e: 89 c2 mov %eax,%edx 23ab70: 48 be c4 5c 20 00 00 00 00 00 movabs $0x205cc4,%rsi 23ab7a: 31 c9 xor %ecx,%ecx 23ab7c: 48 89 d7 mov %rdx,%rdi 23ab7f: e8 6c 3e 00 00 call 23e9f0 23ab84: 48 89 c1 mov %rax,%rcx 23ab87: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23ab8e: 48 89 88 e8 00 00 00 mov %rcx,0xe8(%rax) if (fpl->kd == NULL) { 23ab95: 48 8b 85 b0 f7 ff ff mov -0x850(%rbp),%rax 23ab9c: 48 83 b8 e8 00 00 00 00 cmpq $0x0,0xe8(%rax) 23aba4: 0f 85 0f 00 00 00 jne 23abb9 CRT_fatalError("kvm_openfiles() failed"); 23abaa: 48 bf 86 57 20 00 00 00 00 00 movabs $0x205786,%rdi 23abb4: e8 97 1a fe ff call 21c650 } return pl; 23abb9: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 23abc0: 48 89 85 88 f7 ff ff mov %rax,-0x878(%rbp) 23abc7: 48 8b 05 62 7c 00 00 mov 0x7c62(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23abce: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23abd2: 48 39 c8 cmp %rcx,%rax 23abd5: 0f 85 10 00 00 00 jne 23abeb 23abdb: 48 8b 85 88 f7 ff ff mov -0x878(%rbp),%rax 23abe2: 48 81 c4 80 08 00 00 add $0x880,%rsp 23abe9: 5d pop %rbp 23abea: c3 ret 23abeb: e8 50 35 00 00 call 23e140 <__stack_chk_fail@plt> 000000000023abf0 : } void ProcessList_delete(ProcessList* this) { 23abf0: 55 push %rbp 23abf1: 48 89 e5 mov %rsp,%rbp 23abf4: 48 83 ec 10 sub $0x10,%rsp 23abf8: 48 89 7d f8 mov %rdi,-0x8(%rbp) const FreeBSDProcessList* fpl = (FreeBSDProcessList*) this; 23abfc: 48 8b 45 f8 mov -0x8(%rbp),%rax 23ac00: 48 89 45 f0 mov %rax,-0x10(%rbp) if (fpl->kd) { 23ac04: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac08: 48 83 b8 e8 00 00 00 00 cmpq $0x0,0xe8(%rax) 23ac10: 0f 84 10 00 00 00 je 23ac26 kvm_close(fpl->kd); 23ac16: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac1a: 48 8b b8 e8 00 00 00 mov 0xe8(%rax),%rdi 23ac21: e8 da 3d 00 00 call 23ea00 } free(fpl->cp_time_o); 23ac26: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac2a: 48 8b b8 58 01 00 00 mov 0x158(%rax),%rdi 23ac31: e8 2a 35 00 00 call 23e160 free(fpl->cp_time_n); 23ac36: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac3a: 48 8b b8 60 01 00 00 mov 0x160(%rax),%rdi 23ac41: e8 1a 35 00 00 call 23e160 free(fpl->cp_times_o); 23ac46: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac4a: 48 8b b8 68 01 00 00 mov 0x168(%rax),%rdi 23ac51: e8 0a 35 00 00 call 23e160 free(fpl->cp_times_n); 23ac56: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac5a: 48 8b b8 70 01 00 00 mov 0x170(%rax),%rdi 23ac61: e8 fa 34 00 00 call 23e160 free(fpl->cpus); 23ac66: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ac6a: 48 8b b8 50 01 00 00 mov 0x150(%rax),%rdi 23ac71: e8 ea 34 00 00 call 23e160 ProcessList_done(this); 23ac76: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23ac7a: e8 61 4d ff ff call 22f9e0 free(this); 23ac7f: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23ac83: e8 d8 34 00 00 call 23e160 } 23ac88: 48 83 c4 10 add $0x10,%rsp 23ac8c: 5d pop %rbp 23ac8d: c3 ret 23ac8e: 66 90 xchg %ax,%ax 000000000023ac90 : return xStrdup(jnamebuf); return NULL; } void ProcessList_goThroughEntries(ProcessList* super, bool pauseProcessUpdate) { 23ac90: 55 push %rbp 23ac91: 48 89 e5 mov %rsp,%rbp 23ac94: 48 81 ec 90 00 00 00 sub $0x90,%rsp 23ac9b: 40 88 f0 mov %sil,%al 23ac9e: 48 8b 0d 8b 7b 00 00 mov 0x7b8b(%rip),%rcx # 242830 <__stack_chk_guard@@FBSD_1.0> 23aca5: 48 89 4d f8 mov %rcx,-0x8(%rbp) 23aca9: 48 89 7d e8 mov %rdi,-0x18(%rbp) 23acad: 24 01 and $0x1,%al 23acaf: 88 45 e7 mov %al,-0x19(%rbp) FreeBSDProcessList* fpl = (FreeBSDProcessList*) super; 23acb2: 48 8b 45 e8 mov -0x18(%rbp),%rax 23acb6: 48 89 45 d8 mov %rax,-0x28(%rbp) const Settings* settings = super->settings; 23acba: 48 8b 45 e8 mov -0x18(%rbp),%rax 23acbe: 48 8b 00 mov (%rax),%rax 23acc1: 48 89 45 d0 mov %rax,-0x30(%rbp) bool hideKernelThreads = settings->hideKernelThreads; 23acc5: 48 8b 45 d0 mov -0x30(%rbp),%rax 23acc9: 8a 40 50 mov 0x50(%rax),%al 23accc: 24 01 and $0x1,%al 23acce: 88 45 cf mov %al,-0x31(%rbp) bool hideUserlandThreads = settings->hideUserlandThreads; 23acd1: 48 8b 45 d0 mov -0x30(%rbp),%rax 23acd5: 8a 40 51 mov 0x51(%rax),%al 23acd8: 24 01 and $0x1,%al 23acda: 88 45 ce mov %al,-0x32(%rbp) openzfs_sysctl_updateArcStats(&fpl->zfs); 23acdd: 48 8b 7d d8 mov -0x28(%rbp),%rdi 23ace1: 48 81 c7 00 01 00 00 add $0x100,%rdi 23ace8: e8 43 20 00 00 call 23cd30 FreeBSDProcessList_scanMemoryInfo(super); 23aced: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23acf1: e8 ba 07 00 00 call 23b4b0 FreeBSDProcessList_scanCPU(super); 23acf6: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23acfa: e8 81 0b 00 00 call 23b880 // in pause mode only gather global data for meters (CPU/memory/...) if (pauseProcessUpdate) { 23acff: f6 45 e7 01 testb $0x1,-0x19(%rbp) 23ad03: 0f 84 05 00 00 00 je 23ad0e return; 23ad09: e9 77 07 00 00 jmp 23b485 } int count = 0; 23ad0e: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp) const struct kinfo_proc* kprocs = kvm_getprocs(fpl->kd, KERN_PROC_PROC, 0, &count); 23ad15: 48 8b 45 d8 mov -0x28(%rbp),%rax 23ad19: 48 8b b8 e8 00 00 00 mov 0xe8(%rax),%rdi 23ad20: be 08 00 00 00 mov $0x8,%esi 23ad25: 31 d2 xor %edx,%edx 23ad27: 48 8d 4d f4 lea -0xc(%rbp),%rcx 23ad2b: e8 e0 3c 00 00 call 23ea10 23ad30: 48 89 45 c0 mov %rax,-0x40(%rbp) for (int i = 0; i < count; i++) { 23ad34: c7 45 bc 00 00 00 00 movl $0x0,-0x44(%rbp) 23ad3b: 8b 45 bc mov -0x44(%rbp),%eax 23ad3e: 3b 45 f4 cmp -0xc(%rbp),%eax 23ad41: 0f 8d 3e 07 00 00 jge 23b485 const struct kinfo_proc* kproc = &kprocs[i]; 23ad47: 48 8b 45 c0 mov -0x40(%rbp),%rax 23ad4b: 48 63 4d bc movslq -0x44(%rbp),%rcx 23ad4f: 48 69 c9 40 04 00 00 imul $0x440,%rcx,%rcx 23ad56: 48 01 c8 add %rcx,%rax 23ad59: 48 89 45 b0 mov %rax,-0x50(%rbp) bool preExisting = false; 23ad5d: c6 45 f3 00 movb $0x0,-0xd(%rbp) Process* proc = ProcessList_getProcess(super, kproc->ki_pid, &preExisting, FreeBSDProcess_new); 23ad61: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23ad65: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ad69: 8b 70 48 mov 0x48(%rax),%esi 23ad6c: 48 8d 55 f3 lea -0xd(%rbp),%rdx 23ad70: 48 b9 80 c6 23 00 00 00 00 00 movabs $0x23c680,%rcx 23ad7a: e8 71 58 ff ff call 2305f0 23ad7f: 48 89 45 a8 mov %rax,-0x58(%rbp) FreeBSDProcess* fp = (FreeBSDProcess*) proc; 23ad83: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ad87: 48 89 45 a0 mov %rax,-0x60(%rbp) if (!preExisting) { 23ad8b: f6 45 f3 01 testb $0x1,-0xd(%rbp) 23ad8f: 0f 85 f8 01 00 00 jne 23af8d fp->jid = kproc->ki_jid; 23ad95: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ad99: 8b 88 50 02 00 00 mov 0x250(%rax),%ecx 23ad9f: 48 8b 45 a0 mov -0x60(%rbp),%rax 23ada3: 89 88 f8 01 00 00 mov %ecx,0x1f8(%rax) proc->pid = kproc->ki_pid; 23ada9: 48 8b 45 b0 mov -0x50(%rbp),%rax 23adad: 8b 48 48 mov 0x48(%rax),%ecx 23adb0: 48 8b 45 a8 mov -0x58(%rbp),%rax 23adb4: 89 48 18 mov %ecx,0x18(%rax) proc->isKernelThread = kproc->ki_pid != 1 && (kproc->ki_flag & P_SYSTEM); 23adb7: 48 8b 4d b0 mov -0x50(%rbp),%rcx 23adbb: 31 c0 xor %eax,%eax 23adbd: 83 79 48 01 cmpl $0x1,0x48(%rcx) 23adc1: 88 45 97 mov %al,-0x69(%rbp) 23adc4: 0f 84 1b 00 00 00 je 23ade5 23adca: 48 8b 45 b0 mov -0x50(%rbp),%rax 23adce: 48 8b 80 70 01 00 00 mov 0x170(%rax),%rax 23add5: 48 25 00 02 00 00 and $0x200,%rax 23addb: 48 83 f8 00 cmp $0x0,%rax 23addf: 0f 95 c0 setne %al 23ade2: 88 45 97 mov %al,-0x69(%rbp) 23ade5: 8a 4d 97 mov -0x69(%rbp),%cl 23ade8: 48 8b 45 a8 mov -0x58(%rbp),%rax 23adec: 80 e1 01 and $0x1,%cl 23adef: 88 48 30 mov %cl,0x30(%rax) proc->isUserlandThread = false; 23adf2: 48 8b 45 a8 mov -0x58(%rbp),%rax 23adf6: c6 40 31 00 movb $0x0,0x31(%rax) proc->ppid = kproc->ki_ppid; 23adfa: 48 8b 45 b0 mov -0x50(%rbp),%rax 23adfe: 8b 48 4c mov 0x4c(%rax),%ecx 23ae01: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae05: 89 48 1c mov %ecx,0x1c(%rax) proc->tpgid = kproc->ki_tpgid; 23ae08: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae0c: 8b 48 54 mov 0x54(%rax),%ecx 23ae0f: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae13: 89 48 2c mov %ecx,0x2c(%rax) proc->tgid = kproc->ki_pid; 23ae16: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae1a: 8b 48 48 mov 0x48(%rax),%ecx 23ae1d: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae21: 89 48 20 mov %ecx,0x20(%rax) proc->session = kproc->ki_sid; 23ae24: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae28: 8b 48 58 mov 0x58(%rax),%ecx 23ae2b: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae2f: 89 48 28 mov %ecx,0x28(%rax) proc->pgrp = kproc->ki_pgid; 23ae32: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae36: 8b 48 50 mov 0x50(%rax),%ecx 23ae39: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae3d: 89 48 24 mov %ecx,0x24(%rax) proc->st_uid = kproc->ki_uid; 23ae40: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae44: 8b 88 a8 00 00 00 mov 0xa8(%rax),%ecx 23ae4a: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae4e: 89 48 48 mov %ecx,0x48(%rax) proc->starttime_ctime = kproc->ki_start.tv_sec; 23ae51: 48 8b 45 b0 mov -0x50(%rbp),%rax 23ae55: 48 8b 88 50 01 00 00 mov 0x150(%rax),%rcx 23ae5c: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae60: 48 89 88 b8 00 00 00 mov %rcx,0xb8(%rax) Process_fillStarttimeBuffer(proc); 23ae67: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23ae6b: e8 50 fc fe ff call 22aac0 proc->user = UsersTable_getRef(super->usersTable, proc->st_uid); 23ae70: 48 8b 45 e8 mov -0x18(%rbp),%rax 23ae74: 48 8b 78 20 mov 0x20(%rax),%rdi 23ae78: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae7c: 8b 70 48 mov 0x48(%rax),%esi 23ae7f: e8 4c d1 ff ff call 237fd0 23ae84: 48 89 c1 mov %rax,%rcx 23ae87: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ae8b: 48 89 48 50 mov %rcx,0x50(%rax) ProcessList_add(super, proc); 23ae8f: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23ae93: 48 8b 75 a8 mov -0x58(%rbp),%rsi 23ae97: e8 84 4f ff ff call 22fe20 FreeBSDProcessList_updateExe(kproc, proc); 23ae9c: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23aea0: 48 8b 75 a8 mov -0x58(%rbp),%rsi 23aea4: e8 f7 11 00 00 call 23c0a0 FreeBSDProcessList_updateProcessName(fpl->kd, kproc, proc); 23aea9: 48 8b 45 d8 mov -0x28(%rbp),%rax 23aead: 48 8b b8 e8 00 00 00 mov 0xe8(%rax),%rdi 23aeb4: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23aeb8: 48 8b 55 a8 mov -0x58(%rbp),%rdx 23aebc: e8 df 12 00 00 call 23c1a0 if (settings->flags & PROCESS_FLAG_CWD) { 23aec1: 48 8b 45 d0 mov -0x30(%rbp),%rax 23aec5: 8b 40 28 mov 0x28(%rax),%eax 23aec8: 83 e0 02 and $0x2,%eax 23aecb: 83 f8 00 cmp $0x0,%eax 23aece: 0f 84 0d 00 00 00 je 23aee1 FreeBSDProcessList_updateCwd(kproc, proc); 23aed4: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23aed8: 48 8b 75 a8 mov -0x58(%rbp),%rsi 23aedc: e8 5f 14 00 00 call 23c340 } fp->jname = FreeBSDProcessList_readJailName(kproc); 23aee1: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23aee5: e8 76 15 00 00 call 23c460 23aeea: 48 89 c1 mov %rax,%rcx 23aeed: 48 8b 45 a0 mov -0x60(%rbp),%rax 23aef1: 48 89 88 00 02 00 00 mov %rcx,0x200(%rax) proc->tty_nr = kproc->ki_tdev; 23aef8: 48 8b 45 b0 mov -0x50(%rbp),%rax 23aefc: 48 8b 88 30 02 00 00 mov 0x230(%rax),%rcx 23af03: 48 8b 45 a8 mov -0x58(%rbp),%rax 23af07: 48 89 48 38 mov %rcx,0x38(%rax) const char* name = (kproc->ki_tdev != NODEV) ? devname(kproc->ki_tdev, S_IFCHR) : NULL; 23af0b: 48 8b 45 b0 mov -0x50(%rbp),%rax 23af0f: 48 83 b8 30 02 00 00 ff cmpq $0xffffffffffffffff,0x230(%rax) 23af17: 0f 84 1e 00 00 00 je 23af3b 23af1d: 48 8b 45 b0 mov -0x50(%rbp),%rax 23af21: 48 8b b8 30 02 00 00 mov 0x230(%rax),%rdi 23af28: be 00 20 00 00 mov $0x2000,%esi 23af2d: e8 ee 3a 00 00 call 23ea20 23af32: 48 89 45 88 mov %rax,-0x78(%rbp) 23af36: e9 0b 00 00 00 jmp 23af46 23af3b: 31 c0 xor %eax,%eax 23af3d: 48 89 45 88 mov %rax,-0x78(%rbp) 23af41: e9 00 00 00 00 jmp 23af46 23af46: 48 8b 45 88 mov -0x78(%rbp),%rax 23af4a: 48 89 45 98 mov %rax,-0x68(%rbp) if (!name) { 23af4e: 48 83 7d 98 00 cmpq $0x0,-0x68(%rbp) 23af53: 0f 85 1e 00 00 00 jne 23af77 free(proc->tty_name); 23af59: 48 8b 45 a8 mov -0x58(%rbp),%rax 23af5d: 48 8b 78 40 mov 0x40(%rax),%rdi 23af61: e8 fa 31 00 00 call 23e160 proc->tty_name = NULL; 23af66: 48 8b 45 a8 mov -0x58(%rbp),%rax 23af6a: 48 c7 40 40 00 00 00 00 movq $0x0,0x40(%rax) } else { 23af72: e9 11 00 00 00 jmp 23af88 free_and_xStrdup(&proc->tty_name, name); 23af77: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23af7b: 48 83 c7 40 add $0x40,%rdi 23af7f: 48 8b 75 98 mov -0x68(%rbp),%rsi 23af83: e8 68 e6 ff ff call 2395f0 } } else { 23af88: e9 d5 00 00 00 jmp 23b062 if (fp->jid != kproc->ki_jid) { 23af8d: 48 8b 45 a0 mov -0x60(%rbp),%rax 23af91: 8b 80 f8 01 00 00 mov 0x1f8(%rax),%eax 23af97: 48 8b 4d b0 mov -0x50(%rbp),%rcx 23af9b: 3b 81 50 02 00 00 cmp 0x250(%rcx),%eax 23afa1: 0f 84 3b 00 00 00 je 23afe2 // process can enter jail anytime fp->jid = kproc->ki_jid; 23afa7: 48 8b 45 b0 mov -0x50(%rbp),%rax 23afab: 8b 88 50 02 00 00 mov 0x250(%rax),%ecx 23afb1: 48 8b 45 a0 mov -0x60(%rbp),%rax 23afb5: 89 88 f8 01 00 00 mov %ecx,0x1f8(%rax) free(fp->jname); 23afbb: 48 8b 45 a0 mov -0x60(%rbp),%rax 23afbf: 48 8b b8 00 02 00 00 mov 0x200(%rax),%rdi 23afc6: e8 95 31 00 00 call 23e160 fp->jname = FreeBSDProcessList_readJailName(kproc); 23afcb: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23afcf: e8 8c 14 00 00 call 23c460 23afd4: 48 89 c1 mov %rax,%rcx 23afd7: 48 8b 45 a0 mov -0x60(%rbp),%rax 23afdb: 48 89 88 00 02 00 00 mov %rcx,0x200(%rax) } // if there are reapers in the system, process can get reparented anytime proc->ppid = kproc->ki_ppid; 23afe2: 48 8b 45 b0 mov -0x50(%rbp),%rax 23afe6: 8b 48 4c mov 0x4c(%rax),%ecx 23afe9: 48 8b 45 a8 mov -0x58(%rbp),%rax 23afed: 89 48 1c mov %ecx,0x1c(%rax) if (proc->st_uid != kproc->ki_uid) { 23aff0: 48 8b 45 a8 mov -0x58(%rbp),%rax 23aff4: 8b 40 48 mov 0x48(%rax),%eax 23aff7: 48 8b 4d b0 mov -0x50(%rbp),%rcx 23affb: 3b 81 a8 00 00 00 cmp 0xa8(%rcx),%eax 23b001: 0f 84 30 00 00 00 je 23b037 // some processes change users (eg. to lower privs) proc->st_uid = kproc->ki_uid; 23b007: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b00b: 8b 88 a8 00 00 00 mov 0xa8(%rax),%ecx 23b011: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b015: 89 48 48 mov %ecx,0x48(%rax) proc->user = UsersTable_getRef(super->usersTable, proc->st_uid); 23b018: 48 8b 45 e8 mov -0x18(%rbp),%rax 23b01c: 48 8b 78 20 mov 0x20(%rax),%rdi 23b020: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b024: 8b 70 48 mov 0x48(%rax),%esi 23b027: e8 a4 cf ff ff call 237fd0 23b02c: 48 89 c1 mov %rax,%rcx 23b02f: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b033: 48 89 48 50 mov %rcx,0x50(%rax) } if (settings->updateProcessNames) { 23b037: 48 8b 45 d0 mov -0x30(%rbp),%rax 23b03b: f6 40 5f 01 testb $0x1,0x5f(%rax) 23b03f: 0f 84 18 00 00 00 je 23b05d FreeBSDProcessList_updateProcessName(fpl->kd, kproc, proc); 23b045: 48 8b 45 d8 mov -0x28(%rbp),%rax 23b049: 48 8b b8 e8 00 00 00 mov 0xe8(%rax),%rdi 23b050: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23b054: 48 8b 55 a8 mov -0x58(%rbp),%rdx 23b058: e8 43 11 00 00 call 23c1a0 23b05d: e9 00 00 00 00 jmp 23b062 } } // from FreeBSD source /src/usr.bin/top/machine.c proc->m_virt = kproc->ki_size / ONE_K; 23b062: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b066: 48 8b 88 00 01 00 00 mov 0x100(%rax),%rcx 23b06d: 48 c1 e9 0a shr $0xa,%rcx 23b071: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b075: 48 89 88 c8 00 00 00 mov %rcx,0xc8(%rax) proc->m_resident = kproc->ki_rssize * pageSizeKb; 23b07c: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b080: 48 8b 88 08 01 00 00 mov 0x108(%rax),%rcx 23b087: 48 63 05 5e 72 00 00 movslq 0x725e(%rip),%rax # 2422ec 23b08e: 48 0f af c8 imul %rax,%rcx 23b092: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b096: 48 89 88 d0 00 00 00 mov %rcx,0xd0(%rax) proc->nlwp = kproc->ki_numthreads; 23b09d: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b0a1: 48 63 88 54 02 00 00 movslq 0x254(%rax),%rcx 23b0a8: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b0ac: 48 89 88 b0 00 00 00 mov %rcx,0xb0(%rax) proc->time = (kproc->ki_runtime + 5000) / 10000; 23b0b3: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b0b7: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23b0be: 48 05 88 13 00 00 add $0x1388,%rax 23b0c4: 48 b9 4b 59 86 38 d6 c5 6d 34 movabs $0x346dc5d63886594b,%rcx 23b0ce: 48 f7 e1 mul %rcx 23b0d1: 48 c1 ea 0b shr $0xb,%rdx 23b0d5: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b0d9: 48 89 50 58 mov %rdx,0x58(%rax) proc->percent_cpu = 100.0 * ((double)kproc->ki_pctcpu / (double)kernelFScale); 23b0dd: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b0e1: 8b 80 34 01 00 00 mov 0x134(%rax),%eax 23b0e7: f2 48 0f 2a c0 cvtsi2sd %rax,%xmm0 23b0ec: f2 0f 2a 0d 74 72 00 00 cvtsi2sdl 0x7274(%rip),%xmm1 # 242368 23b0f4: f2 0f 5e c1 divsd %xmm1,%xmm0 23b0f8: f2 0f 10 0d 98 c2 fc ff movsd -0x33d68(%rip),%xmm1 # 207398 23b100: f2 0f 59 c1 mulsd %xmm1,%xmm0 23b104: f2 0f 5a c0 cvtsd2ss %xmm0,%xmm0 23b108: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b10c: f3 0f 11 80 94 00 00 00 movss %xmm0,0x94(%rax) proc->percent_mem = 100.0 * proc->m_resident / (double)(super->totalMem); 23b114: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b118: f2 48 0f 2a 80 d0 00 00 00 cvtsi2sdq 0xd0(%rax),%xmm0 23b121: f2 0f 59 c1 mulsd %xmm1,%xmm0 23b125: 48 8b 45 e8 mov -0x18(%rbp),%rax 23b129: f3 0f 7e 88 98 00 00 00 movq 0x98(%rax),%xmm1 23b131: 0f 28 15 a8 d4 fc ff movaps -0x32b58(%rip),%xmm2 # 2085e0 23b138: 66 0f 62 ca punpckldq %xmm2,%xmm1 23b13c: 66 0f 28 15 ac d4 fc ff movapd -0x32b54(%rip),%xmm2 # 2085f0 23b144: 66 0f 5c ca subpd %xmm2,%xmm1 23b148: 0f 28 d1 movaps %xmm1,%xmm2 23b14b: 66 0f 15 c9 unpckhpd %xmm1,%xmm1 23b14f: f2 0f 58 ca addsd %xmm2,%xmm1 23b153: f2 0f 5e c1 divsd %xmm1,%xmm0 23b157: f2 0f 5a c0 cvtsd2ss %xmm0,%xmm0 23b15b: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b15f: f3 0f 11 80 98 00 00 00 movss %xmm0,0x98(%rax) if (kproc->ki_stat == SRUN && kproc->ki_oncpu != NOCPU) { 23b167: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b16b: 0f be 80 84 01 00 00 movsbl 0x184(%rax),%eax 23b172: 83 f8 02 cmp $0x2,%eax 23b175: 0f 85 2a 00 00 00 jne 23b1a5 23b17b: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b17f: 83 b8 38 02 00 00 ff cmpl $0xffffffff,0x238(%rax) 23b186: 0f 84 19 00 00 00 je 23b1a5 proc->processor = kproc->ki_oncpu; 23b18c: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b190: 8b 88 38 02 00 00 mov 0x238(%rax),%ecx 23b196: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b19a: 89 88 90 00 00 00 mov %ecx,0x90(%rax) } else { 23b1a0: e9 14 00 00 00 jmp 23b1b9 proc->processor = kproc->ki_lastcpu; 23b1a5: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b1a9: 8b 88 3c 02 00 00 mov 0x23c(%rax),%ecx 23b1af: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b1b3: 89 88 90 00 00 00 mov %ecx,0x90(%rax) } proc->majflt = kproc->ki_cow; 23b1b9: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b1bd: 8b 80 44 01 00 00 mov 0x144(%rax),%eax 23b1c3: 89 c1 mov %eax,%ecx 23b1c5: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b1c9: 48 89 88 e0 00 00 00 mov %rcx,0xe0(%rax) proc->priority = kproc->ki_pri.pri_level - PZERO; 23b1d0: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b1d4: 0f b6 80 5d 02 00 00 movzbl 0x25d(%rax),%eax 23b1db: 83 e8 64 sub $0x64,%eax 23b1de: 48 63 c8 movslq %eax,%rcx 23b1e1: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b1e5: 48 89 88 a0 00 00 00 mov %rcx,0xa0(%rax) if (String_eq("intr", kproc->ki_comm) && (kproc->ki_flag & P_SYSTEM)) { 23b1ec: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23b1f0: 48 81 c6 bf 01 00 00 add $0x1bf,%rsi 23b1f7: 48 bf d9 53 20 00 00 00 00 00 movabs $0x2053d9,%rdi 23b201: e8 ba 13 00 00 call 23c5c0 23b206: a8 01 test $0x1,%al 23b208: 0f 85 05 00 00 00 jne 23b213 23b20e: e9 2f 00 00 00 jmp 23b242 23b213: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b217: 48 8b 80 70 01 00 00 mov 0x170(%rax),%rax 23b21e: 48 25 00 02 00 00 and $0x200,%rax 23b224: 48 83 f8 00 cmp $0x0,%rax 23b228: 0f 84 14 00 00 00 je 23b242 proc->nice = 0; //@etosan: intr kernel process (not thread) has weird nice value 23b22e: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b232: 48 c7 80 a8 00 00 00 00 00 00 00 movq $0x0,0xa8(%rax) } else if (kproc->ki_pri.pri_class == PRI_TIMESHARE) { 23b23d: e9 a3 00 00 00 jmp 23b2e5 23b242: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b246: 0f b6 80 5c 02 00 00 movzbl 0x25c(%rax),%eax 23b24d: 83 f8 03 cmp $0x3,%eax 23b250: 0f 85 21 00 00 00 jne 23b277 proc->nice = kproc->ki_nice - NZERO; 23b256: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b25a: 0f be 80 85 01 00 00 movsbl 0x185(%rax),%eax 23b261: 83 e8 00 sub $0x0,%eax 23b264: 48 63 c8 movslq %eax,%rcx 23b267: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b26b: 48 89 88 a8 00 00 00 mov %rcx,0xa8(%rax) } else if (PRI_IS_REALTIME(kproc->ki_pri.pri_class)) { 23b272: e9 69 00 00 00 jmp 23b2e0 23b277: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b27b: 0f b6 80 5c 02 00 00 movzbl 0x25c(%rax),%eax 23b282: 83 e0 f7 and $0xfffffff7,%eax 23b285: 83 f8 02 cmp $0x2,%eax 23b288: 0f 85 2c 00 00 00 jne 23b2ba proc->nice = PRIO_MIN - 1 - (PRI_MAX_REALTIME - kproc->ki_pri.pri_level); 23b28e: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b292: 0f b6 80 5d 02 00 00 movzbl 0x25d(%rax),%eax 23b299: b9 4f 00 00 00 mov $0x4f,%ecx 23b29e: 29 c1 sub %eax,%ecx 23b2a0: b8 eb ff ff ff mov $0xffffffeb,%eax 23b2a5: 29 c8 sub %ecx,%eax 23b2a7: 48 63 c8 movslq %eax,%rcx 23b2aa: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b2ae: 48 89 88 a8 00 00 00 mov %rcx,0xa8(%rax) } else { 23b2b5: e9 21 00 00 00 jmp 23b2db proc->nice = PRIO_MAX + 1 + kproc->ki_pri.pri_level - PRI_MIN_IDLE; 23b2ba: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b2be: 0f b6 80 5d 02 00 00 movzbl 0x25d(%rax),%eax 23b2c5: 83 c0 15 add $0x15,%eax 23b2c8: 2d e0 00 00 00 sub $0xe0,%eax 23b2cd: 48 63 c8 movslq %eax,%rcx 23b2d0: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b2d4: 48 89 88 a8 00 00 00 mov %rcx,0xa8(%rax) 23b2db: e9 00 00 00 00 jmp 23b2e0 23b2e0: e9 00 00 00 00 jmp 23b2e5 } /* Taken from: https://github.com/freebsd/freebsd-src/blob/1ad2d87778970582854082bcedd2df0394fd4933/sys/sys/proc.h#L851 */ switch (kproc->ki_stat) { 23b2e5: 48 8b 45 b0 mov -0x50(%rbp),%rax 23b2e9: 0f be 80 84 01 00 00 movsbl 0x184(%rax),%eax 23b2f0: 83 c0 ff add $0xffffffff,%eax 23b2f3: 89 c1 mov %eax,%ecx 23b2f5: 48 89 4d 80 mov %rcx,-0x80(%rbp) 23b2f9: 83 e8 06 sub $0x6,%eax 23b2fc: 0f 87 93 00 00 00 ja 23b395 23b302: 48 8b 45 80 mov -0x80(%rbp),%rax 23b306: 48 8b 04 c5 88 ae 20 00 mov 0x20ae88(,%rax,8),%rax 23b30e: ff e0 jmp *%rax case SIDL: proc->state = IDLE; break; 23b310: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b314: c7 80 e8 00 00 00 0d 00 00 00 movl $0xd,0xe8(%rax) 23b31e: e9 80 00 00 00 jmp 23b3a3 case SRUN: proc->state = RUNNING; break; 23b323: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b327: c7 80 e8 00 00 00 03 00 00 00 movl $0x3,0xe8(%rax) 23b331: e9 6d 00 00 00 jmp 23b3a3 case SSLEEP: proc->state = SLEEPING; break; 23b336: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b33a: c7 80 e8 00 00 00 0e 00 00 00 movl $0xe,0xe8(%rax) 23b344: e9 5a 00 00 00 jmp 23b3a3 case SSTOP: proc->state = STOPPED; break; 23b349: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b34d: c7 80 e8 00 00 00 09 00 00 00 movl $0x9,0xe8(%rax) 23b357: e9 47 00 00 00 jmp 23b3a3 case SZOMB: proc->state = ZOMBIE; break; 23b35c: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b360: c7 80 e8 00 00 00 0b 00 00 00 movl $0xb,0xe8(%rax) 23b36a: e9 34 00 00 00 jmp 23b3a3 case SWAIT: proc->state = WAITING; break; 23b36f: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b373: c7 80 e8 00 00 00 05 00 00 00 movl $0x5,0xe8(%rax) 23b37d: e9 21 00 00 00 jmp 23b3a3 case SLOCK: proc->state = BLOCKED; break; 23b382: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b386: c7 80 e8 00 00 00 07 00 00 00 movl $0x7,0xe8(%rax) 23b390: e9 0e 00 00 00 jmp 23b3a3 default: proc->state = UNKNOWN; 23b395: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b399: c7 80 e8 00 00 00 01 00 00 00 movl $0x1,0xe8(%rax) } if (Process_isKernelThread(proc)) 23b3a3: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23b3a7: e8 44 12 00 00 call 23c5f0 23b3ac: a8 01 test $0x1,%al 23b3ae: 0f 85 05 00 00 00 jne 23b3b9 23b3b4: e9 13 00 00 00 jmp 23b3cc super->kernelThreads++; 23b3b9: 48 8b 45 e8 mov -0x18(%rbp),%rax 23b3bd: 8b 88 94 00 00 00 mov 0x94(%rax),%ecx 23b3c3: 83 c1 01 add $0x1,%ecx 23b3c6: 89 88 94 00 00 00 mov %ecx,0x94(%rax) proc->show = ! ((hideKernelThreads && Process_isKernelThread(proc)) || (hideUserlandThreads && Process_isUserlandThread(proc))); 23b3cc: f6 45 cf 01 testb $0x1,-0x31(%rbp) 23b3d0: 0f 84 1c 00 00 00 je 23b3f2 23b3d6: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23b3da: e8 11 12 00 00 call 23c5f0 23b3df: 88 c1 mov %al,%cl 23b3e1: b0 01 mov $0x1,%al 23b3e3: f6 c1 01 test $0x1,%cl 23b3e6: 88 85 7f ff ff ff mov %al,-0x81(%rbp) 23b3ec: 0f 85 2d 00 00 00 jne 23b41f 23b3f2: 31 c0 xor %eax,%eax 23b3f4: f6 45 ce 01 testb $0x1,-0x32(%rbp) 23b3f8: 88 85 7e ff ff ff mov %al,-0x82(%rbp) 23b3fe: 0f 84 0f 00 00 00 je 23b413 23b404: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23b408: e8 03 12 00 00 call 23c610 23b40d: 88 85 7e ff ff ff mov %al,-0x82(%rbp) 23b413: 8a 85 7e ff ff ff mov -0x82(%rbp),%al 23b419: 88 85 7f ff ff ff mov %al,-0x81(%rbp) 23b41f: 8a 8d 7f ff ff ff mov -0x81(%rbp),%cl 23b425: 80 f1 ff xor $0xff,%cl 23b428: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b42c: 80 e1 01 and $0x1,%cl 23b42f: 88 88 ee 00 00 00 mov %cl,0xee(%rax) super->totalTasks++; 23b435: 48 8b 45 e8 mov -0x18(%rbp),%rax 23b439: 8b 88 88 00 00 00 mov 0x88(%rax),%ecx 23b43f: 83 c1 01 add $0x1,%ecx 23b442: 89 88 88 00 00 00 mov %ecx,0x88(%rax) if (proc->state == RUNNING) 23b448: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b44c: 83 b8 e8 00 00 00 03 cmpl $0x3,0xe8(%rax) 23b453: 0f 85 13 00 00 00 jne 23b46c super->runningTasks++; 23b459: 48 8b 45 e8 mov -0x18(%rbp),%rax 23b45d: 8b 88 8c 00 00 00 mov 0x8c(%rax),%ecx 23b463: 83 c1 01 add $0x1,%ecx 23b466: 89 88 8c 00 00 00 mov %ecx,0x8c(%rax) proc->updated = true; 23b46c: 48 8b 45 a8 mov -0x58(%rbp),%rax 23b470: c6 80 ec 00 00 00 01 movb $0x1,0xec(%rax) for (int i = 0; i < count; i++) { 23b477: 8b 45 bc mov -0x44(%rbp),%eax 23b47a: 83 c0 01 add $0x1,%eax 23b47d: 89 45 bc mov %eax,-0x44(%rbp) 23b480: e9 b6 f8 ff ff jmp 23ad3b 23b485: 48 8b 05 a4 73 00 00 mov 0x73a4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23b48c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23b490: 48 39 c8 cmp %rcx,%rax 23b493: 0f 85 09 00 00 00 jne 23b4a2 } } 23b499: 48 81 c4 90 00 00 00 add $0x90,%rsp 23b4a0: 5d pop %rbp 23b4a1: c3 ret 23b4a2: e8 99 2c 00 00 call 23e140 <__stack_chk_fail@plt> 23b4a7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000023b4b0 : static inline void FreeBSDProcessList_scanMemoryInfo(ProcessList* pl) { 23b4b0: 55 push %rbp 23b4b1: 48 89 e5 mov %rsp,%rbp 23b4b4: 48 81 ec 90 03 00 00 sub $0x390,%rsp 23b4bb: 48 8b 05 6e 73 00 00 mov 0x736e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23b4c2: 48 89 45 f8 mov %rax,-0x8(%rbp) 23b4c6: 48 89 bd 80 fc ff ff mov %rdi,-0x380(%rbp) FreeBSDProcessList* fpl = (FreeBSDProcessList*) pl; 23b4cd: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b4d4: 48 89 85 78 fc ff ff mov %rax,-0x388(%rbp) len = sizeof(totalMem); 23b4db: 48 c7 85 88 fc ff ff 08 00 00 00 movq $0x8,-0x378(%rbp) sysctl(MIB_hw_physmem, 2, &(totalMem), &len, NULL, 0); 23b4e6: 48 8d 95 a8 fc ff ff lea -0x358(%rbp),%rdx 23b4ed: 48 bf e0 22 24 00 00 00 00 00 movabs $0x2422e0,%rdi 23b4f7: be 02 00 00 00 mov $0x2,%esi 23b4fc: 48 8d 8d 88 fc ff ff lea -0x378(%rbp),%rcx 23b503: 31 c0 xor %eax,%eax 23b505: 41 89 c1 mov %eax,%r9d 23b508: 4d 89 c8 mov %r9,%r8 23b50b: e8 60 34 00 00 call 23e970 totalMem /= 1024; 23b510: 48 8b 85 a8 fc ff ff mov -0x358(%rbp),%rax 23b517: 48 c1 e8 0a shr $0xa,%rax 23b51b: 48 89 85 a8 fc ff ff mov %rax,-0x358(%rbp) pl->totalMem = totalMem; 23b522: 48 8b 8d a8 fc ff ff mov -0x358(%rbp),%rcx 23b529: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b530: 48 89 88 98 00 00 00 mov %rcx,0x98(%rax) len = sizeof(memActive); 23b537: 48 c7 85 88 fc ff ff 04 00 00 00 movq $0x4,-0x378(%rbp) sysctl(MIB_vm_stats_vm_v_active_count, 4, &(memActive), &len, NULL, 0); 23b542: 48 8d 95 a4 fc ff ff lea -0x35c(%rbp),%rdx 23b549: 48 bf 10 23 24 00 00 00 00 00 movabs $0x242310,%rdi 23b553: be 04 00 00 00 mov $0x4,%esi 23b558: 48 8d 8d 88 fc ff ff lea -0x378(%rbp),%rcx 23b55f: 31 c0 xor %eax,%eax 23b561: 41 89 c1 mov %eax,%r9d 23b564: 4d 89 c8 mov %r9,%r8 23b567: e8 04 34 00 00 call 23e970 memActive *= pageSizeKb; 23b56c: 8b 04 25 ec 22 24 00 mov 0x2422ec,%eax 23b573: 0f af 85 a4 fc ff ff imul -0x35c(%rbp),%eax 23b57a: 89 85 a4 fc ff ff mov %eax,-0x35c(%rbp) fpl->memActive = memActive; 23b580: 8b 85 a4 fc ff ff mov -0x35c(%rbp),%eax 23b586: 89 c1 mov %eax,%ecx 23b588: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b58f: 48 89 88 f8 00 00 00 mov %rcx,0xf8(%rax) len = sizeof(memWire); 23b596: 48 c7 85 88 fc ff ff 04 00 00 00 movq $0x4,-0x378(%rbp) sysctl(MIB_vm_stats_vm_v_wire_count, 4, &(memWire), &len, NULL, 0); 23b5a1: 48 8d 95 a0 fc ff ff lea -0x360(%rbp),%rdx 23b5a8: 48 bf 00 23 24 00 00 00 00 00 movabs $0x242300,%rdi 23b5b2: be 04 00 00 00 mov $0x4,%esi 23b5b7: 48 8d 8d 88 fc ff ff lea -0x378(%rbp),%rcx 23b5be: 31 c0 xor %eax,%eax 23b5c0: 41 89 c1 mov %eax,%r9d 23b5c3: 4d 89 c8 mov %r9,%r8 23b5c6: e8 a5 33 00 00 call 23e970 memWire *= pageSizeKb; 23b5cb: 8b 04 25 ec 22 24 00 mov 0x2422ec,%eax 23b5d2: 0f af 85 a0 fc ff ff imul -0x360(%rbp),%eax 23b5d9: 89 85 a0 fc ff ff mov %eax,-0x360(%rbp) fpl->memWire = memWire; 23b5df: 8b 85 a0 fc ff ff mov -0x360(%rbp),%eax 23b5e5: 89 c1 mov %eax,%ecx 23b5e7: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b5ee: 48 89 88 f0 00 00 00 mov %rcx,0xf0(%rax) len = sizeof(buffersMem); 23b5f5: 48 c7 85 88 fc ff ff 08 00 00 00 movq $0x8,-0x378(%rbp) sysctl(MIB_vfs_bufspace, 2, &(buffersMem), &len, NULL, 0); 23b600: 48 8d 95 90 fc ff ff lea -0x370(%rbp),%rdx 23b607: 48 bf 50 23 24 00 00 00 00 00 movabs $0x242350,%rdi 23b611: be 02 00 00 00 mov $0x2,%esi 23b616: 48 8d 8d 88 fc ff ff lea -0x378(%rbp),%rcx 23b61d: 31 c0 xor %eax,%eax 23b61f: 41 89 c1 mov %eax,%r9d 23b622: 4d 89 c8 mov %r9,%r8 23b625: e8 46 33 00 00 call 23e970 buffersMem /= 1024; 23b62a: 48 8b 85 90 fc ff ff mov -0x370(%rbp),%rax 23b631: b9 00 04 00 00 mov $0x400,%ecx 23b636: 48 99 cqto 23b638: 48 f7 f9 idiv %rcx 23b63b: 48 89 85 90 fc ff ff mov %rax,-0x370(%rbp) pl->buffersMem = buffersMem; 23b642: 48 8b 8d 90 fc ff ff mov -0x370(%rbp),%rcx 23b649: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b650: 48 89 88 a8 00 00 00 mov %rcx,0xa8(%rax) len = sizeof(cachedMem); 23b657: 48 c7 85 88 fc ff ff 04 00 00 00 movq $0x4,-0x378(%rbp) sysctl(MIB_vm_stats_vm_v_cache_count, 4, &(cachedMem), &len, NULL, 0); 23b662: 48 8d 95 9c fc ff ff lea -0x364(%rbp),%rdx 23b669: 48 bf 20 23 24 00 00 00 00 00 movabs $0x242320,%rdi 23b673: be 04 00 00 00 mov $0x4,%esi 23b678: 48 8d 8d 88 fc ff ff lea -0x378(%rbp),%rcx 23b67f: 31 c0 xor %eax,%eax 23b681: 41 89 c1 mov %eax,%r9d 23b684: 4d 89 c8 mov %r9,%r8 23b687: e8 e4 32 00 00 call 23e970 cachedMem *= pageSizeKb; 23b68c: 8b 04 25 ec 22 24 00 mov 0x2422ec,%eax 23b693: 0f af 85 9c fc ff ff imul -0x364(%rbp),%eax 23b69a: 89 85 9c fc ff ff mov %eax,-0x364(%rbp) pl->cachedMem = cachedMem; 23b6a0: 8b 85 9c fc ff ff mov -0x364(%rbp),%eax 23b6a6: 89 c1 mov %eax,%ecx 23b6a8: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b6af: 48 89 88 b0 00 00 00 mov %rcx,0xb0(%rax) if (fpl->zfs.enabled) { 23b6b6: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b6bd: 83 b8 00 01 00 00 00 cmpl $0x0,0x100(%rax) 23b6c4: 0f 84 49 00 00 00 je 23b713 fpl->memWire -= fpl->zfs.size; 23b6ca: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b6d1: 48 8b 90 10 01 00 00 mov 0x110(%rax),%rdx 23b6d8: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b6df: 48 8b 88 f0 00 00 00 mov 0xf0(%rax),%rcx 23b6e6: 48 29 d1 sub %rdx,%rcx 23b6e9: 48 89 88 f0 00 00 00 mov %rcx,0xf0(%rax) pl->cachedMem += fpl->zfs.size; 23b6f0: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b6f7: 48 8b 88 10 01 00 00 mov 0x110(%rax),%rcx 23b6fe: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b705: 48 03 88 b0 00 00 00 add 0xb0(%rax),%rcx 23b70c: 48 89 88 b0 00 00 00 mov %rcx,0xb0(%rax) pl->usedMem = fpl->memActive + fpl->memWire; 23b713: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b71a: 48 8b 88 f8 00 00 00 mov 0xf8(%rax),%rcx 23b721: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b728: 48 03 88 f0 00 00 00 add 0xf0(%rax),%rcx 23b72f: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b736: 48 89 88 a0 00 00 00 mov %rcx,0xa0(%rax) int nswap = kvm_getswapinfo(fpl->kd, swap, ARRAYSIZE(swap), 0); 23b73d: 48 8b 85 78 fc ff ff mov -0x388(%rbp),%rax 23b744: 48 8b b8 e8 00 00 00 mov 0xe8(%rax),%rdi 23b74b: 48 8d b5 b0 fc ff ff lea -0x350(%rbp),%rsi 23b752: ba 10 00 00 00 mov $0x10,%edx 23b757: 31 c9 xor %ecx,%ecx 23b759: e8 d2 32 00 00 call 23ea30 23b75e: 89 85 74 fc ff ff mov %eax,-0x38c(%rbp) pl->totalSwap = 0; 23b764: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b76b: 48 c7 80 c8 00 00 00 00 00 00 00 movq $0x0,0xc8(%rax) pl->usedSwap = 0; 23b776: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b77d: 48 c7 80 d0 00 00 00 00 00 00 00 movq $0x0,0xd0(%rax) for (int i = 0; i < nswap; i++) { 23b788: c7 85 70 fc ff ff 00 00 00 00 movl $0x0,-0x390(%rbp) 23b792: 8b 85 70 fc ff ff mov -0x390(%rbp),%eax 23b798: 3b 85 74 fc ff ff cmp -0x38c(%rbp),%eax 23b79e: 0f 8d 72 00 00 00 jge 23b816 pl->totalSwap += swap[i].ksw_total; 23b7a4: 48 63 8d 70 fc ff ff movslq -0x390(%rbp),%rcx 23b7ab: 48 8d 85 b0 fc ff ff lea -0x350(%rbp),%rax 23b7b2: 48 6b c9 34 imul $0x34,%rcx,%rcx 23b7b6: 48 01 c8 add %rcx,%rax 23b7b9: 8b 40 24 mov 0x24(%rax),%eax 23b7bc: 89 c1 mov %eax,%ecx 23b7be: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b7c5: 48 03 88 c8 00 00 00 add 0xc8(%rax),%rcx 23b7cc: 48 89 88 c8 00 00 00 mov %rcx,0xc8(%rax) pl->usedSwap += swap[i].ksw_used; 23b7d3: 48 63 8d 70 fc ff ff movslq -0x390(%rbp),%rcx 23b7da: 48 8d 85 b0 fc ff ff lea -0x350(%rbp),%rax 23b7e1: 48 6b c9 34 imul $0x34,%rcx,%rcx 23b7e5: 48 01 c8 add %rcx,%rax 23b7e8: 8b 40 20 mov 0x20(%rax),%eax 23b7eb: 89 c1 mov %eax,%ecx 23b7ed: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b7f4: 48 03 88 d0 00 00 00 add 0xd0(%rax),%rcx 23b7fb: 48 89 88 d0 00 00 00 mov %rcx,0xd0(%rax) for (int i = 0; i < nswap; i++) { 23b802: 8b 85 70 fc ff ff mov -0x390(%rbp),%eax 23b808: 83 c0 01 add $0x1,%eax 23b80b: 89 85 70 fc ff ff mov %eax,-0x390(%rbp) 23b811: e9 7c ff ff ff jmp 23b792 pl->totalSwap *= pageSizeKb; 23b816: 48 63 0c 25 ec 22 24 00 movslq 0x2422ec,%rcx 23b81e: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b825: 48 0f af 88 c8 00 00 00 imul 0xc8(%rax),%rcx 23b82d: 48 89 88 c8 00 00 00 mov %rcx,0xc8(%rax) pl->usedSwap *= pageSizeKb; 23b834: 48 63 0c 25 ec 22 24 00 movslq 0x2422ec,%rcx 23b83c: 48 8b 85 80 fc ff ff mov -0x380(%rbp),%rax 23b843: 48 0f af 88 d0 00 00 00 imul 0xd0(%rax),%rcx 23b84b: 48 89 88 d0 00 00 00 mov %rcx,0xd0(%rax) 23b852: 48 8b 05 d7 6f 00 00 mov 0x6fd7(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23b859: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23b85d: 48 39 c8 cmp %rcx,%rax 23b860: 0f 85 09 00 00 00 jne 23b86f } 23b866: 48 81 c4 90 03 00 00 add $0x390,%rsp 23b86d: 5d pop %rbp 23b86e: c3 ret 23b86f: e8 cc 28 00 00 call 23e140 <__stack_chk_fail@plt> 23b874: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23b87e: 66 90 xchg %ax,%ax 000000000023b880 : static inline void FreeBSDProcessList_scanCPU(ProcessList* pl) { 23b880: 55 push %rbp 23b881: 48 89 e5 mov %rsp,%rbp 23b884: 48 81 ec 70 01 00 00 sub $0x170,%rsp 23b88b: 48 8b 05 9e 6f 00 00 mov 0x6f9e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23b892: 48 89 45 f8 mov %rax,-0x8(%rbp) 23b896: 48 89 bd 30 ff ff ff mov %rdi,-0xd0(%rbp) const FreeBSDProcessList* fpl = (FreeBSDProcessList*) pl; 23b89d: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23b8a4: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) unsigned int cpus = pl->existingCPUs; // actual CPU count 23b8ab: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23b8b2: 8b 80 e4 00 00 00 mov 0xe4(%rax),%eax 23b8b8: 89 85 24 ff ff ff mov %eax,-0xdc(%rbp) unsigned int maxcpu = cpus; // max iteration (in case we have average + smp) 23b8be: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 23b8c4: 89 85 20 ff ff ff mov %eax,-0xe0(%rbp) sizeof_cp_time_array = sizeof(unsigned long) * CPUSTATES; 23b8ca: 48 c7 85 58 ff ff ff 28 00 00 00 movq $0x28,-0xa8(%rbp) sysctl(MIB_kern_cp_time, 2, fpl->cp_time_n, &sizeof_cp_time_array, NULL, 0); 23b8d5: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b8dc: 48 8b 90 60 01 00 00 mov 0x160(%rax),%rdx 23b8e3: 48 bf 58 23 24 00 00 00 00 00 movabs $0x242358,%rdi 23b8ed: be 02 00 00 00 mov $0x2,%esi 23b8f2: 48 8d 8d 58 ff ff ff lea -0xa8(%rbp),%rcx 23b8f9: 31 c0 xor %eax,%eax 23b8fb: 41 89 c1 mov %eax,%r9d 23b8fe: 4d 89 c8 mov %r9,%r8 23b901: e8 6a 30 00 00 call 23e970 if (cpus > 1) { 23b906: 83 bd 24 ff ff ff 01 cmpl $0x1,-0xdc(%rbp) 23b90d: 0f 86 55 00 00 00 jbe 23b968 maxcpu = cpus + 1; 23b913: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 23b919: 83 c0 01 add $0x1,%eax 23b91c: 89 85 20 ff ff ff mov %eax,-0xe0(%rbp) sizeof_cp_time_array = cpus * sizeof(unsigned long) * CPUSTATES; 23b922: 8b 85 24 ff ff ff mov -0xdc(%rbp),%eax 23b928: 48 c1 e0 03 shl $0x3,%rax 23b92c: 48 6b c0 05 imul $0x5,%rax,%rax 23b930: 48 89 85 58 ff ff ff mov %rax,-0xa8(%rbp) sysctl(MIB_kern_cp_times, 2, fpl->cp_times_n, &sizeof_cp_time_array, NULL, 0); 23b937: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b93e: 48 8b 90 70 01 00 00 mov 0x170(%rax),%rdx 23b945: 48 bf 60 23 24 00 00 00 00 00 movabs $0x242360,%rdi 23b94f: be 02 00 00 00 mov $0x2,%esi 23b954: 48 8d 8d 58 ff ff ff lea -0xa8(%rbp),%rcx 23b95b: 31 c0 xor %eax,%eax 23b95d: 41 89 c1 mov %eax,%r9d 23b960: 4d 89 c8 mov %r9,%r8 23b963: e8 08 30 00 00 call 23e970 for (unsigned int i = 0; i < maxcpu; i++) { 23b968: c7 85 04 ff ff ff 00 00 00 00 movl $0x0,-0xfc(%rbp) 23b972: 8b 85 04 ff ff ff mov -0xfc(%rbp),%eax 23b978: 3b 85 20 ff ff ff cmp -0xe0(%rbp),%eax 23b97e: 0f 83 a1 04 00 00 jae 23be25 if (cpus == 1) { 23b984: 83 bd 24 ff ff ff 01 cmpl $0x1,-0xdc(%rbp) 23b98b: 0f 85 2f 00 00 00 jne 23b9c0 cp_time_n = fpl->cp_time_n; 23b991: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b998: 48 8b 80 60 01 00 00 mov 0x160(%rax),%rax 23b99f: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) cp_time_o = fpl->cp_time_o; 23b9a6: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b9ad: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 23b9b4: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) } else { 23b9bb: e9 9c 00 00 00 jmp 23ba5c if (i == 0 ) { 23b9c0: 83 bd 04 ff ff ff 00 cmpl $0x0,-0xfc(%rbp) 23b9c7: 0f 85 2f 00 00 00 jne 23b9fc cp_time_n = fpl->cp_time_n; 23b9cd: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b9d4: 48 8b 80 60 01 00 00 mov 0x160(%rax),%rax 23b9db: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) cp_time_o = fpl->cp_time_o; 23b9e2: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23b9e9: 48 8b 80 58 01 00 00 mov 0x158(%rax),%rax 23b9f0: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) } else { 23b9f7: e9 5b 00 00 00 jmp 23ba57 cp_times_offset = i - 1; 23b9fc: 8b 85 04 ff ff ff mov -0xfc(%rbp),%eax 23ba02: 83 e8 01 sub $0x1,%eax 23ba05: 89 85 1c ff ff ff mov %eax,-0xe4(%rbp) cp_time_n = fpl->cp_times_n + (cp_times_offset * CPUSTATES); 23ba0b: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23ba12: 48 8b 80 70 01 00 00 mov 0x170(%rax),%rax 23ba19: 6b 8d 1c ff ff ff 05 imul $0x5,-0xe4(%rbp),%ecx 23ba20: 48 63 c9 movslq %ecx,%rcx 23ba23: 48 c1 e1 03 shl $0x3,%rcx 23ba27: 48 01 c8 add %rcx,%rax 23ba2a: 48 89 85 10 ff ff ff mov %rax,-0xf0(%rbp) cp_time_o = fpl->cp_times_o + (cp_times_offset * CPUSTATES); 23ba31: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23ba38: 48 8b 80 68 01 00 00 mov 0x168(%rax),%rax 23ba3f: 6b 8d 1c ff ff ff 05 imul $0x5,-0xe4(%rbp),%ecx 23ba46: 48 63 c9 movslq %ecx,%rcx 23ba49: 48 c1 e1 03 shl $0x3,%rcx 23ba4d: 48 01 c8 add %rcx,%rax 23ba50: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) 23ba57: e9 00 00 00 00 jmp 23ba5c unsigned long long total_o = 0; 23ba5c: 48 c7 85 f8 fe ff ff 00 00 00 00 movq $0x0,-0x108(%rbp) unsigned long long total_n = 0; 23ba67: 48 c7 85 f0 fe ff ff 00 00 00 00 movq $0x0,-0x110(%rbp) unsigned long long total_d = 0; 23ba72: 48 c7 85 e8 fe ff ff 00 00 00 00 movq $0x0,-0x118(%rbp) for (int s = 0; s < CPUSTATES; s++) { 23ba7d: c7 85 e4 fe ff ff 00 00 00 00 movl $0x0,-0x11c(%rbp) 23ba87: 83 bd e4 fe ff ff 05 cmpl $0x5,-0x11c(%rbp) 23ba8e: 0f 8d 84 00 00 00 jge 23bb18 cp_time_d[s] = cp_time_n[s] - cp_time_o[s]; 23ba94: 48 8b 85 10 ff ff ff mov -0xf0(%rbp),%rax 23ba9b: 48 63 8d e4 fe ff ff movslq -0x11c(%rbp),%rcx 23baa2: 48 8b 0c c8 mov (%rax,%rcx,8),%rcx 23baa6: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax 23baad: 48 63 95 e4 fe ff ff movslq -0x11c(%rbp),%rdx 23bab4: 48 2b 0c d0 sub (%rax,%rdx,8),%rcx 23bab8: 48 63 85 e4 fe ff ff movslq -0x11c(%rbp),%rax 23babf: 48 89 4c c5 d0 mov %rcx,-0x30(%rbp,%rax,8) total_o += cp_time_o[s]; 23bac4: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax 23bacb: 48 63 8d e4 fe ff ff movslq -0x11c(%rbp),%rcx 23bad2: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 23bad6: 48 03 85 f8 fe ff ff add -0x108(%rbp),%rax 23badd: 48 89 85 f8 fe ff ff mov %rax,-0x108(%rbp) total_n += cp_time_n[s]; 23bae4: 48 8b 85 10 ff ff ff mov -0xf0(%rbp),%rax 23baeb: 48 63 8d e4 fe ff ff movslq -0x11c(%rbp),%rcx 23baf2: 48 8b 04 c8 mov (%rax,%rcx,8),%rax 23baf6: 48 03 85 f0 fe ff ff add -0x110(%rbp),%rax 23bafd: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) for (int s = 0; s < CPUSTATES; s++) { 23bb04: 8b 85 e4 fe ff ff mov -0x11c(%rbp),%eax 23bb0a: 83 c0 01 add $0x1,%eax 23bb0d: 89 85 e4 fe ff ff mov %eax,-0x11c(%rbp) 23bb13: e9 6f ff ff ff jmp 23ba87 total_d = total_n - total_o; 23bb18: 48 8b 85 f0 fe ff ff mov -0x110(%rbp),%rax 23bb1f: 48 2b 85 f8 fe ff ff sub -0x108(%rbp),%rax 23bb26: 48 89 85 e8 fe ff ff mov %rax,-0x118(%rbp) if (total_d < 1 ) { 23bb2d: 48 83 bd e8 fe ff ff 01 cmpq $0x1,-0x118(%rbp) 23bb35: 0f 83 0b 00 00 00 jae 23bb46 total_d = 1; 23bb3b: 48 c7 85 e8 fe ff ff 01 00 00 00 movq $0x1,-0x118(%rbp) for (int s = 0; s < CPUSTATES; ++s) { 23bb46: c7 85 e0 fe ff ff 00 00 00 00 movl $0x0,-0x120(%rbp) 23bb50: 83 bd e0 fe ff ff 05 cmpl $0x5,-0x120(%rbp) 23bb57: 0f 8d 98 00 00 00 jge 23bbf5 cp_time_o[s] = cp_time_n[s]; 23bb5d: 48 8b 85 10 ff ff ff mov -0xf0(%rbp),%rax 23bb64: 48 63 8d e0 fe ff ff movslq -0x120(%rbp),%rcx 23bb6b: 48 8b 14 c8 mov (%rax,%rcx,8),%rdx 23bb6f: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax 23bb76: 48 89 14 c8 mov %rdx,(%rax,%rcx,8) cp_time_p[s] = ((double)cp_time_d[s]) / ((double)total_d) * 100; 23bb7a: 48 63 85 e0 fe ff ff movslq -0x120(%rbp),%rax 23bb81: f3 0f 7e 44 c5 d0 movq -0x30(%rbp,%rax,8),%xmm0 23bb87: 0f 28 1d 52 ca fc ff movaps -0x335ae(%rip),%xmm3 # 2085e0 23bb8e: 66 0f 62 c3 punpckldq %xmm3,%xmm0 23bb92: 66 0f 28 15 56 ca fc ff movapd -0x335aa(%rip),%xmm2 # 2085f0 23bb9a: 66 0f 5c c2 subpd %xmm2,%xmm0 23bb9e: 0f 28 c8 movaps %xmm0,%xmm1 23bba1: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23bba5: f2 0f 58 c1 addsd %xmm1,%xmm0 23bba9: f3 0f 7e 8d e8 fe ff ff movq -0x118(%rbp),%xmm1 23bbb1: 66 0f 62 cb punpckldq %xmm3,%xmm1 23bbb5: 66 0f 5c ca subpd %xmm2,%xmm1 23bbb9: 0f 28 d1 movaps %xmm1,%xmm2 23bbbc: 66 0f 15 c9 unpckhpd %xmm1,%xmm1 23bbc0: f2 0f 58 ca addsd %xmm2,%xmm1 23bbc4: f2 0f 5e c1 divsd %xmm1,%xmm0 23bbc8: f2 0f 10 0d c8 b7 fc ff movsd -0x34838(%rip),%xmm1 # 207398 23bbd0: f2 0f 59 c1 mulsd %xmm1,%xmm0 23bbd4: 48 63 85 e0 fe ff ff movslq -0x120(%rbp),%rax 23bbdb: f2 0f 11 44 c5 a0 movsd %xmm0,-0x60(%rbp,%rax,8) for (int s = 0; s < CPUSTATES; ++s) { 23bbe1: 8b 85 e0 fe ff ff mov -0x120(%rbp),%eax 23bbe7: 83 c0 01 add $0x1,%eax 23bbea: 89 85 e0 fe ff ff mov %eax,-0x120(%rbp) 23bbf0: e9 5b ff ff ff jmp 23bb50 CPUData* cpuData = &(fpl->cpus[i]); 23bbf5: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bbfc: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23bc03: 8b 8d 04 ff ff ff mov -0xfc(%rbp),%ecx 23bc09: 48 6b c9 38 imul $0x38,%rcx,%rcx 23bc0d: 48 01 c8 add %rcx,%rax 23bc10: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) cpuData->userPercent = cp_time_p[CP_USER]; 23bc17: f2 0f 10 45 a0 movsd -0x60(%rbp),%xmm0 23bc1c: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc23: f2 0f 11 00 movsd %xmm0,(%rax) cpuData->nicePercent = cp_time_p[CP_NICE]; 23bc27: f2 0f 10 45 a8 movsd -0x58(%rbp),%xmm0 23bc2c: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc33: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) cpuData->systemPercent = cp_time_p[CP_SYS]; 23bc38: f2 0f 10 45 b0 movsd -0x50(%rbp),%xmm0 23bc3d: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc44: f2 0f 11 40 10 movsd %xmm0,0x10(%rax) cpuData->irqPercent = cp_time_p[CP_INTR]; 23bc49: f2 0f 10 45 b8 movsd -0x48(%rbp),%xmm0 23bc4e: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc55: f2 0f 11 40 18 movsd %xmm0,0x18(%rax) cpuData->systemAllPercent = cp_time_p[CP_SYS] + cp_time_p[CP_INTR]; 23bc5a: f2 0f 10 45 b0 movsd -0x50(%rbp),%xmm0 23bc5f: f2 0f 58 45 b8 addsd -0x48(%rbp),%xmm0 23bc64: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc6b: f2 0f 11 40 20 movsd %xmm0,0x20(%rax) cpuData->temperature = NAN; 23bc70: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc77: f2 0f 10 05 09 b7 fc ff movsd -0x348f7(%rip),%xmm0 # 207388 23bc7f: f2 0f 11 40 30 movsd %xmm0,0x30(%rax) cpuData->frequency = NAN; 23bc84: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bc8b: f2 0f 10 05 f5 b6 fc ff movsd -0x3490b(%rip),%xmm0 # 207388 23bc93: f2 0f 11 40 28 movsd %xmm0,0x28(%rax) const int coreId = (cpus == 1) ? 0 : ((int)i - 1); 23bc98: 83 bd 24 ff ff ff 01 cmpl $0x1,-0xdc(%rbp) 23bc9f: 0f 85 0d 00 00 00 jne 23bcb2 23bca5: 31 c0 xor %eax,%eax 23bca7: 89 85 98 fe ff ff mov %eax,-0x168(%rbp) 23bcad: e9 0f 00 00 00 jmp 23bcc1 23bcb2: 8b 85 04 ff ff ff mov -0xfc(%rbp),%eax 23bcb8: 83 e8 01 sub $0x1,%eax 23bcbb: 89 85 98 fe ff ff mov %eax,-0x168(%rbp) 23bcc1: 8b 85 98 fe ff ff mov -0x168(%rbp),%eax 23bcc7: 89 85 d4 fe ff ff mov %eax,-0x12c(%rbp) if (coreId < 0) 23bccd: 83 bd d4 fe ff ff 00 cmpl $0x0,-0x12c(%rbp) 23bcd4: 0f 8d 05 00 00 00 jge 23bcdf continue; 23bcda: e9 32 01 00 00 jmp 23be11 if (pl->settings->showCPUTemperature) { 23bcdf: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23bce6: 48 8b 00 mov (%rax),%rax 23bce9: f6 40 48 01 testb $0x1,0x48(%rax) 23bced: 0f 84 89 00 00 00 je 23bd7c size_t len = sizeof(temperature); 23bcf3: 48 c7 85 48 ff ff ff 04 00 00 00 movq $0x4,-0xb8(%rbp) xSnprintf(mibBuffer, sizeof(mibBuffer), "dev.cpu.%d.temperature", coreId); 23bcfe: 48 8d 7d 80 lea -0x80(%rbp),%rdi 23bd02: 8b 8d d4 fe ff ff mov -0x12c(%rbp),%ecx 23bd08: be 20 00 00 00 mov $0x20,%esi 23bd0d: 48 ba d5 36 20 00 00 00 00 00 movabs $0x2036d5,%rdx 23bd17: b0 00 mov $0x0,%al 23bd19: e8 d2 d7 ff ff call 2394f0 int r = sysctlbyname(mibBuffer, &temperature, &len, NULL, 0); 23bd1e: 48 8d 7d 80 lea -0x80(%rbp),%rdi 23bd22: 48 8d b5 54 ff ff ff lea -0xac(%rbp),%rsi 23bd29: 48 8d 95 48 ff ff ff lea -0xb8(%rbp),%rdx 23bd30: 31 c0 xor %eax,%eax 23bd32: 41 89 c0 mov %eax,%r8d 23bd35: 4c 89 c1 mov %r8,%rcx 23bd38: e8 63 2c 00 00 call 23e9a0 23bd3d: 89 85 d0 fe ff ff mov %eax,-0x130(%rbp) if (r == 0) 23bd43: 83 bd d0 fe ff ff 00 cmpl $0x0,-0x130(%rbp) 23bd4a: 0f 85 27 00 00 00 jne 23bd77 cpuData->temperature = (double)(temperature - 2732) / 10.0; // convert from deci-Kelvin to Celsius 23bd50: 8b 85 54 ff ff ff mov -0xac(%rbp),%eax 23bd56: 2d ac 0a 00 00 sub $0xaac,%eax 23bd5b: f2 0f 2a c0 cvtsi2sd %eax,%xmm0 23bd5f: f2 0f 10 0d a9 b5 fc ff movsd -0x34a57(%rip),%xmm1 # 207310 23bd67: f2 0f 5e c1 divsd %xmm1,%xmm0 23bd6b: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23bd72: f2 0f 11 40 30 movsd %xmm0,0x30(%rax) } 23bd77: e9 00 00 00 00 jmp 23bd7c if (pl->settings->showCPUFrequency) { 23bd7c: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23bd83: 48 8b 00 mov (%rax),%rax 23bd86: f6 40 47 01 testb $0x1,0x47(%rax) 23bd8a: 0f 84 7c 00 00 00 je 23be0c size_t len = sizeof(frequency); 23bd90: 48 c7 85 38 ff ff ff 04 00 00 00 movq $0x4,-0xc8(%rbp) xSnprintf(mibBuffer, sizeof(mibBuffer), "dev.cpu.%d.freq", coreId); 23bd9b: 48 8d bd 60 ff ff ff lea -0xa0(%rbp),%rdi 23bda2: 8b 8d d4 fe ff ff mov -0x12c(%rbp),%ecx 23bda8: be 20 00 00 00 mov $0x20,%esi 23bdad: 48 ba c2 55 20 00 00 00 00 00 movabs $0x2055c2,%rdx 23bdb7: b0 00 mov $0x0,%al 23bdb9: e8 32 d7 ff ff call 2394f0 int r = sysctlbyname(mibBuffer, &frequency, &len, NULL, 0); 23bdbe: 48 8d bd 60 ff ff ff lea -0xa0(%rbp),%rdi 23bdc5: 48 8d b5 44 ff ff ff lea -0xbc(%rbp),%rsi 23bdcc: 48 8d 95 38 ff ff ff lea -0xc8(%rbp),%rdx 23bdd3: 31 c0 xor %eax,%eax 23bdd5: 41 89 c0 mov %eax,%r8d 23bdd8: 4c 89 c1 mov %r8,%rcx 23bddb: e8 c0 2b 00 00 call 23e9a0 23bde0: 89 85 cc fe ff ff mov %eax,-0x134(%rbp) if (r == 0) 23bde6: 83 bd cc fe ff ff 00 cmpl $0x0,-0x134(%rbp) 23bded: 0f 85 14 00 00 00 jne 23be07 cpuData->frequency = frequency; // keep in MHz 23bdf3: f2 0f 2a 85 44 ff ff ff cvtsi2sdl -0xbc(%rbp),%xmm0 23bdfb: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax 23be02: f2 0f 11 40 28 movsd %xmm0,0x28(%rax) } 23be07: e9 00 00 00 00 jmp 23be0c } 23be0c: e9 00 00 00 00 jmp 23be11 for (unsigned int i = 0; i < maxcpu; i++) { 23be11: 8b 85 04 ff ff ff mov -0xfc(%rbp),%eax 23be17: 83 c0 01 add $0x1,%eax 23be1a: 89 85 04 ff ff ff mov %eax,-0xfc(%rbp) 23be20: e9 4d fb ff ff jmp 23b972 if (cpus > 1) { 23be25: 83 bd 24 ff ff ff 01 cmpl $0x1,-0xdc(%rbp) 23be2c: 0f 86 3f 02 00 00 jbe 23c071 if (pl->settings->showCPUTemperature) { 23be32: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23be39: 48 8b 00 mov (%rax),%rax 23be3c: f6 40 48 01 testb $0x1,0x48(%rax) 23be40: 0f 84 e9 00 00 00 je 23bf2f double maxTemp = NAN; 23be46: f2 0f 10 05 3a b5 fc ff movsd -0x34ac6(%rip),%xmm0 # 207388 23be4e: f2 0f 11 85 c0 fe ff ff movsd %xmm0,-0x140(%rbp) for (unsigned int i = 1; i < maxcpu; i++) { 23be56: c7 85 bc fe ff ff 01 00 00 00 movl $0x1,-0x144(%rbp) 23be60: 8b 85 bc fe ff ff mov -0x144(%rbp),%eax 23be66: 3b 85 20 ff ff ff cmp -0xe0(%rbp),%eax 23be6c: 0f 83 a2 00 00 00 jae 23bf14 const double coreTemp = fpl->cpus[i].temperature; 23be72: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23be79: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23be80: 8b 8d bc fe ff ff mov -0x144(%rbp),%ecx 23be86: 48 6b c9 38 imul $0x38,%rcx,%rcx 23be8a: 48 01 c8 add %rcx,%rax 23be8d: f2 0f 10 40 30 movsd 0x30(%rax),%xmm0 23be92: f2 0f 11 85 b0 fe ff ff movsd %xmm0,-0x150(%rbp) if (isnan(coreTemp)) 23be9a: f2 0f 10 85 b0 fe ff ff movsd -0x150(%rbp),%xmm0 23bea2: e8 a9 07 00 00 call 23c650 <__inline_isnan> 23bea7: 83 f8 00 cmp $0x0,%eax 23beaa: 0f 84 05 00 00 00 je 23beb5 continue; 23beb0: e9 4b 00 00 00 jmp 23bf00 maxTemp = MAXIMUM(maxTemp, coreTemp); 23beb5: f2 0f 10 85 c0 fe ff ff movsd -0x140(%rbp),%xmm0 23bebd: 66 0f 2e 85 b0 fe ff ff ucomisd -0x150(%rbp),%xmm0 23bec5: 0f 86 15 00 00 00 jbe 23bee0 23becb: f2 0f 10 85 c0 fe ff ff movsd -0x140(%rbp),%xmm0 23bed3: f2 0f 11 85 90 fe ff ff movsd %xmm0,-0x170(%rbp) 23bedb: e9 10 00 00 00 jmp 23bef0 23bee0: f2 0f 10 85 b0 fe ff ff movsd -0x150(%rbp),%xmm0 23bee8: f2 0f 11 85 90 fe ff ff movsd %xmm0,-0x170(%rbp) 23bef0: f2 0f 10 85 90 fe ff ff movsd -0x170(%rbp),%xmm0 23bef8: f2 0f 11 85 c0 fe ff ff movsd %xmm0,-0x140(%rbp) for (unsigned int i = 1; i < maxcpu; i++) { 23bf00: 8b 85 bc fe ff ff mov -0x144(%rbp),%eax 23bf06: 83 c0 01 add $0x1,%eax 23bf09: 89 85 bc fe ff ff mov %eax,-0x144(%rbp) 23bf0f: e9 4c ff ff ff jmp 23be60 fpl->cpus[0].temperature = maxTemp; 23bf14: f2 0f 10 85 c0 fe ff ff movsd -0x140(%rbp),%xmm0 23bf1c: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bf23: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23bf2a: f2 0f 11 40 30 movsd %xmm0,0x30(%rax) if (pl->settings->showCPUFrequency) { 23bf2f: 48 8b 85 30 ff ff ff mov -0xd0(%rbp),%rax 23bf36: 48 8b 00 mov (%rax),%rax 23bf39: f6 40 47 01 testb $0x1,0x47(%rax) 23bf3d: 0f 84 29 01 00 00 je 23c06c const double coreZeroFreq = fpl->cpus[1].frequency; 23bf43: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bf4a: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23bf51: f2 0f 10 40 60 movsd 0x60(%rax),%xmm0 23bf56: f2 0f 11 85 a8 fe ff ff movsd %xmm0,-0x158(%rbp) double freqSum = coreZeroFreq; 23bf5e: f2 0f 10 85 a8 fe ff ff movsd -0x158(%rbp),%xmm0 23bf66: f2 0f 11 85 a0 fe ff ff movsd %xmm0,-0x160(%rbp) if (!isnan(coreZeroFreq)) { 23bf6e: f2 0f 10 85 a8 fe ff ff movsd -0x158(%rbp),%xmm0 23bf76: e8 d5 06 00 00 call 23c650 <__inline_isnan> 23bf7b: 83 f8 00 cmp $0x0,%eax 23bf7e: 0f 85 e3 00 00 00 jne 23c067 for (unsigned int i = 2; i < maxcpu; i++) { 23bf84: c7 85 9c fe ff ff 02 00 00 00 movl $0x2,-0x164(%rbp) 23bf8e: 8b 85 9c fe ff ff mov -0x164(%rbp),%eax 23bf94: 3b 85 20 ff ff ff cmp -0xe0(%rbp),%eax 23bf9a: 0f 83 9a 00 00 00 jae 23c03a if (isnan(fpl->cpus[i].frequency)) 23bfa0: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bfa7: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23bfae: 8b 8d 9c fe ff ff mov -0x164(%rbp),%ecx 23bfb4: 48 6b c9 38 imul $0x38,%rcx,%rcx 23bfb8: 48 01 c8 add %rcx,%rax 23bfbb: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 23bfc0: e8 8b 06 00 00 call 23c650 <__inline_isnan> 23bfc5: 83 f8 00 cmp $0x0,%eax 23bfc8: 0f 84 28 00 00 00 je 23bff6 fpl->cpus[i].frequency = coreZeroFreq; 23bfce: f2 0f 10 85 a8 fe ff ff movsd -0x158(%rbp),%xmm0 23bfd6: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bfdd: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23bfe4: 8b 8d 9c fe ff ff mov -0x164(%rbp),%ecx 23bfea: 48 6b c9 38 imul $0x38,%rcx,%rcx 23bfee: 48 01 c8 add %rcx,%rax 23bff1: f2 0f 11 40 28 movsd %xmm0,0x28(%rax) freqSum += fpl->cpus[i].frequency; 23bff6: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23bffd: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23c004: 8b 8d 9c fe ff ff mov -0x164(%rbp),%ecx 23c00a: 48 6b c9 38 imul $0x38,%rcx,%rcx 23c00e: 48 01 c8 add %rcx,%rax 23c011: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 23c016: f2 0f 58 85 a0 fe ff ff addsd -0x160(%rbp),%xmm0 23c01e: f2 0f 11 85 a0 fe ff ff movsd %xmm0,-0x160(%rbp) for (unsigned int i = 2; i < maxcpu; i++) { 23c026: 8b 85 9c fe ff ff mov -0x164(%rbp),%eax 23c02c: 83 c0 01 add $0x1,%eax 23c02f: 89 85 9c fe ff ff mov %eax,-0x164(%rbp) 23c035: e9 54 ff ff ff jmp 23bf8e fpl->cpus[0].frequency = freqSum / (maxcpu - 1); 23c03a: f2 0f 10 85 a0 fe ff ff movsd -0x160(%rbp),%xmm0 23c042: 8b 85 20 ff ff ff mov -0xe0(%rbp),%eax 23c048: 83 c0 ff add $0xffffffff,%eax 23c04b: f2 48 0f 2a c8 cvtsi2sd %rax,%xmm1 23c050: f2 0f 5e c1 divsd %xmm1,%xmm0 23c054: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 23c05b: 48 8b 80 50 01 00 00 mov 0x150(%rax),%rax 23c062: f2 0f 11 40 28 movsd %xmm0,0x28(%rax) } 23c067: e9 00 00 00 00 jmp 23c06c } 23c06c: e9 00 00 00 00 jmp 23c071 23c071: 48 8b 05 b8 67 00 00 mov 0x67b8(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c078: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23c07c: 48 39 c8 cmp %rcx,%rax 23c07f: 0f 85 09 00 00 00 jne 23c08e } 23c085: 48 81 c4 70 01 00 00 add $0x170,%rsp 23c08c: 5d pop %rbp 23c08d: c3 ret 23c08e: e8 ad 20 00 00 call 23e140 <__stack_chk_fail@plt> 23c093: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23c09d: 0f 1f 00 nopl (%rax) 000000000023c0a0 : static void FreeBSDProcessList_updateExe(const struct kinfo_proc* kproc, Process* proc) { 23c0a0: 55 push %rbp 23c0a1: 48 89 e5 mov %rsp,%rbp 23c0a4: 48 81 ec 40 08 00 00 sub $0x840,%rsp 23c0ab: 48 8b 05 7e 67 00 00 mov 0x677e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c0b2: 48 89 45 f8 mov %rax,-0x8(%rbp) 23c0b6: 48 89 bd d0 f7 ff ff mov %rdi,-0x830(%rbp) 23c0bd: 48 89 b5 c8 f7 ff ff mov %rsi,-0x838(%rbp) if (Process_isKernelThread(proc)) { 23c0c4: 48 8b bd c8 f7 ff ff mov -0x838(%rbp),%rdi 23c0cb: e8 20 05 00 00 call 23c5f0 23c0d0: a8 01 test $0x1,%al 23c0d2: 0f 85 05 00 00 00 jne 23c0dd 23c0d8: e9 15 00 00 00 jmp 23c0f2 Process_updateExe(proc, NULL); 23c0dd: 48 8b bd c8 f7 ff ff mov -0x838(%rbp),%rdi 23c0e4: 31 c0 xor %eax,%eax 23c0e6: 89 c6 mov %eax,%esi 23c0e8: e8 33 36 ff ff call 22f720 return; 23c0ed: e9 82 00 00 00 jmp 23c174 const int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, kproc->ki_pid }; 23c0f2: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) 23c0f9: c7 45 e4 0e 00 00 00 movl $0xe,-0x1c(%rbp) 23c100: c7 45 e8 0c 00 00 00 movl $0xc,-0x18(%rbp) 23c107: 48 8b 85 d0 f7 ff ff mov -0x830(%rbp),%rax 23c10e: 8b 40 48 mov 0x48(%rax),%eax 23c111: 89 45 ec mov %eax,-0x14(%rbp) size_t size = sizeof(buffer); 23c114: 48 c7 85 d8 f7 ff ff 00 08 00 00 movq $0x800,-0x828(%rbp) if (sysctl(mib, 4, buffer, &size, NULL, 0) != 0) { 23c11f: 48 8d 7d e0 lea -0x20(%rbp),%rdi 23c123: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 23c12a: be 04 00 00 00 mov $0x4,%esi 23c12f: 48 8d 8d d8 f7 ff ff lea -0x828(%rbp),%rcx 23c136: 31 c0 xor %eax,%eax 23c138: 41 89 c1 mov %eax,%r9d 23c13b: 4d 89 c8 mov %r9,%r8 23c13e: e8 2d 28 00 00 call 23e970 23c143: 83 f8 00 cmp $0x0,%eax 23c146: 0f 84 15 00 00 00 je 23c161 Process_updateExe(proc, NULL); 23c14c: 48 8b bd c8 f7 ff ff mov -0x838(%rbp),%rdi 23c153: 31 c0 xor %eax,%eax 23c155: 89 c6 mov %eax,%esi 23c157: e8 c4 35 ff ff call 22f720 return; 23c15c: e9 13 00 00 00 jmp 23c174 Process_updateExe(proc, buffer); 23c161: 48 8b bd c8 f7 ff ff mov -0x838(%rbp),%rdi 23c168: 48 8d b5 e0 f7 ff ff lea -0x820(%rbp),%rsi 23c16f: e8 ac 35 ff ff call 22f720 23c174: 48 8b 05 b5 66 00 00 mov 0x66b5(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c17b: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23c17f: 48 39 c8 cmp %rcx,%rax 23c182: 0f 85 09 00 00 00 jne 23c191 } 23c188: 48 81 c4 40 08 00 00 add $0x840,%rsp 23c18f: 5d pop %rbp 23c190: c3 ret 23c191: e8 aa 1f 00 00 call 23e140 <__stack_chk_fail@plt> 23c196: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000023c1a0 : static void FreeBSDProcessList_updateProcessName(kvm_t* kd, const struct kinfo_proc* kproc, Process* proc) { 23c1a0: 55 push %rbp 23c1a1: 48 89 e5 mov %rsp,%rbp 23c1a4: 48 83 ec 60 sub $0x60,%rsp 23c1a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23c1ac: 48 89 75 f0 mov %rsi,-0x10(%rbp) 23c1b0: 48 89 55 e8 mov %rdx,-0x18(%rbp) Process_updateComm(proc, kproc->ki_comm); 23c1b4: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23c1b8: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23c1bc: 48 81 c6 bf 01 00 00 add $0x1bf,%rsi 23c1c3: e8 28 32 ff ff call 22f3f0 char** argv = kvm_getargv(kd, kproc, 0); 23c1c8: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23c1cc: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23c1d0: 31 d2 xor %edx,%edx 23c1d2: e8 69 28 00 00 call 23ea40 23c1d7: 48 89 45 e0 mov %rax,-0x20(%rbp) if (!argv || !argv[0]) { 23c1db: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 23c1e0: 0f 84 0e 00 00 00 je 23c1f4 23c1e6: 48 8b 45 e0 mov -0x20(%rbp),%rax 23c1ea: 48 83 38 00 cmpq $0x0,(%rax) 23c1ee: 0f 85 3c 00 00 00 jne 23c230 Process_updateCmdline(proc, kproc->ki_comm, 0, strlen(kproc->ki_comm)); 23c1f4: 48 8b 45 e8 mov -0x18(%rbp),%rax 23c1f8: 48 89 45 a8 mov %rax,-0x58(%rbp) 23c1fc: 48 8b 45 f0 mov -0x10(%rbp),%rax 23c200: 48 05 bf 01 00 00 add $0x1bf,%rax 23c206: 48 89 45 b0 mov %rax,-0x50(%rbp) 23c20a: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23c20e: 48 81 c7 bf 01 00 00 add $0x1bf,%rdi 23c215: e8 d6 1f 00 00 call 23e1f0 23c21a: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23c21e: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23c222: 89 c1 mov %eax,%ecx 23c224: 31 d2 xor %edx,%edx 23c226: e8 c5 32 ff ff call 22f4f0 return; 23c22b: e9 02 01 00 00 jmp 23c332 size_t len = 0; 23c230: 48 c7 45 d8 00 00 00 00 movq $0x0,-0x28(%rbp) for (int i = 0; argv[i]; i++) { 23c238: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) 23c23f: 48 8b 45 e0 mov -0x20(%rbp),%rax 23c243: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 23c247: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 23c24c: 0f 84 2b 00 00 00 je 23c27d len += strlen(argv[i]) + 1; 23c252: 48 8b 45 e0 mov -0x20(%rbp),%rax 23c256: 48 63 4d d4 movslq -0x2c(%rbp),%rcx 23c25a: 48 8b 3c c8 mov (%rax,%rcx,8),%rdi 23c25e: e8 8d 1f 00 00 call 23e1f0 23c263: 48 83 c0 01 add $0x1,%rax 23c267: 48 03 45 d8 add -0x28(%rbp),%rax 23c26b: 48 89 45 d8 mov %rax,-0x28(%rbp) for (int i = 0; argv[i]; i++) { 23c26f: 8b 45 d4 mov -0x2c(%rbp),%eax 23c272: 83 c0 01 add $0x1,%eax 23c275: 89 45 d4 mov %eax,-0x2c(%rbp) 23c278: e9 c2 ff ff ff jmp 23c23f char* cmdline = xMalloc(len); 23c27d: 48 8b 7d d8 mov -0x28(%rbp),%rdi 23c281: e8 da c7 ff ff call 238a60 23c286: 48 89 45 c8 mov %rax,-0x38(%rbp) char* at = cmdline; 23c28a: 48 8b 45 c8 mov -0x38(%rbp),%rax 23c28e: 48 89 45 c0 mov %rax,-0x40(%rbp) int end = 0; 23c292: c7 45 bc 00 00 00 00 movl $0x0,-0x44(%rbp) for (int i = 0; argv[i]; i++) { 23c299: c7 45 b8 00 00 00 00 movl $0x0,-0x48(%rbp) 23c2a0: 48 8b 45 e0 mov -0x20(%rbp),%rax 23c2a4: 48 63 4d b8 movslq -0x48(%rbp),%rcx 23c2a8: 48 83 3c c8 00 cmpq $0x0,(%rax,%rcx,8) 23c2ad: 0f 84 51 00 00 00 je 23c304 at = stpcpy(at, argv[i]); 23c2b3: 48 8b 7d c0 mov -0x40(%rbp),%rdi 23c2b7: 48 8b 45 e0 mov -0x20(%rbp),%rax 23c2bb: 48 63 4d b8 movslq -0x48(%rbp),%rcx 23c2bf: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi 23c2c3: e8 88 24 00 00 call 23e750 23c2c8: 48 89 45 c0 mov %rax,-0x40(%rbp) if (end == 0) { 23c2cc: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 23c2d0: 0f 85 0e 00 00 00 jne 23c2e4 end = at - cmdline; 23c2d6: 48 8b 45 c0 mov -0x40(%rbp),%rax 23c2da: 48 8b 4d c8 mov -0x38(%rbp),%rcx 23c2de: 48 29 c8 sub %rcx,%rax 23c2e1: 89 45 bc mov %eax,-0x44(%rbp) *at++ = ' '; 23c2e4: 48 8b 45 c0 mov -0x40(%rbp),%rax 23c2e8: 48 89 c1 mov %rax,%rcx 23c2eb: 48 83 c1 01 add $0x1,%rcx 23c2ef: 48 89 4d c0 mov %rcx,-0x40(%rbp) 23c2f3: c6 00 20 movb $0x20,(%rax) for (int i = 0; argv[i]; i++) { 23c2f6: 8b 45 b8 mov -0x48(%rbp),%eax 23c2f9: 83 c0 01 add $0x1,%eax 23c2fc: 89 45 b8 mov %eax,-0x48(%rbp) 23c2ff: e9 9c ff ff ff jmp 23c2a0 at--; 23c304: 48 8b 45 c0 mov -0x40(%rbp),%rax 23c308: 48 83 c0 ff add $0xffffffffffffffff,%rax 23c30c: 48 89 45 c0 mov %rax,-0x40(%rbp) *at = '\0'; 23c310: 48 8b 45 c0 mov -0x40(%rbp),%rax 23c314: c6 00 00 movb $0x0,(%rax) Process_updateCmdline(proc, cmdline, 0, end); 23c317: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23c31b: 48 8b 75 c8 mov -0x38(%rbp),%rsi 23c31f: 8b 4d bc mov -0x44(%rbp),%ecx 23c322: 31 d2 xor %edx,%edx 23c324: e8 c7 31 ff ff call 22f4f0 free(cmdline); 23c329: 48 8b 7d c8 mov -0x38(%rbp),%rdi 23c32d: e8 2e 1e 00 00 call 23e160 } 23c332: 48 83 c4 60 add $0x60,%rsp 23c336: 5d pop %rbp 23c337: c3 ret 23c338: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 000000000023c340 : static void FreeBSDProcessList_updateCwd(const struct kinfo_proc* kproc, Process* proc) { 23c340: 55 push %rbp 23c341: 48 89 e5 mov %rsp,%rbp 23c344: 48 81 ec 40 08 00 00 sub $0x840,%rsp 23c34b: 48 8b 05 de 64 00 00 mov 0x64de(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c352: 48 89 45 f8 mov %rax,-0x8(%rbp) 23c356: 48 89 bd d0 f7 ff ff mov %rdi,-0x830(%rbp) 23c35d: 48 89 b5 c8 f7 ff ff mov %rsi,-0x838(%rbp) const int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_CWD, kproc->ki_pid }; 23c364: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%rbp) 23c36b: c7 45 e4 0e 00 00 00 movl $0xe,-0x1c(%rbp) 23c372: c7 45 e8 2a 00 00 00 movl $0x2a,-0x18(%rbp) 23c379: 48 8b 85 d0 f7 ff ff mov -0x830(%rbp),%rax 23c380: 8b 40 48 mov 0x48(%rax),%eax 23c383: 89 45 ec mov %eax,-0x14(%rbp) size_t size = sizeof(buffer); 23c386: 48 c7 85 d8 f7 ff ff 00 08 00 00 movq $0x800,-0x828(%rbp) if (sysctl(mib, 4, buffer, &size, NULL, 0) != 0) { 23c391: 48 8d 7d e0 lea -0x20(%rbp),%rdi 23c395: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 23c39c: be 04 00 00 00 mov $0x4,%esi 23c3a1: 48 8d 8d d8 f7 ff ff lea -0x828(%rbp),%rcx 23c3a8: 31 c0 xor %eax,%eax 23c3aa: 41 89 c1 mov %eax,%r9d 23c3ad: 4d 89 c8 mov %r9,%r8 23c3b0: e8 bb 25 00 00 call 23e970 23c3b5: 83 f8 00 cmp $0x0,%eax 23c3b8: 0f 84 2a 00 00 00 je 23c3e8 free(proc->procCwd); 23c3be: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 23c3c5: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 23c3cc: e8 8f 1d 00 00 call 23e160 proc->procCwd = NULL; 23c3d1: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 23c3d8: 48 c7 80 80 00 00 00 00 00 00 00 movq $0x0,0x80(%rax) return; 23c3e3: e9 54 00 00 00 jmp 23c43c if (buffer[0] == '\0') { 23c3e8: 0f be 85 e0 f7 ff ff movsbl -0x820(%rbp),%eax 23c3ef: 83 f8 00 cmp $0x0,%eax 23c3f2: 0f 85 2a 00 00 00 jne 23c422 free(proc->procCwd); 23c3f8: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 23c3ff: 48 8b b8 80 00 00 00 mov 0x80(%rax),%rdi 23c406: e8 55 1d 00 00 call 23e160 proc->procCwd = NULL; 23c40b: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 23c412: 48 c7 80 80 00 00 00 00 00 00 00 movq $0x0,0x80(%rax) return; 23c41d: e9 1a 00 00 00 jmp 23c43c free_and_xStrdup(&proc->procCwd, buffer); 23c422: 48 8b bd c8 f7 ff ff mov -0x838(%rbp),%rdi 23c429: 48 81 c7 80 00 00 00 add $0x80,%rdi 23c430: 48 8d b5 e0 f7 ff ff lea -0x820(%rbp),%rsi 23c437: e8 b4 d1 ff ff call 2395f0 23c43c: 48 8b 05 ed 63 00 00 mov 0x63ed(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c443: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23c447: 48 39 c8 cmp %rcx,%rax 23c44a: 0f 85 09 00 00 00 jne 23c459 } 23c450: 48 81 c4 40 08 00 00 add $0x840,%rsp 23c457: 5d pop %rbp 23c458: c3 ret 23c459: e8 e2 1c 00 00 call 23e140 <__stack_chk_fail@plt> 23c45e: 66 90 xchg %ax,%ax 000000000023c460 : static char* FreeBSDProcessList_readJailName(const struct kinfo_proc* kproc) { 23c460: 55 push %rbp 23c461: 48 89 e5 mov %rsp,%rbp 23c464: 48 81 ec 70 01 00 00 sub $0x170,%rsp 23c46b: 48 8b 05 be 63 00 00 mov 0x63be(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c472: 48 89 45 f8 mov %rax,-0x8(%rbp) 23c476: 48 89 bd a0 fe ff ff mov %rdi,-0x160(%rbp) if (kproc->ki_jid == 0) 23c47d: 48 8b 85 a0 fe ff ff mov -0x160(%rbp),%rax 23c484: 83 b8 50 02 00 00 00 cmpl $0x0,0x250(%rax) 23c48b: 0f 85 1b 00 00 00 jne 23c4ac return xStrdup("-"); 23c491: 48 bf 02 3f 20 00 00 00 00 00 movabs $0x203f02,%rdi 23c49b: e8 50 cb ff ff call 238ff0 23c4a0: 48 89 85 a8 fe ff ff mov %rax,-0x158(%rbp) 23c4a7: e9 d8 00 00 00 jmp 23c584 char jnamebuf[MAXHOSTNAMELEN] = {0}; 23c4ac: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 23c4b3: 31 f6 xor %esi,%esi 23c4b5: ba 00 01 00 00 mov $0x100,%edx 23c4ba: e8 81 1d 00 00 call 23e240 *(const void**)&jiov[0].iov_base = "jid"; 23c4bf: 48 b8 9d 3f 20 00 00 00 00 00 movabs $0x203f9d,%rax 23c4c9: 48 89 85 b0 fe ff ff mov %rax,-0x150(%rbp) jiov[0].iov_len = sizeof("jid"); 23c4d0: 48 c7 85 b8 fe ff ff 04 00 00 00 movq $0x4,-0x148(%rbp) jiov[1].iov_base = (void*) &kproc->ki_jid; 23c4db: 48 8b 85 a0 fe ff ff mov -0x160(%rbp),%rax 23c4e2: 48 05 50 02 00 00 add $0x250,%rax 23c4e8: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) jiov[1].iov_len = sizeof(kproc->ki_jid); 23c4ef: 48 c7 85 c8 fe ff ff 04 00 00 00 movq $0x4,-0x138(%rbp) *(const void**)&jiov[2].iov_base = "name"; 23c4fa: 48 b8 62 45 20 00 00 00 00 00 movabs $0x204562,%rax 23c504: 48 89 85 d0 fe ff ff mov %rax,-0x130(%rbp) jiov[2].iov_len = sizeof("name"); 23c50b: 48 c7 85 d8 fe ff ff 05 00 00 00 movq $0x5,-0x128(%rbp) jiov[3].iov_base = jnamebuf; 23c516: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax 23c51d: 48 89 85 e0 fe ff ff mov %rax,-0x120(%rbp) jiov[3].iov_len = sizeof(jnamebuf); 23c524: 48 c7 85 e8 fe ff ff 00 01 00 00 movq $0x100,-0x118(%rbp) int jid = jail_get(jiov, 4, 0); 23c52f: 48 8d bd b0 fe ff ff lea -0x150(%rbp),%rdi 23c536: be 04 00 00 00 mov $0x4,%esi 23c53b: 31 d2 xor %edx,%edx 23c53d: e8 0e 25 00 00 call 23ea50 23c542: 89 85 9c fe ff ff mov %eax,-0x164(%rbp) if (jid == kproc->ki_jid) 23c548: 8b 85 9c fe ff ff mov -0x164(%rbp),%eax 23c54e: 48 8b 8d a0 fe ff ff mov -0x160(%rbp),%rcx 23c555: 3b 81 50 02 00 00 cmp 0x250(%rcx),%eax 23c55b: 0f 85 18 00 00 00 jne 23c579 return xStrdup(jnamebuf); 23c561: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 23c568: e8 83 ca ff ff call 238ff0 23c56d: 48 89 85 a8 fe ff ff mov %rax,-0x158(%rbp) 23c574: e9 0b 00 00 00 jmp 23c584 return NULL; 23c579: 48 c7 85 a8 fe ff ff 00 00 00 00 movq $0x0,-0x158(%rbp) } 23c584: 48 8b 85 a8 fe ff ff mov -0x158(%rbp),%rax 23c58b: 48 89 85 90 fe ff ff mov %rax,-0x170(%rbp) 23c592: 48 8b 05 97 62 00 00 mov 0x6297(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c599: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23c59d: 48 39 c8 cmp %rcx,%rax 23c5a0: 0f 85 10 00 00 00 jne 23c5b6 23c5a6: 48 8b 85 90 fe ff ff mov -0x170(%rbp),%rax 23c5ad: 48 81 c4 70 01 00 00 add $0x170,%rsp 23c5b4: 5d pop %rbp 23c5b5: c3 ret 23c5b6: e8 85 1b 00 00 call 23e140 <__stack_chk_fail@plt> 23c5bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000023c5c0 : static inline bool String_eq(const char* s1, const char* s2) { 23c5c0: 55 push %rbp 23c5c1: 48 89 e5 mov %rsp,%rbp 23c5c4: 48 83 ec 10 sub $0x10,%rsp 23c5c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23c5cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strcmp(s1, s2) == 0; 23c5d0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23c5d4: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23c5d8: e8 03 1c 00 00 call 23e1e0 23c5dd: 83 f8 00 cmp $0x0,%eax 23c5e0: 0f 94 c0 sete %al 23c5e3: 24 01 and $0x1,%al 23c5e5: 0f b6 c0 movzbl %al,%eax 23c5e8: 48 83 c4 10 add $0x10,%rsp 23c5ec: 5d pop %rbp 23c5ed: c3 ret 23c5ee: 66 90 xchg %ax,%ax 000000000023c5f0 : static inline bool Process_isKernelThread(const Process* this) { 23c5f0: 55 push %rbp 23c5f1: 48 89 e5 mov %rsp,%rbp 23c5f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isKernelThread; 23c5f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 23c5fc: 8a 40 30 mov 0x30(%rax),%al 23c5ff: 24 01 and $0x1,%al 23c601: 0f b6 c0 movzbl %al,%eax 23c604: 5d pop %rbp 23c605: c3 ret 23c606: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000023c610 : static inline bool Process_isUserlandThread(const Process* this) { 23c610: 55 push %rbp 23c611: 48 89 e5 mov %rsp,%rbp 23c614: 48 89 7d f8 mov %rdi,-0x8(%rbp) return this->isUserlandThread; 23c618: 48 8b 45 f8 mov -0x8(%rbp),%rax 23c61c: 8a 40 31 mov 0x31(%rax),%al 23c61f: 24 01 and $0x1,%al 23c621: 0f b6 c0 movzbl %al,%eax 23c624: 5d pop %rbp 23c625: c3 ret 23c626: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 000000000023c630 : bool ProcessList_isCPUonline(const ProcessList* super, unsigned int id) { 23c630: 55 push %rbp 23c631: 48 89 e5 mov %rsp,%rbp 23c634: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23c638: 89 75 f4 mov %esi,-0xc(%rbp) assert(id < super->existingCPUs); // TODO: support offline CPUs and hot swapping (void) super; (void) id; return true; 23c63b: b0 01 mov $0x1,%al 23c63d: 24 01 and $0x1,%al 23c63f: 0f b6 c0 movzbl %al,%eax 23c642: 5d pop %rbp 23c643: c3 ret 23c644: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23c64e: 66 90 xchg %ax,%ax 000000000023c650 <__inline_isnan>: { 23c650: 55 push %rbp 23c651: 48 89 e5 mov %rsp,%rbp 23c654: f2 0f 11 45 f8 movsd %xmm0,-0x8(%rbp) return (__x != __x); 23c659: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0 23c65e: 66 0f 2e 45 f8 ucomisd -0x8(%rbp),%xmm0 23c663: 0f 95 c0 setne %al 23c666: 0f 9a c1 setp %cl 23c669: 08 c8 or %cl,%al 23c66b: 24 01 and $0x1,%al 23c66d: 0f b6 c0 movzbl %al,%eax 23c670: 5d pop %rbp 23c671: c3 ret 23c672: cc int3 23c673: cc int3 23c674: cc int3 23c675: cc int3 23c676: cc int3 23c677: cc int3 23c678: cc int3 23c679: cc int3 23c67a: cc int3 23c67b: cc int3 23c67c: cc int3 23c67d: cc int3 23c67e: cc int3 23c67f: cc int3 000000000023c680 : [CWD] = { .name = "CWD", .title = "CWD ", .description = "The current working directory of the process", .flags = PROCESS_FLAG_CWD, }, [JID] = { .name = "JID", .title = "JID", .description = "Jail prison ID", .flags = 0, .pidColumn = true, }, [JAIL] = { .name = "JAIL", .title = "JAIL ", .description = "Jail prison name", .flags = 0, }, }; Process* FreeBSDProcess_new(const Settings* settings) { 23c680: 55 push %rbp 23c681: 48 89 e5 mov %rsp,%rbp 23c684: 48 83 ec 10 sub $0x10,%rsp 23c688: 48 89 7d f8 mov %rdi,-0x8(%rbp) FreeBSDProcess* this = xCalloc(1, sizeof(FreeBSDProcess)); 23c68c: bf 01 00 00 00 mov $0x1,%edi 23c691: be 08 02 00 00 mov $0x208,%esi 23c696: e8 55 c4 ff ff call 238af0 23c69b: 48 89 45 f0 mov %rax,-0x10(%rbp) Object_setClass(this, Class(FreeBSDProcess)); 23c69f: 48 8b 45 f0 mov -0x10(%rbp),%rax 23c6a3: 48 b9 b0 be 20 00 00 00 00 00 movabs $0x20beb0,%rcx 23c6ad: 48 89 08 mov %rcx,(%rax) Process_init(&this->super, settings); 23c6b0: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23c6b4: 48 8b 75 f8 mov -0x8(%rbp),%rsi 23c6b8: e8 33 1e ff ff call 22e4f0 return &this->super; 23c6bd: 48 8b 45 f0 mov -0x10(%rbp),%rax 23c6c1: 48 83 c4 10 add $0x10,%rsp 23c6c5: 5d pop %rbp 23c6c6: c3 ret 23c6c7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 000000000023c6d0 : } void Process_delete(Object* cast) { 23c6d0: 55 push %rbp 23c6d1: 48 89 e5 mov %rsp,%rbp 23c6d4: 48 83 ec 10 sub $0x10,%rsp 23c6d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) FreeBSDProcess* this = (FreeBSDProcess*) cast; 23c6dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 23c6e0: 48 89 45 f0 mov %rax,-0x10(%rbp) Process_done((Process*)cast); 23c6e4: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23c6e8: e8 23 1c ff ff call 22e310 free(this->jname); 23c6ed: 48 8b 45 f0 mov -0x10(%rbp),%rax 23c6f1: 48 8b b8 00 02 00 00 mov 0x200(%rax),%rdi 23c6f8: e8 63 1a 00 00 call 23e160 free(this); 23c6fd: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23c701: e8 5a 1a 00 00 call 23e160 } 23c706: 48 83 c4 10 add $0x10,%rsp 23c70a: 5d pop %rbp 23c70b: c3 ret 23c70c: 0f 1f 40 00 nopl 0x0(%rax) 000000000023c710 : static void FreeBSDProcess_writeField(const Process* this, RichString* str, ProcessField field) { 23c710: 55 push %rbp 23c711: 48 89 e5 mov %rsp,%rbp 23c714: 48 81 ec 60 01 00 00 sub $0x160,%rsp 23c71b: 48 8b 05 0e 61 00 00 mov 0x610e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c722: 48 89 45 f8 mov %rax,-0x8(%rbp) 23c726: 48 89 bd e8 fe ff ff mov %rdi,-0x118(%rbp) 23c72d: 48 89 b5 e0 fe ff ff mov %rsi,-0x120(%rbp) 23c734: 89 95 dc fe ff ff mov %edx,-0x124(%rbp) const FreeBSDProcess* fp = (const FreeBSDProcess*) this; 23c73a: 48 8b 85 e8 fe ff ff mov -0x118(%rbp),%rax 23c741: 48 89 85 d0 fe ff ff mov %rax,-0x130(%rbp) char buffer[256]; size_t n = sizeof(buffer); 23c748: 48 c7 85 c8 fe ff ff 00 01 00 00 movq $0x100,-0x138(%rbp) int attr = CRT_colors[DEFAULT_COLOR]; 23c753: 48 8b 05 26 5a 00 00 mov 0x5a26(%rip),%rax # 242180 23c75a: 8b 40 04 mov 0x4(%rax),%eax 23c75d: 89 85 c4 fe ff ff mov %eax,-0x13c(%rbp) switch (field) { 23c763: 8b 85 dc fe ff ff mov -0x124(%rbp),%eax 23c769: 89 85 c0 fe ff ff mov %eax,-0x140(%rbp) 23c76f: 83 e8 64 sub $0x64,%eax 23c772: 0f 84 19 00 00 00 je 23c791 23c778: e9 00 00 00 00 jmp 23c77d 23c77d: 8b 85 c0 fe ff ff mov -0x140(%rbp),%eax 23c783: 83 e8 65 sub $0x65,%eax 23c786: 0f 84 3e 00 00 00 je 23c7ca 23c78c: e9 bb 00 00 00 jmp 23c84c // add FreeBSD-specific fields here case JID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, fp->jid); break; 23c791: 48 8d bd f0 fe ff ff lea -0x110(%rbp),%rdi 23c798: 48 8b b5 c8 fe ff ff mov -0x138(%rbp),%rsi 23c79f: 8b 0c 25 58 18 24 00 mov 0x241858,%ecx 23c7a6: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 23c7ad: 44 8b 80 f8 01 00 00 mov 0x1f8(%rax),%r8d 23c7b4: 48 ba 4a 32 20 00 00 00 00 00 movabs $0x20324a,%rdx 23c7be: b0 00 mov $0x0,%al 23c7c0: e8 2b cd ff ff call 2394f0 23c7c5: e9 a0 00 00 00 jmp 23c86a case JAIL: Process_printLeftAlignedField(str, attr, fp->jname ? fp->jname : "N/A", 11); 23c7ca: 48 8b 85 e0 fe ff ff mov -0x120(%rbp),%rax 23c7d1: 48 89 85 b0 fe ff ff mov %rax,-0x150(%rbp) 23c7d8: 8b 85 c4 fe ff ff mov -0x13c(%rbp),%eax 23c7de: 89 85 bc fe ff ff mov %eax,-0x144(%rbp) 23c7e4: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 23c7eb: 48 83 b8 00 02 00 00 00 cmpq $0x0,0x200(%rax) 23c7f3: 0f 84 1a 00 00 00 je 23c813 23c7f9: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax 23c800: 48 8b 80 00 02 00 00 mov 0x200(%rax),%rax 23c807: 48 89 85 a8 fe ff ff mov %rax,-0x158(%rbp) 23c80e: e9 16 00 00 00 jmp 23c829 23c813: 48 b8 84 41 20 00 00 00 00 00 movabs $0x204184,%rax 23c81d: 48 89 85 a8 fe ff ff mov %rax,-0x158(%rbp) 23c824: e9 00 00 00 00 jmp 23c829 23c829: 8b b5 bc fe ff ff mov -0x144(%rbp),%esi 23c82f: 48 8b bd b0 fe ff ff mov -0x150(%rbp),%rdi 23c836: 48 8b 95 a8 fe ff ff mov -0x158(%rbp),%rdx 23c83d: b9 0b 00 00 00 mov $0xb,%ecx 23c842: e8 39 06 ff ff call 22ce80 return; 23c847: e9 37 00 00 00 jmp 23c883 default: Process_writeField(this, str, field); 23c84c: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi 23c853: 48 8b b5 e0 fe ff ff mov -0x120(%rbp),%rsi 23c85a: 8b 95 dc fe ff ff mov -0x124(%rbp),%edx 23c860: e8 fb 07 ff ff call 22d060 return; 23c865: e9 19 00 00 00 jmp 23c883 } RichString_appendWide(str, attr, buffer); 23c86a: 48 8b bd e0 fe ff ff mov -0x120(%rbp),%rdi 23c871: 8b b5 c4 fe ff ff mov -0x13c(%rbp),%esi 23c877: 48 8d 95 f0 fe ff ff lea -0x110(%rbp),%rdx 23c87e: e8 4d 5a ff ff call 2322d0 23c883: 48 8b 05 a6 5f 00 00 mov 0x5fa6(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c88a: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23c88e: 48 39 c8 cmp %rcx,%rax 23c891: 0f 85 09 00 00 00 jne 23c8a0 } 23c897: 48 81 c4 60 01 00 00 add $0x160,%rsp 23c89e: 5d pop %rbp 23c89f: c3 ret 23c8a0: e8 9b 18 00 00 call 23e140 <__stack_chk_fail@plt> 23c8a5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23c8af: 90 nop 000000000023c8b0 : static int FreeBSDProcess_compareByKey(const Process* v1, const Process* v2, ProcessField key) { 23c8b0: 55 push %rbp 23c8b1: 48 89 e5 mov %rsp,%rbp 23c8b4: 48 83 ec 50 sub $0x50,%rsp 23c8b8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 23c8bc: 48 89 75 e8 mov %rsi,-0x18(%rbp) 23c8c0: 89 55 e4 mov %edx,-0x1c(%rbp) const FreeBSDProcess* p1 = (const FreeBSDProcess*)v1; 23c8c3: 48 8b 45 f0 mov -0x10(%rbp),%rax 23c8c7: 48 89 45 d8 mov %rax,-0x28(%rbp) const FreeBSDProcess* p2 = (const FreeBSDProcess*)v2; 23c8cb: 48 8b 45 e8 mov -0x18(%rbp),%rax 23c8cf: 48 89 45 d0 mov %rax,-0x30(%rbp) switch (key) { 23c8d3: 8b 45 e4 mov -0x1c(%rbp),%eax 23c8d6: 89 45 cc mov %eax,-0x34(%rbp) 23c8d9: 83 e8 64 sub $0x64,%eax 23c8dc: 0f 84 16 00 00 00 je 23c8f8 23c8e2: e9 00 00 00 00 jmp 23c8e7 23c8e7: 8b 45 cc mov -0x34(%rbp),%eax 23c8ea: 83 e8 65 sub $0x65,%eax 23c8ed: 0f 84 48 00 00 00 je 23c93b 23c8f3: e9 d2 00 00 00 jmp 23c9ca // add FreeBSD-specific fields here case JID: return SPACESHIP_NUMBER(p1->jid, p2->jid); 23c8f8: 48 8b 45 d8 mov -0x28(%rbp),%rax 23c8fc: 8b 80 f8 01 00 00 mov 0x1f8(%rax),%eax 23c902: 48 8b 4d d0 mov -0x30(%rbp),%rcx 23c906: 3b 81 f8 01 00 00 cmp 0x1f8(%rcx),%eax 23c90c: 0f 9f c0 setg %al 23c90f: 24 01 and $0x1,%al 23c911: 0f b6 c0 movzbl %al,%eax 23c914: 48 8b 4d d8 mov -0x28(%rbp),%rcx 23c918: 8b 89 f8 01 00 00 mov 0x1f8(%rcx),%ecx 23c91e: 48 8b 55 d0 mov -0x30(%rbp),%rdx 23c922: 3b 8a f8 01 00 00 cmp 0x1f8(%rdx),%ecx 23c928: 0f 9c c1 setl %cl 23c92b: 80 e1 01 and $0x1,%cl 23c92e: 0f b6 c9 movzbl %cl,%ecx 23c931: 29 c8 sub %ecx,%eax 23c933: 89 45 fc mov %eax,-0x4(%rbp) 23c936: e9 a2 00 00 00 jmp 23c9dd case JAIL: return SPACESHIP_NULLSTR(p1->jname, p2->jname); 23c93b: 48 8b 45 d8 mov -0x28(%rbp),%rax 23c93f: 48 83 b8 00 02 00 00 00 cmpq $0x0,0x200(%rax) 23c947: 0f 84 14 00 00 00 je 23c961 23c94d: 48 8b 45 d8 mov -0x28(%rbp),%rax 23c951: 48 8b 80 00 02 00 00 mov 0x200(%rax),%rax 23c958: 48 89 45 c0 mov %rax,-0x40(%rbp) 23c95c: e9 13 00 00 00 jmp 23c974 23c961: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 23c96b: 48 89 45 c0 mov %rax,-0x40(%rbp) 23c96f: e9 00 00 00 00 jmp 23c974 23c974: 48 8b 45 c0 mov -0x40(%rbp),%rax 23c978: 48 89 45 b8 mov %rax,-0x48(%rbp) 23c97c: 48 8b 45 d0 mov -0x30(%rbp),%rax 23c980: 48 83 b8 00 02 00 00 00 cmpq $0x0,0x200(%rax) 23c988: 0f 84 14 00 00 00 je 23c9a2 23c98e: 48 8b 45 d0 mov -0x30(%rbp),%rax 23c992: 48 8b 80 00 02 00 00 mov 0x200(%rax),%rax 23c999: 48 89 45 b0 mov %rax,-0x50(%rbp) 23c99d: e9 13 00 00 00 jmp 23c9b5 23c9a2: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 23c9ac: 48 89 45 b0 mov %rax,-0x50(%rbp) 23c9b0: e9 00 00 00 00 jmp 23c9b5 23c9b5: 48 8b 7d b8 mov -0x48(%rbp),%rdi 23c9b9: 48 8b 75 b0 mov -0x50(%rbp),%rsi 23c9bd: e8 1e 18 00 00 call 23e1e0 23c9c2: 89 45 fc mov %eax,-0x4(%rbp) 23c9c5: e9 13 00 00 00 jmp 23c9dd default: return Process_compareByKey_Base(v1, v2, key); 23c9ca: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23c9ce: 48 8b 75 e8 mov -0x18(%rbp),%rsi 23c9d2: 8b 55 e4 mov -0x1c(%rbp),%edx 23c9d5: e8 96 1d ff ff call 22e770 23c9da: 89 45 fc mov %eax,-0x4(%rbp) } } 23c9dd: 8b 45 fc mov -0x4(%rbp),%eax 23c9e0: 48 83 c4 50 add $0x50,%rsp 23c9e4: 5d pop %rbp 23c9e5: c3 ret 23c9e6: cc int3 23c9e7: cc int3 23c9e8: cc int3 23c9e9: cc int3 23c9ea: cc int3 23c9eb: cc int3 23c9ec: cc int3 23c9ed: cc int3 23c9ee: cc int3 23c9ef: cc int3 000000000023c9f0 : #include #include void Generic_gettime_realtime(struct timeval* tvp, uint64_t* msec) { 23c9f0: 55 push %rbp 23c9f1: 48 89 e5 mov %rsp,%rbp 23c9f4: 48 83 ec 30 sub $0x30,%rsp 23c9f8: 48 8b 05 31 5e 00 00 mov 0x5e31(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23c9ff: 48 89 45 f8 mov %rax,-0x8(%rbp) 23ca03: 48 89 7d e0 mov %rdi,-0x20(%rbp) 23ca07: 48 89 75 d8 mov %rsi,-0x28(%rbp) #if defined(HAVE_CLOCK_GETTIME) struct timespec ts; if (clock_gettime(CLOCK_REALTIME, &ts) == 0) { 23ca0b: 31 ff xor %edi,%edi 23ca0d: 48 8d 75 e8 lea -0x18(%rbp),%rsi 23ca11: e8 4a 20 00 00 call 23ea60 23ca16: 83 f8 00 cmp $0x0,%eax 23ca19: 0f 85 49 00 00 00 jne 23ca68 tvp->tv_sec = ts.tv_sec; 23ca1f: 48 8b 4d e8 mov -0x18(%rbp),%rcx 23ca23: 48 8b 45 e0 mov -0x20(%rbp),%rax 23ca27: 48 89 08 mov %rcx,(%rax) tvp->tv_usec = ts.tv_nsec / 1000; 23ca2a: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ca2e: b9 e8 03 00 00 mov $0x3e8,%ecx 23ca33: 48 99 cqto 23ca35: 48 f7 f9 idiv %rcx 23ca38: 48 89 c1 mov %rax,%rcx 23ca3b: 48 8b 45 e0 mov -0x20(%rbp),%rax 23ca3f: 48 89 48 08 mov %rcx,0x8(%rax) *msec = ((uint64_t)ts.tv_sec * 1000) + ((uint64_t)ts.tv_nsec / 1000000); 23ca43: 48 69 4d e8 e8 03 00 00 imul $0x3e8,-0x18(%rbp),%rcx 23ca4b: 48 8b 45 f0 mov -0x10(%rbp),%rax 23ca4f: be 40 42 0f 00 mov $0xf4240,%esi 23ca54: 31 d2 xor %edx,%edx 23ca56: 48 f7 f6 div %rsi 23ca59: 48 01 c1 add %rax,%rcx 23ca5c: 48 8b 45 d8 mov -0x28(%rbp),%rax 23ca60: 48 89 08 mov %rcx,(%rax) } else { 23ca63: e9 1b 00 00 00 jmp 23ca83 memset(tvp, 0, sizeof(struct timeval)); 23ca68: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23ca6c: 31 f6 xor %esi,%esi 23ca6e: ba 10 00 00 00 mov $0x10,%edx 23ca73: e8 c8 17 00 00 call 23e240 *msec = 0; 23ca78: 48 8b 45 d8 mov -0x28(%rbp),%rax 23ca7c: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 23ca83: 48 8b 05 a6 5d 00 00 mov 0x5da6(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23ca8a: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23ca8e: 48 39 c8 cmp %rcx,%rax 23ca91: 0f 85 06 00 00 00 jne 23ca9d memset(tvp, 0, sizeof(struct timeval)); *msec = 0; } #endif } 23ca97: 48 83 c4 30 add $0x30,%rsp 23ca9b: 5d pop %rbp 23ca9c: c3 ret 23ca9d: e8 9e 16 00 00 call 23e140 <__stack_chk_fail@plt> 23caa2: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23caac: 0f 1f 40 00 nopl 0x0(%rax) 000000000023cab0 : void Generic_gettime_monotonic(uint64_t* msec) { 23cab0: 55 push %rbp 23cab1: 48 89 e5 mov %rsp,%rbp 23cab4: 48 83 ec 20 sub $0x20,%rsp 23cab8: 48 8b 05 71 5d 00 00 mov 0x5d71(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cabf: 48 89 45 f8 mov %rax,-0x8(%rbp) 23cac3: 48 89 7d e0 mov %rdi,-0x20(%rbp) #if defined(HAVE_CLOCK_GETTIME) struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) 23cac7: bf 04 00 00 00 mov $0x4,%edi 23cacc: 48 8d 75 e8 lea -0x18(%rbp),%rsi 23cad0: e8 8b 1f 00 00 call 23ea60 23cad5: 83 f8 00 cmp $0x0,%eax 23cad8: 0f 85 25 00 00 00 jne 23cb03 *msec = ((uint64_t)ts.tv_sec * 1000) + ((uint64_t)ts.tv_nsec / 1000000); 23cade: 48 69 4d e8 e8 03 00 00 imul $0x3e8,-0x18(%rbp),%rcx 23cae6: 48 8b 45 f0 mov -0x10(%rbp),%rax 23caea: be 40 42 0f 00 mov $0xf4240,%esi 23caef: 31 d2 xor %edx,%edx 23caf1: 48 f7 f6 div %rsi 23caf4: 48 01 c1 add %rax,%rcx 23caf7: 48 8b 45 e0 mov -0x20(%rbp),%rax 23cafb: 48 89 08 mov %rcx,(%rax) 23cafe: e9 0b 00 00 00 jmp 23cb0e else *msec = 0; 23cb03: 48 8b 45 e0 mov -0x20(%rbp),%rax 23cb07: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 23cb0e: 48 8b 05 1b 5d 00 00 mov 0x5d1b(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cb15: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23cb19: 48 39 c8 cmp %rcx,%rax 23cb1c: 0f 85 06 00 00 00 jne 23cb28 *msec = ((uint64_t)tv.tv_sec * 1000) + ((uint64_t)tv.tv_usec / 1000); else *msec = 0; #endif } 23cb22: 48 83 c4 20 add $0x20,%rsp 23cb26: 5d pop %rbp 23cb27: c3 ret 23cb28: e8 13 16 00 00 call 23e140 <__stack_chk_fail@plt> 23cb2d: cc int3 23cb2e: cc int3 23cb2f: cc int3 000000000023cb30 : #include "generic/hostname.h" #include void Generic_hostname(char* buffer, size_t size) { 23cb30: 55 push %rbp 23cb31: 48 89 e5 mov %rsp,%rbp 23cb34: 48 83 ec 10 sub $0x10,%rsp 23cb38: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23cb3c: 48 89 75 f0 mov %rsi,-0x10(%rbp) gethostname(buffer, size - 1); 23cb40: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23cb44: 48 8b 75 f0 mov -0x10(%rbp),%rsi 23cb48: 48 83 ee 01 sub $0x1,%rsi 23cb4c: e8 1f 1f 00 00 call 23ea70 buffer[size - 1] = '\0'; 23cb51: 48 8b 45 f8 mov -0x8(%rbp),%rax 23cb55: 48 8b 4d f0 mov -0x10(%rbp),%rcx 23cb59: 48 83 e9 01 sub $0x1,%rcx 23cb5d: c6 04 08 00 movb $0x0,(%rax,%rcx,1) } 23cb61: 48 83 c4 10 add $0x10,%rsp 23cb65: 5d pop %rbp 23cb66: c3 ret 23cb67: cc int3 23cb68: cc int3 23cb69: cc int3 23cb6a: cc int3 23cb6b: cc int3 23cb6c: cc int3 23cb6d: cc int3 23cb6e: cc int3 23cb6f: cc int3 000000000023cb70 : static int MIB_kstat_zfs_misc_arcstats_hdr_size[5]; static int MIB_kstat_zfs_misc_arcstats_other_size[5]; static int MIB_kstat_zfs_misc_arcstats_compressed_size[5]; static int MIB_kstat_zfs_misc_arcstats_uncompressed_size[5]; void openzfs_sysctl_init(ZfsArcStats* stats) { 23cb70: 55 push %rbp 23cb71: 48 89 e5 mov %rsp,%rbp 23cb74: 48 83 ec 20 sub $0x20,%rsp 23cb78: 48 8b 05 b1 5c 00 00 mov 0x5cb1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cb7f: 48 89 45 f8 mov %rax,-0x8(%rbp) 23cb83: 48 89 7d e0 mov %rdi,-0x20(%rbp) size_t len; unsigned long long int arcSize; len = sizeof(arcSize); 23cb87: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) if (sysctlbyname("kstat.zfs.misc.arcstats.size", &arcSize, &len, NULL, 0) == 0 && arcSize != 0) { 23cb8f: 48 8d 75 e8 lea -0x18(%rbp),%rsi 23cb93: 48 bf db 69 20 00 00 00 00 00 movabs $0x2069db,%rdi 23cb9d: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cba1: 31 c0 xor %eax,%eax 23cba3: 41 89 c0 mov %eax,%r8d 23cba6: 4c 89 c1 mov %r8,%rcx 23cba9: e8 f2 1d 00 00 call 23e9a0 23cbae: 83 f8 00 cmp $0x0,%eax 23cbb1: 0f 85 4b 01 00 00 jne 23cd02 23cbb7: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 23cbbc: 0f 84 40 01 00 00 je 23cd02 stats->enabled = 1; 23cbc2: 48 8b 45 e0 mov -0x20(%rbp),%rax 23cbc6: c7 00 01 00 00 00 movl $0x1,(%rax) len = 5; 23cbcc: 48 c7 45 f0 05 00 00 00 movq $0x5,-0x10(%rbp) sysctlnametomib("kstat.zfs.misc.arcstats.size", MIB_kstat_zfs_misc_arcstats_size, &len); 23cbd4: 48 bf db 69 20 00 00 00 00 00 movabs $0x2069db,%rdi 23cbde: 48 be 70 23 24 00 00 00 00 00 movabs $0x242370,%rsi 23cbe8: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cbec: e8 ef 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.c_max", MIB_kstat_zfs_misc_arcstats_c_max, &len); 23cbf1: 48 bf 2a 65 20 00 00 00 00 00 movabs $0x20652a,%rdi 23cbfb: 48 be 90 23 24 00 00 00 00 00 movabs $0x242390,%rsi 23cc05: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc09: e8 d2 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.mfu_size", MIB_kstat_zfs_misc_arcstats_mfu_size, &len); 23cc0e: 48 bf 23 5f 20 00 00 00 00 00 movabs $0x205f23,%rdi 23cc18: 48 be b0 23 24 00 00 00 00 00 movabs $0x2423b0,%rsi 23cc22: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc26: e8 b5 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.mru_size", MIB_kstat_zfs_misc_arcstats_mru_size, &len); 23cc2b: 48 bf 63 41 20 00 00 00 00 00 movabs $0x204163,%rdi 23cc35: 48 be d0 23 24 00 00 00 00 00 movabs $0x2423d0,%rsi 23cc3f: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc43: e8 98 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.anon_size", MIB_kstat_zfs_misc_arcstats_anon_size, &len); 23cc48: 48 bf 19 3e 20 00 00 00 00 00 movabs $0x203e19,%rdi 23cc52: 48 be f0 23 24 00 00 00 00 00 movabs $0x2423f0,%rsi 23cc5c: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc60: e8 7b 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.hdr_size", MIB_kstat_zfs_misc_arcstats_hdr_size, &len); 23cc65: 48 bf 54 3a 20 00 00 00 00 00 movabs $0x203a54,%rdi 23cc6f: 48 be 10 24 24 00 00 00 00 00 movabs $0x242410,%rsi 23cc79: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc7d: e8 5e 1d 00 00 call 23e9e0 sysctlnametomib("kstat.zfs.misc.arcstats.other_size", MIB_kstat_zfs_misc_arcstats_other_size, &len); 23cc82: 48 bf 0e 40 20 00 00 00 00 00 movabs $0x20400e,%rdi 23cc8c: 48 be 30 24 24 00 00 00 00 00 movabs $0x242430,%rsi 23cc96: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cc9a: e8 41 1d 00 00 call 23e9e0 if (sysctlnametomib("kstat.zfs.misc.arcstats.compressed_size", MIB_kstat_zfs_misc_arcstats_compressed_size, &len) == 0) { 23cc9f: 48 bf dd 55 20 00 00 00 00 00 movabs $0x2055dd,%rdi 23cca9: 48 be 50 24 24 00 00 00 00 00 movabs $0x242450,%rsi 23ccb3: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23ccb7: e8 24 1d 00 00 call 23e9e0 23ccbc: 83 f8 00 cmp $0x0,%eax 23ccbf: 0f 85 2d 00 00 00 jne 23ccf2 stats->isCompressed = 1; 23ccc5: 48 8b 45 e0 mov -0x20(%rbp),%rax 23ccc9: c7 40 04 01 00 00 00 movl $0x1,0x4(%rax) sysctlnametomib("kstat.zfs.misc.arcstats.uncompressed_size", MIB_kstat_zfs_misc_arcstats_uncompressed_size, &len); 23ccd0: 48 bf f6 6b 20 00 00 00 00 00 movabs $0x206bf6,%rdi 23ccda: 48 be 70 24 24 00 00 00 00 00 movabs $0x242470,%rsi 23cce4: 48 8d 55 f0 lea -0x10(%rbp),%rdx 23cce8: e8 f3 1c 00 00 call 23e9e0 } else { 23cced: e9 0b 00 00 00 jmp 23ccfd stats->isCompressed = 0; 23ccf2: 48 8b 45 e0 mov -0x20(%rbp),%rax 23ccf6: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) } } else { 23ccfd: e9 0a 00 00 00 jmp 23cd0c stats->enabled = 0; 23cd02: 48 8b 45 e0 mov -0x20(%rbp),%rax 23cd06: c7 00 00 00 00 00 movl $0x0,(%rax) 23cd0c: 48 8b 05 1d 5b 00 00 mov 0x5b1d(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cd13: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23cd17: 48 39 c8 cmp %rcx,%rax 23cd1a: 0f 85 06 00 00 00 jne 23cd26 } } 23cd20: 48 83 c4 20 add $0x20,%rsp 23cd24: 5d pop %rbp 23cd25: c3 ret 23cd26: e8 15 14 00 00 call 23e140 <__stack_chk_fail@plt> 23cd2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000023cd30 : void openzfs_sysctl_updateArcStats(ZfsArcStats* stats) { 23cd30: 55 push %rbp 23cd31: 48 89 e5 mov %rsp,%rbp 23cd34: 48 83 ec 20 sub $0x20,%rsp 23cd38: 48 8b 05 f1 5a 00 00 mov 0x5af1(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cd3f: 48 89 45 f8 mov %rax,-0x8(%rbp) 23cd43: 48 89 7d e8 mov %rdi,-0x18(%rbp) size_t len; if (stats->enabled) { 23cd47: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cd4b: 83 38 00 cmpl $0x0,(%rax) 23cd4e: 0f 84 53 02 00 00 je 23cfa7 len = sizeof(stats->size); 23cd54: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_size, 5, &(stats->size), &len, NULL, 0); 23cd5c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cd60: 48 83 c2 10 add $0x10,%rdx 23cd64: 48 bf 70 23 24 00 00 00 00 00 movabs $0x242370,%rdi 23cd6e: be 05 00 00 00 mov $0x5,%esi 23cd73: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cd77: 31 c0 xor %eax,%eax 23cd79: 41 89 c1 mov %eax,%r9d 23cd7c: 4d 89 c8 mov %r9,%r8 23cd7f: e8 ec 1b 00 00 call 23e970 stats->size /= 1024; 23cd84: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cd88: 48 8b 48 10 mov 0x10(%rax),%rcx 23cd8c: 48 c1 e9 0a shr $0xa,%rcx 23cd90: 48 89 48 10 mov %rcx,0x10(%rax) len = sizeof(stats->max); 23cd94: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_c_max, 5, &(stats->max), &len, NULL, 0); 23cd9c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cda0: 48 83 c2 08 add $0x8,%rdx 23cda4: 48 bf 90 23 24 00 00 00 00 00 movabs $0x242390,%rdi 23cdae: be 05 00 00 00 mov $0x5,%esi 23cdb3: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cdb7: 31 c0 xor %eax,%eax 23cdb9: 41 89 c1 mov %eax,%r9d 23cdbc: 4d 89 c8 mov %r9,%r8 23cdbf: e8 ac 1b 00 00 call 23e970 stats->max /= 1024; 23cdc4: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cdc8: 48 8b 48 08 mov 0x8(%rax),%rcx 23cdcc: 48 c1 e9 0a shr $0xa,%rcx 23cdd0: 48 89 48 08 mov %rcx,0x8(%rax) len = sizeof(stats->MFU); 23cdd4: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_mfu_size, 5, &(stats->MFU), &len, NULL, 0); 23cddc: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cde0: 48 83 c2 18 add $0x18,%rdx 23cde4: 48 bf b0 23 24 00 00 00 00 00 movabs $0x2423b0,%rdi 23cdee: be 05 00 00 00 mov $0x5,%esi 23cdf3: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cdf7: 31 c0 xor %eax,%eax 23cdf9: 41 89 c1 mov %eax,%r9d 23cdfc: 4d 89 c8 mov %r9,%r8 23cdff: e8 6c 1b 00 00 call 23e970 stats->MFU /= 1024; 23ce04: 48 8b 45 e8 mov -0x18(%rbp),%rax 23ce08: 48 8b 48 18 mov 0x18(%rax),%rcx 23ce0c: 48 c1 e9 0a shr $0xa,%rcx 23ce10: 48 89 48 18 mov %rcx,0x18(%rax) len = sizeof(stats->MRU); 23ce14: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_mru_size, 5, &(stats->MRU), &len, NULL, 0); 23ce1c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23ce20: 48 83 c2 20 add $0x20,%rdx 23ce24: 48 bf d0 23 24 00 00 00 00 00 movabs $0x2423d0,%rdi 23ce2e: be 05 00 00 00 mov $0x5,%esi 23ce33: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23ce37: 31 c0 xor %eax,%eax 23ce39: 41 89 c1 mov %eax,%r9d 23ce3c: 4d 89 c8 mov %r9,%r8 23ce3f: e8 2c 1b 00 00 call 23e970 stats->MRU /= 1024; 23ce44: 48 8b 45 e8 mov -0x18(%rbp),%rax 23ce48: 48 8b 48 20 mov 0x20(%rax),%rcx 23ce4c: 48 c1 e9 0a shr $0xa,%rcx 23ce50: 48 89 48 20 mov %rcx,0x20(%rax) len = sizeof(stats->anon); 23ce54: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_anon_size, 5, &(stats->anon), &len, NULL, 0); 23ce5c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23ce60: 48 83 c2 28 add $0x28,%rdx 23ce64: 48 bf f0 23 24 00 00 00 00 00 movabs $0x2423f0,%rdi 23ce6e: be 05 00 00 00 mov $0x5,%esi 23ce73: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23ce77: 31 c0 xor %eax,%eax 23ce79: 41 89 c1 mov %eax,%r9d 23ce7c: 4d 89 c8 mov %r9,%r8 23ce7f: e8 ec 1a 00 00 call 23e970 stats->anon /= 1024; 23ce84: 48 8b 45 e8 mov -0x18(%rbp),%rax 23ce88: 48 8b 48 28 mov 0x28(%rax),%rcx 23ce8c: 48 c1 e9 0a shr $0xa,%rcx 23ce90: 48 89 48 28 mov %rcx,0x28(%rax) len = sizeof(stats->header); 23ce94: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_hdr_size, 5, &(stats->header), &len, NULL, 0); 23ce9c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cea0: 48 83 c2 30 add $0x30,%rdx 23cea4: 48 bf 10 24 24 00 00 00 00 00 movabs $0x242410,%rdi 23ceae: be 05 00 00 00 mov $0x5,%esi 23ceb3: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23ceb7: 31 c0 xor %eax,%eax 23ceb9: 41 89 c1 mov %eax,%r9d 23cebc: 4d 89 c8 mov %r9,%r8 23cebf: e8 ac 1a 00 00 call 23e970 stats->header /= 1024; 23cec4: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cec8: 48 8b 48 30 mov 0x30(%rax),%rcx 23cecc: 48 c1 e9 0a shr $0xa,%rcx 23ced0: 48 89 48 30 mov %rcx,0x30(%rax) len = sizeof(stats->other); 23ced4: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_other_size, 5, &(stats->other), &len, NULL, 0); 23cedc: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cee0: 48 83 c2 38 add $0x38,%rdx 23cee4: 48 bf 30 24 24 00 00 00 00 00 movabs $0x242430,%rdi 23ceee: be 05 00 00 00 mov $0x5,%esi 23cef3: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cef7: 31 c0 xor %eax,%eax 23cef9: 41 89 c1 mov %eax,%r9d 23cefc: 4d 89 c8 mov %r9,%r8 23ceff: e8 6c 1a 00 00 call 23e970 stats->other /= 1024; 23cf04: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cf08: 48 8b 48 38 mov 0x38(%rax),%rcx 23cf0c: 48 c1 e9 0a shr $0xa,%rcx 23cf10: 48 89 48 38 mov %rcx,0x38(%rax) if (stats->isCompressed) { 23cf14: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cf18: 83 78 04 00 cmpl $0x0,0x4(%rax) 23cf1c: 0f 84 80 00 00 00 je 23cfa2 len = sizeof(stats->compressed); 23cf22: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_compressed_size, 5, &(stats->compressed), &len, NULL, 0); 23cf2a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cf2e: 48 83 c2 40 add $0x40,%rdx 23cf32: 48 bf 50 24 24 00 00 00 00 00 movabs $0x242450,%rdi 23cf3c: be 05 00 00 00 mov $0x5,%esi 23cf41: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cf45: 31 c0 xor %eax,%eax 23cf47: 41 89 c1 mov %eax,%r9d 23cf4a: 4d 89 c8 mov %r9,%r8 23cf4d: e8 1e 1a 00 00 call 23e970 stats->compressed /= 1024; 23cf52: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cf56: 48 8b 48 40 mov 0x40(%rax),%rcx 23cf5a: 48 c1 e9 0a shr $0xa,%rcx 23cf5e: 48 89 48 40 mov %rcx,0x40(%rax) len = sizeof(stats->uncompressed); 23cf62: 48 c7 45 f0 08 00 00 00 movq $0x8,-0x10(%rbp) sysctl(MIB_kstat_zfs_misc_arcstats_uncompressed_size, 5, &(stats->uncompressed), &len, NULL, 0); 23cf6a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23cf6e: 48 83 c2 48 add $0x48,%rdx 23cf72: 48 bf 70 24 24 00 00 00 00 00 movabs $0x242470,%rdi 23cf7c: be 05 00 00 00 mov $0x5,%esi 23cf81: 48 8d 4d f0 lea -0x10(%rbp),%rcx 23cf85: 31 c0 xor %eax,%eax 23cf87: 41 89 c1 mov %eax,%r9d 23cf8a: 4d 89 c8 mov %r9,%r8 23cf8d: e8 de 19 00 00 call 23e970 stats->uncompressed /= 1024; 23cf92: 48 8b 45 e8 mov -0x18(%rbp),%rax 23cf96: 48 8b 48 48 mov 0x48(%rax),%rcx 23cf9a: 48 c1 e9 0a shr $0xa,%rcx 23cf9e: 48 89 48 48 mov %rcx,0x48(%rax) } } 23cfa2: e9 00 00 00 00 jmp 23cfa7 23cfa7: 48 8b 05 82 58 00 00 mov 0x5882(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cfae: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23cfb2: 48 39 c8 cmp %rcx,%rax 23cfb5: 0f 85 06 00 00 00 jne 23cfc1 } 23cfbb: 48 83 c4 20 add $0x20,%rsp 23cfbf: 5d pop %rbp 23cfc0: c3 ret 23cfc1: e8 7a 11 00 00 call 23e140 <__stack_chk_fail@plt> 23cfc6: cc int3 23cfc7: cc int3 23cfc8: cc int3 23cfc9: cc int3 23cfca: cc int3 23cfcb: cc int3 23cfcc: cc int3 23cfcd: cc int3 23cfce: cc int3 23cfcf: cc int3 000000000023cfd0 : fclose(stream); snprintf(buffer, bufferLen, "%s%s%s", name[0] ? name : "", name[0] && version[0] ? " " : "", version); } char* Generic_uname(void) { 23cfd0: 55 push %rbp 23cfd1: 48 89 e5 mov %rsp,%rbp 23cfd4: 48 81 ec a0 05 00 00 sub $0x5a0,%rsp 23cfdb: 48 8b 05 4e 58 00 00 mov 0x584e(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23cfe2: 48 89 45 f8 mov %rax,-0x8(%rbp) sizeof(((struct utsname*)0)->machine) + 16/*markup*/ + 128/*distro*/] = {'\0'}; static bool loaded_data = false; if (!loaded_data) { 23cfe6: f6 04 25 20 28 24 00 01 testb $0x1,0x242820 23cfee: 0f 85 15 01 00 00 jne 23d109 struct utsname uname_info; int uname_result = uname(&uname_info); 23cff4: 48 8d bd f8 fa ff ff lea -0x508(%rbp),%rdi 23cffb: e8 40 01 00 00 call 23d140 23d000: 89 85 6c fa ff ff mov %eax,-0x594(%rbp) char distro[128]; parseOSRelease(distro, sizeof(distro)); 23d006: 48 8d bd 70 fa ff ff lea -0x590(%rbp),%rdi 23d00d: be 80 00 00 00 mov $0x80,%esi 23d012: e8 49 01 00 00 call 23d160 if (uname_result == 0) { 23d017: 83 bd 6c fa ff ff 00 cmpl $0x0,-0x594(%rbp) 23d01e: 0f 85 b6 00 00 00 jne 23d0da size_t written = xSnprintf(savedString, sizeof(savedString), "%s %s [%s]", uname_info.sysname, uname_info.release, uname_info.machine); 23d024: 48 8d 8d f8 fa ff ff lea -0x508(%rbp),%rcx 23d02b: 4c 8d 85 f8 fa ff ff lea -0x508(%rbp),%r8 23d032: 49 81 c0 00 02 00 00 add $0x200,%r8 23d039: 4c 8d 8d f8 fa ff ff lea -0x508(%rbp),%r9 23d040: 49 81 c1 00 04 00 00 add $0x400,%r9 23d047: 48 bf 90 24 24 00 00 00 00 00 movabs $0x242490,%rdi 23d051: be 90 03 00 00 mov $0x390,%esi 23d056: 48 ba 05 56 20 00 00 00 00 00 movabs $0x205605,%rdx 23d060: b0 00 mov $0x0,%al 23d062: e8 89 c4 ff ff call 2394f0 23d067: 48 98 cltq 23d069: 48 89 85 60 fa ff ff mov %rax,-0x5a0(%rbp) if (!String_contains_i(savedString, distro) && sizeof(savedString) > written) 23d070: 48 8d b5 70 fa ff ff lea -0x590(%rbp),%rsi 23d077: 48 bf 90 24 24 00 00 00 00 00 movabs $0x242490,%rdi 23d081: e8 fa bb ff ff call 238c80 23d086: a8 01 test $0x1,%al 23d088: 0f 85 47 00 00 00 jne 23d0d5 23d08e: b8 90 03 00 00 mov $0x390,%eax 23d093: 48 3b 85 60 fa ff ff cmp -0x5a0(%rbp),%rax 23d09a: 0f 86 35 00 00 00 jbe 23d0d5 snprintf(savedString + written, sizeof(savedString) - written, " @ %s", distro); 23d0a0: 48 bf 90 24 24 00 00 00 00 00 movabs $0x242490,%rdi 23d0aa: 48 03 bd 60 fa ff ff add -0x5a0(%rbp),%rdi 23d0b1: be 90 03 00 00 mov $0x390,%esi 23d0b6: 48 2b b5 60 fa ff ff sub -0x5a0(%rbp),%rsi 23d0bd: 48 8d 8d 70 fa ff ff lea -0x590(%rbp),%rcx 23d0c4: 48 ba ce 5b 20 00 00 00 00 00 movabs $0x205bce,%rdx 23d0ce: b0 00 mov $0x0,%al 23d0d0: e8 db 13 00 00 call 23e4b0 } else { 23d0d5: e9 27 00 00 00 jmp 23d101 snprintf(savedString, sizeof(savedString), "%s", distro); 23d0da: 48 8d 8d 70 fa ff ff lea -0x590(%rbp),%rcx 23d0e1: 48 bf 90 24 24 00 00 00 00 00 movabs $0x242490,%rdi 23d0eb: be 90 03 00 00 mov $0x390,%esi 23d0f0: 48 ba 30 3b 20 00 00 00 00 00 movabs $0x203b30,%rdx 23d0fa: b0 00 mov $0x0,%al 23d0fc: e8 af 13 00 00 call 23e4b0 } loaded_data = true; 23d101: c6 04 25 20 28 24 00 01 movb $0x1,0x242820 23d109: 48 8b 05 20 57 00 00 mov 0x5720(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23d110: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23d114: 48 39 c8 cmp %rcx,%rax 23d117: 0f 85 13 00 00 00 jne 23d130 } return savedString; 23d11d: 48 b8 90 24 24 00 00 00 00 00 movabs $0x242490,%rax 23d127: 48 81 c4 a0 05 00 00 add $0x5a0,%rsp 23d12e: 5d pop %rbp 23d12f: c3 ret 23d130: e8 0b 10 00 00 call 23e140 <__stack_chk_fail@plt> 23d135: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23d13f: 90 nop 000000000023d140 : int __xuname(int, void *); /* Variable record size. */ __END_DECLS static __inline int uname(struct utsname *name) { 23d140: 55 push %rbp 23d141: 48 89 e5 mov %rsp,%rbp 23d144: 48 83 ec 10 sub $0x10,%rsp 23d148: 48 89 7d f8 mov %rdi,-0x8(%rbp) return __xuname(SYS_NMLN, (void *)name); 23d14c: 48 8b 75 f8 mov -0x8(%rbp),%rsi 23d150: bf 00 01 00 00 mov $0x100,%edi 23d155: e8 26 19 00 00 call 23ea80 <__xuname@plt> 23d15a: 48 83 c4 10 add $0x10,%rsp 23d15e: 5d pop %rbp 23d15f: c3 ret 000000000023d160 : static void parseOSRelease(char* buffer, size_t bufferLen) { 23d160: 55 push %rbp 23d161: 48 89 e5 mov %rsp,%rbp 23d164: 48 81 ec 50 02 00 00 sub $0x250,%rsp 23d16b: 48 8b 05 be 56 00 00 mov 0x56be(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23d172: 48 89 45 f8 mov %rax,-0x8(%rbp) 23d176: 48 89 bd 68 fe ff ff mov %rdi,-0x198(%rbp) 23d17d: 48 89 b5 60 fe ff ff mov %rsi,-0x1a0(%rbp) FILE* stream = fopen(OSRELEASEFILE, "r"); 23d184: 48 bf 71 5d 20 00 00 00 00 00 movabs $0x205d71,%rdi 23d18e: 48 be 76 55 20 00 00 00 00 00 movabs $0x205576,%rsi 23d198: e8 63 16 00 00 call 23e800 23d19d: 48 89 85 58 fe ff ff mov %rax,-0x1a8(%rbp) if (!stream) { 23d1a4: 48 83 bd 58 fe ff ff 00 cmpq $0x0,-0x1a8(%rbp) 23d1ac: 0f 85 24 00 00 00 jne 23d1d6 xSnprintf(buffer, bufferLen, "No OS Release"); 23d1b2: 48 8b bd 68 fe ff ff mov -0x198(%rbp),%rdi 23d1b9: 48 8b b5 60 fe ff ff mov -0x1a0(%rbp),%rsi 23d1c0: 48 ba 89 50 20 00 00 00 00 00 movabs $0x205089,%rdx 23d1ca: b0 00 mov $0x0,%al 23d1cc: e8 1f c3 ff ff call 2394f0 return; 23d1d1: e9 33 04 00 00 jmp 23d609 char name[64] = {'\0'}; 23d1d6: 48 8d 7d b0 lea -0x50(%rbp),%rdi 23d1da: 31 f6 xor %esi,%esi 23d1dc: ba 40 00 00 00 mov $0x40,%edx 23d1e1: e8 5a 10 00 00 call 23e240 char version[64] = {'\0'}; 23d1e6: 48 8d bd 70 ff ff ff lea -0x90(%rbp),%rdi 23d1ed: 31 f6 xor %esi,%esi 23d1ef: ba 40 00 00 00 mov $0x40,%edx 23d1f4: e8 47 10 00 00 call 23e240 while (fgets(lineBuffer, sizeof(lineBuffer), stream)) { 23d1f9: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d200: 48 8b 95 58 fe ff ff mov -0x1a8(%rbp),%rdx 23d207: be 00 01 00 00 mov $0x100,%esi 23d20c: e8 0f 17 00 00 call 23e920 23d211: 48 83 f8 00 cmp $0x0,%rax 23d215: 0f 84 0f 03 00 00 je 23d52a if (String_startsWith(lineBuffer, "PRETTY_NAME=\"")) { 23d21b: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d222: 48 be 7c 44 20 00 00 00 00 00 movabs $0x20447c,%rsi 23d22c: e8 ff 03 00 00 call 23d630 23d231: a8 01 test $0x1,%al 23d233: 0f 85 05 00 00 00 jne 23d23e 23d239: e9 ec 00 00 00 jmp 23d32a const char* start = lineBuffer + strlen("PRETTY_NAME=\""); 23d23e: 48 8d 85 70 fe ff ff lea -0x190(%rbp),%rax 23d245: 48 83 c0 0d add $0xd,%rax 23d249: 48 89 85 50 fe ff ff mov %rax,-0x1b0(%rbp) const char* stop = strrchr(lineBuffer, '"'); 23d250: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d257: be 22 00 00 00 mov $0x22,%esi 23d25c: e8 5f 13 00 00 call 23e5c0 23d261: 48 89 85 48 fe ff ff mov %rax,-0x1b8(%rbp) if (!stop || stop <= start) 23d268: 48 83 bd 48 fe ff ff 00 cmpq $0x0,-0x1b8(%rbp) 23d270: 0f 84 14 00 00 00 je 23d28a 23d276: 48 8b 85 48 fe ff ff mov -0x1b8(%rbp),%rax 23d27d: 48 3b 85 50 fe ff ff cmp -0x1b0(%rbp),%rax 23d284: 0f 87 05 00 00 00 ja 23d28f continue; 23d28a: e9 6a ff ff ff jmp 23d1f9 String_safeStrncpy(buffer, start, MINIMUM(bufferLen, (size_t)(stop - start + 1))); 23d28f: 48 8b 85 68 fe ff ff mov -0x198(%rbp),%rax 23d296: 48 89 85 18 fe ff ff mov %rax,-0x1e8(%rbp) 23d29d: 48 8b 85 50 fe ff ff mov -0x1b0(%rbp),%rax 23d2a4: 48 89 85 20 fe ff ff mov %rax,-0x1e0(%rbp) 23d2ab: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 23d2b2: 48 8b 8d 48 fe ff ff mov -0x1b8(%rbp),%rcx 23d2b9: 48 8b 95 50 fe ff ff mov -0x1b0(%rbp),%rdx 23d2c0: 48 29 d1 sub %rdx,%rcx 23d2c3: 48 83 c1 01 add $0x1,%rcx 23d2c7: 48 39 c8 cmp %rcx,%rax 23d2ca: 0f 83 13 00 00 00 jae 23d2e3 23d2d0: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 23d2d7: 48 89 85 10 fe ff ff mov %rax,-0x1f0(%rbp) 23d2de: e9 1c 00 00 00 jmp 23d2ff 23d2e3: 48 8b 85 48 fe ff ff mov -0x1b8(%rbp),%rax 23d2ea: 48 8b 8d 50 fe ff ff mov -0x1b0(%rbp),%rcx 23d2f1: 48 29 c8 sub %rcx,%rax 23d2f4: 48 83 c0 01 add $0x1,%rax 23d2f8: 48 89 85 10 fe ff ff mov %rax,-0x1f0(%rbp) 23d2ff: 48 8b b5 20 fe ff ff mov -0x1e0(%rbp),%rsi 23d306: 48 8b bd 18 fe ff ff mov -0x1e8(%rbp),%rdi 23d30d: 48 8b 95 10 fe ff ff mov -0x1f0(%rbp),%rdx 23d314: e8 47 c0 ff ff call 239360 fclose(stream); 23d319: 48 8b bd 58 fe ff ff mov -0x1a8(%rbp),%rdi 23d320: e8 bb 13 00 00 call 23e6e0 return; 23d325: e9 df 02 00 00 jmp 23d609 if (String_startsWith(lineBuffer, "NAME=\"")) { 23d32a: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d331: 48 be 48 65 20 00 00 00 00 00 movabs $0x206548,%rsi 23d33b: e8 f0 02 00 00 call 23d630 23d340: a8 01 test $0x1,%al 23d342: 0f 85 05 00 00 00 jne 23d34d 23d348: e9 d9 00 00 00 jmp 23d426 const char* start = lineBuffer + strlen("NAME=\""); 23d34d: 48 8d 85 70 fe ff ff lea -0x190(%rbp),%rax 23d354: 48 83 c0 06 add $0x6,%rax 23d358: 48 89 85 40 fe ff ff mov %rax,-0x1c0(%rbp) const char* stop = strrchr(lineBuffer, '"'); 23d35f: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d366: be 22 00 00 00 mov $0x22,%esi 23d36b: e8 50 12 00 00 call 23e5c0 23d370: 48 89 85 38 fe ff ff mov %rax,-0x1c8(%rbp) if (!stop || stop <= start) 23d377: 48 83 bd 38 fe ff ff 00 cmpq $0x0,-0x1c8(%rbp) 23d37f: 0f 84 14 00 00 00 je 23d399 23d385: 48 8b 85 38 fe ff ff mov -0x1c8(%rbp),%rax 23d38c: 48 3b 85 40 fe ff ff cmp -0x1c0(%rbp),%rax 23d393: 0f 87 05 00 00 00 ja 23d39e continue; 23d399: e9 5b fe ff ff jmp 23d1f9 String_safeStrncpy(name, start, MINIMUM(sizeof(name), (size_t)(stop - start + 1))); 23d39e: 48 8d 45 b0 lea -0x50(%rbp),%rax 23d3a2: 48 89 85 00 fe ff ff mov %rax,-0x200(%rbp) 23d3a9: 48 8b 85 40 fe ff ff mov -0x1c0(%rbp),%rax 23d3b0: 48 89 85 08 fe ff ff mov %rax,-0x1f8(%rbp) 23d3b7: 48 8b 8d 38 fe ff ff mov -0x1c8(%rbp),%rcx 23d3be: 48 8b 85 40 fe ff ff mov -0x1c0(%rbp),%rax 23d3c5: 48 29 c1 sub %rax,%rcx 23d3c8: 48 83 c1 01 add $0x1,%rcx 23d3cc: b8 40 00 00 00 mov $0x40,%eax 23d3d1: 48 39 c8 cmp %rcx,%rax 23d3d4: 0f 83 11 00 00 00 jae 23d3eb 23d3da: b8 40 00 00 00 mov $0x40,%eax 23d3df: 48 89 85 f8 fd ff ff mov %rax,-0x208(%rbp) 23d3e6: e9 1c 00 00 00 jmp 23d407 23d3eb: 48 8b 85 38 fe ff ff mov -0x1c8(%rbp),%rax 23d3f2: 48 8b 8d 40 fe ff ff mov -0x1c0(%rbp),%rcx 23d3f9: 48 29 c8 sub %rcx,%rax 23d3fc: 48 83 c0 01 add $0x1,%rax 23d400: 48 89 85 f8 fd ff ff mov %rax,-0x208(%rbp) 23d407: 48 8b b5 08 fe ff ff mov -0x1f8(%rbp),%rsi 23d40e: 48 8b bd 00 fe ff ff mov -0x200(%rbp),%rdi 23d415: 48 8b 95 f8 fd ff ff mov -0x208(%rbp),%rdx 23d41c: e8 3f bf ff ff call 239360 continue; 23d421: e9 d3 fd ff ff jmp 23d1f9 if (String_startsWith(lineBuffer, "VERSION=\"")) { 23d426: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d42d: 48 be ec 66 20 00 00 00 00 00 movabs $0x2066ec,%rsi 23d437: e8 f4 01 00 00 call 23d630 23d43c: a8 01 test $0x1,%al 23d43e: 0f 85 05 00 00 00 jne 23d449 23d444: e9 dc 00 00 00 jmp 23d525 const char* start = lineBuffer + strlen("VERSION=\""); 23d449: 48 8d 85 70 fe ff ff lea -0x190(%rbp),%rax 23d450: 48 83 c0 09 add $0x9,%rax 23d454: 48 89 85 30 fe ff ff mov %rax,-0x1d0(%rbp) const char* stop = strrchr(lineBuffer, '"'); 23d45b: 48 8d bd 70 fe ff ff lea -0x190(%rbp),%rdi 23d462: be 22 00 00 00 mov $0x22,%esi 23d467: e8 54 11 00 00 call 23e5c0 23d46c: 48 89 85 28 fe ff ff mov %rax,-0x1d8(%rbp) if (!stop || stop <= start) 23d473: 48 83 bd 28 fe ff ff 00 cmpq $0x0,-0x1d8(%rbp) 23d47b: 0f 84 14 00 00 00 je 23d495 23d481: 48 8b 85 28 fe ff ff mov -0x1d8(%rbp),%rax 23d488: 48 3b 85 30 fe ff ff cmp -0x1d0(%rbp),%rax 23d48f: 0f 87 05 00 00 00 ja 23d49a continue; 23d495: e9 5f fd ff ff jmp 23d1f9 String_safeStrncpy(version, start, MINIMUM(sizeof(version), (size_t)(stop - start + 1))); 23d49a: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 23d4a1: 48 89 85 e8 fd ff ff mov %rax,-0x218(%rbp) 23d4a8: 48 8b 85 30 fe ff ff mov -0x1d0(%rbp),%rax 23d4af: 48 89 85 f0 fd ff ff mov %rax,-0x210(%rbp) 23d4b6: 48 8b 8d 28 fe ff ff mov -0x1d8(%rbp),%rcx 23d4bd: 48 8b 85 30 fe ff ff mov -0x1d0(%rbp),%rax 23d4c4: 48 29 c1 sub %rax,%rcx 23d4c7: 48 83 c1 01 add $0x1,%rcx 23d4cb: b8 40 00 00 00 mov $0x40,%eax 23d4d0: 48 39 c8 cmp %rcx,%rax 23d4d3: 0f 83 11 00 00 00 jae 23d4ea 23d4d9: b8 40 00 00 00 mov $0x40,%eax 23d4de: 48 89 85 e0 fd ff ff mov %rax,-0x220(%rbp) 23d4e5: e9 1c 00 00 00 jmp 23d506 23d4ea: 48 8b 85 28 fe ff ff mov -0x1d8(%rbp),%rax 23d4f1: 48 8b 8d 30 fe ff ff mov -0x1d0(%rbp),%rcx 23d4f8: 48 29 c8 sub %rcx,%rax 23d4fb: 48 83 c0 01 add $0x1,%rax 23d4ff: 48 89 85 e0 fd ff ff mov %rax,-0x220(%rbp) 23d506: 48 8b b5 f0 fd ff ff mov -0x210(%rbp),%rsi 23d50d: 48 8b bd e8 fd ff ff mov -0x218(%rbp),%rdi 23d514: 48 8b 95 e0 fd ff ff mov -0x220(%rbp),%rdx 23d51b: e8 40 be ff ff call 239360 continue; 23d520: e9 d4 fc ff ff jmp 23d1f9 while (fgets(lineBuffer, sizeof(lineBuffer), stream)) { 23d525: e9 cf fc ff ff jmp 23d1f9 fclose(stream); 23d52a: 48 8b bd 58 fe ff ff mov -0x1a8(%rbp),%rdi 23d531: e8 aa 11 00 00 call 23e6e0 snprintf(buffer, bufferLen, "%s%s%s", name[0] ? name : "", name[0] && version[0] ? " " : "", version); 23d536: 48 8b 85 68 fe ff ff mov -0x198(%rbp),%rax 23d53d: 48 89 85 d0 fd ff ff mov %rax,-0x230(%rbp) 23d544: 48 8b 85 60 fe ff ff mov -0x1a0(%rbp),%rax 23d54b: 48 89 85 d8 fd ff ff mov %rax,-0x228(%rbp) 23d552: 0f be 45 b0 movsbl -0x50(%rbp),%eax 23d556: 83 f8 00 cmp $0x0,%eax 23d559: 0f 84 10 00 00 00 je 23d56f 23d55f: 48 8d 45 b0 lea -0x50(%rbp),%rax 23d563: 48 89 85 c8 fd ff ff mov %rax,-0x238(%rbp) 23d56a: e9 16 00 00 00 jmp 23d585 23d56f: 48 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%rax 23d579: 48 89 85 c8 fd ff ff mov %rax,-0x238(%rbp) 23d580: e9 00 00 00 00 jmp 23d585 23d585: 48 8b 85 c8 fd ff ff mov -0x238(%rbp),%rax 23d58c: 48 89 85 b8 fd ff ff mov %rax,-0x248(%rbp) 23d593: 0f be 4d b0 movsbl -0x50(%rbp),%ecx 23d597: 31 c0 xor %eax,%eax 23d599: 83 f9 00 cmp $0x0,%ecx 23d59c: 88 85 c7 fd ff ff mov %al,-0x239(%rbp) 23d5a2: 0f 84 13 00 00 00 je 23d5bb 23d5a8: 0f be 85 70 ff ff ff movsbl -0x90(%rbp),%eax 23d5af: 83 f8 00 cmp $0x0,%eax 23d5b2: 0f 95 c0 setne %al 23d5b5: 88 85 c7 fd ff ff mov %al,-0x239(%rbp) 23d5bb: 48 8b 8d b8 fd ff ff mov -0x248(%rbp),%rcx 23d5c2: 48 8b b5 d8 fd ff ff mov -0x228(%rbp),%rsi 23d5c9: 48 8b bd d0 fd ff ff mov -0x230(%rbp),%rdi 23d5d0: 8a 95 c7 fd ff ff mov -0x239(%rbp),%dl 23d5d6: 49 b8 ff 66 20 00 00 00 00 00 movabs $0x2066ff,%r8 23d5e0: 48 b8 c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rax 23d5ea: f6 c2 01 test $0x1,%dl 23d5ed: 4c 0f 45 c0 cmovne %rax,%r8 23d5f1: 4c 8d 8d 70 ff ff ff lea -0x90(%rbp),%r9 23d5f8: 48 ba 19 33 20 00 00 00 00 00 movabs $0x203319,%rdx 23d602: b0 00 mov $0x0,%al 23d604: e8 a7 0e 00 00 call 23e4b0 23d609: 48 8b 05 20 52 00 00 mov 0x5220(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23d610: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23d614: 48 39 c8 cmp %rcx,%rax 23d617: 0f 85 09 00 00 00 jne 23d626 } 23d61d: 48 81 c4 50 02 00 00 add $0x250,%rsp 23d624: 5d pop %rbp 23d625: c3 ret 23d626: e8 15 0b 00 00 call 23e140 <__stack_chk_fail@plt> 23d62b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000023d630 : static inline bool String_startsWith(const char* s, const char* match) { 23d630: 55 push %rbp 23d631: 48 89 e5 mov %rsp,%rbp 23d634: 48 83 ec 20 sub $0x20,%rsp 23d638: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23d63c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return strncmp(s, match, strlen(match)) == 0; 23d640: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d644: 48 89 45 e0 mov %rax,-0x20(%rbp) 23d648: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d64c: 48 89 45 e8 mov %rax,-0x18(%rbp) 23d650: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23d654: e8 97 0b 00 00 call 23e1f0 23d659: 48 8b 7d e0 mov -0x20(%rbp),%rdi 23d65d: 48 8b 75 e8 mov -0x18(%rbp),%rsi 23d661: 48 89 c2 mov %rax,%rdx 23d664: e8 17 0e 00 00 call 23e480 23d669: 83 f8 00 cmp $0x0,%eax 23d66c: 0f 94 c0 sete %al 23d66f: 24 01 and $0x1,%al 23d671: 0f b6 c0 movzbl %al,%eax 23d674: 48 83 c4 20 add $0x20,%rsp 23d678: 5d pop %rbp 23d679: c3 ret 23d67a: cc int3 23d67b: cc int3 23d67c: cc int3 23d67d: cc int3 23d67e: cc int3 23d67f: cc int3 000000000023d680 : static const int ZfsArcMeter_attributes[] = { ZFS_MFU, ZFS_MRU, ZFS_ANON, ZFS_HEADER, ZFS_OTHER }; void ZfsArcMeter_readStats(Meter* this, const ZfsArcStats* stats) { 23d680: 55 push %rbp 23d681: 48 89 e5 mov %rsp,%rbp 23d684: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23d688: 48 89 75 f0 mov %rsi,-0x10(%rbp) this->total = stats->max; 23d68c: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d690: f3 0f 7e 40 08 movq 0x8(%rax),%xmm0 23d695: 0f 28 15 44 af fc ff movaps -0x350bc(%rip),%xmm2 # 2085e0 23d69c: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d6a0: 66 0f 28 0d 48 af fc ff movapd -0x350b8(%rip),%xmm1 # 2085f0 23d6a8: 66 0f 5c c1 subpd %xmm1,%xmm0 23d6ac: 0f 28 d8 movaps %xmm0,%xmm3 23d6af: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d6b3: f2 0f 58 c3 addsd %xmm3,%xmm0 23d6b7: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d6bb: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->values[0] = stats->MFU; 23d6c3: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d6c7: f3 0f 7e 40 18 movq 0x18(%rax),%xmm0 23d6cc: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d6d0: 66 0f 5c c1 subpd %xmm1,%xmm0 23d6d4: 0f 28 d8 movaps %xmm0,%xmm3 23d6d7: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d6db: f2 0f 58 c3 addsd %xmm3,%xmm0 23d6df: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d6e3: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d6ea: f2 0f 11 00 movsd %xmm0,(%rax) this->values[1] = stats->MRU; 23d6ee: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d6f2: f3 0f 7e 40 20 movq 0x20(%rax),%xmm0 23d6f7: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d6fb: 66 0f 5c c1 subpd %xmm1,%xmm0 23d6ff: 0f 28 d8 movaps %xmm0,%xmm3 23d702: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d706: f2 0f 58 c3 addsd %xmm3,%xmm0 23d70a: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d70e: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d715: f2 0f 11 40 08 movsd %xmm0,0x8(%rax) this->values[2] = stats->anon; 23d71a: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d71e: f3 0f 7e 40 28 movq 0x28(%rax),%xmm0 23d723: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d727: 66 0f 5c c1 subpd %xmm1,%xmm0 23d72b: 0f 28 d8 movaps %xmm0,%xmm3 23d72e: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d732: f2 0f 58 c3 addsd %xmm3,%xmm0 23d736: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d73a: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d741: f2 0f 11 40 10 movsd %xmm0,0x10(%rax) this->values[3] = stats->header; 23d746: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d74a: f3 0f 7e 40 30 movq 0x30(%rax),%xmm0 23d74f: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d753: 66 0f 5c c1 subpd %xmm1,%xmm0 23d757: 0f 28 d8 movaps %xmm0,%xmm3 23d75a: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d75e: f2 0f 58 c3 addsd %xmm3,%xmm0 23d762: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d766: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d76d: f2 0f 11 40 18 movsd %xmm0,0x18(%rax) this->values[4] = stats->other; 23d772: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d776: f3 0f 7e 40 38 movq 0x38(%rax),%xmm0 23d77b: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d77f: 66 0f 5c c1 subpd %xmm1,%xmm0 23d783: 0f 28 d8 movaps %xmm0,%xmm3 23d786: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d78a: f2 0f 58 c3 addsd %xmm3,%xmm0 23d78e: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d792: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d799: f2 0f 11 40 20 movsd %xmm0,0x20(%rax) // "Hide" the last value so it can // only be accessed by index and is not // displayed by the Bar or Graph style this->curItems = 5; 23d79e: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d7a2: c6 40 38 05 movb $0x5,0x38(%rax) this->values[5] = stats->size; 23d7a6: 48 8b 45 f0 mov -0x10(%rbp),%rax 23d7aa: f3 0f 7e 40 10 movq 0x10(%rax),%xmm0 23d7af: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23d7b3: 66 0f 5c c1 subpd %xmm1,%xmm0 23d7b7: 0f 28 c8 movaps %xmm0,%xmm1 23d7ba: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23d7be: f2 0f 58 c1 addsd %xmm1,%xmm0 23d7c2: 48 8b 45 f8 mov -0x8(%rbp),%rax 23d7c6: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d7cd: f2 0f 11 40 28 movsd %xmm0,0x28(%rax) } 23d7d2: 5d pop %rbp 23d7d3: c3 ret 23d7d4: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23d7de: 66 90 xchg %ax,%ax 000000000023d7e0 : METER_BUFFER_APPEND_CHR(buffer, size, '/'); Meter_humanUnit(buffer, this->total, size); } static void ZfsArcMeter_display(const Object* cast, RichString* out) { 23d7e0: 55 push %rbp 23d7e1: 48 89 e5 mov %rsp,%rbp 23d7e4: 48 83 ec 70 sub $0x70,%rsp 23d7e8: 48 8b 05 41 50 00 00 mov 0x5041(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23d7ef: 48 89 45 f8 mov %rax,-0x8(%rbp) 23d7f3: 48 89 7d b8 mov %rdi,-0x48(%rbp) 23d7f7: 48 89 75 b0 mov %rsi,-0x50(%rbp) const Meter* this = (const Meter*)cast; 23d7fb: 48 8b 45 b8 mov -0x48(%rbp),%rax 23d7ff: 48 89 45 a8 mov %rax,-0x58(%rbp) if (this->values[5] > 0) { 23d803: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d807: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d80e: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 23d813: 0f 57 c9 xorps %xmm1,%xmm1 23d816: 66 0f 2e c1 ucomisd %xmm1,%xmm0 23d81a: 0f 86 19 03 00 00 jbe 23db39 char buffer[50]; Meter_humanUnit(buffer, this->total, sizeof(buffer)); 23d820: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d824: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 23d82c: f2 0f 10 15 2c 9b fc ff movsd -0x364d4(%rip),%xmm2 # 207360 23d834: f2 0f 11 55 98 movsd %xmm2,-0x68(%rbp) 23d839: 0f 28 c8 movaps %xmm0,%xmm1 23d83c: f2 0f 5c ca subsd %xmm2,%xmm1 23d840: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23d845: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23d84a: 48 89 f1 mov %rsi,%rcx 23d84d: 48 c1 f9 3f sar $0x3f,%rcx 23d851: 48 21 c8 and %rcx,%rax 23d854: 48 09 c6 or %rax,%rsi 23d857: 48 8d 7d c0 lea -0x40(%rbp),%rdi 23d85b: 48 89 7d a0 mov %rdi,-0x60(%rbp) 23d85f: ba 32 00 00 00 mov $0x32,%edx 23d864: 48 89 55 90 mov %rdx,-0x70(%rbp) 23d868: e8 a3 61 fe ff call 223a10 23d86d: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 23d871: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d875: 48 8b 05 04 49 00 00 mov 0x4904(%rip),%rax # 242180 23d87c: 8b 70 3c mov 0x3c(%rax),%esi 23d87f: e8 fc 4c ff ff call 232580 23d884: 48 8b 55 90 mov -0x70(%rbp),%rdx 23d888: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23d88d: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[5], sizeof(buffer)); 23d891: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d895: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d89c: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 23d8a1: 0f 28 c8 movaps %xmm0,%xmm1 23d8a4: f2 0f 5c ca subsd %xmm2,%xmm1 23d8a8: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23d8ad: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23d8b2: 48 89 f1 mov %rsi,%rcx 23d8b5: 48 c1 f9 3f sar $0x3f,%rcx 23d8b9: 48 21 c8 and %rcx,%rax 23d8bc: 48 09 c6 or %rax,%rsi 23d8bf: e8 4c 61 fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Used:"); 23d8c4: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d8c8: 48 8b 05 b1 48 00 00 mov 0x48b1(%rip),%rax # 242180 23d8cf: 8b 70 38 mov 0x38(%rax),%esi 23d8d2: ba 10 56 20 00 mov $0x205610,%edx 23d8d7: e8 a4 4c ff ff call 232580 23d8dc: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 23d8e0: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d8e4: 48 8b 05 95 48 00 00 mov 0x4895(%rip),%rax # 242180 23d8eb: 8b 70 3c mov 0x3c(%rax),%esi 23d8ee: e8 8d 4c ff ff call 232580 23d8f3: 48 8b 55 90 mov -0x70(%rbp),%rdx 23d8f7: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23d8fc: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[0], sizeof(buffer)); 23d900: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d904: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d90b: f2 0f 10 00 movsd (%rax),%xmm0 23d90f: 0f 28 c8 movaps %xmm0,%xmm1 23d912: f2 0f 5c ca subsd %xmm2,%xmm1 23d916: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23d91b: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23d920: 48 89 f1 mov %rsi,%rcx 23d923: 48 c1 f9 3f sar $0x3f,%rcx 23d927: 48 21 c8 and %rcx,%rax 23d92a: 48 09 c6 or %rax,%rsi 23d92d: e8 de 60 fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " MFU:"); 23d932: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d936: 48 8b 05 43 48 00 00 mov 0x4843(%rip),%rax # 242180 23d93d: 8b 70 38 mov 0x38(%rax),%esi 23d940: ba 95 68 20 00 mov $0x206895,%edx 23d945: e8 36 4c ff ff call 232580 23d94a: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[ZFS_MFU], buffer); 23d94e: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d952: 48 8b 05 27 48 00 00 mov 0x4827(%rip),%rax # 242180 23d959: 8b b0 4c 01 00 00 mov 0x14c(%rax),%esi 23d95f: e8 1c 4c ff ff call 232580 23d964: 48 8b 55 90 mov -0x70(%rbp),%rdx 23d968: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23d96d: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[1], sizeof(buffer)); 23d971: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d975: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d97c: f2 0f 10 40 08 movsd 0x8(%rax),%xmm0 23d981: 0f 28 c8 movaps %xmm0,%xmm1 23d984: f2 0f 5c ca subsd %xmm2,%xmm1 23d988: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23d98d: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23d992: 48 89 f1 mov %rsi,%rcx 23d995: 48 c1 f9 3f sar $0x3f,%rcx 23d999: 48 21 c8 and %rcx,%rax 23d99c: 48 09 c6 or %rax,%rsi 23d99f: e8 6c 60 fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " MRU:"); 23d9a4: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d9a8: 48 8b 05 d1 47 00 00 mov 0x47d1(%rip),%rax # 242180 23d9af: 8b 70 38 mov 0x38(%rax),%esi 23d9b2: ba 4f 65 20 00 mov $0x20654f,%edx 23d9b7: e8 c4 4b ff ff call 232580 23d9bc: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[ZFS_MRU], buffer); 23d9c0: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23d9c4: 48 8b 05 b5 47 00 00 mov 0x47b5(%rip),%rax # 242180 23d9cb: 8b b0 50 01 00 00 mov 0x150(%rax),%esi 23d9d1: e8 aa 4b ff ff call 232580 23d9d6: 48 8b 55 90 mov -0x70(%rbp),%rdx 23d9da: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23d9df: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[2], sizeof(buffer)); 23d9e3: 48 8b 45 a8 mov -0x58(%rbp),%rax 23d9e7: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23d9ee: f2 0f 10 40 10 movsd 0x10(%rax),%xmm0 23d9f3: 0f 28 c8 movaps %xmm0,%xmm1 23d9f6: f2 0f 5c ca subsd %xmm2,%xmm1 23d9fa: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23d9ff: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23da04: 48 89 f1 mov %rsi,%rcx 23da07: 48 c1 f9 3f sar $0x3f,%rcx 23da0b: 48 21 c8 and %rcx,%rax 23da0e: 48 09 c6 or %rax,%rsi 23da11: e8 fa 5f fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Anon:"); 23da16: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23da1a: 48 8b 05 5f 47 00 00 mov 0x475f(%rip),%rax # 242180 23da21: 8b 70 38 mov 0x38(%rax),%esi 23da24: ba 1d 6e 20 00 mov $0x206e1d,%edx 23da29: e8 52 4b ff ff call 232580 23da2e: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[ZFS_ANON], buffer); 23da32: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23da36: 48 8b 05 43 47 00 00 mov 0x4743(%rip),%rax # 242180 23da3d: 8b b0 54 01 00 00 mov 0x154(%rax),%esi 23da43: e8 38 4b ff ff call 232580 23da48: 48 8b 55 90 mov -0x70(%rbp),%rdx 23da4c: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23da51: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[3], sizeof(buffer)); 23da55: 48 8b 45 a8 mov -0x58(%rbp),%rax 23da59: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23da60: f2 0f 10 40 18 movsd 0x18(%rax),%xmm0 23da65: 0f 28 c8 movaps %xmm0,%xmm1 23da68: f2 0f 5c ca subsd %xmm2,%xmm1 23da6c: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23da71: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23da76: 48 89 f1 mov %rsi,%rcx 23da79: 48 c1 f9 3f sar $0x3f,%rcx 23da7d: 48 21 c8 and %rcx,%rax 23da80: 48 09 c6 or %rax,%rsi 23da83: e8 88 5f fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Hdr:"); 23da88: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23da8c: 48 8b 05 ed 46 00 00 mov 0x46ed(%rip),%rax # 242180 23da93: 8b 70 38 mov 0x38(%rax),%esi 23da96: ba 97 50 20 00 mov $0x205097,%edx 23da9b: e8 e0 4a ff ff call 232580 23daa0: 48 8b 55 a0 mov -0x60(%rbp),%rdx RichString_appendAscii(out, CRT_colors[ZFS_HEADER], buffer); 23daa4: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23daa8: 48 8b 05 d1 46 00 00 mov 0x46d1(%rip),%rax # 242180 23daaf: 8b b0 58 01 00 00 mov 0x158(%rax),%esi 23dab5: e8 c6 4a ff ff call 232580 23daba: f2 0f 10 55 98 movsd -0x68(%rbp),%xmm2 23dabf: 48 8b 7d a0 mov -0x60(%rbp),%rdi Meter_humanUnit(buffer, this->values[4], sizeof(buffer)); 23dac3: 48 8b 45 a8 mov -0x58(%rbp),%rax 23dac7: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23dace: f2 0f 10 40 20 movsd 0x20(%rax),%xmm0 23dad3: 0f 28 c8 movaps %xmm0,%xmm1 23dad6: f2 0f 5c ca subsd %xmm2,%xmm1 23dada: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23dadf: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23dae4: 48 89 f1 mov %rsi,%rcx 23dae7: 48 c1 f9 3f sar $0x3f,%rcx 23daeb: 48 21 c8 and %rcx,%rax 23daee: 48 09 c6 or %rax,%rsi 23daf1: ba 32 00 00 00 mov $0x32,%edx 23daf6: e8 15 5f fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Oth:"); 23dafb: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23daff: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23db07: 8b 70 38 mov 0x38(%rax),%esi 23db0a: 48 ba c3 42 20 00 00 00 00 00 movabs $0x2042c3,%rdx 23db14: e8 67 4a ff ff call 232580 RichString_appendAscii(out, CRT_colors[ZFS_OTHER], buffer); 23db19: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23db1d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23db25: 8b b0 5c 01 00 00 mov 0x15c(%rax),%esi 23db2b: 48 8d 55 c0 lea -0x40(%rbp),%rdx 23db2f: e8 4c 4a ff ff call 232580 } else { 23db34: e9 3c 00 00 00 jmp 23db75 RichString_writeAscii(out, CRT_colors[METER_TEXT], " "); 23db39: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23db3d: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23db45: 8b 70 38 mov 0x38(%rax),%esi 23db48: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 23db52: e8 09 4c ff ff call 232760 RichString_appendAscii(out, CRT_colors[FAILED_READ], "Unavailable"); 23db57: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23db5b: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23db63: 8b 70 14 mov 0x14(%rax),%esi 23db66: 48 ba 9d 50 20 00 00 00 00 00 movabs $0x20509d,%rdx 23db70: e8 0b 4a ff ff call 232580 23db75: 48 8b 05 b4 4c 00 00 mov 0x4cb4(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23db7c: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23db80: 48 39 c8 cmp %rcx,%rax 23db83: 0f 85 06 00 00 00 jne 23db8f } } 23db89: 48 83 c4 70 add $0x70,%rsp 23db8d: 5d pop %rbp 23db8e: c3 ret 23db8f: e8 ac 05 00 00 call 23e140 <__stack_chk_fail@plt> 23db94: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23db9e: 66 90 xchg %ax,%ax 000000000023dba0 : static void ZfsArcMeter_updateValues(Meter* this) { 23dba0: 55 push %rbp 23dba1: 48 89 e5 mov %rsp,%rbp 23dba4: 48 83 ec 20 sub $0x20,%rsp 23dba8: 48 89 7d f8 mov %rdi,-0x8(%rbp) char* buffer = this->txtBuffer; 23dbac: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dbb0: 48 83 c0 48 add $0x48,%rax 23dbb4: 48 89 45 f0 mov %rax,-0x10(%rbp) size_t size = sizeof(this->txtBuffer); 23dbb8: 48 c7 45 e8 00 01 00 00 movq $0x100,-0x18(%rbp) Platform_setZfsArcValues(this); 23dbc0: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23dbc4: e8 a7 c2 ff ff call 239e70 written = Meter_humanUnit(buffer, this->values[5], size); 23dbc9: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23dbcd: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dbd1: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23dbd8: f2 0f 10 40 28 movsd 0x28(%rax),%xmm0 23dbdd: f2 0f 10 15 7b 97 fc ff movsd -0x36885(%rip),%xmm2 # 207360 23dbe5: 0f 28 c8 movaps %xmm0,%xmm1 23dbe8: f2 0f 5c ca subsd %xmm2,%xmm1 23dbec: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23dbf1: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23dbf6: 48 89 f1 mov %rsi,%rcx 23dbf9: 48 c1 f9 3f sar $0x3f,%rcx 23dbfd: 48 21 c8 and %rcx,%rax 23dc00: 48 09 c6 or %rax,%rsi 23dc03: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23dc07: e8 04 5e fe ff call 223a10 23dc0c: 89 45 e4 mov %eax,-0x1c(%rbp) METER_BUFFER_CHECK(buffer, size, written); 23dc0f: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 23dc13: 0f 8c 0e 00 00 00 jl 23dc27 23dc19: 48 63 45 e4 movslq -0x1c(%rbp),%rax 23dc1d: 48 3b 45 e8 cmp -0x18(%rbp),%rax 23dc21: 0f 82 05 00 00 00 jb 23dc2c 23dc27: e9 ae 00 00 00 jmp 23dcda 23dc2c: 8b 4d e4 mov -0x1c(%rbp),%ecx 23dc2f: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dc33: 48 63 c9 movslq %ecx,%rcx 23dc36: 48 01 c8 add %rcx,%rax 23dc39: 48 89 45 f0 mov %rax,-0x10(%rbp) 23dc3d: 48 63 4d e4 movslq -0x1c(%rbp),%rcx 23dc41: 48 8b 45 e8 mov -0x18(%rbp),%rax 23dc45: 48 29 c8 sub %rcx,%rax 23dc48: 48 89 45 e8 mov %rax,-0x18(%rbp) METER_BUFFER_APPEND_CHR(buffer, size, '/'); 23dc4c: e9 00 00 00 00 jmp 23dc51 23dc51: 48 83 7d e8 02 cmpq $0x2,-0x18(%rbp) 23dc56: 0f 83 05 00 00 00 jae 23dc61 23dc5c: e9 79 00 00 00 jmp 23dcda 23dc61: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dc65: 48 89 c1 mov %rax,%rcx 23dc68: 48 83 c1 01 add $0x1,%rcx 23dc6c: 48 89 4d f0 mov %rcx,-0x10(%rbp) 23dc70: c6 00 2f movb $0x2f,(%rax) 23dc73: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dc77: c6 00 00 movb $0x0,(%rax) 23dc7a: 48 8b 45 e8 mov -0x18(%rbp),%rax 23dc7e: 48 83 c0 ff add $0xffffffffffffffff,%rax 23dc82: 48 89 45 e8 mov %rax,-0x18(%rbp) 23dc86: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 23dc8b: 0f 85 05 00 00 00 jne 23dc96 23dc91: e9 44 00 00 00 jmp 23dcda 23dc96: e9 00 00 00 00 jmp 23dc9b Meter_humanUnit(buffer, this->total, size); 23dc9b: 48 8b 7d f0 mov -0x10(%rbp),%rdi 23dc9f: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dca3: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 23dcab: f2 0f 10 15 ad 96 fc ff movsd -0x36953(%rip),%xmm2 # 207360 23dcb3: 0f 28 c8 movaps %xmm0,%xmm1 23dcb6: f2 0f 5c ca subsd %xmm2,%xmm1 23dcba: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23dcbf: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23dcc4: 48 89 f1 mov %rsi,%rcx 23dcc7: 48 c1 f9 3f sar $0x3f,%rcx 23dccb: 48 21 c8 and %rcx,%rax 23dcce: 48 09 c6 or %rax,%rsi 23dcd1: 48 8b 55 e8 mov -0x18(%rbp),%rdx 23dcd5: e8 36 5d fe ff call 223a10 } 23dcda: 48 83 c4 20 add $0x20,%rsp 23dcde: 5d pop %rbp 23dcdf: c3 ret 000000000023dce0 : static const int ZfsCompressedArcMeter_attributes[] = { ZFS_COMPRESSED }; void ZfsCompressedArcMeter_readStats(Meter* this, const ZfsArcStats* stats) { 23dce0: 55 push %rbp 23dce1: 48 89 e5 mov %rsp,%rbp 23dce4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 23dce8: 48 89 75 f0 mov %rsi,-0x10(%rbp) if ( stats->isCompressed ) { 23dcec: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dcf0: 83 78 04 00 cmpl $0x0,0x4(%rax) 23dcf4: 0f 84 67 00 00 00 je 23dd61 this->total = stats->uncompressed; 23dcfa: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dcfe: f3 0f 7e 40 48 movq 0x48(%rax),%xmm0 23dd03: 0f 28 15 d6 a8 fc ff movaps -0x3572a(%rip),%xmm2 # 2085e0 23dd0a: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23dd0e: 66 0f 28 0d da a8 fc ff movapd -0x35726(%rip),%xmm1 # 2085f0 23dd16: 66 0f 5c c1 subpd %xmm1,%xmm0 23dd1a: 0f 28 d8 movaps %xmm0,%xmm3 23dd1d: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23dd21: f2 0f 58 c3 addsd %xmm3,%xmm0 23dd25: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dd29: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->values[0] = stats->compressed; 23dd31: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dd35: f3 0f 7e 40 40 movq 0x40(%rax),%xmm0 23dd3a: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23dd3e: 66 0f 5c c1 subpd %xmm1,%xmm0 23dd42: 0f 28 c8 movaps %xmm0,%xmm1 23dd45: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23dd49: f2 0f 58 c1 addsd %xmm1,%xmm0 23dd4d: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dd51: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23dd58: f2 0f 11 00 movsd %xmm0,(%rax) } else { 23dd5c: e9 62 00 00 00 jmp 23ddc3 // For uncompressed ARC, report 1:1 ratio this->total = stats->size; 23dd61: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dd65: f3 0f 7e 40 10 movq 0x10(%rax),%xmm0 23dd6a: 0f 28 15 6f a8 fc ff movaps -0x35791(%rip),%xmm2 # 2085e0 23dd71: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23dd75: 66 0f 28 0d 73 a8 fc ff movapd -0x3578d(%rip),%xmm1 # 2085f0 23dd7d: 66 0f 5c c1 subpd %xmm1,%xmm0 23dd81: 0f 28 d8 movaps %xmm0,%xmm3 23dd84: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23dd88: f2 0f 58 c3 addsd %xmm3,%xmm0 23dd8c: 48 8b 45 f8 mov -0x8(%rbp),%rax 23dd90: f2 0f 11 80 50 01 00 00 movsd %xmm0,0x150(%rax) this->values[0] = stats->size; 23dd98: 48 8b 45 f0 mov -0x10(%rbp),%rax 23dd9c: f3 0f 7e 40 10 movq 0x10(%rax),%xmm0 23dda1: 66 0f 62 c2 punpckldq %xmm2,%xmm0 23dda5: 66 0f 5c c1 subpd %xmm1,%xmm0 23dda9: 0f 28 c8 movaps %xmm0,%xmm1 23ddac: 66 0f 15 c0 unpckhpd %xmm0,%xmm0 23ddb0: f2 0f 58 c1 addsd %xmm1,%xmm0 23ddb4: 48 8b 45 f8 mov -0x8(%rbp),%rax 23ddb8: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23ddbf: f2 0f 11 00 movsd %xmm0,(%rax) } } 23ddc3: 5d pop %rbp 23ddc4: c3 ret 23ddc5: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23ddcf: 90 nop 000000000023ddd0 : Platform_setZfsCompressedArcValues(this); ZfsCompressedArcMeter_printRatioString(this, this->txtBuffer, sizeof(this->txtBuffer)); } static void ZfsCompressedArcMeter_display(const Object* cast, RichString* out) { 23ddd0: 55 push %rbp 23ddd1: 48 89 e5 mov %rsp,%rbp 23ddd4: 48 83 ec 70 sub $0x70,%rsp 23ddd8: 48 8b 05 51 4a 00 00 mov 0x4a51(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23dddf: 48 89 45 f8 mov %rax,-0x8(%rbp) 23dde3: 48 89 7d b8 mov %rdi,-0x48(%rbp) 23dde7: 48 89 75 b0 mov %rsi,-0x50(%rbp) const Meter* this = (const Meter*)cast; 23ddeb: 48 8b 45 b8 mov -0x48(%rbp),%rax 23ddef: 48 89 45 a8 mov %rax,-0x58(%rbp) if (this->values[0] > 0) { 23ddf3: 48 8b 45 a8 mov -0x58(%rbp),%rax 23ddf7: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23ddfe: f2 0f 10 00 movsd (%rax),%xmm0 23de02: 0f 57 c9 xorps %xmm1,%xmm1 23de05: 66 0f 2e c1 ucomisd %xmm1,%xmm0 23de09: 0f 86 44 01 00 00 jbe 23df53 char buffer[50]; int len; Meter_humanUnit(buffer, this->total, sizeof(buffer)); 23de0f: 48 8b 45 a8 mov -0x58(%rbp),%rax 23de13: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 23de1b: f2 0f 10 15 3d 95 fc ff movsd -0x36ac3(%rip),%xmm2 # 207360 23de23: f2 0f 11 55 90 movsd %xmm2,-0x70(%rbp) 23de28: 0f 28 c8 movaps %xmm0,%xmm1 23de2b: f2 0f 5c ca subsd %xmm2,%xmm1 23de2f: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23de34: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23de39: 48 89 f1 mov %rsi,%rcx 23de3c: 48 c1 f9 3f sar $0x3f,%rcx 23de40: 48 21 c8 and %rcx,%rax 23de43: 48 09 c6 or %rax,%rsi 23de46: 48 8d 7d c0 lea -0x40(%rbp),%rdi 23de4a: 48 89 7d 98 mov %rdi,-0x68(%rbp) 23de4e: ba 32 00 00 00 mov $0x32,%edx 23de53: e8 b8 5b fe ff call 223a10 23de58: 48 8b 55 98 mov -0x68(%rbp),%rdx RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 23de5c: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23de60: 48 8b 05 19 43 00 00 mov 0x4319(%rip),%rax # 242180 23de67: 8b 70 3c mov 0x3c(%rax),%esi 23de6a: e8 11 47 ff ff call 232580 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Uncompressed, "); 23de6f: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23de73: 48 8b 05 06 43 00 00 mov 0x4306(%rip),%rax # 242180 23de7a: 8b 70 38 mov 0x38(%rax),%esi 23de7d: ba fb 53 20 00 mov $0x2053fb,%edx 23de82: e8 f9 46 ff ff call 232580 23de87: f2 0f 10 55 90 movsd -0x70(%rbp),%xmm2 23de8c: 48 8b 7d 98 mov -0x68(%rbp),%rdi Meter_humanUnit(buffer, this->values[0], sizeof(buffer)); 23de90: 48 8b 45 a8 mov -0x58(%rbp),%rax 23de94: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23de9b: f2 0f 10 00 movsd (%rax),%xmm0 23de9f: 0f 28 c8 movaps %xmm0,%xmm1 23dea2: f2 0f 5c ca subsd %xmm2,%xmm1 23dea6: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax 23deab: f2 48 0f 2c f0 cvttsd2si %xmm0,%rsi 23deb0: 48 89 f1 mov %rsi,%rcx 23deb3: 48 c1 f9 3f sar $0x3f,%rcx 23deb7: 48 21 c8 and %rcx,%rax 23deba: 48 09 c6 or %rax,%rsi 23debd: ba 32 00 00 00 mov $0x32,%edx 23dec2: e8 49 5b fe ff call 223a10 RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); 23dec7: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23decb: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23ded3: 8b 70 3c mov 0x3c(%rax),%esi 23ded6: 48 8d 55 c0 lea -0x40(%rbp),%rdx 23deda: e8 a1 46 ff ff call 232580 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Compressed, "); 23dedf: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23dee3: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23deeb: 8b 70 38 mov 0x38(%rax),%esi 23deee: 48 ba 75 3a 20 00 00 00 00 00 movabs $0x203a75,%rdx 23def8: e8 83 46 ff ff call 232580 len = ZfsCompressedArcMeter_printRatioString(this, buffer, sizeof(buffer)); 23defd: 48 8b 7d a8 mov -0x58(%rbp),%rdi 23df01: 48 8d 75 c0 lea -0x40(%rbp),%rsi 23df05: ba 32 00 00 00 mov $0x32,%edx 23df0a: e8 e1 00 00 00 call 23dff0 23df0f: 89 45 a4 mov %eax,-0x5c(%rbp) RichString_appendnAscii(out, CRT_colors[ZFS_RATIO], buffer, len); 23df12: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23df16: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23df1e: 8b b0 64 01 00 00 mov 0x164(%rax),%esi 23df24: 48 8d 55 c0 lea -0x40(%rbp),%rdx 23df28: 8b 4d a4 mov -0x5c(%rbp),%ecx 23df2b: e8 f0 47 ff ff call 232720 RichString_appendAscii(out, CRT_colors[METER_TEXT], " Ratio"); 23df30: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23df34: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23df3c: 8b 70 38 mov 0x38(%rax),%esi 23df3f: 48 ba 44 5f 20 00 00 00 00 00 movabs $0x205f44,%rdx 23df49: e8 32 46 ff ff call 232580 } else { 23df4e: e9 3c 00 00 00 jmp 23df8f RichString_writeAscii(out, CRT_colors[METER_TEXT], " "); 23df53: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23df57: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23df5f: 8b 70 38 mov 0x38(%rax),%esi 23df62: 48 ba c4 3a 20 00 00 00 00 00 movabs $0x203ac4,%rdx 23df6c: e8 ef 47 ff ff call 232760 RichString_appendAscii(out, CRT_colors[FAILED_READ], "Compression Unavailable"); 23df71: 48 8b 7d b0 mov -0x50(%rbp),%rdi 23df75: 48 8b 04 25 80 21 24 00 mov 0x242180,%rax 23df7d: 8b 70 14 mov 0x14(%rax),%esi 23df80: 48 ba c4 3c 20 00 00 00 00 00 movabs $0x203cc4,%rdx 23df8a: e8 f1 45 ff ff call 232580 23df8f: 48 8b 05 9a 48 00 00 mov 0x489a(%rip),%rax # 242830 <__stack_chk_guard@@FBSD_1.0> 23df96: 48 8b 4d f8 mov -0x8(%rbp),%rcx 23df9a: 48 39 c8 cmp %rcx,%rax 23df9d: 0f 85 06 00 00 00 jne 23dfa9 } } 23dfa3: 48 83 c4 70 add $0x70,%rsp 23dfa7: 5d pop %rbp 23dfa8: c3 ret 23dfa9: e8 92 01 00 00 call 23e140 <__stack_chk_fail@plt> 23dfae: 66 90 xchg %ax,%ax 000000000023dfb0 : static void ZfsCompressedArcMeter_updateValues(Meter* this) { 23dfb0: 55 push %rbp 23dfb1: 48 89 e5 mov %rsp,%rbp 23dfb4: 48 83 ec 10 sub $0x10,%rsp 23dfb8: 48 89 7d f8 mov %rdi,-0x8(%rbp) Platform_setZfsCompressedArcValues(this); 23dfbc: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23dfc0: e8 eb be ff ff call 239eb0 ZfsCompressedArcMeter_printRatioString(this, this->txtBuffer, sizeof(this->txtBuffer)); 23dfc5: 48 8b 7d f8 mov -0x8(%rbp),%rdi 23dfc9: 48 8b 75 f8 mov -0x8(%rbp),%rsi 23dfcd: 48 83 c6 48 add $0x48,%rsi 23dfd1: ba 00 01 00 00 mov $0x100,%edx 23dfd6: e8 15 00 00 00 call 23dff0 } 23dfdb: 48 83 c4 10 add $0x10,%rsp 23dfdf: 5d pop %rbp 23dfe0: c3 ret 23dfe1: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 23dfeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 000000000023dff0 : static int ZfsCompressedArcMeter_printRatioString(const Meter* this, char* buffer, size_t size) { 23dff0: 55 push %rbp 23dff1: 48 89 e5 mov %rsp,%rbp 23dff4: 48 83 ec 20 sub $0x20,%rsp 23dff8: 48 89 7d f0 mov %rdi,-0x10(%rbp) 23dffc: 48 89 75 e8 mov %rsi,-0x18(%rbp) 23e000: 48 89 55 e0 mov %rdx,-0x20(%rbp) if (this->values[0] > 0) { 23e004: 48 8b 45 f0 mov -0x10(%rbp),%rax 23e008: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23e00f: f2 0f 10 00 movsd (%rax),%xmm0 23e013: 0f 57 c9 xorps %xmm1,%xmm1 23e016: 66 0f 2e c1 ucomisd %xmm1,%xmm0 23e01a: 0f 86 3c 00 00 00 jbe 23e05c return xSnprintf(buffer, size, "%.2f:1", this->total / this->values[0]); 23e020: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23e024: 48 8b 75 e0 mov -0x20(%rbp),%rsi 23e028: 48 8b 45 f0 mov -0x10(%rbp),%rax 23e02c: f2 0f 10 80 50 01 00 00 movsd 0x150(%rax),%xmm0 23e034: 48 8b 45 f0 mov -0x10(%rbp),%rax 23e038: 48 8b 80 48 01 00 00 mov 0x148(%rax),%rax 23e03f: f2 0f 5e 00 divsd (%rax),%xmm0 23e043: 48 ba 98 49 20 00 00 00 00 00 movabs $0x204998,%rdx 23e04d: b0 01 mov $0x1,%al 23e04f: e8 9c b4 ff ff call 2394f0 23e054: 89 45 fc mov %eax,-0x4(%rbp) 23e057: e9 1c 00 00 00 jmp 23e078 return xSnprintf(buffer, size, "N/A"); 23e05c: 48 8b 7d e8 mov -0x18(%rbp),%rdi 23e060: 48 8b 75 e0 mov -0x20(%rbp),%rsi 23e064: 48 ba 84 41 20 00 00 00 00 00 movabs $0x204184,%rdx 23e06e: b0 00 mov $0x0,%al 23e070: e8 7b b4 ff ff call 2394f0 23e075: 89 45 fc mov %eax,-0x4(%rbp) } 23e078: 8b 45 fc mov -0x4(%rbp),%eax 23e07b: 48 83 c4 20 add $0x20,%rsp 23e07f: 5d pop %rbp 23e080: c3 ret 23e081: cc int3 23e082: cc int3 23e083: cc int3 23e084: cc int3 23e085: cc int3 23e086: cc int3 23e087: cc int3 23e088: cc int3 23e089: cc int3 23e08a: cc int3 23e08b: cc int3 23e08c: cc int3 23e08d: cc int3 23e08e: cc int3 23e08f: cc int3 000000000023e090 <__do_global_ctors_aux>: (crt_func)0 }; static void __do_global_ctors_aux(void) { 23e090: 55 push %rbp 23e091: 48 89 e5 mov %rsp,%rbp 23e094: 53 push %rbx 23e095: 50 push %rax 23e096: 48 8d 1d f3 19 00 00 lea 0x19f3(%rip),%rbx # 23fa90 <__CTOR_LIST__> 23e09d: 0f 1f 00 nopl (%rax) crt_func fn; int n; for (n = 1;; n++) { fn = __CTOR_END__[-n]; 23e0a0: 48 8b 03 mov (%rbx),%rax if (fn == (crt_func)0 || fn == (crt_func)-1) 23e0a3: 48 8d 48 01 lea 0x1(%rax),%rcx 23e0a7: 48 83 f9 02 cmp $0x2,%rcx 23e0ab: 72 08 jb 23e0b5 <__do_global_ctors_aux+0x25> break; fn(); 23e0ad: ff d0 call *%rax for (n = 1;; n++) { 23e0af: 48 83 c3 f8 add $0xfffffffffffffff8,%rbx 23e0b3: eb eb jmp 23e0a0 <__do_global_ctors_aux+0x10> } } 23e0b5: 48 83 c4 08 add $0x8,%rsp 23e0b9: 5b pop %rbx 23e0ba: 5d pop %rbp 23e0bb: c3 ret Disassembly of section .init: 000000000023e0bc <_init>: .section .init,"ax",@progbits .align 4 .globl _init .type _init,@function _init: subq $8,%rsp 23e0bc: 48 83 ec 08 sub $0x8,%rsp 23e0c0: e8 cb ff ff ff call 23e090 <__do_global_ctors_aux> #include __FBSDID("$FreeBSD$"); .section .init,"ax",@progbits addq $8,%rsp 23e0c5: 48 83 c4 08 add $0x8,%rsp ret 23e0c9: c3 ret Disassembly of section .fini: 000000000023e0cc <_fini>: .section .fini,"ax",@progbits .align 4 .globl _fini .type _fini,@function _fini: subq $8,%rsp 23e0cc: 48 83 ec 08 sub $0x8,%rsp 23e0d0: e8 3b 5c fd ff call 213d10 <__do_global_dtors_aux> .section .fini,"ax",@progbits addq $8,%rsp 23e0d5: 48 83 c4 08 add $0x8,%rsp ret 23e0d9: c3 ret Disassembly of section .plt: 000000000023e0e0 : 23e0e0: ff 35 8a 37 00 00 push 0x378a(%rip) # 241870 23e0e6: ff 25 8c 37 00 00 jmp *0x378c(%rip) # 241878 23e0ec: 0f 1f 40 00 nopl 0x0(%rax) 000000000023e0f0 : 23e0f0: ff 25 8a 37 00 00 jmp *0x378a(%rip) # 241880 23e0f6: 68 00 00 00 00 push $0x0 23e0fb: e9 e0 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e100 <_init_tls@plt>: 23e100: ff 25 82 37 00 00 jmp *0x3782(%rip) # 241888 <_init_tls@FBSD_1.0> 23e106: 68 01 00 00 00 push $0x1 23e10b: e9 d0 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e110 : 23e110: ff 25 7a 37 00 00 jmp *0x377a(%rip) # 241890 23e116: 68 02 00 00 00 push $0x2 23e11b: e9 c0 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e120 <_Jv_RegisterClasses@plt>: 23e120: ff 25 72 37 00 00 jmp *0x3772(%rip) # 241898 <_Jv_RegisterClasses@Base> 23e126: 68 03 00 00 00 push $0x3 23e12b: e9 b0 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e130 : 23e130: ff 25 6a 37 00 00 jmp *0x376a(%rip) # 2418a0 23e136: 68 04 00 00 00 push $0x4 23e13b: e9 a0 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e140 <__stack_chk_fail@plt>: 23e140: ff 25 62 37 00 00 jmp *0x3762(%rip) # 2418a8 <__stack_chk_fail@FBSD_1.0> 23e146: 68 05 00 00 00 push $0x5 23e14b: e9 90 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e150 : 23e150: ff 25 5a 37 00 00 jmp *0x375a(%rip) # 2418b0 23e156: 68 06 00 00 00 push $0x6 23e15b: e9 80 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e160 : 23e160: ff 25 52 37 00 00 jmp *0x3752(%rip) # 2418b8 23e166: 68 07 00 00 00 push $0x7 23e16b: e9 70 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e170 : 23e170: ff 25 4a 37 00 00 jmp *0x374a(%rip) # 2418c0 23e176: 68 08 00 00 00 push $0x8 23e17b: e9 60 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e180 : 23e180: ff 25 42 37 00 00 jmp *0x3742(%rip) # 2418c8 23e186: 68 09 00 00 00 push $0x9 23e18b: e9 50 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e190 : 23e190: ff 25 3a 37 00 00 jmp *0x373a(%rip) # 2418d0 23e196: 68 0a 00 00 00 push $0xa 23e19b: e9 40 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1a0 : 23e1a0: ff 25 32 37 00 00 jmp *0x3732(%rip) # 2418d8 23e1a6: 68 0b 00 00 00 push $0xb 23e1ab: e9 30 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1b0 : 23e1b0: ff 25 2a 37 00 00 jmp *0x372a(%rip) # 2418e0 23e1b6: 68 0c 00 00 00 push $0xc 23e1bb: e9 20 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1c0 : 23e1c0: ff 25 22 37 00 00 jmp *0x3722(%rip) # 2418e8 23e1c6: 68 0d 00 00 00 push $0xd 23e1cb: e9 10 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1d0 : 23e1d0: ff 25 1a 37 00 00 jmp *0x371a(%rip) # 2418f0 23e1d6: 68 0e 00 00 00 push $0xe 23e1db: e9 00 ff ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1e0 : 23e1e0: ff 25 12 37 00 00 jmp *0x3712(%rip) # 2418f8 23e1e6: 68 0f 00 00 00 push $0xf 23e1eb: e9 f0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e1f0 : 23e1f0: ff 25 0a 37 00 00 jmp *0x370a(%rip) # 241900 23e1f6: 68 10 00 00 00 push $0x10 23e1fb: e9 e0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e200 : 23e200: ff 25 02 37 00 00 jmp *0x3702(%rip) # 241908 23e206: 68 11 00 00 00 push $0x11 23e20b: e9 d0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e210 : 23e210: ff 25 fa 36 00 00 jmp *0x36fa(%rip) # 241910 23e216: 68 12 00 00 00 push $0x12 23e21b: e9 c0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e220 : 23e220: ff 25 f2 36 00 00 jmp *0x36f2(%rip) # 241918 23e226: 68 13 00 00 00 push $0x13 23e22b: e9 b0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e230 : 23e230: ff 25 ea 36 00 00 jmp *0x36ea(%rip) # 241920 23e236: 68 14 00 00 00 push $0x14 23e23b: e9 a0 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e240 : 23e240: ff 25 e2 36 00 00 jmp *0x36e2(%rip) # 241928 23e246: 68 15 00 00 00 push $0x15 23e24b: e9 90 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e250 : 23e250: ff 25 da 36 00 00 jmp *0x36da(%rip) # 241930 23e256: 68 16 00 00 00 push $0x16 23e25b: e9 80 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e260 : 23e260: ff 25 d2 36 00 00 jmp *0x36d2(%rip) # 241938 23e266: 68 17 00 00 00 push $0x17 23e26b: e9 70 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e270 : 23e270: ff 25 ca 36 00 00 jmp *0x36ca(%rip) # 241940 23e276: 68 18 00 00 00 push $0x18 23e27b: e9 60 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e280 : 23e280: ff 25 c2 36 00 00 jmp *0x36c2(%rip) # 241948 23e286: 68 19 00 00 00 push $0x19 23e28b: e9 50 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e290 : 23e290: ff 25 ba 36 00 00 jmp *0x36ba(%rip) # 241950 23e296: 68 1a 00 00 00 push $0x1a 23e29b: e9 40 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2a0 : 23e2a0: ff 25 b2 36 00 00 jmp *0x36b2(%rip) # 241958 23e2a6: 68 1b 00 00 00 push $0x1b 23e2ab: e9 30 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2b0 : 23e2b0: ff 25 aa 36 00 00 jmp *0x36aa(%rip) # 241960 23e2b6: 68 1c 00 00 00 push $0x1c 23e2bb: e9 20 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2c0 : 23e2c0: ff 25 a2 36 00 00 jmp *0x36a2(%rip) # 241968 23e2c6: 68 1d 00 00 00 push $0x1d 23e2cb: e9 10 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2d0 : 23e2d0: ff 25 9a 36 00 00 jmp *0x369a(%rip) # 241970 23e2d6: 68 1e 00 00 00 push $0x1e 23e2db: e9 00 fe ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2e0 : 23e2e0: ff 25 92 36 00 00 jmp *0x3692(%rip) # 241978 23e2e6: 68 1f 00 00 00 push $0x1f 23e2eb: e9 f0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e2f0 : 23e2f0: ff 25 8a 36 00 00 jmp *0x368a(%rip) # 241980 23e2f6: 68 20 00 00 00 push $0x20 23e2fb: e9 e0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e300 : 23e300: ff 25 82 36 00 00 jmp *0x3682(%rip) # 241988 23e306: 68 21 00 00 00 push $0x21 23e30b: e9 d0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e310 : 23e310: ff 25 7a 36 00 00 jmp *0x367a(%rip) # 241990 23e316: 68 22 00 00 00 push $0x22 23e31b: e9 c0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e320 <__error@plt>: 23e320: ff 25 72 36 00 00 jmp *0x3672(%rip) # 241998 <__error@FBSD_1.0> 23e326: 68 23 00 00 00 push $0x23 23e32b: e9 b0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e330 : 23e330: ff 25 6a 36 00 00 jmp *0x366a(%rip) # 2419a0 23e336: 68 24 00 00 00 push $0x24 23e33b: e9 a0 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e340 : 23e340: ff 25 62 36 00 00 jmp *0x3662(%rip) # 2419a8 23e346: 68 25 00 00 00 push $0x25 23e34b: e9 90 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e350 : 23e350: ff 25 5a 36 00 00 jmp *0x365a(%rip) # 2419b0 23e356: 68 26 00 00 00 push $0x26 23e35b: e9 80 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e360 : 23e360: ff 25 52 36 00 00 jmp *0x3652(%rip) # 2419b8 23e366: 68 27 00 00 00 push $0x27 23e36b: e9 70 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e370 : 23e370: ff 25 4a 36 00 00 jmp *0x364a(%rip) # 2419c0 23e376: 68 28 00 00 00 push $0x28 23e37b: e9 60 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e380 : 23e380: ff 25 42 36 00 00 jmp *0x3642(%rip) # 2419c8 23e386: 68 29 00 00 00 push $0x29 23e38b: e9 50 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e390 : 23e390: ff 25 3a 36 00 00 jmp *0x363a(%rip) # 2419d0 23e396: 68 2a 00 00 00 push $0x2a 23e39b: e9 40 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3a0 : 23e3a0: ff 25 32 36 00 00 jmp *0x3632(%rip) # 2419d8 23e3a6: 68 2b 00 00 00 push $0x2b 23e3ab: e9 30 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3b0 : 23e3b0: ff 25 2a 36 00 00 jmp *0x362a(%rip) # 2419e0 23e3b6: 68 2c 00 00 00 push $0x2c 23e3bb: e9 20 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3c0 : 23e3c0: ff 25 22 36 00 00 jmp *0x3622(%rip) # 2419e8 23e3c6: 68 2d 00 00 00 push $0x2d 23e3cb: e9 10 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3d0 : 23e3d0: ff 25 1a 36 00 00 jmp *0x361a(%rip) # 2419f0 23e3d6: 68 2e 00 00 00 push $0x2e 23e3db: e9 00 fd ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3e0 : 23e3e0: ff 25 12 36 00 00 jmp *0x3612(%rip) # 2419f8 23e3e6: 68 2f 00 00 00 push $0x2f 23e3eb: e9 f0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e3f0 : 23e3f0: ff 25 0a 36 00 00 jmp *0x360a(%rip) # 241a00 23e3f6: 68 30 00 00 00 push $0x30 23e3fb: e9 e0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e400 : 23e400: ff 25 02 36 00 00 jmp *0x3602(%rip) # 241a08 23e406: 68 31 00 00 00 push $0x31 23e40b: e9 d0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e410 : 23e410: ff 25 fa 35 00 00 jmp *0x35fa(%rip) # 241a10 23e416: 68 32 00 00 00 push $0x32 23e41b: e9 c0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e420 : 23e420: ff 25 f2 35 00 00 jmp *0x35f2(%rip) # 241a18 23e426: 68 33 00 00 00 push $0x33 23e42b: e9 b0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e430 : 23e430: ff 25 ea 35 00 00 jmp *0x35ea(%rip) # 241a20 23e436: 68 34 00 00 00 push $0x34 23e43b: e9 a0 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e440 : 23e440: ff 25 e2 35 00 00 jmp *0x35e2(%rip) # 241a28 23e446: 68 35 00 00 00 push $0x35 23e44b: e9 90 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e450 : 23e450: ff 25 da 35 00 00 jmp *0x35da(%rip) # 241a30 23e456: 68 36 00 00 00 push $0x36 23e45b: e9 80 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e460 : 23e460: ff 25 d2 35 00 00 jmp *0x35d2(%rip) # 241a38 23e466: 68 37 00 00 00 push $0x37 23e46b: e9 70 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e470 : 23e470: ff 25 ca 35 00 00 jmp *0x35ca(%rip) # 241a40 23e476: 68 38 00 00 00 push $0x38 23e47b: e9 60 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e480 : 23e480: ff 25 c2 35 00 00 jmp *0x35c2(%rip) # 241a48 23e486: 68 39 00 00 00 push $0x39 23e48b: e9 50 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e490 : 23e490: ff 25 ba 35 00 00 jmp *0x35ba(%rip) # 241a50 23e496: 68 3a 00 00 00 push $0x3a 23e49b: e9 40 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4a0 : 23e4a0: ff 25 b2 35 00 00 jmp *0x35b2(%rip) # 241a58 23e4a6: 68 3b 00 00 00 push $0x3b 23e4ab: e9 30 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4b0 : 23e4b0: ff 25 aa 35 00 00 jmp *0x35aa(%rip) # 241a60 23e4b6: 68 3c 00 00 00 push $0x3c 23e4bb: e9 20 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4c0 : 23e4c0: ff 25 a2 35 00 00 jmp *0x35a2(%rip) # 241a68 23e4c6: 68 3d 00 00 00 push $0x3d 23e4cb: e9 10 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4d0 : 23e4d0: ff 25 9a 35 00 00 jmp *0x359a(%rip) # 241a70 23e4d6: 68 3e 00 00 00 push $0x3e 23e4db: e9 00 fc ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4e0 : 23e4e0: ff 25 92 35 00 00 jmp *0x3592(%rip) # 241a78 23e4e6: 68 3f 00 00 00 push $0x3f 23e4eb: e9 f0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e4f0 : 23e4f0: ff 25 8a 35 00 00 jmp *0x358a(%rip) # 241a80 23e4f6: 68 40 00 00 00 push $0x40 23e4fb: e9 e0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e500 : 23e500: ff 25 82 35 00 00 jmp *0x3582(%rip) # 241a88 23e506: 68 41 00 00 00 push $0x41 23e50b: e9 d0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e510 : 23e510: ff 25 7a 35 00 00 jmp *0x357a(%rip) # 241a90 23e516: 68 42 00 00 00 push $0x42 23e51b: e9 c0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e520 <_exit@plt>: 23e520: ff 25 72 35 00 00 jmp *0x3572(%rip) # 241a98 <_exit@FBSD_1.0> 23e526: 68 43 00 00 00 push $0x43 23e52b: e9 b0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e530 : 23e530: ff 25 6a 35 00 00 jmp *0x356a(%rip) # 241aa0 23e536: 68 44 00 00 00 push $0x44 23e53b: e9 a0 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e540 <_Ux86_64_getcontext@plt>: 23e540: ff 25 62 35 00 00 jmp *0x3562(%rip) # 241aa8 <_Ux86_64_getcontext@Base> 23e546: 68 45 00 00 00 push $0x45 23e54b: e9 90 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e550 <_ULx86_64_init_local@plt>: 23e550: ff 25 5a 35 00 00 jmp *0x355a(%rip) # 241ab0 <_ULx86_64_init_local@Base> 23e556: 68 46 00 00 00 push $0x46 23e55b: e9 80 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e560 <_ULx86_64_step@plt>: 23e560: ff 25 52 35 00 00 jmp *0x3552(%rip) # 241ab8 <_ULx86_64_step@Base> 23e566: 68 47 00 00 00 push $0x47 23e56b: e9 70 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e570 <_ULx86_64_get_reg@plt>: 23e570: ff 25 4a 35 00 00 jmp *0x354a(%rip) # 241ac0 <_ULx86_64_get_reg@Base> 23e576: 68 48 00 00 00 push $0x48 23e57b: e9 60 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e580 <_ULx86_64_get_proc_name@plt>: 23e580: ff 25 42 35 00 00 jmp *0x3542(%rip) # 241ac8 <_ULx86_64_get_proc_name@Base> 23e586: 68 49 00 00 00 push $0x49 23e58b: e9 50 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e590 <_ULx86_64_get_proc_info@plt>: 23e590: ff 25 3a 35 00 00 jmp *0x353a(%rip) # 241ad0 <_ULx86_64_get_proc_info@Base> 23e596: 68 4a 00 00 00 push $0x4a 23e59b: e9 40 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5a0 : 23e5a0: ff 25 32 35 00 00 jmp *0x3532(%rip) # 241ad8 23e5a6: 68 4b 00 00 00 push $0x4b 23e5ab: e9 30 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5b0 <_ULx86_64_is_signal_frame@plt>: 23e5b0: ff 25 2a 35 00 00 jmp *0x352a(%rip) # 241ae0 <_ULx86_64_is_signal_frame@Base> 23e5b6: 68 4c 00 00 00 push $0x4c 23e5bb: e9 20 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5c0 : 23e5c0: ff 25 22 35 00 00 jmp *0x3522(%rip) # 241ae8 23e5c6: 68 4d 00 00 00 push $0x4d 23e5cb: e9 10 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5d0 : 23e5d0: ff 25 1a 35 00 00 jmp *0x351a(%rip) # 241af0 23e5d6: 68 4e 00 00 00 push $0x4e 23e5db: e9 00 fb ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5e0 : 23e5e0: ff 25 12 35 00 00 jmp *0x3512(%rip) # 241af8 23e5e6: 68 4f 00 00 00 push $0x4f 23e5eb: e9 f0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e5f0 : 23e5f0: ff 25 0a 35 00 00 jmp *0x350a(%rip) # 241b00 23e5f6: 68 50 00 00 00 push $0x50 23e5fb: e9 e0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e600 : 23e600: ff 25 02 35 00 00 jmp *0x3502(%rip) # 241b08 23e606: 68 51 00 00 00 push $0x51 23e60b: e9 d0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e610 : 23e610: ff 25 fa 34 00 00 jmp *0x34fa(%rip) # 241b10 23e616: 68 52 00 00 00 push $0x52 23e61b: e9 c0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e620 : 23e620: ff 25 f2 34 00 00 jmp *0x34f2(%rip) # 241b18 23e626: 68 53 00 00 00 push $0x53 23e62b: e9 b0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e630 : 23e630: ff 25 ea 34 00 00 jmp *0x34ea(%rip) # 241b20 23e636: 68 54 00 00 00 push $0x54 23e63b: e9 a0 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e640 : 23e640: ff 25 e2 34 00 00 jmp *0x34e2(%rip) # 241b28 23e646: 68 55 00 00 00 push $0x55 23e64b: e9 90 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e650 : 23e650: ff 25 da 34 00 00 jmp *0x34da(%rip) # 241b30 23e656: 68 56 00 00 00 push $0x56 23e65b: e9 80 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e660 : 23e660: ff 25 d2 34 00 00 jmp *0x34d2(%rip) # 241b38 23e666: 68 57 00 00 00 push $0x57 23e66b: e9 70 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e670 : 23e670: ff 25 ca 34 00 00 jmp *0x34ca(%rip) # 241b40 23e676: 68 58 00 00 00 push $0x58 23e67b: e9 60 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e680 : 23e680: ff 25 c2 34 00 00 jmp *0x34c2(%rip) # 241b48 23e686: 68 59 00 00 00 push $0x59 23e68b: e9 50 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e690 : 23e690: ff 25 ba 34 00 00 jmp *0x34ba(%rip) # 241b50 23e696: 68 5a 00 00 00 push $0x5a 23e69b: e9 40 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6a0 : 23e6a0: ff 25 b2 34 00 00 jmp *0x34b2(%rip) # 241b58 23e6a6: 68 5b 00 00 00 push $0x5b 23e6ab: e9 30 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6b0 : 23e6b0: ff 25 aa 34 00 00 jmp *0x34aa(%rip) # 241b60 23e6b6: 68 5c 00 00 00 push $0x5c 23e6bb: e9 20 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6c0 : 23e6c0: ff 25 a2 34 00 00 jmp *0x34a2(%rip) # 241b68 23e6c6: 68 5d 00 00 00 push $0x5d 23e6cb: e9 10 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6d0 : 23e6d0: ff 25 9a 34 00 00 jmp *0x349a(%rip) # 241b70 23e6d6: 68 5e 00 00 00 push $0x5e 23e6db: e9 00 fa ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6e0 : 23e6e0: ff 25 92 34 00 00 jmp *0x3492(%rip) # 241b78 23e6e6: 68 5f 00 00 00 push $0x5f 23e6eb: e9 f0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e6f0 : 23e6f0: ff 25 8a 34 00 00 jmp *0x348a(%rip) # 241b80 23e6f6: 68 60 00 00 00 push $0x60 23e6fb: e9 e0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e700 : 23e700: ff 25 82 34 00 00 jmp *0x3482(%rip) # 241b88 23e706: 68 61 00 00 00 push $0x61 23e70b: e9 d0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e710 : 23e710: ff 25 7a 34 00 00 jmp *0x347a(%rip) # 241b90 23e716: 68 62 00 00 00 push $0x62 23e71b: e9 c0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e720 : 23e720: ff 25 72 34 00 00 jmp *0x3472(%rip) # 241b98 23e726: 68 63 00 00 00 push $0x63 23e72b: e9 b0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e730 : 23e730: ff 25 6a 34 00 00 jmp *0x346a(%rip) # 241ba0 23e736: 68 64 00 00 00 push $0x64 23e73b: e9 a0 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e740 : 23e740: ff 25 62 34 00 00 jmp *0x3462(%rip) # 241ba8 23e746: 68 65 00 00 00 push $0x65 23e74b: e9 90 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e750 : 23e750: ff 25 5a 34 00 00 jmp *0x345a(%rip) # 241bb0 23e756: 68 66 00 00 00 push $0x66 23e75b: e9 80 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e760 : 23e760: ff 25 52 34 00 00 jmp *0x3452(%rip) # 241bb8 23e766: 68 67 00 00 00 push $0x67 23e76b: e9 70 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e770 : 23e770: ff 25 4a 34 00 00 jmp *0x344a(%rip) # 241bc0 23e776: 68 68 00 00 00 push $0x68 23e77b: e9 60 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e780 : 23e780: ff 25 42 34 00 00 jmp *0x3442(%rip) # 241bc8 23e786: 68 69 00 00 00 push $0x69 23e78b: e9 50 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e790 : 23e790: ff 25 3a 34 00 00 jmp *0x343a(%rip) # 241bd0 23e796: 68 6a 00 00 00 push $0x6a 23e79b: e9 40 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7a0 : 23e7a0: ff 25 32 34 00 00 jmp *0x3432(%rip) # 241bd8 23e7a6: 68 6b 00 00 00 push $0x6b 23e7ab: e9 30 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7b0 : 23e7b0: ff 25 2a 34 00 00 jmp *0x342a(%rip) # 241be0 23e7b6: 68 6c 00 00 00 push $0x6c 23e7bb: e9 20 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7c0 : 23e7c0: ff 25 22 34 00 00 jmp *0x3422(%rip) # 241be8 23e7c6: 68 6d 00 00 00 push $0x6d 23e7cb: e9 10 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7d0 : 23e7d0: ff 25 1a 34 00 00 jmp *0x341a(%rip) # 241bf0 23e7d6: 68 6e 00 00 00 push $0x6e 23e7db: e9 00 f9 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7e0 <___runetype@plt>: 23e7e0: ff 25 12 34 00 00 jmp *0x3412(%rip) # 241bf8 <___runetype@FBSD_1.0> 23e7e6: 68 6f 00 00 00 push $0x6f 23e7eb: e9 f0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e7f0 : 23e7f0: ff 25 0a 34 00 00 jmp *0x340a(%rip) # 241c00 23e7f6: 68 70 00 00 00 push $0x70 23e7fb: e9 e0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e800 : 23e800: ff 25 02 34 00 00 jmp *0x3402(%rip) # 241c08 23e806: 68 71 00 00 00 push $0x71 23e80b: e9 d0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e810 : 23e810: ff 25 fa 33 00 00 jmp *0x33fa(%rip) # 241c10 23e816: 68 72 00 00 00 push $0x72 23e81b: e9 c0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e820 : 23e820: ff 25 f2 33 00 00 jmp *0x33f2(%rip) # 241c18 23e826: 68 73 00 00 00 push $0x73 23e82b: e9 b0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e830 : 23e830: ff 25 ea 33 00 00 jmp *0x33ea(%rip) # 241c20 23e836: 68 74 00 00 00 push $0x74 23e83b: e9 a0 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e840 : 23e840: ff 25 e2 33 00 00 jmp *0x33e2(%rip) # 241c28 23e846: 68 75 00 00 00 push $0x75 23e84b: e9 90 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e850 : 23e850: ff 25 da 33 00 00 jmp *0x33da(%rip) # 241c30 23e856: 68 76 00 00 00 push $0x76 23e85b: e9 80 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e860 : 23e860: ff 25 d2 33 00 00 jmp *0x33d2(%rip) # 241c38 23e866: 68 77 00 00 00 push $0x77 23e86b: e9 70 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e870 : 23e870: ff 25 ca 33 00 00 jmp *0x33ca(%rip) # 241c40 23e876: 68 78 00 00 00 push $0x78 23e87b: e9 60 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e880 : 23e880: ff 25 c2 33 00 00 jmp *0x33c2(%rip) # 241c48 23e886: 68 79 00 00 00 push $0x79 23e88b: e9 50 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e890 : 23e890: ff 25 ba 33 00 00 jmp *0x33ba(%rip) # 241c50 23e896: 68 7a 00 00 00 push $0x7a 23e89b: e9 40 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8a0 : 23e8a0: ff 25 b2 33 00 00 jmp *0x33b2(%rip) # 241c58 23e8a6: 68 7b 00 00 00 push $0x7b 23e8ab: e9 30 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8b0 : 23e8b0: ff 25 aa 33 00 00 jmp *0x33aa(%rip) # 241c60 23e8b6: 68 7c 00 00 00 push $0x7c 23e8bb: e9 20 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8c0 : 23e8c0: ff 25 a2 33 00 00 jmp *0x33a2(%rip) # 241c68 23e8c6: 68 7d 00 00 00 push $0x7d 23e8cb: e9 10 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8d0 : 23e8d0: ff 25 9a 33 00 00 jmp *0x339a(%rip) # 241c70 23e8d6: 68 7e 00 00 00 push $0x7e 23e8db: e9 00 f8 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8e0 : 23e8e0: ff 25 92 33 00 00 jmp *0x3392(%rip) # 241c78 23e8e6: 68 7f 00 00 00 push $0x7f 23e8eb: e9 f0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e8f0 : 23e8f0: ff 25 8a 33 00 00 jmp *0x338a(%rip) # 241c80 23e8f6: 68 80 00 00 00 push $0x80 23e8fb: e9 e0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e900 : 23e900: ff 25 82 33 00 00 jmp *0x3382(%rip) # 241c88 23e906: 68 81 00 00 00 push $0x81 23e90b: e9 d0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e910 : 23e910: ff 25 7a 33 00 00 jmp *0x337a(%rip) # 241c90 23e916: 68 82 00 00 00 push $0x82 23e91b: e9 c0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e920 : 23e920: ff 25 72 33 00 00 jmp *0x3372(%rip) # 241c98 23e926: 68 83 00 00 00 push $0x83 23e92b: e9 b0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e930 : 23e930: ff 25 6a 33 00 00 jmp *0x336a(%rip) # 241ca0 23e936: 68 84 00 00 00 push $0x84 23e93b: e9 a0 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e940 : 23e940: ff 25 62 33 00 00 jmp *0x3362(%rip) # 241ca8 23e946: 68 85 00 00 00 push $0x85 23e94b: e9 90 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e950 : 23e950: ff 25 5a 33 00 00 jmp *0x335a(%rip) # 241cb0 23e956: 68 86 00 00 00 push $0x86 23e95b: e9 80 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e960 : 23e960: ff 25 52 33 00 00 jmp *0x3352(%rip) # 241cb8 23e966: 68 87 00 00 00 push $0x87 23e96b: e9 70 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e970 : 23e970: ff 25 4a 33 00 00 jmp *0x334a(%rip) # 241cc0 23e976: 68 88 00 00 00 push $0x88 23e97b: e9 60 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e980 : 23e980: ff 25 42 33 00 00 jmp *0x3342(%rip) # 241cc8 23e986: 68 89 00 00 00 push $0x89 23e98b: e9 50 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e990 : 23e990: ff 25 3a 33 00 00 jmp *0x333a(%rip) # 241cd0 23e996: 68 8a 00 00 00 push $0x8a 23e99b: e9 40 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9a0 : 23e9a0: ff 25 32 33 00 00 jmp *0x3332(%rip) # 241cd8 23e9a6: 68 8b 00 00 00 push $0x8b 23e9ab: e9 30 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9b0 : 23e9b0: ff 25 2a 33 00 00 jmp *0x332a(%rip) # 241ce0 23e9b6: 68 8c 00 00 00 push $0x8c 23e9bb: e9 20 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9c0 : 23e9c0: ff 25 22 33 00 00 jmp *0x3322(%rip) # 241ce8 23e9c6: 68 8d 00 00 00 push $0x8d 23e9cb: e9 10 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9d0 : 23e9d0: ff 25 1a 33 00 00 jmp *0x331a(%rip) # 241cf0 23e9d6: 68 8e 00 00 00 push $0x8e 23e9db: e9 00 f7 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9e0 : 23e9e0: ff 25 12 33 00 00 jmp *0x3312(%rip) # 241cf8 23e9e6: 68 8f 00 00 00 push $0x8f 23e9eb: e9 f0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023e9f0 : 23e9f0: ff 25 0a 33 00 00 jmp *0x330a(%rip) # 241d00 23e9f6: 68 90 00 00 00 push $0x90 23e9fb: e9 e0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea00 : 23ea00: ff 25 02 33 00 00 jmp *0x3302(%rip) # 241d08 23ea06: 68 91 00 00 00 push $0x91 23ea0b: e9 d0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea10 : 23ea10: ff 25 fa 32 00 00 jmp *0x32fa(%rip) # 241d10 23ea16: 68 92 00 00 00 push $0x92 23ea1b: e9 c0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea20 : 23ea20: ff 25 f2 32 00 00 jmp *0x32f2(%rip) # 241d18 23ea26: 68 93 00 00 00 push $0x93 23ea2b: e9 b0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea30 : 23ea30: ff 25 ea 32 00 00 jmp *0x32ea(%rip) # 241d20 23ea36: 68 94 00 00 00 push $0x94 23ea3b: e9 a0 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea40 : 23ea40: ff 25 e2 32 00 00 jmp *0x32e2(%rip) # 241d28 23ea46: 68 95 00 00 00 push $0x95 23ea4b: e9 90 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea50 : 23ea50: ff 25 da 32 00 00 jmp *0x32da(%rip) # 241d30 23ea56: 68 96 00 00 00 push $0x96 23ea5b: e9 80 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea60 : 23ea60: ff 25 d2 32 00 00 jmp *0x32d2(%rip) # 241d38 23ea66: 68 97 00 00 00 push $0x97 23ea6b: e9 70 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea70 : 23ea70: ff 25 ca 32 00 00 jmp *0x32ca(%rip) # 241d40 23ea76: 68 98 00 00 00 push $0x98 23ea7b: e9 60 f6 ff ff jmp 23e0e0 <_fini+0x14> 000000000023ea80 <__xuname@plt>: 23ea80: ff 25 c2 32 00 00 jmp *0x32c2(%rip) # 241d48 <__xuname@FBSD_1.0> 23ea86: 68 99 00 00 00 push $0x99 23ea8b: e9 50 f6 ff ff jmp 23e0e0 <_fini+0x14>