rados_nif.so: file format elf64-x86-64 Disassembly of section .init: 0000000000012840 <_init>: 12840: 48 83 ec 08 sub $0x8,%rsp 12844: e8 57 1f 00 00 callq 147a0 12849: e8 f2 1f 00 00 callq 14840 1284e: e8 fd 06 01 00 callq 22f50 <__do_global_ctors_aux> 12853: 48 83 c4 08 add $0x8,%rsp 12857: c3 retq Disassembly of section .plt: 0000000000012860 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt-0x10>: 12860: ff 35 8a 77 21 00 pushq 0x21778a(%rip) # 229ff0 <_GLOBAL_OFFSET_TABLE_+0x8> 12866: ff 25 8c 77 21 00 jmpq *0x21778c(%rip) # 229ff8 <_GLOBAL_OFFSET_TABLE_+0x10> 1286c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000012870 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt>: 12870: ff 25 8a 77 21 00 jmpq *0x21778a(%rip) # 22a000 <_GLOBAL_OFFSET_TABLE_+0x18> 12876: 68 00 00 00 00 pushq $0x0 1287b: e9 e0 ff ff ff jmpq 12860 <_init+0x20> 0000000000012880 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt>: 12880: ff 25 82 77 21 00 jmpq *0x217782(%rip) # 22a008 <_GLOBAL_OFFSET_TABLE_+0x20> 12886: 68 01 00 00 00 pushq $0x1 1288b: e9 d0 ff ff ff jmpq 12860 <_init+0x20> 0000000000012890 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc@plt>: 12890: ff 25 7a 77 21 00 jmpq *0x21777a(%rip) # 22a010 <_GLOBAL_OFFSET_TABLE_+0x28> 12896: 68 02 00 00 00 pushq $0x2 1289b: e9 c0 ff ff ff jmpq 12860 <_init+0x20> 00000000000128a0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt>: 128a0: ff 25 72 77 21 00 jmpq *0x217772(%rip) # 22a018 <_GLOBAL_OFFSET_TABLE_+0x30> 128a6: 68 03 00 00 00 pushq $0x3 128ab: e9 b0 ff ff ff jmpq 12860 <_init+0x20> 00000000000128b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt>: 128b0: ff 25 6a 77 21 00 jmpq *0x21776a(%rip) # 22a020 <_GLOBAL_OFFSET_TABLE_+0x38> 128b6: 68 04 00 00 00 pushq $0x4 128bb: e9 a0 ff ff ff jmpq 12860 <_init+0x20> 00000000000128c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_@plt>: 128c0: ff 25 62 77 21 00 jmpq *0x217762(%rip) # 22a028 <_GLOBAL_OFFSET_TABLE_+0x40> 128c6: 68 05 00 00 00 pushq $0x5 128cb: e9 90 ff ff ff jmpq 12860 <_init+0x20> 00000000000128d0 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt>: 128d0: ff 25 5a 77 21 00 jmpq *0x21775a(%rip) # 22a030 <_GLOBAL_OFFSET_TABLE_+0x48> 128d6: 68 06 00 00 00 pushq $0x6 128db: e9 80 ff ff ff jmpq 12860 <_init+0x20> 00000000000128e0 : 128e0: ff 25 52 77 21 00 jmpq *0x217752(%rip) # 22a038 <_GLOBAL_OFFSET_TABLE_+0x50> 128e6: 68 07 00 00 00 pushq $0x7 128eb: e9 70 ff ff ff jmpq 12860 <_init+0x20> 00000000000128f0 <_ZSt20__throw_length_errorPKc@plt>: 128f0: ff 25 4a 77 21 00 jmpq *0x21774a(%rip) # 22a040 <_GLOBAL_OFFSET_TABLE_+0x58> 128f6: 68 08 00 00 00 pushq $0x8 128fb: e9 60 ff ff ff jmpq 12860 <_init+0x20> 0000000000012900 : 12900: ff 25 42 77 21 00 jmpq *0x217742(%rip) # 22a048 <_GLOBAL_OFFSET_TABLE_+0x60> 12906: 68 09 00 00 00 pushq $0x9 1290b: e9 50 ff ff ff jmpq 12860 <_init+0x20> 0000000000012910 <_ZSt18uninitialized_copyIPSsS0_ET0_T_S2_S1_@plt>: 12910: ff 25 3a 77 21 00 jmpq *0x21773a(%rip) # 22a050 <_GLOBAL_OFFSET_TABLE_+0x68> 12916: 68 0a 00 00 00 pushq $0xa 1291b: e9 40 ff ff ff jmpq 12860 <_init+0x20> 0000000000012920 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt13_Rb_tree_nodeIS4_E@plt>: 12920: ff 25 32 77 21 00 jmpq *0x217732(%rip) # 22a058 <_GLOBAL_OFFSET_TABLE_+0x70> 12926: 68 0b 00 00 00 pushq $0xb 1292b: e9 30 ff ff ff jmpq 12860 <_init+0x20> 0000000000012930 <_ZNSsaSEPKc@plt>: 12930: ff 25 2a 77 21 00 jmpq *0x21772a(%rip) # 22a060 <_GLOBAL_OFFSET_TABLE_+0x78> 12936: 68 0c 00 00 00 pushq $0xc 1293b: e9 20 ff ff ff jmpq 12860 <_init+0x20> 0000000000012940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt>: 12940: ff 25 22 77 21 00 jmpq *0x217722(%rip) # 22a068 <_GLOBAL_OFFSET_TABLE_+0x80> 12946: 68 0d 00 00 00 pushq $0xd 1294b: e9 10 ff ff ff jmpq 12860 <_init+0x20> 0000000000012950 <_ZNSsC1Ev@plt>: 12950: ff 25 1a 77 21 00 jmpq *0x21771a(%rip) # 22a070 <_GLOBAL_OFFSET_TABLE_+0x88> 12956: 68 0e 00 00 00 pushq $0xe 1295b: e9 00 ff ff ff jmpq 12860 <_init+0x20> 0000000000012960 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt>: 12960: ff 25 12 77 21 00 jmpq *0x217712(%rip) # 22a078 <_GLOBAL_OFFSET_TABLE_+0x90> 12966: 68 0f 00 00 00 pushq $0xf 1296b: e9 f0 fe ff ff jmpq 12860 <_init+0x20> 0000000000012970 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt>: 12970: ff 25 0a 77 21 00 jmpq *0x21770a(%rip) # 22a080 <_GLOBAL_OFFSET_TABLE_+0x98> 12976: 68 10 00 00 00 pushq $0x10 1297b: e9 e0 fe ff ff jmpq 12860 <_init+0x20> 0000000000012980 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt>: 12980: ff 25 02 77 21 00 jmpq *0x217702(%rip) # 22a088 <_GLOBAL_OFFSET_TABLE_+0xa0> 12986: 68 11 00 00 00 pushq $0x11 1298b: e9 d0 fe ff ff jmpq 12860 <_init+0x20> 0000000000012990 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv@plt>: 12990: ff 25 fa 76 21 00 jmpq *0x2176fa(%rip) # 22a090 <_GLOBAL_OFFSET_TABLE_+0xa8> 12996: 68 12 00 00 00 pushq $0x12 1299b: e9 c0 fe ff ff jmpq 12860 <_init+0x20> 00000000000129a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE6insertESt17_Rb_tree_iteratorIS5_ERKS5_@plt>: 129a0: ff 25 f2 76 21 00 jmpq *0x2176f2(%rip) # 22a098 <_GLOBAL_OFFSET_TABLE_+0xb0> 129a6: 68 13 00 00 00 pushq $0x13 129ab: e9 b0 fe ff ff jmpq 12860 <_init+0x20> 00000000000129b0 <_ZSt10_ConstructISsSsEvPT_RKT0_@plt>: 129b0: ff 25 ea 76 21 00 jmpq *0x2176ea(%rip) # 22a0a0 <_GLOBAL_OFFSET_TABLE_+0xb8> 129b6: 68 14 00 00 00 pushq $0x14 129bb: e9 a0 fe ff ff jmpq 12860 <_init+0x20> 00000000000129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt>: 129c0: ff 25 e2 76 21 00 jmpq *0x2176e2(%rip) # 22a0a8 <_GLOBAL_OFFSET_TABLE_+0xc0> 129c6: 68 15 00 00 00 pushq $0x15 129cb: e9 90 fe ff ff jmpq 12860 <_init+0x20> 00000000000129d0 <_ZNSt4listIiSaIiEE5beginEv@plt>: 129d0: ff 25 da 76 21 00 jmpq *0x2176da(%rip) # 22a0b0 <_GLOBAL_OFFSET_TABLE_+0xc8> 129d6: 68 16 00 00 00 pushq $0x16 129db: e9 80 fe ff ff jmpq 12860 <_init+0x20> 00000000000129e0 : 129e0: ff 25 d2 76 21 00 jmpq *0x2176d2(%rip) # 22a0b8 <_GLOBAL_OFFSET_TABLE_+0xd0> 129e6: 68 17 00 00 00 pushq $0x17 129eb: e9 70 fe ff ff jmpq 12860 <_init+0x20> 00000000000129f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt>: 129f0: ff 25 ca 76 21 00 jmpq *0x2176ca(%rip) # 22a0c0 <_GLOBAL_OFFSET_TABLE_+0xd8> 129f6: 68 18 00 00 00 pushq $0x18 129fb: e9 60 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a00 : 12a00: ff 25 c2 76 21 00 jmpq *0x2176c2(%rip) # 22a0c8 <_GLOBAL_OFFSET_TABLE_+0xe0> 12a06: 68 19 00 00 00 pushq $0x19 12a0b: e9 50 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a10 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt>: 12a10: ff 25 ba 76 21 00 jmpq *0x2176ba(%rip) # 22a0d0 <_GLOBAL_OFFSET_TABLE_+0xe8> 12a16: 68 1a 00 00 00 pushq $0x1a 12a1b: e9 40 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a20 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_@plt>: 12a20: ff 25 b2 76 21 00 jmpq *0x2176b2(%rip) # 22a0d8 <_GLOBAL_OFFSET_TABLE_+0xf0> 12a26: 68 1b 00 00 00 pushq $0x1b 12a2b: e9 30 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a30 <_ZNKSt4lessISsEclERKSsS2_@plt>: 12a30: ff 25 aa 76 21 00 jmpq *0x2176aa(%rip) # 22a0e0 <_GLOBAL_OFFSET_TABLE_+0xf8> 12a36: 68 1c 00 00 00 pushq $0x1c 12a3b: e9 20 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt>: 12a40: ff 25 a2 76 21 00 jmpq *0x2176a2(%rip) # 22a0e8 <_GLOBAL_OFFSET_TABLE_+0x100> 12a46: 68 1d 00 00 00 pushq $0x1d 12a4b: e9 10 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a50 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt>: 12a50: ff 25 9a 76 21 00 jmpq *0x21769a(%rip) # 22a0f0 <_GLOBAL_OFFSET_TABLE_+0x108> 12a56: 68 1e 00 00 00 pushq $0x1e 12a5b: e9 00 fe ff ff jmpq 12860 <_init+0x20> 0000000000012a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt>: 12a60: ff 25 92 76 21 00 jmpq *0x217692(%rip) # 22a0f8 <_GLOBAL_OFFSET_TABLE_+0x110> 12a66: 68 1f 00 00 00 pushq $0x1f 12a6b: e9 f0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012a70 <_ZSt11__addressofISsEPT_RS0_@plt>: 12a70: ff 25 8a 76 21 00 jmpq *0x21768a(%rip) # 22a100 <_GLOBAL_OFFSET_TABLE_+0x118> 12a76: 68 20 00 00 00 pushq $0x20 12a7b: e9 e0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012a80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt>: 12a80: ff 25 82 76 21 00 jmpq *0x217682(%rip) # 22a108 <_GLOBAL_OFFSET_TABLE_+0x120> 12a86: 68 21 00 00 00 pushq $0x21 12a8b: e9 d0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012a90 : 12a90: ff 25 7a 76 21 00 jmpq *0x21767a(%rip) # 22a110 <_GLOBAL_OFFSET_TABLE_+0x128> 12a96: 68 22 00 00 00 pushq $0x22 12a9b: e9 c0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012aa0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEC1Ev@plt>: 12aa0: ff 25 72 76 21 00 jmpq *0x217672(%rip) # 22a118 <_GLOBAL_OFFSET_TABLE_+0x130> 12aa6: 68 23 00 00 00 pushq $0x23 12aab: e9 b0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012ab0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv@plt>: 12ab0: ff 25 6a 76 21 00 jmpq *0x21766a(%rip) # 22a120 <_GLOBAL_OFFSET_TABLE_+0x138> 12ab6: 68 24 00 00 00 pushq $0x24 12abb: e9 a0 fd ff ff jmpq 12860 <_init+0x20> 0000000000012ac0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv@plt>: 12ac0: ff 25 62 76 21 00 jmpq *0x217662(%rip) # 22a128 <_GLOBAL_OFFSET_TABLE_+0x140> 12ac6: 68 25 00 00 00 pushq $0x25 12acb: e9 90 fd ff ff jmpq 12860 <_init+0x20> 0000000000012ad0 <_ZNSt4listIiSaIiEEC1Ev@plt>: 12ad0: ff 25 5a 76 21 00 jmpq *0x21765a(%rip) # 22a130 <_GLOBAL_OFFSET_TABLE_+0x148> 12ad6: 68 26 00 00 00 pushq $0x26 12adb: e9 80 fd ff ff jmpq 12860 <_init+0x20> 0000000000012ae0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1ERKS5_@plt>: 12ae0: ff 25 52 76 21 00 jmpq *0x217652(%rip) # 22a138 <_GLOBAL_OFFSET_TABLE_+0x150> 12ae6: 68 27 00 00 00 pushq $0x27 12aeb: e9 70 fd ff ff jmpq 12860 <_init+0x20> 0000000000012af0 : 12af0: ff 25 4a 76 21 00 jmpq *0x21764a(%rip) # 22a140 <_GLOBAL_OFFSET_TABLE_+0x158> 12af6: 68 28 00 00 00 pushq $0x28 12afb: e9 60 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b00 : 12b00: ff 25 42 76 21 00 jmpq *0x217642(%rip) # 22a148 <_GLOBAL_OFFSET_TABLE_+0x160> 12b06: 68 29 00 00 00 pushq $0x29 12b0b: e9 50 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b10 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_@plt>: 12b10: ff 25 3a 76 21 00 jmpq *0x21763a(%rip) # 22a150 <_GLOBAL_OFFSET_TABLE_+0x168> 12b16: 68 2a 00 00 00 pushq $0x2a 12b1b: e9 40 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b20 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt>: 12b20: ff 25 32 76 21 00 jmpq *0x217632(%rip) # 22a158 <_GLOBAL_OFFSET_TABLE_+0x170> 12b26: 68 2b 00 00 00 pushq $0x2b 12b2b: e9 30 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt>: 12b30: ff 25 2a 76 21 00 jmpq *0x21762a(%rip) # 22a160 <_GLOBAL_OFFSET_TABLE_+0x178> 12b36: 68 2c 00 00 00 pushq $0x2c 12b3b: e9 20 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b40 <_ZN11XLogManager8instanceEv@plt>: 12b40: ff 25 22 76 21 00 jmpq *0x217622(%rip) # 22a168 <_GLOBAL_OFFSET_TABLE_+0x180> 12b46: 68 2d 00 00 00 pushq $0x2d 12b4b: e9 10 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 12b50: ff 25 1a 76 21 00 jmpq *0x21761a(%rip) # 22a170 <_GLOBAL_OFFSET_TABLE_+0x188> 12b56: 68 2e 00 00 00 pushq $0x2e 12b5b: e9 00 fd ff ff jmpq 12860 <_init+0x20> 0000000000012b60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt>: 12b60: ff 25 12 76 21 00 jmpq *0x217612(%rip) # 22a178 <_GLOBAL_OFFSET_TABLE_+0x190> 12b66: 68 2f 00 00 00 pushq $0x2f 12b6b: e9 f0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012b70 : 12b70: ff 25 0a 76 21 00 jmpq *0x21760a(%rip) # 22a180 <_GLOBAL_OFFSET_TABLE_+0x198> 12b76: 68 30 00 00 00 pushq $0x30 12b7b: e9 e0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012b80 <_ZN11XLogManagerC1Ev@plt>: 12b80: ff 25 02 76 21 00 jmpq *0x217602(%rip) # 22a188 <_GLOBAL_OFFSET_TABLE_+0x1a0> 12b86: 68 31 00 00 00 pushq $0x31 12b8b: e9 d0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 12b90: ff 25 fa 75 21 00 jmpq *0x2175fa(%rip) # 22a190 <_GLOBAL_OFFSET_TABLE_+0x1a8> 12b96: 68 32 00 00 00 pushq $0x32 12b9b: e9 c0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012ba0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt>: 12ba0: ff 25 f2 75 21 00 jmpq *0x2175f2(%rip) # 22a198 <_GLOBAL_OFFSET_TABLE_+0x1b0> 12ba6: 68 33 00 00 00 pushq $0x33 12bab: e9 b0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012bb0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED2Ev@plt>: 12bb0: ff 25 ea 75 21 00 jmpq *0x2175ea(%rip) # 22a1a0 <_GLOBAL_OFFSET_TABLE_+0x1b8> 12bb6: 68 34 00 00 00 pushq $0x34 12bbb: e9 a0 fc ff ff jmpq 12860 <_init+0x20> 0000000000012bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt>: 12bc0: ff 25 e2 75 21 00 jmpq *0x2175e2(%rip) # 22a1a8 <_GLOBAL_OFFSET_TABLE_+0x1c0> 12bc6: 68 35 00 00 00 pushq $0x35 12bcb: e9 90 fc ff ff jmpq 12860 <_init+0x20> 0000000000012bd0 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt>: 12bd0: ff 25 da 75 21 00 jmpq *0x2175da(%rip) # 22a1b0 <_GLOBAL_OFFSET_TABLE_+0x1c8> 12bd6: 68 36 00 00 00 pushq $0x36 12bdb: e9 80 fc ff ff jmpq 12860 <_init+0x20> 0000000000012be0 <__cxa_guard_acquire@plt>: 12be0: ff 25 d2 75 21 00 jmpq *0x2175d2(%rip) # 22a1b8 <_GLOBAL_OFFSET_TABLE_+0x1d0> 12be6: 68 37 00 00 00 pushq $0x37 12beb: e9 70 fc ff ff jmpq 12860 <_init+0x20> 0000000000012bf0 <_ZNSt4listIiSaIiEE3endEv@plt>: 12bf0: ff 25 ca 75 21 00 jmpq *0x2175ca(%rip) # 22a1c0 <_GLOBAL_OFFSET_TABLE_+0x1d8> 12bf6: 68 38 00 00 00 pushq $0x38 12bfb: e9 60 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c00 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv@plt>: 12c00: ff 25 c2 75 21 00 jmpq *0x2175c2(%rip) # 22a1c8 <_GLOBAL_OFFSET_TABLE_+0x1e0> 12c06: 68 39 00 00 00 pushq $0x39 12c0b: e9 50 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c10 <_ZNSt6vectorISsSaISsEE5beginEv@plt>: 12c10: ff 25 ba 75 21 00 jmpq *0x2175ba(%rip) # 22a1d0 <_GLOBAL_OFFSET_TABLE_+0x1e8> 12c16: 68 3a 00 00 00 pushq $0x3a 12c1b: e9 40 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c20 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv@plt>: 12c20: ff 25 b2 75 21 00 jmpq *0x2175b2(%rip) # 22a1d8 <_GLOBAL_OFFSET_TABLE_+0x1f0> 12c26: 68 3b 00 00 00 pushq $0x3b 12c2b: e9 30 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c30 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv@plt>: 12c30: ff 25 aa 75 21 00 jmpq *0x2175aa(%rip) # 22a1e0 <_GLOBAL_OFFSET_TABLE_+0x1f8> 12c36: 68 3c 00 00 00 pushq $0x3c 12c3b: e9 20 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c40 <_ZN4XLog8setLevelE8LogLevel@plt>: 12c40: ff 25 a2 75 21 00 jmpq *0x2175a2(%rip) # 22a1e8 <_GLOBAL_OFFSET_TABLE_+0x200> 12c46: 68 3d 00 00 00 pushq $0x3d 12c4b: e9 10 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt>: 12c50: ff 25 9a 75 21 00 jmpq *0x21759a(%rip) # 22a1f0 <_GLOBAL_OFFSET_TABLE_+0x208> 12c56: 68 3e 00 00 00 pushq $0x3e 12c5b: e9 00 fc ff ff jmpq 12860 <_init+0x20> 0000000000012c60 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt>: 12c60: ff 25 92 75 21 00 jmpq *0x217592(%rip) # 22a1f8 <_GLOBAL_OFFSET_TABLE_+0x210> 12c66: 68 3f 00 00 00 pushq $0x3f 12c6b: e9 f0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012c70 <_ZNKSs5c_strEv@plt>: 12c70: ff 25 8a 75 21 00 jmpq *0x21758a(%rip) # 22a200 <_GLOBAL_OFFSET_TABLE_+0x218> 12c76: 68 40 00 00 00 pushq $0x40 12c7b: e9 e0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012c80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt>: 12c80: ff 25 82 75 21 00 jmpq *0x217582(%rip) # 22a208 <_GLOBAL_OFFSET_TABLE_+0x220> 12c86: 68 41 00 00 00 pushq $0x41 12c8b: e9 d0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012c90 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt>: 12c90: ff 25 7a 75 21 00 jmpq *0x21757a(%rip) # 22a210 <_GLOBAL_OFFSET_TABLE_+0x228> 12c96: 68 42 00 00 00 pushq $0x42 12c9b: e9 c0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012ca0 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs@plt>: 12ca0: ff 25 72 75 21 00 jmpq *0x217572(%rip) # 22a218 <_GLOBAL_OFFSET_TABLE_+0x230> 12ca6: 68 43 00 00 00 pushq $0x43 12cab: e9 b0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt>: 12cb0: ff 25 6a 75 21 00 jmpq *0x21756a(%rip) # 22a220 <_GLOBAL_OFFSET_TABLE_+0x238> 12cb6: 68 44 00 00 00 pushq $0x44 12cbb: e9 a0 fb ff ff jmpq 12860 <_init+0x20> 0000000000012cc0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv@plt>: 12cc0: ff 25 62 75 21 00 jmpq *0x217562(%rip) # 22a228 <_GLOBAL_OFFSET_TABLE_+0x240> 12cc6: 68 45 00 00 00 pushq $0x45 12ccb: e9 90 fb ff ff jmpq 12860 <_init+0x20> 0000000000012cd0 <_ZN6XMutex4lockEv@plt>: 12cd0: ff 25 5a 75 21 00 jmpq *0x21755a(%rip) # 22a230 <_GLOBAL_OFFSET_TABLE_+0x248> 12cd6: 68 46 00 00 00 pushq $0x46 12cdb: e9 80 fb ff ff jmpq 12860 <_init+0x20> 0000000000012ce0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_m@plt>: 12ce0: ff 25 52 75 21 00 jmpq *0x217552(%rip) # 22a238 <_GLOBAL_OFFSET_TABLE_+0x250> 12ce6: 68 47 00 00 00 pushq $0x47 12ceb: e9 70 fb ff ff jmpq 12860 <_init+0x20> 0000000000012cf0 <_ZdlPv@plt>: 12cf0: ff 25 4a 75 21 00 jmpq *0x21754a(%rip) # 22a240 <_GLOBAL_OFFSET_TABLE_+0x258> 12cf6: 68 48 00 00 00 pushq $0x48 12cfb: e9 60 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d00 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt>: 12d00: ff 25 42 75 21 00 jmpq *0x217542(%rip) # 22a248 <_GLOBAL_OFFSET_TABLE_+0x260> 12d06: 68 49 00 00 00 pushq $0x49 12d0b: e9 50 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d10 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt>: 12d10: ff 25 3a 75 21 00 jmpq *0x21753a(%rip) # 22a250 <_GLOBAL_OFFSET_TABLE_+0x268> 12d16: 68 4a 00 00 00 pushq $0x4a 12d1b: e9 40 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d20 : 12d20: ff 25 32 75 21 00 jmpq *0x217532(%rip) # 22a258 <_GLOBAL_OFFSET_TABLE_+0x270> 12d26: 68 4b 00 00 00 pushq $0x4b 12d2b: e9 30 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_rightmostEv@plt>: 12d30: ff 25 2a 75 21 00 jmpq *0x21752a(%rip) # 22a260 <_GLOBAL_OFFSET_TABLE_+0x278> 12d36: 68 4c 00 00 00 pushq $0x4c 12d3b: e9 20 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d40 <_ZN11XLogHandlerC2Ev@plt>: 12d40: ff 25 22 75 21 00 jmpq *0x217522(%rip) # 22a268 <_GLOBAL_OFFSET_TABLE_+0x280> 12d46: 68 4d 00 00 00 pushq $0x4d 12d4b: e9 10 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d50 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev@plt>: 12d50: ff 25 1a 75 21 00 jmpq *0x21751a(%rip) # 22a270 <_GLOBAL_OFFSET_TABLE_+0x288> 12d56: 68 4e 00 00 00 pushq $0x4e 12d5b: e9 00 fb ff ff jmpq 12860 <_init+0x20> 0000000000012d60 <_ZN11XLogHandlerD1Ev@plt>: 12d60: ff 25 12 75 21 00 jmpq *0x217512(%rip) # 22a278 <_GLOBAL_OFFSET_TABLE_+0x290> 12d66: 68 4f 00 00 00 pushq $0x4f 12d6b: e9 f0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012d70 : 12d70: ff 25 0a 75 21 00 jmpq *0x21750a(%rip) # 22a280 <_GLOBAL_OFFSET_TABLE_+0x298> 12d76: 68 50 00 00 00 pushq $0x50 12d7b: e9 e0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012d80 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt>: 12d80: ff 25 02 75 21 00 jmpq *0x217502(%rip) # 22a288 <_GLOBAL_OFFSET_TABLE_+0x2a0> 12d86: 68 51 00 00 00 pushq $0x51 12d8b: e9 d0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012d90 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt>: 12d90: ff 25 fa 74 21 00 jmpq *0x2174fa(%rip) # 22a290 <_GLOBAL_OFFSET_TABLE_+0x2a8> 12d96: 68 52 00 00 00 pushq $0x52 12d9b: e9 c0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012da0 <_Z13map_ioctx_getm@plt>: 12da0: ff 25 f2 74 21 00 jmpq *0x2174f2(%rip) # 22a298 <_GLOBAL_OFFSET_TABLE_+0x2b0> 12da6: 68 53 00 00 00 pushq $0x53 12dab: e9 b0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012db0 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_@plt>: 12db0: ff 25 ea 74 21 00 jmpq *0x2174ea(%rip) # 22a2a0 <_GLOBAL_OFFSET_TABLE_+0x2b8> 12db6: 68 54 00 00 00 pushq $0x54 12dbb: e9 a0 fa ff ff jmpq 12860 <_init+0x20> 0000000000012dc0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv@plt>: 12dc0: ff 25 e2 74 21 00 jmpq *0x2174e2(%rip) # 22a2a8 <_GLOBAL_OFFSET_TABLE_+0x2c0> 12dc6: 68 55 00 00 00 pushq $0x55 12dcb: e9 90 fa ff ff jmpq 12860 <_init+0x20> 0000000000012dd0 : 12dd0: ff 25 da 74 21 00 jmpq *0x2174da(%rip) # 22a2b0 <_GLOBAL_OFFSET_TABLE_+0x2c8> 12dd6: 68 56 00 00 00 pushq $0x56 12ddb: e9 80 fa ff ff jmpq 12860 <_init+0x20> 0000000000012de0 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt>: 12de0: ff 25 d2 74 21 00 jmpq *0x2174d2(%rip) # 22a2b8 <_GLOBAL_OFFSET_TABLE_+0x2d0> 12de6: 68 57 00 00 00 pushq $0x57 12deb: e9 70 fa ff ff jmpq 12860 <_init+0x20> 0000000000012df0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS3_@plt>: 12df0: ff 25 ca 74 21 00 jmpq *0x2174ca(%rip) # 22a2c0 <_GLOBAL_OFFSET_TABLE_+0x2d8> 12df6: 68 58 00 00 00 pushq $0x58 12dfb: e9 60 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt>: 12e00: ff 25 c2 74 21 00 jmpq *0x2174c2(%rip) # 22a2c8 <_GLOBAL_OFFSET_TABLE_+0x2e0> 12e06: 68 59 00 00 00 pushq $0x59 12e0b: e9 50 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e10 <__cxa_rethrow@plt>: 12e10: ff 25 ba 74 21 00 jmpq *0x2174ba(%rip) # 22a2d0 <_GLOBAL_OFFSET_TABLE_+0x2e8> 12e16: 68 5a 00 00 00 pushq $0x5a 12e1b: e9 40 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e20 <_ZNSt4pairIKSsP4XLogED1Ev@plt>: 12e20: ff 25 b2 74 21 00 jmpq *0x2174b2(%rip) # 22a2d8 <_GLOBAL_OFFSET_TABLE_+0x2f0> 12e26: 68 5b 00 00 00 pushq $0x5b 12e2b: e9 30 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e30 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv@plt>: 12e30: ff 25 aa 74 21 00 jmpq *0x2174aa(%rip) # 22a2e0 <_GLOBAL_OFFSET_TABLE_+0x2f8> 12e36: 68 5c 00 00 00 pushq $0x5c 12e3b: e9 20 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e40 <_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi@plt>: 12e40: ff 25 a2 74 21 00 jmpq *0x2174a2(%rip) # 22a2e8 <_GLOBAL_OFFSET_TABLE_+0x300> 12e46: 68 5d 00 00 00 pushq $0x5d 12e4b: e9 10 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e50 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt>: 12e50: ff 25 9a 74 21 00 jmpq *0x21749a(%rip) # 22a2f0 <_GLOBAL_OFFSET_TABLE_+0x308> 12e56: 68 5e 00 00 00 pushq $0x5e 12e5b: e9 00 fa ff ff jmpq 12860 <_init+0x20> 0000000000012e60 <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv@plt>: 12e60: ff 25 92 74 21 00 jmpq *0x217492(%rip) # 22a2f8 <_GLOBAL_OFFSET_TABLE_+0x310> 12e66: 68 5f 00 00 00 pushq $0x5f 12e6b: e9 f0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012e70 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt>: 12e70: ff 25 8a 74 21 00 jmpq *0x21748a(%rip) # 22a300 <_GLOBAL_OFFSET_TABLE_+0x318> 12e76: 68 60 00 00 00 pushq $0x60 12e7b: e9 e0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012e80 <_ZNSt10_List_baseIiSaIiEE7_M_initEv@plt>: 12e80: ff 25 82 74 21 00 jmpq *0x217482(%rip) # 22a308 <_GLOBAL_OFFSET_TABLE_+0x320> 12e86: 68 61 00 00 00 pushq $0x61 12e8b: e9 d0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt>: 12e90: ff 25 7a 74 21 00 jmpq *0x21747a(%rip) # 22a310 <_GLOBAL_OFFSET_TABLE_+0x328> 12e96: 68 62 00 00 00 pushq $0x62 12e9b: e9 c0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012ea0 <_ZN4XLogC1ERKS_@plt>: 12ea0: ff 25 72 74 21 00 jmpq *0x217472(%rip) # 22a318 <_GLOBAL_OFFSET_TABLE_+0x330> 12ea6: 68 63 00 00 00 pushq $0x63 12eab: e9 b0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012eb0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt>: 12eb0: ff 25 6a 74 21 00 jmpq *0x21746a(%rip) # 22a320 <_GLOBAL_OFFSET_TABLE_+0x338> 12eb6: 68 64 00 00 00 pushq $0x64 12ebb: e9 a0 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012ec0 : 12ec0: ff 25 62 74 21 00 jmpq *0x217462(%rip) # 22a328 <_GLOBAL_OFFSET_TABLE_+0x340> 12ec6: 68 65 00 00 00 pushq $0x65 12ecb: e9 90 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012ed0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt>: 12ed0: ff 25 5a 74 21 00 jmpq *0x21745a(%rip) # 22a330 <_GLOBAL_OFFSET_TABLE_+0x348> 12ed6: 68 66 00 00 00 pushq $0x66 12edb: e9 80 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012ee0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt17_Rb_tree_iteratorIS3_ESB_@plt>: 12ee0: ff 25 52 74 21 00 jmpq *0x217452(%rip) # 22a338 <_GLOBAL_OFFSET_TABLE_+0x350> 12ee6: 68 67 00 00 00 pushq $0x67 12eeb: e9 70 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012ef0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_@plt>: 12ef0: ff 25 4a 74 21 00 jmpq *0x21744a(%rip) # 22a340 <_GLOBAL_OFFSET_TABLE_+0x358> 12ef6: 68 68 00 00 00 pushq $0x68 12efb: e9 60 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f00 <_ZSt8_DestroyISsEvPT_@plt>: 12f00: ff 25 42 74 21 00 jmpq *0x217442(%rip) # 22a348 <_GLOBAL_OFFSET_TABLE_+0x360> 12f06: 68 69 00 00 00 pushq $0x69 12f0b: e9 50 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f10 <_Z15map_cluster_getm@plt>: 12f10: ff 25 3a 74 21 00 jmpq *0x21743a(%rip) # 22a350 <_GLOBAL_OFFSET_TABLE_+0x368> 12f16: 68 6a 00 00 00 pushq $0x6a 12f1b: e9 40 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 12f20: ff 25 32 74 21 00 jmpq *0x217432(%rip) # 22a358 <_GLOBAL_OFFSET_TABLE_+0x370> 12f26: 68 6b 00 00 00 pushq $0x6b 12f2b: e9 30 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f30 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt>: 12f30: ff 25 2a 74 21 00 jmpq *0x21742a(%rip) # 22a360 <_GLOBAL_OFFSET_TABLE_+0x378> 12f36: 68 6c 00 00 00 pushq $0x6c 12f3b: e9 20 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS1_E@plt>: 12f40: ff 25 22 74 21 00 jmpq *0x217422(%rip) # 22a368 <_GLOBAL_OFFSET_TABLE_+0x380> 12f46: 68 6d 00 00 00 pushq $0x6d 12f4b: e9 10 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f50 <_Z18map_xattr_iter_getm@plt>: 12f50: ff 25 1a 74 21 00 jmpq *0x21741a(%rip) # 22a370 <_GLOBAL_OFFSET_TABLE_+0x388> 12f56: 68 6e 00 00 00 pushq $0x6e 12f5b: e9 00 f9 ff ff jmpq 12860 <_init+0x20> 0000000000012f60 <_ZNSaISt4pairIKmPvEED1Ev@plt>: 12f60: ff 25 12 74 21 00 jmpq *0x217412(%rip) # 22a378 <_GLOBAL_OFFSET_TABLE_+0x390> 12f66: 68 6f 00 00 00 pushq $0x6f 12f6b: e9 f0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt>: 12f70: ff 25 0a 74 21 00 jmpq *0x21740a(%rip) # 22a380 <_GLOBAL_OFFSET_TABLE_+0x398> 12f76: 68 70 00 00 00 pushq $0x70 12f7b: e9 e0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012f80 : 12f80: ff 25 02 74 21 00 jmpq *0x217402(%rip) # 22a388 <_GLOBAL_OFFSET_TABLE_+0x3a0> 12f86: 68 71 00 00 00 pushq $0x71 12f8b: e9 d0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012f90 : 12f90: ff 25 fa 73 21 00 jmpq *0x2173fa(%rip) # 22a390 <_GLOBAL_OFFSET_TABLE_+0x3a8> 12f96: 68 72 00 00 00 pushq $0x72 12f9b: e9 c0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012fa0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt>: 12fa0: ff 25 f2 73 21 00 jmpq *0x2173f2(%rip) # 22a398 <_GLOBAL_OFFSET_TABLE_+0x3b0> 12fa6: 68 73 00 00 00 pushq $0x73 12fab: e9 b0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012fb0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_@plt>: 12fb0: ff 25 ea 73 21 00 jmpq *0x2173ea(%rip) # 22a3a0 <_GLOBAL_OFFSET_TABLE_+0x3b8> 12fb6: 68 74 00 00 00 pushq $0x74 12fbb: e9 a0 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012fc0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt>: 12fc0: ff 25 e2 73 21 00 jmpq *0x2173e2(%rip) # 22a3a8 <_GLOBAL_OFFSET_TABLE_+0x3c0> 12fc6: 68 75 00 00 00 pushq $0x75 12fcb: e9 90 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012fd0 <_ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt>: 12fd0: ff 25 da 73 21 00 jmpq *0x2173da(%rip) # 22a3b0 <_GLOBAL_OFFSET_TABLE_+0x3c8> 12fd6: 68 76 00 00 00 pushq $0x76 12fdb: e9 80 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012fe0 <_ZN4XLog5flushEv@plt>: 12fe0: ff 25 d2 73 21 00 jmpq *0x2173d2(%rip) # 22a3b8 <_GLOBAL_OFFSET_TABLE_+0x3d0> 12fe6: 68 77 00 00 00 pushq $0x77 12feb: e9 70 f8 ff ff jmpq 12860 <_init+0x20> 0000000000012ff0 <_ZN6TMUtil14getCurrentTimeER5XTime@plt>: 12ff0: ff 25 ca 73 21 00 jmpq *0x2173ca(%rip) # 22a3c0 <_GLOBAL_OFFSET_TABLE_+0x3d8> 12ff6: 68 78 00 00 00 pushq $0x78 12ffb: e9 60 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013000 <_ZNSt6vectorISsSaISsEEC1Ev@plt>: 13000: ff 25 c2 73 21 00 jmpq *0x2173c2(%rip) # 22a3c8 <_GLOBAL_OFFSET_TABLE_+0x3e0> 13006: 68 79 00 00 00 pushq $0x79 1300b: e9 50 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013010 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_leftmostEv@plt>: 13010: ff 25 ba 73 21 00 jmpq *0x2173ba(%rip) # 22a3d0 <_GLOBAL_OFFSET_TABLE_+0x3e8> 13016: 68 7a 00 00 00 pushq $0x7a 1301b: e9 40 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev@plt>: 13020: ff 25 b2 73 21 00 jmpq *0x2173b2(%rip) # 22a3d8 <_GLOBAL_OFFSET_TABLE_+0x3f0> 13026: 68 7b 00 00 00 pushq $0x7b 1302b: e9 30 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013030 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt>: 13030: ff 25 aa 73 21 00 jmpq *0x2173aa(%rip) # 22a3e0 <_GLOBAL_OFFSET_TABLE_+0x3f8> 13036: 68 7c 00 00 00 pushq $0x7c 1303b: e9 20 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013040 <_Z19map_list_ctx_removem@plt>: 13040: ff 25 a2 73 21 00 jmpq *0x2173a2(%rip) # 22a3e8 <_GLOBAL_OFFSET_TABLE_+0x400> 13046: 68 7d 00 00 00 pushq $0x7d 1304b: e9 10 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013050 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E@plt>: 13050: ff 25 9a 73 21 00 jmpq *0x21739a(%rip) # 22a3f0 <_GLOBAL_OFFSET_TABLE_+0x408> 13056: 68 7e 00 00 00 pushq $0x7e 1305b: e9 00 f8 ff ff jmpq 12860 <_init+0x20> 0000000000013060 <_ZN9__gnu_cxx13new_allocatorIiED2Ev@plt>: 13060: ff 25 92 73 21 00 jmpq *0x217392(%rip) # 22a3f8 <_GLOBAL_OFFSET_TABLE_+0x410> 13066: 68 7f 00 00 00 pushq $0x7f 1306b: e9 f0 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013070 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE10deallocateEPS6_m@plt>: 13070: ff 25 8a 73 21 00 jmpq *0x21738a(%rip) # 22a400 <_GLOBAL_OFFSET_TABLE_+0x418> 13076: 68 80 00 00 00 pushq $0x80 1307b: e9 e0 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013080 : 13080: ff 25 82 73 21 00 jmpq *0x217382(%rip) # 22a408 <_GLOBAL_OFFSET_TABLE_+0x420> 13086: 68 81 00 00 00 pushq $0x81 1308b: e9 d0 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013090 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt>: 13090: ff 25 7a 73 21 00 jmpq *0x21737a(%rip) # 22a410 <_GLOBAL_OFFSET_TABLE_+0x428> 13096: 68 82 00 00 00 pushq $0x82 1309b: e9 c0 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130a0 <_ZN17XLogStderrHandler5flushEv@plt>: 130a0: ff 25 72 73 21 00 jmpq *0x217372(%rip) # 22a418 <_GLOBAL_OFFSET_TABLE_+0x430> 130a6: 68 83 00 00 00 pushq $0x83 130ab: e9 b0 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130b0 <_ZNSt4pairIKSsP4XLogEC1ERKS3_@plt>: 130b0: ff 25 6a 73 21 00 jmpq *0x21736a(%rip) # 22a420 <_GLOBAL_OFFSET_TABLE_+0x438> 130b6: 68 84 00 00 00 pushq $0x84 130bb: e9 a0 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt>: 130c0: ff 25 62 73 21 00 jmpq *0x217362(%rip) # 22a428 <_GLOBAL_OFFSET_TABLE_+0x440> 130c6: 68 85 00 00 00 pushq $0x85 130cb: e9 90 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 130d0: ff 25 5a 73 21 00 jmpq *0x21735a(%rip) # 22a430 <_GLOBAL_OFFSET_TABLE_+0x448> 130d6: 68 86 00 00 00 pushq $0x86 130db: e9 80 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt>: 130e0: ff 25 52 73 21 00 jmpq *0x217352(%rip) # 22a438 <_GLOBAL_OFFSET_TABLE_+0x450> 130e6: 68 87 00 00 00 pushq $0x87 130eb: e9 70 f7 ff ff jmpq 12860 <_init+0x20> 00000000000130f0 <_ZNKSs7compareERKSs@plt>: 130f0: ff 25 4a 73 21 00 jmpq *0x21734a(%rip) # 22a440 <_GLOBAL_OFFSET_TABLE_+0x458> 130f6: 68 88 00 00 00 pushq $0x88 130fb: e9 60 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013100 <_ZNSsC1ERKSs@plt>: 13100: ff 25 42 73 21 00 jmpq *0x217342(%rip) # 22a448 <_GLOBAL_OFFSET_TABLE_+0x460> 13106: 68 89 00 00 00 pushq $0x89 1310b: e9 50 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013110 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci@plt>: 13110: ff 25 3a 73 21 00 jmpq *0x21733a(%rip) # 22a450 <_GLOBAL_OFFSET_TABLE_+0x468> 13116: 68 8a 00 00 00 pushq $0x8a 1311b: e9 40 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013120 <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E@plt>: 13120: ff 25 32 73 21 00 jmpq *0x217332(%rip) # 22a458 <_GLOBAL_OFFSET_TABLE_+0x470> 13126: 68 8b 00 00 00 pushq $0x8b 1312b: e9 30 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 13130: ff 25 2a 73 21 00 jmpq *0x21732a(%rip) # 22a460 <_GLOBAL_OFFSET_TABLE_+0x478> 13136: 68 8c 00 00 00 pushq $0x8c 1313b: e9 20 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013140 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE21_M_get_Node_allocatorEv@plt>: 13140: ff 25 22 73 21 00 jmpq *0x217322(%rip) # 22a468 <_GLOBAL_OFFSET_TABLE_+0x480> 13146: 68 8d 00 00 00 pushq $0x8d 1314b: e9 10 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013150 <__cxa_atexit@plt>: 13150: ff 25 1a 73 21 00 jmpq *0x21731a(%rip) # 22a470 <_GLOBAL_OFFSET_TABLE_+0x488> 13156: 68 8e 00 00 00 pushq $0x8e 1315b: e9 00 f7 ff ff jmpq 12860 <_init+0x20> 0000000000013160 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1Ev@plt>: 13160: ff 25 12 73 21 00 jmpq *0x217312(%rip) # 22a478 <_GLOBAL_OFFSET_TABLE_+0x490> 13166: 68 8f 00 00 00 pushq $0x8f 1316b: e9 f0 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013170 <_ZnwmPv@plt>: 13170: ff 25 0a 73 21 00 jmpq *0x21730a(%rip) # 22a480 <_GLOBAL_OFFSET_TABLE_+0x498> 13176: 68 90 00 00 00 pushq $0x90 1317b: e9 e0 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013180 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi@plt>: 13180: ff 25 02 73 21 00 jmpq *0x217302(%rip) # 22a488 <_GLOBAL_OFFSET_TABLE_+0x4a0> 13186: 68 91 00 00 00 pushq $0x91 1318b: e9 d0 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013190 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt>: 13190: ff 25 fa 72 21 00 jmpq *0x2172fa(%rip) # 22a490 <_GLOBAL_OFFSET_TABLE_+0x4a8> 13196: 68 92 00 00 00 pushq $0x92 1319b: e9 c0 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131a0 <_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_@plt>: 131a0: ff 25 f2 72 21 00 jmpq *0x2172f2(%rip) # 22a498 <_GLOBAL_OFFSET_TABLE_+0x4b0> 131a6: 68 93 00 00 00 pushq $0x93 131ab: e9 b0 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt>: 131b0: ff 25 ea 72 21 00 jmpq *0x2172ea(%rip) # 22a4a0 <_GLOBAL_OFFSET_TABLE_+0x4b8> 131b6: 68 94 00 00 00 pushq $0x94 131bb: e9 a0 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt>: 131c0: ff 25 e2 72 21 00 jmpq *0x2172e2(%rip) # 22a4a8 <_GLOBAL_OFFSET_TABLE_+0x4c0> 131c6: 68 95 00 00 00 pushq $0x95 131cb: e9 90 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131d0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag@plt>: 131d0: ff 25 da 72 21 00 jmpq *0x2172da(%rip) # 22a4b0 <_GLOBAL_OFFSET_TABLE_+0x4c8> 131d6: 68 96 00 00 00 pushq $0x96 131db: e9 80 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt>: 131e0: ff 25 d2 72 21 00 jmpq *0x2172d2(%rip) # 22a4b8 <_GLOBAL_OFFSET_TABLE_+0x4d0> 131e6: 68 97 00 00 00 pushq $0x97 131eb: e9 70 f6 ff ff jmpq 12860 <_init+0x20> 00000000000131f0 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt>: 131f0: ff 25 ca 72 21 00 jmpq *0x2172ca(%rip) # 22a4c0 <_GLOBAL_OFFSET_TABLE_+0x4d8> 131f6: 68 98 00 00 00 pushq $0x98 131fb: e9 60 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013200 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE4findERS5_@plt>: 13200: ff 25 c2 72 21 00 jmpq *0x2172c2(%rip) # 22a4c8 <_GLOBAL_OFFSET_TABLE_+0x4e0> 13206: 68 99 00 00 00 pushq $0x99 1320b: e9 50 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013210 <_ZN17XLogStderrHandlerC1Ev@plt>: 13210: ff 25 ba 72 21 00 jmpq *0x2172ba(%rip) # 22a4d0 <_GLOBAL_OFFSET_TABLE_+0x4e8> 13216: 68 9a 00 00 00 pushq $0x9a 1321b: e9 40 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013220 <_ZNSt10_List_baseIiSaIiEEC2Ev@plt>: 13220: ff 25 b2 72 21 00 jmpq *0x2172b2(%rip) # 22a4d8 <_GLOBAL_OFFSET_TABLE_+0x4f0> 13226: 68 9b 00 00 00 pushq $0x9b 1322b: e9 30 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013230 : 13230: ff 25 aa 72 21 00 jmpq *0x2172aa(%rip) # 22a4e0 <_GLOBAL_OFFSET_TABLE_+0x4f8> 13236: 68 9c 00 00 00 pushq $0x9c 1323b: e9 20 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013240 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt>: 13240: ff 25 a2 72 21 00 jmpq *0x2172a2(%rip) # 22a4e8 <_GLOBAL_OFFSET_TABLE_+0x500> 13246: 68 9d 00 00 00 pushq $0x9d 1324b: e9 10 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013250 : 13250: ff 25 9a 72 21 00 jmpq *0x21729a(%rip) # 22a4f0 <_GLOBAL_OFFSET_TABLE_+0x508> 13256: 68 9e 00 00 00 pushq $0x9e 1325b: e9 00 f6 ff ff jmpq 12860 <_init+0x20> 0000000000013260 <_ZN4XLogC1ERKSs@plt>: 13260: ff 25 92 72 21 00 jmpq *0x217292(%rip) # 22a4f8 <_GLOBAL_OFFSET_TABLE_+0x510> 13266: 68 9f 00 00 00 pushq $0x9f 1326b: e9 f0 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013270 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_@plt>: 13270: ff 25 8a 72 21 00 jmpq *0x21728a(%rip) # 22a500 <_GLOBAL_OFFSET_TABLE_+0x518> 13276: 68 a0 00 00 00 pushq $0xa0 1327b: e9 e0 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013280 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt>: 13280: ff 25 82 72 21 00 jmpq *0x217282(%rip) # 22a508 <_GLOBAL_OFFSET_TABLE_+0x520> 13286: 68 a1 00 00 00 pushq $0xa1 1328b: e9 d0 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013290 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt>: 13290: ff 25 7a 72 21 00 jmpq *0x21727a(%rip) # 22a510 <_GLOBAL_OFFSET_TABLE_+0x528> 13296: 68 a2 00 00 00 pushq $0xa2 1329b: e9 c0 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132a0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 132a0: ff 25 72 72 21 00 jmpq *0x217272(%rip) # 22a518 <_GLOBAL_OFFSET_TABLE_+0x530> 132a6: 68 a3 00 00 00 pushq $0xa3 132ab: e9 b0 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132b0 : 132b0: ff 25 6a 72 21 00 jmpq *0x21726a(%rip) # 22a520 <_GLOBAL_OFFSET_TABLE_+0x538> 132b6: 68 a4 00 00 00 pushq $0xa4 132bb: e9 a0 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132c0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt>: 132c0: ff 25 62 72 21 00 jmpq *0x217262(%rip) # 22a528 <_GLOBAL_OFFSET_TABLE_+0x540> 132c6: 68 a5 00 00 00 pushq $0xa5 132cb: e9 90 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt>: 132d0: ff 25 5a 72 21 00 jmpq *0x21725a(%rip) # 22a530 <_GLOBAL_OFFSET_TABLE_+0x548> 132d6: 68 a6 00 00 00 pushq $0xa6 132db: e9 80 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132e0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt>: 132e0: ff 25 52 72 21 00 jmpq *0x217252(%rip) # 22a538 <_GLOBAL_OFFSET_TABLE_+0x550> 132e6: 68 a7 00 00 00 pushq $0xa7 132eb: e9 70 f5 ff ff jmpq 12860 <_init+0x20> 00000000000132f0 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs@plt>: 132f0: ff 25 4a 72 21 00 jmpq *0x21724a(%rip) # 22a540 <_GLOBAL_OFFSET_TABLE_+0x558> 132f6: 68 a8 00 00 00 pushq $0xa8 132fb: e9 60 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013300 : 13300: ff 25 42 72 21 00 jmpq *0x217242(%rip) # 22a548 <_GLOBAL_OFFSET_TABLE_+0x560> 13306: 68 a9 00 00 00 pushq $0xa9 1330b: e9 50 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013310 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv@plt>: 13310: ff 25 3a 72 21 00 jmpq *0x21723a(%rip) # 22a550 <_GLOBAL_OFFSET_TABLE_+0x568> 13316: 68 aa 00 00 00 pushq $0xaa 1331b: e9 40 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_minimumEPSt18_Rb_tree_node_base@plt>: 13320: ff 25 32 72 21 00 jmpq *0x217232(%rip) # 22a558 <_GLOBAL_OFFSET_TABLE_+0x570> 13326: 68 ab 00 00 00 pushq $0xab 1332b: e9 30 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013330 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt>: 13330: ff 25 2a 72 21 00 jmpq *0x21722a(%rip) # 22a560 <_GLOBAL_OFFSET_TABLE_+0x578> 13336: 68 ac 00 00 00 pushq $0xac 1333b: e9 20 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013340 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED2Ev@plt>: 13340: ff 25 22 72 21 00 jmpq *0x217222(%rip) # 22a568 <_GLOBAL_OFFSET_TABLE_+0x580> 13346: 68 ad 00 00 00 pushq $0xad 1334b: e9 10 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013350 : 13350: ff 25 1a 72 21 00 jmpq *0x21721a(%rip) # 22a570 <_GLOBAL_OFFSET_TABLE_+0x588> 13356: 68 ae 00 00 00 pushq $0xae 1335b: e9 00 f5 ff ff jmpq 12860 <_init+0x20> 0000000000013360 : 13360: ff 25 12 72 21 00 jmpq *0x217212(%rip) # 22a578 <_GLOBAL_OFFSET_TABLE_+0x590> 13366: 68 af 00 00 00 pushq $0xaf 1336b: e9 f0 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013370 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm@plt>: 13370: ff 25 0a 72 21 00 jmpq *0x21720a(%rip) # 22a580 <_GLOBAL_OFFSET_TABLE_+0x598> 13376: 68 b0 00 00 00 pushq $0xb0 1337b: e9 e0 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013380 <_ZN19XLogFileHandlerBaseC2EPKc@plt>: 13380: ff 25 02 72 21 00 jmpq *0x217202(%rip) # 22a588 <_GLOBAL_OFFSET_TABLE_+0x5a0> 13386: 68 b1 00 00 00 pushq $0xb1 1338b: e9 d0 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013390 <_ZNSt4pairIKmPvEC1ERS0_RKS1_@plt>: 13390: ff 25 fa 71 21 00 jmpq *0x2171fa(%rip) # 22a590 <_GLOBAL_OFFSET_TABLE_+0x5a8> 13396: 68 b2 00 00 00 pushq $0xb2 1339b: e9 c0 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133a0 : 133a0: ff 25 f2 71 21 00 jmpq *0x2171f2(%rip) # 22a598 <_GLOBAL_OFFSET_TABLE_+0x5b0> 133a6: 68 b3 00 00 00 pushq $0xb3 133ab: e9 b0 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt>: 133b0: ff 25 ea 71 21 00 jmpq *0x2171ea(%rip) # 22a5a0 <_GLOBAL_OFFSET_TABLE_+0x5b8> 133b6: 68 b4 00 00 00 pushq $0xb4 133bb: e9 a0 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133c0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt>: 133c0: ff 25 e2 71 21 00 jmpq *0x2171e2(%rip) # 22a5a8 <_GLOBAL_OFFSET_TABLE_+0x5c0> 133c6: 68 b5 00 00 00 pushq $0xb5 133cb: e9 90 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_@plt>: 133d0: ff 25 da 71 21 00 jmpq *0x2171da(%rip) # 22a5b0 <_GLOBAL_OFFSET_TABLE_+0x5c8> 133d6: 68 b6 00 00 00 pushq $0xb6 133db: e9 80 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133e0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt>: 133e0: ff 25 d2 71 21 00 jmpq *0x2171d2(%rip) # 22a5b8 <_GLOBAL_OFFSET_TABLE_+0x5d0> 133e6: 68 b7 00 00 00 pushq $0xb7 133eb: e9 70 f4 ff ff jmpq 12860 <_init+0x20> 00000000000133f0 : 133f0: ff 25 ca 71 21 00 jmpq *0x2171ca(%rip) # 22a5c0 <_GLOBAL_OFFSET_TABLE_+0x5d8> 133f6: 68 b8 00 00 00 pushq $0xb8 133fb: e9 60 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013400 : 13400: ff 25 c2 71 21 00 jmpq *0x2171c2(%rip) # 22a5c8 <_GLOBAL_OFFSET_TABLE_+0x5e0> 13406: 68 b9 00 00 00 pushq $0xb9 1340b: e9 50 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013410 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_@plt>: 13410: ff 25 ba 71 21 00 jmpq *0x2171ba(%rip) # 22a5d0 <_GLOBAL_OFFSET_TABLE_+0x5e8> 13416: 68 ba 00 00 00 pushq $0xba 1341b: e9 40 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013420 : 13420: ff 25 b2 71 21 00 jmpq *0x2171b2(%rip) # 22a5d8 <_GLOBAL_OFFSET_TABLE_+0x5f0> 13426: 68 bb 00 00 00 pushq $0xbb 1342b: e9 30 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013430 <_ZNSsD1Ev@plt>: 13430: ff 25 aa 71 21 00 jmpq *0x2171aa(%rip) # 22a5e0 <_GLOBAL_OFFSET_TABLE_+0x5f8> 13436: 68 bc 00 00 00 pushq $0xbc 1343b: e9 20 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013440 : 13440: ff 25 a2 71 21 00 jmpq *0x2171a2(%rip) # 22a5e8 <_GLOBAL_OFFSET_TABLE_+0x600> 13446: 68 bd 00 00 00 pushq $0xbd 1344b: e9 10 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013450 : 13450: ff 25 9a 71 21 00 jmpq *0x21719a(%rip) # 22a5f0 <_GLOBAL_OFFSET_TABLE_+0x608> 13456: 68 be 00 00 00 pushq $0xbe 1345b: e9 00 f4 ff ff jmpq 12860 <_init+0x20> 0000000000013460 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1Ev@plt>: 13460: ff 25 92 71 21 00 jmpq *0x217192(%rip) # 22a5f8 <_GLOBAL_OFFSET_TABLE_+0x610> 13466: 68 bf 00 00 00 pushq $0xbf 1346b: e9 f0 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013470 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt>: 13470: ff 25 8a 71 21 00 jmpq *0x21718a(%rip) # 22a600 <_GLOBAL_OFFSET_TABLE_+0x618> 13476: 68 c0 00 00 00 pushq $0xc0 1347b: e9 e0 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013480 <_ZN17XLogSyslogHandlerC1Ev@plt>: 13480: ff 25 82 71 21 00 jmpq *0x217182(%rip) # 22a608 <_GLOBAL_OFFSET_TABLE_+0x620> 13486: 68 c1 00 00 00 pushq $0xc1 1348b: e9 d0 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013490 <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE@plt>: 13490: ff 25 7a 71 21 00 jmpq *0x21717a(%rip) # 22a610 <_GLOBAL_OFFSET_TABLE_+0x628> 13496: 68 c2 00 00 00 pushq $0xc2 1349b: e9 c0 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134a0 <_ZN9__gnu_cxx13new_allocatorISsED2Ev@plt>: 134a0: ff 25 72 71 21 00 jmpq *0x217172(%rip) # 22a618 <_GLOBAL_OFFSET_TABLE_+0x630> 134a6: 68 c3 00 00 00 pushq $0xc3 134ab: e9 b0 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134b0 : 134b0: ff 25 6a 71 21 00 jmpq *0x21716a(%rip) # 22a620 <_GLOBAL_OFFSET_TABLE_+0x638> 134b6: 68 c4 00 00 00 pushq $0xc4 134bb: e9 a0 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt>: 134c0: ff 25 62 71 21 00 jmpq *0x217162(%rip) # 22a628 <_GLOBAL_OFFSET_TABLE_+0x640> 134c6: 68 c5 00 00 00 pushq $0xc5 134cb: e9 90 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134d0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv@plt>: 134d0: ff 25 5a 71 21 00 jmpq *0x21715a(%rip) # 22a630 <_GLOBAL_OFFSET_TABLE_+0x648> 134d6: 68 c6 00 00 00 pushq $0xc6 134db: e9 80 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134e0 : 134e0: ff 25 52 71 21 00 jmpq *0x217152(%rip) # 22a638 <_GLOBAL_OFFSET_TABLE_+0x650> 134e6: 68 c7 00 00 00 pushq $0xc7 134eb: e9 70 f3 ff ff jmpq 12860 <_init+0x20> 00000000000134f0 <_ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_@plt>: 134f0: ff 25 4a 71 21 00 jmpq *0x21714a(%rip) # 22a640 <_GLOBAL_OFFSET_TABLE_+0x658> 134f6: 68 c8 00 00 00 pushq $0xc8 134fb: e9 60 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013500 <_ZSt4findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_@plt>: 13500: ff 25 42 71 21 00 jmpq *0x217142(%rip) # 22a648 <_GLOBAL_OFFSET_TABLE_+0x660> 13506: 68 c9 00 00 00 pushq $0xc9 1350b: e9 50 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013510 <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv@plt>: 13510: ff 25 3a 71 21 00 jmpq *0x21713a(%rip) # 22a650 <_GLOBAL_OFFSET_TABLE_+0x668> 13516: 68 ca 00 00 00 pushq $0xca 1351b: e9 40 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013520 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv@plt>: 13520: ff 25 32 71 21 00 jmpq *0x217132(%rip) # 22a658 <_GLOBAL_OFFSET_TABLE_+0x670> 13526: 68 cb 00 00 00 pushq $0xcb 1352b: e9 30 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013530 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi@plt>: 13530: ff 25 2a 71 21 00 jmpq *0x21712a(%rip) # 22a660 <_GLOBAL_OFFSET_TABLE_+0x678> 13536: 68 cc 00 00 00 pushq $0xcc 1353b: e9 20 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013540 <_ZN6XMutexD1Ev@plt>: 13540: ff 25 22 71 21 00 jmpq *0x217122(%rip) # 22a668 <_GLOBAL_OFFSET_TABLE_+0x680> 13546: 68 cd 00 00 00 pushq $0xcd 1354b: e9 10 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt>: 13550: ff 25 1a 71 21 00 jmpq *0x21711a(%rip) # 22a670 <_GLOBAL_OFFSET_TABLE_+0x688> 13556: 68 ce 00 00 00 pushq $0xce 1355b: e9 00 f3 ff ff jmpq 12860 <_init+0x20> 0000000000013560 : 13560: ff 25 12 71 21 00 jmpq *0x217112(%rip) # 22a678 <_GLOBAL_OFFSET_TABLE_+0x690> 13566: 68 cf 00 00 00 pushq $0xcf 1356b: e9 f0 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013570 <_ZNKSt4lessImEclERKmS2_@plt>: 13570: ff 25 0a 71 21 00 jmpq *0x21710a(%rip) # 22a680 <_GLOBAL_OFFSET_TABLE_+0x698> 13576: 68 d0 00 00 00 pushq $0xd0 1357b: e9 e0 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013580 : 13580: ff 25 02 71 21 00 jmpq *0x217102(%rip) # 22a688 <_GLOBAL_OFFSET_TABLE_+0x6a0> 13586: 68 d1 00 00 00 pushq $0xd1 1358b: e9 d0 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013590 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_@plt>: 13590: ff 25 fa 70 21 00 jmpq *0x2170fa(%rip) # 22a690 <_GLOBAL_OFFSET_TABLE_+0x6a8> 13596: 68 d2 00 00 00 pushq $0xd2 1359b: e9 c0 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135a0 <__xstat@plt>: 135a0: ff 25 f2 70 21 00 jmpq *0x2170f2(%rip) # 22a698 <_GLOBAL_OFFSET_TABLE_+0x6b0> 135a6: 68 d3 00 00 00 pushq $0xd3 135ab: e9 b0 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt>: 135b0: ff 25 ea 70 21 00 jmpq *0x2170ea(%rip) # 22a6a0 <_GLOBAL_OFFSET_TABLE_+0x6b8> 135b6: 68 d4 00 00 00 pushq $0xd4 135bb: e9 a0 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt>: 135c0: ff 25 e2 70 21 00 jmpq *0x2170e2(%rip) # 22a6a8 <_GLOBAL_OFFSET_TABLE_+0x6c0> 135c6: 68 d5 00 00 00 pushq $0xd5 135cb: e9 90 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_maximumEPSt18_Rb_tree_node_base@plt>: 135d0: ff 25 da 70 21 00 jmpq *0x2170da(%rip) # 22a6b0 <_GLOBAL_OFFSET_TABLE_+0x6c8> 135d6: 68 d6 00 00 00 pushq $0xd6 135db: e9 80 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135e0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt>: 135e0: ff 25 d2 70 21 00 jmpq *0x2170d2(%rip) # 22a6b8 <_GLOBAL_OFFSET_TABLE_+0x6d0> 135e6: 68 d7 00 00 00 pushq $0xd7 135eb: e9 70 f2 ff ff jmpq 12860 <_init+0x20> 00000000000135f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt13_Rb_tree_nodeIS3_E@plt>: 135f0: ff 25 ca 70 21 00 jmpq *0x2170ca(%rip) # 22a6c0 <_GLOBAL_OFFSET_TABLE_+0x6d8> 135f6: 68 d8 00 00 00 pushq $0xd8 135fb: e9 60 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013600 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt>: 13600: ff 25 c2 70 21 00 jmpq *0x2170c2(%rip) # 22a6c8 <_GLOBAL_OFFSET_TABLE_+0x6e0> 13606: 68 d9 00 00 00 pushq $0xd9 1360b: e9 50 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 13610: ff 25 ba 70 21 00 jmpq *0x2170ba(%rip) # 22a6d0 <_GLOBAL_OFFSET_TABLE_+0x6e8> 13616: 68 da 00 00 00 pushq $0xda 1361b: e9 40 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013620 <__cxa_finalize@plt>: 13620: ff 25 b2 70 21 00 jmpq *0x2170b2(%rip) # 22a6d8 <_GLOBAL_OFFSET_TABLE_+0x6f0> 13626: 68 db 00 00 00 pushq $0xdb 1362b: e9 30 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013630 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt>: 13630: ff 25 aa 70 21 00 jmpq *0x2170aa(%rip) # 22a6e0 <_GLOBAL_OFFSET_TABLE_+0x6f8> 13636: 68 dc 00 00 00 pushq $0xdc 1363b: e9 20 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013640 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt>: 13640: ff 25 a2 70 21 00 jmpq *0x2170a2(%rip) # 22a6e8 <_GLOBAL_OFFSET_TABLE_+0x700> 13646: 68 dd 00 00 00 pushq $0xdd 1364b: e9 10 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013650 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt>: 13650: ff 25 9a 70 21 00 jmpq *0x21709a(%rip) # 22a6f0 <_GLOBAL_OFFSET_TABLE_+0x708> 13656: 68 de 00 00 00 pushq $0xde 1365b: e9 00 f2 ff ff jmpq 12860 <_init+0x20> 0000000000013660 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_@plt>: 13660: ff 25 92 70 21 00 jmpq *0x217092(%rip) # 22a6f8 <_GLOBAL_OFFSET_TABLE_+0x710> 13666: 68 df 00 00 00 pushq $0xdf 1366b: e9 f0 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013670 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt>: 13670: ff 25 8a 70 21 00 jmpq *0x21708a(%rip) # 22a700 <_GLOBAL_OFFSET_TABLE_+0x718> 13676: 68 e0 00 00 00 pushq $0xe0 1367b: e9 e0 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013680 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt>: 13680: ff 25 82 70 21 00 jmpq *0x217082(%rip) # 22a708 <_GLOBAL_OFFSET_TABLE_+0x720> 13686: 68 e1 00 00 00 pushq $0xe1 1368b: e9 d0 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013690 : 13690: ff 25 7a 70 21 00 jmpq *0x21707a(%rip) # 22a710 <_GLOBAL_OFFSET_TABLE_+0x728> 13696: 68 e2 00 00 00 pushq $0xe2 1369b: e9 c0 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136a0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED2Ev@plt>: 136a0: ff 25 72 70 21 00 jmpq *0x217072(%rip) # 22a718 <_GLOBAL_OFFSET_TABLE_+0x730> 136a6: 68 e3 00 00 00 pushq $0xe3 136ab: e9 b0 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136b0 : 136b0: ff 25 6a 70 21 00 jmpq *0x21706a(%rip) # 22a720 <_GLOBAL_OFFSET_TABLE_+0x738> 136b6: 68 e4 00 00 00 pushq $0xe4 136bb: e9 a0 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136c0 <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv@plt>: 136c0: ff 25 62 70 21 00 jmpq *0x217062(%rip) # 22a728 <_GLOBAL_OFFSET_TABLE_+0x740> 136c6: 68 e5 00 00 00 pushq $0xe5 136cb: e9 90 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 136d0: ff 25 5a 70 21 00 jmpq *0x21705a(%rip) # 22a730 <_GLOBAL_OFFSET_TABLE_+0x748> 136d6: 68 e6 00 00 00 pushq $0xe6 136db: e9 80 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136e0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC2Ev@plt>: 136e0: ff 25 52 70 21 00 jmpq *0x217052(%rip) # 22a738 <_GLOBAL_OFFSET_TABLE_+0x750> 136e6: 68 e7 00 00 00 pushq $0xe7 136eb: e9 70 f1 ff ff jmpq 12860 <_init+0x20> 00000000000136f0 <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv@plt>: 136f0: ff 25 4a 70 21 00 jmpq *0x21704a(%rip) # 22a740 <_GLOBAL_OFFSET_TABLE_+0x758> 136f6: 68 e8 00 00 00 pushq $0xe8 136fb: e9 60 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013700 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_@plt>: 13700: ff 25 42 70 21 00 jmpq *0x217042(%rip) # 22a748 <_GLOBAL_OFFSET_TABLE_+0x760> 13706: 68 e9 00 00 00 pushq $0xe9 1370b: e9 50 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013710 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt>: 13710: ff 25 3a 70 21 00 jmpq *0x21703a(%rip) # 22a750 <_GLOBAL_OFFSET_TABLE_+0x768> 13716: 68 ea 00 00 00 pushq $0xea 1371b: e9 40 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013720 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt>: 13720: ff 25 32 70 21 00 jmpq *0x217032(%rip) # 22a758 <_GLOBAL_OFFSET_TABLE_+0x770> 13726: 68 eb 00 00 00 pushq $0xeb 1372b: e9 30 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013730 <_Z18map_cluster_removem@plt>: 13730: ff 25 2a 70 21 00 jmpq *0x21702a(%rip) # 22a760 <_GLOBAL_OFFSET_TABLE_+0x778> 13736: 68 ec 00 00 00 pushq $0xec 1373b: e9 20 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013740 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt>: 13740: ff 25 22 70 21 00 jmpq *0x217022(%rip) # 22a768 <_GLOBAL_OFFSET_TABLE_+0x780> 13746: 68 ed 00 00 00 pushq $0xed 1374b: e9 10 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013750 <__cxa_guard_release@plt>: 13750: ff 25 1a 70 21 00 jmpq *0x21701a(%rip) # 22a770 <_GLOBAL_OFFSET_TABLE_+0x788> 13756: 68 ee 00 00 00 pushq $0xee 1375b: e9 00 f1 ff ff jmpq 12860 <_init+0x20> 0000000000013760 <_ZN4XLog10addHandlerER11XLogHandler@plt>: 13760: ff 25 12 70 21 00 jmpq *0x217012(%rip) # 22a778 <_GLOBAL_OFFSET_TABLE_+0x790> 13766: 68 ef 00 00 00 pushq $0xef 1376b: e9 f0 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013770 <_ZNSt20_List_const_iteratorIiEppEi@plt>: 13770: ff 25 0a 70 21 00 jmpq *0x21700a(%rip) # 22a780 <_GLOBAL_OFFSET_TABLE_+0x798> 13776: 68 f0 00 00 00 pushq $0xf0 1377b: e9 e0 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013780 <_ZNSt20_List_const_iteratorIiEC1Ev@plt>: 13780: ff 25 02 70 21 00 jmpq *0x217002(%rip) # 22a788 <_GLOBAL_OFFSET_TABLE_+0x7a0> 13786: 68 f1 00 00 00 pushq $0xf1 1378b: e9 d0 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013790 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt>: 13790: ff 25 fa 6f 21 00 jmpq *0x216ffa(%rip) # 22a790 <_GLOBAL_OFFSET_TABLE_+0x7a8> 13796: 68 f2 00 00 00 pushq $0xf2 1379b: e9 c0 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt>: 137a0: ff 25 f2 6f 21 00 jmpq *0x216ff2(%rip) # 22a798 <_GLOBAL_OFFSET_TABLE_+0x7b0> 137a6: 68 f3 00 00 00 pushq $0xf3 137ab: e9 b0 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev@plt>: 137b0: ff 25 ea 6f 21 00 jmpq *0x216fea(%rip) # 22a7a0 <_GLOBAL_OFFSET_TABLE_+0x7b8> 137b6: 68 f4 00 00 00 pushq $0xf4 137bb: e9 a0 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137c0 : 137c0: ff 25 e2 6f 21 00 jmpq *0x216fe2(%rip) # 22a7a8 <_GLOBAL_OFFSET_TABLE_+0x7c0> 137c6: 68 f5 00 00 00 pushq $0xf5 137cb: e9 90 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137d0 <_ZSt13copy_backwardIPSsS0_ET0_T_S2_S1_@plt>: 137d0: ff 25 da 6f 21 00 jmpq *0x216fda(%rip) # 22a7b0 <_GLOBAL_OFFSET_TABLE_+0x7c8> 137d6: 68 f6 00 00 00 pushq $0xf6 137db: e9 80 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137e0 <_ZN11XLogHandlerD2Ev@plt>: 137e0: ff 25 d2 6f 21 00 jmpq *0x216fd2(%rip) # 22a7b8 <_GLOBAL_OFFSET_TABLE_+0x7d0> 137e6: 68 f7 00 00 00 pushq $0xf7 137eb: e9 70 f0 ff ff jmpq 12860 <_init+0x20> 00000000000137f0 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_@plt>: 137f0: ff 25 ca 6f 21 00 jmpq *0x216fca(%rip) # 22a7c0 <_GLOBAL_OFFSET_TABLE_+0x7d8> 137f6: 68 f8 00 00 00 pushq $0xf8 137fb: e9 60 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013800 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt>: 13800: ff 25 c2 6f 21 00 jmpq *0x216fc2(%rip) # 22a7c8 <_GLOBAL_OFFSET_TABLE_+0x7e0> 13806: 68 f9 00 00 00 pushq $0xf9 1380b: e9 50 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013810 <_Z13map_ioctx_addmPv@plt>: 13810: ff 25 ba 6f 21 00 jmpq *0x216fba(%rip) # 22a7d0 <_GLOBAL_OFFSET_TABLE_+0x7e8> 13816: 68 fa 00 00 00 pushq $0xfa 1381b: e9 40 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013820 <_ZNKSt20_List_const_iteratorIiEneERKS0_@plt>: 13820: ff 25 b2 6f 21 00 jmpq *0x216fb2(%rip) # 22a7d8 <_GLOBAL_OFFSET_TABLE_+0x7f0> 13826: 68 fb 00 00 00 pushq $0xfb 1382b: e9 30 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013830 : 13830: ff 25 aa 6f 21 00 jmpq *0x216faa(%rip) # 22a7e0 <_GLOBAL_OFFSET_TABLE_+0x7f8> 13836: 68 fc 00 00 00 pushq $0xfc 1383b: e9 20 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013840 : 13840: ff 25 a2 6f 21 00 jmpq *0x216fa2(%rip) # 22a7e8 <_GLOBAL_OFFSET_TABLE_+0x800> 13846: 68 fd 00 00 00 pushq $0xfd 1384b: e9 10 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013850 <_Z16map_list_ctx_getm@plt>: 13850: ff 25 9a 6f 21 00 jmpq *0x216f9a(%rip) # 22a7f0 <_GLOBAL_OFFSET_TABLE_+0x808> 13856: 68 fe 00 00 00 pushq $0xfe 1385b: e9 00 f0 ff ff jmpq 12860 <_init+0x20> 0000000000013860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt>: 13860: ff 25 92 6f 21 00 jmpq *0x216f92(%rip) # 22a7f8 <_GLOBAL_OFFSET_TABLE_+0x810> 13866: 68 ff 00 00 00 pushq $0xff 1386b: e9 f0 ef ff ff jmpq 12860 <_init+0x20> 0000000000013870 : 13870: ff 25 8a 6f 21 00 jmpq *0x216f8a(%rip) # 22a800 <_GLOBAL_OFFSET_TABLE_+0x818> 13876: 68 00 01 00 00 pushq $0x100 1387b: e9 e0 ef ff ff jmpq 12860 <_init+0x20> 0000000000013880 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_@plt>: 13880: ff 25 82 6f 21 00 jmpq *0x216f82(%rip) # 22a808 <_GLOBAL_OFFSET_TABLE_+0x820> 13886: 68 01 01 00 00 pushq $0x101 1388b: e9 d0 ef ff ff jmpq 12860 <_init+0x20> 0000000000013890 <_ZN17XLogStderrHandlerD1Ev@plt>: 13890: ff 25 7a 6f 21 00 jmpq *0x216f7a(%rip) # 22a810 <_GLOBAL_OFFSET_TABLE_+0x828> 13896: 68 02 01 00 00 pushq $0x102 1389b: e9 c0 ef ff ff jmpq 12860 <_init+0x20> 00000000000138a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E@plt>: 138a0: ff 25 72 6f 21 00 jmpq *0x216f72(%rip) # 22a818 <_GLOBAL_OFFSET_TABLE_+0x830> 138a6: 68 03 01 00 00 pushq $0x103 138ab: e9 b0 ef ff ff jmpq 12860 <_init+0x20> 00000000000138b0 <_ZNSaISsED2Ev@plt>: 138b0: ff 25 6a 6f 21 00 jmpq *0x216f6a(%rip) # 22a820 <_GLOBAL_OFFSET_TABLE_+0x838> 138b6: 68 04 01 00 00 pushq $0x104 138bb: e9 a0 ef ff ff jmpq 12860 <_init+0x20> 00000000000138c0 : 138c0: ff 25 62 6f 21 00 jmpq *0x216f62(%rip) # 22a828 <_GLOBAL_OFFSET_TABLE_+0x840> 138c6: 68 05 01 00 00 pushq $0x105 138cb: e9 90 ef ff ff jmpq 12860 <_init+0x20> 00000000000138d0 <_Z16map_list_ctx_addmPv@plt>: 138d0: ff 25 5a 6f 21 00 jmpq *0x216f5a(%rip) # 22a830 <_GLOBAL_OFFSET_TABLE_+0x848> 138d6: 68 06 01 00 00 pushq $0x106 138db: e9 80 ef ff ff jmpq 12860 <_init+0x20> 00000000000138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 138e0: ff 25 52 6f 21 00 jmpq *0x216f52(%rip) # 22a838 <_GLOBAL_OFFSET_TABLE_+0x850> 138e6: 68 07 01 00 00 pushq $0x107 138eb: e9 70 ef ff ff jmpq 12860 <_init+0x20> 00000000000138f0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_@plt>: 138f0: ff 25 4a 6f 21 00 jmpq *0x216f4a(%rip) # 22a840 <_GLOBAL_OFFSET_TABLE_+0x858> 138f6: 68 08 01 00 00 pushq $0x108 138fb: e9 60 ef ff ff jmpq 12860 <_init+0x20> 0000000000013900 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E@plt>: 13900: ff 25 42 6f 21 00 jmpq *0x216f42(%rip) # 22a848 <_GLOBAL_OFFSET_TABLE_+0x860> 13906: 68 09 01 00 00 pushq $0x109 1390b: e9 50 ef ff ff jmpq 12860 <_init+0x20> 0000000000013910 <_ZNKSs7compareEPKc@plt>: 13910: ff 25 3a 6f 21 00 jmpq *0x216f3a(%rip) # 22a850 <_GLOBAL_OFFSET_TABLE_+0x868> 13916: 68 0a 01 00 00 pushq $0x10a 1391b: e9 40 ef ff ff jmpq 12860 <_init+0x20> 0000000000013920 <_ZNSsC1EPKcRKSaIcE@plt>: 13920: ff 25 32 6f 21 00 jmpq *0x216f32(%rip) # 22a858 <_GLOBAL_OFFSET_TABLE_+0x870> 13926: 68 0b 01 00 00 pushq $0x10b 1392b: e9 30 ef ff ff jmpq 12860 <_init+0x20> 0000000000013930 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_@plt>: 13930: ff 25 2a 6f 21 00 jmpq *0x216f2a(%rip) # 22a860 <_GLOBAL_OFFSET_TABLE_+0x878> 13936: 68 0c 01 00 00 pushq $0x10c 1393b: e9 20 ef ff ff jmpq 12860 <_init+0x20> 0000000000013940 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt>: 13940: ff 25 22 6f 21 00 jmpq *0x216f22(%rip) # 22a868 <_GLOBAL_OFFSET_TABLE_+0x880> 13946: 68 0d 01 00 00 pushq $0x10d 1394b: e9 10 ef ff ff jmpq 12860 <_init+0x20> 0000000000013950 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt13_Rb_tree_nodeIS1_E@plt>: 13950: ff 25 1a 6f 21 00 jmpq *0x216f1a(%rip) # 22a870 <_GLOBAL_OFFSET_TABLE_+0x888> 13956: 68 0e 01 00 00 pushq $0x10e 1395b: e9 00 ef ff ff jmpq 12860 <_init+0x20> 0000000000013960 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev@plt>: 13960: ff 25 12 6f 21 00 jmpq *0x216f12(%rip) # 22a878 <_GLOBAL_OFFSET_TABLE_+0x890> 13966: 68 0f 01 00 00 pushq $0x10f 1396b: e9 f0 ee ff ff jmpq 12860 <_init+0x20> 0000000000013970 : 13970: ff 25 0a 6f 21 00 jmpq *0x216f0a(%rip) # 22a880 <_GLOBAL_OFFSET_TABLE_+0x898> 13976: 68 10 01 00 00 pushq $0x110 1397b: e9 e0 ee ff ff jmpq 12860 <_init+0x20> 0000000000013980 <_ZNSaISsEC2Ev@plt>: 13980: ff 25 02 6f 21 00 jmpq *0x216f02(%rip) # 22a888 <_GLOBAL_OFFSET_TABLE_+0x8a0> 13986: 68 11 01 00 00 pushq $0x111 1398b: e9 d0 ee ff ff jmpq 12860 <_init+0x20> 0000000000013990 : 13990: ff 25 fa 6e 21 00 jmpq *0x216efa(%rip) # 22a890 <_GLOBAL_OFFSET_TABLE_+0x8a8> 13996: 68 12 01 00 00 pushq $0x112 1399b: e9 c0 ee ff ff jmpq 12860 <_init+0x20> 00000000000139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt>: 139a0: ff 25 f2 6e 21 00 jmpq *0x216ef2(%rip) # 22a898 <_GLOBAL_OFFSET_TABLE_+0x8b0> 139a6: 68 13 01 00 00 pushq $0x113 139ab: e9 b0 ee ff ff jmpq 12860 <_init+0x20> 00000000000139b0 <_ZNKSt10_List_baseIiSaIiEE21_M_get_Node_allocatorEv@plt>: 139b0: ff 25 ea 6e 21 00 jmpq *0x216eea(%rip) # 22a8a0 <_GLOBAL_OFFSET_TABLE_+0x8b8> 139b6: 68 14 01 00 00 pushq $0x114 139bb: e9 a0 ee ff ff jmpq 12860 <_init+0x20> 00000000000139c0 <_ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm@plt>: 139c0: ff 25 e2 6e 21 00 jmpq *0x216ee2(%rip) # 22a8a8 <_GLOBAL_OFFSET_TABLE_+0x8c0> 139c6: 68 15 01 00 00 pushq $0x115 139cb: e9 90 ee ff ff jmpq 12860 <_init+0x20> 00000000000139d0 <_ZN4XLogD1Ev@plt>: 139d0: ff 25 da 6e 21 00 jmpq *0x216eda(%rip) # 22a8b0 <_GLOBAL_OFFSET_TABLE_+0x8c8> 139d6: 68 16 01 00 00 pushq $0x116 139db: e9 80 ee ff ff jmpq 12860 <_init+0x20> 00000000000139e0 <_ZN19XLogFileHandlerBase5flushEv@plt>: 139e0: ff 25 d2 6e 21 00 jmpq *0x216ed2(%rip) # 22a8b8 <_GLOBAL_OFFSET_TABLE_+0x8d0> 139e6: 68 17 01 00 00 pushq $0x117 139eb: e9 70 ee ff ff jmpq 12860 <_init+0x20> 00000000000139f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_@plt>: 139f0: ff 25 ca 6e 21 00 jmpq *0x216eca(%rip) # 22a8c0 <_GLOBAL_OFFSET_TABLE_+0x8d8> 139f6: 68 18 01 00 00 pushq $0x118 139fb: e9 60 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a00 <_ZNSt6vectorISsSaISsEE3endEv@plt>: 13a00: ff 25 c2 6e 21 00 jmpq *0x216ec2(%rip) # 22a8c8 <_GLOBAL_OFFSET_TABLE_+0x8e0> 13a06: 68 19 01 00 00 pushq $0x119 13a0b: e9 50 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a10 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt>: 13a10: ff 25 ba 6e 21 00 jmpq *0x216eba(%rip) # 22a8d0 <_GLOBAL_OFFSET_TABLE_+0x8e8> 13a16: 68 1a 01 00 00 pushq $0x11a 13a1b: e9 40 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a20 : 13a20: ff 25 b2 6e 21 00 jmpq *0x216eb2(%rip) # 22a8d8 <_GLOBAL_OFFSET_TABLE_+0x8f0> 13a26: 68 1b 01 00 00 pushq $0x11b 13a2b: e9 30 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a30 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt>: 13a30: ff 25 aa 6e 21 00 jmpq *0x216eaa(%rip) # 22a8e0 <_GLOBAL_OFFSET_TABLE_+0x8f8> 13a36: 68 1c 01 00 00 pushq $0x11c 13a3b: e9 20 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt>: 13a40: ff 25 a2 6e 21 00 jmpq *0x216ea2(%rip) # 22a8e8 <_GLOBAL_OFFSET_TABLE_+0x900> 13a46: 68 1d 01 00 00 pushq $0x11d 13a4b: e9 10 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a50 <_ZSt11__addressofIiEPT_RS0_@plt>: 13a50: ff 25 9a 6e 21 00 jmpq *0x216e9a(%rip) # 22a8f0 <_GLOBAL_OFFSET_TABLE_+0x908> 13a56: 68 1e 01 00 00 pushq $0x11e 13a5b: e9 00 ee ff ff jmpq 12860 <_init+0x20> 0000000000013a60 <_ZNKSt20_List_const_iteratorIiEdeEv@plt>: 13a60: ff 25 92 6e 21 00 jmpq *0x216e92(%rip) # 22a8f8 <_GLOBAL_OFFSET_TABLE_+0x910> 13a66: 68 1f 01 00 00 pushq $0x11f 13a6b: e9 f0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013a70 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED2Ev@plt>: 13a70: ff 25 8a 6e 21 00 jmpq *0x216e8a(%rip) # 22a900 <_GLOBAL_OFFSET_TABLE_+0x918> 13a76: 68 20 01 00 00 pushq $0x120 13a7b: e9 e0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013a80 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt>: 13a80: ff 25 82 6e 21 00 jmpq *0x216e82(%rip) # 22a908 <_GLOBAL_OFFSET_TABLE_+0x920> 13a86: 68 21 01 00 00 pushq $0x121 13a8b: e9 d0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013a90 <_ZNSt4listIiSaIiEE9push_backERKi@plt>: 13a90: ff 25 7a 6e 21 00 jmpq *0x216e7a(%rip) # 22a910 <_GLOBAL_OFFSET_TABLE_+0x928> 13a96: 68 22 01 00 00 pushq $0x122 13a9b: e9 c0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013aa0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_get_nodeEv@plt>: 13aa0: ff 25 72 6e 21 00 jmpq *0x216e72(%rip) # 22a918 <_GLOBAL_OFFSET_TABLE_+0x930> 13aa6: 68 23 01 00 00 pushq $0x123 13aab: e9 b0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 13ab0: ff 25 6a 6e 21 00 jmpq *0x216e6a(%rip) # 22a920 <_GLOBAL_OFFSET_TABLE_+0x938> 13ab6: 68 24 01 00 00 pushq $0x124 13abb: e9 a0 ed ff ff jmpq 12860 <_init+0x20> 0000000000013ac0 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt>: 13ac0: ff 25 62 6e 21 00 jmpq *0x216e62(%rip) # 22a928 <_GLOBAL_OFFSET_TABLE_+0x940> 13ac6: 68 25 01 00 00 pushq $0x125 13acb: e9 90 ed ff ff jmpq 12860 <_init+0x20> 0000000000013ad0 : 13ad0: ff 25 5a 6e 21 00 jmpq *0x216e5a(%rip) # 22a930 <_GLOBAL_OFFSET_TABLE_+0x948> 13ad6: 68 26 01 00 00 pushq $0x126 13adb: e9 80 ed ff ff jmpq 12860 <_init+0x20> 0000000000013ae0 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv@plt>: 13ae0: ff 25 52 6e 21 00 jmpq *0x216e52(%rip) # 22a938 <_GLOBAL_OFFSET_TABLE_+0x950> 13ae6: 68 27 01 00 00 pushq $0x127 13aeb: e9 70 ed ff ff jmpq 12860 <_init+0x20> 0000000000013af0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt>: 13af0: ff 25 4a 6e 21 00 jmpq *0x216e4a(%rip) # 22a940 <_GLOBAL_OFFSET_TABLE_+0x958> 13af6: 68 28 01 00 00 pushq $0x128 13afb: e9 60 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_@plt>: 13b00: ff 25 42 6e 21 00 jmpq *0x216e42(%rip) # 22a948 <_GLOBAL_OFFSET_TABLE_+0x960> 13b06: 68 29 01 00 00 pushq $0x129 13b0b: e9 50 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b10 : 13b10: ff 25 3a 6e 21 00 jmpq *0x216e3a(%rip) # 22a950 <_GLOBAL_OFFSET_TABLE_+0x968> 13b16: 68 2a 01 00 00 pushq $0x12a 13b1b: e9 40 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b20 : 13b20: ff 25 32 6e 21 00 jmpq *0x216e32(%rip) # 22a958 <_GLOBAL_OFFSET_TABLE_+0x970> 13b26: 68 2b 01 00 00 pushq $0x12b 13b2b: e9 30 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b30 : 13b30: ff 25 2a 6e 21 00 jmpq *0x216e2a(%rip) # 22a960 <_GLOBAL_OFFSET_TABLE_+0x978> 13b36: 68 2c 01 00 00 pushq $0x12c 13b3b: e9 20 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b40 : 13b40: ff 25 22 6e 21 00 jmpq *0x216e22(%rip) # 22a968 <_GLOBAL_OFFSET_TABLE_+0x980> 13b46: 68 2d 01 00 00 pushq $0x12d 13b4b: e9 10 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b50 : 13b50: ff 25 1a 6e 21 00 jmpq *0x216e1a(%rip) # 22a970 <_GLOBAL_OFFSET_TABLE_+0x988> 13b56: 68 2e 01 00 00 pushq $0x12e 13b5b: e9 00 ed ff ff jmpq 12860 <_init+0x20> 0000000000013b60 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv@plt>: 13b60: ff 25 12 6e 21 00 jmpq *0x216e12(%rip) # 22a978 <_GLOBAL_OFFSET_TABLE_+0x990> 13b66: 68 2f 01 00 00 pushq $0x12f 13b6b: e9 f0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013b70 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt>: 13b70: ff 25 0a 6e 21 00 jmpq *0x216e0a(%rip) # 22a980 <_GLOBAL_OFFSET_TABLE_+0x998> 13b76: 68 30 01 00 00 pushq $0x130 13b7b: e9 e0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt>: 13b80: ff 25 02 6e 21 00 jmpq *0x216e02(%rip) # 22a988 <_GLOBAL_OFFSET_TABLE_+0x9a0> 13b86: 68 31 01 00 00 pushq $0x131 13b8b: e9 d0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013b90 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE5beginEv@plt>: 13b90: ff 25 fa 6d 21 00 jmpq *0x216dfa(%rip) # 22a990 <_GLOBAL_OFFSET_TABLE_+0x9a8> 13b96: 68 32 01 00 00 pushq $0x132 13b9b: e9 c0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013ba0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_@plt>: 13ba0: ff 25 f2 6d 21 00 jmpq *0x216df2(%rip) # 22a998 <_GLOBAL_OFFSET_TABLE_+0x9b0> 13ba6: 68 33 01 00 00 pushq $0x133 13bab: e9 b0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013bb0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt>: 13bb0: ff 25 ea 6d 21 00 jmpq *0x216dea(%rip) # 22a9a0 <_GLOBAL_OFFSET_TABLE_+0x9b8> 13bb6: 68 34 01 00 00 pushq $0x134 13bbb: e9 a0 ec ff ff jmpq 12860 <_init+0x20> 0000000000013bc0 : 13bc0: ff 25 e2 6d 21 00 jmpq *0x216de2(%rip) # 22a9a8 <_GLOBAL_OFFSET_TABLE_+0x9c0> 13bc6: 68 35 01 00 00 pushq $0x135 13bcb: e9 90 ec ff ff jmpq 12860 <_init+0x20> 0000000000013bd0 <_ZNSt8__detail15_List_node_base7_M_hookEPS0_@plt>: 13bd0: ff 25 da 6d 21 00 jmpq *0x216dda(%rip) # 22a9b0 <_GLOBAL_OFFSET_TABLE_+0x9c8> 13bd6: 68 36 01 00 00 pushq $0x136 13bdb: e9 80 ec ff ff jmpq 12860 <_init+0x20> 0000000000013be0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt>: 13be0: ff 25 d2 6d 21 00 jmpq *0x216dd2(%rip) # 22a9b8 <_GLOBAL_OFFSET_TABLE_+0x9d0> 13be6: 68 37 01 00 00 pushq $0x137 13beb: e9 70 ec ff ff jmpq 12860 <_init+0x20> 0000000000013bf0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt>: 13bf0: ff 25 ca 6d 21 00 jmpq *0x216dca(%rip) # 22a9c0 <_GLOBAL_OFFSET_TABLE_+0x9d8> 13bf6: 68 38 01 00 00 pushq $0x138 13bfb: e9 60 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c00 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_@plt>: 13c00: ff 25 c2 6d 21 00 jmpq *0x216dc2(%rip) # 22a9c8 <_GLOBAL_OFFSET_TABLE_+0x9e0> 13c06: 68 39 01 00 00 pushq $0x139 13c0b: e9 50 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c10 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt>: 13c10: ff 25 ba 6d 21 00 jmpq *0x216dba(%rip) # 22a9d0 <_GLOBAL_OFFSET_TABLE_+0x9e8> 13c16: 68 3a 01 00 00 pushq $0x13a 13c1b: e9 40 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c20 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE3endEv@plt>: 13c20: ff 25 b2 6d 21 00 jmpq *0x216db2(%rip) # 22a9d8 <_GLOBAL_OFFSET_TABLE_+0x9f0> 13c26: 68 3b 01 00 00 pushq $0x13b 13c2b: e9 30 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt>: 13c30: ff 25 aa 6d 21 00 jmpq *0x216daa(%rip) # 22a9e0 <_GLOBAL_OFFSET_TABLE_+0x9f8> 13c36: 68 3c 01 00 00 pushq $0x13c 13c3b: e9 20 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c40 : 13c40: ff 25 a2 6d 21 00 jmpq *0x216da2(%rip) # 22a9e8 <_GLOBAL_OFFSET_TABLE_+0xa00> 13c46: 68 3d 01 00 00 pushq $0x13d 13c4b: e9 10 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c50 : 13c50: ff 25 9a 6d 21 00 jmpq *0x216d9a(%rip) # 22a9f0 <_GLOBAL_OFFSET_TABLE_+0xa08> 13c56: 68 3e 01 00 00 pushq $0x13e 13c5b: e9 00 ec ff ff jmpq 12860 <_init+0x20> 0000000000013c60 <_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_@plt>: 13c60: ff 25 92 6d 21 00 jmpq *0x216d92(%rip) # 22a9f8 <_GLOBAL_OFFSET_TABLE_+0xa10> 13c66: 68 3f 01 00 00 pushq $0x13f 13c6b: e9 f0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013c70 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt>: 13c70: ff 25 8a 6d 21 00 jmpq *0x216d8a(%rip) # 22aa00 <_GLOBAL_OFFSET_TABLE_+0xa18> 13c76: 68 40 01 00 00 pushq $0x140 13c7b: e9 e0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013c80 <_ZN19XLogFileHandlerBaseD1Ev@plt>: 13c80: ff 25 82 6d 21 00 jmpq *0x216d82(%rip) # 22aa08 <_GLOBAL_OFFSET_TABLE_+0xa20> 13c86: 68 41 01 00 00 pushq $0x141 13c8b: e9 d0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt>: 13c90: ff 25 7a 6d 21 00 jmpq *0x216d7a(%rip) # 22aa10 <_GLOBAL_OFFSET_TABLE_+0xa28> 13c96: 68 42 01 00 00 pushq $0x142 13c9b: e9 c0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013ca0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv@plt>: 13ca0: ff 25 72 6d 21 00 jmpq *0x216d72(%rip) # 22aa18 <_GLOBAL_OFFSET_TABLE_+0xa30> 13ca6: 68 43 01 00 00 pushq $0x143 13cab: e9 b0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013cb0 <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_@plt>: 13cb0: ff 25 6a 6d 21 00 jmpq *0x216d6a(%rip) # 22aa20 <_GLOBAL_OFFSET_TABLE_+0xa38> 13cb6: 68 44 01 00 00 pushq $0x144 13cbb: e9 a0 eb ff ff jmpq 12860 <_init+0x20> 0000000000013cc0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE6insertESt17_Rb_tree_iteratorIS6_ERKS6_@plt>: 13cc0: ff 25 62 6d 21 00 jmpq *0x216d62(%rip) # 22aa28 <_GLOBAL_OFFSET_TABLE_+0xa40> 13cc6: 68 45 01 00 00 pushq $0x145 13ccb: e9 90 eb ff ff jmpq 12860 <_init+0x20> 0000000000013cd0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC2Ev@plt>: 13cd0: ff 25 5a 6d 21 00 jmpq *0x216d5a(%rip) # 22aa30 <_GLOBAL_OFFSET_TABLE_+0xa48> 13cd6: 68 46 01 00 00 pushq $0x146 13cdb: e9 80 eb ff ff jmpq 12860 <_init+0x20> 0000000000013ce0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt>: 13ce0: ff 25 52 6d 21 00 jmpq *0x216d52(%rip) # 22aa38 <_GLOBAL_OFFSET_TABLE_+0xa50> 13ce6: 68 47 01 00 00 pushq $0x147 13ceb: e9 70 eb ff ff jmpq 12860 <_init+0x20> 0000000000013cf0 : 13cf0: ff 25 4a 6d 21 00 jmpq *0x216d4a(%rip) # 22aa40 <_GLOBAL_OFFSET_TABLE_+0xa58> 13cf6: 68 48 01 00 00 pushq $0x148 13cfb: e9 60 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d00 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv@plt>: 13d00: ff 25 42 6d 21 00 jmpq *0x216d42(%rip) # 22aa48 <_GLOBAL_OFFSET_TABLE_+0xa60> 13d06: 68 49 01 00 00 pushq $0x149 13d0b: e9 50 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d10 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt>: 13d10: ff 25 3a 6d 21 00 jmpq *0x216d3a(%rip) # 22aa50 <_GLOBAL_OFFSET_TABLE_+0xa68> 13d16: 68 4a 01 00 00 pushq $0x14a 13d1b: e9 40 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d20 : 13d20: ff 25 32 6d 21 00 jmpq *0x216d32(%rip) # 22aa58 <_GLOBAL_OFFSET_TABLE_+0xa70> 13d26: 68 4b 01 00 00 pushq $0x14b 13d2b: e9 30 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d30 <_ZNSt6vectorISsSaISsEE9push_backERKSs@plt>: 13d30: ff 25 2a 6d 21 00 jmpq *0x216d2a(%rip) # 22aa60 <_GLOBAL_OFFSET_TABLE_+0xa78> 13d36: 68 4c 01 00 00 pushq $0x14c 13d3b: e9 20 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt>: 13d40: ff 25 22 6d 21 00 jmpq *0x216d22(%rip) # 22aa68 <_GLOBAL_OFFSET_TABLE_+0xa80> 13d46: 68 4d 01 00 00 pushq $0x14d 13d4b: e9 10 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d50 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv@plt>: 13d50: ff 25 1a 6d 21 00 jmpq *0x216d1a(%rip) # 22aa70 <_GLOBAL_OFFSET_TABLE_+0xa88> 13d56: 68 4e 01 00 00 pushq $0x14e 13d5b: e9 00 eb ff ff jmpq 12860 <_init+0x20> 0000000000013d60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_@plt>: 13d60: ff 25 12 6d 21 00 jmpq *0x216d12(%rip) # 22aa78 <_GLOBAL_OFFSET_TABLE_+0xa90> 13d66: 68 4f 01 00 00 pushq $0x14f 13d6b: e9 f0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013d70 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE10deallocateEPS7_m@plt>: 13d70: ff 25 0a 6d 21 00 jmpq *0x216d0a(%rip) # 22aa80 <_GLOBAL_OFFSET_TABLE_+0xa98> 13d76: 68 50 01 00 00 pushq $0x150 13d7b: e9 e0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013d80 <_ZN6XMutexC1Ev@plt>: 13d80: ff 25 02 6d 21 00 jmpq *0x216d02(%rip) # 22aa88 <_GLOBAL_OFFSET_TABLE_+0xaa0> 13d86: 68 51 01 00 00 pushq $0x151 13d8b: e9 d0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013d90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt>: 13d90: ff 25 fa 6c 21 00 jmpq *0x216cfa(%rip) # 22aa90 <_GLOBAL_OFFSET_TABLE_+0xaa8> 13d96: 68 52 01 00 00 pushq $0x152 13d9b: e9 c0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013da0 <_ZN15XLogFileHandlerD1Ev@plt>: 13da0: ff 25 f2 6c 21 00 jmpq *0x216cf2(%rip) # 22aa98 <_GLOBAL_OFFSET_TABLE_+0xab0> 13da6: 68 53 01 00 00 pushq $0x153 13dab: e9 b0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013db0 <_Z6new_idv@plt>: 13db0: ff 25 ea 6c 21 00 jmpq *0x216cea(%rip) # 22aaa0 <_GLOBAL_OFFSET_TABLE_+0xab8> 13db6: 68 54 01 00 00 pushq $0x154 13dbb: e9 a0 ea ff ff jmpq 12860 <_init+0x20> 0000000000013dc0 : 13dc0: ff 25 e2 6c 21 00 jmpq *0x216ce2(%rip) # 22aaa8 <_GLOBAL_OFFSET_TABLE_+0xac0> 13dc6: 68 55 01 00 00 pushq $0x155 13dcb: e9 90 ea ff ff jmpq 12860 <_init+0x20> 0000000000013dd0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt>: 13dd0: ff 25 da 6c 21 00 jmpq *0x216cda(%rip) # 22aab0 <_GLOBAL_OFFSET_TABLE_+0xac8> 13dd6: 68 56 01 00 00 pushq $0x156 13ddb: e9 80 ea ff ff jmpq 12860 <_init+0x20> 0000000000013de0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt>: 13de0: ff 25 d2 6c 21 00 jmpq *0x216cd2(%rip) # 22aab8 <_GLOBAL_OFFSET_TABLE_+0xad0> 13de6: 68 57 01 00 00 pushq $0x157 13deb: e9 70 ea ff ff jmpq 12860 <_init+0x20> 0000000000013df0 <__errno_location@plt>: 13df0: ff 25 ca 6c 21 00 jmpq *0x216cca(%rip) # 22aac0 <_GLOBAL_OFFSET_TABLE_+0xad8> 13df6: 68 58 01 00 00 pushq $0x158 13dfb: e9 60 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e00 : 13e00: ff 25 c2 6c 21 00 jmpq *0x216cc2(%rip) # 22aac8 <_GLOBAL_OFFSET_TABLE_+0xae0> 13e06: 68 59 01 00 00 pushq $0x159 13e0b: e9 50 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e10 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt>: 13e10: ff 25 ba 6c 21 00 jmpq *0x216cba(%rip) # 22aad0 <_GLOBAL_OFFSET_TABLE_+0xae8> 13e16: 68 5a 01 00 00 pushq $0x15a 13e1b: e9 40 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e20 <_ZN4XLog5errorEPKcS1_S1_z@plt>: 13e20: ff 25 b2 6c 21 00 jmpq *0x216cb2(%rip) # 22aad8 <_GLOBAL_OFFSET_TABLE_+0xaf0> 13e26: 68 5b 01 00 00 pushq $0x15b 13e2b: e9 30 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e30 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt>: 13e30: ff 25 aa 6c 21 00 jmpq *0x216caa(%rip) # 22aae0 <_GLOBAL_OFFSET_TABLE_+0xaf8> 13e36: 68 5c 01 00 00 pushq $0x15c 13e3b: e9 20 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e40 <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_@plt>: 13e40: ff 25 a2 6c 21 00 jmpq *0x216ca2(%rip) # 22aae8 <_GLOBAL_OFFSET_TABLE_+0xb00> 13e46: 68 5d 01 00 00 pushq $0x15d 13e4b: e9 10 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e50 : 13e50: ff 25 9a 6c 21 00 jmpq *0x216c9a(%rip) # 22aaf0 <_GLOBAL_OFFSET_TABLE_+0xb08> 13e56: 68 5e 01 00 00 pushq $0x15e 13e5b: e9 00 ea ff ff jmpq 12860 <_init+0x20> 0000000000013e60 <_Z16make_error_tupleP18enif_environment_ti@plt>: 13e60: ff 25 92 6c 21 00 jmpq *0x216c92(%rip) # 22aaf8 <_GLOBAL_OFFSET_TABLE_+0xb10> 13e66: 68 5f 01 00 00 pushq $0x15f 13e6b: e9 f0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013e70 <_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt>: 13e70: ff 25 8a 6c 21 00 jmpq *0x216c8a(%rip) # 22ab00 <_GLOBAL_OFFSET_TABLE_+0xb18> 13e76: 68 60 01 00 00 pushq $0x160 13e7b: e9 e0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013e80 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt>: 13e80: ff 25 82 6c 21 00 jmpq *0x216c82(%rip) # 22ab08 <_GLOBAL_OFFSET_TABLE_+0xb20> 13e86: 68 61 01 00 00 pushq $0x161 13e8b: e9 d0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt>: 13e90: ff 25 7a 6c 21 00 jmpq *0x216c7a(%rip) # 22ab10 <_GLOBAL_OFFSET_TABLE_+0xb28> 13e96: 68 62 01 00 00 pushq $0x162 13e9b: e9 c0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt>: 13ea0: ff 25 72 6c 21 00 jmpq *0x216c72(%rip) # 22ab18 <_GLOBAL_OFFSET_TABLE_+0xb30> 13ea6: 68 63 01 00 00 pushq $0x163 13eab: e9 b0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 13eb0: ff 25 6a 6c 21 00 jmpq *0x216c6a(%rip) # 22ab20 <_GLOBAL_OFFSET_TABLE_+0xb38> 13eb6: 68 64 01 00 00 pushq $0x164 13ebb: e9 a0 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013ec0 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt>: 13ec0: ff 25 62 6c 21 00 jmpq *0x216c62(%rip) # 22ab28 <_GLOBAL_OFFSET_TABLE_+0xb40> 13ec6: 68 65 01 00 00 pushq $0x165 13ecb: e9 90 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013ed0 <_ZNSaIP11XLogHandlerED1Ev@plt>: 13ed0: ff 25 5a 6c 21 00 jmpq *0x216c5a(%rip) # 22ab30 <_GLOBAL_OFFSET_TABLE_+0xb48> 13ed6: 68 66 01 00 00 pushq $0x166 13edb: e9 80 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013ee0 <__stack_chk_fail@plt>: 13ee0: ff 25 52 6c 21 00 jmpq *0x216c52(%rip) # 22ab38 <_GLOBAL_OFFSET_TABLE_+0xb50> 13ee6: 68 67 01 00 00 pushq $0x167 13eeb: e9 70 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013ef0 : 13ef0: ff 25 4a 6c 21 00 jmpq *0x216c4a(%rip) # 22ab40 <_GLOBAL_OFFSET_TABLE_+0xb58> 13ef6: 68 68 01 00 00 pushq $0x168 13efb: e9 60 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f00 <_Z18map_xattr_iter_addmPv@plt>: 13f00: ff 25 42 6c 21 00 jmpq *0x216c42(%rip) # 22ab48 <_GLOBAL_OFFSET_TABLE_+0xb60> 13f06: 68 69 01 00 00 pushq $0x169 13f0b: e9 50 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f10 <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi@plt>: 13f10: ff 25 3a 6c 21 00 jmpq *0x216c3a(%rip) # 22ab50 <_GLOBAL_OFFSET_TABLE_+0xb68> 13f16: 68 6a 01 00 00 pushq $0x16a 13f1b: e9 40 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f20 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EEC1Ev@plt>: 13f20: ff 25 32 6c 21 00 jmpq *0x216c32(%rip) # 22ab58 <_GLOBAL_OFFSET_TABLE_+0xb70> 13f26: 68 6b 01 00 00 pushq $0x16b 13f2b: e9 30 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f30 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt>: 13f30: ff 25 2a 6c 21 00 jmpq *0x216c2a(%rip) # 22ab60 <_GLOBAL_OFFSET_TABLE_+0xb78> 13f36: 68 6c 01 00 00 pushq $0x16c 13f3b: e9 20 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f40 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt>: 13f40: ff 25 22 6c 21 00 jmpq *0x216c22(%rip) # 22ab68 <_GLOBAL_OFFSET_TABLE_+0xb80> 13f46: 68 6d 01 00 00 pushq $0x16d 13f4b: e9 10 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f50 : 13f50: ff 25 1a 6c 21 00 jmpq *0x216c1a(%rip) # 22ab70 <_GLOBAL_OFFSET_TABLE_+0xb88> 13f56: 68 6e 01 00 00 pushq $0x16e 13f5b: e9 00 e9 ff ff jmpq 12860 <_init+0x20> 0000000000013f60 <_ZN6FSUtil5mkdirEPKcj@plt>: 13f60: ff 25 12 6c 21 00 jmpq *0x216c12(%rip) # 22ab78 <_GLOBAL_OFFSET_TABLE_+0xb90> 13f66: 68 6f 01 00 00 pushq $0x16f 13f6b: e9 f0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013f70 : 13f70: ff 25 0a 6c 21 00 jmpq *0x216c0a(%rip) # 22ab80 <_GLOBAL_OFFSET_TABLE_+0xb98> 13f76: 68 70 01 00 00 pushq $0x170 13f7b: e9 e0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013f80 : 13f80: ff 25 02 6c 21 00 jmpq *0x216c02(%rip) # 22ab88 <_GLOBAL_OFFSET_TABLE_+0xba0> 13f86: 68 71 01 00 00 pushq $0x171 13f8b: e9 d0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013f90 <_ZNSt4listIiSaIiEED1Ev@plt>: 13f90: ff 25 fa 6b 21 00 jmpq *0x216bfa(%rip) # 22ab90 <_GLOBAL_OFFSET_TABLE_+0xba8> 13f96: 68 72 01 00 00 pushq $0x172 13f9b: e9 c0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013fa0 : 13fa0: ff 25 f2 6b 21 00 jmpq *0x216bf2(%rip) # 22ab98 <_GLOBAL_OFFSET_TABLE_+0xbb0> 13fa6: 68 73 01 00 00 pushq $0x173 13fab: e9 b0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013fb0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 13fb0: ff 25 ea 6b 21 00 jmpq *0x216bea(%rip) # 22aba0 <_GLOBAL_OFFSET_TABLE_+0xbb8> 13fb6: 68 74 01 00 00 pushq $0x174 13fbb: e9 a0 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013fc0 <_ZNSaIcED1Ev@plt>: 13fc0: ff 25 e2 6b 21 00 jmpq *0x216be2(%rip) # 22aba8 <_GLOBAL_OFFSET_TABLE_+0xbc0> 13fc6: 68 75 01 00 00 pushq $0x175 13fcb: e9 90 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt>: 13fd0: ff 25 da 6b 21 00 jmpq *0x216bda(%rip) # 22abb0 <_GLOBAL_OFFSET_TABLE_+0xbc8> 13fd6: 68 76 01 00 00 pushq $0x176 13fdb: e9 80 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013fe0 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv@plt>: 13fe0: ff 25 d2 6b 21 00 jmpq *0x216bd2(%rip) # 22abb8 <_GLOBAL_OFFSET_TABLE_+0xbd0> 13fe6: 68 77 01 00 00 pushq $0x177 13feb: e9 70 e8 ff ff jmpq 12860 <_init+0x20> 0000000000013ff0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt>: 13ff0: ff 25 ca 6b 21 00 jmpq *0x216bca(%rip) # 22abc0 <_GLOBAL_OFFSET_TABLE_+0xbd8> 13ff6: 68 78 01 00 00 pushq $0x178 13ffb: e9 60 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014000 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt>: 14000: ff 25 c2 6b 21 00 jmpq *0x216bc2(%rip) # 22abc8 <_GLOBAL_OFFSET_TABLE_+0xbe0> 14006: 68 79 01 00 00 pushq $0x179 1400b: e9 50 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt>: 14010: ff 25 ba 6b 21 00 jmpq *0x216bba(%rip) # 22abd0 <_GLOBAL_OFFSET_TABLE_+0xbe8> 14016: 68 7a 01 00 00 pushq $0x17a 1401b: e9 40 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014020 <_ZN19XLogFileHandlerBaseD2Ev@plt>: 14020: ff 25 b2 6b 21 00 jmpq *0x216bb2(%rip) # 22abd8 <_GLOBAL_OFFSET_TABLE_+0xbf0> 14026: 68 7b 01 00 00 pushq $0x17b 1402b: e9 30 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014030 <_ZNSt4pairIKSsP4XLogEC1ERS0_RKS2_@plt>: 14030: ff 25 aa 6b 21 00 jmpq *0x216baa(%rip) # 22abe0 <_GLOBAL_OFFSET_TABLE_+0xbf8> 14036: 68 7c 01 00 00 pushq $0x17c 1403b: e9 20 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014040 : 14040: ff 25 a2 6b 21 00 jmpq *0x216ba2(%rip) # 22abe8 <_GLOBAL_OFFSET_TABLE_+0xc00> 14046: 68 7d 01 00 00 pushq $0x17d 1404b: e9 10 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014050 : 14050: ff 25 9a 6b 21 00 jmpq *0x216b9a(%rip) # 22abf0 <_GLOBAL_OFFSET_TABLE_+0xc08> 14056: 68 7e 01 00 00 pushq $0x17e 1405b: e9 00 e8 ff ff jmpq 12860 <_init+0x20> 0000000000014060 <_ZN17XLogSyslogHandler7openLogEv@plt>: 14060: ff 25 92 6b 21 00 jmpq *0x216b92(%rip) # 22abf8 <_GLOBAL_OFFSET_TABLE_+0xc10> 14066: 68 7f 01 00 00 pushq $0x17f 1406b: e9 f0 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014070 : 14070: ff 25 8a 6b 21 00 jmpq *0x216b8a(%rip) # 22ac00 <_GLOBAL_OFFSET_TABLE_+0xc18> 14076: 68 80 01 00 00 pushq $0x180 1407b: e9 e0 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014080 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt>: 14080: ff 25 82 6b 21 00 jmpq *0x216b82(%rip) # 22ac08 <_GLOBAL_OFFSET_TABLE_+0xc20> 14086: 68 81 01 00 00 pushq $0x181 1408b: e9 d0 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014090 : 14090: ff 25 7a 6b 21 00 jmpq *0x216b7a(%rip) # 22ac10 <_GLOBAL_OFFSET_TABLE_+0xc28> 14096: 68 82 01 00 00 pushq $0x182 1409b: e9 c0 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140a0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC2Ev@plt>: 140a0: ff 25 72 6b 21 00 jmpq *0x216b72(%rip) # 22ac18 <_GLOBAL_OFFSET_TABLE_+0xc30> 140a6: 68 83 01 00 00 pushq $0x183 140ab: e9 b0 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140b0 : 140b0: ff 25 6a 6b 21 00 jmpq *0x216b6a(%rip) # 22ac20 <_GLOBAL_OFFSET_TABLE_+0xc38> 140b6: 68 84 01 00 00 pushq $0x184 140bb: e9 a0 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140c0 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt>: 140c0: ff 25 62 6b 21 00 jmpq *0x216b62(%rip) # 22ac28 <_GLOBAL_OFFSET_TABLE_+0xc40> 140c6: 68 85 01 00 00 pushq $0x185 140cb: e9 90 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140d0 : 140d0: ff 25 5a 6b 21 00 jmpq *0x216b5a(%rip) # 22ac30 <_GLOBAL_OFFSET_TABLE_+0xc48> 140d6: 68 86 01 00 00 pushq $0x186 140db: e9 80 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140e0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE21_M_get_Node_allocatorEv@plt>: 140e0: ff 25 52 6b 21 00 jmpq *0x216b52(%rip) # 22ac38 <_GLOBAL_OFFSET_TABLE_+0xc50> 140e6: 68 87 01 00 00 pushq $0x187 140eb: e9 70 e7 ff ff jmpq 12860 <_init+0x20> 00000000000140f0 <_ZSt3maxImERKT_S2_S2_@plt>: 140f0: ff 25 4a 6b 21 00 jmpq *0x216b4a(%rip) # 22ac40 <_GLOBAL_OFFSET_TABLE_+0xc58> 140f6: 68 88 01 00 00 pushq $0x188 140fb: e9 60 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014100 <_ZN17XLogSyslogHandlerD1Ev@plt>: 14100: ff 25 42 6b 21 00 jmpq *0x216b42(%rip) # 22ac48 <_GLOBAL_OFFSET_TABLE_+0xc60> 14106: 68 89 01 00 00 pushq $0x189 1410b: e9 50 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014110 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE4findERKS1_@plt>: 14110: ff 25 3a 6b 21 00 jmpq *0x216b3a(%rip) # 22ac50 <_GLOBAL_OFFSET_TABLE_+0xc68> 14116: 68 8a 01 00 00 pushq $0x18a 1411b: e9 40 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014120 <_ZNSs6appendEPKc@plt>: 14120: ff 25 32 6b 21 00 jmpq *0x216b32(%rip) # 22ac58 <_GLOBAL_OFFSET_TABLE_+0xc70> 14126: 68 8b 01 00 00 pushq $0x18b 1412b: e9 30 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014130 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_@plt>: 14130: ff 25 2a 6b 21 00 jmpq *0x216b2a(%rip) # 22ac60 <_GLOBAL_OFFSET_TABLE_+0xc78> 14136: 68 8c 01 00 00 pushq $0x18c 1413b: e9 20 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014140 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev@plt>: 14140: ff 25 22 6b 21 00 jmpq *0x216b22(%rip) # 22ac68 <_GLOBAL_OFFSET_TABLE_+0xc80> 14146: 68 8d 01 00 00 pushq $0x18d 1414b: e9 10 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt>: 14150: ff 25 1a 6b 21 00 jmpq *0x216b1a(%rip) # 22ac70 <_GLOBAL_OFFSET_TABLE_+0xc88> 14156: 68 8e 01 00 00 pushq $0x18e 1415b: e9 00 e7 ff ff jmpq 12860 <_init+0x20> 0000000000014160 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt>: 14160: ff 25 12 6b 21 00 jmpq *0x216b12(%rip) # 22ac78 <_GLOBAL_OFFSET_TABLE_+0xc90> 14166: 68 8f 01 00 00 pushq $0x18f 1416b: e9 f0 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014170 : 14170: ff 25 0a 6b 21 00 jmpq *0x216b0a(%rip) # 22ac80 <_GLOBAL_OFFSET_TABLE_+0xc98> 14176: 68 90 01 00 00 pushq $0x190 1417b: e9 e0 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014180 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_@plt>: 14180: ff 25 02 6b 21 00 jmpq *0x216b02(%rip) # 22ac88 <_GLOBAL_OFFSET_TABLE_+0xca0> 14186: 68 91 01 00 00 pushq $0x191 1418b: e9 d0 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014190 : 14190: ff 25 fa 6a 21 00 jmpq *0x216afa(%rip) # 22ac90 <_GLOBAL_OFFSET_TABLE_+0xca8> 14196: 68 92 01 00 00 pushq $0x192 1419b: e9 c0 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141a0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt>: 141a0: ff 25 f2 6a 21 00 jmpq *0x216af2(%rip) # 22ac98 <_GLOBAL_OFFSET_TABLE_+0xcb0> 141a6: 68 93 01 00 00 pushq $0x193 141ab: e9 b0 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141b0 : 141b0: ff 25 ea 6a 21 00 jmpq *0x216aea(%rip) # 22aca0 <_GLOBAL_OFFSET_TABLE_+0xcb8> 141b6: 68 94 01 00 00 pushq $0x194 141bb: e9 a0 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_get_nodeEv@plt>: 141c0: ff 25 e2 6a 21 00 jmpq *0x216ae2(%rip) # 22aca8 <_GLOBAL_OFFSET_TABLE_+0xcc0> 141c6: 68 95 01 00 00 pushq $0x195 141cb: e9 90 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt>: 141d0: ff 25 da 6a 21 00 jmpq *0x216ada(%rip) # 22acb0 <_GLOBAL_OFFSET_TABLE_+0xcc8> 141d6: 68 96 01 00 00 pushq $0x196 141db: e9 80 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141e0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt>: 141e0: ff 25 d2 6a 21 00 jmpq *0x216ad2(%rip) # 22acb8 <_GLOBAL_OFFSET_TABLE_+0xcd0> 141e6: 68 97 01 00 00 pushq $0x197 141eb: e9 70 e6 ff ff jmpq 12860 <_init+0x20> 00000000000141f0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEE13_M_const_castEv@plt>: 141f0: ff 25 ca 6a 21 00 jmpq *0x216aca(%rip) # 22acc0 <_GLOBAL_OFFSET_TABLE_+0xcd8> 141f6: 68 98 01 00 00 pushq $0x198 141fb: e9 60 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014200 : 14200: ff 25 c2 6a 21 00 jmpq *0x216ac2(%rip) # 22acc8 <_GLOBAL_OFFSET_TABLE_+0xce0> 14206: 68 99 01 00 00 pushq $0x199 1420b: e9 50 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014210 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt>: 14210: ff 25 ba 6a 21 00 jmpq *0x216aba(%rip) # 22acd0 <_GLOBAL_OFFSET_TABLE_+0xce8> 14216: 68 9a 01 00 00 pushq $0x19a 1421b: e9 40 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014220 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt>: 14220: ff 25 b2 6a 21 00 jmpq *0x216ab2(%rip) # 22acd8 <_GLOBAL_OFFSET_TABLE_+0xcf0> 14226: 68 9b 01 00 00 pushq $0x19b 1422b: e9 30 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014230 : 14230: ff 25 aa 6a 21 00 jmpq *0x216aaa(%rip) # 22ace0 <_GLOBAL_OFFSET_TABLE_+0xcf8> 14236: 68 9c 01 00 00 pushq $0x19c 1423b: e9 20 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014240 : 14240: ff 25 a2 6a 21 00 jmpq *0x216aa2(%rip) # 22ace8 <_GLOBAL_OFFSET_TABLE_+0xd00> 14246: 68 9d 01 00 00 pushq $0x19d 1424b: e9 10 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014250 <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E@plt>: 14250: ff 25 9a 6a 21 00 jmpq *0x216a9a(%rip) # 22acf0 <_GLOBAL_OFFSET_TABLE_+0xd08> 14256: 68 9e 01 00 00 pushq $0x19e 1425b: e9 00 e6 ff ff jmpq 12860 <_init+0x20> 0000000000014260 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE11lower_boundERS5_@plt>: 14260: ff 25 92 6a 21 00 jmpq *0x216a92(%rip) # 22acf8 <_GLOBAL_OFFSET_TABLE_+0xd10> 14266: 68 9f 01 00 00 pushq $0x19f 1426b: e9 f0 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014270 <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev@plt>: 14270: ff 25 8a 6a 21 00 jmpq *0x216a8a(%rip) # 22ad00 <_GLOBAL_OFFSET_TABLE_+0xd18> 14276: 68 a0 01 00 00 pushq $0x1a0 1427b: e9 e0 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014280 <__cxa_end_catch@plt>: 14280: ff 25 82 6a 21 00 jmpq *0x216a82(%rip) # 22ad08 <_GLOBAL_OFFSET_TABLE_+0xd20> 14286: 68 a1 01 00 00 pushq $0x1a1 1428b: e9 d0 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014290 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv@plt>: 14290: ff 25 7a 6a 21 00 jmpq *0x216a7a(%rip) # 22ad10 <_GLOBAL_OFFSET_TABLE_+0xd28> 14296: 68 a2 01 00 00 pushq $0x1a2 1429b: e9 c0 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142a0 <_ZSt17__throw_bad_allocv@plt>: 142a0: ff 25 72 6a 21 00 jmpq *0x216a72(%rip) # 22ad18 <_GLOBAL_OFFSET_TABLE_+0xd30> 142a6: 68 a3 01 00 00 pushq $0x1a3 142ab: e9 b0 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142b0 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_@plt>: 142b0: ff 25 6a 6a 21 00 jmpq *0x216a6a(%rip) # 22ad20 <_GLOBAL_OFFSET_TABLE_+0xd38> 142b6: 68 a4 01 00 00 pushq $0x1a4 142bb: e9 a0 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142c0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEE13_M_const_castEv@plt>: 142c0: ff 25 62 6a 21 00 jmpq *0x216a62(%rip) # 22ad28 <_GLOBAL_OFFSET_TABLE_+0xd40> 142c6: 68 a5 01 00 00 pushq $0x1a5 142cb: e9 90 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev@plt>: 142d0: ff 25 5a 6a 21 00 jmpq *0x216a5a(%rip) # 22ad30 <_GLOBAL_OFFSET_TABLE_+0xd48> 142d6: 68 a6 01 00 00 pushq $0x1a6 142db: e9 80 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_get_nodeEv@plt>: 142e0: ff 25 52 6a 21 00 jmpq *0x216a52(%rip) # 22ad38 <_GLOBAL_OFFSET_TABLE_+0xd50> 142e6: 68 a7 01 00 00 pushq $0x1a7 142eb: e9 70 e5 ff ff jmpq 12860 <_init+0x20> 00000000000142f0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv@plt>: 142f0: ff 25 4a 6a 21 00 jmpq *0x216a4a(%rip) # 22ad40 <_GLOBAL_OFFSET_TABLE_+0xd58> 142f6: 68 a8 01 00 00 pushq $0x1a8 142fb: e9 60 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014300 <_ZNSt4pairIKmPvED1Ev@plt>: 14300: ff 25 42 6a 21 00 jmpq *0x216a42(%rip) # 22ad48 <_GLOBAL_OFFSET_TABLE_+0xd60> 14306: 68 a9 01 00 00 pushq $0x1a9 1430b: e9 50 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014310 <_ZN11XLogManager6getLogEPKc@plt>: 14310: ff 25 3a 6a 21 00 jmpq *0x216a3a(%rip) # 22ad50 <_GLOBAL_OFFSET_TABLE_+0xd68> 14316: 68 aa 01 00 00 pushq $0x1aa 1431b: e9 40 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt>: 14320: ff 25 32 6a 21 00 jmpq *0x216a32(%rip) # 22ad58 <_GLOBAL_OFFSET_TABLE_+0xd70> 14326: 68 ab 01 00 00 pushq $0x1ab 1432b: e9 30 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014330 <_ZNSt4pairISt23_Rb_tree_const_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt>: 14330: ff 25 2a 6a 21 00 jmpq *0x216a2a(%rip) # 22ad60 <_GLOBAL_OFFSET_TABLE_+0xd78> 14336: 68 ac 01 00 00 pushq $0x1ac 1433b: e9 20 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014340 : 14340: ff 25 22 6a 21 00 jmpq *0x216a22(%rip) # 22ad68 <_GLOBAL_OFFSET_TABLE_+0xd80> 14346: 68 ad 01 00 00 pushq $0x1ad 1434b: e9 10 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014350 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv@plt>: 14350: ff 25 1a 6a 21 00 jmpq *0x216a1a(%rip) # 22ad70 <_GLOBAL_OFFSET_TABLE_+0xd88> 14356: 68 ae 01 00 00 pushq $0x1ae 1435b: e9 00 e5 ff ff jmpq 12860 <_init+0x20> 0000000000014360 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE10deallocateEPS4_m@plt>: 14360: ff 25 12 6a 21 00 jmpq *0x216a12(%rip) # 22ad78 <_GLOBAL_OFFSET_TABLE_+0xd90> 14366: 68 af 01 00 00 pushq $0x1af 1436b: e9 f0 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014370 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_@plt>: 14370: ff 25 0a 6a 21 00 jmpq *0x216a0a(%rip) # 22ad80 <_GLOBAL_OFFSET_TABLE_+0xd98> 14376: 68 b0 01 00 00 pushq $0x1b0 1437b: e9 e0 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014380 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt>: 14380: ff 25 02 6a 21 00 jmpq *0x216a02(%rip) # 22ad88 <_GLOBAL_OFFSET_TABLE_+0xda0> 14386: 68 b1 01 00 00 pushq $0x1b1 1438b: e9 d0 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014390 : 14390: ff 25 fa 69 21 00 jmpq *0x2169fa(%rip) # 22ad90 <_GLOBAL_OFFSET_TABLE_+0xda8> 14396: 68 b2 01 00 00 pushq $0x1b2 1439b: e9 c0 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143a0 <__cxa_guard_abort@plt>: 143a0: ff 25 f2 69 21 00 jmpq *0x2169f2(%rip) # 22ad98 <_GLOBAL_OFFSET_TABLE_+0xdb0> 143a6: 68 b3 01 00 00 pushq $0x1b3 143ab: e9 b0 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143b0 <_Z21map_xattr_iter_removem@plt>: 143b0: ff 25 ea 69 21 00 jmpq *0x2169ea(%rip) # 22ada0 <_GLOBAL_OFFSET_TABLE_+0xdb8> 143b6: 68 b4 01 00 00 pushq $0x1b4 143bb: e9 a0 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143c0 <__cxa_begin_catch@plt>: 143c0: ff 25 e2 69 21 00 jmpq *0x2169e2(%rip) # 22ada8 <_GLOBAL_OFFSET_TABLE_+0xdc0> 143c6: 68 b5 01 00 00 pushq $0x1b5 143cb: e9 90 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143d0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt>: 143d0: ff 25 da 69 21 00 jmpq *0x2169da(%rip) # 22adb0 <_GLOBAL_OFFSET_TABLE_+0xdc8> 143d6: 68 b6 01 00 00 pushq $0x1b6 143db: e9 80 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143e0 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_@plt>: 143e0: ff 25 d2 69 21 00 jmpq *0x2169d2(%rip) # 22adb8 <_GLOBAL_OFFSET_TABLE_+0xdd0> 143e6: 68 b7 01 00 00 pushq $0x1b7 143eb: e9 70 e4 ff ff jmpq 12860 <_init+0x20> 00000000000143f0 : 143f0: ff 25 ca 69 21 00 jmpq *0x2169ca(%rip) # 22adc0 <_GLOBAL_OFFSET_TABLE_+0xdd8> 143f6: 68 b8 01 00 00 pushq $0x1b8 143fb: e9 60 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014400 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt>: 14400: ff 25 c2 69 21 00 jmpq *0x2169c2(%rip) # 22adc8 <_GLOBAL_OFFSET_TABLE_+0xde0> 14406: 68 b9 01 00 00 pushq $0x1b9 1440b: e9 50 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014410 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt23_Rb_tree_const_iteratorIS3_E@plt>: 14410: ff 25 ba 69 21 00 jmpq *0x2169ba(%rip) # 22add0 <_GLOBAL_OFFSET_TABLE_+0xde8> 14416: 68 ba 01 00 00 pushq $0x1ba 1441b: e9 40 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014420 <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi@plt>: 14420: ff 25 b2 69 21 00 jmpq *0x2169b2(%rip) # 22add8 <_GLOBAL_OFFSET_TABLE_+0xdf0> 14426: 68 bb 01 00 00 pushq $0x1bb 1442b: e9 30 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014430 <_ZNSaIcEC1Ev@plt>: 14430: ff 25 aa 69 21 00 jmpq *0x2169aa(%rip) # 22ade0 <_GLOBAL_OFFSET_TABLE_+0xdf8> 14436: 68 bc 01 00 00 pushq $0x1bc 1443b: e9 20 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014440 <_ZdlPvS_@plt>: 14440: ff 25 a2 69 21 00 jmpq *0x2169a2(%rip) # 22ade8 <_GLOBAL_OFFSET_TABLE_+0xe00> 14446: 68 bd 01 00 00 pushq $0x1bd 1444b: e9 10 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014450 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE@plt>: 14450: ff 25 9a 69 21 00 jmpq *0x21699a(%rip) # 22adf0 <_GLOBAL_OFFSET_TABLE_+0xe08> 14456: 68 be 01 00 00 pushq $0x1be 1445b: e9 00 e4 ff ff jmpq 12860 <_init+0x20> 0000000000014460 <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E@plt>: 14460: ff 25 92 69 21 00 jmpq *0x216992(%rip) # 22adf8 <_GLOBAL_OFFSET_TABLE_+0xe10> 14466: 68 bf 01 00 00 pushq $0x1bf 1446b: e9 f0 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014470 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE11lower_boundERS4_@plt>: 14470: ff 25 8a 69 21 00 jmpq *0x21698a(%rip) # 22ae00 <_GLOBAL_OFFSET_TABLE_+0xe18> 14476: 68 c0 01 00 00 pushq $0x1c0 1447b: e9 e0 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014480 : 14480: ff 25 82 69 21 00 jmpq *0x216982(%rip) # 22ae08 <_GLOBAL_OFFSET_TABLE_+0xe20> 14486: 68 c1 01 00 00 pushq $0x1c1 1448b: e9 d0 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014490 : 14490: ff 25 7a 69 21 00 jmpq *0x21697a(%rip) # 22ae10 <_GLOBAL_OFFSET_TABLE_+0xe28> 14496: 68 c2 01 00 00 pushq $0x1c2 1449b: e9 c0 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144a0 : 144a0: ff 25 72 69 21 00 jmpq *0x216972(%rip) # 22ae18 <_GLOBAL_OFFSET_TABLE_+0xe30> 144a6: 68 c3 01 00 00 pushq $0x1c3 144ab: e9 b0 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144b0 : 144b0: ff 25 6a 69 21 00 jmpq *0x21696a(%rip) # 22ae20 <_GLOBAL_OFFSET_TABLE_+0xe38> 144b6: 68 c4 01 00 00 pushq $0x1c4 144bb: e9 a0 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt>: 144c0: ff 25 62 69 21 00 jmpq *0x216962(%rip) # 22ae28 <_GLOBAL_OFFSET_TABLE_+0xe40> 144c6: 68 c5 01 00 00 pushq $0x1c5 144cb: e9 90 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144d0 <_ZNSaIiED1Ev@plt>: 144d0: ff 25 5a 69 21 00 jmpq *0x21695a(%rip) # 22ae30 <_GLOBAL_OFFSET_TABLE_+0xe48> 144d6: 68 c6 01 00 00 pushq $0x1c6 144db: e9 80 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 144e0: ff 25 52 69 21 00 jmpq *0x216952(%rip) # 22ae38 <_GLOBAL_OFFSET_TABLE_+0xe50> 144e6: 68 c7 01 00 00 pushq $0x1c7 144eb: e9 70 e3 ff ff jmpq 12860 <_init+0x20> 00000000000144f0 : 144f0: ff 25 4a 69 21 00 jmpq *0x21694a(%rip) # 22ae40 <_GLOBAL_OFFSET_TABLE_+0xe58> 144f6: 68 c8 01 00 00 pushq $0x1c8 144fb: e9 60 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014500 <_Z16map_ioctx_removem@plt>: 14500: ff 25 42 69 21 00 jmpq *0x216942(%rip) # 22ae48 <_GLOBAL_OFFSET_TABLE_+0xe60> 14506: 68 c9 01 00 00 pushq $0x1c9 1450b: e9 50 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014510 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_@plt>: 14510: ff 25 3a 69 21 00 jmpq *0x21693a(%rip) # 22ae50 <_GLOBAL_OFFSET_TABLE_+0xe68> 14516: 68 ca 01 00 00 pushq $0x1ca 1451b: e9 40 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014520 : 14520: ff 25 32 69 21 00 jmpq *0x216932(%rip) # 22ae58 <_GLOBAL_OFFSET_TABLE_+0xe70> 14526: 68 cb 01 00 00 pushq $0x1cb 1452b: e9 30 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014530 : 14530: ff 25 2a 69 21 00 jmpq *0x21692a(%rip) # 22ae60 <_GLOBAL_OFFSET_TABLE_+0xe78> 14536: 68 cc 01 00 00 pushq $0x1cc 1453b: e9 20 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014540 <_ZN11XLogHandler11getLevelStrERKi@plt>: 14540: ff 25 22 69 21 00 jmpq *0x216922(%rip) # 22ae68 <_GLOBAL_OFFSET_TABLE_+0xe80> 14546: 68 cd 01 00 00 pushq $0x1cd 1454b: e9 10 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014550 <_ZN6XMutex6unlockEv@plt>: 14550: ff 25 1a 69 21 00 jmpq *0x21691a(%rip) # 22ae70 <_GLOBAL_OFFSET_TABLE_+0xe88> 14556: 68 ce 01 00 00 pushq $0x1ce 1455b: e9 00 e3 ff ff jmpq 12860 <_init+0x20> 0000000000014560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt>: 14560: ff 25 12 69 21 00 jmpq *0x216912(%rip) # 22ae78 <_GLOBAL_OFFSET_TABLE_+0xe90> 14566: 68 cf 01 00 00 pushq $0x1cf 1456b: e9 f0 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014570 <_Znwm@plt>: 14570: ff 25 0a 69 21 00 jmpq *0x21690a(%rip) # 22ae80 <_GLOBAL_OFFSET_TABLE_+0xe98> 14576: 68 d0 01 00 00 pushq $0x1d0 1457b: e9 e0 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014580 <_Unwind_Resume@plt>: 14580: ff 25 02 69 21 00 jmpq *0x216902(%rip) # 22ae88 <_GLOBAL_OFFSET_TABLE_+0xea0> 14586: 68 d1 01 00 00 pushq $0x1d1 1458b: e9 d0 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt>: 14590: ff 25 fa 68 21 00 jmpq *0x2168fa(%rip) # 22ae90 <_GLOBAL_OFFSET_TABLE_+0xea8> 14596: 68 d2 01 00 00 pushq $0x1d2 1459b: e9 c0 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_@plt>: 145a0: ff 25 f2 68 21 00 jmpq *0x2168f2(%rip) # 22ae98 <_GLOBAL_OFFSET_TABLE_+0xeb0> 145a6: 68 d3 01 00 00 pushq $0x1d3 145ab: e9 b0 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145b0 <_ZNSt10_List_baseIiSaIiEED2Ev@plt>: 145b0: ff 25 ea 68 21 00 jmpq *0x2168ea(%rip) # 22aea0 <_GLOBAL_OFFSET_TABLE_+0xeb8> 145b6: 68 d4 01 00 00 pushq $0x1d4 145bb: e9 a0 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145c0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt>: 145c0: ff 25 e2 68 21 00 jmpq *0x2168e2(%rip) # 22aea8 <_GLOBAL_OFFSET_TABLE_+0xec0> 145c6: 68 d5 01 00 00 pushq $0x1d5 145cb: e9 90 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145d0 <_ZNSaISt10_List_nodeIiEED2Ev@plt>: 145d0: ff 25 da 68 21 00 jmpq *0x2168da(%rip) # 22aeb0 <_GLOBAL_OFFSET_TABLE_+0xec8> 145d6: 68 d6 01 00 00 pushq $0x1d6 145db: e9 80 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145e0 <_ZN15XLogFileHandlerC1EPKc@plt>: 145e0: ff 25 d2 68 21 00 jmpq *0x2168d2(%rip) # 22aeb8 <_GLOBAL_OFFSET_TABLE_+0xed0> 145e6: 68 d7 01 00 00 pushq $0x1d7 145eb: e9 70 e2 ff ff jmpq 12860 <_init+0x20> 00000000000145f0 : 145f0: ff 25 ca 68 21 00 jmpq *0x2168ca(%rip) # 22aec0 <_GLOBAL_OFFSET_TABLE_+0xed8> 145f6: 68 d8 01 00 00 pushq $0x1d8 145fb: e9 60 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014600 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv@plt>: 14600: ff 25 c2 68 21 00 jmpq *0x2168c2(%rip) # 22aec8 <_GLOBAL_OFFSET_TABLE_+0xee0> 14606: 68 d9 01 00 00 pushq $0x1d9 1460b: e9 50 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014610 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt>: 14610: ff 25 ba 68 21 00 jmpq *0x2168ba(%rip) # 22aed0 <_GLOBAL_OFFSET_TABLE_+0xee8> 14616: 68 da 01 00 00 pushq $0x1da 1461b: e9 40 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014620 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 14620: ff 25 b2 68 21 00 jmpq *0x2168b2(%rip) # 22aed8 <_GLOBAL_OFFSET_TABLE_+0xef0> 14626: 68 db 01 00 00 pushq $0x1db 1462b: e9 30 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014630 : 14630: ff 25 aa 68 21 00 jmpq *0x2168aa(%rip) # 22aee0 <_GLOBAL_OFFSET_TABLE_+0xef8> 14636: 68 dc 01 00 00 pushq $0x1dc 1463b: e9 20 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014640 <_ZNSaISt10_List_nodeIiEEC2Ev@plt>: 14640: ff 25 a2 68 21 00 jmpq *0x2168a2(%rip) # 22aee8 <_GLOBAL_OFFSET_TABLE_+0xf00> 14646: 68 dd 01 00 00 pushq $0x1dd 1464b: e9 10 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014650 <_ZNSt12_Vector_baseISsSaISsEEC2Ev@plt>: 14650: ff 25 9a 68 21 00 jmpq *0x21689a(%rip) # 22aef0 <_GLOBAL_OFFSET_TABLE_+0xf08> 14656: 68 de 01 00 00 pushq $0x1de 1465b: e9 00 e2 ff ff jmpq 12860 <_init+0x20> 0000000000014660 <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E@plt>: 14660: ff 25 92 68 21 00 jmpq *0x216892(%rip) # 22aef8 <_GLOBAL_OFFSET_TABLE_+0xf10> 14666: 68 df 01 00 00 pushq $0x1df 1466b: e9 f0 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014670 <_Z15map_cluster_addmPv@plt>: 14670: ff 25 8a 68 21 00 jmpq *0x21688a(%rip) # 22af00 <_GLOBAL_OFFSET_TABLE_+0xf18> 14676: 68 e0 01 00 00 pushq $0x1e0 1467b: e9 e0 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014680 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt>: 14680: ff 25 82 68 21 00 jmpq *0x216882(%rip) # 22af08 <_GLOBAL_OFFSET_TABLE_+0xf20> 14686: 68 e1 01 00 00 pushq $0x1e1 1468b: e9 d0 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014690 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv@plt>: 14690: ff 25 7a 68 21 00 jmpq *0x21687a(%rip) # 22af10 <_GLOBAL_OFFSET_TABLE_+0xf28> 14696: 68 e2 01 00 00 pushq $0x1e2 1469b: e9 c0 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146a0 <_ZNSsaSERKSs@plt>: 146a0: ff 25 72 68 21 00 jmpq *0x216872(%rip) # 22af18 <_GLOBAL_OFFSET_TABLE_+0xf30> 146a6: 68 e3 01 00 00 pushq $0x1e3 146ab: e9 b0 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146b0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_@plt>: 146b0: ff 25 6a 68 21 00 jmpq *0x21686a(%rip) # 22af20 <_GLOBAL_OFFSET_TABLE_+0xf38> 146b6: 68 e4 01 00 00 pushq $0x1e4 146bb: e9 a0 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146c0 : 146c0: ff 25 62 68 21 00 jmpq *0x216862(%rip) # 22af28 <_GLOBAL_OFFSET_TABLE_+0xf40> 146c6: 68 e5 01 00 00 pushq $0x1e5 146cb: e9 90 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146d0 <_ZN9__gnu_cxx13new_allocatorISsEC2Ev@plt>: 146d0: ff 25 5a 68 21 00 jmpq *0x21685a(%rip) # 22af30 <_GLOBAL_OFFSET_TABLE_+0xf48> 146d6: 68 e6 01 00 00 pushq $0x1e6 146db: e9 80 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146e0 <_ZNSt4listIiSaIiEE14_M_create_nodeERKi@plt>: 146e0: ff 25 52 68 21 00 jmpq *0x216852(%rip) # 22af38 <_GLOBAL_OFFSET_TABLE_+0xf50> 146e6: 68 e7 01 00 00 pushq $0x1e7 146eb: e9 70 e1 ff ff jmpq 12860 <_init+0x20> 00000000000146f0 <_ZSt8_DestroyIPSsEvT_S1_@plt>: 146f0: ff 25 4a 68 21 00 jmpq *0x21684a(%rip) # 22af40 <_GLOBAL_OFFSET_TABLE_+0xf58> 146f6: 68 e8 01 00 00 pushq $0x1e8 146fb: e9 60 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014700 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt>: 14700: ff 25 42 68 21 00 jmpq *0x216842(%rip) # 22af48 <_GLOBAL_OFFSET_TABLE_+0xf60> 14706: 68 e9 01 00 00 pushq $0x1e9 1470b: e9 50 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014710 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt>: 14710: ff 25 3a 68 21 00 jmpq *0x21683a(%rip) # 22af50 <_GLOBAL_OFFSET_TABLE_+0xf68> 14716: 68 ea 01 00 00 pushq $0x1ea 1471b: e9 40 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 14720: ff 25 32 68 21 00 jmpq *0x216832(%rip) # 22af58 <_GLOBAL_OFFSET_TABLE_+0xf70> 14726: 68 eb 01 00 00 pushq $0x1eb 1472b: e9 30 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014730 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv@plt>: 14730: ff 25 2a 68 21 00 jmpq *0x21682a(%rip) # 22af60 <_GLOBAL_OFFSET_TABLE_+0xf78> 14736: 68 ec 01 00 00 pushq $0x1ec 1473b: e9 20 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014740 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS5_@plt>: 14740: ff 25 22 68 21 00 jmpq *0x216822(%rip) # 22af68 <_GLOBAL_OFFSET_TABLE_+0xf80> 14746: 68 ed 01 00 00 pushq $0x1ed 1474b: e9 10 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014750 : 14750: ff 25 1a 68 21 00 jmpq *0x21681a(%rip) # 22af70 <_GLOBAL_OFFSET_TABLE_+0xf88> 14756: 68 ee 01 00 00 pushq $0x1ee 1475b: e9 00 e1 ff ff jmpq 12860 <_init+0x20> 0000000000014760 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC2Ev@plt>: 14760: ff 25 12 68 21 00 jmpq *0x216812(%rip) # 22af78 <_GLOBAL_OFFSET_TABLE_+0xf90> 14766: 68 ef 01 00 00 pushq $0x1ef 1476b: e9 f0 e0 ff ff jmpq 12860 <_init+0x20> 0000000000014770 : 14770: ff 25 0a 68 21 00 jmpq *0x21680a(%rip) # 22af80 <_GLOBAL_OFFSET_TABLE_+0xf98> 14776: 68 f0 01 00 00 pushq $0x1f0 1477b: e9 e0 e0 ff ff jmpq 12860 <_init+0x20> 0000000000014780 <_ZN9__gnu_cxx13new_allocatorIiEC2Ev@plt>: 14780: ff 25 02 68 21 00 jmpq *0x216802(%rip) # 22af88 <_GLOBAL_OFFSET_TABLE_+0xfa0> 14786: 68 f1 01 00 00 pushq $0x1f1 1478b: e9 d0 e0 ff ff jmpq 12860 <_init+0x20> 0000000000014790 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt>: 14790: ff 25 fa 67 21 00 jmpq *0x2167fa(%rip) # 22af90 <_GLOBAL_OFFSET_TABLE_+0xfa8> 14796: 68 f2 01 00 00 pushq $0x1f2 1479b: e9 c0 e0 ff ff jmpq 12860 <_init+0x20> Disassembly of section .text: 00000000000147a0 : 147a0: 48 83 ec 08 sub $0x8,%rsp 147a4: 48 8b 05 85 57 21 00 mov 0x215785(%rip),%rax # 229f30 <_DYNAMIC+0x1e0> 147ab: 48 85 c0 test %rax,%rax 147ae: 74 02 je 147b2 147b0: ff d0 callq *%rax 147b2: 48 83 c4 08 add $0x8,%rsp 147b6: c3 retq 147b7: 90 nop 147b8: 90 nop 147b9: 90 nop 147ba: 90 nop 147bb: 90 nop 147bc: 90 nop 147bd: 90 nop 147be: 90 nop 147bf: 90 nop 00000000000147c0 <__do_global_dtors_aux>: 147c0: 55 push %rbp 147c1: 80 3d 78 6d 21 00 00 cmpb $0x0,0x216d78(%rip) # 22b540 147c8: 48 89 e5 mov %rsp,%rbp 147cb: 41 54 push %r12 147cd: 53 push %rbx 147ce: 75 62 jne 14832 <__do_global_dtors_aux+0x72> 147d0: 48 83 3d 88 57 21 00 cmpq $0x0,0x215788(%rip) # 229f60 <_DYNAMIC+0x210> 147d7: 00 147d8: 74 0c je 147e6 <__do_global_dtors_aux+0x26> 147da: 48 8b 3d bf 67 21 00 mov 0x2167bf(%rip),%rdi # 22afa0 <__dso_handle> 147e1: e8 3a ee ff ff callq 13620 <__cxa_finalize@plt> 147e6: 48 8d 1d f3 52 21 00 lea 0x2152f3(%rip),%rbx # 229ae0 <__DTOR_END__> 147ed: 4c 8d 25 e4 52 21 00 lea 0x2152e4(%rip),%r12 # 229ad8 <__DTOR_LIST__> 147f4: 48 8b 05 4d 6d 21 00 mov 0x216d4d(%rip),%rax # 22b548 147fb: 4c 29 e3 sub %r12,%rbx 147fe: 48 c1 fb 03 sar $0x3,%rbx 14802: 48 83 eb 01 sub $0x1,%rbx 14806: 48 39 d8 cmp %rbx,%rax 14809: 73 20 jae 1482b <__do_global_dtors_aux+0x6b> 1480b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 14810: 48 83 c0 01 add $0x1,%rax 14814: 48 89 05 2d 6d 21 00 mov %rax,0x216d2d(%rip) # 22b548 1481b: 41 ff 14 c4 callq *(%r12,%rax,8) 1481f: 48 8b 05 22 6d 21 00 mov 0x216d22(%rip),%rax # 22b548 14826: 48 39 d8 cmp %rbx,%rax 14829: 72 e5 jb 14810 <__do_global_dtors_aux+0x50> 1482b: c6 05 0e 6d 21 00 01 movb $0x1,0x216d0e(%rip) # 22b540 14832: 5b pop %rbx 14833: 41 5c pop %r12 14835: 5d pop %rbp 14836: c3 retq 14837: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 1483e: 00 00 0000000000014840 : 14840: 48 83 3d a0 52 21 00 cmpq $0x0,0x2152a0(%rip) # 229ae8 <__JCR_END__> 14847: 00 14848: 55 push %rbp 14849: 48 89 e5 mov %rsp,%rbp 1484c: 74 1a je 14868 1484e: 48 8b 05 e3 56 21 00 mov 0x2156e3(%rip),%rax # 229f38 <_DYNAMIC+0x1e8> 14855: 48 85 c0 test %rax,%rax 14858: 74 0e je 14868 1485a: 5d pop %rbp 1485b: 48 8d 3d 86 52 21 00 lea 0x215286(%rip),%rdi # 229ae8 <__JCR_END__> 14862: ff e0 jmpq *%rax 14864: 0f 1f 40 00 nopl 0x0(%rax) 14868: 5d pop %rbp 14869: c3 retq 1486a: 90 nop 1486b: 90 nop 000000000001486c <_Z4loadP18enif_environment_tPPvm>: static XMutex id_mutex; XLog logger = XLogManager::instance().getLog("RadosLog"); int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) { 1486c: 55 push %rbp 1486d: 48 89 e5 mov %rsp,%rbp 14870: 48 83 ec 30 sub $0x30,%rsp 14874: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14878: 48 89 75 e0 mov %rsi,-0x20(%rbp) 1487c: 48 89 55 d8 mov %rdx,-0x28(%rbp) ErlNifResourceType * rt = enif_open_resource_type( env, NULL, "cluster_type_resource", dtor_cluster_type, ERL_NIF_RT_CREATE, NULL); 14880: 48 8b 45 e8 mov -0x18(%rbp),%rax 14884: 41 b9 00 00 00 00 mov $0x0,%r9d 1488a: 41 b8 01 00 00 00 mov $0x1,%r8d 14890: 48 8d 0d cb 00 00 00 lea 0xcb(%rip),%rcx # 14962 <_ZL17dtor_cluster_typeP18enif_environment_tPv> 14897: 48 8d 15 02 e7 00 00 lea 0xe702(%rip),%rdx # 22fa0 <_fini+0x18> 1489e: be 00 00 00 00 mov $0x0,%esi 148a3: 48 89 c7 mov %rax,%rdi 148a6: e8 e5 f0 ff ff callq 13990 148ab: 48 89 45 f8 mov %rax,-0x8(%rbp) if (rt == NULL) 148af: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 148b4: 75 07 jne 148bd <_Z4loadP18enif_environment_tPPvm+0x51> return -1; 148b6: b8 ff ff ff ff mov $0xffffffff,%eax 148bb: eb 63 jmp 14920 <_Z4loadP18enif_environment_tPPvm+0xb4> cluster_type_resource = rt; 148bd: 48 8b 45 f8 mov -0x8(%rbp),%rax 148c1: 48 89 05 d8 6d 21 00 mov %rax,0x216dd8(%rip) # 22b6a0 <_ZL21cluster_type_resource> rt = enif_open_resource_type( env, NULL, "ioctx_type_resource", dtor_ioctx_type, ERL_NIF_RT_CREATE, NULL); 148c8: 48 8b 45 e8 mov -0x18(%rbp),%rax 148cc: 41 b9 00 00 00 00 mov $0x0,%r9d 148d2: 41 b8 01 00 00 00 mov $0x1,%r8d 148d8: 48 8d 0d 91 00 00 00 lea 0x91(%rip),%rcx # 14970 <_ZL15dtor_ioctx_typeP18enif_environment_tPv> 148df: 48 8d 15 d0 e6 00 00 lea 0xe6d0(%rip),%rdx # 22fb6 <_fini+0x2e> 148e6: be 00 00 00 00 mov $0x0,%esi 148eb: 48 89 c7 mov %rax,%rdi 148ee: e8 9d f0 ff ff callq 13990 148f3: 48 89 45 f8 mov %rax,-0x8(%rbp) if (rt == NULL) 148f7: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 148fc: 75 07 jne 14905 <_Z4loadP18enif_environment_tPPvm+0x99> return -1; 148fe: b8 ff ff ff ff mov $0xffffffff,%eax 14903: eb 1b jmp 14920 <_Z4loadP18enif_environment_tPPvm+0xb4> ioctx_type_resource = rt; 14905: 48 8b 45 f8 mov -0x8(%rbp),%rax 14909: 48 89 05 98 6d 21 00 mov %rax,0x216d98(%rip) # 22b6a8 <_ZL19ioctx_type_resource> id_index = 0; 14910: 48 c7 05 8d 6e 21 00 movq $0x0,0x216e8d(%rip) # 22b7a8 <_ZL8id_index> 14917: 00 00 00 00 return 0; 1491b: b8 00 00 00 00 mov $0x0,%eax } 14920: c9 leaveq 14921: c3 retq 0000000000014922 <_ZL6reloadP18enif_environment_tPPvm>: static int reload(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) { 14922: 55 push %rbp 14923: 48 89 e5 mov %rsp,%rbp 14926: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1492a: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1492e: 48 89 55 e8 mov %rdx,-0x18(%rbp) return 0; 14932: b8 00 00 00 00 mov $0x0,%eax } 14937: 5d pop %rbp 14938: c3 retq 0000000000014939 <_ZL7upgradeP18enif_environment_tPPvS2_m>: static int upgrade(ErlNifEnv* env, void** priv, void** old_priv, ERL_NIF_TERM load_info) { 14939: 55 push %rbp 1493a: 48 89 e5 mov %rsp,%rbp 1493d: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14941: 48 89 75 f0 mov %rsi,-0x10(%rbp) 14945: 48 89 55 e8 mov %rdx,-0x18(%rbp) 14949: 48 89 4d e0 mov %rcx,-0x20(%rbp) return 0; 1494d: b8 00 00 00 00 mov $0x0,%eax } 14952: 5d pop %rbp 14953: c3 retq 0000000000014954 <_ZL6unloadP18enif_environment_tPv>: static void unload(ErlNifEnv* env, void* priv) { 14954: 55 push %rbp 14955: 48 89 e5 mov %rsp,%rbp 14958: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1495c: 48 89 75 f0 mov %rsi,-0x10(%rbp) return; } 14960: 5d pop %rbp 14961: c3 retq 0000000000014962 <_ZL17dtor_cluster_typeP18enif_environment_tPv>: static void dtor_cluster_type(ErlNifEnv* env, void* obj) { 14962: 55 push %rbp 14963: 48 89 e5 mov %rsp,%rbp 14966: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1496a: 48 89 75 f0 mov %rsi,-0x10(%rbp) } 1496e: 5d pop %rbp 1496f: c3 retq 0000000000014970 <_ZL15dtor_ioctx_typeP18enif_environment_tPv>: static void dtor_ioctx_type(ErlNifEnv* env, void* obj) { 14970: 55 push %rbp 14971: 48 89 e5 mov %rsp,%rbp 14974: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14978: 48 89 75 f0 mov %rsi,-0x10(%rbp) } 1497c: 5d pop %rbp 1497d: c3 retq 000000000001497e <_Z6new_idv>: /** * Generate a new ID */ uint64_t new_id() { 1497e: 55 push %rbp 1497f: 48 89 e5 mov %rsp,%rbp id_mutex.lock(); 14982: 48 8d 3d 37 6e 21 00 lea 0x216e37(%rip),%rdi # 22b7c0 <_ZL8id_mutex> 14989: e8 42 e3 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> if (id_index == _UINT64_MAX) 1498e: 48 8b 05 13 6e 21 00 mov 0x216e13(%rip),%rax # 22b7a8 <_ZL8id_index> 14995: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 14999: 75 0b jne 149a6 <_Z6new_idv+0x28> id_index = 0; 1499b: 48 c7 05 02 6e 21 00 movq $0x0,0x216e02(%rip) # 22b7a8 <_ZL8id_index> 149a2: 00 00 00 00 id_index++; 149a6: 48 8b 05 fb 6d 21 00 mov 0x216dfb(%rip),%rax # 22b7a8 <_ZL8id_index> 149ad: 48 83 c0 01 add $0x1,%rax 149b1: 48 89 05 f0 6d 21 00 mov %rax,0x216df0(%rip) # 22b7a8 <_ZL8id_index> id_mutex.unlock(); 149b8: 48 8d 3d 01 6e 21 00 lea 0x216e01(%rip),%rdi # 22b7c0 <_ZL8id_mutex> 149bf: e8 8c fb ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return id_index; 149c4: 48 8b 05 dd 6d 21 00 mov 0x216ddd(%rip),%rax # 22b7a8 <_ZL8id_index> } 149cb: 5d pop %rbp 149cc: c3 retq 00000000000149cd <_Z15map_cluster_addmPv>: /* * Cluster handles map manipulation functions */ void map_cluster_add(uint64_t id, rados_t cluster) { 149cd: 55 push %rbp 149ce: 48 89 e5 mov %rsp,%rbp 149d1: 48 83 ec 10 sub $0x10,%rsp 149d5: 48 89 7d f8 mov %rdi,-0x8(%rbp) 149d9: 48 89 75 f0 mov %rsi,-0x10(%rbp) map_cluster_mutex.lock(); 149dd: 48 8d 3d dc 6c 21 00 lea 0x216cdc(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 149e4: e8 e7 e2 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> map_cluster[id] = cluster; 149e9: 48 8d 45 f8 lea -0x8(%rbp),%rax 149ed: 48 89 c6 mov %rax,%rsi 149f0: 48 8b 05 c1 55 21 00 mov 0x2155c1(%rip),%rax # 229fb8 <_DYNAMIC+0x268> 149f7: 48 89 c7 mov %rax,%rdi 149fa: e8 a1 ef ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 149ff: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14a03: 48 89 10 mov %rdx,(%rax) map_cluster_mutex.unlock(); 14a06: 48 8d 3d b3 6c 21 00 lea 0x216cb3(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 14a0d: e8 3e fb ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } 14a12: c9 leaveq 14a13: c3 retq 0000000000014a14 <_Z15map_cluster_getm>: rados_t map_cluster_get(uint64_t id) { 14a14: 55 push %rbp 14a15: 48 89 e5 mov %rsp,%rbp 14a18: 48 83 ec 20 sub $0x20,%rsp 14a1c: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_t cluster; map_cluster_mutex.lock(); 14a20: 48 8d 3d 99 6c 21 00 lea 0x216c99(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 14a27: e8 a4 e2 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> cluster = map_cluster[id]; 14a2c: 48 8d 45 e8 lea -0x18(%rbp),%rax 14a30: 48 89 c6 mov %rax,%rsi 14a33: 48 8b 05 7e 55 21 00 mov 0x21557e(%rip),%rax # 229fb8 <_DYNAMIC+0x268> 14a3a: 48 89 c7 mov %rax,%rdi 14a3d: e8 5e ef ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14a42: 48 8b 00 mov (%rax),%rax 14a45: 48 89 45 f8 mov %rax,-0x8(%rbp) map_cluster_mutex.unlock(); 14a49: 48 8d 3d 70 6c 21 00 lea 0x216c70(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 14a50: e8 fb fa ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return cluster; 14a55: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14a59: c9 leaveq 14a5a: c3 retq 0000000000014a5b <_Z18map_cluster_removem>: rados_t map_cluster_remove(uint64_t id) { 14a5b: 55 push %rbp 14a5c: 48 89 e5 mov %rsp,%rbp 14a5f: 48 83 ec 20 sub $0x20,%rsp 14a63: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_t cluster; map_cluster_mutex.lock(); 14a67: 48 8d 3d 52 6c 21 00 lea 0x216c52(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 14a6e: e8 5d e2 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> cluster = map_cluster[id]; 14a73: 48 8d 45 e8 lea -0x18(%rbp),%rax 14a77: 48 89 c6 mov %rax,%rsi 14a7a: 48 8b 05 37 55 21 00 mov 0x215537(%rip),%rax # 229fb8 <_DYNAMIC+0x268> 14a81: 48 89 c7 mov %rax,%rdi 14a84: e8 17 ef ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14a89: 48 8b 00 mov (%rax),%rax 14a8c: 48 89 45 f8 mov %rax,-0x8(%rbp) map_cluster.erase(id); 14a90: 48 8d 45 e8 lea -0x18(%rbp),%rax 14a94: 48 89 c6 mov %rax,%rsi 14a97: 48 8b 05 1a 55 21 00 mov 0x21551a(%rip),%rax # 229fb8 <_DYNAMIC+0x268> 14a9e: 48 89 c7 mov %rax,%rdi 14aa1: e8 ca f1 ff ff callq 13c70 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> map_cluster_mutex.unlock(); 14aa6: 48 8d 3d 13 6c 21 00 lea 0x216c13(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 14aad: e8 9e fa ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return cluster; 14ab2: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14ab6: c9 leaveq 14ab7: c3 retq 0000000000014ab8 <_Z13map_ioctx_addmPv>: /* * IO contexts map manipulation functions */ void map_ioctx_add(uint64_t id, rados_ioctx_t io) { 14ab8: 55 push %rbp 14ab9: 48 89 e5 mov %rsp,%rbp 14abc: 48 83 ec 10 sub $0x10,%rsp 14ac0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14ac4: 48 89 75 f0 mov %rsi,-0x10(%rbp) map_ioctx_mutex.lock(); 14ac8: 48 8d 3d 31 6c 21 00 lea 0x216c31(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14acf: e8 fc e1 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> map_ioctx[id] = io; 14ad4: 48 8d 45 f8 lea -0x8(%rbp),%rax 14ad8: 48 89 c6 mov %rax,%rsi 14adb: 48 8b 05 9e 54 21 00 mov 0x21549e(%rip),%rax # 229f80 <_DYNAMIC+0x230> 14ae2: 48 89 c7 mov %rax,%rdi 14ae5: e8 b6 ee ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14aea: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14aee: 48 89 10 mov %rdx,(%rax) map_ioctx_mutex.unlock(); 14af1: 48 8d 3d 08 6c 21 00 lea 0x216c08(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14af8: e8 53 fa ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } 14afd: c9 leaveq 14afe: c3 retq 0000000000014aff <_Z13map_ioctx_getm>: rados_ioctx_t map_ioctx_get(uint64_t id) { 14aff: 55 push %rbp 14b00: 48 89 e5 mov %rsp,%rbp 14b03: 48 83 ec 20 sub $0x20,%rsp 14b07: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_ioctx_t io; map_ioctx_mutex.lock(); 14b0b: 48 8d 3d ee 6b 21 00 lea 0x216bee(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14b12: e8 b9 e1 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> io = map_ioctx[id]; 14b17: 48 8d 45 e8 lea -0x18(%rbp),%rax 14b1b: 48 89 c6 mov %rax,%rsi 14b1e: 48 8b 05 5b 54 21 00 mov 0x21545b(%rip),%rax # 229f80 <_DYNAMIC+0x230> 14b25: 48 89 c7 mov %rax,%rdi 14b28: e8 73 ee ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14b2d: 48 8b 00 mov (%rax),%rax 14b30: 48 89 45 f8 mov %rax,-0x8(%rbp) map_ioctx_mutex.unlock(); 14b34: 48 8d 3d c5 6b 21 00 lea 0x216bc5(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14b3b: e8 10 fa ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return io; 14b40: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14b44: c9 leaveq 14b45: c3 retq 0000000000014b46 <_Z16map_ioctx_removem>: rados_ioctx_t map_ioctx_remove(uint64_t id) { 14b46: 55 push %rbp 14b47: 48 89 e5 mov %rsp,%rbp 14b4a: 48 83 ec 20 sub $0x20,%rsp 14b4e: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_ioctx_t io; map_ioctx_mutex.lock(); 14b52: 48 8d 3d a7 6b 21 00 lea 0x216ba7(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14b59: e8 72 e1 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> io = map_ioctx[id]; 14b5e: 48 8d 45 e8 lea -0x18(%rbp),%rax 14b62: 48 89 c6 mov %rax,%rsi 14b65: 48 8b 05 14 54 21 00 mov 0x215414(%rip),%rax # 229f80 <_DYNAMIC+0x230> 14b6c: 48 89 c7 mov %rax,%rdi 14b6f: e8 2c ee ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14b74: 48 8b 00 mov (%rax),%rax 14b77: 48 89 45 f8 mov %rax,-0x8(%rbp) map_ioctx.erase(id); 14b7b: 48 8d 45 e8 lea -0x18(%rbp),%rax 14b7f: 48 89 c6 mov %rax,%rsi 14b82: 48 8b 05 f7 53 21 00 mov 0x2153f7(%rip),%rax # 229f80 <_DYNAMIC+0x230> 14b89: 48 89 c7 mov %rax,%rdi 14b8c: e8 df f0 ff ff callq 13c70 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> map_ioctx_mutex.unlock(); 14b91: 48 8d 3d 68 6b 21 00 lea 0x216b68(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 14b98: e8 b3 f9 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return io; 14b9d: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14ba1: c9 leaveq 14ba2: c3 retq 0000000000014ba3 <_Z16map_list_ctx_addmPv>: /* * List contexts map manipulation functions */ void map_list_ctx_add(uint64_t id, rados_list_ctx_t ctx) { 14ba3: 55 push %rbp 14ba4: 48 89 e5 mov %rsp,%rbp 14ba7: 48 83 ec 10 sub $0x10,%rsp 14bab: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14baf: 48 89 75 f0 mov %rsi,-0x10(%rbp) map_list_ctx_mutex.lock(); 14bb3: 48 8d 3d 86 6b 21 00 lea 0x216b86(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14bba: e8 11 e1 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> map_list_ctx[id] = ctx; 14bbf: 48 8d 45 f8 lea -0x8(%rbp),%rax 14bc3: 48 89 c6 mov %rax,%rsi 14bc6: 48 8b 05 73 53 21 00 mov 0x215373(%rip),%rax # 229f40 <_DYNAMIC+0x1f0> 14bcd: 48 89 c7 mov %rax,%rdi 14bd0: e8 cb ed ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14bd5: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14bd9: 48 89 10 mov %rdx,(%rax) map_list_ctx_mutex.unlock(); 14bdc: 48 8d 3d 5d 6b 21 00 lea 0x216b5d(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14be3: e8 68 f9 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } 14be8: c9 leaveq 14be9: c3 retq 0000000000014bea <_Z16map_list_ctx_getm>: rados_list_ctx_t map_list_ctx_get(uint64_t id) { 14bea: 55 push %rbp 14beb: 48 89 e5 mov %rsp,%rbp 14bee: 48 83 ec 20 sub $0x20,%rsp 14bf2: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_list_ctx_t ctx; map_list_ctx_mutex.lock(); 14bf6: 48 8d 3d 43 6b 21 00 lea 0x216b43(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14bfd: e8 ce e0 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> ctx = map_list_ctx[id]; 14c02: 48 8d 45 e8 lea -0x18(%rbp),%rax 14c06: 48 89 c6 mov %rax,%rsi 14c09: 48 8b 05 30 53 21 00 mov 0x215330(%rip),%rax # 229f40 <_DYNAMIC+0x1f0> 14c10: 48 89 c7 mov %rax,%rdi 14c13: e8 88 ed ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14c18: 48 8b 00 mov (%rax),%rax 14c1b: 48 89 45 f8 mov %rax,-0x8(%rbp) map_list_ctx_mutex.unlock(); 14c1f: 48 8d 3d 1a 6b 21 00 lea 0x216b1a(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14c26: e8 25 f9 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return ctx; 14c2b: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14c2f: c9 leaveq 14c30: c3 retq 0000000000014c31 <_Z19map_list_ctx_removem>: rados_list_ctx_t map_list_ctx_remove(uint64_t id) { 14c31: 55 push %rbp 14c32: 48 89 e5 mov %rsp,%rbp 14c35: 48 83 ec 20 sub $0x20,%rsp 14c39: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_list_ctx_t ctx; map_list_ctx_mutex.lock(); 14c3d: 48 8d 3d fc 6a 21 00 lea 0x216afc(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14c44: e8 87 e0 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> ctx = map_list_ctx[id]; 14c49: 48 8d 45 e8 lea -0x18(%rbp),%rax 14c4d: 48 89 c6 mov %rax,%rsi 14c50: 48 8b 05 e9 52 21 00 mov 0x2152e9(%rip),%rax # 229f40 <_DYNAMIC+0x1f0> 14c57: 48 89 c7 mov %rax,%rdi 14c5a: e8 41 ed ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14c5f: 48 8b 00 mov (%rax),%rax 14c62: 48 89 45 f8 mov %rax,-0x8(%rbp) map_list_ctx.erase(id); 14c66: 48 8d 45 e8 lea -0x18(%rbp),%rax 14c6a: 48 89 c6 mov %rax,%rsi 14c6d: 48 8b 05 cc 52 21 00 mov 0x2152cc(%rip),%rax # 229f40 <_DYNAMIC+0x1f0> 14c74: 48 89 c7 mov %rax,%rdi 14c77: e8 f4 ef ff ff callq 13c70 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> map_list_ctx_mutex.unlock(); 14c7c: 48 8d 3d bd 6a 21 00 lea 0x216abd(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 14c83: e8 c8 f8 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return ctx; 14c88: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14c8c: c9 leaveq 14c8d: c3 retq 0000000000014c8e <_Z18map_xattr_iter_addmPv>: /* * Xattr iterators map manipulation functions */ void map_xattr_iter_add(uint64_t id, rados_xattrs_iter_t it) { 14c8e: 55 push %rbp 14c8f: 48 89 e5 mov %rsp,%rbp 14c92: 48 83 ec 10 sub $0x10,%rsp 14c96: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14c9a: 48 89 75 f0 mov %rsi,-0x10(%rbp) map_xattr_iter_mutex.lock(); 14c9e: 48 8d 3d db 6a 21 00 lea 0x216adb(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14ca5: e8 26 e0 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> map_xattr_iter[id] = it; 14caa: 48 8d 45 f8 lea -0x8(%rbp),%rax 14cae: 48 89 c6 mov %rax,%rsi 14cb1: 48 8b 05 d0 52 21 00 mov 0x2152d0(%rip),%rax # 229f88 <_DYNAMIC+0x238> 14cb8: 48 89 c7 mov %rax,%rdi 14cbb: e8 e0 ec ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14cc0: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14cc4: 48 89 10 mov %rdx,(%rax) map_xattr_iter_mutex.unlock(); 14cc7: 48 8d 3d b2 6a 21 00 lea 0x216ab2(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14cce: e8 7d f8 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } 14cd3: c9 leaveq 14cd4: c3 retq 0000000000014cd5 <_Z18map_xattr_iter_getm>: rados_xattrs_iter_t map_xattr_iter_get(uint64_t id) { 14cd5: 55 push %rbp 14cd6: 48 89 e5 mov %rsp,%rbp 14cd9: 48 83 ec 20 sub $0x20,%rsp 14cdd: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_xattrs_iter_t it; map_xattr_iter_mutex.lock(); 14ce1: 48 8d 3d 98 6a 21 00 lea 0x216a98(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14ce8: e8 e3 df ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> it = map_xattr_iter[id]; 14ced: 48 8d 45 e8 lea -0x18(%rbp),%rax 14cf1: 48 89 c6 mov %rax,%rsi 14cf4: 48 8b 05 8d 52 21 00 mov 0x21528d(%rip),%rax # 229f88 <_DYNAMIC+0x238> 14cfb: 48 89 c7 mov %rax,%rdi 14cfe: e8 9d ec ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14d03: 48 8b 00 mov (%rax),%rax 14d06: 48 89 45 f8 mov %rax,-0x8(%rbp) map_xattr_iter_mutex.unlock(); 14d0a: 48 8d 3d 6f 6a 21 00 lea 0x216a6f(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14d11: e8 3a f8 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return it; 14d16: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14d1a: c9 leaveq 14d1b: c3 retq 0000000000014d1c <_Z21map_xattr_iter_removem>: rados_xattrs_iter_t map_xattr_iter_remove(uint64_t id) { 14d1c: 55 push %rbp 14d1d: 48 89 e5 mov %rsp,%rbp 14d20: 48 83 ec 20 sub $0x20,%rsp 14d24: 48 89 7d e8 mov %rdi,-0x18(%rbp) rados_xattrs_iter_t it; map_xattr_iter_mutex.lock(); 14d28: 48 8d 3d 51 6a 21 00 lea 0x216a51(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14d2f: e8 9c df ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> it = map_xattr_iter[id]; 14d34: 48 8d 45 e8 lea -0x18(%rbp),%rax 14d38: 48 89 c6 mov %rax,%rsi 14d3b: 48 8b 05 46 52 21 00 mov 0x215246(%rip),%rax # 229f88 <_DYNAMIC+0x238> 14d42: 48 89 c7 mov %rax,%rdi 14d45: e8 56 ec ff ff callq 139a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 14d4a: 48 8b 00 mov (%rax),%rax 14d4d: 48 89 45 f8 mov %rax,-0x8(%rbp) map_xattr_iter.erase(id); 14d51: 48 8d 45 e8 lea -0x18(%rbp),%rax 14d55: 48 89 c6 mov %rax,%rsi 14d58: 48 8b 05 29 52 21 00 mov 0x215229(%rip),%rax # 229f88 <_DYNAMIC+0x238> 14d5f: 48 89 c7 mov %rax,%rdi 14d62: e8 09 ef ff ff callq 13c70 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> map_xattr_iter_mutex.unlock(); 14d67: 48 8d 3d 12 6a 21 00 lea 0x216a12(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 14d6e: e8 dd f7 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return it; 14d73: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14d77: c9 leaveq 14d78: c3 retq 0000000000014d79 <_Z16make_error_tupleP18enif_environment_ti>: ERL_NIF_TERM make_error_tuple(ErlNifEnv* env, int err) { 14d79: 55 push %rbp 14d7a: 48 89 e5 mov %rsp,%rbp 14d7d: 48 83 ec 20 sub $0x20,%rsp 14d81: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14d85: 89 75 e4 mov %esi,-0x1c(%rbp) ERL_NIF_TERM atom = enif_make_atom(env, "error"); 14d88: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d8c: 48 8d 35 37 e2 00 00 lea 0xe237(%rip),%rsi # 22fca <_fini+0x42> 14d93: 48 89 c7 mov %rax,%rdi 14d96: e8 d5 df ff ff callq 12d70 14d9b: 48 89 45 f0 mov %rax,-0x10(%rbp) ERL_NIF_TERM reason = enif_make_string(env, strerror(err), ERL_NIF_LATIN1); 14d9f: 8b 45 e4 mov -0x1c(%rbp),%eax 14da2: 89 c7 mov %eax,%edi 14da4: e8 c7 eb ff ff callq 13970 14da9: 48 89 c1 mov %rax,%rcx 14dac: 48 8b 45 e8 mov -0x18(%rbp),%rax 14db0: ba 01 00 00 00 mov $0x1,%edx 14db5: 48 89 ce mov %rcx,%rsi 14db8: 48 89 c7 mov %rax,%rdi 14dbb: e8 80 ea ff ff callq 13840 14dc0: 48 89 45 f8 mov %rax,-0x8(%rbp) return enif_make_tuple2(env, atom, reason); 14dc4: 48 8b 4d f8 mov -0x8(%rbp),%rcx 14dc8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14dcc: 48 8b 45 e8 mov -0x18(%rbp),%rax 14dd0: be 02 00 00 00 mov $0x2,%esi 14dd5: 48 89 c7 mov %rax,%rdi 14dd8: b8 00 00 00 00 mov $0x0,%eax 14ddd: e8 5e f4 ff ff callq 14240 } 14de2: c9 leaveq 14de3: c3 retq 0000000000014de4 <_Z24x_add_stderr_log_handlerP18enif_environment_tiPKm>: ERL_NIF_TERM x_add_stderr_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 14de4: 55 push %rbp 14de5: 48 89 e5 mov %rsp,%rbp 14de8: 41 54 push %r12 14dea: 53 push %rbx 14deb: 48 83 ec 30 sub $0x30,%rsp 14def: 48 89 7d d8 mov %rdi,-0x28(%rbp) 14df3: 89 75 d4 mov %esi,-0x2c(%rbp) 14df6: 48 89 55 c8 mov %rdx,-0x38(%rbp) XLogStderrHandler *log_handler = new XLogStderrHandler(); 14dfa: bf 38 00 00 00 mov $0x38,%edi 14dff: e8 6c f7 ff ff callq 14570 <_Znwm@plt> 14e04: 48 89 c3 mov %rax,%rbx 14e07: 48 89 df mov %rbx,%rdi 14e0a: e8 01 e4 ff ff callq 13210 <_ZN17XLogStderrHandlerC1Ev@plt> 14e0f: 48 89 5d e8 mov %rbx,-0x18(%rbp) logger.addHandler(*log_handler); 14e13: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e17: 48 89 c6 mov %rax,%rsi 14e1a: 48 8b 05 6f 51 21 00 mov 0x21516f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 14e21: 48 89 c7 mov %rax,%rdi 14e24: e8 37 e9 ff ff callq 13760 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 14e29: 48 8b 45 d8 mov -0x28(%rbp),%rax 14e2d: 48 8d 35 9c e1 00 00 lea 0xe19c(%rip),%rsi # 22fd0 <_fini+0x48> 14e34: 48 89 c7 mov %rax,%rdi 14e37: e8 34 df ff ff callq 12d70 } 14e3c: 48 83 c4 30 add $0x30,%rsp 14e40: 5b pop %rbx 14e41: 41 5c pop %r12 14e43: 5d pop %rbp 14e44: c3 retq 14e45: 49 89 c4 mov %rax,%r12 return enif_make_tuple2(env, atom, reason); } ERL_NIF_TERM x_add_stderr_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { XLogStderrHandler *log_handler = new XLogStderrHandler(); 14e48: 48 89 df mov %rbx,%rdi 14e4b: e8 a0 de ff ff callq 12cf0 <_ZdlPv@plt> 14e50: 4c 89 e0 mov %r12,%rax 14e53: 48 89 c7 mov %rax,%rdi 14e56: e8 25 f7 ff ff callq 14580 <_Unwind_Resume@plt> 0000000000014e5b <_Z21x_add_sys_log_handlerP18enif_environment_tiPKm>: logger.addHandler(*log_handler); return enif_make_atom(env, "ok"); } ERL_NIF_TERM x_add_sys_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 14e5b: 55 push %rbp 14e5c: 48 89 e5 mov %rsp,%rbp 14e5f: 41 54 push %r12 14e61: 53 push %rbx 14e62: 48 83 ec 30 sub $0x30,%rsp 14e66: 48 89 7d d8 mov %rdi,-0x28(%rbp) 14e6a: 89 75 d4 mov %esi,-0x2c(%rbp) 14e6d: 48 89 55 c8 mov %rdx,-0x38(%rbp) XLogSyslogHandler *log_handler = new XLogSyslogHandler(); 14e71: bf 18 00 00 00 mov $0x18,%edi 14e76: e8 f5 f6 ff ff callq 14570 <_Znwm@plt> 14e7b: 48 89 c3 mov %rax,%rbx 14e7e: 48 89 df mov %rbx,%rdi 14e81: e8 fa e5 ff ff callq 13480 <_ZN17XLogSyslogHandlerC1Ev@plt> 14e86: 48 89 5d e8 mov %rbx,-0x18(%rbp) logger.addHandler(*log_handler); 14e8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e8e: 48 89 c6 mov %rax,%rsi 14e91: 48 8b 05 f8 50 21 00 mov 0x2150f8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 14e98: 48 89 c7 mov %rax,%rdi 14e9b: e8 c0 e8 ff ff callq 13760 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 14ea0: 48 8b 45 d8 mov -0x28(%rbp),%rax 14ea4: 48 8d 35 25 e1 00 00 lea 0xe125(%rip),%rsi # 22fd0 <_fini+0x48> 14eab: 48 89 c7 mov %rax,%rdi 14eae: e8 bd de ff ff callq 12d70 } 14eb3: 48 83 c4 30 add $0x30,%rsp 14eb7: 5b pop %rbx 14eb8: 41 5c pop %r12 14eba: 5d pop %rbp 14ebb: c3 retq 14ebc: 49 89 c4 mov %rax,%r12 return enif_make_atom(env, "ok"); } ERL_NIF_TERM x_add_sys_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { XLogSyslogHandler *log_handler = new XLogSyslogHandler(); 14ebf: 48 89 df mov %rbx,%rdi 14ec2: e8 29 de ff ff callq 12cf0 <_ZdlPv@plt> 14ec7: 4c 89 e0 mov %r12,%rax 14eca: 48 89 c7 mov %rax,%rdi 14ecd: e8 ae f6 ff ff callq 14580 <_Unwind_Resume@plt> 0000000000014ed2 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm>: logger.addHandler(*log_handler); return enif_make_atom(env, "ok"); } ERL_NIF_TERM x_add_file_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 14ed2: 55 push %rbp 14ed3: 48 89 e5 mov %rsp,%rbp 14ed6: 41 54 push %r12 14ed8: 53 push %rbx 14ed9: 48 81 ec 40 08 00 00 sub $0x840,%rsp 14ee0: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 14ee7: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 14eed: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 14ef4: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 14efb: 00 00 14efd: 48 89 45 e8 mov %rax,-0x18(%rbp) 14f01: 31 c0 xor %eax,%eax char log_file[MAX_FILE_NAME_LEN]; memset(log_file, 0, MAX_FILE_NAME_LEN); 14f03: 48 8d 85 e0 f7 ff ff lea -0x820(%rbp),%rax 14f0a: ba 00 08 00 00 mov $0x800,%edx 14f0f: be 00 00 00 00 mov $0x0,%esi 14f14: 48 89 c7 mov %rax,%rdi 14f17: e8 e4 da ff ff callq 12a00 if (!enif_get_string(env, argv[0], log_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) 14f1c: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 14f23: 48 8b 30 mov (%rax),%rsi 14f26: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 14f2d: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 14f34: 41 b8 01 00 00 00 mov $0x1,%r8d 14f3a: b9 00 08 00 00 mov $0x800,%ecx 14f3f: 48 89 c7 mov %rax,%rdi 14f42: e8 e9 f2 ff ff callq 14230 14f47: 85 c0 test %eax,%eax 14f49: 0f 94 c0 sete %al 14f4c: 84 c0 test %al,%al 14f4e: 74 11 je 14f61 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x8f> { return enif_make_badarg(env); 14f50: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 14f57: 48 89 c7 mov %rax,%rdi 14f5a: e8 61 e9 ff ff callq 138c0 14f5f: eb 55 jmp 14fb6 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0xe4> } XLogFileHandler *log_handler = new XLogFileHandler(log_file); 14f61: bf 28 00 00 00 mov $0x28,%edi 14f66: e8 05 f6 ff ff callq 14570 <_Znwm@plt> 14f6b: 48 89 c3 mov %rax,%rbx 14f6e: 48 8d 85 e0 f7 ff ff lea -0x820(%rbp),%rax 14f75: 48 89 c6 mov %rax,%rsi 14f78: 48 89 df mov %rbx,%rdi 14f7b: e8 60 f6 ff ff callq 145e0 <_ZN15XLogFileHandlerC1EPKc@plt> 14f80: 48 89 9d d8 f7 ff ff mov %rbx,-0x828(%rbp) logger.addHandler(*log_handler); 14f87: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 14f8e: 48 89 c6 mov %rax,%rsi 14f91: 48 8b 05 f8 4f 21 00 mov 0x214ff8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 14f98: 48 89 c7 mov %rax,%rdi 14f9b: e8 c0 e7 ff ff callq 13760 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 14fa0: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 14fa7: 48 8d 35 22 e0 00 00 lea 0xe022(%rip),%rsi # 22fd0 <_fini+0x48> 14fae: 48 89 c7 mov %rax,%rdi 14fb1: e8 ba dd ff ff callq 12d70 } 14fb6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 14fba: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 14fc1: 00 00 14fc3: 74 1d je 14fe2 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x110> 14fc5: eb 16 jmp 14fdd <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x10b> 14fc7: 49 89 c4 mov %rax,%r12 memset(log_file, 0, MAX_FILE_NAME_LEN); if (!enif_get_string(env, argv[0], log_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); } XLogFileHandler *log_handler = new XLogFileHandler(log_file); 14fca: 48 89 df mov %rbx,%rdi 14fcd: e8 1e dd ff ff callq 12cf0 <_ZdlPv@plt> 14fd2: 4c 89 e0 mov %r12,%rax 14fd5: 48 89 c7 mov %rax,%rdi 14fd8: e8 a3 f5 ff ff callq 14580 <_Unwind_Resume@plt> logger.addHandler(*log_handler); return enif_make_atom(env, "ok"); } 14fdd: e8 fe ee ff ff callq 13ee0 <__stack_chk_fail@plt> 14fe2: 48 81 c4 40 08 00 00 add $0x840,%rsp 14fe9: 5b pop %rbx 14fea: 41 5c pop %r12 14fec: 5d pop %rbp 14fed: c3 retq 0000000000014fee <_ZL13atom_to_levelPc>: static LogLevel atom_to_level(char * level) { 14fee: 55 push %rbp 14fef: 48 89 e5 mov %rsp,%rbp 14ff2: 48 83 ec 10 sub $0x10,%rsp 14ff6: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (strcmp(level, "fatal") == 0) 14ffa: 48 8b 45 f8 mov -0x8(%rbp),%rax 14ffe: 48 8d 35 ce df 00 00 lea 0xdfce(%rip),%rsi # 22fd3 <_fini+0x4b> 15005: 48 89 c7 mov %rax,%rdi 15008: e8 43 ef ff ff callq 13f50 1500d: 85 c0 test %eax,%eax 1500f: 75 07 jne 15018 <_ZL13atom_to_levelPc+0x2a> return FATAL; 15011: b8 01 00 00 00 mov $0x1,%eax 15016: eb 7d jmp 15095 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "error") == 0) 15018: 48 8b 45 f8 mov -0x8(%rbp),%rax 1501c: 48 8d 35 a7 df 00 00 lea 0xdfa7(%rip),%rsi # 22fca <_fini+0x42> 15023: 48 89 c7 mov %rax,%rdi 15026: e8 25 ef ff ff callq 13f50 1502b: 85 c0 test %eax,%eax 1502d: 75 07 jne 15036 <_ZL13atom_to_levelPc+0x48> return ERROR; 1502f: b8 02 00 00 00 mov $0x2,%eax 15034: eb 5f jmp 15095 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "warning") == 0) 15036: 48 8b 45 f8 mov -0x8(%rbp),%rax 1503a: 48 8d 35 98 df 00 00 lea 0xdf98(%rip),%rsi # 22fd9 <_fini+0x51> 15041: 48 89 c7 mov %rax,%rdi 15044: e8 07 ef ff ff callq 13f50 15049: 85 c0 test %eax,%eax 1504b: 75 07 jne 15054 <_ZL13atom_to_levelPc+0x66> return WARNING; 1504d: b8 03 00 00 00 mov $0x3,%eax 15052: eb 41 jmp 15095 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "info") == 0) 15054: 48 8b 45 f8 mov -0x8(%rbp),%rax 15058: 48 8d 35 82 df 00 00 lea 0xdf82(%rip),%rsi # 22fe1 <_fini+0x59> 1505f: 48 89 c7 mov %rax,%rdi 15062: e8 e9 ee ff ff callq 13f50 15067: 85 c0 test %eax,%eax 15069: 75 07 jne 15072 <_ZL13atom_to_levelPc+0x84> return INFO; 1506b: b8 04 00 00 00 mov $0x4,%eax 15070: eb 23 jmp 15095 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "debug") == 0) 15072: 48 8b 45 f8 mov -0x8(%rbp),%rax 15076: 48 8d 35 69 df 00 00 lea 0xdf69(%rip),%rsi # 22fe6 <_fini+0x5e> 1507d: 48 89 c7 mov %rax,%rdi 15080: e8 cb ee ff ff callq 13f50 15085: 85 c0 test %eax,%eax 15087: 75 07 jne 15090 <_ZL13atom_to_levelPc+0xa2> return DEBUG; 15089: b8 05 00 00 00 mov $0x5,%eax 1508e: eb 05 jmp 15095 <_ZL13atom_to_levelPc+0xa7> else return NONE; 15090: b8 00 00 00 00 mov $0x0,%eax } 15095: c9 leaveq 15096: c3 retq 0000000000015097 <_Z15x_set_log_levelP18enif_environment_tiPKm>: ERL_NIF_TERM x_set_log_level(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 15097: 55 push %rbp 15098: 48 89 e5 mov %rsp,%rbp 1509b: 48 83 ec 60 sub $0x60,%rsp 1509f: 48 89 7d b8 mov %rdi,-0x48(%rbp) 150a3: 89 75 b4 mov %esi,-0x4c(%rbp) 150a6: 48 89 55 a8 mov %rdx,-0x58(%rbp) 150aa: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 150b1: 00 00 150b3: 48 89 45 f8 mov %rax,-0x8(%rbp) 150b7: 31 c0 xor %eax,%eax char level[32]; memset(level, 0, 32); 150b9: 48 8d 45 d0 lea -0x30(%rbp),%rax 150bd: ba 20 00 00 00 mov $0x20,%edx 150c2: be 00 00 00 00 mov $0x0,%esi 150c7: 48 89 c7 mov %rax,%rdi 150ca: e8 31 d9 ff ff callq 12a00 if (!enif_get_atom(env, argv[0], level, 32, ERL_NIF_LATIN1)) 150cf: 48 8b 45 a8 mov -0x58(%rbp),%rax 150d3: 48 8b 30 mov (%rax),%rsi 150d6: 48 8d 55 d0 lea -0x30(%rbp),%rdx 150da: 48 8b 45 b8 mov -0x48(%rbp),%rax 150de: 41 b8 01 00 00 00 mov $0x1,%r8d 150e4: b9 20 00 00 00 mov $0x20,%ecx 150e9: 48 89 c7 mov %rax,%rdi 150ec: e8 df ef ff ff callq 140d0 150f1: 85 c0 test %eax,%eax 150f3: 0f 94 c0 sete %al 150f6: 84 c0 test %al,%al 150f8: 74 0e je 15108 <_Z15x_set_log_levelP18enif_environment_tiPKm+0x71> { return enif_make_badarg(env); 150fa: 48 8b 45 b8 mov -0x48(%rbp),%rax 150fe: 48 89 c7 mov %rax,%rdi 15101: e8 ba e7 ff ff callq 138c0 15106: eb 36 jmp 1513e <_Z15x_set_log_levelP18enif_environment_tiPKm+0xa7> } LogLevel l = atom_to_level(level); 15108: 48 8d 45 d0 lea -0x30(%rbp),%rax 1510c: 48 89 c7 mov %rax,%rdi 1510f: e8 da fe ff ff callq 14fee <_ZL13atom_to_levelPc> 15114: 89 45 cc mov %eax,-0x34(%rbp) logger.setLevel(l); 15117: 8b 45 cc mov -0x34(%rbp),%eax 1511a: 89 c6 mov %eax,%esi 1511c: 48 8b 05 6d 4e 21 00 mov 0x214e6d(%rip),%rax # 229f90 <_DYNAMIC+0x240> 15123: 48 89 c7 mov %rax,%rdi 15126: e8 15 db ff ff callq 12c40 <_ZN4XLog8setLevelE8LogLevel@plt> return enif_make_atom(env, "ok"); 1512b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1512f: 48 8d 35 9a de 00 00 lea 0xde9a(%rip),%rsi # 22fd0 <_fini+0x48> 15136: 48 89 c7 mov %rax,%rdi 15139: e8 32 dc ff ff callq 12d70 } 1513e: 48 8b 55 f8 mov -0x8(%rbp),%rdx 15142: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 15149: 00 00 1514b: 74 05 je 15152 <_Z15x_set_log_levelP18enif_environment_tiPKm+0xbb> 1514d: e8 8e ed ff ff callq 13ee0 <__stack_chk_fail@plt> 15152: c9 leaveq 15153: c3 retq 0000000000015154 : {"yunio_clear", 0, x_yunio_clear}, {"yunio_get_read_cluster", 0, x_yunio_get_read_cluster}, {"yunio_get_write_cluster", 0, x_yunio_get_write_cluster}, }; ERL_NIF_INIT(rados, nif_funcs, load, reload, upgrade, unload) 15154: 55 push %rbp 15155: 48 89 e5 mov %rsp,%rbp 15158: 48 8d 05 61 63 21 00 lea 0x216361(%rip),%rax # 22b4c0 <_ZZ8nif_initE5entry> 1515f: 5d pop %rbp 15160: c3 retq 0000000000015161 <_Z41__static_initialization_and_destruction_0ii>: 15161: 55 push %rbp 15162: 48 89 e5 mov %rsp,%rbp 15165: 48 83 ec 10 sub $0x10,%rsp 15169: 89 7d fc mov %edi,-0x4(%rbp) 1516c: 89 75 f8 mov %esi,-0x8(%rbp) 1516f: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 15173: 0f 85 dc 01 00 00 jne 15355 <_Z41__static_initialization_and_destruction_0ii+0x1f4> 15179: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 15180: 0f 85 cf 01 00 00 jne 15355 <_Z41__static_initialization_and_destruction_0ii+0x1f4> * Map of rados cluster handles. We keep a local map of rados cluster * handles here, mapping to long integers. The handles are created * by librados api, and it's not possible to pass between Erlang and C. * Therefore, we pass a long integer, which is mapped to the handle here. */ map map_cluster; 15186: 48 8b 05 2b 4e 21 00 mov 0x214e2b(%rip),%rax # 229fb8 <_DYNAMIC+0x268> 1518d: 48 89 c7 mov %rax,%rdi 15190: e8 7b ea ff ff callq 13c10 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 15195: 48 8b 05 24 4e 21 00 mov 0x214e24(%rip),%rax # 229fc0 <_DYNAMIC+0x270> 1519c: 48 8b 15 cd 4d 21 00 mov 0x214dcd(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 151a3: 48 8b 0d 0e 4e 21 00 mov 0x214e0e(%rip),%rcx # 229fb8 <_DYNAMIC+0x268> 151aa: 48 89 ce mov %rcx,%rsi 151ad: 48 89 c7 mov %rax,%rdi 151b0: e8 9b df ff ff callq 13150 <__cxa_atexit@plt> static XMutex map_cluster_mutex; 151b5: 48 8d 3d 04 65 21 00 lea 0x216504(%rip),%rdi # 22b6c0 <_ZL17map_cluster_mutex> 151bc: e8 bf eb ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 151c1: 48 8b 05 90 4d 21 00 mov 0x214d90(%rip),%rax # 229f58 <_DYNAMIC+0x208> 151c8: 48 8b 15 a1 4d 21 00 mov 0x214da1(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 151cf: 48 8d 35 ea 64 21 00 lea 0x2164ea(%rip),%rsi # 22b6c0 <_ZL17map_cluster_mutex> 151d6: 48 89 c7 mov %rax,%rdi 151d9: e8 72 df ff ff callq 13150 <__cxa_atexit@plt> /* * Map of IO context. Same mechanism as the cluster handles. */ map map_ioctx; 151de: 48 8b 05 9b 4d 21 00 mov 0x214d9b(%rip),%rax # 229f80 <_DYNAMIC+0x230> 151e5: 48 89 c7 mov %rax,%rdi 151e8: e8 23 ea ff ff callq 13c10 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 151ed: 48 8b 05 cc 4d 21 00 mov 0x214dcc(%rip),%rax # 229fc0 <_DYNAMIC+0x270> 151f4: 48 8b 15 75 4d 21 00 mov 0x214d75(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 151fb: 48 8b 0d 7e 4d 21 00 mov 0x214d7e(%rip),%rcx # 229f80 <_DYNAMIC+0x230> 15202: 48 89 ce mov %rcx,%rsi 15205: 48 89 c7 mov %rax,%rdi 15208: e8 43 df ff ff callq 13150 <__cxa_atexit@plt> static XMutex map_ioctx_mutex; 1520d: 48 8d 3d ec 64 21 00 lea 0x2164ec(%rip),%rdi # 22b700 <_ZL15map_ioctx_mutex> 15214: e8 67 eb ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 15219: 48 8b 05 38 4d 21 00 mov 0x214d38(%rip),%rax # 229f58 <_DYNAMIC+0x208> 15220: 48 8b 15 49 4d 21 00 mov 0x214d49(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 15227: 48 8d 35 d2 64 21 00 lea 0x2164d2(%rip),%rsi # 22b700 <_ZL15map_ioctx_mutex> 1522e: 48 89 c7 mov %rax,%rdi 15231: e8 1a df ff ff callq 13150 <__cxa_atexit@plt> /* * Map of list context. Same mechanism as the cluster handles. */ map map_list_ctx; 15236: 48 8b 05 03 4d 21 00 mov 0x214d03(%rip),%rax # 229f40 <_DYNAMIC+0x1f0> 1523d: 48 89 c7 mov %rax,%rdi 15240: e8 cb e9 ff ff callq 13c10 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 15245: 48 8b 05 74 4d 21 00 mov 0x214d74(%rip),%rax # 229fc0 <_DYNAMIC+0x270> 1524c: 48 8b 15 1d 4d 21 00 mov 0x214d1d(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 15253: 48 8b 0d e6 4c 21 00 mov 0x214ce6(%rip),%rcx # 229f40 <_DYNAMIC+0x1f0> 1525a: 48 89 ce mov %rcx,%rsi 1525d: 48 89 c7 mov %rax,%rdi 15260: e8 eb de ff ff callq 13150 <__cxa_atexit@plt> static XMutex map_list_ctx_mutex; 15265: 48 8d 3d d4 64 21 00 lea 0x2164d4(%rip),%rdi # 22b740 <_ZL18map_list_ctx_mutex> 1526c: e8 0f eb ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 15271: 48 8b 05 e0 4c 21 00 mov 0x214ce0(%rip),%rax # 229f58 <_DYNAMIC+0x208> 15278: 48 8b 15 f1 4c 21 00 mov 0x214cf1(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 1527f: 48 8d 35 ba 64 21 00 lea 0x2164ba(%rip),%rsi # 22b740 <_ZL18map_list_ctx_mutex> 15286: 48 89 c7 mov %rax,%rdi 15289: e8 c2 de ff ff callq 13150 <__cxa_atexit@plt> /* * Map of xattr iterators. */ map map_xattr_iter; 1528e: 48 8b 05 f3 4c 21 00 mov 0x214cf3(%rip),%rax # 229f88 <_DYNAMIC+0x238> 15295: 48 89 c7 mov %rax,%rdi 15298: e8 73 e9 ff ff callq 13c10 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 1529d: 48 8b 05 1c 4d 21 00 mov 0x214d1c(%rip),%rax # 229fc0 <_DYNAMIC+0x270> 152a4: 48 8b 15 c5 4c 21 00 mov 0x214cc5(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 152ab: 48 8b 0d d6 4c 21 00 mov 0x214cd6(%rip),%rcx # 229f88 <_DYNAMIC+0x238> 152b2: 48 89 ce mov %rcx,%rsi 152b5: 48 89 c7 mov %rax,%rdi 152b8: e8 93 de ff ff callq 13150 <__cxa_atexit@plt> static XMutex map_xattr_iter_mutex; 152bd: 48 8d 3d bc 64 21 00 lea 0x2164bc(%rip),%rdi # 22b780 <_ZL20map_xattr_iter_mutex> 152c4: e8 b7 ea ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 152c9: 48 8b 05 88 4c 21 00 mov 0x214c88(%rip),%rax # 229f58 <_DYNAMIC+0x208> 152d0: 48 8b 15 99 4c 21 00 mov 0x214c99(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 152d7: 48 8d 35 a2 64 21 00 lea 0x2164a2(%rip),%rsi # 22b780 <_ZL20map_xattr_iter_mutex> 152de: 48 89 c7 mov %rax,%rdi 152e1: e8 6a de ff ff callq 13150 <__cxa_atexit@plt> static uint64_t id_index = 0; static XMutex id_mutex; 152e6: 48 8d 3d d3 64 21 00 lea 0x2164d3(%rip),%rdi # 22b7c0 <_ZL8id_mutex> 152ed: e8 8e ea ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 152f2: 48 8b 05 5f 4c 21 00 mov 0x214c5f(%rip),%rax # 229f58 <_DYNAMIC+0x208> 152f9: 48 8b 15 70 4c 21 00 mov 0x214c70(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 15300: 48 8d 35 b9 64 21 00 lea 0x2164b9(%rip),%rsi # 22b7c0 <_ZL8id_mutex> 15307: 48 89 c7 mov %rax,%rdi 1530a: e8 41 de ff ff callq 13150 <__cxa_atexit@plt> XLog logger = XLogManager::instance().getLog("RadosLog"); 1530f: e8 2c d8 ff ff callq 12b40 <_ZN11XLogManager8instanceEv@plt> 15314: 48 8d 35 7d df 00 00 lea 0xdf7d(%rip),%rsi # 23298 <_fini+0x310> 1531b: 48 89 c7 mov %rax,%rdi 1531e: e8 ed ef ff ff callq 14310 <_ZN11XLogManager6getLogEPKc@plt> 15323: 48 89 c6 mov %rax,%rsi 15326: 48 8b 05 63 4c 21 00 mov 0x214c63(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1532d: 48 89 c7 mov %rax,%rdi 15330: e8 6b db ff ff callq 12ea0 <_ZN4XLogC1ERKS_@plt> 15335: 48 8b 05 2c 4c 21 00 mov 0x214c2c(%rip),%rax # 229f68 <_DYNAMIC+0x218> 1533c: 48 8b 15 2d 4c 21 00 mov 0x214c2d(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 15343: 48 8b 0d 46 4c 21 00 mov 0x214c46(%rip),%rcx # 229f90 <_DYNAMIC+0x240> 1534a: 48 89 ce mov %rcx,%rsi 1534d: 48 89 c7 mov %rax,%rdi 15350: e8 fb dd ff ff callq 13150 <__cxa_atexit@plt> {"yunio_clear", 0, x_yunio_clear}, {"yunio_get_read_cluster", 0, x_yunio_get_read_cluster}, {"yunio_get_write_cluster", 0, x_yunio_get_write_cluster}, }; ERL_NIF_INIT(rados, nif_funcs, load, reload, upgrade, unload) 15355: c9 leaveq 15356: c3 retq 0000000000015357 <_GLOBAL__sub_I_rados_nif.cpp>: 15357: 55 push %rbp 15358: 48 89 e5 mov %rsp,%rbp 1535b: be ff ff 00 00 mov $0xffff,%esi 15360: bf 01 00 00 00 mov $0x1,%edi 15365: e8 f7 fd ff ff callq 15161 <_Z41__static_initialization_and_destruction_0ii> 1536a: 5d pop %rbp 1536b: c3 retq 000000000001536c <_ZnwmPv>: void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); // Default placement versions of operator new. inline void* operator new(std::size_t, void* __p) throw() { return __p; } 1536c: 55 push %rbp 1536d: 48 89 e5 mov %rsp,%rbp 15370: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15374: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15378: 48 8b 45 f0 mov -0x10(%rbp),%rax 1537c: 5d pop %rbp 1537d: c3 retq 000000000001537e <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_>: _Base_ptr _M_parent; _Base_ptr _M_left; _Base_ptr _M_right; static _Base_ptr _S_minimum(_Base_ptr __x) 1537e: 55 push %rbp 1537f: 48 89 e5 mov %rsp,%rbp 15382: 48 89 7d f8 mov %rdi,-0x8(%rbp) { while (__x->_M_left != 0) __x = __x->_M_left; 15386: eb 0c jmp 15394 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_+0x16> 15388: 48 8b 45 f8 mov -0x8(%rbp),%rax 1538c: 48 8b 40 10 mov 0x10(%rax),%rax 15390: 48 89 45 f8 mov %rax,-0x8(%rbp) 15394: 48 8b 45 f8 mov -0x8(%rbp),%rax 15398: 48 8b 40 10 mov 0x10(%rax),%rax 1539c: 48 85 c0 test %rax,%rax 1539f: 0f 95 c0 setne %al 153a2: 84 c0 test %al,%al 153a4: 75 e2 jne 15388 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_+0xa> return __x; 153a6: 48 8b 45 f8 mov -0x8(%rbp),%rax } 153aa: 5d pop %rbp 153ab: c3 retq 00000000000153ac <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_>: while (__x->_M_left != 0) __x = __x->_M_left; return __x; } static _Base_ptr _S_maximum(_Base_ptr __x) 153ac: 55 push %rbp 153ad: 48 89 e5 mov %rsp,%rbp 153b0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { while (__x->_M_right != 0) __x = __x->_M_right; 153b4: eb 0c jmp 153c2 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_+0x16> 153b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 153ba: 48 8b 40 18 mov 0x18(%rax),%rax 153be: 48 89 45 f8 mov %rax,-0x8(%rbp) 153c2: 48 8b 45 f8 mov -0x8(%rbp),%rax 153c6: 48 8b 40 18 mov 0x18(%rax),%rax 153ca: 48 85 c0 test %rax,%rax 153cd: 0f 95 c0 setne %al 153d0: 84 c0 test %al,%al 153d2: 75 e2 jne 153b6 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_+0xa> return __x; 153d4: 48 8b 45 f8 mov -0x8(%rbp),%rax } 153d8: 5d pop %rbp 153d9: c3 retq 00000000000153da <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev>: * multiset; the distinction is made entirely in how the tree functions are * called (*_unique versus *_equal, same as the standard). */ template, typename _Alloc = std::allocator<_Key> > class set 153da: 55 push %rbp 153db: 48 89 e5 mov %rsp,%rbp 153de: 48 83 ec 10 sub $0x10,%rsp 153e2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 153e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 153ea: 48 89 c7 mov %rax,%rdi 153ed: e8 4e ed ff ff callq 14140 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev@plt> 153f2: c9 leaveq 153f3: c3 retq 00000000000153f4 <_ZN4XLogC1ERKS_>: * XLog logger = mgr.getLog("NameHere"); * * Each logger is assigned a name so that the same logger instance * can be shared among client applications. */ class XLog 153f4: 55 push %rbp 153f5: 48 89 e5 mov %rsp,%rbp 153f8: 53 push %rbx 153f9: 48 83 ec 18 sub $0x18,%rsp 153fd: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15401: 48 89 75 e0 mov %rsi,-0x20(%rbp) 15405: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15409: 48 8b 45 e8 mov -0x18(%rbp),%rax 1540d: 48 89 d6 mov %rdx,%rsi 15410: 48 89 c7 mov %rax,%rdi 15413: e8 e8 dc ff ff callq 13100 <_ZNSsC1ERKSs@plt> 15418: 48 8b 45 e0 mov -0x20(%rbp),%rax 1541c: 8b 50 08 mov 0x8(%rax),%edx 1541f: 48 8b 45 e8 mov -0x18(%rbp),%rax 15423: 89 50 08 mov %edx,0x8(%rax) 15426: 48 8b 45 e0 mov -0x20(%rbp),%rax 1542a: 48 8d 50 10 lea 0x10(%rax),%rdx 1542e: 48 8b 45 e8 mov -0x18(%rbp),%rax 15432: 48 83 c0 10 add $0x10,%rax 15436: 48 89 d6 mov %rdx,%rsi 15439: 48 89 c7 mov %rax,%rdi 1543c: e8 9f d6 ff ff callq 12ae0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1ERKS5_@plt> 15441: eb 1a jmp 1545d <_ZN4XLogC1ERKS_+0x69> 15443: 48 89 c3 mov %rax,%rbx 15446: 48 8b 45 e8 mov -0x18(%rbp),%rax 1544a: 48 89 c7 mov %rax,%rdi 1544d: e8 de df ff ff callq 13430 <_ZNSsD1Ev@plt> 15452: 48 89 d8 mov %rbx,%rax 15455: 48 89 c7 mov %rax,%rdi 15458: e8 23 f1 ff ff callq 14580 <_Unwind_Resume@plt> 1545d: 48 83 c4 18 add $0x18,%rsp 15461: 5b pop %rbx 15462: 5d pop %rbp 15463: c3 retq 0000000000015464 <_ZN4XLogD1Ev>: 15464: 55 push %rbp 15465: 48 89 e5 mov %rsp,%rbp 15468: 53 push %rbx 15469: 48 83 ec 18 sub $0x18,%rsp 1546d: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15471: 48 8b 45 e8 mov -0x18(%rbp),%rax 15475: 48 83 c0 10 add $0x10,%rax 15479: 48 89 c7 mov %rax,%rdi 1547c: e8 0f d8 ff ff callq 12c90 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt> 15481: 48 8b 45 e8 mov -0x18(%rbp),%rax 15485: 48 89 c7 mov %rax,%rdi 15488: e8 a3 df ff ff callq 13430 <_ZNSsD1Ev@plt> 1548d: 48 83 c4 18 add $0x18,%rsp 15491: 5b pop %rbx 15492: 5d pop %rbp 15493: c3 retq 15494: 48 89 c3 mov %rax,%rbx 15497: 48 8b 45 e8 mov -0x18(%rbp),%rax 1549b: 48 89 c7 mov %rax,%rdi 1549e: e8 8d df ff ff callq 13430 <_ZNSsD1Ev@plt> 154a3: 48 89 d8 mov %rbx,%rax 154a6: 48 89 c7 mov %rax,%rdi 154a9: e8 d2 f0 ff ff callq 14580 <_Unwind_Resume@plt> 00000000000154ae <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev>: // (get_allocator() is normally listed in this section, but seems to have // been accidentally omitted in the printed standard) /** * @brief Default constructor creates no elements. */ map() 154ae: 55 push %rbp 154af: 48 89 e5 mov %rsp,%rbp 154b2: 48 83 ec 10 sub $0x10,%rsp 154b6: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 154ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 154be: 48 89 c7 mov %rax,%rdi 154c1: e8 5a ea ff ff callq 13f20 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EEC1Ev@plt> 154c6: c9 leaveq 154c7: c3 retq 00000000000154c8 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1ERKS5_>: * @param x A %set of identical element and allocator types. * * The newly-created %set uses a copy of the allocation object used * by @a x. */ set(const set& __x) 154c8: 55 push %rbp 154c9: 48 89 e5 mov %rsp,%rbp 154cc: 48 83 ec 10 sub $0x10,%rsp 154d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 154d4: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_t(__x._M_t) { } 154d8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 154dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 154e0: 48 89 d6 mov %rdx,%rsi 154e3: 48 89 c7 mov %rax,%rdi 154e6: e8 85 dd ff ff callq 13270 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_@plt> 154eb: c9 leaveq 154ec: c3 retq 154ed: 90 nop 00000000000154ee <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 154ee: 55 push %rbp 154ef: 48 89 e5 mov %rsp,%rbp 154f2: 48 83 ec 10 sub $0x10,%rsp 154f6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 154fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 154fe: 48 89 c7 mov %rax,%rdi 15501: e8 2a e1 ff ff callq 13630 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 15506: c9 leaveq 15507: c3 retq 0000000000015508 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 15508: 55 push %rbp 15509: 48 89 e5 mov %rsp,%rbp 1550c: 53 push %rbx 1550d: 48 83 ec 18 sub $0x18,%rsp 15511: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 15515: 48 8b 45 e8 mov -0x18(%rbp),%rax 15519: 48 89 c7 mov %rax,%rdi 1551c: e8 ef f0 ff ff callq 14610 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 15521: 48 89 c2 mov %rax,%rdx 15524: 48 8b 45 e8 mov -0x18(%rbp),%rax 15528: 48 89 d6 mov %rdx,%rsi 1552b: 48 89 c7 mov %rax,%rdi 1552e: e8 1d e1 ff ff callq 13650 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> 15533: 48 8b 45 e8 mov -0x18(%rbp),%rax 15537: 48 89 c7 mov %rax,%rdi 1553a: e8 01 e1 ff ff callq 13640 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 1553f: 48 83 c4 18 add $0x18,%rsp 15543: 5b pop %rbx 15544: 5d pop %rbp 15545: c3 retq 15546: 48 89 c3 mov %rax,%rbx 15549: 48 8b 45 e8 mov -0x18(%rbp),%rax 1554d: 48 89 c7 mov %rax,%rdi 15550: e8 eb e0 ff ff callq 13640 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 15555: 48 89 d8 mov %rbx,%rax 15558: 48 89 c7 mov %rax,%rdi 1555b: e8 20 f0 ff ff callq 14580 <_Unwind_Resume@plt> 0000000000015560 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_>: * is created using default values, which is then returned. * * Lookup requires logarithmic time. */ mapped_type& operator[](const key_type& __k) 15560: 55 push %rbp 15561: 48 89 e5 mov %rsp,%rbp 15564: 53 push %rbx 15565: 48 83 ec 58 sub $0x58,%rsp 15569: 48 89 7d a8 mov %rdi,-0x58(%rbp) 1556d: 48 89 75 a0 mov %rsi,-0x60(%rbp) { // concept requirements __glibcxx_function_requires(_DefaultConstructibleConcept) iterator __i = lower_bound(__k); 15571: 48 8b 55 a0 mov -0x60(%rbp),%rdx 15575: 48 8b 45 a8 mov -0x58(%rbp),%rax 15579: 48 89 d6 mov %rdx,%rsi 1557c: 48 89 c7 mov %rax,%rdi 1557f: e8 ec ee ff ff callq 14470 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE11lower_boundERS4_@plt> 15584: 48 89 45 c0 mov %rax,-0x40(%rbp) // __i->first is greater than or equivalent to __k. if (__i == end() || key_comp()(__k, (*__i).first)) 15588: 48 8b 45 a8 mov -0x58(%rbp),%rax 1558c: 48 89 c7 mov %rax,%rdi 1558f: e8 8c e6 ff ff callq 13c20 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE3endEv@plt> 15594: 48 89 45 d0 mov %rax,-0x30(%rbp) 15598: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1559c: 48 8d 45 c0 lea -0x40(%rbp),%rax 155a0: 48 89 d6 mov %rdx,%rsi 155a3: 48 89 c7 mov %rax,%rdi 155a6: e8 55 e2 ff ff callq 13800 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt> 155ab: 84 c0 test %al,%al 155ad: 75 35 jne 155e4 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x84> 155af: 48 8d 45 c0 lea -0x40(%rbp),%rax 155b3: 48 89 c7 mov %rax,%rdi 155b6: e8 55 e1 ff ff callq 13710 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt> 155bb: 48 89 c3 mov %rax,%rbx 155be: 48 8b 45 a8 mov -0x58(%rbp),%rax 155c2: 48 89 c7 mov %rax,%rdi 155c5: e8 46 df ff ff callq 13510 <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv@plt> 155ca: 48 8b 4d a0 mov -0x60(%rbp),%rcx 155ce: 48 8d 45 ef lea -0x11(%rbp),%rax 155d2: 48 89 da mov %rbx,%rdx 155d5: 48 89 ce mov %rcx,%rsi 155d8: 48 89 c7 mov %rax,%rdi 155db: e8 90 df ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 155e0: 84 c0 test %al,%al 155e2: 74 07 je 155eb <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x8b> 155e4: b8 01 00 00 00 mov $0x1,%eax 155e9: eb 05 jmp 155f0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x90> 155eb: b8 00 00 00 00 mov $0x0,%eax 155f0: 84 c0 test %al,%al 155f2: 74 3a je 1562e <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0xce> __i = insert(__i, value_type(__k, mapped_type())); 155f4: 48 c7 45 e0 00 00 00 movq $0x0,-0x20(%rbp) 155fb: 00 155fc: 48 8d 55 e0 lea -0x20(%rbp),%rdx 15600: 48 8b 4d a0 mov -0x60(%rbp),%rcx 15604: 48 8d 45 b0 lea -0x50(%rbp),%rax 15608: 48 89 ce mov %rcx,%rsi 1560b: 48 89 c7 mov %rax,%rdi 1560e: e8 7d dd ff ff callq 13390 <_ZNSt4pairIKmPvEC1ERS0_RKS1_@plt> 15613: 48 8d 55 b0 lea -0x50(%rbp),%rdx 15617: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1561b: 48 8b 45 a8 mov -0x58(%rbp),%rax 1561f: 48 89 ce mov %rcx,%rsi 15622: 48 89 c7 mov %rax,%rdi 15625: e8 76 d3 ff ff callq 129a0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE6insertESt17_Rb_tree_iteratorIS5_ERKS5_@plt> 1562a: 48 89 45 c0 mov %rax,-0x40(%rbp) return (*__i).second; 1562e: 48 8d 45 c0 lea -0x40(%rbp),%rax 15632: 48 89 c7 mov %rax,%rdi 15635: e8 d6 e0 ff ff callq 13710 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt> 1563a: 48 83 c0 08 add $0x8,%rax } 1563e: 48 83 c4 58 add $0x58,%rsp 15642: 5b pop %rbx 15643: 5d pop %rbp 15644: c3 retq 15645: 90 nop 0000000000015646 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_>: * Note that this function only erases the element, and that if * the element is itself a pointer, the pointed-to memory is not touched * in any way. Managing the pointer is the user's responsibility. */ size_type erase(const key_type& __x) 15646: 55 push %rbp 15647: 48 89 e5 mov %rsp,%rbp 1564a: 48 83 ec 10 sub $0x10,%rsp 1564e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15652: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.erase(__x); } 15656: 48 8b 45 f8 mov -0x8(%rbp),%rax 1565a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1565e: 48 89 d6 mov %rdx,%rsi 15661: 48 89 c7 mov %rax,%rdi 15664: e8 67 dd ff ff callq 133d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_@plt> 15669: c9 leaveq 1566a: c3 retq 1566b: 90 nop 000000000001566c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 1566c: 55 push %rbp 1566d: 48 89 e5 mov %rsp,%rbp 15670: 48 83 ec 10 sub $0x10,%rsp 15674: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15678: 48 8b 45 f8 mov -0x8(%rbp),%rax 1567c: 48 89 c7 mov %rax,%rdi 1567f: e8 1c eb ff ff callq 141a0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 15684: c9 leaveq 15685: c3 retq 0000000000015686 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EEC1Ev>: _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const; public: // allocation/deallocation _Rb_tree() { } 15686: 55 push %rbp 15687: 48 89 e5 mov %rsp,%rbp 1568a: 48 83 ec 10 sub $0x10,%rsp 1568e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15692: 48 8b 45 f8 mov -0x8(%rbp),%rax 15696: 48 89 c7 mov %rax,%rdi 15699: e8 12 e1 ff ff callq 137b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev@plt> 1569e: c9 leaveq 1569f: c3 retq 00000000000156a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 156a0: 55 push %rbp 156a1: 48 89 e5 mov %rsp,%rbp 156a4: 53 push %rbx 156a5: 48 83 ec 18 sub $0x18,%rsp 156a9: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 156ad: 48 8b 45 e8 mov -0x18(%rbp),%rax 156b1: 48 89 c7 mov %rax,%rdi 156b4: e8 97 de ff ff callq 13550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 156b9: 48 89 c2 mov %rax,%rdx 156bc: 48 8b 45 e8 mov -0x18(%rbp),%rax 156c0: 48 89 d6 mov %rdx,%rsi 156c3: 48 89 c7 mov %rax,%rdi 156c6: e8 35 df ff ff callq 13600 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> 156cb: 48 8b 45 e8 mov -0x18(%rbp),%rax 156cf: 48 89 c7 mov %rax,%rdi 156d2: e8 69 d3 ff ff callq 12a40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt> 156d7: 48 83 c4 18 add $0x18,%rsp 156db: 5b pop %rbx 156dc: 5d pop %rbp 156dd: c3 retq 156de: 48 89 c3 mov %rax,%rbx 156e1: 48 8b 45 e8 mov -0x18(%rbp),%rax 156e5: 48 89 c7 mov %rax,%rdi 156e8: e8 53 d3 ff ff callq 12a40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt> 156ed: 48 89 d8 mov %rbx,%rax 156f0: 48 89 c7 mov %rax,%rdi 156f3: e8 88 ee ff ff callq 14580 <_Unwind_Resume@plt> 00000000000156f8 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_>: _Rb_tree(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_impl(__comp, __a) { } _Rb_tree(const _Rb_tree& __x) 156f8: 55 push %rbp 156f9: 48 89 e5 mov %rsp,%rbp 156fc: 41 54 push %r12 156fe: 53 push %rbx 156ff: 48 83 ec 10 sub $0x10,%rsp 15703: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15707: 48 89 75 e0 mov %rsi,-0x20(%rbp) : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) 1570b: 48 8b 45 e0 mov -0x20(%rbp),%rax 1570f: 48 89 c7 mov %rax,%rdi 15712: e8 d9 e8 ff ff callq 13ff0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt> 15717: 48 89 c2 mov %rax,%rdx 1571a: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1571e: 48 8b 45 e8 mov -0x18(%rbp),%rax 15722: 48 89 ce mov %rcx,%rsi 15725: 48 89 c7 mov %rax,%rdi 15728: e8 23 ed ff ff callq 14450 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE@plt> { if (__x._M_root() != 0) 1572d: 48 8b 45 e0 mov -0x20(%rbp),%rax 15731: 48 89 c7 mov %rax,%rdi 15734: e8 67 d4 ff ff callq 12ba0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 15739: 48 85 c0 test %rax,%rax 1573c: 0f 95 c0 setne %al 1573f: 84 c0 test %al,%al 15741: 0f 84 c0 00 00 00 je 15807 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_+0x10f> { _M_root() = _M_copy(__x._M_begin(), _M_end()); 15747: 48 8b 45 e8 mov -0x18(%rbp),%rax 1574b: 48 89 c7 mov %rax,%rdi 1574e: e8 0d d4 ff ff callq 12b60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 15753: 48 89 c3 mov %rax,%rbx 15756: 48 8b 45 e8 mov -0x18(%rbp),%rax 1575a: 48 89 c7 mov %rax,%rdi 1575d: e8 be df ff ff callq 13720 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 15762: 49 89 c4 mov %rax,%r12 15765: 48 8b 45 e0 mov -0x20(%rbp),%rax 15769: 48 89 c7 mov %rax,%rdi 1576c: e8 9f ea ff ff callq 14210 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 15771: 48 89 c1 mov %rax,%rcx 15774: 48 8b 45 e8 mov -0x18(%rbp),%rax 15778: 4c 89 e2 mov %r12,%rdx 1577b: 48 89 ce mov %rcx,%rsi 1577e: 48 89 c7 mov %rax,%rdi 15781: e8 5a ea ff ff callq 141e0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 15786: 48 89 03 mov %rax,(%rbx) _M_leftmost() = _S_minimum(_M_root()); 15789: 48 8b 45 e8 mov -0x18(%rbp),%rax 1578d: 48 89 c7 mov %rax,%rdi 15790: e8 7b d8 ff ff callq 13010 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_leftmostEv@plt> 15795: 48 89 c3 mov %rax,%rbx 15798: 48 8b 45 e8 mov -0x18(%rbp),%rax 1579c: 48 89 c7 mov %rax,%rdi 1579f: e8 bc d3 ff ff callq 12b60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 157a4: 48 8b 00 mov (%rax),%rax 157a7: 48 89 c7 mov %rax,%rdi 157aa: e8 71 db ff ff callq 13320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_minimumEPSt18_Rb_tree_node_base@plt> 157af: 48 89 03 mov %rax,(%rbx) _M_rightmost() = _S_maximum(_M_root()); 157b2: 48 8b 45 e8 mov -0x18(%rbp),%rax 157b6: 48 89 c7 mov %rax,%rdi 157b9: e8 72 d5 ff ff callq 12d30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_rightmostEv@plt> 157be: 48 89 c3 mov %rax,%rbx 157c1: 48 8b 45 e8 mov -0x18(%rbp),%rax 157c5: 48 89 c7 mov %rax,%rdi 157c8: e8 93 d3 ff ff callq 12b60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 157cd: 48 8b 00 mov (%rax),%rax 157d0: 48 89 c7 mov %rax,%rdi 157d3: e8 f8 dd ff ff callq 135d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_maximumEPSt18_Rb_tree_node_base@plt> 157d8: 48 89 03 mov %rax,(%rbx) _M_impl._M_node_count = __x._M_impl._M_node_count; 157db: 48 8b 45 e0 mov -0x20(%rbp),%rax 157df: 48 8b 50 28 mov 0x28(%rax),%rdx 157e3: 48 8b 45 e8 mov -0x18(%rbp),%rax 157e7: 48 89 50 28 mov %rdx,0x28(%rax) 157eb: eb 1b jmp 15808 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_+0x110> 157ed: 48 89 c3 mov %rax,%rbx _Rb_tree(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_impl(__comp, __a) { } _Rb_tree(const _Rb_tree& __x) : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) 157f0: 48 8b 45 e8 mov -0x18(%rbp),%rax 157f4: 48 89 c7 mov %rax,%rdi 157f7: e8 44 de ff ff callq 13640 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 157fc: 48 89 d8 mov %rbx,%rax 157ff: 48 89 c7 mov %rax,%rdi 15802: e8 79 ed ff ff callq 14580 <_Unwind_Resume@plt> _M_root() = _M_copy(__x._M_begin(), _M_end()); _M_leftmost() = _S_minimum(_M_root()); _M_rightmost() = _S_maximum(_M_root()); _M_impl._M_node_count = __x._M_impl._M_node_count; } } 15807: 90 nop 15808: 48 83 c4 10 add $0x10,%rsp 1580c: 5b pop %rbx 1580d: 41 5c pop %r12 1580f: 5d pop %rbp 15810: c3 retq 15811: 90 nop 0000000000015812 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED1Ev>: : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 15812: 55 push %rbp 15813: 48 89 e5 mov %rsp,%rbp 15816: 48 83 ec 10 sub $0x10,%rsp 1581a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1581e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15822: 48 89 c7 mov %rax,%rdi 15825: e8 b6 e5 ff ff callq 13de0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 1582a: c9 leaveq 1582b: c3 retq 000000000001582c <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1582c: 55 push %rbp 1582d: 48 89 e5 mov %rsp,%rbp 15830: 48 83 ec 20 sub $0x20,%rsp 15834: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15838: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 1583c: eb 49 jmp 15887 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E+0x5b> { _M_erase(_S_right(__x)); 1583e: 48 8b 45 e0 mov -0x20(%rbp),%rax 15842: 48 89 c7 mov %rax,%rdi 15845: e8 56 da ff ff callq 132a0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 1584a: 48 89 c2 mov %rax,%rdx 1584d: 48 8b 45 e8 mov -0x18(%rbp),%rax 15851: 48 89 d6 mov %rdx,%rsi 15854: 48 89 c7 mov %rax,%rdi 15857: e8 f4 dd ff ff callq 13650 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> _Link_type __y = _S_left(__x); 1585c: 48 8b 45 e0 mov -0x20(%rbp),%rax 15860: 48 89 c7 mov %rax,%rdi 15863: e8 c8 d8 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 15868: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 1586c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15870: 48 8b 45 e8 mov -0x18(%rbp),%rax 15874: 48 89 d6 mov %rdx,%rsi 15877: 48 89 c7 mov %rax,%rdi 1587a: e8 21 d7 ff ff callq 12fa0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt> __x = __y; 1587f: 48 8b 45 f8 mov -0x8(%rbp),%rax 15883: 48 89 45 e0 mov %rax,-0x20(%rbp) void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 15887: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1588c: 0f 95 c0 setne %al 1588f: 84 c0 test %al,%al 15891: 75 ab jne 1583e <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E+0x12> _M_erase(_S_right(__x)); _Link_type __y = _S_left(__x); _M_destroy_node(__x); __x = __y; } } 15893: c9 leaveq 15894: c3 retq 15895: 90 nop 0000000000015896 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv>: _Const_Base_ptr _M_rightmost() const { return this->_M_impl._M_header._M_right; } _Link_type _M_begin() 15896: 55 push %rbp 15897: 48 89 e5 mov %rsp,%rbp 1589a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 1589e: 48 8b 45 f8 mov -0x8(%rbp),%rax 158a2: 48 8b 40 10 mov 0x10(%rax),%rax 158a6: 5d pop %rbp 158a7: c3 retq 00000000000158a8 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE11lower_boundERS4_>: * that matches the given key. If unsuccessful it returns an iterator * pointing to the first element that has a greater value than given key * or end() if no such element exists. */ iterator lower_bound(const key_type& __x) 158a8: 55 push %rbp 158a9: 48 89 e5 mov %rsp,%rbp 158ac: 48 83 ec 10 sub $0x10,%rsp 158b0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 158b4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.lower_bound(__x); } 158b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 158bc: 48 8b 55 f0 mov -0x10(%rbp),%rdx 158c0: 48 89 d6 mov %rdx,%rsi 158c3: 48 89 c7 mov %rax,%rdi 158c6: e8 25 e1 ff ff callq 139f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_@plt> 158cb: c9 leaveq 158cc: c3 retq 158cd: 90 nop 00000000000158ce <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv>: /** * Returns the key comparison object out of which the %map was * constructed. */ key_compare key_comp() const 158ce: 55 push %rbp 158cf: 48 89 e5 mov %rsp,%rbp 158d2: 53 push %rbx 158d3: 48 83 ec 18 sub $0x18,%rsp 158d7: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _M_t.key_comp(); } 158db: 48 8b 45 e8 mov -0x18(%rbp),%rax 158df: 48 89 c7 mov %rax,%rdi 158e2: e8 69 ea ff ff callq 14350 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv@plt> 158e7: 89 d8 mov %ebx,%eax 158e9: 48 83 c4 18 add $0x18,%rsp 158ed: 5b pop %rbx 158ee: 5d pop %rbp 158ef: c3 retq 00000000000158f0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv>: explicit _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } reference operator*() const 158f0: 55 push %rbp 158f1: 48 89 e5 mov %rsp,%rbp 158f4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 158f8: 48 8b 45 f8 mov -0x8(%rbp),%rax 158fc: 48 8b 00 mov (%rax),%rax 158ff: 48 83 c0 20 add $0x20,%rax 15903: 5d pop %rbp 15904: c3 retq 15905: 90 nop 0000000000015906 <_ZNKSt4lessImEclERKmS2_>: /// One of the @link comparison_functors comparison functors@endlink. template struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const 15906: 55 push %rbp 15907: 48 89 e5 mov %rsp,%rbp 1590a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1590e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15912: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 15916: 48 8b 45 f0 mov -0x10(%rbp),%rax 1591a: 48 8b 10 mov (%rax),%rdx 1591d: 48 8b 45 e8 mov -0x18(%rbp),%rax 15921: 48 8b 00 mov (%rax),%rax 15924: 48 39 c2 cmp %rax,%rdx 15927: 0f 92 c0 setb %al 1592a: 5d pop %rbp 1592b: c3 retq 000000000001592c <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE3endEv>: * Returns a read/write iterator that points one past the last * pair in the %map. Iteration is done in ascending order * according to the keys. */ iterator end() 1592c: 55 push %rbp 1592d: 48 89 e5 mov %rsp,%rbp 15930: 48 83 ec 10 sub $0x10,%rsp 15934: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 15938: 48 8b 45 f8 mov -0x8(%rbp),%rax 1593c: 48 89 c7 mov %rax,%rdi 1593f: e8 ac d0 ff ff callq 129f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt> 15944: c9 leaveq 15945: c3 retq 0000000000015946 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 15946: 55 push %rbp 15947: 48 89 e5 mov %rsp,%rbp 1594a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1594e: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 15952: 48 8b 45 f8 mov -0x8(%rbp),%rax 15956: 48 8b 10 mov (%rax),%rdx 15959: 48 8b 45 f0 mov -0x10(%rbp),%rax 1595d: 48 8b 00 mov (%rax),%rax 15960: 48 39 c2 cmp %rax,%rdx 15963: 0f 94 c0 sete %al 15966: 5d pop %rbp 15967: c3 retq 0000000000015968 <_ZNSt4pairIKmPvEC1ERS0_RKS1_>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 15968: 55 push %rbp 15969: 48 89 e5 mov %rsp,%rbp 1596c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15970: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15974: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 15978: 48 8b 45 f0 mov -0x10(%rbp),%rax 1597c: 48 8b 10 mov (%rax),%rdx 1597f: 48 8b 45 f8 mov -0x8(%rbp),%rax 15983: 48 89 10 mov %rdx,(%rax) 15986: 48 8b 45 e8 mov -0x18(%rbp),%rax 1598a: 48 8b 10 mov (%rax),%rdx 1598d: 48 8b 45 f8 mov -0x8(%rbp),%rax 15991: 48 89 50 08 mov %rdx,0x8(%rax) 15995: 5d pop %rbp 15996: c3 retq 15997: 90 nop 0000000000015998 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE6insertESt17_Rb_tree_iteratorIS5_ERKS5_>: */ iterator #ifdef __GXX_EXPERIMENTAL_CXX0X__ insert(const_iterator __position, const value_type& __x) #else insert(iterator __position, const value_type& __x) 15998: 55 push %rbp 15999: 48 89 e5 mov %rsp,%rbp 1599c: 48 83 ec 30 sub $0x30,%rsp 159a0: 48 89 7d e8 mov %rdi,-0x18(%rbp) 159a4: 48 89 75 e0 mov %rsi,-0x20(%rbp) 159a8: 48 89 55 d8 mov %rdx,-0x28(%rbp) #endif { return _M_t._M_insert_unique_(__position, __x); } 159ac: 48 8d 55 e0 lea -0x20(%rbp),%rdx 159b0: 48 8d 45 f0 lea -0x10(%rbp),%rax 159b4: 48 89 d6 mov %rdx,%rsi 159b7: 48 89 c7 mov %rax,%rdi 159ba: e8 01 db ff ff callq 134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 159bf: 48 8b 45 e8 mov -0x18(%rbp),%rax 159c3: 48 8b 55 d8 mov -0x28(%rbp),%rdx 159c7: 48 8b 4d f0 mov -0x10(%rbp),%rcx 159cb: 48 89 ce mov %rcx,%rsi 159ce: 48 89 c7 mov %rax,%rdi 159d1: e8 da d5 ff ff callq 12fb0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_@plt> 159d6: c9 leaveq 159d7: c3 retq 00000000000159d8 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_>: } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 159d8: 55 push %rbp 159d9: 48 89 e5 mov %rsp,%rbp 159dc: 48 83 ec 40 sub $0x40,%rsp 159e0: 48 89 7d d8 mov %rdi,-0x28(%rbp) 159e4: 48 89 75 d0 mov %rsi,-0x30(%rbp) erase(const _Key& __x) { pair __p = equal_range(__x); 159e8: 48 8b 55 d0 mov -0x30(%rbp),%rdx 159ec: 48 8b 45 d8 mov -0x28(%rbp),%rax 159f0: 48 89 d6 mov %rdx,%rsi 159f3: 48 89 c7 mov %rax,%rdi 159f6: e8 f5 d4 ff ff callq 12ef0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_@plt> 159fb: 48 89 c1 mov %rax,%rcx 159fe: 48 89 d0 mov %rdx,%rax 15a01: 48 89 4d c0 mov %rcx,-0x40(%rbp) 15a05: 48 89 45 c8 mov %rax,-0x38(%rbp) 15a09: 48 8b 45 c0 mov -0x40(%rbp),%rax 15a0d: 48 89 45 e0 mov %rax,-0x20(%rbp) 15a11: 48 8b 45 c8 mov -0x38(%rbp),%rax 15a15: 48 89 45 e8 mov %rax,-0x18(%rbp) const size_type __old_size = size(); 15a19: 48 8b 45 d8 mov -0x28(%rbp),%rax 15a1d: 48 89 c7 mov %rax,%rdi 15a20: e8 9b eb ff ff callq 145c0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 15a25: 48 89 45 f8 mov %rax,-0x8(%rbp) erase(__p.first, __p.second); 15a29: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15a2d: 48 8b 4d e0 mov -0x20(%rbp),%rcx 15a31: 48 8b 45 d8 mov -0x28(%rbp),%rax 15a35: 48 89 ce mov %rcx,%rsi 15a38: 48 89 c7 mov %rax,%rdi 15a3b: e8 a0 d4 ff ff callq 12ee0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt17_Rb_tree_iteratorIS3_ESB_@plt> return __old_size - size(); 15a40: 48 8b 45 d8 mov -0x28(%rbp),%rax 15a44: 48 89 c7 mov %rax,%rdi 15a47: e8 74 eb ff ff callq 145c0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 15a4c: 48 8b 55 f8 mov -0x8(%rbp),%rdx 15a50: 48 89 d1 mov %rdx,%rcx 15a53: 48 29 c1 sub %rax,%rcx 15a56: 48 89 c8 mov %rcx,%rax } 15a59: c9 leaveq 15a5a: c3 retq 15a5b: 90 nop 0000000000015a5c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev>: { _Key_compare _M_key_compare; _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() 15a5c: 55 push %rbp 15a5d: 48 89 e5 mov %rsp,%rbp 15a60: 53 push %rbx 15a61: 48 83 ec 18 sub $0x18,%rsp 15a65: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 15a69: 48 8b 45 e8 mov -0x18(%rbp),%rax 15a6d: 48 89 c7 mov %rax,%rdi 15a70: e8 9b d2 ff ff callq 12d10 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt> 15a75: 48 8b 45 e8 mov -0x18(%rbp),%rax 15a79: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 15a80: 48 8b 45 e8 mov -0x18(%rbp),%rax 15a84: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 15a8b: 00 15a8c: 48 8b 45 e8 mov -0x18(%rbp),%rax 15a90: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 15a97: 00 15a98: 48 8b 45 e8 mov -0x18(%rbp),%rax 15a9c: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 15aa3: 00 15aa4: 48 8b 45 e8 mov -0x18(%rbp),%rax 15aa8: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 15aaf: 00 { _M_initialize(); } 15ab0: 48 8b 45 e8 mov -0x18(%rbp),%rax 15ab4: 48 89 c7 mov %rax,%rdi 15ab7: e8 d4 ce ff ff callq 12990 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv@plt> 15abc: eb 1a jmp 15ad8 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev+0x7c> 15abe: 48 89 c3 mov %rax,%rbx _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 15ac1: 48 8b 45 e8 mov -0x18(%rbp),%rax 15ac5: 48 89 c7 mov %rax,%rdi 15ac8: e8 d3 e6 ff ff callq 141a0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 15acd: 48 89 d8 mov %rbx,%rax 15ad0: 48 89 c7 mov %rax,%rdi 15ad3: e8 a8 ea ff ff callq 14580 <_Unwind_Resume@plt> { _M_initialize(); } 15ad8: 48 83 c4 18 add $0x18,%rsp 15adc: 5b pop %rbx 15add: 5d pop %rbp 15ade: c3 retq 15adf: 90 nop 0000000000015ae0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED1Ev>: 15ae0: 55 push %rbp 15ae1: 48 89 e5 mov %rsp,%rbp 15ae4: 48 83 ec 10 sub $0x10,%rsp 15ae8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15aec: 48 8b 45 f8 mov -0x8(%rbp),%rax 15af0: 48 89 c7 mov %rax,%rdi 15af3: e8 e8 d8 ff ff callq 133e0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 15af8: c9 leaveq 15af9: c3 retq 0000000000015afa <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 15afa: 55 push %rbp 15afb: 48 89 e5 mov %rsp,%rbp 15afe: 48 83 ec 20 sub $0x20,%rsp 15b02: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15b06: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 15b0a: eb 49 jmp 15b55 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E+0x5b> { _M_erase(_S_right(__x)); 15b0c: 48 8b 45 e0 mov -0x20(%rbp),%rax 15b10: 48 89 c7 mov %rax,%rdi 15b13: e8 c8 dd ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 15b18: 48 89 c2 mov %rax,%rdx 15b1b: 48 8b 45 e8 mov -0x18(%rbp),%rax 15b1f: 48 89 d6 mov %rdx,%rsi 15b22: 48 89 c7 mov %rax,%rdi 15b25: e8 d6 da ff ff callq 13600 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> _Link_type __y = _S_left(__x); 15b2a: 48 8b 45 e0 mov -0x20(%rbp),%rax 15b2e: 48 89 c7 mov %rax,%rdi 15b31: e8 ea eb ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 15b36: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 15b3a: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15b3e: 48 8b 45 e8 mov -0x18(%rbp),%rax 15b42: 48 89 d6 mov %rdx,%rsi 15b45: 48 89 c7 mov %rax,%rdi 15b48: e8 33 cd ff ff callq 12880 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt> __x = __y; 15b4d: 48 8b 45 f8 mov -0x8(%rbp),%rax 15b51: 48 89 45 e0 mov %rax,-0x20(%rbp) void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 15b55: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 15b5a: 0f 95 c0 setne %al 15b5d: 84 c0 test %al,%al 15b5f: 75 ab jne 15b0c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E+0x12> _M_erase(_S_right(__x)); _Link_type __y = _S_left(__x); _M_destroy_node(__x); __x = __y; } } 15b61: c9 leaveq 15b62: c3 retq 15b63: 90 nop 0000000000015b64 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv>: _Const_Base_ptr _M_rightmost() const { return this->_M_impl._M_header._M_right; } _Link_type _M_begin() 15b64: 55 push %rbp 15b65: 48 89 e5 mov %rsp,%rbp 15b68: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 15b6c: 48 8b 45 f8 mov -0x8(%rbp),%rax 15b70: 48 8b 40 10 mov 0x10(%rax),%rax 15b74: 5d pop %rbp 15b75: c3 retq 0000000000015b76 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv>: _Node_allocator& _M_get_Node_allocator() { return *static_cast<_Node_allocator*>(&this->_M_impl); } const _Node_allocator& _M_get_Node_allocator() const 15b76: 55 push %rbp 15b77: 48 89 e5 mov %rsp,%rbp 15b7a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 15b7e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15b82: 5d pop %rbp 15b83: c3 retq 0000000000015b84 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE>: _Rb_tree_impl() : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) { _M_initialize(); } _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) 15b84: 55 push %rbp 15b85: 48 89 e5 mov %rsp,%rbp 15b88: 53 push %rbx 15b89: 48 83 ec 28 sub $0x28,%rsp 15b8d: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15b91: 48 89 75 e0 mov %rsi,-0x20(%rbp) 15b95: 48 89 55 d8 mov %rdx,-0x28(%rbp) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) 15b99: 48 8b 55 d8 mov -0x28(%rbp),%rdx 15b9d: 48 8b 45 e8 mov -0x18(%rbp),%rax 15ba1: 48 89 d6 mov %rdx,%rsi 15ba4: 48 89 c7 mov %rax,%rdi 15ba7: e8 44 d2 ff ff callq 12df0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS3_@plt> 15bac: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bb0: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 15bb7: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bbb: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 15bc2: 00 15bc3: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bc7: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 15bce: 00 15bcf: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bd3: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 15bda: 00 15bdb: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bdf: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 15be6: 00 { _M_initialize(); } 15be7: 48 8b 45 e8 mov -0x18(%rbp),%rax 15beb: 48 89 c7 mov %rax,%rdi 15bee: e8 5d d2 ff ff callq 12e50 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt> 15bf3: eb 1a jmp 15c0f <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE+0x8b> 15bf5: 48 89 c3 mov %rax,%rbx _M_node_count(0) { _M_initialize(); } _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) 15bf8: 48 8b 45 e8 mov -0x18(%rbp),%rax 15bfc: 48 89 c7 mov %rax,%rdi 15bff: e8 2c da ff ff callq 13630 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 15c04: 48 89 d8 mov %rbx,%rax 15c07: 48 89 c7 mov %rax,%rdi 15c0a: e8 71 e9 ff ff callq 14580 <_Unwind_Resume@plt> { _M_initialize(); } 15c0f: 48 83 c4 28 add $0x28,%rsp 15c13: 5b pop %rbx 15c14: 5d pop %rbp 15c15: c3 retq 0000000000015c16 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv>: _Base_ptr& _M_root() { return this->_M_impl._M_header._M_parent; } _Const_Base_ptr _M_root() const 15c16: 55 push %rbp 15c17: 48 89 e5 mov %rsp,%rbp 15c1a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 15c1e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15c22: 48 8b 40 10 mov 0x10(%rax),%rax 15c26: 5d pop %rbp 15c27: c3 retq 0000000000015c28 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_>: } template typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 15c28: 55 push %rbp 15c29: 48 89 e5 mov %rsp,%rbp 15c2c: 53 push %rbx 15c2d: 48 83 ec 38 sub $0x38,%rsp 15c31: 48 89 7d d8 mov %rdi,-0x28(%rbp) 15c35: 48 89 75 d0 mov %rsi,-0x30(%rbp) 15c39: 48 89 55 c8 mov %rdx,-0x38(%rbp) _M_copy(_Const_Link_type __x, _Link_type __p) { // Structural copy. __x and __p must be non-null. _Link_type __top = _M_clone_node(__x); 15c3d: 48 8b 55 d0 mov -0x30(%rbp),%rdx 15c41: 48 8b 45 d8 mov -0x28(%rbp),%rax 15c45: 48 89 d6 mov %rdx,%rsi 15c48: 48 89 c7 mov %rax,%rdi 15c4b: e8 30 d0 ff ff callq 12c80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt> 15c50: 48 89 45 e0 mov %rax,-0x20(%rbp) __top->_M_parent = __p; 15c54: 48 8b 45 e0 mov -0x20(%rbp),%rax 15c58: 48 8b 55 c8 mov -0x38(%rbp),%rdx 15c5c: 48 89 50 08 mov %rdx,0x8(%rax) __try { if (__x->_M_right) 15c60: 48 8b 45 d0 mov -0x30(%rbp),%rax 15c64: 48 8b 40 18 mov 0x18(%rax),%rax 15c68: 48 85 c0 test %rax,%rax 15c6b: 74 2d je 15c9a <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x72> __top->_M_right = _M_copy(_S_right(__x), __top); 15c6d: 48 8b 45 d0 mov -0x30(%rbp),%rax 15c71: 48 89 c7 mov %rax,%rdi 15c74: e8 57 d4 ff ff callq 130d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 15c79: 48 89 c1 mov %rax,%rcx 15c7c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15c80: 48 8b 45 d8 mov -0x28(%rbp),%rax 15c84: 48 89 ce mov %rcx,%rsi 15c87: 48 89 c7 mov %rax,%rdi 15c8a: e8 51 e5 ff ff callq 141e0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 15c8f: 48 89 c2 mov %rax,%rdx 15c92: 48 8b 45 e0 mov -0x20(%rbp),%rax 15c96: 48 89 50 18 mov %rdx,0x18(%rax) __p = __top; 15c9a: 48 8b 45 e0 mov -0x20(%rbp),%rax 15c9e: 48 89 45 c8 mov %rax,-0x38(%rbp) __x = _S_left(__x); 15ca2: 48 8b 45 d0 mov -0x30(%rbp),%rax 15ca6: 48 89 c7 mov %rax,%rdi 15ca9: e8 22 d6 ff ff callq 132d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt> 15cae: 48 89 45 d0 mov %rax,-0x30(%rbp) while (__x != 0) 15cb2: e9 81 00 00 00 jmpq 15d38 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x110> { _Link_type __y = _M_clone_node(__x); 15cb7: 48 8b 55 d0 mov -0x30(%rbp),%rdx 15cbb: 48 8b 45 d8 mov -0x28(%rbp),%rax 15cbf: 48 89 d6 mov %rdx,%rsi 15cc2: 48 89 c7 mov %rax,%rdi 15cc5: e8 b6 cf ff ff callq 12c80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt> 15cca: 48 89 45 e8 mov %rax,-0x18(%rbp) __p->_M_left = __y; 15cce: 48 8b 45 c8 mov -0x38(%rbp),%rax 15cd2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15cd6: 48 89 50 10 mov %rdx,0x10(%rax) __y->_M_parent = __p; 15cda: 48 8b 45 e8 mov -0x18(%rbp),%rax 15cde: 48 8b 55 c8 mov -0x38(%rbp),%rdx 15ce2: 48 89 50 08 mov %rdx,0x8(%rax) if (__x->_M_right) 15ce6: 48 8b 45 d0 mov -0x30(%rbp),%rax 15cea: 48 8b 40 18 mov 0x18(%rax),%rax 15cee: 48 85 c0 test %rax,%rax 15cf1: 74 2d je 15d20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0xf8> __y->_M_right = _M_copy(_S_right(__x), __y); 15cf3: 48 8b 45 d0 mov -0x30(%rbp),%rax 15cf7: 48 89 c7 mov %rax,%rdi 15cfa: e8 d1 d3 ff ff callq 130d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 15cff: 48 89 c1 mov %rax,%rcx 15d02: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15d06: 48 8b 45 d8 mov -0x28(%rbp),%rax 15d0a: 48 89 ce mov %rcx,%rsi 15d0d: 48 89 c7 mov %rax,%rdi 15d10: e8 cb e4 ff ff callq 141e0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 15d15: 48 89 c2 mov %rax,%rdx 15d18: 48 8b 45 e8 mov -0x18(%rbp),%rax 15d1c: 48 89 50 18 mov %rdx,0x18(%rax) __p = __y; 15d20: 48 8b 45 e8 mov -0x18(%rbp),%rax 15d24: 48 89 45 c8 mov %rax,-0x38(%rbp) __x = _S_left(__x); 15d28: 48 8b 45 d0 mov -0x30(%rbp),%rax 15d2c: 48 89 c7 mov %rax,%rdi 15d2f: e8 9c d5 ff ff callq 132d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt> 15d34: 48 89 45 d0 mov %rax,-0x30(%rbp) if (__x->_M_right) __top->_M_right = _M_copy(_S_right(__x), __top); __p = __top; __x = _S_left(__x); while (__x != 0) 15d38: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 15d3d: 0f 95 c0 setne %al 15d40: 84 c0 test %al,%al 15d42: 0f 85 6f ff ff ff jne 15cb7 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x8f> __catch(...) { _M_erase(__top); __throw_exception_again; } return __top; 15d48: 48 8b 45 e0 mov -0x20(%rbp),%rax } 15d4c: 48 83 c4 38 add $0x38,%rsp 15d50: 5b pop %rbx 15d51: 5d pop %rbp 15d52: c3 retq 15d53: 48 89 c3 mov %rax,%rbx __y->_M_right = _M_copy(_S_right(__x), __y); __p = __y; __x = _S_left(__x); } } __catch(...) 15d56: e8 25 e5 ff ff callq 14280 <__cxa_end_catch@plt> 15d5b: 48 89 d8 mov %rbx,%rax 15d5e: 48 89 c7 mov %rax,%rdi 15d61: e8 1a e8 ff ff callq 14580 <_Unwind_Resume@plt> 15d66: 48 89 c7 mov %rax,%rdi 15d69: e8 52 e6 ff ff callq 143c0 <__cxa_begin_catch@plt> { _M_erase(__top); 15d6e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15d72: 48 8b 45 d8 mov -0x28(%rbp),%rax 15d76: 48 89 d6 mov %rdx,%rsi 15d79: 48 89 c7 mov %rax,%rdi 15d7c: e8 cf d8 ff ff callq 13650 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> __throw_exception_again; 15d81: e8 8a d0 ff ff callq 12e10 <__cxa_rethrow@plt> 0000000000015d86 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv>: _Link_type _M_begin() { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } _Const_Link_type _M_begin() const 15d86: 55 push %rbp 15d87: 48 89 e5 mov %rsp,%rbp 15d8a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type> (this->_M_impl._M_header._M_parent); 15d8e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15d92: 48 8b 40 10 mov 0x10(%rax),%rax } 15d96: 5d pop %rbp 15d97: c3 retq 0000000000015d98 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv>: _Link_type _M_end() 15d98: 55 push %rbp 15d99: 48 89 e5 mov %rsp,%rbp 15d9c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 15da0: 48 8b 45 f8 mov -0x8(%rbp),%rax 15da4: 48 83 c0 08 add $0x8,%rax 15da8: 5d pop %rbp 15da9: c3 retq 0000000000015daa <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv>: _Rb_tree_impl<_Compare> _M_impl; protected: _Base_ptr& _M_root() 15daa: 55 push %rbp 15dab: 48 89 e5 mov %rsp,%rbp 15dae: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 15db2: 48 8b 45 f8 mov -0x8(%rbp),%rax 15db6: 48 83 c0 10 add $0x10,%rax 15dba: 5d pop %rbp 15dbb: c3 retq 0000000000015dbc <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_minimumEPSt18_Rb_tree_node_base>: static const _Key& _S_key(_Const_Base_ptr __x) { return _KeyOfValue()(_S_value(__x)); } static _Base_ptr _S_minimum(_Base_ptr __x) 15dbc: 55 push %rbp 15dbd: 48 89 e5 mov %rsp,%rbp 15dc0: 48 83 ec 10 sub $0x10,%rsp 15dc4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _Rb_tree_node_base::_S_minimum(__x); } 15dc8: 48 8b 45 f8 mov -0x8(%rbp),%rax 15dcc: 48 89 c7 mov %rax,%rdi 15dcf: e8 dc e4 ff ff callq 142b0 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_@plt> 15dd4: c9 leaveq 15dd5: c3 retq 0000000000015dd6 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_leftmostEv>: _Const_Base_ptr _M_root() const { return this->_M_impl._M_header._M_parent; } _Base_ptr& _M_leftmost() 15dd6: 55 push %rbp 15dd7: 48 89 e5 mov %rsp,%rbp 15dda: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 15dde: 48 8b 45 f8 mov -0x8(%rbp),%rax 15de2: 48 83 c0 18 add $0x18,%rax 15de6: 5d pop %rbp 15de7: c3 retq 0000000000015de8 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_maximumEPSt18_Rb_tree_node_base>: static _Const_Base_ptr _S_minimum(_Const_Base_ptr __x) { return _Rb_tree_node_base::_S_minimum(__x); } static _Base_ptr _S_maximum(_Base_ptr __x) 15de8: 55 push %rbp 15de9: 48 89 e5 mov %rsp,%rbp 15dec: 48 83 ec 10 sub $0x10,%rsp 15df0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _Rb_tree_node_base::_S_maximum(__x); } 15df4: 48 8b 45 f8 mov -0x8(%rbp),%rax 15df8: 48 89 c7 mov %rax,%rdi 15dfb: e8 70 e5 ff ff callq 14370 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_@plt> 15e00: c9 leaveq 15e01: c3 retq 0000000000015e02 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_rightmostEv>: _Const_Base_ptr _M_leftmost() const { return this->_M_impl._M_header._M_left; } _Base_ptr& _M_rightmost() 15e02: 55 push %rbp 15e03: 48 89 e5 mov %rsp,%rbp 15e06: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 15e0a: 48 8b 45 f8 mov -0x8(%rbp),%rax 15e0e: 48 83 c0 20 add $0x20,%rax 15e12: 5d pop %rbp 15e13: c3 retq 0000000000015e14 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 15e14: 55 push %rbp 15e15: 48 89 e5 mov %rsp,%rbp 15e18: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15e1c: 5d pop %rbp 15e1d: c3 retq 0000000000015e1e <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base>: static _Const_Link_type _S_left(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_left); } static _Link_type _S_right(_Base_ptr __x) 15e1e: 55 push %rbp 15e1f: 48 89 e5 mov %rsp,%rbp 15e22: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 15e26: 48 8b 45 f8 mov -0x8(%rbp),%rax 15e2a: 48 8b 40 18 mov 0x18(%rax),%rax 15e2e: 5d pop %rbp 15e2f: c3 retq 0000000000015e30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base>: static const _Key& _S_key(_Const_Link_type __x) { return _KeyOfValue()(_S_value(__x)); } static _Link_type _S_left(_Base_ptr __x) 15e30: 55 push %rbp 15e31: 48 89 e5 mov %rsp,%rbp 15e34: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 15e38: 48 8b 45 f8 mov -0x8(%rbp),%rax 15e3c: 48 8b 40 10 mov 0x10(%rax),%rax 15e40: 5d pop %rbp 15e41: c3 retq 0000000000015e42 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 15e42: 55 push %rbp 15e43: 48 89 e5 mov %rsp,%rbp 15e46: 53 push %rbx 15e47: 48 83 ec 28 sub $0x28,%rsp 15e4b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 15e4f: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 15e53: 48 8b 45 d0 mov -0x30(%rbp),%rax 15e57: 48 83 c0 20 add $0x20,%rax 15e5b: 48 89 c7 mov %rax,%rdi 15e5e: e8 9d ce ff ff callq 12d00 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt> 15e63: 48 89 c3 mov %rax,%rbx 15e66: 48 8d 45 ef lea -0x11(%rbp),%rax 15e6a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 15e6e: 48 89 d6 mov %rdx,%rsi 15e71: 48 89 c7 mov %rax,%rdi 15e74: e8 97 cb ff ff callq 12a10 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt> 15e79: 48 8d 45 ef lea -0x11(%rbp),%rax 15e7d: 48 89 de mov %rbx,%rsi 15e80: 48 89 c7 mov %rax,%rdi 15e83: e8 a8 da ff ff callq 13930 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_@plt> 15e88: 48 8d 45 ef lea -0x11(%rbp),%rax 15e8c: 48 89 c7 mov %rax,%rdi 15e8f: e8 3c e0 ff ff callq 13ed0 <_ZNSaIP11XLogHandlerED1Ev@plt> _M_put_node(__p); 15e94: 48 8b 55 d0 mov -0x30(%rbp),%rdx 15e98: 48 8b 45 d8 mov -0x28(%rbp),%rax 15e9c: 48 89 d6 mov %rdx,%rsi 15e9f: 48 89 c7 mov %rax,%rdi 15ea2: e8 d9 cb ff ff callq 12a80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt> } 15ea7: 48 83 c4 28 add $0x28,%rsp 15eab: 5b pop %rbx 15eac: 5d pop %rbp 15ead: c3 retq 15eae: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 15eb1: 48 8d 45 ef lea -0x11(%rbp),%rax 15eb5: 48 89 c7 mov %rax,%rdi 15eb8: e8 13 e0 ff ff callq 13ed0 <_ZNSaIP11XLogHandlerED1Ev@plt> 15ebd: 48 89 d8 mov %rbx,%rax 15ec0: 48 89 c7 mov %rax,%rdi 15ec3: e8 b8 e6 ff ff callq 14580 <_Unwind_Resume@plt> 0000000000015ec8 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_>: size_type count(const key_type& __k) const; iterator lower_bound(const key_type& __k) 15ec8: 55 push %rbp 15ec9: 48 89 e5 mov %rsp,%rbp 15ecc: 53 push %rbx 15ecd: 48 83 ec 18 sub $0x18,%rsp 15ed1: 48 89 7d e8 mov %rdi,-0x18(%rbp) 15ed5: 48 89 75 e0 mov %rsi,-0x20(%rbp) { return _M_lower_bound(_M_begin(), _M_end(), __k); } 15ed9: 48 8b 45 e8 mov -0x18(%rbp),%rax 15edd: 48 89 c7 mov %rax,%rdi 15ee0: e8 7b e6 ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 15ee5: 48 89 c3 mov %rax,%rbx 15ee8: 48 8b 45 e8 mov -0x18(%rbp),%rax 15eec: 48 89 c7 mov %rax,%rdi 15eef: e8 5c d6 ff ff callq 13550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 15ef4: 48 89 c6 mov %rax,%rsi 15ef7: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15efb: 48 8b 45 e8 mov -0x18(%rbp),%rax 15eff: 48 89 d1 mov %rdx,%rcx 15f02: 48 89 da mov %rbx,%rdx 15f05: 48 89 c7 mov %rax,%rdi 15f08: e8 c3 cf ff ff callq 12ed0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 15f0d: 48 83 c4 18 add $0x18,%rsp 15f11: 5b pop %rbx 15f12: 5d pop %rbp 15f13: c3 retq 0000000000015f14 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv>: _Rb_tree& operator=(const _Rb_tree& __x); // Accessors. _Compare key_comp() const 15f14: 55 push %rbp 15f15: 48 89 e5 mov %rsp,%rbp 15f18: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_key_compare; } 15f1c: 5d pop %rbp 15f1d: c3 retq 0000000000015f1e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv>: return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() 15f1e: 55 push %rbp 15f1f: 48 89 e5 mov %rsp,%rbp 15f22: 48 83 ec 20 sub $0x20,%rsp 15f26: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 15f2a: 48 8b 45 e8 mov -0x18(%rbp),%rax 15f2e: 48 8d 50 08 lea 0x8(%rax),%rdx 15f32: 48 8d 45 f0 lea -0x10(%rbp),%rax 15f36: 48 89 d6 mov %rdx,%rsi 15f39: 48 89 c7 mov %rax,%rdi 15f3c: e8 ff da ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 15f41: 48 8b 45 f0 mov -0x10(%rbp),%rax 15f45: c9 leaveq 15f46: c3 retq 15f47: 90 nop 0000000000015f48 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E>: explicit _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { } _Rb_tree_const_iterator(const iterator& __it) 15f48: 55 push %rbp 15f49: 48 89 e5 mov %rsp,%rbp 15f4c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15f50: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 15f54: 48 8b 45 f0 mov -0x10(%rbp),%rax 15f58: 48 8b 10 mov (%rax),%rdx 15f5b: 48 8b 45 f8 mov -0x8(%rbp),%rax 15f5f: 48 89 10 mov %rdx,(%rax) 15f62: 5d pop %rbp 15f63: c3 retq 0000000000015f64 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_>: typename _Compare, typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 15f64: 55 push %rbp 15f65: 48 89 e5 mov %rsp,%rbp 15f68: 53 push %rbx 15f69: 48 83 ec 78 sub $0x78,%rsp 15f6d: 48 89 7d a8 mov %rdi,-0x58(%rbp) 15f71: 48 89 75 a0 mov %rsi,-0x60(%rbp) 15f75: 48 89 55 98 mov %rdx,-0x68(%rbp) #else _M_insert_unique_(const_iterator __position, const _Val& __v) #endif { // end() if (__position._M_node == _M_end()) 15f79: 48 8b 5d a0 mov -0x60(%rbp),%rbx 15f7d: 48 8b 45 a8 mov -0x58(%rbp),%rax 15f81: 48 89 c7 mov %rax,%rdi 15f84: e8 d7 e5 ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 15f89: 48 39 c3 cmp %rax,%rbx 15f8c: 0f 94 c0 sete %al 15f8f: 84 c0 test %al,%al 15f91: 0f 84 c8 00 00 00 je 1605f <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0xfb> { if (size() > 0 15f97: 48 8b 45 a8 mov -0x58(%rbp),%rax 15f9b: 48 89 c7 mov %rax,%rdi 15f9e: e8 1d e6 ff ff callq 145c0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 15fa3: 48 85 c0 test %rax,%rax 15fa6: 74 4d je 15ff5 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x91> 15fa8: 48 8b 55 98 mov -0x68(%rbp),%rdx 15fac: 48 8d 45 eb lea -0x15(%rbp),%rax 15fb0: 48 89 d6 mov %rdx,%rsi 15fb3: 48 89 c7 mov %rax,%rdi 15fb6: e8 c5 db ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 15fbb: 48 89 c3 mov %rax,%rbx 15fbe: 48 8b 45 a8 mov -0x58(%rbp),%rax 15fc2: 48 89 c7 mov %rax,%rdi 15fc5: e8 c6 e5 ff ff callq 14590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 15fca: 48 8b 00 mov (%rax),%rax 15fcd: 48 89 c7 mov %rax,%rdi 15fd0: e8 db da ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 15fd5: 48 89 c1 mov %rax,%rcx 15fd8: 48 8b 45 a8 mov -0x58(%rbp),%rax 15fdc: 48 89 da mov %rbx,%rdx 15fdf: 48 89 ce mov %rcx,%rsi 15fe2: 48 89 c7 mov %rax,%rdi 15fe5: e8 86 d5 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 15fea: 84 c0 test %al,%al 15fec: 74 07 je 15ff5 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x91> 15fee: b8 01 00 00 00 mov $0x1,%eax 15ff3: eb 05 jmp 15ffa <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x96> 15ff5: b8 00 00 00 00 mov $0x0,%eax 15ffa: 84 c0 test %al,%al 15ffc: 74 29 je 16027 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0xc3> && _M_impl._M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v))) return _M_insert_(0, _M_rightmost(), _GLIBCXX_FORWARD(_Arg, __v)); 15ffe: 48 8b 45 a8 mov -0x58(%rbp),%rax 16002: 48 89 c7 mov %rax,%rdi 16005: e8 86 e5 ff ff callq 14590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 1600a: 48 8b 10 mov (%rax),%rdx 1600d: 48 8b 4d 98 mov -0x68(%rbp),%rcx 16011: 48 8b 45 a8 mov -0x58(%rbp),%rax 16015: be 00 00 00 00 mov $0x0,%esi 1601a: 48 89 c7 mov %rax,%rdi 1601d: e8 9e e4 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 16022: e9 03 03 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 16027: 48 8b 55 98 mov -0x68(%rbp),%rdx 1602b: 48 8b 45 a8 mov -0x58(%rbp),%rax 1602f: 48 89 d6 mov %rdx,%rsi 16032: 48 89 c7 mov %rax,%rdi 16035: e8 86 d0 ff ff callq 130c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 1603a: 48 89 c1 mov %rax,%rcx 1603d: 89 d0 mov %edx,%eax 1603f: 48 89 4d 80 mov %rcx,-0x80(%rbp) 16043: 89 45 88 mov %eax,-0x78(%rbp) 16046: 48 8b 45 80 mov -0x80(%rbp),%rax 1604a: 48 89 45 b0 mov %rax,-0x50(%rbp) 1604e: 48 8b 45 88 mov -0x78(%rbp),%rax 16052: 48 89 45 b8 mov %rax,-0x48(%rbp) 16056: 48 8b 45 b0 mov -0x50(%rbp),%rax 1605a: e9 cb 02 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else if (_M_impl._M_key_compare(_KeyOfValue()(__v), 1605f: 48 8b 45 a0 mov -0x60(%rbp),%rax 16063: 48 89 c7 mov %rax,%rdi 16066: e8 45 da ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1606b: 48 89 c3 mov %rax,%rbx 1606e: 48 8b 55 98 mov -0x68(%rbp),%rdx 16072: 48 8d 45 ec lea -0x14(%rbp),%rax 16076: 48 89 d6 mov %rdx,%rsi 16079: 48 89 c7 mov %rax,%rdi 1607c: e8 ff da ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16081: 48 89 c1 mov %rax,%rcx 16084: 48 8b 45 a8 mov -0x58(%rbp),%rax 16088: 48 89 da mov %rbx,%rdx 1608b: 48 89 ce mov %rcx,%rsi 1608e: 48 89 c7 mov %rax,%rdi 16091: e8 da d4 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16096: 84 c0 test %al,%al 16098: 0f 84 2d 01 00 00 je 161cb <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x267> _S_key(__position._M_node))) { // First, try before... const_iterator __before = __position; 1609e: 48 8b 45 a0 mov -0x60(%rbp),%rax 160a2: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_leftmost()) // begin() 160a6: 48 8b 5d a0 mov -0x60(%rbp),%rbx 160aa: 48 8b 45 a8 mov -0x58(%rbp),%rax 160ae: 48 89 c7 mov %rax,%rdi 160b1: e8 0a d5 ff ff callq 135c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 160b6: 48 8b 00 mov (%rax),%rax 160b9: 48 39 c3 cmp %rax,%rbx 160bc: 0f 94 c0 sete %al 160bf: 84 c0 test %al,%al 160c1: 74 39 je 160fc <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x198> return _M_insert_(_M_leftmost(), _M_leftmost(), _GLIBCXX_FORWARD(_Arg, __v)); 160c3: 48 8b 45 a8 mov -0x58(%rbp),%rax 160c7: 48 89 c7 mov %rax,%rdi 160ca: e8 f1 d4 ff ff callq 135c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 160cf: 48 8b 18 mov (%rax),%rbx 160d2: 48 8b 45 a8 mov -0x58(%rbp),%rax 160d6: 48 89 c7 mov %rax,%rdi 160d9: e8 e2 d4 ff ff callq 135c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 160de: 48 8b 30 mov (%rax),%rsi 160e1: 48 8b 55 98 mov -0x68(%rbp),%rdx 160e5: 48 8b 45 a8 mov -0x58(%rbp),%rax 160e9: 48 89 d1 mov %rdx,%rcx 160ec: 48 89 da mov %rbx,%rdx 160ef: 48 89 c7 mov %rax,%rdi 160f2: e8 c9 e3 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 160f7: e9 2e 02 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), 160fc: 48 8b 55 98 mov -0x68(%rbp),%rdx 16100: 48 8d 45 ed lea -0x13(%rbp),%rax 16104: 48 89 d6 mov %rdx,%rsi 16107: 48 89 c7 mov %rax,%rdi 1610a: e8 71 da ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 1610f: 48 89 c3 mov %rax,%rbx 16112: 48 8d 45 e0 lea -0x20(%rbp),%rax 16116: 48 89 c7 mov %rax,%rdi 16119: e8 12 cb ff ff callq 12c30 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv@plt> 1611e: 48 8b 00 mov (%rax),%rax 16121: 48 89 c7 mov %rax,%rdi 16124: e8 87 d9 ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 16129: 48 89 c1 mov %rax,%rcx 1612c: 48 8b 45 a8 mov -0x58(%rbp),%rax 16130: 48 89 da mov %rbx,%rdx 16133: 48 89 ce mov %rcx,%rsi 16136: 48 89 c7 mov %rax,%rdi 16139: e8 32 d4 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 1613e: 84 c0 test %al,%al 16140: 74 51 je 16193 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x22f> _KeyOfValue()(__v))) { if (_S_right(__before._M_node) == 0) 16142: 48 8b 45 e0 mov -0x20(%rbp),%rax 16146: 48 89 c7 mov %rax,%rdi 16149: e8 02 ca ff ff callq 12b50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 1614e: 48 85 c0 test %rax,%rax 16151: 0f 94 c0 sete %al 16154: 84 c0 test %al,%al 16156: 74 1e je 16176 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x212> return _M_insert_(0, __before._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 16158: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1615c: 48 8b 4d 98 mov -0x68(%rbp),%rcx 16160: 48 8b 45 a8 mov -0x58(%rbp),%rax 16164: be 00 00 00 00 mov $0x0,%esi 16169: 48 89 c7 mov %rax,%rdi 1616c: e8 4f e3 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 16171: e9 b4 01 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> else return _M_insert_(__position._M_node, __position._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 16176: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1617a: 48 8b 75 a0 mov -0x60(%rbp),%rsi 1617e: 48 8b 4d 98 mov -0x68(%rbp),%rcx 16182: 48 8b 45 a8 mov -0x58(%rbp),%rax 16186: 48 89 c7 mov %rax,%rdi 16189: e8 32 e3 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 1618e: e9 97 01 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 16193: 48 8b 55 98 mov -0x68(%rbp),%rdx 16197: 48 8b 45 a8 mov -0x58(%rbp),%rax 1619b: 48 89 d6 mov %rdx,%rsi 1619e: 48 89 c7 mov %rax,%rdi 161a1: e8 1a cf ff ff callq 130c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 161a6: 48 89 c1 mov %rax,%rcx 161a9: 89 d0 mov %edx,%eax 161ab: 48 89 4d 80 mov %rcx,-0x80(%rbp) 161af: 89 45 88 mov %eax,-0x78(%rbp) 161b2: 48 8b 45 80 mov -0x80(%rbp),%rax 161b6: 48 89 45 c0 mov %rax,-0x40(%rbp) 161ba: 48 8b 45 88 mov -0x78(%rbp),%rax 161be: 48 89 45 c8 mov %rax,-0x38(%rbp) 161c2: 48 8b 45 c0 mov -0x40(%rbp),%rax 161c6: e9 5f 01 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else if (_M_impl._M_key_compare(_S_key(__position._M_node), 161cb: 48 8b 55 98 mov -0x68(%rbp),%rdx 161cf: 48 8d 45 ee lea -0x12(%rbp),%rax 161d3: 48 89 d6 mov %rdx,%rsi 161d6: 48 89 c7 mov %rax,%rdi 161d9: e8 a2 d9 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 161de: 48 89 c3 mov %rax,%rbx 161e1: 48 8b 45 a0 mov -0x60(%rbp),%rax 161e5: 48 89 c7 mov %rax,%rdi 161e8: e8 c3 d8 ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 161ed: 48 89 c1 mov %rax,%rcx 161f0: 48 8b 45 a8 mov -0x58(%rbp),%rax 161f4: 48 89 da mov %rbx,%rdx 161f7: 48 89 ce mov %rcx,%rsi 161fa: 48 89 c7 mov %rax,%rdi 161fd: e8 6e d3 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16202: 84 c0 test %al,%al 16204: 0f 84 14 01 00 00 je 1631e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3ba> _KeyOfValue()(__v))) { // ... then try after. const_iterator __after = __position; 1620a: 48 8b 45 a0 mov -0x60(%rbp),%rax 1620e: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_rightmost()) 16212: 48 8b 5d a0 mov -0x60(%rbp),%rbx 16216: 48 8b 45 a8 mov -0x58(%rbp),%rax 1621a: 48 89 c7 mov %rax,%rdi 1621d: e8 6e e3 ff ff callq 14590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 16222: 48 8b 00 mov (%rax),%rax 16225: 48 39 c3 cmp %rax,%rbx 16228: 0f 94 c0 sete %al 1622b: 84 c0 test %al,%al 1622d: 74 29 je 16258 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x2f4> return _M_insert_(0, _M_rightmost(), _GLIBCXX_FORWARD(_Arg, __v)); 1622f: 48 8b 45 a8 mov -0x58(%rbp),%rax 16233: 48 89 c7 mov %rax,%rdi 16236: e8 55 e3 ff ff callq 14590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 1623b: 48 8b 10 mov (%rax),%rdx 1623e: 48 8b 4d 98 mov -0x68(%rbp),%rcx 16242: 48 8b 45 a8 mov -0x58(%rbp),%rax 16246: be 00 00 00 00 mov $0x0,%esi 1624b: 48 89 c7 mov %rax,%rdi 1624e: e8 6d e2 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 16253: e9 d2 00 00 00 jmpq 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> else if (_M_impl._M_key_compare(_KeyOfValue()(__v), 16258: 48 8d 45 e0 lea -0x20(%rbp),%rax 1625c: 48 89 c7 mov %rax,%rdi 1625f: e8 8c e0 ff ff callq 142f0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv@plt> 16264: 48 8b 00 mov (%rax),%rax 16267: 48 89 c7 mov %rax,%rdi 1626a: e8 41 d8 ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1626f: 48 89 c3 mov %rax,%rbx 16272: 48 8b 55 98 mov -0x68(%rbp),%rdx 16276: 48 8d 45 ef lea -0x11(%rbp),%rax 1627a: 48 89 d6 mov %rdx,%rsi 1627d: 48 89 c7 mov %rax,%rdi 16280: e8 fb d8 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16285: 48 89 c1 mov %rax,%rcx 16288: 48 8b 45 a8 mov -0x58(%rbp),%rax 1628c: 48 89 da mov %rbx,%rdx 1628f: 48 89 ce mov %rcx,%rsi 16292: 48 89 c7 mov %rax,%rdi 16295: e8 d6 d2 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 1629a: 84 c0 test %al,%al 1629c: 74 4b je 162e9 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x385> _S_key((++__after)._M_node))) { if (_S_right(__position._M_node) == 0) 1629e: 48 8b 45 a0 mov -0x60(%rbp),%rax 162a2: 48 89 c7 mov %rax,%rdi 162a5: e8 a6 c8 ff ff callq 12b50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 162aa: 48 85 c0 test %rax,%rax 162ad: 0f 94 c0 sete %al 162b0: 84 c0 test %al,%al 162b2: 74 1b je 162cf <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x36b> return _M_insert_(0, __position._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 162b4: 48 8b 55 a0 mov -0x60(%rbp),%rdx 162b8: 48 8b 4d 98 mov -0x68(%rbp),%rcx 162bc: 48 8b 45 a8 mov -0x58(%rbp),%rax 162c0: be 00 00 00 00 mov $0x0,%esi 162c5: 48 89 c7 mov %rax,%rdi 162c8: e8 f3 e1 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 162cd: eb 5b jmp 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> else return _M_insert_(__after._M_node, __after._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 162cf: 48 8b 55 e0 mov -0x20(%rbp),%rdx 162d3: 48 8b 75 e0 mov -0x20(%rbp),%rsi 162d7: 48 8b 4d 98 mov -0x68(%rbp),%rcx 162db: 48 8b 45 a8 mov -0x58(%rbp),%rax 162df: 48 89 c7 mov %rax,%rdi 162e2: e8 d9 e1 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 162e7: eb 41 jmp 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 162e9: 48 8b 55 98 mov -0x68(%rbp),%rdx 162ed: 48 8b 45 a8 mov -0x58(%rbp),%rax 162f1: 48 89 d6 mov %rdx,%rsi 162f4: 48 89 c7 mov %rax,%rdi 162f7: e8 c4 cd ff ff callq 130c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 162fc: 48 89 c1 mov %rax,%rcx 162ff: 89 d0 mov %edx,%eax 16301: 48 89 4d 80 mov %rcx,-0x80(%rbp) 16305: 89 45 88 mov %eax,-0x78(%rbp) 16308: 48 8b 45 80 mov -0x80(%rbp),%rax 1630c: 48 89 45 d0 mov %rax,-0x30(%rbp) 16310: 48 8b 45 88 mov -0x78(%rbp),%rax 16314: 48 89 45 d8 mov %rax,-0x28(%rbp) 16318: 48 8b 45 d0 mov -0x30(%rbp),%rax 1631c: eb 0c jmp 1632a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else // Equivalent keys. return __position._M_const_cast(); 1631e: 48 8d 45 a0 lea -0x60(%rbp),%rax 16322: 48 89 c7 mov %rax,%rdi 16325: e8 96 df ff ff callq 142c0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEE13_M_const_castEv@plt> } 1632a: 48 83 c4 78 add $0x78,%rsp 1632e: 5b pop %rbx 1632f: 5d pop %rbp 16330: c3 retq 16331: 90 nop 0000000000016332 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_>: typename _Compare, typename _Alloc> pair::iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 16332: 55 push %rbp 16333: 48 89 e5 mov %rsp,%rbp 16336: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 1633d: 48 89 bd 68 ff ff ff mov %rdi,-0x98(%rbp) 16344: 48 89 b5 60 ff ff ff mov %rsi,-0xa0(%rbp) equal_range(const _Key& __k) { _Link_type __x = _M_begin(); 1634b: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 16352: 48 89 c7 mov %rax,%rdi 16355: e8 f6 d1 ff ff callq 13550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 1635a: 48 89 45 e0 mov %rax,-0x20(%rbp) _Link_type __y = _M_end(); 1635e: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 16365: 48 89 c7 mov %rax,%rdi 16368: e8 f3 e1 ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 1636d: 48 89 45 e8 mov %rax,-0x18(%rbp) while (__x != 0) 16371: e9 38 01 00 00 jmpq 164ae <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> { if (_M_impl._M_key_compare(_S_key(__x), __k)) 16376: 48 8b 45 e0 mov -0x20(%rbp),%rax 1637a: 48 89 c7 mov %rax,%rdi 1637d: e8 ce c8 ff ff callq 12c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 16382: 48 89 c1 mov %rax,%rcx 16385: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1638c: 48 8b 95 60 ff ff ff mov -0xa0(%rbp),%rdx 16393: 48 89 ce mov %rcx,%rsi 16396: 48 89 c7 mov %rax,%rdi 16399: e8 d2 d1 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 1639e: 84 c0 test %al,%al 163a0: 74 15 je 163b7 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x85> __x = _S_right(__x); 163a2: 48 8b 45 e0 mov -0x20(%rbp),%rax 163a6: 48 89 c7 mov %rax,%rdi 163a9: e8 32 d5 ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 163ae: 48 89 45 e0 mov %rax,-0x20(%rbp) 163b2: e9 f7 00 00 00 jmpq 164ae <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> else if (_M_impl._M_key_compare(__k, _S_key(__x))) 163b7: 48 8b 45 e0 mov -0x20(%rbp),%rax 163bb: 48 89 c7 mov %rax,%rdi 163be: e8 8d c8 ff ff callq 12c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 163c3: 48 89 c2 mov %rax,%rdx 163c6: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 163cd: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 163d4: 48 89 ce mov %rcx,%rsi 163d7: 48 89 c7 mov %rax,%rdi 163da: e8 91 d1 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 163df: 84 c0 test %al,%al 163e1: 74 1d je 16400 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0xce> __y = __x, __x = _S_left(__x); 163e3: 48 8b 45 e0 mov -0x20(%rbp),%rax 163e7: 48 89 45 e8 mov %rax,-0x18(%rbp) 163eb: 48 8b 45 e0 mov -0x20(%rbp),%rax 163ef: 48 89 c7 mov %rax,%rdi 163f2: e8 29 e3 ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 163f7: 48 89 45 e0 mov %rax,-0x20(%rbp) 163fb: e9 ae 00 00 00 jmpq 164ae <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> else { _Link_type __xu(__x), __yu(__y); 16400: 48 8b 45 e0 mov -0x20(%rbp),%rax 16404: 48 89 45 f0 mov %rax,-0x10(%rbp) 16408: 48 8b 45 e8 mov -0x18(%rbp),%rax 1640c: 48 89 45 f8 mov %rax,-0x8(%rbp) __y = __x, __x = _S_left(__x); 16410: 48 8b 45 e0 mov -0x20(%rbp),%rax 16414: 48 89 45 e8 mov %rax,-0x18(%rbp) 16418: 48 8b 45 e0 mov -0x20(%rbp),%rax 1641c: 48 89 c7 mov %rax,%rdi 1641f: e8 fc e2 ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 16424: 48 89 45 e0 mov %rax,-0x20(%rbp) __xu = _S_right(__xu); 16428: 48 8b 45 f0 mov -0x10(%rbp),%rax 1642c: 48 89 c7 mov %rax,%rdi 1642f: e8 ac d4 ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 16434: 48 89 45 f0 mov %rax,-0x10(%rbp) return pair(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); 16438: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 1643f: 48 8b 55 f8 mov -0x8(%rbp),%rdx 16443: 48 8b 75 f0 mov -0x10(%rbp),%rsi 16447: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1644e: 48 89 c7 mov %rax,%rdi 16451: e8 ba db ff ff callq 14010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 16456: 48 89 45 b0 mov %rax,-0x50(%rbp) 1645a: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 16461: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16465: 48 8b 75 e0 mov -0x20(%rbp),%rsi 16469: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 16470: 48 89 c7 mov %rax,%rdi 16473: e8 58 ca ff ff callq 12ed0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 16478: 48 89 45 a0 mov %rax,-0x60(%rbp) 1647c: 48 8d 55 b0 lea -0x50(%rbp),%rdx 16480: 48 8d 4d a0 lea -0x60(%rbp),%rcx 16484: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 1648b: 48 89 ce mov %rcx,%rsi 1648e: 48 89 c7 mov %rax,%rdi 16491: e8 3a df ff ff callq 143d0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt> 16496: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 1649d: 48 89 45 90 mov %rax,-0x70(%rbp) 164a1: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 164a8: 48 89 45 98 mov %rax,-0x68(%rbp) 164ac: eb 5d jmp 1650b <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x1d9> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: equal_range(const _Key& __k) { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); while (__x != 0) 164ae: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 164b3: 0f 95 c0 setne %al 164b6: 84 c0 test %al,%al 164b8: 0f 85 b8 fe ff ff jne 16376 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x44> iterator>(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); } } return pair(iterator(__y), iterator(__y)); 164be: 48 8b 55 e8 mov -0x18(%rbp),%rdx 164c2: 48 8d 45 d0 lea -0x30(%rbp),%rax 164c6: 48 89 d6 mov %rdx,%rsi 164c9: 48 89 c7 mov %rax,%rdi 164cc: e8 6f d5 ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 164d1: 48 8b 55 e8 mov -0x18(%rbp),%rdx 164d5: 48 8d 45 c0 lea -0x40(%rbp),%rax 164d9: 48 89 d6 mov %rdx,%rsi 164dc: 48 89 c7 mov %rax,%rdi 164df: e8 5c d5 ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 164e4: 48 8d 55 d0 lea -0x30(%rbp),%rdx 164e8: 48 8d 4d c0 lea -0x40(%rbp),%rcx 164ec: 48 8d 45 80 lea -0x80(%rbp),%rax 164f0: 48 89 ce mov %rcx,%rsi 164f3: 48 89 c7 mov %rax,%rdi 164f6: e8 d5 de ff ff callq 143d0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt> 164fb: 48 8b 45 80 mov -0x80(%rbp),%rax 164ff: 48 89 45 90 mov %rax,-0x70(%rbp) 16503: 48 8b 45 88 mov -0x78(%rbp),%rax 16507: 48 89 45 98 mov %rax,-0x68(%rbp) 1650b: 48 8b 45 90 mov -0x70(%rbp),%rax 1650f: 48 8b 55 98 mov -0x68(%rbp),%rdx } 16513: c9 leaveq 16514: c3 retq 16515: 90 nop 0000000000016516 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv>: bool empty() const { return _M_impl._M_node_count == 0; } size_type size() const 16516: 55 push %rbp 16517: 48 89 e5 mov %rsp,%rbp 1651a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_node_count; } 1651e: 48 8b 45 f8 mov -0x8(%rbp),%rax 16522: 48 8b 40 28 mov 0x28(%rax),%rax 16526: 5d pop %rbp 16527: c3 retq 0000000000016528 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt17_Rb_tree_iteratorIS3_ESB_>: _M_erase_aux(__first, __last); return __last._M_const_cast(); } #else void erase(iterator __first, iterator __last) 16528: 55 push %rbp 16529: 48 89 e5 mov %rsp,%rbp 1652c: 48 83 ec 40 sub $0x40,%rsp 16530: 48 89 7d d8 mov %rdi,-0x28(%rbp) 16534: 48 89 75 d0 mov %rsi,-0x30(%rbp) 16538: 48 89 55 c0 mov %rdx,-0x40(%rbp) { _M_erase_aux(__first, __last); } 1653c: 48 8d 55 c0 lea -0x40(%rbp),%rdx 16540: 48 8d 45 f0 lea -0x10(%rbp),%rax 16544: 48 89 d6 mov %rdx,%rsi 16547: 48 89 c7 mov %rax,%rdi 1654a: e8 71 cf ff ff callq 134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 1654f: 48 8d 55 d0 lea -0x30(%rbp),%rdx 16553: 48 8d 45 e0 lea -0x20(%rbp),%rax 16557: 48 89 d6 mov %rdx,%rsi 1655a: 48 89 c7 mov %rax,%rdi 1655d: e8 5e cf ff ff callq 134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 16562: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16566: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1656a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1656e: 48 89 ce mov %rcx,%rsi 16571: 48 89 c7 mov %rax,%rdi 16574: e8 07 dc ff ff callq 14180 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_@plt> 16579: c9 leaveq 1657a: c3 retq 1657b: 90 nop 000000000001657c <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 1657c: 55 push %rbp 1657d: 48 89 e5 mov %rsp,%rbp 16580: 48 83 ec 10 sub $0x10,%rsp 16584: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16588: 48 8b 45 f8 mov -0x8(%rbp),%rax 1658c: 48 89 c7 mov %rax,%rdi 1658f: e8 ec dd ff ff callq 14380 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt> 16594: c9 leaveq 16595: c3 retq 0000000000016596 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 16596: 55 push %rbp 16597: 48 89 e5 mov %rsp,%rbp 1659a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 1659e: 48 8b 45 f8 mov -0x8(%rbp),%rax 165a2: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 165a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 165ad: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 165b4: 00 this->_M_header._M_left = &this->_M_header; 165b5: 48 8b 45 f8 mov -0x8(%rbp),%rax 165b9: 48 8d 50 08 lea 0x8(%rax),%rdx 165bd: 48 8b 45 f8 mov -0x8(%rbp),%rax 165c1: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 165c5: 48 8b 45 f8 mov -0x8(%rbp),%rax 165c9: 48 8d 50 08 lea 0x8(%rax),%rdx 165cd: 48 8b 45 f8 mov -0x8(%rbp),%rax 165d1: 48 89 50 20 mov %rdx,0x20(%rax) } 165d5: 5d pop %rbp 165d6: c3 retq 165d7: 90 nop 00000000000165d8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED1Ev>: 165d8: 55 push %rbp 165d9: 48 89 e5 mov %rsp,%rbp 165dc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 165e0: 5d pop %rbp 165e1: c3 retq 00000000000165e2 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base>: static _Const_Link_type _S_left(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_left); } static _Link_type _S_right(_Base_ptr __x) 165e2: 55 push %rbp 165e3: 48 89 e5 mov %rsp,%rbp 165e6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 165ea: 48 8b 45 f8 mov -0x8(%rbp),%rax 165ee: 48 8b 40 18 mov 0x18(%rax),%rax 165f2: 5d pop %rbp 165f3: c3 retq 00000000000165f4 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base>: static const _Key& _S_key(_Const_Link_type __x) { return _KeyOfValue()(_S_value(__x)); } static _Link_type _S_left(_Base_ptr __x) 165f4: 55 push %rbp 165f5: 48 89 e5 mov %rsp,%rbp 165f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 165fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 16600: 48 8b 40 10 mov 0x10(%rax),%rax 16604: 5d pop %rbp 16605: c3 retq 0000000000016606 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 16606: 55 push %rbp 16607: 48 89 e5 mov %rsp,%rbp 1660a: 53 push %rbx 1660b: 48 83 ec 28 sub $0x28,%rsp 1660f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 16613: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 16617: 48 8b 45 d0 mov -0x30(%rbp),%rax 1661b: 48 83 c0 20 add $0x20,%rax 1661f: 48 89 c7 mov %rax,%rdi 16622: e8 c9 d4 ff ff callq 13af0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt> 16627: 48 89 c3 mov %rax,%rbx 1662a: 48 8d 45 ef lea -0x11(%rbp),%rax 1662e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16632: 48 89 d6 mov %rdx,%rsi 16635: 48 89 c7 mov %rax,%rdi 16638: e8 33 c8 ff ff callq 12e70 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt> 1663d: 48 8d 45 ef lea -0x11(%rbp),%rax 16641: 48 89 de mov %rbx,%rsi 16644: 48 89 c7 mov %rax,%rdi 16647: e8 e4 da ff ff callq 14130 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_@plt> 1664c: 48 8d 45 ef lea -0x11(%rbp),%rax 16650: 48 89 c7 mov %rax,%rdi 16653: e8 08 c9 ff ff callq 12f60 <_ZNSaISt4pairIKmPvEED1Ev@plt> _M_put_node(__p); 16658: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1665c: 48 8b 45 d8 mov -0x28(%rbp),%rax 16660: 48 89 d6 mov %rdx,%rsi 16663: 48 89 c7 mov %rax,%rdi 16666: e8 95 c7 ff ff callq 12e00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt> } 1666b: 48 83 c4 28 add $0x28,%rsp 1666f: 5b pop %rbx 16670: 5d pop %rbp 16671: c3 retq 16672: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 16675: 48 8d 45 ef lea -0x11(%rbp),%rax 16679: 48 89 c7 mov %rax,%rdi 1667c: e8 df c8 ff ff callq 12f60 <_ZNSaISt4pairIKmPvEED1Ev@plt> 16681: 48 89 d8 mov %rbx,%rax 16684: 48 89 c7 mov %rax,%rdi 16687: e8 f4 de ff ff callq 14580 <_Unwind_Resume@plt> 000000000001668c <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC1ERKS3_>: allocator(const allocator& __a) throw() 1668c: 55 push %rbp 1668d: 48 89 e5 mov %rsp,%rbp 16690: 48 83 ec 10 sub $0x10,%rsp 16694: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16698: 48 89 75 f0 mov %rsi,-0x10(%rbp) : __glibcxx_base_allocator<_Tp>(__a) { } 1669c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 166a0: 48 8b 45 f8 mov -0x8(%rbp),%rax 166a4: 48 89 d6 mov %rdx,%rsi 166a7: 48 89 c7 mov %rax,%rdi 166aa: e8 91 e0 ff ff callq 14740 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS5_@plt> 166af: c9 leaveq 166b0: c3 retq 166b1: 90 nop 00000000000166b2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 166b2: 55 push %rbp 166b3: 48 89 e5 mov %rsp,%rbp 166b6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 166ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 166be: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 166c5: 48 8b 45 f8 mov -0x8(%rbp),%rax 166c9: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 166d0: 00 this->_M_header._M_left = &this->_M_header; 166d1: 48 8b 45 f8 mov -0x8(%rbp),%rax 166d5: 48 8d 50 08 lea 0x8(%rax),%rdx 166d9: 48 8b 45 f8 mov -0x8(%rbp),%rax 166dd: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 166e1: 48 8b 45 f8 mov -0x8(%rbp),%rax 166e5: 48 8d 50 08 lea 0x8(%rax),%rdx 166e9: 48 8b 45 f8 mov -0x8(%rbp),%rax 166ed: 48 89 50 20 mov %rdx,0x20(%rax) } 166f1: 5d pop %rbp 166f2: c3 retq 166f3: 90 nop 00000000000166f4 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E>: _M_put_node(__p); } #endif _Link_type _M_clone_node(_Const_Link_type __x) 166f4: 55 push %rbp 166f5: 48 89 e5 mov %rsp,%rbp 166f8: 48 83 ec 20 sub $0x20,%rsp 166fc: 48 89 7d e8 mov %rdi,-0x18(%rbp) 16700: 48 89 75 e0 mov %rsi,-0x20(%rbp) { _Link_type __tmp = _M_create_node(__x->_M_value_field); 16704: 48 8b 45 e0 mov -0x20(%rbp),%rax 16708: 48 8d 50 20 lea 0x20(%rax),%rdx 1670c: 48 8b 45 e8 mov -0x18(%rbp),%rax 16710: 48 89 d6 mov %rdx,%rsi 16713: 48 89 c7 mov %rax,%rdi 16716: e8 45 da ff ff callq 14160 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt> 1671b: 48 89 45 f8 mov %rax,-0x8(%rbp) __tmp->_M_color = __x->_M_color; 1671f: 48 8b 45 e0 mov -0x20(%rbp),%rax 16723: 8b 10 mov (%rax),%edx 16725: 48 8b 45 f8 mov -0x8(%rbp),%rax 16729: 89 10 mov %edx,(%rax) __tmp->_M_left = 0; 1672b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1672f: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 16736: 00 __tmp->_M_right = 0; 16737: 48 8b 45 f8 mov -0x8(%rbp),%rax 1673b: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 16742: 00 return __tmp; 16743: 48 8b 45 f8 mov -0x8(%rbp),%rax } 16747: c9 leaveq 16748: c3 retq 0000000000016749 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base>: static _Link_type _S_right(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_right); } static _Const_Link_type _S_right(_Const_Base_ptr __x) 16749: 55 push %rbp 1674a: 48 89 e5 mov %rsp,%rbp 1674d: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 16751: 48 8b 45 f8 mov -0x8(%rbp),%rax 16755: 48 8b 40 18 mov 0x18(%rax),%rax 16759: 5d pop %rbp 1675a: c3 retq 000000000001675b <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base>: static _Link_type _S_left(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_left); } static _Const_Link_type _S_left(_Const_Base_ptr __x) 1675b: 55 push %rbp 1675c: 48 89 e5 mov %rsp,%rbp 1675f: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_left); } 16763: 48 8b 45 f8 mov -0x8(%rbp),%rax 16767: 48 8b 40 10 mov 0x10(%rax),%rax 1676b: 5d pop %rbp 1676c: c3 retq 1676d: 90 nop 000000000001676e <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv>: const _Node_allocator& _M_get_Node_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const 1676e: 55 push %rbp 1676f: 48 89 e5 mov %rsp,%rbp 16772: 48 83 ec 10 sub $0x10,%rsp 16776: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1677a: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 1677e: 48 8b 45 f0 mov -0x10(%rbp),%rax 16782: 48 89 c7 mov %rax,%rdi 16785: e8 66 d8 ff ff callq 13ff0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt> 1678a: 48 89 c2 mov %rax,%rdx 1678d: 48 8b 45 f8 mov -0x8(%rbp),%rax 16791: 48 89 d6 mov %rdx,%rsi 16794: 48 89 c7 mov %rax,%rdi 16797: e8 c4 de ff ff callq 14660 <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E@plt> 1679c: 48 8b 45 f8 mov -0x8(%rbp),%rax 167a0: c9 leaveq 167a1: c3 retq 00000000000167a2 <_ZNSaIP11XLogHandlerED1Ev>: template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 167a2: 55 push %rbp 167a3: 48 89 e5 mov %rsp,%rbp 167a6: 48 83 ec 10 sub $0x10,%rsp 167aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 167ae: 48 8b 45 f8 mov -0x8(%rbp),%rax 167b2: 48 89 c7 mov %rax,%rdi 167b5: e8 e6 ce ff ff callq 136a0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED2Ev@plt> 167ba: c9 leaveq 167bb: c3 retq 00000000000167bc <_ZSt11__addressofIP11XLogHandlerEPT_RS2_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 167bc: 55 push %rbp 167bd: 48 89 e5 mov %rsp,%rbp 167c0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 167c4: 48 8b 45 f8 mov -0x8(%rbp),%rax } 167c8: 5d pop %rbp 167c9: c3 retq 00000000000167ca <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 167ca: 55 push %rbp 167cb: 48 89 e5 mov %rsp,%rbp 167ce: 48 89 7d f8 mov %rdi,-0x8(%rbp) 167d2: 48 89 75 f0 mov %rsi,-0x10(%rbp) 167d6: 5d pop %rbp 167d7: c3 retq 00000000000167d8 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E>: _Link_type _M_get_node() { return _M_impl._Node_allocator::allocate(1); } void _M_put_node(_Link_type __p) 167d8: 55 push %rbp 167d9: 48 89 e5 mov %rsp,%rbp 167dc: 48 83 ec 10 sub $0x10,%rsp 167e0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 167e4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 167e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 167ec: 48 8b 4d f0 mov -0x10(%rbp),%rcx 167f0: ba 01 00 00 00 mov $0x1,%edx 167f5: 48 89 ce mov %rcx,%rsi 167f8: 48 89 c7 mov %rax,%rdi 167fb: e8 60 db ff ff callq 14360 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE10deallocateEPS4_m@plt> 16800: c9 leaveq 16801: c3 retq 0000000000016802 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv>: return static_cast<_Const_Link_type> (this->_M_impl._M_header._M_parent); } _Link_type _M_end() 16802: 55 push %rbp 16803: 48 89 e5 mov %rsp,%rbp 16806: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 1680a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1680e: 48 83 c0 08 add $0x8,%rax 16812: 5d pop %rbp 16813: c3 retq 0000000000016814 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 16814: 55 push %rbp 16815: 48 89 e5 mov %rsp,%rbp 16818: 48 83 ec 30 sub $0x30,%rsp 1681c: 48 89 7d e8 mov %rdi,-0x18(%rbp) 16820: 48 89 75 e0 mov %rsi,-0x20(%rbp) 16824: 48 89 55 d8 mov %rdx,-0x28(%rbp) 16828: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 1682c: eb 53 jmp 16881 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6d> if (!_M_impl._M_key_compare(_S_key(__x), __k)) 1682e: 48 8b 45 e0 mov -0x20(%rbp),%rax 16832: 48 89 c7 mov %rax,%rdi 16835: e8 16 c4 ff ff callq 12c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 1683a: 48 89 c1 mov %rax,%rcx 1683d: 48 8b 45 e8 mov -0x18(%rbp),%rax 16841: 48 8b 55 d0 mov -0x30(%rbp),%rdx 16845: 48 89 ce mov %rcx,%rsi 16848: 48 89 c7 mov %rax,%rdi 1684b: e8 20 cd ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16850: 83 f0 01 xor $0x1,%eax 16853: 84 c0 test %al,%al 16855: 74 1a je 16871 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x5d> __y = __x, __x = _S_left(__x); 16857: 48 8b 45 e0 mov -0x20(%rbp),%rax 1685b: 48 89 45 d8 mov %rax,-0x28(%rbp) 1685f: 48 8b 45 e0 mov -0x20(%rbp),%rax 16863: 48 89 c7 mov %rax,%rdi 16866: e8 b5 de ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 1686b: 48 89 45 e0 mov %rax,-0x20(%rbp) 1686f: eb 10 jmp 16881 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6d> else __x = _S_right(__x); 16871: 48 8b 45 e0 mov -0x20(%rbp),%rax 16875: 48 89 c7 mov %rax,%rdi 16878: e8 63 d0 ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 1687d: 48 89 45 e0 mov %rax,-0x20(%rbp) _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 16881: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 16886: 0f 95 c0 setne %al 16889: 84 c0 test %al,%al 1688b: 75 a1 jne 1682e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x1a> if (!_M_impl._M_key_compare(_S_key(__x), __k)) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); 1688d: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16891: 48 8d 45 f0 lea -0x10(%rbp),%rax 16895: 48 89 d6 mov %rdx,%rsi 16898: 48 89 c7 mov %rax,%rdi 1689b: e8 a0 d1 ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 168a0: 48 8b 45 f0 mov -0x10(%rbp),%rax } 168a4: c9 leaveq 168a5: c3 retq 00000000000168a6 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 168a6: 55 push %rbp 168a7: 48 89 e5 mov %rsp,%rbp 168aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 168ae: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 168b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 168b6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 168ba: 48 89 10 mov %rdx,(%rax) 168bd: 5d pop %rbp 168be: c3 retq 168bf: 90 nop 00000000000168c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv>: _Const_Base_ptr _M_leftmost() const { return this->_M_impl._M_header._M_left; } _Base_ptr& _M_rightmost() 168c0: 55 push %rbp 168c1: 48 89 e5 mov %rsp,%rbp 168c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 168c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 168cc: 48 83 c0 20 add $0x20,%rax 168d0: 5d pop %rbp 168d1: c3 retq 00000000000168d2 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base>: static const_reference _S_value(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } static const _Key& _S_key(_Const_Base_ptr __x) 168d2: 55 push %rbp 168d3: 48 89 e5 mov %rsp,%rbp 168d6: 48 83 ec 20 sub $0x20,%rsp 168da: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 168de: 48 8b 45 e8 mov -0x18(%rbp),%rax 168e2: 48 89 c7 mov %rax,%rdi 168e5: e8 c6 d6 ff ff callq 13fb0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 168ea: 48 89 c2 mov %rax,%rdx 168ed: 48 8d 45 ff lea -0x1(%rbp),%rax 168f1: 48 89 d6 mov %rdx,%rsi 168f4: 48 89 c7 mov %rax,%rdi 168f7: e8 84 d2 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 168fc: c9 leaveq 168fd: c3 retq 00000000000168fe <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_>: typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const 168fe: 55 push %rbp 168ff: 48 89 e5 mov %rsp,%rbp 16902: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16906: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x.first; } 1690a: 48 8b 45 f0 mov -0x10(%rbp),%rax 1690e: 5d pop %rbp 1690f: c3 retq 0000000000016910 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_>: typename _Compare, typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 16910: 55 push %rbp 16911: 48 89 e5 mov %rsp,%rbp 16914: 53 push %rbx 16915: 48 83 ec 48 sub $0x48,%rsp 16919: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1691d: 48 89 75 c0 mov %rsi,-0x40(%rbp) 16921: 48 89 55 b8 mov %rdx,-0x48(%rbp) 16925: 48 89 4d b0 mov %rcx,-0x50(%rbp) _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) #endif { bool __insert_left = (__x != 0 || __p == _M_end() || _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__p))); 16929: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 1692e: 75 4d jne 1697d <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x6d> 16930: 48 8b 45 c8 mov -0x38(%rbp),%rax 16934: 48 89 c7 mov %rax,%rdi 16937: e8 24 dc ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 1693c: 48 3b 45 b8 cmp -0x48(%rbp),%rax 16940: 74 3b je 1697d <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x6d> 16942: 48 8b 45 b8 mov -0x48(%rbp),%rax 16946: 48 89 c7 mov %rax,%rdi 16949: e8 62 d1 ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1694e: 48 89 c3 mov %rax,%rbx 16951: 48 8b 55 b0 mov -0x50(%rbp),%rdx 16955: 48 8d 45 ee lea -0x12(%rbp),%rax 16959: 48 89 d6 mov %rdx,%rsi 1695c: 48 89 c7 mov %rax,%rdi 1695f: e8 1c d2 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16964: 48 89 c1 mov %rax,%rcx 16967: 48 8b 45 c8 mov -0x38(%rbp),%rax 1696b: 48 89 da mov %rbx,%rdx 1696e: 48 89 ce mov %rcx,%rsi 16971: 48 89 c7 mov %rax,%rdi 16974: e8 f7 cb ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16979: 84 c0 test %al,%al 1697b: 74 07 je 16984 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x74> 1697d: b8 01 00 00 00 mov $0x1,%eax 16982: eb 05 jmp 16989 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x79> 16984: b8 00 00 00 00 mov $0x0,%eax 16989: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 1698c: 48 8b 55 b0 mov -0x50(%rbp),%rdx 16990: 48 8b 45 c8 mov -0x38(%rbp),%rax 16994: 48 89 d6 mov %rdx,%rsi 16997: 48 89 c7 mov %rax,%rdi 1699a: e8 01 dc ff ff callq 145a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_@plt> 1699f: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 169a3: 48 8b 45 c8 mov -0x38(%rbp),%rax 169a7: 48 8d 48 08 lea 0x8(%rax),%rcx 169ab: 0f b6 45 ef movzbl -0x11(%rbp),%eax 169af: 48 8b 55 b8 mov -0x48(%rbp),%rdx 169b3: 48 8b 75 e0 mov -0x20(%rbp),%rsi 169b7: 89 c7 mov %eax,%edi 169b9: e8 b2 d4 ff ff callq 13e70 <_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt> const_cast<_Base_ptr>(__p), this->_M_impl._M_header); ++_M_impl._M_node_count; 169be: 48 8b 45 c8 mov -0x38(%rbp),%rax 169c2: 48 8b 40 28 mov 0x28(%rax),%rax 169c6: 48 8d 50 01 lea 0x1(%rax),%rdx 169ca: 48 8b 45 c8 mov -0x38(%rbp),%rax 169ce: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 169d2: 48 8b 55 e0 mov -0x20(%rbp),%rdx 169d6: 48 8d 45 d0 lea -0x30(%rbp),%rax 169da: 48 89 d6 mov %rdx,%rsi 169dd: 48 89 c7 mov %rax,%rdi 169e0: e8 5b d0 ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 169e5: 48 8b 45 d0 mov -0x30(%rbp),%rax } 169e9: 48 83 c4 48 add $0x48,%rsp 169ed: 5b pop %rbx 169ee: 5d pop %rbp 169ef: c3 retq 00000000000169f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif pair::iterator, bool> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 169f0: 55 push %rbp 169f1: 48 89 e5 mov %rsp,%rbp 169f4: 53 push %rbx 169f5: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 169fc: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 16a03: 48 89 b5 50 ff ff ff mov %rsi,-0xb0(%rbp) _M_insert_unique(_Arg&& __v) #else _M_insert_unique(const _Val& __v) #endif { _Link_type __x = _M_begin(); 16a0a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16a11: 48 89 c7 mov %rax,%rdi 16a14: e8 37 cb ff ff callq 13550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 16a19: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 16a1d: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16a24: 48 89 c7 mov %rax,%rdi 16a27: e8 34 db ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 16a2c: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 16a30: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 16a34: eb 6c jmp 16aa2 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xb2> { __y = __x; 16a36: 48 8b 45 d8 mov -0x28(%rbp),%rax 16a3a: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 16a3e: 48 8b 45 d8 mov -0x28(%rbp),%rax 16a42: 48 89 c7 mov %rax,%rdi 16a45: e8 06 c2 ff ff callq 12c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 16a4a: 48 89 c3 mov %rax,%rbx 16a4d: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 16a54: 48 8d 45 ea lea -0x16(%rbp),%rax 16a58: 48 89 d6 mov %rdx,%rsi 16a5b: 48 89 c7 mov %rax,%rdi 16a5e: e8 1d d1 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16a63: 48 89 c1 mov %rax,%rcx 16a66: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16a6d: 48 89 da mov %rbx,%rdx 16a70: 48 89 ce mov %rcx,%rsi 16a73: 48 89 c7 mov %rax,%rdi 16a76: e8 f5 ca ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16a7b: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 16a7e: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 16a82: 74 0e je 16a92 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xa2> 16a84: 48 8b 45 d8 mov -0x28(%rbp),%rax 16a88: 48 89 c7 mov %rax,%rdi 16a8b: e8 90 dc ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 16a90: eb 0c jmp 16a9e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xae> 16a92: 48 8b 45 d8 mov -0x28(%rbp),%rax 16a96: 48 89 c7 mov %rax,%rdi 16a99: e8 42 ce ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 16a9e: 48 89 45 d8 mov %rax,-0x28(%rbp) #endif { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); bool __comp = true; while (__x != 0) 16aa2: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 16aa7: 0f 95 c0 setne %al 16aaa: 84 c0 test %al,%al 16aac: 75 88 jne 16a36 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x46> { __y = __x; __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); __x = __comp ? _S_left(__x) : _S_right(__x); } iterator __j = iterator(__y); 16aae: 48 8b 55 e0 mov -0x20(%rbp),%rdx 16ab2: 48 8d 45 a0 lea -0x60(%rbp),%rax 16ab6: 48 89 d6 mov %rdx,%rsi 16ab9: 48 89 c7 mov %rax,%rdi 16abc: e8 7f cf ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> if (__comp) 16ac1: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 16ac5: 0f 84 91 00 00 00 je 16b5c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x16c> { if (__j == begin()) 16acb: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16ad2: 48 89 c7 mov %rax,%rdi 16ad5: e8 d6 ca ff ff callq 135b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt> 16ada: 48 89 45 b0 mov %rax,-0x50(%rbp) 16ade: 48 8d 55 b0 lea -0x50(%rbp),%rdx 16ae2: 48 8d 45 a0 lea -0x60(%rbp),%rax 16ae6: 48 89 d6 mov %rdx,%rsi 16ae9: 48 89 c7 mov %rax,%rdi 16aec: e8 0f cd ff ff callq 13800 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt> 16af1: 84 c0 test %al,%al 16af3: 74 5b je 16b50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 16af5: c6 45 eb 01 movb $0x1,-0x15(%rbp) 16af9: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 16b00: 48 8b 55 e0 mov -0x20(%rbp),%rdx 16b04: 48 8b 75 d8 mov -0x28(%rbp),%rsi 16b08: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16b0f: 48 89 c7 mov %rax,%rdi 16b12: e8 a9 d9 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 16b17: 48 89 45 c0 mov %rax,-0x40(%rbp) 16b1b: 48 8d 55 eb lea -0x15(%rbp),%rdx 16b1f: 48 8d 4d c0 lea -0x40(%rbp),%rcx 16b23: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 16b2a: 48 89 ce mov %rcx,%rsi 16b2d: 48 89 c7 mov %rax,%rdi 16b30: e8 5b cc ff ff callq 13790 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 16b35: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 16b3c: 48 89 45 90 mov %rax,-0x70(%rbp) 16b40: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 16b47: 48 89 45 98 mov %rax,-0x68(%rbp) 16b4b: e9 d0 00 00 00 jmpq 16c20 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x230> else --__j; 16b50: 48 8d 45 a0 lea -0x60(%rbp),%rax 16b54: 48 89 c7 mov %rax,%rdi 16b57: e8 84 cf ff ff callq 13ae0 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 16b5c: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 16b63: 48 8d 45 ec lea -0x14(%rbp),%rax 16b67: 48 89 d6 mov %rdx,%rsi 16b6a: 48 89 c7 mov %rax,%rdi 16b6d: e8 0e d0 ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16b72: 48 89 c3 mov %rax,%rbx 16b75: 48 8b 45 a0 mov -0x60(%rbp),%rax 16b79: 48 89 c7 mov %rax,%rdi 16b7c: e8 2f cf ff ff callq 13ab0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 16b81: 48 89 c1 mov %rax,%rcx 16b84: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16b8b: 48 89 da mov %rbx,%rdx 16b8e: 48 89 ce mov %rcx,%rsi 16b91: 48 89 c7 mov %rax,%rdi 16b94: e8 d7 c9 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16b99: 84 c0 test %al,%al 16b9b: 74 58 je 16bf5 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 16b9d: c6 45 ed 01 movb $0x1,-0x13(%rbp) 16ba1: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 16ba8: 48 8b 55 e0 mov -0x20(%rbp),%rdx 16bac: 48 8b 75 d8 mov -0x28(%rbp),%rsi 16bb0: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 16bb7: 48 89 c7 mov %rax,%rdi 16bba: e8 01 d9 ff ff callq 144c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 16bbf: 48 89 45 d0 mov %rax,-0x30(%rbp) 16bc3: 48 8d 55 ed lea -0x13(%rbp),%rdx 16bc7: 48 8d 4d d0 lea -0x30(%rbp),%rcx 16bcb: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 16bd2: 48 89 ce mov %rcx,%rsi 16bd5: 48 89 c7 mov %rax,%rdi 16bd8: e8 b3 cb ff ff callq 13790 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 16bdd: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 16be4: 48 89 45 90 mov %rax,-0x70(%rbp) 16be8: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 16bef: 48 89 45 98 mov %rax,-0x68(%rbp) 16bf3: eb 2b jmp 16c20 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x230> return pair(__j, false); 16bf5: c6 45 ee 00 movb $0x0,-0x12(%rbp) 16bf9: 48 8d 55 ee lea -0x12(%rbp),%rdx 16bfd: 48 8d 4d a0 lea -0x60(%rbp),%rcx 16c01: 48 8d 45 80 lea -0x80(%rbp),%rax 16c05: 48 89 ce mov %rcx,%rsi 16c08: 48 89 c7 mov %rax,%rdi 16c0b: e8 80 cb ff ff callq 13790 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 16c10: 48 8b 45 80 mov -0x80(%rbp),%rax 16c14: 48 89 45 90 mov %rax,-0x70(%rbp) 16c18: 48 8b 45 88 mov -0x78(%rbp),%rax 16c1c: 48 89 45 98 mov %rax,-0x68(%rbp) 16c20: 48 8b 45 90 mov -0x70(%rbp),%rax 16c24: 8b 55 98 mov -0x68(%rbp),%edx } 16c27: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 16c2e: 5b pop %rbx 16c2f: 5d pop %rbp 16c30: c3 retq 16c31: 90 nop 0000000000016c32 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv>: _Const_Base_ptr _M_root() const { return this->_M_impl._M_header._M_parent; } _Base_ptr& _M_leftmost() 16c32: 55 push %rbp 16c33: 48 89 e5 mov %rsp,%rbp 16c36: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 16c3a: 48 8b 45 f8 mov -0x8(%rbp),%rax 16c3e: 48 83 c0 18 add $0x18,%rax 16c42: 5d pop %rbp 16c43: c3 retq 0000000000016c44 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 16c44: 55 push %rbp 16c45: 48 89 e5 mov %rsp,%rbp 16c48: 48 83 ec 10 sub $0x10,%rsp 16c4c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 16c50: 48 8b 45 f8 mov -0x8(%rbp),%rax 16c54: 48 8b 00 mov (%rax),%rax 16c57: 48 89 c7 mov %rax,%rdi 16c5a: e8 f1 bd ff ff callq 12a50 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt> 16c5f: 48 8b 55 f8 mov -0x8(%rbp),%rdx 16c63: 48 89 02 mov %rax,(%rdx) return *this; 16c66: 48 8b 45 f8 mov -0x8(%rbp),%rax } 16c6a: c9 leaveq 16c6b: c3 retq 0000000000016c6c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base>: static _Link_type _S_right(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_right); } static _Const_Link_type _S_right(_Const_Base_ptr __x) 16c6c: 55 push %rbp 16c6d: 48 89 e5 mov %rsp,%rbp 16c70: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 16c74: 48 8b 45 f8 mov -0x8(%rbp),%rax 16c78: 48 8b 40 18 mov 0x18(%rax),%rax 16c7c: 5d pop %rbp 16c7d: c3 retq 0000000000016c7e <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv>: operator->() const { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } _Self& operator++() 16c7e: 55 push %rbp 16c7f: 48 89 e5 mov %rsp,%rbp 16c82: 48 83 ec 10 sub $0x10,%rsp 16c86: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_increment(_M_node); 16c8a: 48 8b 45 f8 mov -0x8(%rbp),%rax 16c8e: 48 8b 00 mov (%rax),%rax 16c91: 48 89 c7 mov %rax,%rdi 16c94: e8 c7 cb ff ff callq 13860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 16c99: 48 8b 55 f8 mov -0x8(%rbp),%rdx 16c9d: 48 89 02 mov %rax,(%rdx) return *this; 16ca0: 48 8b 45 f8 mov -0x8(%rbp),%rax } 16ca4: c9 leaveq 16ca5: c3 retq 0000000000016ca6 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEE13_M_const_castEv>: _Rb_tree_const_iterator(const iterator& __it) : _M_node(__it._M_node) { } iterator _M_const_cast() const 16ca6: 55 push %rbp 16ca7: 48 89 e5 mov %rsp,%rbp 16caa: 48 83 ec 20 sub $0x20,%rsp 16cae: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast (const_cast(_M_node))); } 16cb2: 48 8b 45 e8 mov -0x18(%rbp),%rax 16cb6: 48 8b 10 mov (%rax),%rdx 16cb9: 48 8d 45 f0 lea -0x10(%rbp),%rax 16cbd: 48 89 d6 mov %rdx,%rsi 16cc0: 48 89 c7 mov %rax,%rdi 16cc3: e8 78 cd ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 16cc8: 48 8b 45 f0 mov -0x10(%rbp),%rax 16ccc: c9 leaveq 16ccd: c3 retq 0000000000016cce <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E>: static const_reference _S_value(_Const_Link_type __x) { return __x->_M_value_field; } static const _Key& _S_key(_Const_Link_type __x) 16cce: 55 push %rbp 16ccf: 48 89 e5 mov %rsp,%rbp 16cd2: 48 83 ec 20 sub $0x20,%rsp 16cd6: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 16cda: 48 8b 45 e8 mov -0x18(%rbp),%rax 16cde: 48 89 c7 mov %rax,%rdi 16ce1: e8 0a c9 ff ff callq 135f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt13_Rb_tree_nodeIS3_E@plt> 16ce6: 48 89 c2 mov %rax,%rdx 16ce9: 48 8d 45 ff lea -0x1(%rbp),%rax 16ced: 48 89 d6 mov %rdx,%rsi 16cf0: 48 89 c7 mov %rax,%rdi 16cf3: e8 88 ce ff ff callq 13b80 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 16cf8: c9 leaveq 16cf9: c3 retq 0000000000016cfa <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 16cfa: 55 push %rbp 16cfb: 48 89 e5 mov %rsp,%rbp 16cfe: 48 83 ec 30 sub $0x30,%rsp 16d02: 48 89 7d e8 mov %rdi,-0x18(%rbp) 16d06: 48 89 75 e0 mov %rsi,-0x20(%rbp) 16d0a: 48 89 55 d8 mov %rdx,-0x28(%rbp) 16d0e: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 16d12: eb 50 jmp 16d64 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6a> if (_M_impl._M_key_compare(__k, _S_key(__x))) 16d14: 48 8b 45 e0 mov -0x20(%rbp),%rax 16d18: 48 89 c7 mov %rax,%rdi 16d1b: e8 30 bf ff ff callq 12c50 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 16d20: 48 89 c2 mov %rax,%rdx 16d23: 48 8b 45 e8 mov -0x18(%rbp),%rax 16d27: 48 8b 4d d0 mov -0x30(%rbp),%rcx 16d2b: 48 89 ce mov %rcx,%rsi 16d2e: 48 89 c7 mov %rax,%rdi 16d31: e8 3a c8 ff ff callq 13570 <_ZNKSt4lessImEclERKmS2_@plt> 16d36: 84 c0 test %al,%al 16d38: 74 1a je 16d54 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x5a> __y = __x, __x = _S_left(__x); 16d3a: 48 8b 45 e0 mov -0x20(%rbp),%rax 16d3e: 48 89 45 d8 mov %rax,-0x28(%rbp) 16d42: 48 8b 45 e0 mov -0x20(%rbp),%rax 16d46: 48 89 c7 mov %rax,%rdi 16d49: e8 d2 d9 ff ff callq 14720 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 16d4e: 48 89 45 e0 mov %rax,-0x20(%rbp) 16d52: eb 10 jmp 16d64 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6a> else __x = _S_right(__x); 16d54: 48 8b 45 e0 mov -0x20(%rbp),%rax 16d58: 48 89 c7 mov %rax,%rdi 16d5b: e8 80 cb ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 16d60: 48 89 45 e0 mov %rax,-0x20(%rbp) _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 16d64: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 16d69: 0f 95 c0 setne %al 16d6c: 84 c0 test %al,%al 16d6e: 75 a4 jne 16d14 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x1a> if (_M_impl._M_key_compare(__k, _S_key(__x))) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); 16d70: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16d74: 48 8d 45 f0 lea -0x10(%rbp),%rax 16d78: 48 89 d6 mov %rdx,%rsi 16d7b: 48 89 c7 mov %rax,%rdi 16d7e: e8 bd cc ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 16d83: 48 8b 45 f0 mov -0x10(%rbp),%rax } 16d87: c9 leaveq 16d88: c3 retq 16d89: 90 nop 0000000000016d8a <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 16d8a: 55 push %rbp 16d8b: 48 89 e5 mov %rsp,%rbp 16d8e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16d92: 48 89 75 f0 mov %rsi,-0x10(%rbp) 16d96: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 16d9a: 48 8b 45 f8 mov -0x8(%rbp),%rax 16d9e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16da2: 48 8b 12 mov (%rdx),%rdx 16da5: 48 89 10 mov %rdx,(%rax) 16da8: 48 8b 45 f8 mov -0x8(%rbp),%rax 16dac: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16db0: 48 8b 12 mov (%rdx),%rdx 16db3: 48 89 50 08 mov %rdx,0x8(%rax) 16db7: 5d pop %rbp 16db8: c3 retq 16db9: 90 nop 0000000000016dba <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 16dba: 55 push %rbp 16dbb: 48 89 e5 mov %rsp,%rbp 16dbe: 48 83 ec 60 sub $0x60,%rsp 16dc2: 48 89 7d b8 mov %rdi,-0x48(%rbp) 16dc6: 48 89 75 b0 mov %rsi,-0x50(%rbp) 16dca: 48 89 55 a0 mov %rdx,-0x60(%rbp) _M_erase_aux(const_iterator __first, const_iterator __last) { if (__first == begin() && __last == end()) 16dce: 48 8b 45 b8 mov -0x48(%rbp),%rax 16dd2: 48 89 c7 mov %rax,%rdi 16dd5: e8 d6 c7 ff ff callq 135b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt> 16dda: 48 89 45 e0 mov %rax,-0x20(%rbp) 16dde: 48 8d 55 e0 lea -0x20(%rbp),%rdx 16de2: 48 8d 45 f0 lea -0x10(%rbp),%rax 16de6: 48 89 d6 mov %rdx,%rsi 16de9: 48 89 c7 mov %rax,%rdi 16dec: e8 cf c6 ff ff callq 134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 16df1: 48 8d 55 f0 lea -0x10(%rbp),%rdx 16df5: 48 8d 45 b0 lea -0x50(%rbp),%rax 16df9: 48 89 d6 mov %rdx,%rsi 16dfc: 48 89 c7 mov %rax,%rdi 16dff: e8 7c d0 ff ff callq 13e80 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt> 16e04: 84 c0 test %al,%al 16e06: 74 41 je 16e49 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x8f> 16e08: 48 8b 45 b8 mov -0x48(%rbp),%rax 16e0c: 48 89 c7 mov %rax,%rdi 16e0f: e8 dc bb ff ff callq 129f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt> 16e14: 48 89 45 c0 mov %rax,-0x40(%rbp) 16e18: 48 8d 55 c0 lea -0x40(%rbp),%rdx 16e1c: 48 8d 45 d0 lea -0x30(%rbp),%rax 16e20: 48 89 d6 mov %rdx,%rsi 16e23: 48 89 c7 mov %rax,%rdi 16e26: e8 95 c6 ff ff callq 134c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 16e2b: 48 8d 55 d0 lea -0x30(%rbp),%rdx 16e2f: 48 8d 45 a0 lea -0x60(%rbp),%rax 16e33: 48 89 d6 mov %rdx,%rsi 16e36: 48 89 c7 mov %rax,%rdi 16e39: e8 42 d0 ff ff callq 13e80 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt> 16e3e: 84 c0 test %al,%al 16e40: 74 07 je 16e49 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x8f> 16e42: b8 01 00 00 00 mov $0x1,%eax 16e47: eb 05 jmp 16e4e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x94> 16e49: b8 00 00 00 00 mov $0x0,%eax 16e4e: 84 c0 test %al,%al 16e50: 74 31 je 16e83 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xc9> clear(); 16e52: 48 8b 45 b8 mov -0x48(%rbp),%rax 16e56: 48 89 c7 mov %rax,%rdi 16e59: e8 c2 c6 ff ff callq 13520 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv@plt> 16e5e: eb 3a jmp 16e9a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xe0> else while (__first != __last) erase(__first++); 16e60: 48 8d 45 b0 lea -0x50(%rbp),%rax 16e64: be 00 00 00 00 mov $0x0,%esi 16e69: 48 89 c7 mov %rax,%rdi 16e6c: e8 0f c3 ff ff callq 13180 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi@plt> 16e71: 48 89 c2 mov %rax,%rdx 16e74: 48 8b 45 b8 mov -0x48(%rbp),%rax 16e78: 48 89 d6 mov %rdx,%rsi 16e7b: 48 89 c7 mov %rax,%rdi 16e7e: e8 8d d5 ff ff callq 14410 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt23_Rb_tree_const_iteratorIS3_E@plt> _M_erase_aux(const_iterator __first, const_iterator __last) { if (__first == begin() && __last == end()) clear(); else while (__first != __last) 16e83: 48 8d 55 a0 lea -0x60(%rbp),%rdx 16e87: 48 8d 45 b0 lea -0x50(%rbp),%rax 16e8b: 48 89 d6 mov %rdx,%rsi 16e8e: 48 89 c7 mov %rax,%rdi 16e91: e8 0a cd ff ff callq 13ba0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_@plt> 16e96: 84 c0 test %al,%al 16e98: 75 c6 jne 16e60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xa6> erase(__first++); } 16e9a: c9 leaveq 16e9b: c3 retq 0000000000016e9c <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 16e9c: 55 push %rbp 16e9d: 48 89 e5 mov %rsp,%rbp 16ea0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16ea4: 5d pop %rbp 16ea5: c3 retq 0000000000016ea6 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv>: const _Node_allocator& _M_get_Node_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const 16ea6: 55 push %rbp 16ea7: 48 89 e5 mov %rsp,%rbp 16eaa: 48 83 ec 10 sub $0x10,%rsp 16eae: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16eb2: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 16eb6: 48 8b 45 f0 mov -0x10(%rbp),%rax 16eba: 48 89 c7 mov %rax,%rdi 16ebd: e8 7e c2 ff ff callq 13140 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE21_M_get_Node_allocatorEv@plt> 16ec2: 48 89 c2 mov %rax,%rdx 16ec5: 48 8b 45 f8 mov -0x8(%rbp),%rax 16ec9: 48 89 d6 mov %rdx,%rsi 16ecc: 48 89 c7 mov %rax,%rdi 16ecf: e8 7c d3 ff ff callq 14250 <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E@plt> 16ed4: 48 8b 45 f8 mov -0x8(%rbp),%rax 16ed8: c9 leaveq 16ed9: c3 retq 0000000000016eda <_ZNSaISt4pairIKmPvEED1Ev>: 16eda: 55 push %rbp 16edb: 48 89 e5 mov %rsp,%rbp 16ede: 48 83 ec 10 sub $0x10,%rsp 16ee2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16ee6: 48 8b 45 f8 mov -0x8(%rbp),%rax 16eea: 48 89 c7 mov %rax,%rdi 16eed: e8 7e cb ff ff callq 13a70 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED2Ev@plt> 16ef2: c9 leaveq 16ef3: c3 retq 0000000000016ef4 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 16ef4: 55 push %rbp 16ef5: 48 89 e5 mov %rsp,%rbp 16ef8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 16efc: 48 8b 45 f8 mov -0x8(%rbp),%rax } 16f00: 5d pop %rbp 16f01: c3 retq 0000000000016f02 <_ZNSt4pairIKmPvED1Ev>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 16f02: 55 push %rbp 16f03: 48 89 e5 mov %rsp,%rbp 16f06: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16f0a: 5d pop %rbp 16f0b: c3 retq 0000000000016f0c <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 16f0c: 55 push %rbp 16f0d: 48 89 e5 mov %rsp,%rbp 16f10: 48 83 ec 10 sub $0x10,%rsp 16f14: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16f18: 48 89 75 f0 mov %rsi,-0x10(%rbp) 16f1c: 48 8b 45 f0 mov -0x10(%rbp),%rax 16f20: 48 89 c7 mov %rax,%rdi 16f23: e8 d8 d3 ff ff callq 14300 <_ZNSt4pairIKmPvED1Ev@plt> 16f28: c9 leaveq 16f29: c3 retq 0000000000016f2a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E>: _Link_type _M_get_node() { return _M_impl._Node_allocator::allocate(1); } void _M_put_node(_Link_type __p) 16f2a: 55 push %rbp 16f2b: 48 89 e5 mov %rsp,%rbp 16f2e: 48 83 ec 10 sub $0x10,%rsp 16f32: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16f36: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 16f3a: 48 8b 45 f8 mov -0x8(%rbp),%rax 16f3e: 48 8b 4d f0 mov -0x10(%rbp),%rcx 16f42: ba 01 00 00 00 mov $0x1,%edx 16f47: 48 89 ce mov %rcx,%rsi 16f4a: 48 89 c7 mov %rax,%rdi 16f4d: e8 1e c1 ff ff callq 13070 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE10deallocateEPS6_m@plt> 16f52: c9 leaveq 16f53: c3 retq 0000000000016f54 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC1ERKS5_>: struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } new_allocator(const new_allocator&) throw() { } 16f54: 55 push %rbp 16f55: 48 89 e5 mov %rsp,%rbp 16f58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 16f5c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 16f60: 5d pop %rbp 16f61: c3 retq 0000000000016f62 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_>: #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Link_type _M_create_node(const value_type& __x) 16f62: 55 push %rbp 16f63: 48 89 e5 mov %rsp,%rbp 16f66: 53 push %rbx 16f67: 48 83 ec 28 sub $0x28,%rsp 16f6b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 16f6f: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 16f73: 48 8b 45 d8 mov -0x28(%rbp),%rax 16f77: 48 89 c7 mov %rax,%rdi 16f7a: e8 41 d2 ff ff callq 141c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_get_nodeEv@plt> 16f7f: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 16f83: 48 8b 45 e0 mov -0x20(%rbp),%rax 16f87: 48 83 c0 20 add $0x20,%rax 16f8b: 48 89 c7 mov %rax,%rdi 16f8e: e8 6d bd ff ff callq 12d00 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt> 16f93: 48 89 c3 mov %rax,%rbx 16f96: 48 8d 45 ef lea -0x11(%rbp),%rax 16f9a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16f9e: 48 89 d6 mov %rdx,%rsi 16fa1: 48 89 c7 mov %rax,%rdi 16fa4: e8 67 ba ff ff callq 12a10 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt> 16fa9: 48 8b 55 d0 mov -0x30(%rbp),%rdx 16fad: 48 8d 45 ef lea -0x11(%rbp),%rax 16fb1: 48 89 de mov %rbx,%rsi 16fb4: 48 89 c7 mov %rax,%rdi 16fb7: e8 f4 d6 ff ff callq 146b0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_@plt> 16fbc: 48 8d 45 ef lea -0x11(%rbp),%rax 16fc0: 48 89 c7 mov %rax,%rdi 16fc3: e8 08 cf ff ff callq 13ed0 <_ZNSaIP11XLogHandlerED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 16fc8: 48 8b 45 e0 mov -0x20(%rbp),%rax } 16fcc: 48 83 c4 28 add $0x28,%rsp 16fd0: 5b pop %rbx 16fd1: 5d pop %rbp 16fd2: c3 retq 16fd3: 48 89 c3 mov %rax,%rbx _Link_type _M_create_node(const value_type& __x) { _Link_type __tmp = _M_get_node(); __try { get_allocator().construct 16fd6: 48 8d 45 ef lea -0x11(%rbp),%rax 16fda: 48 89 c7 mov %rax,%rdi 16fdd: e8 ee ce ff ff callq 13ed0 <_ZNSaIP11XLogHandlerED1Ev@plt> 16fe2: 48 89 d8 mov %rbx,%rax 16fe5: 48 89 c7 mov %rax,%rdi 16fe8: e8 d3 d3 ff ff callq 143c0 <__cxa_begin_catch@plt> (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 16fed: 48 8b 55 e0 mov -0x20(%rbp),%rdx 16ff1: 48 8b 45 d8 mov -0x28(%rbp),%rax 16ff5: 48 89 d6 mov %rdx,%rsi 16ff8: 48 89 c7 mov %rax,%rdi 16ffb: e8 80 ba ff ff callq 12a80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt> 17000: eb 13 jmp 17015 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_+0xb3> { _M_put_node(__tmp); 17002: 48 89 c3 mov %rax,%rbx 17005: e8 76 d2 ff ff callq 14280 <__cxa_end_catch@plt> 1700a: 48 89 d8 mov %rbx,%rax 1700d: 48 89 c7 mov %rax,%rdi 17010: e8 6b d5 ff ff callq 14580 <_Unwind_Resume@plt> __throw_exception_again; 17015: e8 f6 bd ff ff callq 12e10 <__cxa_rethrow@plt> 000000000001701a <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 1701a: 55 push %rbp 1701b: 48 89 e5 mov %rsp,%rbp 1701e: 48 83 ec 10 sub $0x10,%rsp 17022: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17026: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1702a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1702e: 48 89 c7 mov %rax,%rdi 17031: e8 6a d0 ff ff callq 140a0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC2Ev@plt> 17036: c9 leaveq 17037: c3 retq 0000000000017038 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED1Ev>: template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 17038: 55 push %rbp 17039: 48 89 e5 mov %rsp,%rbp 1703c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17040: 5d pop %rbp 17041: c3 retq 0000000000017042 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE10deallocateEPS4_m>: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) 17042: 55 push %rbp 17043: 48 89 e5 mov %rsp,%rbp 17046: 48 83 ec 20 sub $0x20,%rsp 1704a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1704e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17052: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 17056: 48 8b 45 f0 mov -0x10(%rbp),%rax 1705a: 48 89 c7 mov %rax,%rdi 1705d: e8 8e bc ff ff callq 12cf0 <_ZdlPv@plt> 17062: c9 leaveq 17063: c3 retq 0000000000017064 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt18_Rb_tree_node_base>: static _Const_Link_type _S_right(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_right); } static const_reference _S_value(_Const_Base_ptr __x) 17064: 55 push %rbp 17065: 48 89 e5 mov %rsp,%rbp 17068: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 1706c: 48 8b 45 f8 mov -0x8(%rbp),%rax 17070: 48 83 c0 20 add $0x20,%rax 17074: 5d pop %rbp 17075: c3 retq 0000000000017076 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_>: _M_put_node(_Link_type __p) { _M_impl._Node_allocator::deallocate(__p, 1); } #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Link_type _M_create_node(const value_type& __x) 17076: 55 push %rbp 17077: 48 89 e5 mov %rsp,%rbp 1707a: 53 push %rbx 1707b: 48 83 ec 28 sub $0x28,%rsp 1707f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 17083: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 17087: 48 8b 45 d8 mov -0x28(%rbp),%rax 1708b: 48 89 c7 mov %rax,%rdi 1708e: e8 0d ca ff ff callq 13aa0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_get_nodeEv@plt> 17093: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 17097: 48 8b 45 e0 mov -0x20(%rbp),%rax 1709b: 48 83 c0 20 add $0x20,%rax 1709f: 48 89 c7 mov %rax,%rdi 170a2: e8 49 ca ff ff callq 13af0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt> 170a7: 48 89 c3 mov %rax,%rbx 170aa: 48 8d 45 ef lea -0x11(%rbp),%rax 170ae: 48 8b 55 d8 mov -0x28(%rbp),%rdx 170b2: 48 89 d6 mov %rdx,%rsi 170b5: 48 89 c7 mov %rax,%rdi 170b8: e8 b3 bd ff ff callq 12e70 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt> 170bd: 48 8b 55 d0 mov -0x30(%rbp),%rdx 170c1: 48 8d 45 ef lea -0x11(%rbp),%rax 170c5: 48 89 de mov %rbx,%rsi 170c8: 48 89 c7 mov %rax,%rdi 170cb: e8 c0 c4 ff ff callq 13590 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_@plt> 170d0: 48 8d 45 ef lea -0x11(%rbp),%rax 170d4: 48 89 c7 mov %rax,%rdi 170d7: e8 84 be ff ff callq 12f60 <_ZNSaISt4pairIKmPvEED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 170dc: 48 8b 45 e0 mov -0x20(%rbp),%rax } 170e0: 48 83 c4 28 add $0x28,%rsp 170e4: 5b pop %rbx 170e5: 5d pop %rbp 170e6: c3 retq 170e7: 48 89 c3 mov %rax,%rbx _Link_type _M_create_node(const value_type& __x) { _Link_type __tmp = _M_get_node(); __try { get_allocator().construct 170ea: 48 8d 45 ef lea -0x11(%rbp),%rax 170ee: 48 89 c7 mov %rax,%rdi 170f1: e8 6a be ff ff callq 12f60 <_ZNSaISt4pairIKmPvEED1Ev@plt> 170f6: 48 89 d8 mov %rbx,%rax 170f9: eb 13 jmp 1710e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_+0x98> 170fb: 48 89 c3 mov %rax,%rbx (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 170fe: e8 7d d1 ff ff callq 14280 <__cxa_end_catch@plt> 17103: 48 89 d8 mov %rbx,%rax 17106: 48 89 c7 mov %rax,%rdi 17109: e8 72 d4 ff ff callq 14580 <_Unwind_Resume@plt> 1710e: 48 89 c7 mov %rax,%rdi 17111: e8 aa d2 ff ff callq 143c0 <__cxa_begin_catch@plt> { _M_put_node(__tmp); 17116: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1711a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1711e: 48 89 d6 mov %rdx,%rsi 17121: 48 89 c7 mov %rax,%rdi 17124: e8 d7 bc ff ff callq 12e00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt> __throw_exception_again; 17129: e8 e2 bc ff ff callq 12e10 <__cxa_rethrow@plt> 000000000001712e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 1712e: 55 push %rbp 1712f: 48 89 e5 mov %rsp,%rbp 17132: 48 83 ec 20 sub $0x20,%rsp 17136: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 1713a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1713e: 48 8b 50 18 mov 0x18(%rax),%rdx 17142: 48 8d 45 f0 lea -0x10(%rbp),%rax 17146: 48 89 d6 mov %rdx,%rsi 17149: 48 89 c7 mov %rax,%rdi 1714c: e8 ef c8 ff ff callq 13a40 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 17151: 48 8b 45 f0 mov -0x10(%rbp),%rax } 17155: c9 leaveq 17156: c3 retq 17157: 90 nop 0000000000017158 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 17158: 55 push %rbp 17159: 48 89 e5 mov %rsp,%rbp 1715c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17160: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17164: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 17168: 48 8b 45 f8 mov -0x8(%rbp),%rax 1716c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 17170: 48 8b 12 mov (%rdx),%rdx 17173: 48 89 10 mov %rdx,(%rax) 17176: 48 8b 45 e8 mov -0x18(%rbp),%rax 1717a: 0f b6 10 movzbl (%rax),%edx 1717d: 48 8b 45 f8 mov -0x8(%rbp),%rax 17181: 88 50 08 mov %dl,0x8(%rax) 17184: 5d pop %rbp 17185: c3 retq 0000000000017186 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 17186: 55 push %rbp 17187: 48 89 e5 mov %rsp,%rbp 1718a: 48 83 ec 10 sub $0x10,%rsp 1718e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 17192: 48 8b 45 f8 mov -0x8(%rbp),%rax 17196: 48 8b 00 mov (%rax),%rax 17199: 48 89 c7 mov %rax,%rdi 1719c: e8 8f be ff ff callq 13030 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 171a1: 48 8b 55 f8 mov -0x8(%rbp),%rdx 171a5: 48 89 02 mov %rax,(%rdx) return *this; 171a8: 48 8b 45 f8 mov -0x8(%rbp),%rax } 171ac: c9 leaveq 171ad: c3 retq 00000000000171ae <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt13_Rb_tree_nodeIS3_E>: _Const_Link_type _M_end() const { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); } static const_reference _S_value(_Const_Link_type __x) 171ae: 55 push %rbp 171af: 48 89 e5 mov %rsp,%rbp 171b2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 171b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 171ba: 48 83 c0 20 add $0x20,%rax 171be: 5d pop %rbp 171bf: c3 retq 00000000000171c0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 171c0: 55 push %rbp 171c1: 48 89 e5 mov %rsp,%rbp 171c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 171c8: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 171cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 171d0: 48 8b 10 mov (%rax),%rdx 171d3: 48 8b 45 f0 mov -0x10(%rbp),%rax 171d7: 48 8b 00 mov (%rax),%rax 171da: 48 39 c2 cmp %rax,%rdx 171dd: 0f 94 c0 sete %al 171e0: 5d pop %rbp 171e1: c3 retq 00000000000171e2 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv>: #endif void erase(const key_type* __first, const key_type* __last); void clear() 171e2: 55 push %rbp 171e3: 48 89 e5 mov %rsp,%rbp 171e6: 53 push %rbx 171e7: 48 83 ec 18 sub $0x18,%rsp 171eb: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); 171ef: 48 8b 45 e8 mov -0x18(%rbp),%rax 171f3: 48 89 c7 mov %rax,%rdi 171f6: e8 55 c3 ff ff callq 13550 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 171fb: 48 89 c2 mov %rax,%rdx 171fe: 48 8b 45 e8 mov -0x18(%rbp),%rax 17202: 48 89 d6 mov %rdx,%rsi 17205: 48 89 c7 mov %rax,%rdi 17208: e8 f3 c3 ff ff callq 13600 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> _M_leftmost() = _M_end(); 1720d: 48 8b 45 e8 mov -0x18(%rbp),%rax 17211: 48 89 c7 mov %rax,%rdi 17214: e8 a7 c3 ff ff callq 135c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 17219: 48 89 c3 mov %rax,%rbx 1721c: 48 8b 45 e8 mov -0x18(%rbp),%rax 17220: 48 89 c7 mov %rax,%rdi 17223: e8 38 d3 ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 17228: 48 89 03 mov %rax,(%rbx) _M_root() = 0; 1722b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1722f: 48 89 c7 mov %rax,%rdi 17232: e8 f9 d4 ff ff callq 14730 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv@plt> 17237: 48 c7 00 00 00 00 00 movq $0x0,(%rax) _M_rightmost() = _M_end(); 1723e: 48 8b 45 e8 mov -0x18(%rbp),%rax 17242: 48 89 c7 mov %rax,%rdi 17245: e8 46 d3 ff ff callq 14590 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 1724a: 48 89 c3 mov %rax,%rbx 1724d: 48 8b 45 e8 mov -0x18(%rbp),%rax 17251: 48 89 c7 mov %rax,%rdi 17254: e8 07 d3 ff ff callq 14560 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 17259: 48 89 03 mov %rax,(%rbx) _M_impl._M_node_count = 0; 1725c: 48 8b 45 e8 mov -0x18(%rbp),%rax 17260: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 17267: 00 } 17268: 48 83 c4 18 add $0x18,%rsp 1726c: 5b pop %rbx 1726d: 5d pop %rbp 1726e: c3 retq 1726f: 90 nop 0000000000017270 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 17270: 55 push %rbp 17271: 48 89 e5 mov %rsp,%rbp 17274: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17278: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 1727c: 48 8b 45 f8 mov -0x8(%rbp),%rax 17280: 48 8b 10 mov (%rax),%rdx 17283: 48 8b 45 f0 mov -0x10(%rbp),%rax 17287: 48 8b 00 mov (%rax),%rax 1728a: 48 39 c2 cmp %rax,%rdx 1728d: 0f 95 c0 setne %al 17290: 5d pop %rbp 17291: c3 retq 0000000000017292 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 17292: 55 push %rbp 17293: 48 89 e5 mov %rsp,%rbp 17296: 48 83 ec 20 sub $0x20,%rsp 1729a: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1729e: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 172a1: 48 8b 45 e8 mov -0x18(%rbp),%rax 172a5: 48 8b 00 mov (%rax),%rax 172a8: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 172ac: 48 8b 45 e8 mov -0x18(%rbp),%rax 172b0: 48 8b 00 mov (%rax),%rax 172b3: 48 89 c7 mov %rax,%rdi 172b6: e8 a5 c5 ff ff callq 13860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 172bb: 48 8b 55 e8 mov -0x18(%rbp),%rdx 172bf: 48 89 02 mov %rax,(%rdx) return __tmp; 172c2: 48 8b 45 f0 mov -0x10(%rbp),%rax } 172c6: c9 leaveq 172c7: c3 retq 00000000000172c8 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt23_Rb_tree_const_iteratorIS3_E>: void erase(iterator __position) { _M_erase_aux(__position); } void erase(const_iterator __position) 172c8: 55 push %rbp 172c9: 48 89 e5 mov %rsp,%rbp 172cc: 48 83 ec 10 sub $0x10,%rsp 172d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 172d4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_erase_aux(__position); } 172d8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 172dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 172e0: 48 89 d6 mov %rdx,%rsi 172e3: 48 89 c7 mov %rax,%rdi 172e6: e8 15 c6 ff ff callq 13900 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E@plt> 172eb: c9 leaveq 172ec: c3 retq 172ed: 90 nop 00000000000172ee <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE21_M_get_Node_allocatorEv>: _Node_allocator& _M_get_Node_allocator() { return *static_cast<_Node_allocator*>(&this->_M_impl); } const _Node_allocator& _M_get_Node_allocator() const 172ee: 55 push %rbp 172ef: 48 89 e5 mov %rsp,%rbp 172f2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 172f6: 48 8b 45 f8 mov -0x8(%rbp),%rax 172fa: 5d pop %rbp 172fb: c3 retq 00000000000172fc <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E>: 172fc: 55 push %rbp 172fd: 48 89 e5 mov %rsp,%rbp 17300: 48 83 ec 10 sub $0x10,%rsp 17304: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17308: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1730c: 48 8b 45 f8 mov -0x8(%rbp),%rax 17310: 48 89 c7 mov %rax,%rdi 17313: e8 b8 c9 ff ff callq 13cd0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC2Ev@plt> 17318: c9 leaveq 17319: c3 retq 000000000001731a <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 1731a: 55 push %rbp 1731b: 48 89 e5 mov %rsp,%rbp 1731e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17322: 5d pop %rbp 17323: c3 retq 0000000000017324 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE10deallocateEPS6_m>: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) 17324: 55 push %rbp 17325: 48 89 e5 mov %rsp,%rbp 17328: 48 83 ec 20 sub $0x20,%rsp 1732c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17330: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17334: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 17338: 48 8b 45 f0 mov -0x10(%rbp),%rax 1733c: 48 89 c7 mov %rax,%rdi 1733f: e8 ac b9 ff ff callq 12cf0 <_ZdlPv@plt> 17344: c9 leaveq 17345: c3 retq 0000000000017346 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_get_nodeEv>: get_allocator() const { return allocator_type(_M_get_Node_allocator()); } protected: _Link_type _M_get_node() 17346: 55 push %rbp 17347: 48 89 e5 mov %rsp,%rbp 1734a: 48 83 ec 10 sub $0x10,%rsp 1734e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 17352: 48 8b 45 f8 mov -0x8(%rbp),%rax 17356: ba 00 00 00 00 mov $0x0,%edx 1735b: be 01 00 00 00 mov $0x1,%esi 17360: 48 89 c7 mov %rax,%rdi 17363: e8 58 ba ff ff callq 12dc0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv@plt> 17368: c9 leaveq 17369: c3 retq 000000000001736a <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_>: { return size_t(-1) / sizeof(_Tp); } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 1736a: 55 push %rbp 1736b: 48 89 e5 mov %rsp,%rbp 1736e: 48 83 ec 20 sub $0x20,%rsp 17372: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17376: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1737a: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 1737e: 48 8b 45 f0 mov -0x10(%rbp),%rax 17382: 48 89 c6 mov %rax,%rsi 17385: bf 08 00 00 00 mov $0x8,%edi 1738a: e8 e1 bd ff ff callq 13170 <_ZnwmPv@plt> 1738f: 48 85 c0 test %rax,%rax 17392: 74 0a je 1739e <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_+0x34> 17394: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17398: 48 8b 12 mov (%rdx),%rdx 1739b: 48 89 10 mov %rdx,(%rax) 1739e: c9 leaveq 1739f: c3 retq 00000000000173a0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 173a0: 55 push %rbp 173a1: 48 89 e5 mov %rsp,%rbp 173a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 173a8: 5d pop %rbp 173a9: c3 retq 00000000000173aa <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_get_nodeEv>: get_allocator() const { return allocator_type(_M_get_Node_allocator()); } protected: _Link_type _M_get_node() 173aa: 55 push %rbp 173ab: 48 89 e5 mov %rsp,%rbp 173ae: 48 83 ec 10 sub $0x10,%rsp 173b2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 173b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 173ba: ba 00 00 00 00 mov $0x0,%edx 173bf: be 01 00 00 00 mov $0x1,%esi 173c4: 48 89 c7 mov %rax,%rdi 173c7: e8 34 c9 ff ff callq 13d00 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv@plt> 173cc: c9 leaveq 173cd: c3 retq 00000000000173ce <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_>: { return size_t(-1) / sizeof(_Tp); } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 173ce: 55 push %rbp 173cf: 48 89 e5 mov %rsp,%rbp 173d2: 48 83 ec 20 sub $0x20,%rsp 173d6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 173da: 48 89 75 f0 mov %rsi,-0x10(%rbp) 173de: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 173e2: 48 8b 45 f0 mov -0x10(%rbp),%rax 173e6: 48 89 c6 mov %rax,%rsi 173e9: bf 10 00 00 00 mov $0x10,%edi 173ee: e8 7d bd ff ff callq 13170 <_ZnwmPv@plt> 173f3: 48 85 c0 test %rax,%rax 173f6: 74 12 je 1740a <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_+0x3c> 173f8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 173fc: 48 8b 0a mov (%rdx),%rcx 173ff: 48 89 08 mov %rcx,(%rax) 17402: 48 8b 52 08 mov 0x8(%rdx),%rdx 17406: 48 89 50 08 mov %rdx,0x8(%rax) 1740a: c9 leaveq 1740b: c3 retq 000000000001740c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv>: _Rb_tree_impl<_Compare> _M_impl; protected: _Base_ptr& _M_root() 1740c: 55 push %rbp 1740d: 48 89 e5 mov %rsp,%rbp 17410: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 17414: 48 8b 45 f8 mov -0x8(%rbp),%rax 17418: 48 83 c0 10 add $0x10,%rax 1741c: 5d pop %rbp 1741d: c3 retq 000000000001741e <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1741e: 55 push %rbp 1741f: 48 89 e5 mov %rsp,%rbp 17422: 48 83 ec 20 sub $0x20,%rsp 17426: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1742a: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase_aux(const_iterator __position) { _Link_type __y = static_cast<_Link_type>(_Rb_tree_rebalance_for_erase (const_cast<_Base_ptr>(__position._M_node), this->_M_impl._M_header)); 1742e: 48 8b 45 e8 mov -0x18(%rbp),%rax 17432: 48 8d 50 08 lea 0x8(%rax),%rdx 17436: 48 8b 45 e0 mov -0x20(%rbp),%rax 1743a: 48 89 d6 mov %rdx,%rsi 1743d: 48 89 c7 mov %rax,%rdi 17440: e8 eb ca ff ff callq 13f30 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt> 17445: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__y); 17449: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1744d: 48 8b 45 e8 mov -0x18(%rbp),%rax 17451: 48 89 d6 mov %rdx,%rsi 17454: 48 89 c7 mov %rax,%rdi 17457: e8 24 b4 ff ff callq 12880 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt> --_M_impl._M_node_count; 1745c: 48 8b 45 e8 mov -0x18(%rbp),%rax 17460: 48 8b 40 28 mov 0x28(%rax),%rax 17464: 48 8d 50 ff lea -0x1(%rax),%rdx 17468: 48 8b 45 e8 mov -0x18(%rbp),%rax 1746c: 48 89 50 28 mov %rdx,0x28(%rax) } 17470: c9 leaveq 17471: c3 retq 0000000000017472 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 17472: 55 push %rbp 17473: 48 89 e5 mov %rsp,%rbp 17476: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1747a: 5d pop %rbp 1747b: c3 retq 000000000001747c <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv>: address(const_reference __x) const { return std::__addressof(__x); } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) 1747c: 55 push %rbp 1747d: 48 89 e5 mov %rsp,%rbp 17480: 48 83 ec 20 sub $0x20,%rsp 17484: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17488: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1748c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 17490: 48 8b 45 f8 mov -0x8(%rbp),%rax 17494: 48 89 c7 mov %rax,%rdi 17497: e8 04 c8 ff ff callq 13ca0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv@plt> 1749c: 48 3b 45 f0 cmp -0x10(%rbp),%rax 174a0: 0f 92 c0 setb %al 174a3: 84 c0 test %al,%al 174a5: 74 05 je 174ac <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 174a7: e8 f4 cd ff ff callq 142a0 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 174ac: 48 8b 55 f0 mov -0x10(%rbp),%rdx 174b0: 48 89 d0 mov %rdx,%rax 174b3: 48 c1 e0 02 shl $0x2,%rax 174b7: 48 01 d0 add %rdx,%rax 174ba: 48 c1 e0 03 shl $0x3,%rax 174be: 48 89 c7 mov %rax,%rdi 174c1: e8 aa d0 ff ff callq 14570 <_Znwm@plt> } 174c6: c9 leaveq 174c7: c3 retq 00000000000174c8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv>: address(const_reference __x) const { return std::__addressof(__x); } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) 174c8: 55 push %rbp 174c9: 48 89 e5 mov %rsp,%rbp 174cc: 48 83 ec 20 sub $0x20,%rsp 174d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 174d4: 48 89 75 f0 mov %rsi,-0x10(%rbp) 174d8: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 174dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 174e0: 48 89 c7 mov %rax,%rdi 174e3: e8 a8 cd ff ff callq 14290 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv@plt> 174e8: 48 3b 45 f0 cmp -0x10(%rbp),%rax 174ec: 0f 92 c0 setb %al 174ef: 84 c0 test %al,%al 174f1: 74 05 je 174f8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 174f3: e8 a8 cd ff ff callq 142a0 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 174f8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 174fc: 48 89 d0 mov %rdx,%rax 174ff: 48 01 c0 add %rax,%rax 17502: 48 01 d0 add %rdx,%rax 17505: 48 c1 e0 04 shl $0x4,%rax 17509: 48 89 c7 mov %rax,%rdi 1750c: e8 5f d0 ff ff callq 14570 <_Znwm@plt> } 17511: c9 leaveq 17512: c3 retq 17513: 90 nop 0000000000017514 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 17514: 55 push %rbp 17515: 48 89 e5 mov %rsp,%rbp 17518: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 1751c: 48 b8 66 66 66 66 66 movabs $0x666666666666666,%rax 17523: 66 66 06 17526: 5d pop %rbp 17527: c3 retq 0000000000017528 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 17528: 55 push %rbp 17529: 48 89 e5 mov %rsp,%rbp 1752c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 17530: 48 b8 55 55 55 55 55 movabs $0x555555555555555,%rax 17537: 55 55 05 1753a: 5d pop %rbp 1753b: c3 retq 000000000001753c <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEED1Ev>: * multimap; the distinction is made entirely in how the tree functions are * called (*_unique versus *_equal, same as the standard). */ template , typename _Alloc = std::allocator > > class map 1753c: 55 push %rbp 1753d: 48 89 e5 mov %rsp,%rbp 17540: 48 83 ec 10 sub $0x10,%rsp 17544: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17548: 48 8b 45 f8 mov -0x8(%rbp),%rax 1754c: 48 89 c7 mov %rax,%rdi 1754f: e8 0c c4 ff ff callq 13960 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev@plt> 17554: c9 leaveq 17555: c3 retq 17556: 90 nop 17557: 90 nop 0000000000017558 <_Z8x_createP18enif_environment_tiPKm>: #include "rados_nif.h" static const char* MOD_NAME = "rados_cluster"; ERL_NIF_TERM x_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 17558: 55 push %rbp 17559: 48 89 e5 mov %rsp,%rbp 1755c: 53 push %rbx 1755d: 48 83 ec 48 sub $0x48,%rsp 17561: 48 89 7d c8 mov %rdi,-0x38(%rbp) 17565: 89 75 c4 mov %esi,-0x3c(%rbp) 17568: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_create()"; 1756c: 48 8d 05 53 bd 00 00 lea 0xbd53(%rip),%rax # 232c6 <_fini+0x33e> 17573: 48 89 45 d8 mov %rax,-0x28(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 17577: 48 8b 05 92 3f 21 00 mov 0x213f92(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1757e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 17582: 48 8d 0d 48 bd 00 00 lea 0xbd48(%rip),%rcx # 232d1 <_fini+0x349> 17589: 48 89 c6 mov %rax,%rsi 1758c: 48 8b 05 fd 29 21 00 mov 0x2129fd(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17593: 48 89 c7 mov %rax,%rdi 17596: b8 00 00 00 00 mov $0x0,%eax 1759b: e8 30 ca ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 175a0: 48 8b 05 e9 29 21 00 mov 0x2129e9(%rip),%rax # 229f90 <_DYNAMIC+0x240> 175a7: 48 89 c7 mov %rax,%rdi 175aa: e8 31 ba ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> rados_t cluster; int err = rados_create(&cluster, NULL); 175af: 48 8d 45 d0 lea -0x30(%rbp),%rax 175b3: be 00 00 00 00 mov $0x0,%esi 175b8: 48 89 c7 mov %rax,%rdi 175bb: e8 60 c7 ff ff callq 13d20 175c0: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 175c3: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 175c7: 79 43 jns 1760c <_Z8x_createP18enif_environment_tiPKm+0xb4> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle"); 175c9: 48 8b 05 40 3f 21 00 mov 0x213f40(%rip),%rax # 22b510 <_ZL8MOD_NAME> 175d0: 48 8b 55 d8 mov -0x28(%rbp),%rdx 175d4: 48 8d 0d 05 bd 00 00 lea 0xbd05(%rip),%rcx # 232e0 <_fini+0x358> 175db: 48 89 c6 mov %rax,%rsi 175de: 48 8b 05 ab 29 21 00 mov 0x2129ab(%rip),%rax # 229f90 <_DYNAMIC+0x240> 175e5: 48 89 c7 mov %rax,%rdi 175e8: b8 00 00 00 00 mov $0x0,%eax 175ed: e8 2e c8 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 175f2: 8b 45 ec mov -0x14(%rbp),%eax 175f5: 89 c2 mov %eax,%edx 175f7: f7 da neg %edx 175f9: 48 8b 45 c8 mov -0x38(%rbp),%rax 175fd: 89 d6 mov %edx,%esi 175ff: 48 89 c7 mov %rax,%rdi 17602: e8 59 c8 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 17607: e9 d8 00 00 00 jmpq 176e4 <_Z8x_createP18enif_environment_tiPKm+0x18c> } logger.debug(MOD_NAME, func_name, "cluster created"); 1760c: 48 8b 05 fd 3e 21 00 mov 0x213efd(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17613: 48 8b 55 d8 mov -0x28(%rbp),%rdx 17617: 48 8d 0d e2 bc 00 00 lea 0xbce2(%rip),%rcx # 23300 <_fini+0x378> 1761e: 48 89 c6 mov %rax,%rsi 17621: 48 8b 05 68 29 21 00 mov 0x212968(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17628: 48 89 c7 mov %rax,%rdi 1762b: b8 00 00 00 00 mov $0x0,%eax 17630: e8 9b c9 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17635: 48 8b 05 54 29 21 00 mov 0x212954(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1763c: 48 89 c7 mov %rax,%rdi 1763f: e8 9c b9 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> uint64_t id = new_id(); 17644: e8 67 c7 ff ff callq 13db0 <_Z6new_idv@plt> 17649: 48 89 45 e0 mov %rax,-0x20(%rbp) map_cluster_add(id, cluster); 1764d: 48 8b 55 d0 mov -0x30(%rbp),%rdx 17651: 48 8b 45 e0 mov -0x20(%rbp),%rax 17655: 48 89 d6 mov %rdx,%rsi 17658: 48 89 c7 mov %rax,%rdi 1765b: e8 10 d0 ff ff callq 14670 <_Z15map_cluster_addmPv@plt> logger.debug(MOD_NAME, func_name, "cluster added to local map: %ld", id); 17660: 48 8b 05 a9 3e 21 00 mov 0x213ea9(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17667: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1766b: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1766f: 49 89 c8 mov %rcx,%r8 17672: 48 8d 0d 97 bc 00 00 lea 0xbc97(%rip),%rcx # 23310 <_fini+0x388> 17679: 48 89 c6 mov %rax,%rsi 1767c: 48 8b 05 0d 29 21 00 mov 0x21290d(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17683: 48 89 c7 mov %rax,%rdi 17686: b8 00 00 00 00 mov $0x0,%eax 1768b: e8 40 c9 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17690: 48 8b 05 f9 28 21 00 mov 0x2128f9(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17697: 48 89 c7 mov %rax,%rdi 1769a: e8 41 b9 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> return enif_make_tuple2(env, 1769f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 176a3: 48 8b 45 c8 mov -0x38(%rbp),%rax 176a7: 48 89 d6 mov %rdx,%rsi 176aa: 48 89 c7 mov %rax,%rdi 176ad: e8 9e c4 ff ff callq 13b50 176b2: 48 89 c3 mov %rax,%rbx 176b5: 48 8b 45 c8 mov -0x38(%rbp),%rax 176b9: 48 8d 35 70 bc 00 00 lea 0xbc70(%rip),%rsi # 23330 <_fini+0x3a8> 176c0: 48 89 c7 mov %rax,%rdi 176c3: e8 a8 b6 ff ff callq 12d70 176c8: 48 89 c2 mov %rax,%rdx 176cb: 48 8b 45 c8 mov -0x38(%rbp),%rax 176cf: 48 89 d9 mov %rbx,%rcx 176d2: be 02 00 00 00 mov $0x2,%esi 176d7: 48 89 c7 mov %rax,%rdi 176da: b8 00 00 00 00 mov $0x0,%eax 176df: e8 5c cb ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, id)); } 176e4: 48 83 c4 48 add $0x48,%rsp 176e8: 5b pop %rbx 176e9: 5d pop %rbp 176ea: c3 retq 00000000000176eb <_Z18x_create_with_userP18enif_environment_tiPKm>: ERL_NIF_TERM x_create_with_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 176eb: 55 push %rbp 176ec: 48 89 e5 mov %rsp,%rbp 176ef: 53 push %rbx 176f0: 48 81 ec 58 04 00 00 sub $0x458,%rsp 176f7: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 176fe: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 17704: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1770b: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 17712: 00 00 17714: 48 89 45 e8 mov %rax,-0x18(%rbp) 17718: 31 c0 xor %eax,%eax const char * func_name = "x_create_with_user()"; 1771a: 48 8d 05 12 bc 00 00 lea 0xbc12(%rip),%rax # 23333 <_fini+0x3ab> 17721: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 17728: 48 8b 05 e1 3d 21 00 mov 0x213de1(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1772f: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 17736: 48 8d 0d 94 bb 00 00 lea 0xbb94(%rip),%rcx # 232d1 <_fini+0x349> 1773d: 48 89 c6 mov %rax,%rsi 17740: 48 8b 05 49 28 21 00 mov 0x212849(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17747: 48 89 c7 mov %rax,%rdi 1774a: b8 00 00 00 00 mov $0x0,%eax 1774f: e8 7c c8 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> char name[MAX_NAME_LEN]; memset(name, 0, MAX_NAME_LEN); 17754: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1775b: ba 00 04 00 00 mov $0x400,%edx 17760: be 00 00 00 00 mov $0x0,%esi 17765: 48 89 c7 mov %rax,%rdi 17768: e8 93 b2 ff ff callq 12a00 if (!enif_get_string(env, argv[0], name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1776d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 17774: 48 8b 30 mov (%rax),%rsi 17777: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1777e: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 17785: 41 b8 01 00 00 00 mov $0x1,%r8d 1778b: b9 00 04 00 00 mov $0x400,%ecx 17790: 48 89 c7 mov %rax,%rdi 17793: e8 98 ca ff ff callq 14230 17798: 85 c0 test %eax,%eax 1779a: 0f 94 c0 sete %al 1779d: 84 c0 test %al,%al 1779f: 74 40 je 177e1 <_Z18x_create_with_userP18enif_environment_tiPKm+0xf6> { logger.error(MOD_NAME, func_name, "enif get params failed"); 177a1: 48 8b 05 68 3d 21 00 mov 0x213d68(%rip),%rax # 22b510 <_ZL8MOD_NAME> 177a8: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 177af: 48 8d 0d 92 bb 00 00 lea 0xbb92(%rip),%rcx # 23348 <_fini+0x3c0> 177b6: 48 89 c6 mov %rax,%rsi 177b9: 48 8b 05 d0 27 21 00 mov 0x2127d0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 177c0: 48 89 c7 mov %rax,%rdi 177c3: b8 00 00 00 00 mov $0x0,%eax 177c8: e8 53 c6 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 177cd: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 177d4: 48 89 c7 mov %rax,%rdi 177d7: e8 e4 c0 ff ff callq 138c0 177dc: e9 2a 01 00 00 jmpq 1790b <_Z18x_create_with_userP18enif_environment_tiPKm+0x220> } rados_t cluster; int err = rados_create(&cluster, name); 177e1: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 177e8: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 177ef: 48 89 d6 mov %rdx,%rsi 177f2: 48 89 c7 mov %rax,%rdi 177f5: e8 26 c5 ff ff callq 13d20 177fa: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 17800: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 17807: 79 56 jns 1785f <_Z18x_create_with_userP18enif_environment_tiPKm+0x174> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle with name: %s", name); 17809: 48 8b 05 00 3d 21 00 mov 0x213d00(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17810: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 17817: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1781e: 49 89 c8 mov %rcx,%r8 17821: 48 8d 0d 38 bb 00 00 lea 0xbb38(%rip),%rcx # 23360 <_fini+0x3d8> 17828: 48 89 c6 mov %rax,%rsi 1782b: 48 8b 05 5e 27 21 00 mov 0x21275e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17832: 48 89 c7 mov %rax,%rdi 17835: b8 00 00 00 00 mov $0x0,%eax 1783a: e8 e1 c5 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1783f: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 17845: 89 c2 mov %eax,%edx 17847: f7 da neg %edx 17849: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 17850: 89 d6 mov %edx,%esi 17852: 48 89 c7 mov %rax,%rdi 17855: e8 06 c6 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1785a: e9 ac 00 00 00 jmpq 1790b <_Z18x_create_with_userP18enif_environment_tiPKm+0x220> } uint64_t id = new_id(); 1785f: e8 4c c5 ff ff callq 13db0 <_Z6new_idv@plt> 17864: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) map_cluster_add(id, cluster); 1786b: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 17872: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 17879: 48 89 d6 mov %rdx,%rsi 1787c: 48 89 c7 mov %rax,%rdi 1787f: e8 ec cd ff ff callq 14670 <_Z15map_cluster_addmPv@plt> logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 17884: 48 8b 05 85 3c 21 00 mov 0x213c85(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1788b: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 17892: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 17899: 49 89 c8 mov %rcx,%r8 1789c: 48 8d 0d eb ba 00 00 lea 0xbaeb(%rip),%rcx # 2338e <_fini+0x406> 178a3: 48 89 c6 mov %rax,%rsi 178a6: 48 8b 05 e3 26 21 00 mov 0x2126e3(%rip),%rax # 229f90 <_DYNAMIC+0x240> 178ad: 48 89 c7 mov %rax,%rdi 178b0: b8 00 00 00 00 mov $0x0,%eax 178b5: e8 16 c7 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> return enif_make_tuple2(env, 178ba: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 178c1: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 178c8: 48 89 d6 mov %rdx,%rsi 178cb: 48 89 c7 mov %rax,%rdi 178ce: e8 7d c2 ff ff callq 13b50 178d3: 48 89 c3 mov %rax,%rbx 178d6: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 178dd: 48 8d 35 4c ba 00 00 lea 0xba4c(%rip),%rsi # 23330 <_fini+0x3a8> 178e4: 48 89 c7 mov %rax,%rdi 178e7: e8 84 b4 ff ff callq 12d70 178ec: 48 89 c2 mov %rax,%rdx 178ef: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 178f6: 48 89 d9 mov %rbx,%rcx 178f9: be 02 00 00 00 mov $0x2,%esi 178fe: 48 89 c7 mov %rax,%rdi 17901: b8 00 00 00 00 mov $0x0,%eax 17906: e8 35 c9 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, id)); } 1790b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1790f: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 17916: 00 00 17918: 74 05 je 1791f <_Z18x_create_with_userP18enif_environment_tiPKm+0x234> 1791a: e8 c1 c5 ff ff callq 13ee0 <__stack_chk_fail@plt> 1791f: 48 81 c4 58 04 00 00 add $0x458,%rsp 17926: 5b pop %rbx 17927: 5d pop %rbp 17928: c3 retq 0000000000017929 <_Z16x_conf_read_fileP18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_read_file(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 17929: 55 push %rbp 1792a: 48 89 e5 mov %rsp,%rbp 1792d: 48 83 ec 40 sub $0x40,%rsp 17931: 48 89 7d d8 mov %rdi,-0x28(%rbp) 17935: 89 75 d4 mov %esi,-0x2c(%rbp) 17938: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_conf_read_file()"; 1793c: 48 8d 05 59 ba 00 00 lea 0xba59(%rip),%rax # 2339c <_fini+0x414> 17943: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 17947: 48 8b 05 c2 3b 21 00 mov 0x213bc2(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1794e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17952: 48 8d 0d 78 b9 00 00 lea 0xb978(%rip),%rcx # 232d1 <_fini+0x349> 17959: 48 89 c6 mov %rax,%rsi 1795c: 48 8b 05 2d 26 21 00 mov 0x21262d(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17963: 48 89 c7 mov %rax,%rdi 17966: b8 00 00 00 00 mov $0x0,%eax 1796b: e8 60 c6 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 17970: 48 8b 45 c8 mov -0x38(%rbp),%rax 17974: 48 8b 08 mov (%rax),%rcx 17977: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1797b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1797f: 48 89 ce mov %rcx,%rsi 17982: 48 89 c7 mov %rax,%rdi 17985: e8 f6 bb ff ff callq 13580 1798a: 85 c0 test %eax,%eax 1798c: 0f 94 c0 sete %al 1798f: 84 c0 test %al,%al 17991: 74 3a je 179cd <_Z16x_conf_read_fileP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 17993: 48 8b 05 76 3b 21 00 mov 0x213b76(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1799a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1799e: 48 8d 0d a3 b9 00 00 lea 0xb9a3(%rip),%rcx # 23348 <_fini+0x3c0> 179a5: 48 89 c6 mov %rax,%rsi 179a8: 48 8b 05 e1 25 21 00 mov 0x2125e1(%rip),%rax # 229f90 <_DYNAMIC+0x240> 179af: 48 89 c7 mov %rax,%rdi 179b2: b8 00 00 00 00 mov $0x0,%eax 179b7: e8 64 c4 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 179bc: 48 8b 45 d8 mov -0x28(%rbp),%rax 179c0: 48 89 c7 mov %rax,%rdi 179c3: e8 f8 be ff ff callq 138c0 179c8: e9 f9 00 00 00 jmpq 17ac6 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x19d> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 179cd: 48 8b 4d e0 mov -0x20(%rbp),%rcx 179d1: 48 8b 05 38 3b 21 00 mov 0x213b38(%rip),%rax # 22b510 <_ZL8MOD_NAME> 179d8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 179dc: 49 89 c8 mov %rcx,%r8 179df: 48 8d 0d a8 b9 00 00 lea 0xb9a8(%rip),%rcx # 2338e <_fini+0x406> 179e6: 48 89 c6 mov %rax,%rsi 179e9: 48 8b 05 a0 25 21 00 mov 0x2125a0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 179f0: 48 89 c7 mov %rax,%rdi 179f3: b8 00 00 00 00 mov $0x0,%eax 179f8: e8 d3 c5 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 179fd: 48 8b 45 e0 mov -0x20(%rbp),%rax 17a01: 48 89 c7 mov %rax,%rdi 17a04: e8 07 b5 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 17a09: 48 89 45 f0 mov %rax,-0x10(%rbp) if (cluster == NULL) 17a0d: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 17a12: 75 3e jne 17a52 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x129> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 17a14: 48 8b 4d e0 mov -0x20(%rbp),%rcx 17a18: 48 8b 05 f1 3a 21 00 mov 0x213af1(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17a1f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17a23: 49 89 c8 mov %rcx,%r8 17a26: 48 8d 0d 82 b9 00 00 lea 0xb982(%rip),%rcx # 233af <_fini+0x427> 17a2d: 48 89 c6 mov %rax,%rsi 17a30: 48 8b 05 59 25 21 00 mov 0x212559(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17a37: 48 89 c7 mov %rax,%rdi 17a3a: b8 00 00 00 00 mov $0x0,%eax 17a3f: e8 dc c3 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 17a44: 48 8b 45 d8 mov -0x28(%rbp),%rax 17a48: 48 89 c7 mov %rax,%rdi 17a4b: e8 70 be ff ff callq 138c0 17a50: eb 74 jmp 17ac6 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x19d> } int err = rados_conf_read_file(cluster, NULL); 17a52: 48 8b 45 f0 mov -0x10(%rbp),%rax 17a56: be 00 00 00 00 mov $0x0,%esi 17a5b: 48 89 c7 mov %rax,%rdi 17a5e: e8 5d c3 ff ff callq 13dc0 17a63: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 17a66: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 17a6a: 79 47 jns 17ab3 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x18a> { logger.error(MOD_NAME, func_name, "failed to read default config file for cluster: %ld", id); 17a6c: 48 8b 4d e0 mov -0x20(%rbp),%rcx 17a70: 48 8b 05 99 3a 21 00 mov 0x213a99(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17a77: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17a7b: 49 89 c8 mov %rcx,%r8 17a7e: 48 8d 0d 4b b9 00 00 lea 0xb94b(%rip),%rcx # 233d0 <_fini+0x448> 17a85: 48 89 c6 mov %rax,%rsi 17a88: 48 8b 05 01 25 21 00 mov 0x212501(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17a8f: 48 89 c7 mov %rax,%rdi 17a92: b8 00 00 00 00 mov $0x0,%eax 17a97: e8 84 c3 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 17a9c: 8b 45 fc mov -0x4(%rbp),%eax 17a9f: 89 c2 mov %eax,%edx 17aa1: f7 da neg %edx 17aa3: 48 8b 45 d8 mov -0x28(%rbp),%rax 17aa7: 89 d6 mov %edx,%esi 17aa9: 48 89 c7 mov %rax,%rdi 17aac: e8 af c3 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 17ab1: eb 13 jmp 17ac6 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x19d> } return enif_make_atom(env, "ok"); 17ab3: 48 8b 45 d8 mov -0x28(%rbp),%rax 17ab7: 48 8d 35 72 b8 00 00 lea 0xb872(%rip),%rsi # 23330 <_fini+0x3a8> 17abe: 48 89 c7 mov %rax,%rdi 17ac1: e8 aa b2 ff ff callq 12d70 } 17ac6: c9 leaveq 17ac7: c3 retq 0000000000017ac8 <_Z17x_conf_read_file2P18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_read_file2(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 17ac8: 55 push %rbp 17ac9: 48 89 e5 mov %rsp,%rbp 17acc: 48 81 ec 50 08 00 00 sub $0x850,%rsp 17ad3: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 17ada: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 17ae0: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 17ae7: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 17aee: 00 00 17af0: 48 89 45 f8 mov %rax,-0x8(%rbp) 17af4: 31 c0 xor %eax,%eax const char * func_name = "x_conf_read_file2()"; 17af6: 48 8d 05 07 b9 00 00 lea 0xb907(%rip),%rax # 23404 <_fini+0x47c> 17afd: 48 89 85 d8 f7 ff ff mov %rax,-0x828(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 17b04: 48 8b 05 05 3a 21 00 mov 0x213a05(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17b0b: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17b12: 48 8d 0d b8 b7 00 00 lea 0xb7b8(%rip),%rcx # 232d1 <_fini+0x349> 17b19: 48 89 c6 mov %rax,%rsi 17b1c: 48 8b 05 6d 24 21 00 mov 0x21246d(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17b23: 48 89 c7 mov %rax,%rdi 17b26: b8 00 00 00 00 mov $0x0,%eax 17b2b: e8 a0 c4 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17b30: 48 8b 05 59 24 21 00 mov 0x212459(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17b37: 48 89 c7 mov %rax,%rdi 17b3a: e8 a1 b4 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> uint64_t id; char conf_file[MAX_FILE_NAME_LEN]; memset(conf_file, 0, MAX_FILE_NAME_LEN); 17b3f: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 17b46: ba 00 08 00 00 mov $0x800,%edx 17b4b: be 00 00 00 00 mov $0x0,%esi 17b50: 48 89 c7 mov %rax,%rdi 17b53: e8 a8 ae ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 17b58: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 17b5f: 48 8b 08 mov (%rax),%rcx 17b62: 48 8d 95 d0 f7 ff ff lea -0x830(%rbp),%rdx 17b69: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17b70: 48 89 ce mov %rcx,%rsi 17b73: 48 89 c7 mov %rax,%rdi 17b76: e8 05 ba ff ff callq 13580 17b7b: 85 c0 test %eax,%eax 17b7d: 74 33 je 17bb2 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xea> !enif_get_string(env, argv[1], conf_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) 17b7f: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 17b86: 48 83 c0 08 add $0x8,%rax 17b8a: 48 8b 30 mov (%rax),%rsi 17b8d: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 17b94: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17b9b: 41 b8 01 00 00 00 mov $0x1,%r8d 17ba1: b9 00 08 00 00 mov $0x800,%ecx 17ba6: 48 89 c7 mov %rax,%rdi 17ba9: e8 82 c6 ff ff callq 14230 logger.flush(); uint64_t id; char conf_file[MAX_FILE_NAME_LEN]; memset(conf_file, 0, MAX_FILE_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 17bae: 85 c0 test %eax,%eax 17bb0: 75 07 jne 17bb9 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xf1> 17bb2: b8 01 00 00 00 mov $0x1,%eax 17bb7: eb 05 jmp 17bbe <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xf6> 17bb9: b8 00 00 00 00 mov $0x0,%eax 17bbe: 84 c0 test %al,%al 17bc0: 74 40 je 17c02 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x13a> !enif_get_string(env, argv[1], conf_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 17bc2: 48 8b 05 47 39 21 00 mov 0x213947(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17bc9: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17bd0: 48 8d 0d 71 b7 00 00 lea 0xb771(%rip),%rcx # 23348 <_fini+0x3c0> 17bd7: 48 89 c6 mov %rax,%rsi 17bda: 48 8b 05 af 23 21 00 mov 0x2123af(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17be1: 48 89 c7 mov %rax,%rdi 17be4: b8 00 00 00 00 mov $0x0,%eax 17be9: e8 32 c2 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 17bee: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17bf5: 48 89 c7 mov %rax,%rdi 17bf8: e8 c3 bc ff ff callq 138c0 17bfd: e9 d4 01 00 00 jmpq 17dd6 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x30e> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 17c02: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17c09: 48 8b 05 00 39 21 00 mov 0x213900(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17c10: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17c17: 49 89 c8 mov %rcx,%r8 17c1a: 48 8d 0d 6d b7 00 00 lea 0xb76d(%rip),%rcx # 2338e <_fini+0x406> 17c21: 48 89 c6 mov %rax,%rsi 17c24: 48 8b 05 65 23 21 00 mov 0x212365(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17c2b: 48 89 c7 mov %rax,%rdi 17c2e: b8 00 00 00 00 mov $0x0,%eax 17c33: e8 98 c3 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17c38: 48 8b 05 51 23 21 00 mov 0x212351(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17c3f: 48 89 c7 mov %rax,%rdi 17c42: e8 99 b3 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> rados_t cluster = map_cluster_get(id); 17c47: 48 8b 85 d0 f7 ff ff mov -0x830(%rbp),%rax 17c4e: 48 89 c7 mov %rax,%rdi 17c51: e8 ba b2 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 17c56: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (cluster == NULL) 17c5d: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 17c64: 00 17c65: 75 4a jne 17cb1 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x1e9> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 17c67: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17c6e: 48 8b 05 9b 38 21 00 mov 0x21389b(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17c75: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17c7c: 49 89 c8 mov %rcx,%r8 17c7f: 48 8d 0d 29 b7 00 00 lea 0xb729(%rip),%rcx # 233af <_fini+0x427> 17c86: 48 89 c6 mov %rax,%rsi 17c89: 48 8b 05 00 23 21 00 mov 0x212300(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17c90: 48 89 c7 mov %rax,%rdi 17c93: b8 00 00 00 00 mov $0x0,%eax 17c98: e8 83 c1 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 17c9d: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17ca4: 48 89 c7 mov %rax,%rdi 17ca7: e8 14 bc ff ff callq 138c0 17cac: e9 25 01 00 00 jmpq 17dd6 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x30e> } logger.debug(MOD_NAME, func_name, "cluster found: %ld", id); 17cb1: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17cb8: 48 8b 05 51 38 21 00 mov 0x213851(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17cbf: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17cc6: 49 89 c8 mov %rcx,%r8 17cc9: 48 8d 0d 48 b7 00 00 lea 0xb748(%rip),%rcx # 23418 <_fini+0x490> 17cd0: 48 89 c6 mov %rax,%rsi 17cd3: 48 8b 05 b6 22 21 00 mov 0x2122b6(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17cda: 48 89 c7 mov %rax,%rdi 17cdd: b8 00 00 00 00 mov $0x0,%eax 17ce2: e8 e9 c2 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17ce7: 48 8b 05 a2 22 21 00 mov 0x2122a2(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17cee: 48 89 c7 mov %rax,%rdi 17cf1: e8 ea b2 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> int err = rados_conf_read_file(cluster, conf_file); 17cf6: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 17cfd: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 17d04: 48 89 d6 mov %rdx,%rsi 17d07: 48 89 c7 mov %rax,%rdi 17d0a: e8 b1 c0 ff ff callq 13dc0 17d0f: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 17d15: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 17d1c: 79 5d jns 17d7b <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x2b3> { logger.error(MOD_NAME, func_name, "failed to read default config file %s for cluster: %ld", conf_file, id); 17d1e: 48 8b b5 d0 f7 ff ff mov -0x830(%rbp),%rsi 17d25: 48 8b 05 e4 37 21 00 mov 0x2137e4(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17d2c: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 17d33: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17d3a: 49 89 f1 mov %rsi,%r9 17d3d: 49 89 c8 mov %rcx,%r8 17d40: 48 8d 0d e9 b6 00 00 lea 0xb6e9(%rip),%rcx # 23430 <_fini+0x4a8> 17d47: 48 89 c6 mov %rax,%rsi 17d4a: 48 8b 05 3f 22 21 00 mov 0x21223f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17d51: 48 89 c7 mov %rax,%rdi 17d54: b8 00 00 00 00 mov $0x0,%eax 17d59: e8 c2 c0 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 17d5e: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 17d64: 89 c2 mov %eax,%edx 17d66: f7 da neg %edx 17d68: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17d6f: 89 d6 mov %edx,%esi 17d71: 48 89 c7 mov %rax,%rdi 17d74: e8 e7 c0 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 17d79: eb 5b jmp 17dd6 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x30e> } logger.debug(MOD_NAME, func_name, "config file read: %ld", id); 17d7b: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17d82: 48 8b 05 87 37 21 00 mov 0x213787(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17d89: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17d90: 49 89 c8 mov %rcx,%r8 17d93: 48 8d 0d cd b6 00 00 lea 0xb6cd(%rip),%rcx # 23467 <_fini+0x4df> 17d9a: 48 89 c6 mov %rax,%rsi 17d9d: 48 8b 05 ec 21 21 00 mov 0x2121ec(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17da4: 48 89 c7 mov %rax,%rdi 17da7: b8 00 00 00 00 mov $0x0,%eax 17dac: e8 1f c2 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 17db1: 48 8b 05 d8 21 21 00 mov 0x2121d8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17db8: 48 89 c7 mov %rax,%rdi 17dbb: e8 20 b2 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> return enif_make_atom(env, "ok"); 17dc0: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17dc7: 48 8d 35 62 b5 00 00 lea 0xb562(%rip),%rsi # 23330 <_fini+0x3a8> 17dce: 48 89 c7 mov %rax,%rdi 17dd1: e8 9a af ff ff callq 12d70 } 17dd6: 48 8b 55 f8 mov -0x8(%rbp),%rdx 17dda: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 17de1: 00 00 17de3: 74 05 je 17dea <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x322> 17de5: e8 f6 c0 ff ff callq 13ee0 <__stack_chk_fail@plt> 17dea: c9 leaveq 17deb: c3 retq 0000000000017dec <_Z10x_conf_setP18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_set(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 17dec: 55 push %rbp 17ded: 48 89 e5 mov %rsp,%rbp 17df0: 48 81 ec 50 08 00 00 sub $0x850,%rsp 17df7: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 17dfe: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 17e04: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 17e0b: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 17e12: 00 00 17e14: 48 89 45 f8 mov %rax,-0x8(%rbp) 17e18: 31 c0 xor %eax,%eax const char * func_name = "x_conf_set()"; 17e1a: 48 8d 05 5c b6 00 00 lea 0xb65c(%rip),%rax # 2347d <_fini+0x4f5> 17e21: 48 89 85 d8 f7 ff ff mov %rax,-0x828(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 17e28: 48 8b 05 e1 36 21 00 mov 0x2136e1(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17e2f: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17e36: 48 8d 0d 94 b4 00 00 lea 0xb494(%rip),%rcx # 232d1 <_fini+0x349> 17e3d: 48 89 c6 mov %rax,%rsi 17e40: 48 8b 05 49 21 21 00 mov 0x212149(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17e47: 48 89 c7 mov %rax,%rdi 17e4a: b8 00 00 00 00 mov $0x0,%eax 17e4f: e8 7c c1 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; char option[MAX_NAME_LEN]; memset(option, 0, MAX_NAME_LEN); 17e54: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 17e5b: ba 00 04 00 00 mov $0x400,%edx 17e60: be 00 00 00 00 mov $0x0,%esi 17e65: 48 89 c7 mov %rax,%rdi 17e68: e8 93 ab ff ff callq 12a00 char value[MAX_NAME_LEN]; memset(value, 0, MAX_NAME_LEN); 17e6d: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 17e74: ba 00 04 00 00 mov $0x400,%edx 17e79: be 00 00 00 00 mov $0x0,%esi 17e7e: 48 89 c7 mov %rax,%rdi 17e81: e8 7a ab ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 17e86: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 17e8d: 48 8b 08 mov (%rax),%rcx 17e90: 48 8d 95 d0 f7 ff ff lea -0x830(%rbp),%rdx 17e97: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17e9e: 48 89 ce mov %rcx,%rsi 17ea1: 48 89 c7 mov %rax,%rdi 17ea4: e8 d7 b6 ff ff callq 13580 17ea9: 85 c0 test %eax,%eax 17eab: 74 66 je 17f13 <_Z10x_conf_setP18enif_environment_tiPKm+0x127> !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1) || 17ead: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 17eb4: 48 83 c0 08 add $0x8,%rax 17eb8: 48 8b 30 mov (%rax),%rsi 17ebb: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 17ec2: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17ec9: 41 b8 01 00 00 00 mov $0x1,%r8d 17ecf: b9 00 04 00 00 mov $0x400,%ecx 17ed4: 48 89 c7 mov %rax,%rdi 17ed7: e8 54 c3 ff ff callq 14230 uint64_t id; char option[MAX_NAME_LEN]; memset(option, 0, MAX_NAME_LEN); char value[MAX_NAME_LEN]; memset(value, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 17edc: 85 c0 test %eax,%eax 17ede: 74 33 je 17f13 <_Z10x_conf_setP18enif_environment_tiPKm+0x127> !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1)) 17ee0: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 17ee7: 48 83 c0 08 add $0x8,%rax 17eeb: 48 8b 30 mov (%rax),%rsi 17eee: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 17ef5: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17efc: 41 b8 01 00 00 00 mov $0x1,%r8d 17f02: b9 00 04 00 00 mov $0x400,%ecx 17f07: 48 89 c7 mov %rax,%rdi 17f0a: e8 21 c3 ff ff callq 14230 uint64_t id; char option[MAX_NAME_LEN]; memset(option, 0, MAX_NAME_LEN); char value[MAX_NAME_LEN]; memset(value, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 17f0f: 85 c0 test %eax,%eax 17f11: 75 07 jne 17f1a <_Z10x_conf_setP18enif_environment_tiPKm+0x12e> 17f13: b8 01 00 00 00 mov $0x1,%eax 17f18: eb 05 jmp 17f1f <_Z10x_conf_setP18enif_environment_tiPKm+0x133> 17f1a: b8 00 00 00 00 mov $0x0,%eax 17f1f: 84 c0 test %al,%al 17f21: 74 40 je 17f63 <_Z10x_conf_setP18enif_environment_tiPKm+0x177> !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 17f23: 48 8b 05 e6 35 21 00 mov 0x2135e6(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17f2a: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17f31: 48 8d 0d 10 b4 00 00 lea 0xb410(%rip),%rcx # 23348 <_fini+0x3c0> 17f38: 48 89 c6 mov %rax,%rsi 17f3b: 48 8b 05 4e 20 21 00 mov 0x21204e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17f42: 48 89 c7 mov %rax,%rdi 17f45: b8 00 00 00 00 mov $0x0,%eax 17f4a: e8 d1 be ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 17f4f: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17f56: 48 89 c7 mov %rax,%rdi 17f59: e8 62 b9 ff ff callq 138c0 17f5e: e9 ff 00 00 00 jmpq 18062 <_Z10x_conf_setP18enif_environment_tiPKm+0x276> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 17f63: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17f6a: 48 8b 05 9f 35 21 00 mov 0x21359f(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17f71: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17f78: 49 89 c8 mov %rcx,%r8 17f7b: 48 8d 0d 0c b4 00 00 lea 0xb40c(%rip),%rcx # 2338e <_fini+0x406> 17f82: 48 89 c6 mov %rax,%rsi 17f85: 48 8b 05 04 20 21 00 mov 0x212004(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17f8c: 48 89 c7 mov %rax,%rdi 17f8f: b8 00 00 00 00 mov $0x0,%eax 17f94: e8 37 c0 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 17f99: 48 8b 85 d0 f7 ff ff mov -0x830(%rbp),%rax 17fa0: 48 89 c7 mov %rax,%rdi 17fa3: e8 68 af ff ff callq 12f10 <_Z15map_cluster_getm@plt> 17fa8: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (cluster == NULL) 17faf: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 17fb6: 00 17fb7: 75 47 jne 18000 <_Z10x_conf_setP18enif_environment_tiPKm+0x214> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 17fb9: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 17fc0: 48 8b 05 49 35 21 00 mov 0x213549(%rip),%rax # 22b510 <_ZL8MOD_NAME> 17fc7: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 17fce: 49 89 c8 mov %rcx,%r8 17fd1: 48 8d 0d d7 b3 00 00 lea 0xb3d7(%rip),%rcx # 233af <_fini+0x427> 17fd8: 48 89 c6 mov %rax,%rsi 17fdb: 48 8b 05 ae 1f 21 00 mov 0x211fae(%rip),%rax # 229f90 <_DYNAMIC+0x240> 17fe2: 48 89 c7 mov %rax,%rdi 17fe5: b8 00 00 00 00 mov $0x0,%eax 17fea: e8 31 be ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 17fef: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 17ff6: 48 89 c7 mov %rax,%rdi 17ff9: e8 c2 b8 ff ff callq 138c0 17ffe: eb 62 jmp 18062 <_Z10x_conf_setP18enif_environment_tiPKm+0x276> } int err = rados_conf_set(cluster, option, value); 18000: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18007: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 1800e: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 18015: 48 89 ce mov %rcx,%rsi 18018: 48 89 c7 mov %rax,%rdi 1801b: e8 a0 b7 ff ff callq 137c0 18020: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 18026: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1802d: 79 1d jns 1804c <_Z10x_conf_setP18enif_environment_tiPKm+0x260> { return make_error_tuple(env, -err); 1802f: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 18035: 89 c2 mov %eax,%edx 18037: f7 da neg %edx 18039: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 18040: 89 d6 mov %edx,%esi 18042: 48 89 c7 mov %rax,%rdi 18045: e8 16 be ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1804a: eb 16 jmp 18062 <_Z10x_conf_setP18enif_environment_tiPKm+0x276> } return enif_make_atom(env, "ok"); 1804c: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 18053: 48 8d 35 d6 b2 00 00 lea 0xb2d6(%rip),%rsi # 23330 <_fini+0x3a8> 1805a: 48 89 c7 mov %rax,%rdi 1805d: e8 0e ad ff ff callq 12d70 } 18062: 48 8b 55 f8 mov -0x8(%rbp),%rdx 18066: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1806d: 00 00 1806f: 74 05 je 18076 <_Z10x_conf_setP18enif_environment_tiPKm+0x28a> 18071: e8 6a be ff ff callq 13ee0 <__stack_chk_fail@plt> 18076: c9 leaveq 18077: c3 retq 0000000000018078 <_Z9x_connectP18enif_environment_tiPKm>: ERL_NIF_TERM x_connect(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18078: 55 push %rbp 18079: 48 89 e5 mov %rsp,%rbp 1807c: 48 83 ec 40 sub $0x40,%rsp 18080: 48 89 7d d8 mov %rdi,-0x28(%rbp) 18084: 89 75 d4 mov %esi,-0x2c(%rbp) 18087: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_connect()"; 1808b: 48 8d 05 f8 b3 00 00 lea 0xb3f8(%rip),%rax # 2348a <_fini+0x502> 18092: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 18096: 48 8b 05 73 34 21 00 mov 0x213473(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1809d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 180a1: 48 8d 0d 29 b2 00 00 lea 0xb229(%rip),%rcx # 232d1 <_fini+0x349> 180a8: 48 89 c6 mov %rax,%rsi 180ab: 48 8b 05 de 1e 21 00 mov 0x211ede(%rip),%rax # 229f90 <_DYNAMIC+0x240> 180b2: 48 89 c7 mov %rax,%rdi 180b5: b8 00 00 00 00 mov $0x0,%eax 180ba: e8 11 bf ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 180bf: 48 8b 45 c8 mov -0x38(%rbp),%rax 180c3: 48 8b 08 mov (%rax),%rcx 180c6: 48 8d 55 e0 lea -0x20(%rbp),%rdx 180ca: 48 8b 45 d8 mov -0x28(%rbp),%rax 180ce: 48 89 ce mov %rcx,%rsi 180d1: 48 89 c7 mov %rax,%rdi 180d4: e8 a7 b4 ff ff callq 13580 180d9: 85 c0 test %eax,%eax 180db: 0f 94 c0 sete %al 180de: 84 c0 test %al,%al 180e0: 74 3a je 1811c <_Z9x_connectP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 180e2: 48 8b 05 27 34 21 00 mov 0x213427(%rip),%rax # 22b510 <_ZL8MOD_NAME> 180e9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 180ed: 48 8d 0d 54 b2 00 00 lea 0xb254(%rip),%rcx # 23348 <_fini+0x3c0> 180f4: 48 89 c6 mov %rax,%rsi 180f7: 48 8b 05 92 1e 21 00 mov 0x211e92(%rip),%rax # 229f90 <_DYNAMIC+0x240> 180fe: 48 89 c7 mov %rax,%rdi 18101: b8 00 00 00 00 mov $0x0,%eax 18106: e8 15 bd ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1810b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1810f: 48 89 c7 mov %rax,%rdi 18112: e8 a9 b7 ff ff callq 138c0 18117: e9 09 01 00 00 jmpq 18225 <_Z9x_connectP18enif_environment_tiPKm+0x1ad> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 1811c: 48 8b 4d e0 mov -0x20(%rbp),%rcx 18120: 48 8b 05 e9 33 21 00 mov 0x2133e9(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18127: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1812b: 49 89 c8 mov %rcx,%r8 1812e: 48 8d 0d 59 b2 00 00 lea 0xb259(%rip),%rcx # 2338e <_fini+0x406> 18135: 48 89 c6 mov %rax,%rsi 18138: 48 8b 05 51 1e 21 00 mov 0x211e51(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1813f: 48 89 c7 mov %rax,%rdi 18142: b8 00 00 00 00 mov $0x0,%eax 18147: e8 84 be ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 1814c: 48 8b 45 e0 mov -0x20(%rbp),%rax 18150: 48 89 c7 mov %rax,%rdi 18153: e8 b8 ad ff ff callq 12f10 <_Z15map_cluster_getm@plt> 18158: 48 89 45 f0 mov %rax,-0x10(%rbp) if (cluster == NULL) 1815c: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 18161: 75 41 jne 181a4 <_Z9x_connectP18enif_environment_tiPKm+0x12c> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 18163: 48 8b 4d e0 mov -0x20(%rbp),%rcx 18167: 48 8b 05 a2 33 21 00 mov 0x2133a2(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1816e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18172: 49 89 c8 mov %rcx,%r8 18175: 48 8d 0d 33 b2 00 00 lea 0xb233(%rip),%rcx # 233af <_fini+0x427> 1817c: 48 89 c6 mov %rax,%rsi 1817f: 48 8b 05 0a 1e 21 00 mov 0x211e0a(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18186: 48 89 c7 mov %rax,%rdi 18189: b8 00 00 00 00 mov $0x0,%eax 1818e: e8 8d bc ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 18193: 48 8b 45 d8 mov -0x28(%rbp),%rax 18197: 48 89 c7 mov %rax,%rdi 1819a: e8 21 b7 ff ff callq 138c0 1819f: e9 81 00 00 00 jmpq 18225 <_Z9x_connectP18enif_environment_tiPKm+0x1ad> } int err = rados_connect(cluster); 181a4: 48 8b 45 f0 mov -0x10(%rbp),%rax 181a8: 48 89 c7 mov %rax,%rdi 181ab: e8 40 a9 ff ff callq 12af0 181b0: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 181b3: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 181b7: 79 59 jns 18212 <_Z9x_connectP18enif_environment_tiPKm+0x19a> { logger.error(MOD_NAME, func_name, "failed to connect to cluster %ld: %s", id, strerror(-err)); 181b9: 8b 45 fc mov -0x4(%rbp),%eax 181bc: f7 d8 neg %eax 181be: 89 c7 mov %eax,%edi 181c0: e8 ab b7 ff ff callq 13970 181c5: 48 89 c1 mov %rax,%rcx 181c8: 48 8b 75 e0 mov -0x20(%rbp),%rsi 181cc: 48 8b 05 3d 33 21 00 mov 0x21333d(%rip),%rax # 22b510 <_ZL8MOD_NAME> 181d3: 48 8b 55 e8 mov -0x18(%rbp),%rdx 181d7: 49 89 c9 mov %rcx,%r9 181da: 49 89 f0 mov %rsi,%r8 181dd: 48 8d 0d b4 b2 00 00 lea 0xb2b4(%rip),%rcx # 23498 <_fini+0x510> 181e4: 48 89 c6 mov %rax,%rsi 181e7: 48 8b 05 a2 1d 21 00 mov 0x211da2(%rip),%rax # 229f90 <_DYNAMIC+0x240> 181ee: 48 89 c7 mov %rax,%rdi 181f1: b8 00 00 00 00 mov $0x0,%eax 181f6: e8 25 bc ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 181fb: 8b 45 fc mov -0x4(%rbp),%eax 181fe: 89 c2 mov %eax,%edx 18200: f7 da neg %edx 18202: 48 8b 45 d8 mov -0x28(%rbp),%rax 18206: 89 d6 mov %edx,%esi 18208: 48 89 c7 mov %rax,%rdi 1820b: e8 50 bc ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 18210: eb 13 jmp 18225 <_Z9x_connectP18enif_environment_tiPKm+0x1ad> } return enif_make_atom(env, "ok"); 18212: 48 8b 45 d8 mov -0x28(%rbp),%rax 18216: 48 8d 35 13 b1 00 00 lea 0xb113(%rip),%rsi # 23330 <_fini+0x3a8> 1821d: 48 89 c7 mov %rax,%rdi 18220: e8 4b ab ff ff callq 12d70 } 18225: c9 leaveq 18226: c3 retq 0000000000018227 <_Z10x_shutdownP18enif_environment_tiPKm>: ERL_NIF_TERM x_shutdown(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18227: 55 push %rbp 18228: 48 89 e5 mov %rsp,%rbp 1822b: 48 83 ec 40 sub $0x40,%rsp 1822f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 18233: 89 75 d4 mov %esi,-0x2c(%rbp) 18236: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_shutdown()"; 1823a: 48 8d 05 7c b2 00 00 lea 0xb27c(%rip),%rax # 234bd <_fini+0x535> 18241: 48 89 45 f0 mov %rax,-0x10(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 18245: 48 8b 05 c4 32 21 00 mov 0x2132c4(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1824c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18250: 48 8d 0d 7a b0 00 00 lea 0xb07a(%rip),%rcx # 232d1 <_fini+0x349> 18257: 48 89 c6 mov %rax,%rsi 1825a: 48 8b 05 2f 1d 21 00 mov 0x211d2f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18261: 48 89 c7 mov %rax,%rdi 18264: b8 00 00 00 00 mov $0x0,%eax 18269: e8 62 bd ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1826e: 48 8b 45 c8 mov -0x38(%rbp),%rax 18272: 48 8b 08 mov (%rax),%rcx 18275: 48 8d 55 e8 lea -0x18(%rbp),%rdx 18279: 48 8b 45 d8 mov -0x28(%rbp),%rax 1827d: 48 89 ce mov %rcx,%rsi 18280: 48 89 c7 mov %rax,%rdi 18283: e8 f8 b2 ff ff callq 13580 18288: 85 c0 test %eax,%eax 1828a: 0f 94 c0 sete %al 1828d: 84 c0 test %al,%al 1828f: 74 3a je 182cb <_Z10x_shutdownP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 18291: 48 8b 05 78 32 21 00 mov 0x213278(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18298: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1829c: 48 8d 0d a5 b0 00 00 lea 0xb0a5(%rip),%rcx # 23348 <_fini+0x3c0> 182a3: 48 89 c6 mov %rax,%rsi 182a6: 48 8b 05 e3 1c 21 00 mov 0x211ce3(%rip),%rax # 229f90 <_DYNAMIC+0x240> 182ad: 48 89 c7 mov %rax,%rdi 182b0: b8 00 00 00 00 mov $0x0,%eax 182b5: e8 66 bb ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 182ba: 48 8b 45 d8 mov -0x28(%rbp),%rax 182be: 48 89 c7 mov %rax,%rdi 182c1: e8 fa b5 ff ff callq 138c0 182c6: e9 7f 01 00 00 jmpq 1844a <_Z10x_shutdownP18enif_environment_tiPKm+0x223> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 182cb: 48 8b 4d e8 mov -0x18(%rbp),%rcx 182cf: 48 8b 05 3a 32 21 00 mov 0x21323a(%rip),%rax # 22b510 <_ZL8MOD_NAME> 182d6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 182da: 49 89 c8 mov %rcx,%r8 182dd: 48 8d 0d aa b0 00 00 lea 0xb0aa(%rip),%rcx # 2338e <_fini+0x406> 182e4: 48 89 c6 mov %rax,%rsi 182e7: 48 8b 05 a2 1c 21 00 mov 0x211ca2(%rip),%rax # 229f90 <_DYNAMIC+0x240> 182ee: 48 89 c7 mov %rax,%rdi 182f1: b8 00 00 00 00 mov $0x0,%eax 182f6: e8 d5 bc ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 182fb: 48 8b 05 8e 1c 21 00 mov 0x211c8e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18302: 48 89 c7 mov %rax,%rdi 18305: e8 d6 ac ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> rados_t cluster = map_cluster_get(id); 1830a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1830e: 48 89 c7 mov %rax,%rdi 18311: e8 fa ab ff ff callq 12f10 <_Z15map_cluster_getm@plt> 18316: 48 89 45 f8 mov %rax,-0x8(%rbp) if (cluster == NULL) 1831a: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 1831f: 75 41 jne 18362 <_Z10x_shutdownP18enif_environment_tiPKm+0x13b> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 18321: 48 8b 4d e8 mov -0x18(%rbp),%rcx 18325: 48 8b 05 e4 31 21 00 mov 0x2131e4(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1832c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18330: 49 89 c8 mov %rcx,%r8 18333: 48 8d 0d 75 b0 00 00 lea 0xb075(%rip),%rcx # 233af <_fini+0x427> 1833a: 48 89 c6 mov %rax,%rsi 1833d: 48 8b 05 4c 1c 21 00 mov 0x211c4c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18344: 48 89 c7 mov %rax,%rdi 18347: b8 00 00 00 00 mov $0x0,%eax 1834c: e8 cf ba ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 18351: 48 8b 45 d8 mov -0x28(%rbp),%rax 18355: 48 89 c7 mov %rax,%rdi 18358: e8 63 b5 ff ff callq 138c0 1835d: e9 e8 00 00 00 jmpq 1844a <_Z10x_shutdownP18enif_environment_tiPKm+0x223> } logger.debug(MOD_NAME, func_name, "found cluster: %ld", id); 18362: 48 8b 4d e8 mov -0x18(%rbp),%rcx 18366: 48 8b 05 a3 31 21 00 mov 0x2131a3(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1836d: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18371: 49 89 c8 mov %rcx,%r8 18374: 48 8d 0d 4f b1 00 00 lea 0xb14f(%rip),%rcx # 234ca <_fini+0x542> 1837b: 48 89 c6 mov %rax,%rsi 1837e: 48 8b 05 0b 1c 21 00 mov 0x211c0b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18385: 48 89 c7 mov %rax,%rdi 18388: b8 00 00 00 00 mov $0x0,%eax 1838d: e8 3e bc ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 18392: 48 8b 05 f7 1b 21 00 mov 0x211bf7(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18399: 48 89 c7 mov %rax,%rdi 1839c: e8 3f ac ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> rados_shutdown(cluster); 183a1: 48 8b 45 f8 mov -0x8(%rbp),%rax 183a5: 48 89 c7 mov %rax,%rdi 183a8: e8 f3 af ff ff callq 133a0 logger.debug(MOD_NAME, func_name, "cluster shutdown: %ld", id); 183ad: 48 8b 4d e8 mov -0x18(%rbp),%rcx 183b1: 48 8b 05 58 31 21 00 mov 0x213158(%rip),%rax # 22b510 <_ZL8MOD_NAME> 183b8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 183bc: 49 89 c8 mov %rcx,%r8 183bf: 48 8d 0d 17 b1 00 00 lea 0xb117(%rip),%rcx # 234dd <_fini+0x555> 183c6: 48 89 c6 mov %rax,%rsi 183c9: 48 8b 05 c0 1b 21 00 mov 0x211bc0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 183d0: 48 89 c7 mov %rax,%rdi 183d3: b8 00 00 00 00 mov $0x0,%eax 183d8: e8 f3 bb ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 183dd: 48 8b 05 ac 1b 21 00 mov 0x211bac(%rip),%rax # 229f90 <_DYNAMIC+0x240> 183e4: 48 89 c7 mov %rax,%rdi 183e7: e8 f4 ab ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> map_cluster_remove(id); 183ec: 48 8b 45 e8 mov -0x18(%rbp),%rax 183f0: 48 89 c7 mov %rax,%rdi 183f3: e8 38 b3 ff ff callq 13730 <_Z18map_cluster_removem@plt> logger.debug(MOD_NAME, func_name, "cluster erased: %ld", id); 183f8: 48 8b 4d e8 mov -0x18(%rbp),%rcx 183fc: 48 8b 05 0d 31 21 00 mov 0x21310d(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18403: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18407: 49 89 c8 mov %rcx,%r8 1840a: 48 8d 0d e2 b0 00 00 lea 0xb0e2(%rip),%rcx # 234f3 <_fini+0x56b> 18411: 48 89 c6 mov %rax,%rsi 18414: 48 8b 05 75 1b 21 00 mov 0x211b75(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1841b: 48 89 c7 mov %rax,%rdi 1841e: b8 00 00 00 00 mov $0x0,%eax 18423: e8 a8 bb ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 18428: 48 8b 05 61 1b 21 00 mov 0x211b61(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1842f: 48 89 c7 mov %rax,%rdi 18432: e8 a9 ab ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> return enif_make_atom(env, "ok"); 18437: 48 8b 45 d8 mov -0x28(%rbp),%rax 1843b: 48 8d 35 ee ae 00 00 lea 0xaeee(%rip),%rsi # 23330 <_fini+0x3a8> 18442: 48 89 c7 mov %rax,%rdi 18445: e8 26 a9 ff ff callq 12d70 } 1844a: c9 leaveq 1844b: c3 retq 000000000001844c <_Z17x_get_instance_idP18enif_environment_tiPKm>: ERL_NIF_TERM x_get_instance_id(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1844c: 55 push %rbp 1844d: 48 89 e5 mov %rsp,%rbp 18450: 53 push %rbx 18451: 48 83 ec 48 sub $0x48,%rsp 18455: 48 89 7d c8 mov %rdi,-0x38(%rbp) 18459: 89 75 c4 mov %esi,-0x3c(%rbp) 1845c: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_get_instance_id()"; 18460: 48 8d 05 a0 b0 00 00 lea 0xb0a0(%rip),%rax # 23507 <_fini+0x57f> 18467: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1846b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1846f: 48 8b 08 mov (%rax),%rcx 18472: 48 8d 55 d0 lea -0x30(%rbp),%rdx 18476: 48 8b 45 c8 mov -0x38(%rbp),%rax 1847a: 48 89 ce mov %rcx,%rsi 1847d: 48 89 c7 mov %rax,%rdi 18480: e8 fb b0 ff ff callq 13580 18485: 85 c0 test %eax,%eax 18487: 0f 94 c0 sete %al 1848a: 84 c0 test %al,%al 1848c: 74 3a je 184c8 <_Z17x_get_instance_idP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1848e: 48 8b 05 7b 30 21 00 mov 0x21307b(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18495: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18499: 48 8d 0d a8 ae 00 00 lea 0xaea8(%rip),%rcx # 23348 <_fini+0x3c0> 184a0: 48 89 c6 mov %rax,%rsi 184a3: 48 8b 05 e6 1a 21 00 mov 0x211ae6(%rip),%rax # 229f90 <_DYNAMIC+0x240> 184aa: 48 89 c7 mov %rax,%rdi 184ad: b8 00 00 00 00 mov $0x0,%eax 184b2: e8 69 b9 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 184b7: 48 8b 45 c8 mov -0x38(%rbp),%rax 184bb: 48 89 c7 mov %rax,%rdi 184be: e8 fd b3 ff ff callq 138c0 184c3: e9 da 00 00 00 jmpq 185a2 <_Z17x_get_instance_idP18enif_environment_tiPKm+0x156> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 184c8: 48 8b 4d d0 mov -0x30(%rbp),%rcx 184cc: 48 8b 05 3d 30 21 00 mov 0x21303d(%rip),%rax # 22b510 <_ZL8MOD_NAME> 184d3: 48 8b 55 d8 mov -0x28(%rbp),%rdx 184d7: 49 89 c8 mov %rcx,%r8 184da: 48 8d 0d ad ae 00 00 lea 0xaead(%rip),%rcx # 2338e <_fini+0x406> 184e1: 48 89 c6 mov %rax,%rsi 184e4: 48 8b 05 a5 1a 21 00 mov 0x211aa5(%rip),%rax # 229f90 <_DYNAMIC+0x240> 184eb: 48 89 c7 mov %rax,%rdi 184ee: b8 00 00 00 00 mov $0x0,%eax 184f3: e8 d8 ba ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 184f8: 48 8b 45 d0 mov -0x30(%rbp),%rax 184fc: 48 89 c7 mov %rax,%rdi 184ff: e8 0c aa ff ff callq 12f10 <_Z15map_cluster_getm@plt> 18504: 48 89 45 e0 mov %rax,-0x20(%rbp) if (cluster == NULL) 18508: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1850d: 75 3e jne 1854d <_Z17x_get_instance_idP18enif_environment_tiPKm+0x101> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 1850f: 48 8b 4d d0 mov -0x30(%rbp),%rcx 18513: 48 8b 05 f6 2f 21 00 mov 0x212ff6(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1851a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1851e: 49 89 c8 mov %rcx,%r8 18521: 48 8d 0d 87 ae 00 00 lea 0xae87(%rip),%rcx # 233af <_fini+0x427> 18528: 48 89 c6 mov %rax,%rsi 1852b: 48 8b 05 5e 1a 21 00 mov 0x211a5e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18532: 48 89 c7 mov %rax,%rdi 18535: b8 00 00 00 00 mov $0x0,%eax 1853a: e8 e1 b8 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1853f: 48 8b 45 c8 mov -0x38(%rbp),%rax 18543: 48 89 c7 mov %rax,%rdi 18546: e8 75 b3 ff ff callq 138c0 1854b: eb 55 jmp 185a2 <_Z17x_get_instance_idP18enif_environment_tiPKm+0x156> } uint64_t inst_id = rados_get_instance_id(cluster); 1854d: 48 8b 45 e0 mov -0x20(%rbp),%rax 18551: 48 89 c7 mov %rax,%rdi 18554: e8 c7 b5 ff ff callq 13b20 18559: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 1855d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18561: 48 8b 45 c8 mov -0x38(%rbp),%rax 18565: 48 89 d6 mov %rdx,%rsi 18568: 48 89 c7 mov %rax,%rdi 1856b: e8 e0 b5 ff ff callq 13b50 18570: 48 89 c3 mov %rax,%rbx 18573: 48 8b 45 c8 mov -0x38(%rbp),%rax 18577: 48 8d 35 b2 ad 00 00 lea 0xadb2(%rip),%rsi # 23330 <_fini+0x3a8> 1857e: 48 89 c7 mov %rax,%rdi 18581: e8 ea a7 ff ff callq 12d70 18586: 48 89 c2 mov %rax,%rdx 18589: 48 8b 45 c8 mov -0x38(%rbp),%rax 1858d: 48 89 d9 mov %rbx,%rcx 18590: be 02 00 00 00 mov $0x2,%esi 18595: 48 89 c7 mov %rax,%rdi 18598: b8 00 00 00 00 mov $0x0,%eax 1859d: e8 9e bc ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, inst_id)); } 185a2: 48 83 c4 48 add $0x48,%rsp 185a6: 5b pop %rbx 185a7: 5d pop %rbp 185a8: c3 retq 00000000000185a9 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci>: void scan_pool_name_list(list *pool_list, char * buf, int buf_len) { 185a9: 55 push %rbp 185aa: 48 89 e5 mov %rsp,%rbp 185ad: 48 83 ec 30 sub $0x30,%rsp 185b1: 48 89 7d e8 mov %rdi,-0x18(%rbp) 185b5: 48 89 75 e0 mov %rsi,-0x20(%rbp) 185b9: 89 55 dc mov %edx,-0x24(%rbp) int done = 0; 185bc: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) int curr = 0; 185c3: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) while (!done) 185ca: eb 79 jmp 18645 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x9c> { if ((buf[curr] == 0) && (buf[curr+1] == 0)) 185cc: 8b 45 f8 mov -0x8(%rbp),%eax 185cf: 48 98 cltq 185d1: 48 03 45 e0 add -0x20(%rbp),%rax 185d5: 0f b6 00 movzbl (%rax),%eax 185d8: 84 c0 test %al,%al 185da: 75 1d jne 185f9 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x50> 185dc: 8b 45 f8 mov -0x8(%rbp),%eax 185df: 48 98 cltq 185e1: 48 83 c0 01 add $0x1,%rax 185e5: 48 03 45 e0 add -0x20(%rbp),%rax 185e9: 0f b6 00 movzbl (%rax),%eax 185ec: 84 c0 test %al,%al 185ee: 75 09 jne 185f9 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x50> done = 1; 185f0: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) 185f7: eb 4c jmp 18645 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x9c> else { if (buf[curr] == 0) 185f9: 8b 45 f8 mov -0x8(%rbp),%eax 185fc: 48 98 cltq 185fe: 48 03 45 e0 add -0x20(%rbp),%rax 18602: 0f b6 00 movzbl (%rax),%eax 18605: 84 c0 test %al,%al 18607: 75 09 jne 18612 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x69> curr++; 18609: 8b 45 f8 mov -0x8(%rbp),%eax 1860c: 83 c0 01 add $0x1,%eax 1860f: 89 45 f8 mov %eax,-0x8(%rbp) pool_list->push_back(curr); 18612: 48 8d 55 f8 lea -0x8(%rbp),%rdx 18616: 48 8b 45 e8 mov -0x18(%rbp),%rax 1861a: 48 89 d6 mov %rdx,%rsi 1861d: 48 89 c7 mov %rax,%rdi 18620: e8 6b b4 ff ff callq 13a90 <_ZNSt4listIiSaIiEE9push_backERKi@plt> while (buf[curr] != 0) 18625: eb 09 jmp 18630 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x87> { curr++; 18627: 8b 45 f8 mov -0x8(%rbp),%eax 1862a: 83 c0 01 add $0x1,%eax 1862d: 89 45 f8 mov %eax,-0x8(%rbp) if (buf[curr] == 0) curr++; pool_list->push_back(curr); while (buf[curr] != 0) 18630: 8b 45 f8 mov -0x8(%rbp),%eax 18633: 48 98 cltq 18635: 48 03 45 e0 add -0x20(%rbp),%rax 18639: 0f b6 00 movzbl (%rax),%eax 1863c: 84 c0 test %al,%al 1863e: 0f 95 c0 setne %al 18641: 84 c0 test %al,%al 18643: 75 e2 jne 18627 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x7e> void scan_pool_name_list(list *pool_list, char * buf, int buf_len) { int done = 0; int curr = 0; while (!done) 18645: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 18649: 0f 94 c0 sete %al 1864c: 84 c0 test %al,%al 1864e: 0f 85 78 ff ff ff jne 185cc <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x23> { curr++; } } } } 18654: c9 leaveq 18655: c3 retq 0000000000018656 <_Z11x_pool_listP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_list(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18656: 55 push %rbp 18657: 48 89 e5 mov %rsp,%rbp 1865a: 53 push %rbx 1865b: 48 81 ec c8 00 00 00 sub $0xc8,%rsp 18662: 48 89 bd 48 ff ff ff mov %rdi,-0xb8(%rbp) 18669: 89 b5 44 ff ff ff mov %esi,-0xbc(%rbp) 1866f: 48 89 95 38 ff ff ff mov %rdx,-0xc8(%rbp) const char * func_name = "x_pool_list()"; 18676: 48 8d 05 9e ae 00 00 lea 0xae9e(%rip),%rax # 2351b <_fini+0x593> 1867d: 48 89 45 c0 mov %rax,-0x40(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 18681: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax 18688: 48 8b 08 mov (%rax),%rcx 1868b: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1868f: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18696: 48 89 ce mov %rcx,%rsi 18699: 48 89 c7 mov %rax,%rdi 1869c: e8 df ae ff ff callq 13580 186a1: 85 c0 test %eax,%eax 186a3: 0f 94 c0 sete %al 186a6: 84 c0 test %al,%al 186a8: 74 40 je 186ea <_Z11x_pool_listP18enif_environment_tiPKm+0x94> { logger.error(MOD_NAME, func_name, "enif get params failed"); 186aa: 48 8b 05 5f 2e 21 00 mov 0x212e5f(%rip),%rax # 22b510 <_ZL8MOD_NAME> 186b1: 48 8b 55 c0 mov -0x40(%rbp),%rdx 186b5: 48 8d 0d 8c ac 00 00 lea 0xac8c(%rip),%rcx # 23348 <_fini+0x3c0> 186bc: 48 89 c6 mov %rax,%rsi 186bf: 48 8b 05 ca 18 21 00 mov 0x2118ca(%rip),%rax # 229f90 <_DYNAMIC+0x240> 186c6: 48 89 c7 mov %rax,%rdi 186c9: b8 00 00 00 00 mov $0x0,%eax 186ce: e8 4d b7 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 186d3: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 186da: 48 89 c7 mov %rax,%rdi 186dd: e8 de b1 ff ff callq 138c0 186e2: 48 89 c3 mov %rax,%rbx 186e5: e9 ad 03 00 00 jmpq 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 186ea: 48 8b 4d b0 mov -0x50(%rbp),%rcx 186ee: 48 8b 05 1b 2e 21 00 mov 0x212e1b(%rip),%rax # 22b510 <_ZL8MOD_NAME> 186f5: 48 8b 55 c0 mov -0x40(%rbp),%rdx 186f9: 49 89 c8 mov %rcx,%r8 186fc: 48 8d 0d 8b ac 00 00 lea 0xac8b(%rip),%rcx # 2338e <_fini+0x406> 18703: 48 89 c6 mov %rax,%rsi 18706: 48 8b 05 83 18 21 00 mov 0x211883(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1870d: 48 89 c7 mov %rax,%rdi 18710: b8 00 00 00 00 mov $0x0,%eax 18715: e8 b6 b8 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 1871a: 48 8b 45 b0 mov -0x50(%rbp),%rax 1871e: 48 89 c7 mov %rax,%rdi 18721: e8 ea a7 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 18726: 48 89 45 c8 mov %rax,-0x38(%rbp) if (cluster == NULL) 1872a: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 1872f: 75 47 jne 18778 <_Z11x_pool_listP18enif_environment_tiPKm+0x122> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 18731: 48 8b 4d b0 mov -0x50(%rbp),%rcx 18735: 48 8b 05 d4 2d 21 00 mov 0x212dd4(%rip),%rax # 22b510 <_ZL8MOD_NAME> 1873c: 48 8b 55 c0 mov -0x40(%rbp),%rdx 18740: 49 89 c8 mov %rcx,%r8 18743: 48 8d 0d 65 ac 00 00 lea 0xac65(%rip),%rcx # 233af <_fini+0x427> 1874a: 48 89 c6 mov %rax,%rsi 1874d: 48 8b 05 3c 18 21 00 mov 0x21183c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18754: 48 89 c7 mov %rax,%rdi 18757: b8 00 00 00 00 mov $0x0,%eax 1875c: e8 bf b6 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 18761: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18768: 48 89 c7 mov %rax,%rdi 1876b: e8 50 b1 ff ff callq 138c0 18770: 48 89 c3 mov %rax,%rbx 18773: e9 1f 03 00 00 jmpq 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } // Call with a null buffer to get the buffer length first. int buf_len = rados_pool_list(cluster, NULL, 0); 18778: 48 8b 45 c8 mov -0x38(%rbp),%rax 1877c: ba 00 00 00 00 mov $0x0,%edx 18781: be 00 00 00 00 mov $0x0,%esi 18786: 48 89 c7 mov %rax,%rdi 18789: e8 c2 b8 ff ff callq 14050 1878e: 89 45 e4 mov %eax,-0x1c(%rbp) if (buf_len < 0) 18791: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 18795: 79 20 jns 187b7 <_Z11x_pool_listP18enif_environment_tiPKm+0x161> { return make_error_tuple(env, -buf_len); 18797: 8b 45 e4 mov -0x1c(%rbp),%eax 1879a: 89 c2 mov %eax,%edx 1879c: f7 da neg %edx 1879e: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 187a5: 89 d6 mov %edx,%esi 187a7: 48 89 c7 mov %rax,%rdi 187aa: e8 b1 b6 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 187af: 48 89 c3 mov %rax,%rbx 187b2: e9 e0 02 00 00 jmpq 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } if (buf_len > 0) 187b7: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 187bb: 0f 8e 82 02 00 00 jle 18a43 <_Z11x_pool_listP18enif_environment_tiPKm+0x3ed> { char * buf = (char *)malloc(buf_len + 10); 187c1: 8b 45 e4 mov -0x1c(%rbp),%eax 187c4: 83 c0 0a add $0xa,%eax 187c7: 48 98 cltq 187c9: 48 89 c7 mov %rax,%rdi 187cc: e8 af a7 ff ff callq 12f80 187d1: 48 89 45 d0 mov %rax,-0x30(%rbp) if (buf == NULL) 187d5: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 187da: 75 4c jne 18828 <_Z11x_pool_listP18enif_environment_tiPKm+0x1d2> { logger.error(MOD_NAME, func_name, "unable to malloc: %ld", id); 187dc: 48 8b 4d b0 mov -0x50(%rbp),%rcx 187e0: 48 8b 05 29 2d 21 00 mov 0x212d29(%rip),%rax # 22b510 <_ZL8MOD_NAME> 187e7: 48 8b 55 c0 mov -0x40(%rbp),%rdx 187eb: 49 89 c8 mov %rcx,%r8 187ee: 48 8d 0d 34 ad 00 00 lea 0xad34(%rip),%rcx # 23529 <_fini+0x5a1> 187f5: 48 89 c6 mov %rax,%rsi 187f8: 48 8b 05 91 17 21 00 mov 0x211791(%rip),%rax # 229f90 <_DYNAMIC+0x240> 187ff: 48 89 c7 mov %rax,%rdi 18802: b8 00 00 00 00 mov $0x0,%eax 18807: e8 14 b6 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, ENOMEM); 1880c: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18813: be 0c 00 00 00 mov $0xc,%esi 18818: 48 89 c7 mov %rax,%rdi 1881b: e8 40 b6 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 18820: 48 89 c3 mov %rax,%rbx 18823: e9 6f 02 00 00 jmpq 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } int buf_len2 = rados_pool_list(cluster, buf, buf_len + 10); 18828: 8b 45 e4 mov -0x1c(%rbp),%eax 1882b: 83 c0 0a add $0xa,%eax 1882e: 48 63 d0 movslq %eax,%rdx 18831: 48 8b 4d d0 mov -0x30(%rbp),%rcx 18835: 48 8b 45 c8 mov -0x38(%rbp),%rax 18839: 48 89 ce mov %rcx,%rsi 1883c: 48 89 c7 mov %rax,%rdi 1883f: e8 0c b8 ff ff callq 14050 18844: 89 45 e8 mov %eax,-0x18(%rbp) if (buf_len2 < 0) 18847: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) 1884b: 79 62 jns 188af <_Z11x_pool_listP18enif_environment_tiPKm+0x259> { logger.error(MOD_NAME, func_name, "failed to get pool list for %ld: %s", id, strerror(-buf_len2)); 1884d: 8b 45 e8 mov -0x18(%rbp),%eax 18850: f7 d8 neg %eax 18852: 89 c7 mov %eax,%edi 18854: e8 17 b1 ff ff callq 13970 18859: 48 89 c1 mov %rax,%rcx 1885c: 48 8b 75 b0 mov -0x50(%rbp),%rsi 18860: 48 8b 05 a9 2c 21 00 mov 0x212ca9(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18867: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1886b: 49 89 c9 mov %rcx,%r9 1886e: 49 89 f0 mov %rsi,%r8 18871: 48 8d 0d c8 ac 00 00 lea 0xacc8(%rip),%rcx # 23540 <_fini+0x5b8> 18878: 48 89 c6 mov %rax,%rsi 1887b: 48 8b 05 0e 17 21 00 mov 0x21170e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18882: 48 89 c7 mov %rax,%rdi 18885: b8 00 00 00 00 mov $0x0,%eax 1888a: e8 91 b5 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -buf_len2); 1888f: 8b 45 e8 mov -0x18(%rbp),%eax 18892: 89 c2 mov %eax,%edx 18894: f7 da neg %edx 18896: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 1889d: 89 d6 mov %edx,%esi 1889f: 48 89 c7 mov %rax,%rdi 188a2: e8 b9 b5 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 188a7: 48 89 c3 mov %rax,%rbx 188aa: e9 e8 01 00 00 jmpq 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } list pool_list; 188af: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 188b6: 48 89 c7 mov %rax,%rdi 188b9: e8 12 a2 ff ff callq 12ad0 <_ZNSt4listIiSaIiEEC1Ev@plt> scan_pool_name_list(&pool_list, buf, buf_len); 188be: 8b 55 e4 mov -0x1c(%rbp),%edx 188c1: 48 8b 4d d0 mov -0x30(%rbp),%rcx 188c5: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 188cc: 48 89 ce mov %rcx,%rsi 188cf: 48 89 c7 mov %rax,%rdi 188d2: e8 39 a8 ff ff callq 13110 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci@plt> list::const_iterator it; 188d7: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 188de: 48 89 c7 mov %rax,%rdi 188e1: e8 9a ae ff ff callq 13780 <_ZNSt20_List_const_iteratorIiEC1Ev@plt> ERL_NIF_TERM term_list = enif_make_list(env, 0); 188e6: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 188ed: be 00 00 00 00 mov $0x0,%esi 188f2: 48 89 c7 mov %rax,%rdi 188f5: b8 00 00 00 00 mov $0x0,%eax 188fa: e8 31 b2 ff ff callq 13b30 188ff: 48 89 45 b8 mov %rax,-0x48(%rbp) for (it = pool_list.begin(); it != pool_list.end(); it++) 18903: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1890a: 48 89 c7 mov %rax,%rdi 1890d: e8 be a0 ff ff callq 129d0 <_ZNSt4listIiSaIiEE5beginEv@plt> 18912: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 18919: 48 8d 95 70 ff ff ff lea -0x90(%rbp),%rdx 18920: 48 8d 45 80 lea -0x80(%rbp),%rax 18924: 48 89 d6 mov %rdx,%rsi 18927: 48 89 c7 mov %rax,%rdi 1892a: e8 51 b7 ff ff callq 14080 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt> 1892f: 48 8b 45 80 mov -0x80(%rbp),%rax 18933: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 1893a: eb 6d jmp 189a9 <_Z11x_pool_listP18enif_environment_tiPKm+0x353> { int off = *it; 1893c: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 18943: 48 89 c7 mov %rax,%rdi 18946: e8 15 b1 ff ff callq 13a60 <_ZNKSt20_List_const_iteratorIiEdeEv@plt> 1894b: 8b 00 mov (%rax),%eax 1894d: 89 45 ec mov %eax,-0x14(%rbp) ERL_NIF_TERM head = enif_make_string(env, buf + off, ERL_NIF_LATIN1); 18950: 8b 45 ec mov -0x14(%rbp),%eax 18953: 48 98 cltq 18955: 48 89 c1 mov %rax,%rcx 18958: 48 03 4d d0 add -0x30(%rbp),%rcx 1895c: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18963: ba 01 00 00 00 mov $0x1,%edx 18968: 48 89 ce mov %rcx,%rsi 1896b: 48 89 c7 mov %rax,%rdi 1896e: e8 cd ae ff ff callq 13840 18973: 48 89 45 d8 mov %rax,-0x28(%rbp) term_list = enif_make_list_cell(env, head, term_list); 18977: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1897b: 48 8b 4d d8 mov -0x28(%rbp),%rcx 1897f: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18986: 48 89 ce mov %rcx,%rsi 18989: 48 89 c7 mov %rax,%rdi 1898c: e8 cf ab ff ff callq 13560 18991: 48 89 45 b8 mov %rax,-0x48(%rbp) list pool_list; scan_pool_name_list(&pool_list, buf, buf_len); list::const_iterator it; ERL_NIF_TERM term_list = enif_make_list(env, 0); for (it = pool_list.begin(); it != pool_list.end(); it++) 18995: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 1899c: be 00 00 00 00 mov $0x0,%esi 189a1: 48 89 c7 mov %rax,%rdi 189a4: e8 c7 ad ff ff callq 13770 <_ZNSt20_List_const_iteratorIiEppEi@plt> 189a9: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 189b0: 48 89 c7 mov %rax,%rdi 189b3: e8 38 a2 ff ff callq 12bf0 <_ZNSt4listIiSaIiEE3endEv@plt> 189b8: 48 89 45 90 mov %rax,-0x70(%rbp) 189bc: 48 8d 55 90 lea -0x70(%rbp),%rdx 189c0: 48 8d 45 a0 lea -0x60(%rbp),%rax 189c4: 48 89 d6 mov %rdx,%rsi 189c7: 48 89 c7 mov %rax,%rdi 189ca: e8 b1 b6 ff ff callq 14080 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt> 189cf: 48 8d 55 a0 lea -0x60(%rbp),%rdx 189d3: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 189da: 48 89 d6 mov %rdx,%rsi 189dd: 48 89 c7 mov %rax,%rdi 189e0: e8 3b ae ff ff callq 13820 <_ZNKSt20_List_const_iteratorIiEneERKS0_@plt> 189e5: 84 c0 test %al,%al 189e7: 0f 85 4f ff ff ff jne 1893c <_Z11x_pool_listP18enif_environment_tiPKm+0x2e6> ERL_NIF_TERM head = enif_make_string(env, buf + off, ERL_NIF_LATIN1); term_list = enif_make_list_cell(env, head, term_list); } free(buf); 189ed: 48 8b 45 d0 mov -0x30(%rbp),%rax 189f1: 48 89 c7 mov %rax,%rdi 189f4: e8 b7 aa ff ff callq 134b0 return enif_make_tuple2(env, 189f9: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18a00: 48 8d 35 29 a9 00 00 lea 0xa929(%rip),%rsi # 23330 <_fini+0x3a8> 18a07: 48 89 c7 mov %rax,%rdi 18a0a: e8 61 a3 ff ff callq 12d70 18a0f: 48 89 c2 mov %rax,%rdx 18a12: 48 8b 4d b8 mov -0x48(%rbp),%rcx 18a16: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18a1d: be 02 00 00 00 mov $0x2,%esi 18a22: 48 89 c7 mov %rax,%rdi 18a25: b8 00 00 00 00 mov $0x0,%eax 18a2a: e8 11 b8 ff ff callq 14240 18a2f: 48 89 c3 mov %rax,%rbx enif_make_atom(env, "ok"), term_list); 18a32: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 18a39: 48 89 c7 mov %rax,%rdi 18a3c: e8 4f b5 ff ff callq 13f90 <_ZNSt4listIiSaIiEED1Ev@plt> 18a41: eb 54 jmp 18a97 <_Z11x_pool_listP18enif_environment_tiPKm+0x441> } else { return enif_make_tuple2(env, 18a43: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18a4a: be 00 00 00 00 mov $0x0,%esi 18a4f: 48 89 c7 mov %rax,%rdi 18a52: b8 00 00 00 00 mov $0x0,%eax 18a57: e8 d4 b0 ff ff callq 13b30 18a5c: 48 89 c3 mov %rax,%rbx 18a5f: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18a66: 48 8d 35 c3 a8 00 00 lea 0xa8c3(%rip),%rsi # 23330 <_fini+0x3a8> 18a6d: 48 89 c7 mov %rax,%rdi 18a70: e8 fb a2 ff ff callq 12d70 18a75: 48 89 c2 mov %rax,%rdx 18a78: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 18a7f: 48 89 d9 mov %rbx,%rcx 18a82: be 02 00 00 00 mov $0x2,%esi 18a87: 48 89 c7 mov %rax,%rdi 18a8a: b8 00 00 00 00 mov $0x0,%eax 18a8f: e8 ac b7 ff ff callq 14240 18a94: 48 89 c3 mov %rax,%rbx 18a97: 48 89 d8 mov %rbx,%rax enif_make_atom(env, "ok"), enif_make_list(env, 0)); // empty list } } 18a9a: 48 81 c4 c8 00 00 00 add $0xc8,%rsp 18aa1: 5b pop %rbx 18aa2: 5d pop %rbp 18aa3: c3 retq 18aa4: 48 89 c3 mov %rax,%rbx free(buf); return enif_make_tuple2(env, enif_make_atom(env, "ok"), term_list); 18aa7: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 18aae: 48 89 c7 mov %rax,%rdi 18ab1: e8 da b4 ff ff callq 13f90 <_ZNSt4listIiSaIiEED1Ev@plt> 18ab6: 48 89 d8 mov %rbx,%rax 18ab9: 48 89 c7 mov %rax,%rdi 18abc: e8 bf ba ff ff callq 14580 <_Unwind_Resume@plt> 0000000000018ac1 <_Z14x_cluster_statP18enif_environment_tiPKm>: } } ERL_NIF_TERM x_cluster_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18ac1: 55 push %rbp 18ac2: 48 89 e5 mov %rsp,%rbp 18ac5: 48 83 ec 70 sub $0x70,%rsp 18ac9: 48 89 7d a8 mov %rdi,-0x58(%rbp) 18acd: 89 75 a4 mov %esi,-0x5c(%rbp) 18ad0: 48 89 55 98 mov %rdx,-0x68(%rbp) const char * func_name = "x_cluster_stat()"; 18ad4: 48 8d 05 89 aa 00 00 lea 0xaa89(%rip),%rax # 23564 <_fini+0x5dc> 18adb: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 18adf: 48 8b 45 98 mov -0x68(%rbp),%rax 18ae3: 48 8b 08 mov (%rax),%rcx 18ae6: 48 8d 55 d0 lea -0x30(%rbp),%rdx 18aea: 48 8b 45 a8 mov -0x58(%rbp),%rax 18aee: 48 89 ce mov %rcx,%rsi 18af1: 48 89 c7 mov %rax,%rdi 18af4: e8 87 aa ff ff callq 13580 18af9: 85 c0 test %eax,%eax 18afb: 0f 94 c0 sete %al 18afe: 84 c0 test %al,%al 18b00: 74 3a je 18b3c <_Z14x_cluster_statP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 18b02: 48 8b 05 07 2a 21 00 mov 0x212a07(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18b09: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18b0d: 48 8d 0d 34 a8 00 00 lea 0xa834(%rip),%rcx # 23348 <_fini+0x3c0> 18b14: 48 89 c6 mov %rax,%rsi 18b17: 48 8b 05 72 14 21 00 mov 0x211472(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18b1e: 48 89 c7 mov %rax,%rdi 18b21: b8 00 00 00 00 mov $0x0,%eax 18b26: e8 f5 b2 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 18b2b: 48 8b 45 a8 mov -0x58(%rbp),%rax 18b2f: 48 89 c7 mov %rax,%rdi 18b32: e8 89 ad ff ff callq 138c0 18b37: e9 ce 02 00 00 jmpq 18e0a <_Z14x_cluster_statP18enif_environment_tiPKm+0x349> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 18b3c: 48 8b 4d d0 mov -0x30(%rbp),%rcx 18b40: 48 8b 05 c9 29 21 00 mov 0x2129c9(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18b47: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18b4b: 49 89 c8 mov %rcx,%r8 18b4e: 48 8d 0d 39 a8 00 00 lea 0xa839(%rip),%rcx # 2338e <_fini+0x406> 18b55: 48 89 c6 mov %rax,%rsi 18b58: 48 8b 05 31 14 21 00 mov 0x211431(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18b5f: 48 89 c7 mov %rax,%rdi 18b62: b8 00 00 00 00 mov $0x0,%eax 18b67: e8 64 b4 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 18b6c: 48 8b 45 d0 mov -0x30(%rbp),%rax 18b70: 48 89 c7 mov %rax,%rdi 18b73: e8 98 a3 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 18b78: 48 89 45 e0 mov %rax,-0x20(%rbp) if (cluster == NULL) 18b7c: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 18b81: 75 41 jne 18bc4 <_Z14x_cluster_statP18enif_environment_tiPKm+0x103> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 18b83: 48 8b 4d d0 mov -0x30(%rbp),%rcx 18b87: 48 8b 05 82 29 21 00 mov 0x212982(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18b8e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18b92: 49 89 c8 mov %rcx,%r8 18b95: 48 8d 0d 13 a8 00 00 lea 0xa813(%rip),%rcx # 233af <_fini+0x427> 18b9c: 48 89 c6 mov %rax,%rsi 18b9f: 48 8b 05 ea 13 21 00 mov 0x2113ea(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18ba6: 48 89 c7 mov %rax,%rdi 18ba9: b8 00 00 00 00 mov $0x0,%eax 18bae: e8 6d b2 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 18bb3: 48 8b 45 a8 mov -0x58(%rbp),%rax 18bb7: 48 89 c7 mov %rax,%rdi 18bba: e8 01 ad ff ff callq 138c0 18bbf: e9 46 02 00 00 jmpq 18e0a <_Z14x_cluster_statP18enif_environment_tiPKm+0x349> } rados_cluster_stat_t stat; int err = rados_cluster_stat(cluster, &stat); 18bc4: 48 8d 55 b0 lea -0x50(%rbp),%rdx 18bc8: 48 8b 45 e0 mov -0x20(%rbp),%rax 18bcc: 48 89 d6 mov %rdx,%rsi 18bcf: 48 89 c7 mov %rax,%rdi 18bd2: e8 99 b5 ff ff callq 14170 18bd7: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 18bda: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 18bde: 79 5c jns 18c3c <_Z14x_cluster_statP18enif_environment_tiPKm+0x17b> { logger.error(MOD_NAME, func_name, "failed to get stat for %ld: %s", id, strerror(-err)); 18be0: 8b 45 fc mov -0x4(%rbp),%eax 18be3: f7 d8 neg %eax 18be5: 89 c7 mov %eax,%edi 18be7: e8 84 ad ff ff callq 13970 18bec: 48 89 c1 mov %rax,%rcx 18bef: 48 8b 75 d0 mov -0x30(%rbp),%rsi 18bf3: 48 8b 05 16 29 21 00 mov 0x212916(%rip),%rax # 22b510 <_ZL8MOD_NAME> 18bfa: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18bfe: 49 89 c9 mov %rcx,%r9 18c01: 49 89 f0 mov %rsi,%r8 18c04: 48 8d 0d 6d a9 00 00 lea 0xa96d(%rip),%rcx # 23578 <_fini+0x5f0> 18c0b: 48 89 c6 mov %rax,%rsi 18c0e: 48 8b 05 7b 13 21 00 mov 0x21137b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 18c15: 48 89 c7 mov %rax,%rdi 18c18: b8 00 00 00 00 mov $0x0,%eax 18c1d: e8 fe b1 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 18c22: 8b 45 fc mov -0x4(%rbp),%eax 18c25: 89 c2 mov %eax,%edx 18c27: f7 da neg %edx 18c29: 48 8b 45 a8 mov -0x58(%rbp),%rax 18c2d: 89 d6 mov %edx,%esi 18c2f: 48 89 c7 mov %rax,%rdi 18c32: e8 29 b2 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 18c37: e9 ce 01 00 00 jmpq 18e0a <_Z14x_cluster_statP18enif_environment_tiPKm+0x349> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 18c3c: 48 8b 45 a8 mov -0x58(%rbp),%rax 18c40: be 00 00 00 00 mov $0x0,%esi 18c45: 48 89 c7 mov %rax,%rdi 18c48: b8 00 00 00 00 mov $0x0,%eax 18c4d: e8 de ae ff ff callq 13b30 18c52: 48 89 45 e8 mov %rax,-0x18(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, stat.num_objects); 18c56: 48 8b 55 c8 mov -0x38(%rbp),%rdx 18c5a: 48 8b 45 a8 mov -0x58(%rbp),%rax 18c5e: 48 89 d6 mov %rdx,%rsi 18c61: 48 89 c7 mov %rax,%rdi 18c64: e8 e7 ae ff ff callq 13b50 18c69: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_objects"), t), term_list); 18c6d: 48 8b 45 a8 mov -0x58(%rbp),%rax 18c71: 48 8d 35 1f a9 00 00 lea 0xa91f(%rip),%rsi # 23597 <_fini+0x60f> 18c78: 48 89 c7 mov %rax,%rdi 18c7b: e8 f0 a0 ff ff callq 12d70 18c80: 48 89 c2 mov %rax,%rdx 18c83: 48 8b 4d f0 mov -0x10(%rbp),%rcx 18c87: 48 8b 45 a8 mov -0x58(%rbp),%rax 18c8b: be 02 00 00 00 mov $0x2,%esi 18c90: 48 89 c7 mov %rax,%rdi 18c93: b8 00 00 00 00 mov $0x0,%eax 18c98: e8 a3 b5 ff ff callq 14240 18c9d: 48 89 c1 mov %rax,%rcx 18ca0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18ca4: 48 8b 45 a8 mov -0x58(%rbp),%rax 18ca8: 48 89 ce mov %rcx,%rsi 18cab: 48 89 c7 mov %rax,%rdi 18cae: e8 ad a8 ff ff callq 13560 18cb3: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb_avail); 18cb7: 48 8b 55 c0 mov -0x40(%rbp),%rdx 18cbb: 48 8b 45 a8 mov -0x58(%rbp),%rax 18cbf: 48 89 d6 mov %rdx,%rsi 18cc2: 48 89 c7 mov %rax,%rdi 18cc5: e8 86 ae ff ff callq 13b50 18cca: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "kb_avail"), t), term_list); 18cce: 48 8b 45 a8 mov -0x58(%rbp),%rax 18cd2: 48 8d 35 ca a8 00 00 lea 0xa8ca(%rip),%rsi # 235a3 <_fini+0x61b> 18cd9: 48 89 c7 mov %rax,%rdi 18cdc: e8 8f a0 ff ff callq 12d70 18ce1: 48 89 c2 mov %rax,%rdx 18ce4: 48 8b 4d f0 mov -0x10(%rbp),%rcx 18ce8: 48 8b 45 a8 mov -0x58(%rbp),%rax 18cec: be 02 00 00 00 mov $0x2,%esi 18cf1: 48 89 c7 mov %rax,%rdi 18cf4: b8 00 00 00 00 mov $0x0,%eax 18cf9: e8 42 b5 ff ff callq 14240 18cfe: 48 89 c1 mov %rax,%rcx 18d01: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18d05: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d09: 48 89 ce mov %rcx,%rsi 18d0c: 48 89 c7 mov %rax,%rdi 18d0f: e8 4c a8 ff ff callq 13560 18d14: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb_used); 18d18: 48 8b 55 b8 mov -0x48(%rbp),%rdx 18d1c: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d20: 48 89 d6 mov %rdx,%rsi 18d23: 48 89 c7 mov %rax,%rdi 18d26: e8 25 ae ff ff callq 13b50 18d2b: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "kb_used"), t), term_list); 18d2f: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d33: 48 8d 35 72 a8 00 00 lea 0xa872(%rip),%rsi # 235ac <_fini+0x624> 18d3a: 48 89 c7 mov %rax,%rdi 18d3d: e8 2e a0 ff ff callq 12d70 18d42: 48 89 c2 mov %rax,%rdx 18d45: 48 8b 4d f0 mov -0x10(%rbp),%rcx 18d49: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d4d: be 02 00 00 00 mov $0x2,%esi 18d52: 48 89 c7 mov %rax,%rdi 18d55: b8 00 00 00 00 mov $0x0,%eax 18d5a: e8 e1 b4 ff ff callq 14240 18d5f: 48 89 c1 mov %rax,%rcx 18d62: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18d66: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d6a: 48 89 ce mov %rcx,%rsi 18d6d: 48 89 c7 mov %rax,%rdi 18d70: e8 eb a7 ff ff callq 13560 18d75: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb); 18d79: 48 8b 55 b0 mov -0x50(%rbp),%rdx 18d7d: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d81: 48 89 d6 mov %rdx,%rsi 18d84: 48 89 c7 mov %rax,%rdi 18d87: e8 c4 ad ff ff callq 13b50 18d8c: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "kb"), t), term_list); 18d90: 48 8b 45 a8 mov -0x58(%rbp),%rax 18d94: 48 8d 35 19 a8 00 00 lea 0xa819(%rip),%rsi # 235b4 <_fini+0x62c> 18d9b: 48 89 c7 mov %rax,%rdi 18d9e: e8 cd 9f ff ff callq 12d70 18da3: 48 89 c2 mov %rax,%rdx 18da6: 48 8b 4d f0 mov -0x10(%rbp),%rcx 18daa: 48 8b 45 a8 mov -0x58(%rbp),%rax 18dae: be 02 00 00 00 mov $0x2,%esi 18db3: 48 89 c7 mov %rax,%rdi 18db6: b8 00 00 00 00 mov $0x0,%eax 18dbb: e8 80 b4 ff ff callq 14240 18dc0: 48 89 c1 mov %rax,%rcx 18dc3: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18dc7: 48 8b 45 a8 mov -0x58(%rbp),%rax 18dcb: 48 89 ce mov %rcx,%rsi 18dce: 48 89 c7 mov %rax,%rdi 18dd1: e8 8a a7 ff ff callq 13560 18dd6: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 18dda: 48 8b 45 a8 mov -0x58(%rbp),%rax 18dde: 48 8d 35 4b a5 00 00 lea 0xa54b(%rip),%rsi # 23330 <_fini+0x3a8> 18de5: 48 89 c7 mov %rax,%rdi 18de8: e8 83 9f ff ff callq 12d70 18ded: 48 89 c2 mov %rax,%rdx 18df0: 48 8b 4d e8 mov -0x18(%rbp),%rcx 18df4: 48 8b 45 a8 mov -0x58(%rbp),%rax 18df8: be 02 00 00 00 mov $0x2,%esi 18dfd: 48 89 c7 mov %rax,%rdi 18e00: b8 00 00 00 00 mov $0x0,%eax 18e05: e8 36 b4 ff ff callq 14240 enif_make_atom(env, "ok"), term_list); } 18e0a: c9 leaveq 18e0b: c3 retq 0000000000018e0c <_ZNSt4listIiSaIiEED1Ev>: * we start at the tail and move forward by one. When this member * iterator's next/previous pointers refer to itself, the %list is * %empty. */ template > class list : protected _List_base<_Tp, _Alloc> 18e0c: 55 push %rbp 18e0d: 48 89 e5 mov %rsp,%rbp 18e10: 48 83 ec 10 sub $0x10,%rsp 18e14: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18e18: 48 8b 45 f8 mov -0x8(%rbp),%rax 18e1c: 48 89 c7 mov %rax,%rdi 18e1f: e8 8c b7 ff ff callq 145b0 <_ZNSt10_List_baseIiSaIiEED2Ev@plt> 18e24: c9 leaveq 18e25: c3 retq 0000000000018e26 <_ZNSt4listIiSaIiEE9push_backERKi>: * it. Due to the nature of a %list this operation can be done * in constant time, and does not invalidate iterators and * references. */ void push_back(const value_type& __x) 18e26: 55 push %rbp 18e27: 48 89 e5 mov %rsp,%rbp 18e2a: 48 83 ec 10 sub $0x10,%rsp 18e2e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18e32: 48 89 75 f0 mov %rsi,-0x10(%rbp) { this->_M_insert(end(), __x); } 18e36: 48 8b 45 f8 mov -0x8(%rbp),%rax 18e3a: 48 89 c7 mov %rax,%rdi 18e3d: e8 ae 9d ff ff callq 12bf0 <_ZNSt4listIiSaIiEE3endEv@plt> 18e42: 48 89 c1 mov %rax,%rcx 18e45: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18e49: 48 8b 45 f8 mov -0x8(%rbp),%rax 18e4d: 48 89 ce mov %rcx,%rsi 18e50: 48 89 c7 mov %rax,%rdi 18e53: e8 e8 9f ff ff callq 12e40 <_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi@plt> 18e58: c9 leaveq 18e59: c3 retq 0000000000018e5a <_ZNSt4listIiSaIiEEC1Ev>: // [23.2.2.1] construct/copy/destroy // (assign() and get_allocator() are also listed in this section) /** * @brief Default constructor creates no elements. */ list() 18e5a: 55 push %rbp 18e5b: 48 89 e5 mov %rsp,%rbp 18e5e: 48 83 ec 10 sub $0x10,%rsp 18e62: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Base() { } 18e66: 48 8b 45 f8 mov -0x8(%rbp),%rax 18e6a: 48 89 c7 mov %rax,%rdi 18e6d: e8 ae a3 ff ff callq 13220 <_ZNSt10_List_baseIiSaIiEEC2Ev@plt> 18e72: c9 leaveq 18e73: c3 retq 0000000000018e74 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev>: typedef typename _Alloc::template rebind<_List_node<_Tp> >::other _Node_alloc_type; typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; struct _List_impl 18e74: 55 push %rbp 18e75: 48 89 e5 mov %rsp,%rbp 18e78: 48 83 ec 10 sub $0x10,%rsp 18e7c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18e80: 48 8b 45 f8 mov -0x8(%rbp),%rax 18e84: 48 89 c7 mov %rax,%rdi 18e87: e8 44 b7 ff ff callq 145d0 <_ZNSaISt10_List_nodeIiEED2Ev@plt> 18e8c: c9 leaveq 18e8d: c3 retq 0000000000018e8e <_ZNSt10_List_baseIiSaIiEED1Ev>: __x._M_impl._M_node); } #endif // This is what actually destroys the list. ~_List_base() 18e8e: 55 push %rbp 18e8f: 48 89 e5 mov %rsp,%rbp 18e92: 53 push %rbx 18e93: 48 83 ec 18 sub $0x18,%rsp 18e97: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_clear(); } 18e9b: 48 8b 45 e8 mov -0x18(%rbp),%rax 18e9f: 48 89 c7 mov %rax,%rdi 18ea2: e8 89 9f ff ff callq 12e30 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv@plt> 18ea7: 48 8b 45 e8 mov -0x18(%rbp),%rax 18eab: 48 89 c7 mov %rax,%rdi 18eae: e8 2d 9f ff ff callq 12de0 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 18eb3: 48 83 c4 18 add $0x18,%rsp 18eb7: 5b pop %rbx 18eb8: 5d pop %rbp 18eb9: c3 retq 18eba: 48 89 c3 mov %rax,%rbx 18ebd: 48 8b 45 e8 mov -0x18(%rbp),%rax 18ec1: 48 89 c7 mov %rax,%rdi 18ec4: e8 17 9f ff ff callq 12de0 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 18ec9: 48 89 d8 mov %rbx,%rax 18ecc: 48 89 c7 mov %rax,%rdi 18ecf: e8 ac b6 ff ff callq 14580 <_Unwind_Resume@plt> 0000000000018ed4 <_ZNSt20_List_const_iteratorIiEC1Ev>: typedef std::bidirectional_iterator_tag iterator_category; typedef _Tp value_type; typedef const _Tp* pointer; typedef const _Tp& reference; _List_const_iterator() 18ed4: 55 push %rbp 18ed5: 48 89 e5 mov %rsp,%rbp 18ed8: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_node() { } 18edc: 48 8b 45 f8 mov -0x8(%rbp),%rax 18ee0: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 18ee7: 5d pop %rbp 18ee8: c3 retq 18ee9: 90 nop 0000000000018eea <_ZNSt4listIiSaIiEE5beginEv>: /** * Returns a read/write iterator that points to the first element in the * %list. Iteration is done in ordinary element order. */ iterator begin() 18eea: 55 push %rbp 18eeb: 48 89 e5 mov %rsp,%rbp 18eee: 48 83 ec 20 sub $0x20,%rsp 18ef2: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_node._M_next); } 18ef6: 48 8b 45 e8 mov -0x18(%rbp),%rax 18efa: 48 8b 10 mov (%rax),%rdx 18efd: 48 8d 45 f0 lea -0x10(%rbp),%rax 18f01: 48 89 d6 mov %rdx,%rsi 18f04: 48 89 c7 mov %rax,%rdi 18f07: e8 c4 ae ff ff callq 13dd0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt> 18f0c: 48 8b 45 f0 mov -0x10(%rbp),%rax 18f10: c9 leaveq 18f11: c3 retq 0000000000018f12 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE>: explicit _List_const_iterator(const __detail::_List_node_base* __x) : _M_node(__x) { } _List_const_iterator(const iterator& __x) 18f12: 55 push %rbp 18f13: 48 89 e5 mov %rsp,%rbp 18f16: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18f1a: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x._M_node) { } 18f1e: 48 8b 45 f0 mov -0x10(%rbp),%rax 18f22: 48 8b 10 mov (%rax),%rdx 18f25: 48 8b 45 f8 mov -0x8(%rbp),%rax 18f29: 48 89 10 mov %rdx,(%rax) 18f2c: 5d pop %rbp 18f2d: c3 retq 0000000000018f2e <_ZNSt4listIiSaIiEE3endEv>: * Returns a read/write iterator that points one past the last * element in the %list. Iteration is done in ordinary element * order. */ iterator end() 18f2e: 55 push %rbp 18f2f: 48 89 e5 mov %rsp,%rbp 18f32: 48 83 ec 20 sub $0x20,%rsp 18f36: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(&this->_M_impl._M_node); } 18f3a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18f3e: 48 8d 45 f0 lea -0x10(%rbp),%rax 18f42: 48 89 d6 mov %rdx,%rsi 18f45: 48 89 c7 mov %rax,%rdi 18f48: e8 83 ae ff ff callq 13dd0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt> 18f4d: 48 8b 45 f0 mov -0x10(%rbp),%rax 18f51: c9 leaveq 18f52: c3 retq 18f53: 90 nop 0000000000018f54 <_ZNKSt20_List_const_iteratorIiEneERKS0_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 18f54: 55 push %rbp 18f55: 48 89 e5 mov %rsp,%rbp 18f58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18f5c: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 18f60: 48 8b 45 f8 mov -0x8(%rbp),%rax 18f64: 48 8b 10 mov (%rax),%rdx 18f67: 48 8b 45 f0 mov -0x10(%rbp),%rax 18f6b: 48 8b 00 mov (%rax),%rax 18f6e: 48 39 c2 cmp %rax,%rdx 18f71: 0f 95 c0 setne %al 18f74: 5d pop %rbp 18f75: c3 retq 0000000000018f76 <_ZNSt20_List_const_iteratorIiEppEi>: _M_node = _M_node->_M_next; return *this; } _Self operator++(int) 18f76: 55 push %rbp 18f77: 48 89 e5 mov %rsp,%rbp 18f7a: 48 89 7d e8 mov %rdi,-0x18(%rbp) 18f7e: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 18f81: 48 8b 45 e8 mov -0x18(%rbp),%rax 18f85: 48 8b 00 mov (%rax),%rax 18f88: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _M_node->_M_next; 18f8c: 48 8b 45 e8 mov -0x18(%rbp),%rax 18f90: 48 8b 00 mov (%rax),%rax 18f93: 48 8b 10 mov (%rax),%rdx 18f96: 48 8b 45 e8 mov -0x18(%rbp),%rax 18f9a: 48 89 10 mov %rdx,(%rax) return __tmp; 18f9d: 48 8b 45 f0 mov -0x10(%rbp),%rax } 18fa1: 5d pop %rbp 18fa2: c3 retq 18fa3: 90 nop 0000000000018fa4 <_ZNKSt20_List_const_iteratorIiEdeEv>: : _M_node(__x._M_node) { } // Must downcast from List_node_base to _List_node to get to // _M_data. reference operator*() const 18fa4: 55 push %rbp 18fa5: 48 89 e5 mov %rsp,%rbp 18fa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Node*>(_M_node)->_M_data; } 18fac: 48 8b 45 f8 mov -0x8(%rbp),%rax 18fb0: 48 8b 00 mov (%rax),%rax 18fb3: 48 83 c0 10 add $0x10,%rax 18fb7: 5d pop %rbp 18fb8: c3 retq 18fb9: 90 nop 0000000000018fba <_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi>: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } // Inserts new element at position given and with value given. #ifndef __GXX_EXPERIMENTAL_CXX0X__ void _M_insert(iterator __position, const value_type& __x) 18fba: 55 push %rbp 18fbb: 48 89 e5 mov %rsp,%rbp 18fbe: 48 83 ec 30 sub $0x30,%rsp 18fc2: 48 89 7d e8 mov %rdi,-0x18(%rbp) 18fc6: 48 89 75 e0 mov %rsi,-0x20(%rbp) 18fca: 48 89 55 d8 mov %rdx,-0x28(%rbp) { _Node* __tmp = _M_create_node(__x); 18fce: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18fd2: 48 8b 45 e8 mov -0x18(%rbp),%rax 18fd6: 48 89 d6 mov %rdx,%rsi 18fd9: 48 89 c7 mov %rax,%rdi 18fdc: e8 ff b6 ff ff callq 146e0 <_ZNSt4listIiSaIiEE14_M_create_nodeERKi@plt> 18fe1: 48 89 45 f8 mov %rax,-0x8(%rbp) __tmp->_M_hook(__position._M_node); 18fe5: 48 8b 55 e0 mov -0x20(%rbp),%rdx 18fe9: 48 8b 45 f8 mov -0x8(%rbp),%rax 18fed: 48 89 d6 mov %rdx,%rsi 18ff0: 48 89 c7 mov %rax,%rdi 18ff3: e8 d8 ab ff ff callq 13bd0 <_ZNSt8__detail15_List_node_base7_M_hookEPS0_@plt> } 18ff8: c9 leaveq 18ff9: c3 retq 0000000000018ffa <_ZNSt10_List_baseIiSaIiEEC1Ev>: allocator_type get_allocator() const { return allocator_type(_M_get_Node_allocator()); } _List_base() 18ffa: 55 push %rbp 18ffb: 48 89 e5 mov %rsp,%rbp 18ffe: 53 push %rbx 18fff: 48 83 ec 18 sub $0x18,%rsp 19003: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _M_impl() 19007: 48 8b 45 e8 mov -0x18(%rbp),%rax 1900b: 48 89 c7 mov %rax,%rdi 1900e: e8 5d b2 ff ff callq 14270 <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev@plt> { _M_init(); } 19013: 48 8b 45 e8 mov -0x18(%rbp),%rax 19017: 48 89 c7 mov %rax,%rdi 1901a: e8 61 9e ff ff callq 12e80 <_ZNSt10_List_baseIiSaIiEE7_M_initEv@plt> 1901f: eb 1a jmp 1903b <_ZNSt10_List_baseIiSaIiEEC1Ev+0x41> 19021: 48 89 c3 mov %rax,%rbx allocator_type get_allocator() const { return allocator_type(_M_get_Node_allocator()); } _List_base() : _M_impl() 19024: 48 8b 45 e8 mov -0x18(%rbp),%rax 19028: 48 89 c7 mov %rax,%rdi 1902b: e8 b0 9d ff ff callq 12de0 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 19030: 48 89 d8 mov %rbx,%rax 19033: 48 89 c7 mov %rax,%rdi 19036: e8 45 b5 ff ff callq 14580 <_Unwind_Resume@plt> { _M_init(); } 1903b: 48 83 c4 18 add $0x18,%rsp 1903f: 5b pop %rbx 19040: 5d pop %rbp 19041: c3 retq 0000000000019042 <_ZNSaISt10_List_nodeIiEED1Ev>: ~allocator() throw() { } 19042: 55 push %rbp 19043: 48 89 e5 mov %rsp,%rbp 19046: 48 83 ec 10 sub $0x10,%rsp 1904a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1904e: 48 8b 45 f8 mov -0x8(%rbp),%rax 19052: 48 89 c7 mov %rax,%rdi 19055: e8 e6 a2 ff ff callq 13340 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED2Ev@plt> 1905a: c9 leaveq 1905b: c3 retq 000000000001905c <_ZNSt10_List_baseIiSaIiEE8_M_clearEv>: { _GLIBCXX_BEGIN_NAMESPACE_CONTAINER template void _List_base<_Tp, _Alloc>:: 1905c: 55 push %rbp 1905d: 48 89 e5 mov %rsp,%rbp 19060: 53 push %rbx 19061: 48 83 ec 38 sub $0x38,%rsp 19065: 48 89 7d c8 mov %rdi,-0x38(%rbp) _M_clear() { typedef _List_node<_Tp> _Node; _Node* __cur = static_cast<_Node*>(this->_M_impl._M_node._M_next); 19069: 48 8b 45 c8 mov -0x38(%rbp),%rax 1906d: 48 8b 00 mov (%rax),%rax 19070: 48 89 45 d8 mov %rax,-0x28(%rbp) while (__cur != &this->_M_impl._M_node) 19074: eb 67 jmp 190dd <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0x81> { _Node* __tmp = __cur; 19076: 48 8b 45 d8 mov -0x28(%rbp),%rax 1907a: 48 89 45 e0 mov %rax,-0x20(%rbp) __cur = static_cast<_Node*>(__cur->_M_next); 1907e: 48 8b 45 d8 mov -0x28(%rbp),%rax 19082: 48 8b 00 mov (%rax),%rax 19085: 48 89 45 d8 mov %rax,-0x28(%rbp) #ifdef __GXX_EXPERIMENTAL_CXX0X__ _M_get_Node_allocator().destroy(__tmp); #else _M_get_Tp_allocator().destroy(std::__addressof(__tmp->_M_data)); 19089: 48 8b 45 e0 mov -0x20(%rbp),%rax 1908d: 48 83 c0 10 add $0x10,%rax 19091: 48 89 c7 mov %rax,%rdi 19094: e8 b7 a9 ff ff callq 13a50 <_ZSt11__addressofIiEPT_RS0_@plt> 19099: 48 89 c3 mov %rax,%rbx 1909c: 48 8d 45 ef lea -0x11(%rbp),%rax 190a0: 48 8b 55 c8 mov -0x38(%rbp),%rdx 190a4: 48 89 d6 mov %rdx,%rsi 190a7: 48 89 c7 mov %rax,%rdi 190aa: e8 e1 9c ff ff callq 12d90 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt> 190af: 48 8d 45 ef lea -0x11(%rbp),%rax 190b3: 48 89 de mov %rbx,%rsi 190b6: 48 89 c7 mov %rax,%rdi 190b9: e8 52 ae ff ff callq 13f10 <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi@plt> 190be: 48 8d 45 ef lea -0x11(%rbp),%rax 190c2: 48 89 c7 mov %rax,%rdi 190c5: e8 06 b4 ff ff callq 144d0 <_ZNSaIiED1Ev@plt> #endif _M_put_node(__tmp); 190ca: 48 8b 55 e0 mov -0x20(%rbp),%rdx 190ce: 48 8b 45 c8 mov -0x38(%rbp),%rax 190d2: 48 89 d6 mov %rdx,%rsi 190d5: 48 89 c7 mov %rax,%rdi 190d8: e8 b3 a3 ff ff callq 13490 <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE@plt> _List_base<_Tp, _Alloc>:: _M_clear() { typedef _List_node<_Tp> _Node; _Node* __cur = static_cast<_Node*>(this->_M_impl._M_node._M_next); while (__cur != &this->_M_impl._M_node) 190dd: 48 8b 45 c8 mov -0x38(%rbp),%rax 190e1: 48 3b 45 d8 cmp -0x28(%rbp),%rax 190e5: 0f 95 c0 setne %al 190e8: 84 c0 test %al,%al 190ea: 75 8a jne 19076 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0x1a> #else _M_get_Tp_allocator().destroy(std::__addressof(__tmp->_M_data)); #endif _M_put_node(__tmp); } } 190ec: eb 1a jmp 19108 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0xac> 190ee: 48 89 c3 mov %rax,%rbx _Node* __tmp = __cur; __cur = static_cast<_Node*>(__cur->_M_next); #ifdef __GXX_EXPERIMENTAL_CXX0X__ _M_get_Node_allocator().destroy(__tmp); #else _M_get_Tp_allocator().destroy(std::__addressof(__tmp->_M_data)); 190f1: 48 8d 45 ef lea -0x11(%rbp),%rax 190f5: 48 89 c7 mov %rax,%rdi 190f8: e8 d3 b3 ff ff callq 144d0 <_ZNSaIiED1Ev@plt> 190fd: 48 89 d8 mov %rbx,%rax 19100: 48 89 c7 mov %rax,%rdi 19103: e8 78 b4 ff ff callq 14580 <_Unwind_Resume@plt> #endif _M_put_node(__tmp); } } 19108: 48 83 c4 38 add $0x38,%rsp 1910c: 5b pop %rbx 1910d: 5d pop %rbp 1910e: c3 retq 1910f: 90 nop 0000000000019110 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE>: _List_iterator() : _M_node() { } explicit _List_iterator(__detail::_List_node_base* __x) 19110: 55 push %rbp 19111: 48 89 e5 mov %rsp,%rbp 19114: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19118: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 1911c: 48 8b 45 f8 mov -0x8(%rbp),%rax 19120: 48 8b 55 f0 mov -0x10(%rbp),%rdx 19124: 48 89 10 mov %rdx,(%rax) 19127: 5d pop %rbp 19128: c3 retq 19129: 90 nop 000000000001912a <_ZNSt4listIiSaIiEE14_M_create_nodeERKi>: * * Allocates space for a new node and constructs a copy of @a x in it. */ #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Node* _M_create_node(const value_type& __x) 1912a: 55 push %rbp 1912b: 48 89 e5 mov %rsp,%rbp 1912e: 53 push %rbx 1912f: 48 83 ec 28 sub $0x28,%rsp 19133: 48 89 7d d8 mov %rdi,-0x28(%rbp) 19137: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Node* __p = this->_M_get_node(); 1913b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1913f: 48 89 c7 mov %rax,%rdi 19142: e8 09 ac ff ff callq 13d50 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv@plt> 19147: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { _M_get_Tp_allocator().construct 1914b: 48 8b 45 e0 mov -0x20(%rbp),%rax 1914f: 48 83 c0 10 add $0x10,%rax 19153: 48 89 c7 mov %rax,%rdi 19156: e8 f5 a8 ff ff callq 13a50 <_ZSt11__addressofIiEPT_RS0_@plt> 1915b: 48 89 c3 mov %rax,%rbx 1915e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 19162: 48 8d 45 ef lea -0x11(%rbp),%rax 19166: 48 89 d6 mov %rdx,%rsi 19169: 48 89 c7 mov %rax,%rdi 1916c: e8 1f 9c ff ff callq 12d90 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt> 19171: 48 8b 55 d0 mov -0x30(%rbp),%rdx 19175: 48 8d 45 ef lea -0x11(%rbp),%rax 19179: 48 89 de mov %rbx,%rsi 1917c: 48 89 c7 mov %rax,%rdi 1917f: e8 9c b2 ff ff callq 14420 <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi@plt> 19184: 48 8d 45 ef lea -0x11(%rbp),%rax 19188: 48 89 c7 mov %rax,%rdi 1918b: e8 40 b3 ff ff callq 144d0 <_ZNSaIiED1Ev@plt> __catch(...) { _M_put_node(__p); __throw_exception_again; } return __p; 19190: 48 8b 45 e0 mov -0x20(%rbp),%rax } 19194: 48 83 c4 28 add $0x28,%rsp 19198: 5b pop %rbx 19199: 5d pop %rbp 1919a: c3 retq 1919b: 48 89 c3 mov %rax,%rbx _M_create_node(const value_type& __x) { _Node* __p = this->_M_get_node(); __try { _M_get_Tp_allocator().construct 1919e: 48 8d 45 ef lea -0x11(%rbp),%rax 191a2: 48 89 c7 mov %rax,%rdi 191a5: e8 26 b3 ff ff callq 144d0 <_ZNSaIiED1Ev@plt> 191aa: 48 89 d8 mov %rbx,%rax 191ad: eb 13 jmp 191c2 <_ZNSt4listIiSaIiEE14_M_create_nodeERKi+0x98> 191af: 48 89 c3 mov %rax,%rbx (std::__addressof(__p->_M_data), __x); } __catch(...) 191b2: e8 c9 b0 ff ff callq 14280 <__cxa_end_catch@plt> 191b7: 48 89 d8 mov %rbx,%rax 191ba: 48 89 c7 mov %rax,%rdi 191bd: e8 be b3 ff ff callq 14580 <_Unwind_Resume@plt> 191c2: 48 89 c7 mov %rax,%rdi 191c5: e8 f6 b1 ff ff callq 143c0 <__cxa_begin_catch@plt> { _M_put_node(__p); 191ca: 48 8b 45 d8 mov -0x28(%rbp),%rax 191ce: 48 8b 55 e0 mov -0x20(%rbp),%rdx 191d2: 48 89 d6 mov %rdx,%rsi 191d5: 48 89 c7 mov %rax,%rdi 191d8: e8 b3 a2 ff ff callq 13490 <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE@plt> __throw_exception_again; 191dd: e8 2e 9c ff ff callq 12e10 <__cxa_rethrow@plt> 00000000000191e2 <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev>: struct _List_impl : public _Node_alloc_type { __detail::_List_node_base _M_node; _List_impl() 191e2: 55 push %rbp 191e3: 48 89 e5 mov %rsp,%rbp 191e6: 48 83 ec 10 sub $0x10,%rsp 191ea: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Node_alloc_type(), _M_node() 191ee: 48 8b 45 f8 mov -0x8(%rbp),%rax 191f2: 48 89 c7 mov %rax,%rdi 191f5: e8 46 b4 ff ff callq 14640 <_ZNSaISt10_List_nodeIiEEC2Ev@plt> 191fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 191fe: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 19205: 48 8b 45 f8 mov -0x8(%rbp),%rax 19209: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) 19210: 00 { } 19211: c9 leaveq 19212: c3 retq 19213: 90 nop 0000000000019214 <_ZNSt10_List_baseIiSaIiEE7_M_initEv>: void _M_clear(); void _M_init() 19214: 55 push %rbp 19215: 48 89 e5 mov %rsp,%rbp 19218: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_impl._M_node._M_next = &this->_M_impl._M_node; 1921c: 48 8b 55 f8 mov -0x8(%rbp),%rdx 19220: 48 8b 45 f8 mov -0x8(%rbp),%rax 19224: 48 89 10 mov %rdx,(%rax) this->_M_impl._M_node._M_prev = &this->_M_impl._M_node; 19227: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1922b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1922f: 48 89 50 08 mov %rdx,0x8(%rax) } 19233: 5d pop %rbp 19234: c3 retq 19235: 90 nop 0000000000019236 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 19236: 55 push %rbp 19237: 48 89 e5 mov %rsp,%rbp 1923a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1923e: 5d pop %rbp 1923f: c3 retq 0000000000019240 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv>: const _Node_alloc_type& _M_get_Node_allocator() const { return *static_cast(&this->_M_impl); } _Tp_alloc_type _M_get_Tp_allocator() const 19240: 55 push %rbp 19241: 48 89 e5 mov %rsp,%rbp 19244: 48 83 ec 10 sub $0x10,%rsp 19248: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1924c: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _Tp_alloc_type(_M_get_Node_allocator()); } 19250: 48 8b 45 f0 mov -0x10(%rbp),%rax 19254: 48 89 c7 mov %rax,%rdi 19257: e8 54 a7 ff ff callq 139b0 <_ZNKSt10_List_baseIiSaIiEE21_M_get_Node_allocatorEv@plt> 1925c: 48 89 c2 mov %rax,%rdx 1925f: 48 8b 45 f8 mov -0x8(%rbp),%rax 19263: 48 89 d6 mov %rdx,%rsi 19266: 48 89 c7 mov %rax,%rdi 19269: e8 e2 9d ff ff callq 13050 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E@plt> 1926e: 48 8b 45 f8 mov -0x8(%rbp),%rax 19272: c9 leaveq 19273: c3 retq 0000000000019274 <_ZNSaIiED1Ev>: 19274: 55 push %rbp 19275: 48 89 e5 mov %rsp,%rbp 19278: 48 83 ec 10 sub $0x10,%rsp 1927c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19280: 48 8b 45 f8 mov -0x8(%rbp),%rax 19284: 48 89 c7 mov %rax,%rdi 19287: e8 d4 9d ff ff callq 13060 <_ZN9__gnu_cxx13new_allocatorIiED2Ev@plt> 1928c: c9 leaveq 1928d: c3 retq 000000000001928e <_ZSt11__addressofIiEPT_RS0_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 1928e: 55 push %rbp 1928f: 48 89 e5 mov %rsp,%rbp 19292: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 19296: 48 8b 45 f8 mov -0x8(%rbp),%rax } 1929a: 5d pop %rbp 1929b: c3 retq 000000000001929c <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 1929c: 55 push %rbp 1929d: 48 89 e5 mov %rsp,%rbp 192a0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 192a4: 48 89 75 f0 mov %rsi,-0x10(%rbp) 192a8: 5d pop %rbp 192a9: c3 retq 00000000000192aa <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE>: _List_node<_Tp>* _M_get_node() { return _M_impl._Node_alloc_type::allocate(1); } void _M_put_node(_List_node<_Tp>* __p) 192aa: 55 push %rbp 192ab: 48 89 e5 mov %rsp,%rbp 192ae: 48 83 ec 10 sub $0x10,%rsp 192b2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 192b6: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_alloc_type::deallocate(__p, 1); } 192ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 192be: 48 8b 4d f0 mov -0x10(%rbp),%rcx 192c2: ba 01 00 00 00 mov $0x1,%edx 192c7: 48 89 ce mov %rcx,%rsi 192ca: 48 89 c7 mov %rax,%rdi 192cd: e8 0e 9a ff ff callq 12ce0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_m@plt> 192d2: c9 leaveq 192d3: c3 retq 00000000000192d4 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv>: }; _List_impl _M_impl; _List_node<_Tp>* _M_get_node() 192d4: 55 push %rbp 192d5: 48 89 e5 mov %rsp,%rbp 192d8: 48 83 ec 10 sub $0x10,%rsp 192dc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_alloc_type::allocate(1); } 192e0: 48 8b 45 f8 mov -0x8(%rbp),%rax 192e4: ba 00 00 00 00 mov $0x0,%edx 192e9: be 01 00 00 00 mov $0x1,%esi 192ee: 48 89 c7 mov %rax,%rdi 192f1: e8 0a b3 ff ff callq 14600 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv@plt> 192f6: c9 leaveq 192f7: c3 retq 00000000000192f8 <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi>: { return size_t(-1) / sizeof(_Tp); } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 192f8: 55 push %rbp 192f9: 48 89 e5 mov %rsp,%rbp 192fc: 48 83 ec 20 sub $0x20,%rsp 19300: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19304: 48 89 75 f0 mov %rsi,-0x10(%rbp) 19308: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 1930c: 48 8b 45 f0 mov -0x10(%rbp),%rax 19310: 48 89 c6 mov %rax,%rsi 19313: bf 04 00 00 00 mov $0x4,%edi 19318: e8 53 9e ff ff callq 13170 <_ZnwmPv@plt> 1931d: 48 85 c0 test %rax,%rax 19320: 74 08 je 1932a <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi+0x32> 19322: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19326: 8b 12 mov (%rdx),%edx 19328: 89 10 mov %edx,(%rax) 1932a: c9 leaveq 1932b: c3 retq 000000000001932c <_ZNSaISt10_List_nodeIiEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 1932c: 55 push %rbp 1932d: 48 89 e5 mov %rsp,%rbp 19330: 48 83 ec 10 sub $0x10,%rsp 19334: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19338: 48 8b 45 f8 mov -0x8(%rbp),%rax 1933c: 48 89 c7 mov %rax,%rdi 1933f: e8 9c a3 ff ff callq 136e0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC2Ev@plt> 19344: c9 leaveq 19345: c3 retq 0000000000019346 <_ZNKSt10_List_baseIiSaIiEE21_M_get_Node_allocatorEv>: _Node_alloc_type& _M_get_Node_allocator() { return *static_cast<_Node_alloc_type*>(&this->_M_impl); } const _Node_alloc_type& _M_get_Node_allocator() const 19346: 55 push %rbp 19347: 48 89 e5 mov %rsp,%rbp 1934a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 1934e: 48 8b 45 f8 mov -0x8(%rbp),%rax 19352: 5d pop %rbp 19353: c3 retq 0000000000019354 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 19354: 55 push %rbp 19355: 48 89 e5 mov %rsp,%rbp 19358: 48 83 ec 10 sub $0x10,%rsp 1935c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19360: 48 89 75 f0 mov %rsi,-0x10(%rbp) 19364: 48 8b 45 f8 mov -0x8(%rbp),%rax 19368: 48 89 c7 mov %rax,%rdi 1936b: e8 10 b4 ff ff callq 14780 <_ZN9__gnu_cxx13new_allocatorIiEC2Ev@plt> 19370: c9 leaveq 19371: c3 retq 0000000000019372 <_ZN9__gnu_cxx13new_allocatorIiED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 19372: 55 push %rbp 19373: 48 89 e5 mov %rsp,%rbp 19376: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1937a: 5d pop %rbp 1937b: c3 retq 000000000001937c <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_m>: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) 1937c: 55 push %rbp 1937d: 48 89 e5 mov %rsp,%rbp 19380: 48 83 ec 20 sub $0x20,%rsp 19384: 48 89 7d f8 mov %rdi,-0x8(%rbp) 19388: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1938c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 19390: 48 8b 45 f0 mov -0x10(%rbp),%rax 19394: 48 89 c7 mov %rax,%rdi 19397: e8 54 99 ff ff callq 12cf0 <_ZdlPv@plt> 1939c: c9 leaveq 1939d: c3 retq 000000000001939e <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv>: address(const_reference __x) const { return std::__addressof(__x); } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) 1939e: 55 push %rbp 1939f: 48 89 e5 mov %rsp,%rbp 193a2: 48 83 ec 20 sub $0x20,%rsp 193a6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 193aa: 48 89 75 f0 mov %rsi,-0x10(%rbp) 193ae: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 193b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 193b6: 48 89 c7 mov %rax,%rdi 193b9: e8 a2 9a ff ff callq 12e60 <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv@plt> 193be: 48 3b 45 f0 cmp -0x10(%rbp),%rax 193c2: 0f 92 c0 setb %al 193c5: 84 c0 test %al,%al 193c7: 74 05 je 193ce <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 193c9: e8 d2 ae ff ff callq 142a0 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 193ce: 48 8b 55 f0 mov -0x10(%rbp),%rdx 193d2: 48 89 d0 mov %rdx,%rax 193d5: 48 01 c0 add %rax,%rax 193d8: 48 01 d0 add %rdx,%rax 193db: 48 c1 e0 03 shl $0x3,%rax 193df: 48 89 c7 mov %rax,%rdi 193e2: e8 89 b1 ff ff callq 14570 <_Znwm@plt> } 193e7: c9 leaveq 193e8: c3 retq 193e9: 90 nop 00000000000193ea <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 193ea: 55 push %rbp 193eb: 48 89 e5 mov %rsp,%rbp 193ee: 48 89 7d f8 mov %rdi,-0x8(%rbp) 193f2: 5d pop %rbp 193f3: c3 retq 00000000000193f4 <_ZN9__gnu_cxx13new_allocatorIiEC1Ev>: 193f4: 55 push %rbp 193f5: 48 89 e5 mov %rsp,%rbp 193f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 193fc: 5d pop %rbp 193fd: c3 retq 00000000000193fe <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 193fe: 55 push %rbp 193ff: 48 89 e5 mov %rsp,%rbp 19402: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 19406: 48 b8 aa aa aa aa aa movabs $0xaaaaaaaaaaaaaaa,%rax 1940d: aa aa 0a 19410: 5d pop %rbp 19411: c3 retq 19412: 90 nop 19413: 90 nop 0000000000019414 <_Z13x_pool_lookupP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_pool_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 19414: 55 push %rbp 19415: 48 89 e5 mov %rsp,%rbp 19418: 53 push %rbx 19419: 48 81 ec 58 04 00 00 sub $0x458,%rsp 19420: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 19427: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1942d: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 19434: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1943b: 00 00 1943d: 48 89 45 e8 mov %rax,-0x18(%rbp) 19441: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19443: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1944a: 48 8b 08 mov (%rax),%rcx 1944d: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 19454: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1945b: 48 89 ce mov %rcx,%rsi 1945e: 48 89 c7 mov %rax,%rdi 19461: e8 1a a1 ff ff callq 13580 19466: 85 c0 test %eax,%eax 19468: 74 33 je 1949d <_Z13x_pool_lookupP18enif_environment_tiPKm+0x89> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1946a: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19471: 48 83 c0 08 add $0x8,%rax 19475: 48 8b 30 mov (%rax),%rsi 19478: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1947f: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19486: 41 b8 01 00 00 00 mov $0x1,%r8d 1948c: b9 00 04 00 00 mov $0x400,%ecx 19491: 48 89 c7 mov %rax,%rdi 19494: e8 97 ad ff ff callq 14230 ERL_NIF_TERM x_pool_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19499: 85 c0 test %eax,%eax 1949b: 75 07 jne 194a4 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x90> 1949d: b8 01 00 00 00 mov $0x1,%eax 194a2: eb 05 jmp 194a9 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x95> 194a4: b8 00 00 00 00 mov $0x0,%eax 194a9: 84 c0 test %al,%al 194ab: 74 14 je 194c1 <_Z13x_pool_lookupP18enif_environment_tiPKm+0xad> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 194ad: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 194b4: 48 89 c7 mov %rax,%rdi 194b7: e8 04 a4 ff ff callq 138c0 194bc: e9 cd 00 00 00 jmpq 1958e <_Z13x_pool_lookupP18enif_environment_tiPKm+0x17a> } rados_t cluster = map_cluster_get(id); 194c1: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 194c8: 48 89 c7 mov %rax,%rdi 194cb: e8 40 9a ff ff callq 12f10 <_Z15map_cluster_getm@plt> 194d0: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (cluster == NULL) 194d7: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 194de: 00 194df: 75 14 jne 194f5 <_Z13x_pool_lookupP18enif_environment_tiPKm+0xe1> { return enif_make_badarg(env); 194e1: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 194e8: 48 89 c7 mov %rax,%rdi 194eb: e8 d0 a3 ff ff callq 138c0 194f0: e9 99 00 00 00 jmpq 1958e <_Z13x_pool_lookupP18enif_environment_tiPKm+0x17a> } int64_t err = rados_pool_lookup(cluster, pool_name); 194f5: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 194fc: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 19503: 48 89 d6 mov %rdx,%rsi 19506: 48 89 c7 mov %rax,%rdi 19509: e8 d2 9f ff ff callq 134e0 1950e: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) if (err < 0) 19515: 48 83 bd d8 fb ff ff cmpq $0x0,-0x428(%rbp) 1951c: 00 1951d: 79 1e jns 1953d <_Z13x_pool_lookupP18enif_environment_tiPKm+0x129> { return make_error_tuple(env, -err); 1951f: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 19526: f7 d8 neg %eax 19528: 89 c2 mov %eax,%edx 1952a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19531: 89 d6 mov %edx,%esi 19533: 48 89 c7 mov %rax,%rdi 19536: e8 25 a9 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1953b: eb 51 jmp 1958e <_Z13x_pool_lookupP18enif_environment_tiPKm+0x17a> } return enif_make_tuple2(env, 1953d: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 19544: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1954b: 48 89 d6 mov %rdx,%rsi 1954e: 48 89 c7 mov %rax,%rdi 19551: e8 3a af ff ff callq 14490 19556: 48 89 c3 mov %rax,%rbx 19559: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19560: 48 8d 35 50 a0 00 00 lea 0xa050(%rip),%rsi # 235b7 <_fini+0x62f> 19567: 48 89 c7 mov %rax,%rdi 1956a: e8 01 98 ff ff callq 12d70 1956f: 48 89 c2 mov %rax,%rdx 19572: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19579: 48 89 d9 mov %rbx,%rcx 1957c: be 02 00 00 00 mov $0x2,%esi 19581: 48 89 c7 mov %rax,%rdi 19584: b8 00 00 00 00 mov $0x0,%eax 19589: e8 b2 ac ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_int64(env, err)); // Pool ID } 1958e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19592: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 19599: 00 00 1959b: 74 05 je 195a2 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x18e> 1959d: e8 3e a9 ff ff callq 13ee0 <__stack_chk_fail@plt> 195a2: 48 81 c4 58 04 00 00 add $0x458,%rsp 195a9: 5b pop %rbx 195aa: 5d pop %rbp 195ab: c3 retq 00000000000195ac <_Z13x_pool_createP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 195ac: 55 push %rbp 195ad: 48 89 e5 mov %rsp,%rbp 195b0: 48 81 ec 50 04 00 00 sub $0x450,%rsp 195b7: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 195be: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 195c4: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 195cb: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 195d2: 00 00 195d4: 48 89 45 f8 mov %rax,-0x8(%rbp) 195d8: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 195da: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 195e1: 48 8b 08 mov (%rax),%rcx 195e4: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 195eb: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 195f2: 48 89 ce mov %rcx,%rsi 195f5: 48 89 c7 mov %rax,%rdi 195f8: e8 83 9f ff ff callq 13580 195fd: 85 c0 test %eax,%eax 195ff: 74 33 je 19634 <_Z13x_pool_createP18enif_environment_tiPKm+0x88> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 19601: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19608: 48 83 c0 08 add $0x8,%rax 1960c: 48 8b 30 mov (%rax),%rsi 1960f: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 19616: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1961d: 41 b8 01 00 00 00 mov $0x1,%r8d 19623: b9 00 04 00 00 mov $0x400,%ecx 19628: 48 89 c7 mov %rax,%rdi 1962b: e8 00 ac ff ff callq 14230 ERL_NIF_TERM x_pool_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19630: 85 c0 test %eax,%eax 19632: 75 07 jne 1963b <_Z13x_pool_createP18enif_environment_tiPKm+0x8f> 19634: b8 01 00 00 00 mov $0x1,%eax 19639: eb 05 jmp 19640 <_Z13x_pool_createP18enif_environment_tiPKm+0x94> 1963b: b8 00 00 00 00 mov $0x0,%eax 19640: 84 c0 test %al,%al 19642: 74 14 je 19658 <_Z13x_pool_createP18enif_environment_tiPKm+0xac> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 19644: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1964b: 48 89 c7 mov %rax,%rdi 1964e: e8 6d a2 ff ff callq 138c0 19653: e9 8c 00 00 00 jmpq 196e4 <_Z13x_pool_createP18enif_environment_tiPKm+0x138> } rados_t cluster = map_cluster_get(id); 19658: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1965f: 48 89 c7 mov %rax,%rdi 19662: e8 a9 98 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 19667: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 1966e: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 19675: 00 19676: 75 11 jne 19689 <_Z13x_pool_createP18enif_environment_tiPKm+0xdd> { return enif_make_badarg(env); 19678: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1967f: 48 89 c7 mov %rax,%rdi 19682: e8 39 a2 ff ff callq 138c0 19687: eb 5b jmp 196e4 <_Z13x_pool_createP18enif_environment_tiPKm+0x138> } int err = rados_pool_create(cluster, pool_name); 19689: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 19690: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 19697: 48 89 d6 mov %rdx,%rsi 1969a: 48 89 c7 mov %rax,%rdi 1969d: e8 9e a5 ff ff callq 13c40 196a2: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 196a8: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 196af: 79 1d jns 196ce <_Z13x_pool_createP18enif_environment_tiPKm+0x122> { return make_error_tuple(env, -err); 196b1: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 196b7: 89 c2 mov %eax,%edx 196b9: f7 da neg %edx 196bb: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 196c2: 89 d6 mov %edx,%esi 196c4: 48 89 c7 mov %rax,%rdi 196c7: e8 94 a7 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 196cc: eb 16 jmp 196e4 <_Z13x_pool_createP18enif_environment_tiPKm+0x138> } return enif_make_atom(env, "ok"); 196ce: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 196d5: 48 8d 35 db 9e 00 00 lea 0x9edb(%rip),%rsi # 235b7 <_fini+0x62f> 196dc: 48 89 c7 mov %rax,%rdi 196df: e8 8c 96 ff ff callq 12d70 } 196e4: 48 8b 55 f8 mov -0x8(%rbp),%rdx 196e8: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 196ef: 00 00 196f1: 74 05 je 196f8 <_Z13x_pool_createP18enif_environment_tiPKm+0x14c> 196f3: e8 e8 a7 ff ff callq 13ee0 <__stack_chk_fail@plt> 196f8: c9 leaveq 196f9: c3 retq 00000000000196fa <_Z22x_pool_create_for_userP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_create_for_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 196fa: 55 push %rbp 196fb: 48 89 e5 mov %rsp,%rbp 196fe: 48 81 ec 50 04 00 00 sub $0x450,%rsp 19705: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1970c: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 19712: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 19719: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 19720: 00 00 19722: 48 89 45 f8 mov %rax,-0x8(%rbp) 19726: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 19728: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1972f: 48 8b 08 mov (%rax),%rcx 19732: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 19739: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19740: 48 89 ce mov %rcx,%rsi 19743: 48 89 c7 mov %rax,%rdi 19746: e8 35 9e ff ff callq 13580 1974b: 85 c0 test %eax,%eax 1974d: 74 5e je 197ad <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xb3> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1974f: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19756: 48 83 c0 08 add $0x8,%rax 1975a: 48 8b 30 mov (%rax),%rsi 1975d: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 19764: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1976b: 41 b8 01 00 00 00 mov $0x1,%r8d 19771: b9 00 04 00 00 mov $0x400,%ecx 19776: 48 89 c7 mov %rax,%rdi 19779: e8 b2 aa ff ff callq 14230 ERL_NIF_TERM x_pool_create_for_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char pool_name[MAX_NAME_LEN]; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 1977e: 85 c0 test %eax,%eax 19780: 74 2b je 197ad <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xb3> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_uint64(env, argv[2], &uid)) 19782: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19789: 48 83 c0 10 add $0x10,%rax 1978d: 48 8b 08 mov (%rax),%rcx 19790: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 19797: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1979e: 48 89 ce mov %rcx,%rsi 197a1: 48 89 c7 mov %rax,%rdi 197a4: e8 d7 9d ff ff callq 13580 ERL_NIF_TERM x_pool_create_for_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char pool_name[MAX_NAME_LEN]; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 197a9: 85 c0 test %eax,%eax 197ab: 75 07 jne 197b4 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xba> 197ad: b8 01 00 00 00 mov $0x1,%eax 197b2: eb 05 jmp 197b9 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xbf> 197b4: b8 00 00 00 00 mov $0x0,%eax 197b9: 84 c0 test %al,%al 197bb: 74 14 je 197d1 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xd7> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_uint64(env, argv[2], &uid)) { return enif_make_badarg(env); 197bd: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 197c4: 48 89 c7 mov %rax,%rdi 197c7: e8 f4 a0 ff ff callq 138c0 197cc: e9 93 00 00 00 jmpq 19864 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x16a> } rados_t cluster = map_cluster_get(id); 197d1: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 197d8: 48 89 c7 mov %rax,%rdi 197db: e8 30 97 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 197e0: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 197e7: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 197ee: 00 197ef: 75 11 jne 19802 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x108> { return enif_make_badarg(env); 197f1: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 197f8: 48 89 c7 mov %rax,%rdi 197fb: e8 c0 a0 ff ff callq 138c0 19800: eb 62 jmp 19864 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x16a> } int err = rados_pool_create_with_auid(cluster, pool_name, uid); 19802: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 19809: 48 8d 8d f0 fb ff ff lea -0x410(%rbp),%rcx 19810: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 19817: 48 89 ce mov %rcx,%rsi 1981a: 48 89 c7 mov %rax,%rdi 1981d: e8 6e ab ff ff callq 14390 19822: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 19828: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1982f: 79 1d jns 1984e <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x154> { return make_error_tuple(env, -err); 19831: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 19837: 89 c2 mov %eax,%edx 19839: f7 da neg %edx 1983b: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19842: 89 d6 mov %edx,%esi 19844: 48 89 c7 mov %rax,%rdi 19847: e8 14 a6 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1984c: eb 16 jmp 19864 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x16a> } return enif_make_atom(env, "ok"); 1984e: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19855: 48 8d 35 5b 9d 00 00 lea 0x9d5b(%rip),%rsi # 235b7 <_fini+0x62f> 1985c: 48 89 c7 mov %rax,%rdi 1985f: e8 0c 95 ff ff callq 12d70 } 19864: 48 8b 55 f8 mov -0x8(%rbp),%rdx 19868: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1986f: 00 00 19871: 74 05 je 19878 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x17e> 19873: e8 68 a6 ff ff callq 13ee0 <__stack_chk_fail@plt> 19878: c9 leaveq 19879: c3 retq 000000000001987a <_Z13x_pool_deleteP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_delete(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1987a: 55 push %rbp 1987b: 48 89 e5 mov %rsp,%rbp 1987e: 48 81 ec 50 04 00 00 sub $0x450,%rsp 19885: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1988c: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 19892: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 19899: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 198a0: 00 00 198a2: 48 89 45 f8 mov %rax,-0x8(%rbp) 198a6: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 198a8: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 198af: 48 8b 08 mov (%rax),%rcx 198b2: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 198b9: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 198c0: 48 89 ce mov %rcx,%rsi 198c3: 48 89 c7 mov %rax,%rdi 198c6: e8 b5 9c ff ff callq 13580 198cb: 85 c0 test %eax,%eax 198cd: 74 33 je 19902 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x88> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 198cf: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 198d6: 48 83 c0 08 add $0x8,%rax 198da: 48 8b 30 mov (%rax),%rsi 198dd: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 198e4: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 198eb: 41 b8 01 00 00 00 mov $0x1,%r8d 198f1: b9 00 04 00 00 mov $0x400,%ecx 198f6: 48 89 c7 mov %rax,%rdi 198f9: e8 32 a9 ff ff callq 14230 ERL_NIF_TERM x_pool_delete(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 198fe: 85 c0 test %eax,%eax 19900: 75 07 jne 19909 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x8f> 19902: b8 01 00 00 00 mov $0x1,%eax 19907: eb 05 jmp 1990e <_Z13x_pool_deleteP18enif_environment_tiPKm+0x94> 19909: b8 00 00 00 00 mov $0x0,%eax 1990e: 84 c0 test %al,%al 19910: 74 14 je 19926 <_Z13x_pool_deleteP18enif_environment_tiPKm+0xac> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 19912: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19919: 48 89 c7 mov %rax,%rdi 1991c: e8 9f 9f ff ff callq 138c0 19921: e9 8c 00 00 00 jmpq 199b2 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x138> } rados_t cluster = map_cluster_get(id); 19926: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1992d: 48 89 c7 mov %rax,%rdi 19930: e8 db 95 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 19935: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 1993c: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 19943: 00 19944: 75 11 jne 19957 <_Z13x_pool_deleteP18enif_environment_tiPKm+0xdd> { return enif_make_badarg(env); 19946: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1994d: 48 89 c7 mov %rax,%rdi 19950: e8 6b 9f ff ff callq 138c0 19955: eb 5b jmp 199b2 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x138> } int err = rados_pool_delete(cluster, pool_name); 19957: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1995e: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 19965: 48 89 d6 mov %rdx,%rsi 19968: 48 89 c7 mov %rax,%rdi 1996b: e8 d0 a1 ff ff callq 13b40 19970: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 19976: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1997d: 79 1d jns 1999c <_Z13x_pool_deleteP18enif_environment_tiPKm+0x122> { return make_error_tuple(env, -err); 1997f: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 19985: 89 c2 mov %eax,%edx 19987: f7 da neg %edx 19989: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19990: 89 d6 mov %edx,%esi 19992: 48 89 c7 mov %rax,%rdi 19995: e8 c6 a4 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1999a: eb 16 jmp 199b2 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x138> } return enif_make_atom(env, "ok"); 1999c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 199a3: 48 8d 35 0d 9c 00 00 lea 0x9c0d(%rip),%rsi # 235b7 <_fini+0x62f> 199aa: 48 89 c7 mov %rax,%rdi 199ad: e8 be 93 ff ff callq 12d70 } 199b2: 48 8b 55 f8 mov -0x8(%rbp),%rdx 199b6: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 199bd: 00 00 199bf: 74 05 je 199c6 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x14c> 199c1: e8 1a a5 ff ff callq 13ee0 <__stack_chk_fail@plt> 199c6: c9 leaveq 199c7: c3 retq 00000000000199c8 <_Z14x_ioctx_createP18enif_environment_tiPKm>: #include "rados_nif.h" static const char* MOD_NAME = "rados_io"; ERL_NIF_TERM x_ioctx_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 199c8: 55 push %rbp 199c9: 48 89 e5 mov %rsp,%rbp 199cc: 53 push %rbx 199cd: 48 81 ec 68 04 00 00 sub $0x468,%rsp 199d4: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 199db: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 199e1: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 199e8: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 199ef: 00 00 199f1: 48 89 45 e8 mov %rax,-0x18(%rbp) 199f5: 31 c0 xor %eax,%eax const char * func_name = "x_ioctx_create()"; 199f7: 48 8d 05 cb 9b 00 00 lea 0x9bcb(%rip),%rax # 235c9 <_fini+0x641> 199fe: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19a05: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19a0c: 48 8b 08 mov (%rax),%rcx 19a0f: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 19a16: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19a1d: 48 89 ce mov %rcx,%rsi 19a20: 48 89 c7 mov %rax,%rdi 19a23: e8 58 9b ff ff callq 13580 19a28: 85 c0 test %eax,%eax 19a2a: 74 33 je 19a5f <_Z14x_ioctx_createP18enif_environment_tiPKm+0x97> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 19a2c: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19a33: 48 83 c0 08 add $0x8,%rax 19a37: 48 8b 30 mov (%rax),%rsi 19a3a: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 19a41: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19a48: 41 b8 01 00 00 00 mov $0x1,%r8d 19a4e: b9 00 04 00 00 mov $0x400,%ecx 19a53: 48 89 c7 mov %rax,%rdi 19a56: e8 d5 a7 ff ff callq 14230 { const char * func_name = "x_ioctx_create()"; uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19a5b: 85 c0 test %eax,%eax 19a5d: 75 07 jne 19a66 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x9e> 19a5f: b8 01 00 00 00 mov $0x1,%eax 19a64: eb 05 jmp 19a6b <_Z14x_ioctx_createP18enif_environment_tiPKm+0xa3> 19a66: b8 00 00 00 00 mov $0x0,%eax 19a6b: 84 c0 test %al,%al 19a6d: 74 40 je 19aaf <_Z14x_ioctx_createP18enif_environment_tiPKm+0xe7> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 19a6f: 48 8b 05 a2 1a 21 00 mov 0x211aa2(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19a76: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19a7d: 48 8d 0d 56 9b 00 00 lea 0x9b56(%rip),%rcx # 235da <_fini+0x652> 19a84: 48 89 c6 mov %rax,%rsi 19a87: 48 8b 05 02 05 21 00 mov 0x210502(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19a8e: 48 89 c7 mov %rax,%rdi 19a91: b8 00 00 00 00 mov $0x0,%eax 19a96: e8 85 a3 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19a9b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19aa2: 48 89 c7 mov %rax,%rdi 19aa5: e8 16 9e ff ff callq 138c0 19aaa: e9 f0 01 00 00 jmpq 19c9f <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2d7> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 19aaf: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 19ab6: 48 8b 05 5b 1a 21 00 mov 0x211a5b(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19abd: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19ac4: 49 89 c8 mov %rcx,%r8 19ac7: 48 8d 0d 23 9b 00 00 lea 0x9b23(%rip),%rcx # 235f1 <_fini+0x669> 19ace: 48 89 c6 mov %rax,%rsi 19ad1: 48 8b 05 b8 04 21 00 mov 0x2104b8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19ad8: 48 89 c7 mov %rax,%rdi 19adb: b8 00 00 00 00 mov $0x0,%eax 19ae0: e8 eb a4 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster_get(id); 19ae5: 48 8b 85 b0 fb ff ff mov -0x450(%rbp),%rax 19aec: 48 89 c7 mov %rax,%rdi 19aef: e8 1c 94 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 19af4: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) if (cluster == NULL) 19afb: 48 83 bd c8 fb ff ff cmpq $0x0,-0x438(%rbp) 19b02: 00 19b03: 75 4a jne 19b4f <_Z14x_ioctx_createP18enif_environment_tiPKm+0x187> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 19b05: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 19b0c: 48 8b 05 05 1a 21 00 mov 0x211a05(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19b13: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19b1a: 49 89 c8 mov %rcx,%r8 19b1d: 48 8d 0d db 9a 00 00 lea 0x9adb(%rip),%rcx # 235ff <_fini+0x677> 19b24: 48 89 c6 mov %rax,%rsi 19b27: 48 8b 05 62 04 21 00 mov 0x210462(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19b2e: 48 89 c7 mov %rax,%rdi 19b31: b8 00 00 00 00 mov $0x0,%eax 19b36: e8 e5 a2 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19b3b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19b42: 48 89 c7 mov %rax,%rdi 19b45: e8 76 9d ff ff callq 138c0 19b4a: e9 50 01 00 00 jmpq 19c9f <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2d7> } rados_ioctx_t io; int err = rados_ioctx_create(cluster, pool_name, &io); 19b4f: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 19b56: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 19b5d: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 19b64: 48 89 ce mov %rcx,%rsi 19b67: 48 89 c7 mov %rax,%rdi 19b6a: e8 21 9b ff ff callq 13690 19b6f: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 19b75: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 19b7c: 79 6b jns 19be9 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x221> { logger.error(MOD_NAME, func_name, "failed to create ioctx to cluster %ld: %s", id, strerror(-err)); 19b7e: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19b84: f7 d8 neg %eax 19b86: 89 c7 mov %eax,%edi 19b88: e8 e3 9d ff ff callq 13970 19b8d: 48 89 c1 mov %rax,%rcx 19b90: 48 8b b5 b0 fb ff ff mov -0x450(%rbp),%rsi 19b97: 48 8b 05 7a 19 21 00 mov 0x21197a(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19b9e: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19ba5: 49 89 c9 mov %rcx,%r9 19ba8: 49 89 f0 mov %rsi,%r8 19bab: 48 8d 0d 6e 9a 00 00 lea 0x9a6e(%rip),%rcx # 23620 <_fini+0x698> 19bb2: 48 89 c6 mov %rax,%rsi 19bb5: 48 8b 05 d4 03 21 00 mov 0x2103d4(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19bbc: 48 89 c7 mov %rax,%rdi 19bbf: b8 00 00 00 00 mov $0x0,%eax 19bc4: e8 57 a2 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 19bc9: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19bcf: 89 c2 mov %eax,%edx 19bd1: f7 da neg %edx 19bd3: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19bda: 89 d6 mov %edx,%esi 19bdc: 48 89 c7 mov %rax,%rdi 19bdf: e8 7c a2 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 19be4: e9 b6 00 00 00 jmpq 19c9f <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2d7> } uint64_t io_id = new_id(); 19be9: e8 c2 a1 ff ff callq 13db0 <_Z6new_idv@plt> 19bee: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) map_ioctx_add(io_id, io); 19bf5: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 19bfc: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 19c03: 48 89 d6 mov %rdx,%rsi 19c06: 48 89 c7 mov %rax,%rdi 19c09: e8 02 9c ff ff callq 13810 <_Z13map_ioctx_addmPv@plt> logger.debug(MOD_NAME, func_name, "cluster=%ld, ioctx=%ld", id, io_id); 19c0e: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 19c15: 48 8b 05 fc 18 21 00 mov 0x2118fc(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19c1c: 48 8b b5 d0 fb ff ff mov -0x430(%rbp),%rsi 19c23: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19c2a: 49 89 f1 mov %rsi,%r9 19c2d: 49 89 c8 mov %rcx,%r8 19c30: 48 8d 0d 13 9a 00 00 lea 0x9a13(%rip),%rcx # 2364a <_fini+0x6c2> 19c37: 48 89 c6 mov %rax,%rsi 19c3a: 48 8b 05 4f 03 21 00 mov 0x21034f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19c41: 48 89 c7 mov %rax,%rdi 19c44: b8 00 00 00 00 mov $0x0,%eax 19c49: e8 82 a3 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> return enif_make_tuple2(env, 19c4e: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 19c55: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19c5c: 48 89 d6 mov %rdx,%rsi 19c5f: 48 89 c7 mov %rax,%rdi 19c62: e8 e9 9e ff ff callq 13b50 19c67: 48 89 c3 mov %rax,%rbx 19c6a: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19c71: 48 8d 35 e9 99 00 00 lea 0x99e9(%rip),%rsi # 23661 <_fini+0x6d9> 19c78: 48 89 c7 mov %rax,%rdi 19c7b: e8 f0 90 ff ff callq 12d70 19c80: 48 89 c2 mov %rax,%rdx 19c83: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19c8a: 48 89 d9 mov %rbx,%rcx 19c8d: be 02 00 00 00 mov $0x2,%esi 19c92: 48 89 c7 mov %rax,%rdi 19c95: b8 00 00 00 00 mov $0x0,%eax 19c9a: e8 a1 a5 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, io_id)); } 19c9f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19ca3: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 19caa: 00 00 19cac: 74 05 je 19cb3 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2eb> 19cae: e8 2d a2 ff ff callq 13ee0 <__stack_chk_fail@plt> 19cb3: 48 81 c4 68 04 00 00 add $0x468,%rsp 19cba: 5b pop %rbx 19cbb: 5d pop %rbp 19cbc: c3 retq 0000000000019cbd <_Z15x_ioctx_destroyP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_destroy(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 19cbd: 55 push %rbp 19cbe: 48 89 e5 mov %rsp,%rbp 19cc1: 48 83 ec 40 sub $0x40,%rsp 19cc5: 48 89 7d d8 mov %rdi,-0x28(%rbp) 19cc9: 89 75 d4 mov %esi,-0x2c(%rbp) 19ccc: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_ioctx_destroy()"; 19cd0: 48 8d 05 8d 99 00 00 lea 0x998d(%rip),%rax # 23664 <_fini+0x6dc> 19cd7: 48 89 45 f0 mov %rax,-0x10(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 19cdb: 48 8b 45 c8 mov -0x38(%rbp),%rax 19cdf: 48 8b 08 mov (%rax),%rcx 19ce2: 48 8d 55 e8 lea -0x18(%rbp),%rdx 19ce6: 48 8b 45 d8 mov -0x28(%rbp),%rax 19cea: 48 89 ce mov %rcx,%rsi 19ced: 48 89 c7 mov %rax,%rdi 19cf0: e8 8b 98 ff ff callq 13580 19cf5: 85 c0 test %eax,%eax 19cf7: 0f 94 c0 sete %al 19cfa: 84 c0 test %al,%al 19cfc: 74 3a je 19d38 <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 19cfe: 48 8b 05 13 18 21 00 mov 0x211813(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19d05: 48 8b 55 f0 mov -0x10(%rbp),%rdx 19d09: 48 8d 0d ca 98 00 00 lea 0x98ca(%rip),%rcx # 235da <_fini+0x652> 19d10: 48 89 c6 mov %rax,%rsi 19d13: 48 8b 05 76 02 21 00 mov 0x210276(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19d1a: 48 89 c7 mov %rax,%rdi 19d1d: b8 00 00 00 00 mov $0x0,%eax 19d22: e8 f9 a0 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19d27: 48 8b 45 d8 mov -0x28(%rbp),%rax 19d2b: 48 89 c7 mov %rax,%rdi 19d2e: e8 8d 9b ff ff callq 138c0 19d33: e9 bc 00 00 00 jmpq 19df4 <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x137> } rados_ioctx_t io = map_ioctx_get(id); 19d38: 48 8b 45 e8 mov -0x18(%rbp),%rax 19d3c: 48 89 c7 mov %rax,%rdi 19d3f: e8 5c 90 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 19d44: 48 89 45 f8 mov %rax,-0x8(%rbp) if (io == NULL) 19d48: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 19d4d: 75 3e jne 19d8d <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0xd0> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 19d4f: 48 8b 4d e8 mov -0x18(%rbp),%rcx 19d53: 48 8b 05 be 17 21 00 mov 0x2117be(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19d5a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 19d5e: 49 89 c8 mov %rcx,%r8 19d61: 48 8d 0d 0e 99 00 00 lea 0x990e(%rip),%rcx # 23676 <_fini+0x6ee> 19d68: 48 89 c6 mov %rax,%rsi 19d6b: 48 8b 05 1e 02 21 00 mov 0x21021e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19d72: 48 89 c7 mov %rax,%rdi 19d75: b8 00 00 00 00 mov $0x0,%eax 19d7a: e8 a1 a0 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19d7f: 48 8b 45 d8 mov -0x28(%rbp),%rax 19d83: 48 89 c7 mov %rax,%rdi 19d86: e8 35 9b ff ff callq 138c0 19d8b: eb 67 jmp 19df4 <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x137> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 19d8d: 48 8b 4d e8 mov -0x18(%rbp),%rcx 19d91: 48 8b 05 80 17 21 00 mov 0x211780(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19d98: 48 8b 55 f0 mov -0x10(%rbp),%rdx 19d9c: 49 89 c8 mov %rcx,%r8 19d9f: 48 8d 0d e9 98 00 00 lea 0x98e9(%rip),%rcx # 2368f <_fini+0x707> 19da6: 48 89 c6 mov %rax,%rsi 19da9: 48 8b 05 e0 01 21 00 mov 0x2101e0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19db0: 48 89 c7 mov %rax,%rdi 19db3: b8 00 00 00 00 mov $0x0,%eax 19db8: e8 13 a2 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> // Flush first to make sure that any writes are completed. rados_aio_flush(io); 19dbd: 48 8b 45 f8 mov -0x8(%rbp),%rax 19dc1: 48 89 c7 mov %rax,%rdi 19dc4: e8 37 95 ff ff callq 13300 rados_ioctx_destroy(io); 19dc9: 48 8b 45 f8 mov -0x8(%rbp),%rax 19dcd: 48 89 c7 mov %rax,%rdi 19dd0: e8 0b 8c ff ff callq 129e0 map_ioctx_remove(id); 19dd5: 48 8b 45 e8 mov -0x18(%rbp),%rax 19dd9: 48 89 c7 mov %rax,%rdi 19ddc: e8 1f a7 ff ff callq 14500 <_Z16map_ioctx_removem@plt> return enif_make_atom(env, "ok"); 19de1: 48 8b 45 d8 mov -0x28(%rbp),%rax 19de5: 48 8d 35 75 98 00 00 lea 0x9875(%rip),%rsi # 23661 <_fini+0x6d9> 19dec: 48 89 c7 mov %rax,%rdi 19def: e8 7c 8f ff ff callq 12d70 } 19df4: c9 leaveq 19df5: c3 retq 0000000000019df6 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_set_auid(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 19df6: 55 push %rbp 19df7: 48 89 e5 mov %rsp,%rbp 19dfa: 48 83 ec 50 sub $0x50,%rsp 19dfe: 48 89 7d c8 mov %rdi,-0x38(%rbp) 19e02: 89 75 c4 mov %esi,-0x3c(%rbp) 19e05: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_ioctx_pool_set_auid()"; 19e09: 48 8d 05 8b 98 00 00 lea 0x988b(%rip),%rax # 2369b <_fini+0x713> 19e10: 48 89 45 e8 mov %rax,-0x18(%rbp) uint64_t id; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 19e14: 48 8b 45 b8 mov -0x48(%rbp),%rax 19e18: 48 8b 08 mov (%rax),%rcx 19e1b: 48 8d 55 d8 lea -0x28(%rbp),%rdx 19e1f: 48 8b 45 c8 mov -0x38(%rbp),%rax 19e23: 48 89 ce mov %rcx,%rsi 19e26: 48 89 c7 mov %rax,%rdi 19e29: e8 52 97 ff ff callq 13580 19e2e: 85 c0 test %eax,%eax 19e30: 74 22 je 19e54 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x5e> !enif_get_uint64(env, argv[1], &uid)) 19e32: 48 8b 45 b8 mov -0x48(%rbp),%rax 19e36: 48 83 c0 08 add $0x8,%rax 19e3a: 48 8b 08 mov (%rax),%rcx 19e3d: 48 8d 55 e0 lea -0x20(%rbp),%rdx 19e41: 48 8b 45 c8 mov -0x38(%rbp),%rax 19e45: 48 89 ce mov %rcx,%rsi 19e48: 48 89 c7 mov %rax,%rdi 19e4b: e8 30 97 ff ff callq 13580 { const char * func_name = "x_ioctx_pool_set_auid()"; uint64_t id; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 19e50: 85 c0 test %eax,%eax 19e52: 75 07 jne 19e5b <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x65> 19e54: b8 01 00 00 00 mov $0x1,%eax 19e59: eb 05 jmp 19e60 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x6a> 19e5b: b8 00 00 00 00 mov $0x0,%eax 19e60: 84 c0 test %al,%al 19e62: 74 3a je 19e9e <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0xa8> !enif_get_uint64(env, argv[1], &uid)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 19e64: 48 8b 05 ad 16 21 00 mov 0x2116ad(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19e6b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19e6f: 48 8d 0d 64 97 00 00 lea 0x9764(%rip),%rcx # 235da <_fini+0x652> 19e76: 48 89 c6 mov %rax,%rsi 19e79: 48 8b 05 10 01 21 00 mov 0x210110(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19e80: 48 89 c7 mov %rax,%rdi 19e83: b8 00 00 00 00 mov $0x0,%eax 19e88: e8 93 9f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19e8d: 48 8b 45 c8 mov -0x38(%rbp),%rax 19e91: 48 89 c7 mov %rax,%rdi 19e94: e8 27 9a ff ff callq 138c0 19e99: e9 10 01 00 00 jmpq 19fae <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1b8> } rados_ioctx_t io = map_ioctx_get(id); 19e9e: 48 8b 45 d8 mov -0x28(%rbp),%rax 19ea2: 48 89 c7 mov %rax,%rdi 19ea5: e8 f6 8e ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 19eaa: 48 89 45 f0 mov %rax,-0x10(%rbp) if (io == NULL) 19eae: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 19eb3: 75 41 jne 19ef6 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x100> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 19eb5: 48 8b 4d d8 mov -0x28(%rbp),%rcx 19eb9: 48 8b 05 58 16 21 00 mov 0x211658(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19ec0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19ec4: 49 89 c8 mov %rcx,%r8 19ec7: 48 8d 0d a8 97 00 00 lea 0x97a8(%rip),%rcx # 23676 <_fini+0x6ee> 19ece: 48 89 c6 mov %rax,%rsi 19ed1: 48 8b 05 b8 00 21 00 mov 0x2100b8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19ed8: 48 89 c7 mov %rax,%rdi 19edb: b8 00 00 00 00 mov $0x0,%eax 19ee0: e8 3b 9f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19ee5: 48 8b 45 c8 mov -0x38(%rbp),%rax 19ee9: 48 89 c7 mov %rax,%rdi 19eec: e8 cf 99 ff ff callq 138c0 19ef1: e9 b8 00 00 00 jmpq 19fae <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1b8> } logger.debug(MOD_NAME, func_name, "ioctx : %ld, uid : %ld", id, uid); 19ef6: 48 8b 75 e0 mov -0x20(%rbp),%rsi 19efa: 48 8b 4d d8 mov -0x28(%rbp),%rcx 19efe: 48 8b 05 13 16 21 00 mov 0x211613(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19f05: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19f09: 49 89 f1 mov %rsi,%r9 19f0c: 49 89 c8 mov %rcx,%r8 19f0f: 48 8d 0d 9d 97 00 00 lea 0x979d(%rip),%rcx # 236b3 <_fini+0x72b> 19f16: 48 89 c6 mov %rax,%rsi 19f19: 48 8b 05 70 00 21 00 mov 0x210070(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19f20: 48 89 c7 mov %rax,%rdi 19f23: b8 00 00 00 00 mov $0x0,%eax 19f28: e8 a3 a0 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_ioctx_pool_set_auid(io, uid); 19f2d: 48 8b 55 e0 mov -0x20(%rbp),%rdx 19f31: 48 8b 45 f0 mov -0x10(%rbp),%rax 19f35: 48 89 d6 mov %rdx,%rsi 19f38: 48 89 c7 mov %rax,%rdi 19f3b: e8 00 95 ff ff callq 13440 19f40: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 19f43: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 19f47: 79 52 jns 19f9b <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1a5> { logger.error(MOD_NAME, func_name, "set auid failed: %s", strerror(-err)); 19f49: 8b 45 fc mov -0x4(%rbp),%eax 19f4c: f7 d8 neg %eax 19f4e: 89 c7 mov %eax,%edi 19f50: e8 1b 9a ff ff callq 13970 19f55: 48 89 c1 mov %rax,%rcx 19f58: 48 8b 05 b9 15 21 00 mov 0x2115b9(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19f5f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19f63: 49 89 c8 mov %rcx,%r8 19f66: 48 8d 0d 5d 97 00 00 lea 0x975d(%rip),%rcx # 236ca <_fini+0x742> 19f6d: 48 89 c6 mov %rax,%rsi 19f70: 48 8b 05 19 00 21 00 mov 0x210019(%rip),%rax # 229f90 <_DYNAMIC+0x240> 19f77: 48 89 c7 mov %rax,%rdi 19f7a: b8 00 00 00 00 mov $0x0,%eax 19f7f: e8 9c 9e ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 19f84: 8b 45 fc mov -0x4(%rbp),%eax 19f87: 89 c2 mov %eax,%edx 19f89: f7 da neg %edx 19f8b: 48 8b 45 c8 mov -0x38(%rbp),%rax 19f8f: 89 d6 mov %edx,%esi 19f91: 48 89 c7 mov %rax,%rdi 19f94: e8 c7 9e ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 19f99: eb 13 jmp 19fae <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1b8> } return enif_make_atom(env, "ok"); 19f9b: 48 8b 45 c8 mov -0x38(%rbp),%rax 19f9f: 48 8d 35 bb 96 00 00 lea 0x96bb(%rip),%rsi # 23661 <_fini+0x6d9> 19fa6: 48 89 c7 mov %rax,%rdi 19fa9: e8 c2 8d ff ff callq 12d70 } 19fae: c9 leaveq 19faf: c3 retq 0000000000019fb0 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_get_auid(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 19fb0: 55 push %rbp 19fb1: 48 89 e5 mov %rsp,%rbp 19fb4: 53 push %rbx 19fb5: 48 83 ec 58 sub $0x58,%rsp 19fb9: 48 89 7d b8 mov %rdi,-0x48(%rbp) 19fbd: 89 75 b4 mov %esi,-0x4c(%rbp) 19fc0: 48 89 55 a8 mov %rdx,-0x58(%rbp) const char * func_name = "x_ioctx_pool_get_auid()"; 19fc4: 48 8d 05 13 97 00 00 lea 0x9713(%rip),%rax # 236de <_fini+0x756> 19fcb: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 19fcf: 48 8b 45 a8 mov -0x58(%rbp),%rax 19fd3: 48 8b 08 mov (%rax),%rcx 19fd6: 48 8d 55 c8 lea -0x38(%rbp),%rdx 19fda: 48 8b 45 b8 mov -0x48(%rbp),%rax 19fde: 48 89 ce mov %rcx,%rsi 19fe1: 48 89 c7 mov %rax,%rdi 19fe4: e8 97 95 ff ff callq 13580 19fe9: 85 c0 test %eax,%eax 19feb: 0f 94 c0 sete %al 19fee: 84 c0 test %al,%al 19ff0: 74 3a je 1a02c <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 19ff2: 48 8b 05 1f 15 21 00 mov 0x21151f(%rip),%rax # 22b518 <_ZL8MOD_NAME> 19ff9: 48 8b 55 d8 mov -0x28(%rbp),%rdx 19ffd: 48 8d 0d d6 95 00 00 lea 0x95d6(%rip),%rcx # 235da <_fini+0x652> 1a004: 48 89 c6 mov %rax,%rsi 1a007: 48 8b 05 82 ff 20 00 mov 0x20ff82(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a00e: 48 89 c7 mov %rax,%rdi 1a011: b8 00 00 00 00 mov $0x0,%eax 1a016: e8 05 9e ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a01b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a01f: 48 89 c7 mov %rax,%rdi 1a022: e8 99 98 ff ff callq 138c0 1a027: e9 3b 01 00 00 jmpq 1a167 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1b7> } rados_ioctx_t io = map_ioctx_get(id); 1a02c: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a030: 48 89 c7 mov %rax,%rdi 1a033: e8 68 8d ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1a038: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1a03c: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1a041: 75 41 jne 1a084 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0xd4> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a043: 48 8b 4d c8 mov -0x38(%rbp),%rcx 1a047: 48 8b 05 ca 14 21 00 mov 0x2114ca(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a04e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a052: 49 89 c8 mov %rcx,%r8 1a055: 48 8d 0d 1a 96 00 00 lea 0x961a(%rip),%rcx # 23676 <_fini+0x6ee> 1a05c: 48 89 c6 mov %rax,%rsi 1a05f: 48 8b 05 2a ff 20 00 mov 0x20ff2a(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a066: 48 89 c7 mov %rax,%rdi 1a069: b8 00 00 00 00 mov $0x0,%eax 1a06e: e8 ad 9d ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a073: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a077: 48 89 c7 mov %rax,%rdi 1a07a: e8 41 98 ff ff callq 138c0 1a07f: e9 e3 00 00 00 jmpq 1a167 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1b7> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 1a084: 48 8b 4d c8 mov -0x38(%rbp),%rcx 1a088: 48 8b 05 89 14 21 00 mov 0x211489(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a08f: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a093: 49 89 c8 mov %rcx,%r8 1a096: 48 8d 0d f2 95 00 00 lea 0x95f2(%rip),%rcx # 2368f <_fini+0x707> 1a09d: 48 89 c6 mov %rax,%rsi 1a0a0: 48 8b 05 e9 fe 20 00 mov 0x20fee9(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a0a7: 48 89 c7 mov %rax,%rdi 1a0aa: b8 00 00 00 00 mov $0x0,%eax 1a0af: e8 1c 9f ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t uid; int err = rados_ioctx_pool_get_auid(io, &uid); 1a0b4: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1a0b8: 48 8b 45 e0 mov -0x20(%rbp),%rax 1a0bc: 48 89 d6 mov %rdx,%rsi 1a0bf: 48 89 c7 mov %rax,%rdi 1a0c2: e8 19 88 ff ff callq 128e0 1a0c7: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1a0ca: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1a0ce: 79 52 jns 1a122 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x172> { logger.error(MOD_NAME, func_name, "get auid failed: %s", strerror(-err)); 1a0d0: 8b 45 ec mov -0x14(%rbp),%eax 1a0d3: f7 d8 neg %eax 1a0d5: 89 c7 mov %eax,%edi 1a0d7: e8 94 98 ff ff callq 13970 1a0dc: 48 89 c1 mov %rax,%rcx 1a0df: 48 8b 05 32 14 21 00 mov 0x211432(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a0e6: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a0ea: 49 89 c8 mov %rcx,%r8 1a0ed: 48 8d 0d 02 96 00 00 lea 0x9602(%rip),%rcx # 236f6 <_fini+0x76e> 1a0f4: 48 89 c6 mov %rax,%rsi 1a0f7: 48 8b 05 92 fe 20 00 mov 0x20fe92(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a0fe: 48 89 c7 mov %rax,%rdi 1a101: b8 00 00 00 00 mov $0x0,%eax 1a106: e8 15 9d ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1a10b: 8b 45 ec mov -0x14(%rbp),%eax 1a10e: 89 c2 mov %eax,%edx 1a110: f7 da neg %edx 1a112: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a116: 89 d6 mov %edx,%esi 1a118: 48 89 c7 mov %rax,%rdi 1a11b: e8 40 9d ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a120: eb 45 jmp 1a167 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1b7> } return enif_make_tuple2(env, 1a122: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1a126: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a12a: 48 89 d6 mov %rdx,%rsi 1a12d: 48 89 c7 mov %rax,%rdi 1a130: e8 1b 9a ff ff callq 13b50 1a135: 48 89 c3 mov %rax,%rbx 1a138: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a13c: 48 8d 35 1e 95 00 00 lea 0x951e(%rip),%rsi # 23661 <_fini+0x6d9> 1a143: 48 89 c7 mov %rax,%rdi 1a146: e8 25 8c ff ff callq 12d70 1a14b: 48 89 c2 mov %rax,%rdx 1a14e: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a152: 48 89 d9 mov %rbx,%rcx 1a155: be 02 00 00 00 mov $0x2,%esi 1a15a: 48 89 c7 mov %rax,%rdi 1a15d: b8 00 00 00 00 mov $0x0,%eax 1a162: e8 d9 a0 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, uid)); } 1a167: 48 83 c4 58 add $0x58,%rsp 1a16b: 5b pop %rbx 1a16c: 5d pop %rbp 1a16d: c3 retq 000000000001a16e <_Z14x_ioctx_get_idP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_get_id(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a16e: 55 push %rbp 1a16f: 48 89 e5 mov %rsp,%rbp 1a172: 53 push %rbx 1a173: 48 83 ec 48 sub $0x48,%rsp 1a177: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1a17b: 89 75 c4 mov %esi,-0x3c(%rbp) 1a17e: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_ioctx_get_id()"; 1a182: 48 8d 05 81 95 00 00 lea 0x9581(%rip),%rax # 2370a <_fini+0x782> 1a189: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1a18d: 48 8b 45 b8 mov -0x48(%rbp),%rax 1a191: 48 8b 08 mov (%rax),%rcx 1a194: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1a198: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a19c: 48 89 ce mov %rcx,%rsi 1a19f: 48 89 c7 mov %rax,%rdi 1a1a2: e8 d9 93 ff ff callq 13580 1a1a7: 85 c0 test %eax,%eax 1a1a9: 0f 94 c0 sete %al 1a1ac: 84 c0 test %al,%al 1a1ae: 74 3a je 1a1ea <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1a1b0: 48 8b 05 61 13 21 00 mov 0x211361(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a1b7: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a1bb: 48 8d 0d 18 94 00 00 lea 0x9418(%rip),%rcx # 235da <_fini+0x652> 1a1c2: 48 89 c6 mov %rax,%rsi 1a1c5: 48 8b 05 c4 fd 20 00 mov 0x20fdc4(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a1cc: 48 89 c7 mov %rax,%rdi 1a1cf: b8 00 00 00 00 mov $0x0,%eax 1a1d4: e8 47 9c ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a1d9: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a1dd: 48 89 c7 mov %rax,%rdi 1a1e0: e8 db 96 ff ff callq 138c0 1a1e5: e9 dd 00 00 00 jmpq 1a2c7 <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x159> } rados_ioctx_t io = map_ioctx_get(id); 1a1ea: 48 8b 45 d0 mov -0x30(%rbp),%rax 1a1ee: 48 89 c7 mov %rax,%rdi 1a1f1: e8 aa 8b ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1a1f6: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1a1fa: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1a1ff: 75 41 jne 1a242 <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0xd4> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a201: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1a205: 48 8b 05 0c 13 21 00 mov 0x21130c(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a20c: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a210: 49 89 c8 mov %rcx,%r8 1a213: 48 8d 0d 5c 94 00 00 lea 0x945c(%rip),%rcx # 23676 <_fini+0x6ee> 1a21a: 48 89 c6 mov %rax,%rsi 1a21d: 48 8b 05 6c fd 20 00 mov 0x20fd6c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a224: 48 89 c7 mov %rax,%rdi 1a227: b8 00 00 00 00 mov $0x0,%eax 1a22c: e8 ef 9b ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a231: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a235: 48 89 c7 mov %rax,%rdi 1a238: e8 83 96 ff ff callq 138c0 1a23d: e9 85 00 00 00 jmpq 1a2c7 <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x159> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 1a242: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1a246: 48 8b 05 cb 12 21 00 mov 0x2112cb(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a24d: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1a251: 49 89 c8 mov %rcx,%r8 1a254: 48 8d 0d 34 94 00 00 lea 0x9434(%rip),%rcx # 2368f <_fini+0x707> 1a25b: 48 89 c6 mov %rax,%rsi 1a25e: 48 8b 05 2b fd 20 00 mov 0x20fd2b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a265: 48 89 c7 mov %rax,%rdi 1a268: b8 00 00 00 00 mov $0x0,%eax 1a26d: e8 5e 9d ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t uid = rados_ioctx_get_id(io); 1a272: 48 8b 45 e0 mov -0x20(%rbp),%rax 1a276: 48 89 c7 mov %rax,%rdi 1a279: e8 22 9d ff ff callq 13fa0 1a27e: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 1a282: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1a286: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a28a: 48 89 d6 mov %rdx,%rsi 1a28d: 48 89 c7 mov %rax,%rdi 1a290: e8 bb 98 ff ff callq 13b50 1a295: 48 89 c3 mov %rax,%rbx 1a298: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a29c: 48 8d 35 be 93 00 00 lea 0x93be(%rip),%rsi # 23661 <_fini+0x6d9> 1a2a3: 48 89 c7 mov %rax,%rdi 1a2a6: e8 c5 8a ff ff callq 12d70 1a2ab: 48 89 c2 mov %rax,%rdx 1a2ae: 48 8b 45 c8 mov -0x38(%rbp),%rax 1a2b2: 48 89 d9 mov %rbx,%rcx 1a2b5: be 02 00 00 00 mov $0x2,%esi 1a2ba: 48 89 c7 mov %rax,%rdi 1a2bd: b8 00 00 00 00 mov $0x0,%eax 1a2c2: e8 79 9f ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, uid)); } 1a2c7: 48 83 c4 48 add $0x48,%rsp 1a2cb: 5b pop %rbx 1a2cc: 5d pop %rbp 1a2cd: c3 retq 000000000001a2ce <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_get_pool_name(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a2ce: 55 push %rbp 1a2cf: 48 89 e5 mov %rsp,%rbp 1a2d2: 53 push %rbx 1a2d3: 48 81 ec 58 04 00 00 sub $0x458,%rsp 1a2da: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1a2e1: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1a2e7: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1a2ee: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a2f5: 00 00 1a2f7: 48 89 45 e8 mov %rax,-0x18(%rbp) 1a2fb: 31 c0 xor %eax,%eax const char * func_name = "x_ioctx_get_pool_name()"; 1a2fd: 48 8d 05 17 94 00 00 lea 0x9417(%rip),%rax # 2371b <_fini+0x793> 1a304: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1a30b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a312: 48 8b 08 mov (%rax),%rcx 1a315: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1a31c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a323: 48 89 ce mov %rcx,%rsi 1a326: 48 89 c7 mov %rax,%rdi 1a329: e8 52 92 ff ff callq 13580 1a32e: 85 c0 test %eax,%eax 1a330: 0f 94 c0 sete %al 1a333: 84 c0 test %al,%al 1a335: 74 40 je 1a377 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0xa9> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1a337: 48 8b 05 da 11 21 00 mov 0x2111da(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a33e: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a345: 48 8d 0d 8e 92 00 00 lea 0x928e(%rip),%rcx # 235da <_fini+0x652> 1a34c: 48 89 c6 mov %rax,%rsi 1a34f: 48 8b 05 3a fc 20 00 mov 0x20fc3a(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a356: 48 89 c7 mov %rax,%rdi 1a359: b8 00 00 00 00 mov $0x0,%eax 1a35e: e8 bd 9a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a363: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a36a: 48 89 c7 mov %rax,%rdi 1a36d: e8 4e 95 ff ff callq 138c0 1a372: e9 9a 01 00 00 jmpq 1a511 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x243> } rados_ioctx_t io = map_ioctx_get(id); 1a377: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1a37e: 48 89 c7 mov %rax,%rdi 1a381: e8 1a 8a ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1a386: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1a38d: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1a394: 00 1a395: 75 4a jne 1a3e1 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x113> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a397: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 1a39e: 48 8b 05 73 11 21 00 mov 0x211173(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a3a5: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a3ac: 49 89 c8 mov %rcx,%r8 1a3af: 48 8d 0d c0 92 00 00 lea 0x92c0(%rip),%rcx # 23676 <_fini+0x6ee> 1a3b6: 48 89 c6 mov %rax,%rsi 1a3b9: 48 8b 05 d0 fb 20 00 mov 0x20fbd0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a3c0: 48 89 c7 mov %rax,%rdi 1a3c3: b8 00 00 00 00 mov $0x0,%eax 1a3c8: e8 53 9a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a3cd: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a3d4: 48 89 c7 mov %rax,%rdi 1a3d7: e8 e4 94 ff ff callq 138c0 1a3dc: e9 30 01 00 00 jmpq 1a511 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x243> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 1a3e1: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 1a3e8: 48 8b 05 29 11 21 00 mov 0x211129(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a3ef: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a3f6: 49 89 c8 mov %rcx,%r8 1a3f9: 48 8d 0d 8f 92 00 00 lea 0x928f(%rip),%rcx # 2368f <_fini+0x707> 1a400: 48 89 c6 mov %rax,%rsi 1a403: 48 8b 05 86 fb 20 00 mov 0x20fb86(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a40a: 48 89 c7 mov %rax,%rdi 1a40d: b8 00 00 00 00 mov $0x0,%eax 1a412: e8 b9 9b ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> char pool_name[MAX_NAME_LEN]; memset(pool_name, 0, MAX_NAME_LEN); 1a417: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1a41e: ba 00 04 00 00 mov $0x400,%edx 1a423: be 00 00 00 00 mov $0x0,%esi 1a428: 48 89 c7 mov %rax,%rdi 1a42b: e8 d0 85 ff ff callq 12a00 int err = rados_ioctx_get_pool_name(io, pool_name, MAX_NAME_LEN - 1); 1a430: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1a437: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1a43e: ba ff 03 00 00 mov $0x3ff,%edx 1a443: 48 89 ce mov %rcx,%rsi 1a446: 48 89 c7 mov %rax,%rdi 1a449: e8 a2 a1 ff ff callq 145f0 1a44e: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1a454: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1a45b: 79 5e jns 1a4bb <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x1ed> { logger.error(MOD_NAME, func_name, "get pool name failed: %s", strerror(-err)); 1a45d: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a463: f7 d8 neg %eax 1a465: 89 c7 mov %eax,%edi 1a467: e8 04 95 ff ff callq 13970 1a46c: 48 89 c1 mov %rax,%rcx 1a46f: 48 8b 05 a2 10 21 00 mov 0x2110a2(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a476: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a47d: 49 89 c8 mov %rcx,%r8 1a480: 48 8d 0d ac 92 00 00 lea 0x92ac(%rip),%rcx # 23733 <_fini+0x7ab> 1a487: 48 89 c6 mov %rax,%rsi 1a48a: 48 8b 05 ff fa 20 00 mov 0x20faff(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a491: 48 89 c7 mov %rax,%rdi 1a494: b8 00 00 00 00 mov $0x0,%eax 1a499: e8 82 99 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1a49e: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a4a4: 89 c2 mov %eax,%edx 1a4a6: f7 da neg %edx 1a4a8: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a4af: 89 d6 mov %edx,%esi 1a4b1: 48 89 c7 mov %rax,%rdi 1a4b4: e8 a7 99 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a4b9: eb 56 jmp 1a511 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x243> } // TODO: check return length of the pool name buffer return enif_make_tuple2(env, 1a4bb: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1a4c2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a4c9: ba 01 00 00 00 mov $0x1,%edx 1a4ce: 48 89 ce mov %rcx,%rsi 1a4d1: 48 89 c7 mov %rax,%rdi 1a4d4: e8 67 93 ff ff callq 13840 1a4d9: 48 89 c3 mov %rax,%rbx 1a4dc: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a4e3: 48 8d 35 77 91 00 00 lea 0x9177(%rip),%rsi # 23661 <_fini+0x6d9> 1a4ea: 48 89 c7 mov %rax,%rdi 1a4ed: e8 7e 88 ff ff callq 12d70 1a4f2: 48 89 c2 mov %rax,%rdx 1a4f5: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a4fc: 48 89 d9 mov %rbx,%rcx 1a4ff: be 02 00 00 00 mov $0x2,%esi 1a504: 48 89 c7 mov %rax,%rdi 1a507: b8 00 00 00 00 mov $0x0,%eax 1a50c: e8 2f 9d ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_string(env, pool_name, ERL_NIF_LATIN1)); } 1a511: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1a515: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1a51c: 00 00 1a51e: 74 05 je 1a525 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x257> 1a520: e8 bb 99 ff ff callq 13ee0 <__stack_chk_fail@plt> 1a525: 48 81 c4 58 04 00 00 add $0x458,%rsp 1a52c: 5b pop %rbx 1a52d: 5d pop %rbp 1a52e: c3 retq 000000000001a52f <_Z7x_writeP18enif_environment_tiPKm>: // Erlang: write(IoCtx, Oid, Data, Offset) ERL_NIF_TERM x_write(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a52f: 55 push %rbp 1a530: 48 89 e5 mov %rsp,%rbp 1a533: 53 push %rbx 1a534: 48 81 ec 98 04 00 00 sub $0x498,%rsp 1a53b: 48 89 bd 88 fb ff ff mov %rdi,-0x478(%rbp) 1a542: 89 b5 84 fb ff ff mov %esi,-0x47c(%rbp) 1a548: 48 89 95 78 fb ff ff mov %rdx,-0x488(%rbp) 1a54f: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a556: 00 00 1a558: 48 89 45 e8 mov %rax,-0x18(%rbp) 1a55c: 31 c0 xor %eax,%eax const char * func_name = "x_write()"; 1a55e: 48 8d 05 e7 91 00 00 lea 0x91e7(%rip),%rax # 2374c <_fini+0x7c4> 1a565: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); 1a56c: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1a573: ba 00 04 00 00 mov $0x400,%edx 1a578: be 00 00 00 00 mov $0x0,%esi 1a57d: 48 89 c7 mov %rax,%rdi 1a580: e8 7b 84 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1a585: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a58c: 48 8b 08 mov (%rax),%rcx 1a58f: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1a596: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a59d: 48 89 ce mov %rcx,%rsi 1a5a0: 48 89 c7 mov %rax,%rdi 1a5a3: e8 d8 8f ff ff callq 13580 1a5a8: 85 c0 test %eax,%eax 1a5aa: 0f 84 82 00 00 00 je 1a632 <_Z7x_writeP18enif_environment_tiPKm+0x103> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1a5b0: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a5b7: 48 83 c0 08 add $0x8,%rax 1a5bb: 48 8b 30 mov (%rax),%rsi 1a5be: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1a5c5: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a5cc: 41 b8 01 00 00 00 mov $0x1,%r8d 1a5d2: b9 00 04 00 00 mov $0x400,%ecx 1a5d7: 48 89 c7 mov %rax,%rdi 1a5da: e8 51 9c ff ff callq 14230 uint64_t id; char oid[MAX_NAME_LEN]; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1a5df: 85 c0 test %eax,%eax 1a5e1: 74 4f je 1a632 <_Z7x_writeP18enif_environment_tiPKm+0x103> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2]) || 1a5e3: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a5ea: 48 83 c0 10 add $0x10,%rax 1a5ee: 48 8b 10 mov (%rax),%rdx 1a5f1: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a5f8: 48 89 d6 mov %rdx,%rsi 1a5fb: 48 89 c7 mov %rax,%rdi 1a5fe: e8 fd 9b ff ff callq 14200 uint64_t id; char oid[MAX_NAME_LEN]; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1a603: 85 c0 test %eax,%eax 1a605: 74 2b je 1a632 <_Z7x_writeP18enif_environment_tiPKm+0x103> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2]) || !enif_get_uint64(env, argv[3], &offset)) 1a607: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a60e: 48 83 c0 18 add $0x18,%rax 1a612: 48 8b 08 mov (%rax),%rcx 1a615: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1a61c: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a623: 48 89 ce mov %rcx,%rsi 1a626: 48 89 c7 mov %rax,%rdi 1a629: e8 52 8f ff ff callq 13580 uint64_t id; char oid[MAX_NAME_LEN]; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1a62e: 85 c0 test %eax,%eax 1a630: 75 07 jne 1a639 <_Z7x_writeP18enif_environment_tiPKm+0x10a> 1a632: b8 01 00 00 00 mov $0x1,%eax 1a637: eb 05 jmp 1a63e <_Z7x_writeP18enif_environment_tiPKm+0x10f> 1a639: b8 00 00 00 00 mov $0x0,%eax 1a63e: 84 c0 test %al,%al 1a640: 74 40 je 1a682 <_Z7x_writeP18enif_environment_tiPKm+0x153> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2]) || !enif_get_uint64(env, argv[3], &offset)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1a642: 48 8b 05 cf 0e 21 00 mov 0x210ecf(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a649: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a650: 48 8d 0d 83 8f 00 00 lea 0x8f83(%rip),%rcx # 235da <_fini+0x652> 1a657: 48 89 c6 mov %rax,%rsi 1a65a: 48 8b 05 2f f9 20 00 mov 0x20f92f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a661: 48 89 c7 mov %rax,%rdi 1a664: b8 00 00 00 00 mov $0x0,%eax 1a669: e8 b2 97 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a66e: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a675: 48 89 c7 mov %rax,%rdi 1a678: e8 43 92 ff ff callq 138c0 1a67d: e9 f0 01 00 00 jmpq 1a872 <_Z7x_writeP18enif_environment_tiPKm+0x343> } rados_ioctx_t io = map_ioctx_get(id); 1a682: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a689: 48 89 c7 mov %rax,%rdi 1a68c: e8 0f 87 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1a691: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1a698: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1a69f: 00 1a6a0: 75 4a jne 1a6ec <_Z7x_writeP18enif_environment_tiPKm+0x1bd> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a6a2: 48 8b 8d b8 fb ff ff mov -0x448(%rbp),%rcx 1a6a9: 48 8b 05 68 0e 21 00 mov 0x210e68(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a6b0: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a6b7: 49 89 c8 mov %rcx,%r8 1a6ba: 48 8d 0d b5 8f 00 00 lea 0x8fb5(%rip),%rcx # 23676 <_fini+0x6ee> 1a6c1: 48 89 c6 mov %rax,%rsi 1a6c4: 48 8b 05 c5 f8 20 00 mov 0x20f8c5(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a6cb: 48 89 c7 mov %rax,%rdi 1a6ce: b8 00 00 00 00 mov $0x0,%eax 1a6d3: e8 48 97 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a6d8: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a6df: 48 89 c7 mov %rax,%rdi 1a6e2: e8 d9 91 ff ff callq 138c0 1a6e7: e9 86 01 00 00 jmpq 1a872 <_Z7x_writeP18enif_environment_tiPKm+0x343> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 1a6ec: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a6f3: 48 83 c0 10 add $0x10,%rax 1a6f7: 48 8b 08 mov (%rax),%rcx 1a6fa: 48 8d 95 90 fb ff ff lea -0x470(%rbp),%rdx 1a701: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a708: 48 89 ce mov %rcx,%rsi 1a70b: 48 89 c7 mov %rax,%rdi 1a70e: e8 fd 93 ff ff callq 13b10 logger.debug(MOD_NAME, func_name, "id=%ld, oid=%s, len=%d, offset=%ld", id, oid, ibin.size, offset); 1a713: 48 8b b5 c0 fb ff ff mov -0x440(%rbp),%rsi 1a71a: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 1a721: 48 8b bd b8 fb ff ff mov -0x448(%rbp),%rdi 1a728: 48 8b 05 e9 0d 21 00 mov 0x210de9(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a72f: 4c 8d 85 e0 fb ff ff lea -0x420(%rbp),%r8 1a736: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a73d: 48 89 74 24 08 mov %rsi,0x8(%rsp) 1a742: 48 89 0c 24 mov %rcx,(%rsp) 1a746: 4d 89 c1 mov %r8,%r9 1a749: 49 89 f8 mov %rdi,%r8 1a74c: 48 8d 0d 05 90 00 00 lea 0x9005(%rip),%rcx # 23758 <_fini+0x7d0> 1a753: 48 89 c6 mov %rax,%rsi 1a756: 48 8b 05 33 f8 20 00 mov 0x20f833(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a75d: 48 89 c7 mov %rax,%rdi 1a760: b8 00 00 00 00 mov $0x0,%eax 1a765: e8 66 98 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_write(io, oid, (const char*)ibin.data, ibin.size, offset); 1a76a: 48 8b bd c0 fb ff ff mov -0x440(%rbp),%rdi 1a771: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 1a778: 48 8b 95 98 fb ff ff mov -0x468(%rbp),%rdx 1a77f: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 1a786: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1a78d: 49 89 f8 mov %rdi,%r8 1a790: 48 89 c7 mov %rax,%rdi 1a793: e8 38 93 ff ff callq 13ad0 1a798: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1a79e: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1a7a5: 79 6d jns 1a814 <_Z7x_writeP18enif_environment_tiPKm+0x2e5> { logger.error(MOD_NAME, func_name, "write failed: %s", strerror(-err)); 1a7a7: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a7ad: f7 d8 neg %eax 1a7af: 89 c7 mov %eax,%edi 1a7b1: e8 ba 91 ff ff callq 13970 1a7b6: 48 89 c1 mov %rax,%rcx 1a7b9: 48 8b 05 58 0d 21 00 mov 0x210d58(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a7c0: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a7c7: 49 89 c8 mov %rcx,%r8 1a7ca: 48 8d 0d aa 8f 00 00 lea 0x8faa(%rip),%rcx # 2377b <_fini+0x7f3> 1a7d1: 48 89 c6 mov %rax,%rsi 1a7d4: 48 8b 05 b5 f7 20 00 mov 0x20f7b5(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a7db: 48 89 c7 mov %rax,%rdi 1a7de: b8 00 00 00 00 mov $0x0,%eax 1a7e3: e8 38 96 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> enif_release_binary(&ibin); 1a7e8: 48 8d 85 90 fb ff ff lea -0x470(%rbp),%rax 1a7ef: 48 89 c7 mov %rax,%rdi 1a7f2: e8 89 88 ff ff callq 13080 return make_error_tuple(env, -err); 1a7f7: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a7fd: 89 c2 mov %eax,%edx 1a7ff: f7 da neg %edx 1a801: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a808: 89 d6 mov %edx,%esi 1a80a: 48 89 c7 mov %rax,%rdi 1a80d: e8 4e 96 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a812: eb 5e jmp 1a872 <_Z7x_writeP18enif_environment_tiPKm+0x343> } enif_release_binary(&ibin); 1a814: 48 8d 85 90 fb ff ff lea -0x470(%rbp),%rax 1a81b: 48 89 c7 mov %rax,%rdi 1a81e: e8 5d 88 ff ff callq 13080 return enif_make_tuple2(env, 1a823: 8b 95 dc fb ff ff mov -0x424(%rbp),%edx 1a829: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a830: 89 d6 mov %edx,%esi 1a832: 48 89 c7 mov %rax,%rdi 1a835: e8 06 9b ff ff callq 14340 1a83a: 48 89 c3 mov %rax,%rbx 1a83d: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a844: 48 8d 35 16 8e 00 00 lea 0x8e16(%rip),%rsi # 23661 <_fini+0x6d9> 1a84b: 48 89 c7 mov %rax,%rdi 1a84e: e8 1d 85 ff ff callq 12d70 1a853: 48 89 c2 mov %rax,%rdx 1a856: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a85d: 48 89 d9 mov %rbx,%rcx 1a860: be 02 00 00 00 mov $0x2,%esi 1a865: 48 89 c7 mov %rax,%rdi 1a868: b8 00 00 00 00 mov $0x0,%eax 1a86d: e8 ce 99 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_int(env, err)); // Number of bytes written } 1a872: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1a876: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1a87d: 00 00 1a87f: 74 05 je 1a886 <_Z7x_writeP18enif_environment_tiPKm+0x357> 1a881: e8 5a 96 ff ff callq 13ee0 <__stack_chk_fail@plt> 1a886: 48 81 c4 98 04 00 00 add $0x498,%rsp 1a88d: 5b pop %rbx 1a88e: 5d pop %rbp 1a88f: c3 retq 000000000001a890 <_Z12x_write_fullP18enif_environment_tiPKm>: // Erlang: write_full(IoCtx, Oid, Data) ERL_NIF_TERM x_write_full(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a890: 55 push %rbp 1a891: 48 89 e5 mov %rsp,%rbp 1a894: 48 81 ec 70 04 00 00 sub $0x470,%rsp 1a89b: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 1a8a2: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 1a8a8: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 1a8af: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a8b6: 00 00 1a8b8: 48 89 45 f8 mov %rax,-0x8(%rbp) 1a8bc: 31 c0 xor %eax,%eax const char * func_name = "x_write_full()"; 1a8be: 48 8d 05 c7 8e 00 00 lea 0x8ec7(%rip),%rax # 2378c <_fini+0x804> 1a8c5: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); 1a8cc: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1a8d3: ba 00 04 00 00 mov $0x400,%edx 1a8d8: be 00 00 00 00 mov $0x0,%esi 1a8dd: 48 89 c7 mov %rax,%rdi 1a8e0: e8 1b 81 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1a8e5: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a8ec: 48 8b 08 mov (%rax),%rcx 1a8ef: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 1a8f6: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a8fd: 48 89 ce mov %rcx,%rsi 1a900: 48 89 c7 mov %rax,%rdi 1a903: e8 78 8c ff ff callq 13580 1a908: 85 c0 test %eax,%eax 1a90a: 74 57 je 1a963 <_Z12x_write_fullP18enif_environment_tiPKm+0xd3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1a90c: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a913: 48 83 c0 08 add $0x8,%rax 1a917: 48 8b 30 mov (%rax),%rsi 1a91a: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1a921: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a928: 41 b8 01 00 00 00 mov $0x1,%r8d 1a92e: b9 00 04 00 00 mov $0x400,%ecx 1a933: 48 89 c7 mov %rax,%rdi 1a936: e8 f5 98 ff ff callq 14230 const char * func_name = "x_write_full()"; uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1a93b: 85 c0 test %eax,%eax 1a93d: 74 24 je 1a963 <_Z12x_write_fullP18enif_environment_tiPKm+0xd3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2])) 1a93f: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a946: 48 83 c0 10 add $0x10,%rax 1a94a: 48 8b 10 mov (%rax),%rdx 1a94d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a954: 48 89 d6 mov %rdx,%rsi 1a957: 48 89 c7 mov %rax,%rdi 1a95a: e8 a1 98 ff ff callq 14200 const char * func_name = "x_write_full()"; uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1a95f: 85 c0 test %eax,%eax 1a961: 75 07 jne 1a96a <_Z12x_write_fullP18enif_environment_tiPKm+0xda> 1a963: b8 01 00 00 00 mov $0x1,%eax 1a968: eb 05 jmp 1a96f <_Z12x_write_fullP18enif_environment_tiPKm+0xdf> 1a96a: b8 00 00 00 00 mov $0x0,%eax 1a96f: 84 c0 test %al,%al 1a971: 74 40 je 1a9b3 <_Z12x_write_fullP18enif_environment_tiPKm+0x123> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2])) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1a973: 48 8b 05 9e 0b 21 00 mov 0x210b9e(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a97a: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a981: 48 8d 0d 52 8c 00 00 lea 0x8c52(%rip),%rcx # 235da <_fini+0x652> 1a988: 48 89 c6 mov %rax,%rsi 1a98b: 48 8b 05 fe f5 20 00 mov 0x20f5fe(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a992: 48 89 c7 mov %rax,%rdi 1a995: b8 00 00 00 00 mov $0x0,%eax 1a99a: e8 81 94 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a99f: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a9a6: 48 89 c7 mov %rax,%rdi 1a9a9: e8 12 8f ff ff callq 138c0 1a9ae: e9 15 01 00 00 jmpq 1aac8 <_Z12x_write_fullP18enif_environment_tiPKm+0x238> } rados_ioctx_t io = map_ioctx_get(id); 1a9b3: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1a9ba: 48 89 c7 mov %rax,%rdi 1a9bd: e8 de 83 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1a9c2: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1a9c9: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1a9d0: 00 1a9d1: 75 4a jne 1aa1d <_Z12x_write_fullP18enif_environment_tiPKm+0x18d> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a9d3: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1a9da: 48 8b 05 37 0b 21 00 mov 0x210b37(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1a9e1: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a9e8: 49 89 c8 mov %rcx,%r8 1a9eb: 48 8d 0d 84 8c 00 00 lea 0x8c84(%rip),%rcx # 23676 <_fini+0x6ee> 1a9f2: 48 89 c6 mov %rax,%rsi 1a9f5: 48 8b 05 94 f5 20 00 mov 0x20f594(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1a9fc: 48 89 c7 mov %rax,%rdi 1a9ff: b8 00 00 00 00 mov $0x0,%eax 1aa04: e8 17 94 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1aa09: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1aa10: 48 89 c7 mov %rax,%rdi 1aa13: e8 a8 8e ff ff callq 138c0 1aa18: e9 ab 00 00 00 jmpq 1aac8 <_Z12x_write_fullP18enif_environment_tiPKm+0x238> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 1aa1d: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1aa24: 48 83 c0 10 add $0x10,%rax 1aa28: 48 8b 08 mov (%rax),%rcx 1aa2b: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1aa32: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1aa39: 48 89 ce mov %rcx,%rsi 1aa3c: 48 89 c7 mov %rax,%rdi 1aa3f: e8 cc 90 ff ff callq 13b10 int err = rados_write_full(io, oid, (const char*)ibin.data, ibin.size); 1aa44: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1aa4b: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1aa52: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1aa59: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1aa60: 48 89 c7 mov %rax,%rdi 1aa63: e8 28 80 ff ff callq 12a90 1aa68: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1aa6e: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1aa75: 79 2c jns 1aaa3 <_Z12x_write_fullP18enif_environment_tiPKm+0x213> { enif_release_binary(&ibin); 1aa77: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1aa7e: 48 89 c7 mov %rax,%rdi 1aa81: e8 fa 85 ff ff callq 13080 return make_error_tuple(env, -err); 1aa86: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1aa8c: 89 c2 mov %eax,%edx 1aa8e: f7 da neg %edx 1aa90: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1aa97: 89 d6 mov %edx,%esi 1aa99: 48 89 c7 mov %rax,%rdi 1aa9c: e8 bf 93 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1aaa1: eb 25 jmp 1aac8 <_Z12x_write_fullP18enif_environment_tiPKm+0x238> } enif_release_binary(&ibin); 1aaa3: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1aaaa: 48 89 c7 mov %rax,%rdi 1aaad: e8 ce 85 ff ff callq 13080 return enif_make_atom(env, "ok"); 1aab2: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1aab9: 48 8d 35 a1 8b 00 00 lea 0x8ba1(%rip),%rsi # 23661 <_fini+0x6d9> 1aac0: 48 89 c7 mov %rax,%rdi 1aac3: e8 a8 82 ff ff callq 12d70 } 1aac8: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1aacc: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1aad3: 00 00 1aad5: 74 05 je 1aadc <_Z12x_write_fullP18enif_environment_tiPKm+0x24c> 1aad7: e8 04 94 ff ff callq 13ee0 <__stack_chk_fail@plt> 1aadc: c9 leaveq 1aadd: c3 retq 000000000001aade <_Z8x_appendP18enif_environment_tiPKm>: // Erlang: append(IoCtx, Oid, Data) ERL_NIF_TERM x_append(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1aade: 55 push %rbp 1aadf: 48 89 e5 mov %rsp,%rbp 1aae2: 53 push %rbx 1aae3: 48 81 ec 78 04 00 00 sub $0x478,%rsp 1aaea: 48 89 bd 98 fb ff ff mov %rdi,-0x468(%rbp) 1aaf1: 89 b5 94 fb ff ff mov %esi,-0x46c(%rbp) 1aaf7: 48 89 95 88 fb ff ff mov %rdx,-0x478(%rbp) 1aafe: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1ab05: 00 00 1ab07: 48 89 45 e8 mov %rax,-0x18(%rbp) 1ab0b: 31 c0 xor %eax,%eax const char * func_name = "x_append()"; 1ab0d: 48 8d 05 87 8c 00 00 lea 0x8c87(%rip),%rax # 2379b <_fini+0x813> 1ab14: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); 1ab1b: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1ab22: ba 00 04 00 00 mov $0x400,%edx 1ab27: be 00 00 00 00 mov $0x0,%esi 1ab2c: 48 89 c7 mov %rax,%rdi 1ab2f: e8 cc 7e ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1ab34: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1ab3b: 48 8b 08 mov (%rax),%rcx 1ab3e: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1ab45: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ab4c: 48 89 ce mov %rcx,%rsi 1ab4f: 48 89 c7 mov %rax,%rdi 1ab52: e8 29 8a ff ff callq 13580 1ab57: 85 c0 test %eax,%eax 1ab59: 74 57 je 1abb2 <_Z8x_appendP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1ab5b: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1ab62: 48 83 c0 08 add $0x8,%rax 1ab66: 48 8b 30 mov (%rax),%rsi 1ab69: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1ab70: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ab77: 41 b8 01 00 00 00 mov $0x1,%r8d 1ab7d: b9 00 04 00 00 mov $0x400,%ecx 1ab82: 48 89 c7 mov %rax,%rdi 1ab85: e8 a6 96 ff ff callq 14230 const char * func_name = "x_append()"; uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1ab8a: 85 c0 test %eax,%eax 1ab8c: 74 24 je 1abb2 <_Z8x_appendP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2])) 1ab8e: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1ab95: 48 83 c0 10 add $0x10,%rax 1ab99: 48 8b 10 mov (%rax),%rdx 1ab9c: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1aba3: 48 89 d6 mov %rdx,%rsi 1aba6: 48 89 c7 mov %rax,%rdi 1aba9: e8 52 96 ff ff callq 14200 const char * func_name = "x_append()"; uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1abae: 85 c0 test %eax,%eax 1abb0: 75 07 jne 1abb9 <_Z8x_appendP18enif_environment_tiPKm+0xdb> 1abb2: b8 01 00 00 00 mov $0x1,%eax 1abb7: eb 05 jmp 1abbe <_Z8x_appendP18enif_environment_tiPKm+0xe0> 1abb9: b8 00 00 00 00 mov $0x0,%eax 1abbe: 84 c0 test %al,%al 1abc0: 74 40 je 1ac02 <_Z8x_appendP18enif_environment_tiPKm+0x124> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2])) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1abc2: 48 8b 05 4f 09 21 00 mov 0x21094f(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1abc9: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1abd0: 48 8d 0d 03 8a 00 00 lea 0x8a03(%rip),%rcx # 235da <_fini+0x652> 1abd7: 48 89 c6 mov %rax,%rsi 1abda: 48 8b 05 af f3 20 00 mov 0x20f3af(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1abe1: 48 89 c7 mov %rax,%rdi 1abe4: b8 00 00 00 00 mov $0x0,%eax 1abe9: e8 32 92 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1abee: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1abf5: 48 89 c7 mov %rax,%rdi 1abf8: e8 c3 8c ff ff callq 138c0 1abfd: e9 4e 01 00 00 jmpq 1ad50 <_Z8x_appendP18enif_environment_tiPKm+0x272> } rados_ioctx_t io = map_ioctx_get(id); 1ac02: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1ac09: 48 89 c7 mov %rax,%rdi 1ac0c: e8 8f 81 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1ac11: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1ac18: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1ac1f: 00 1ac20: 75 4a jne 1ac6c <_Z8x_appendP18enif_environment_tiPKm+0x18e> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1ac22: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 1ac29: 48 8b 05 e8 08 21 00 mov 0x2108e8(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1ac30: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1ac37: 49 89 c8 mov %rcx,%r8 1ac3a: 48 8d 0d 35 8a 00 00 lea 0x8a35(%rip),%rcx # 23676 <_fini+0x6ee> 1ac41: 48 89 c6 mov %rax,%rsi 1ac44: 48 8b 05 45 f3 20 00 mov 0x20f345(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1ac4b: 48 89 c7 mov %rax,%rdi 1ac4e: b8 00 00 00 00 mov $0x0,%eax 1ac53: e8 c8 91 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1ac58: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ac5f: 48 89 c7 mov %rax,%rdi 1ac62: e8 59 8c ff ff callq 138c0 1ac67: e9 e4 00 00 00 jmpq 1ad50 <_Z8x_appendP18enif_environment_tiPKm+0x272> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 1ac6c: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1ac73: 48 83 c0 10 add $0x10,%rax 1ac77: 48 8b 08 mov (%rax),%rcx 1ac7a: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1ac81: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ac88: 48 89 ce mov %rcx,%rsi 1ac8b: 48 89 c7 mov %rax,%rdi 1ac8e: e8 7d 8e ff ff callq 13b10 int err = rados_append(io, oid, (const char*)ibin.data, ibin.size); 1ac93: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1ac9a: 48 8b 95 a8 fb ff ff mov -0x458(%rbp),%rdx 1aca1: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 1aca8: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1acaf: 48 89 c7 mov %rax,%rdi 1acb2: e8 f9 93 ff ff callq 140b0 1acb7: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1acbd: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1acc4: 79 2c jns 1acf2 <_Z8x_appendP18enif_environment_tiPKm+0x214> { enif_release_binary(&ibin); 1acc6: 48 8d 85 a0 fb ff ff lea -0x460(%rbp),%rax 1accd: 48 89 c7 mov %rax,%rdi 1acd0: e8 ab 83 ff ff callq 13080 return make_error_tuple(env, -err); 1acd5: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1acdb: 89 c2 mov %eax,%edx 1acdd: f7 da neg %edx 1acdf: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ace6: 89 d6 mov %edx,%esi 1ace8: 48 89 c7 mov %rax,%rdi 1aceb: e8 70 91 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1acf0: eb 5e jmp 1ad50 <_Z8x_appendP18enif_environment_tiPKm+0x272> } enif_release_binary(&ibin); 1acf2: 48 8d 85 a0 fb ff ff lea -0x460(%rbp),%rax 1acf9: 48 89 c7 mov %rax,%rdi 1acfc: e8 7f 83 ff ff callq 13080 return enif_make_tuple2(env, 1ad01: 8b 95 dc fb ff ff mov -0x424(%rbp),%edx 1ad07: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ad0e: 89 d6 mov %edx,%esi 1ad10: 48 89 c7 mov %rax,%rdi 1ad13: e8 28 96 ff ff callq 14340 1ad18: 48 89 c3 mov %rax,%rbx 1ad1b: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ad22: 48 8d 35 38 89 00 00 lea 0x8938(%rip),%rsi # 23661 <_fini+0x6d9> 1ad29: 48 89 c7 mov %rax,%rdi 1ad2c: e8 3f 80 ff ff callq 12d70 1ad31: 48 89 c2 mov %rax,%rdx 1ad34: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1ad3b: 48 89 d9 mov %rbx,%rcx 1ad3e: be 02 00 00 00 mov $0x2,%esi 1ad43: 48 89 c7 mov %rax,%rdi 1ad46: b8 00 00 00 00 mov $0x0,%eax 1ad4b: e8 f0 94 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_int(env, err)); // Number of bytes appended } 1ad50: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1ad54: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ad5b: 00 00 1ad5d: 74 05 je 1ad64 <_Z8x_appendP18enif_environment_tiPKm+0x286> 1ad5f: e8 7c 91 ff ff callq 13ee0 <__stack_chk_fail@plt> 1ad64: 48 81 c4 78 04 00 00 add $0x478,%rsp 1ad6b: 5b pop %rbx 1ad6c: 5d pop %rbp 1ad6d: c3 retq 000000000001ad6e <_Z6x_readP18enif_environment_tiPKm>: // Erlang: read(IoCtx, Oid, Len, Offset) ERL_NIF_TERM x_read(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1ad6e: 55 push %rbp 1ad6f: 48 89 e5 mov %rsp,%rbp 1ad72: 53 push %rbx 1ad73: 48 81 ec a8 04 00 00 sub $0x4a8,%rsp 1ad7a: 48 89 bd 78 fb ff ff mov %rdi,-0x488(%rbp) 1ad81: 89 b5 74 fb ff ff mov %esi,-0x48c(%rbp) 1ad87: 48 89 95 68 fb ff ff mov %rdx,-0x498(%rbp) 1ad8e: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1ad95: 00 00 1ad97: 48 89 45 e8 mov %rax,-0x18(%rbp) 1ad9b: 31 c0 xor %eax,%eax const char * func_name = "x_read()"; 1ad9d: 48 8d 05 02 8a 00 00 lea 0x8a02(%rip),%rax # 237a6 <_fini+0x81e> 1ada4: 48 89 85 b8 fb ff ff mov %rax,-0x448(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; long len; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); 1adab: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1adb2: ba 00 04 00 00 mov $0x400,%edx 1adb7: be 00 00 00 00 mov $0x0,%esi 1adbc: 48 89 c7 mov %rax,%rdi 1adbf: e8 3c 7c ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1adc4: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1adcb: 48 8b 08 mov (%rax),%rcx 1adce: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1add5: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1addc: 48 89 ce mov %rcx,%rsi 1addf: 48 89 c7 mov %rax,%rdi 1ade2: e8 99 87 ff ff callq 13580 1ade7: 85 c0 test %eax,%eax 1ade9: 0f 84 89 00 00 00 je 1ae78 <_Z6x_readP18enif_environment_tiPKm+0x10a> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1adef: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1adf6: 48 83 c0 08 add $0x8,%rax 1adfa: 48 8b 30 mov (%rax),%rsi 1adfd: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1ae04: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1ae0b: 41 b8 01 00 00 00 mov $0x1,%r8d 1ae11: b9 00 04 00 00 mov $0x400,%ecx 1ae16: 48 89 c7 mov %rax,%rdi 1ae19: e8 12 94 ff ff callq 14230 uint64_t id; char oid[MAX_NAME_LEN]; long len; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1ae1e: 85 c0 test %eax,%eax 1ae20: 74 56 je 1ae78 <_Z6x_readP18enif_environment_tiPKm+0x10a> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_long(env, argv[2], &len) || 1ae22: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1ae29: 48 83 c0 10 add $0x10,%rax 1ae2d: 48 8b 08 mov (%rax),%rcx 1ae30: 48 8d 95 a8 fb ff ff lea -0x458(%rbp),%rdx 1ae37: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1ae3e: 48 89 ce mov %rcx,%rsi 1ae41: 48 89 c7 mov %rax,%rdi 1ae44: e8 27 8a ff ff callq 13870 uint64_t id; char oid[MAX_NAME_LEN]; long len; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1ae49: 85 c0 test %eax,%eax 1ae4b: 74 2b je 1ae78 <_Z6x_readP18enif_environment_tiPKm+0x10a> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_long(env, argv[2], &len) || !enif_get_uint64(env, argv[3], &offset)) 1ae4d: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1ae54: 48 83 c0 18 add $0x18,%rax 1ae58: 48 8b 08 mov (%rax),%rcx 1ae5b: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1ae62: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1ae69: 48 89 ce mov %rcx,%rsi 1ae6c: 48 89 c7 mov %rax,%rdi 1ae6f: e8 0c 87 ff ff callq 13580 uint64_t id; char oid[MAX_NAME_LEN]; long len; uint64_t offset; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1ae74: 85 c0 test %eax,%eax 1ae76: 75 07 jne 1ae7f <_Z6x_readP18enif_environment_tiPKm+0x111> 1ae78: b8 01 00 00 00 mov $0x1,%eax 1ae7d: eb 05 jmp 1ae84 <_Z6x_readP18enif_environment_tiPKm+0x116> 1ae7f: b8 00 00 00 00 mov $0x0,%eax 1ae84: 84 c0 test %al,%al 1ae86: 74 40 je 1aec8 <_Z6x_readP18enif_environment_tiPKm+0x15a> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_long(env, argv[2], &len) || !enif_get_uint64(env, argv[3], &offset)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1ae88: 48 8b 05 89 06 21 00 mov 0x210689(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1ae8f: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1ae96: 48 8d 0d 3d 87 00 00 lea 0x873d(%rip),%rcx # 235da <_fini+0x652> 1ae9d: 48 89 c6 mov %rax,%rsi 1aea0: 48 8b 05 e9 f0 20 00 mov 0x20f0e9(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1aea7: 48 89 c7 mov %rax,%rdi 1aeaa: b8 00 00 00 00 mov $0x0,%eax 1aeaf: e8 6c 8f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1aeb4: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1aebb: 48 89 c7 mov %rax,%rdi 1aebe: e8 fd 89 ff ff callq 138c0 1aec3: e9 08 03 00 00 jmpq 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } rados_ioctx_t io = map_ioctx_get(id); 1aec8: 48 8b 85 a0 fb ff ff mov -0x460(%rbp),%rax 1aecf: 48 89 c7 mov %rax,%rdi 1aed2: e8 c9 7e ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1aed7: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) if (io == NULL) 1aede: 48 83 bd c0 fb ff ff cmpq $0x0,-0x440(%rbp) 1aee5: 00 1aee6: 75 4a jne 1af32 <_Z6x_readP18enif_environment_tiPKm+0x1c4> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1aee8: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1aeef: 48 8b 05 22 06 21 00 mov 0x210622(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1aef6: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1aefd: 49 89 c8 mov %rcx,%r8 1af00: 48 8d 0d 6f 87 00 00 lea 0x876f(%rip),%rcx # 23676 <_fini+0x6ee> 1af07: 48 89 c6 mov %rax,%rsi 1af0a: 48 8b 05 7f f0 20 00 mov 0x20f07f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1af11: 48 89 c7 mov %rax,%rdi 1af14: b8 00 00 00 00 mov $0x0,%eax 1af19: e8 02 8f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1af1e: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1af25: 48 89 c7 mov %rax,%rdi 1af28: e8 93 89 ff ff callq 138c0 1af2d: e9 9e 02 00 00 jmpq 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s, len=%ld, offset=%ld", id, oid, len, offset); 1af32: 48 8b b5 b0 fb ff ff mov -0x450(%rbp),%rsi 1af39: 48 8b 8d a8 fb ff ff mov -0x458(%rbp),%rcx 1af40: 48 8b bd a0 fb ff ff mov -0x460(%rbp),%rdi 1af47: 48 8b 05 ca 05 21 00 mov 0x2105ca(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1af4e: 4c 8d 85 e0 fb ff ff lea -0x420(%rbp),%r8 1af55: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1af5c: 48 89 74 24 08 mov %rsi,0x8(%rsp) 1af61: 48 89 0c 24 mov %rcx,(%rsp) 1af65: 4d 89 c1 mov %r8,%r9 1af68: 49 89 f8 mov %rdi,%r8 1af6b: 48 8d 0d 3e 88 00 00 lea 0x883e(%rip),%rcx # 237b0 <_fini+0x828> 1af72: 48 89 c6 mov %rax,%rsi 1af75: 48 8b 05 14 f0 20 00 mov 0x20f014(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1af7c: 48 89 c7 mov %rax,%rdi 1af7f: b8 00 00 00 00 mov $0x0,%eax 1af84: e8 47 90 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> char * buf = (char *)malloc(len); 1af89: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1af90: 48 89 c7 mov %rax,%rdi 1af93: e8 e8 7f ff ff callq 12f80 1af98: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) if (!buf) 1af9f: 48 83 bd c8 fb ff ff cmpq $0x0,-0x438(%rbp) 1afa6: 00 1afa7: 75 4f jne 1aff8 <_Z6x_readP18enif_environment_tiPKm+0x28a> { logger.error(MOD_NAME, func_name, "unable to malloc for %ld", id); 1afa9: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1afb0: 48 8b 05 61 05 21 00 mov 0x210561(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1afb7: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1afbe: 49 89 c8 mov %rcx,%r8 1afc1: 48 8d 0d 0c 88 00 00 lea 0x880c(%rip),%rcx # 237d4 <_fini+0x84c> 1afc8: 48 89 c6 mov %rax,%rsi 1afcb: 48 8b 05 be ef 20 00 mov 0x20efbe(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1afd2: 48 89 c7 mov %rax,%rdi 1afd5: b8 00 00 00 00 mov $0x0,%eax 1afda: e8 41 8e ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, ENOMEM); 1afdf: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1afe6: be 0c 00 00 00 mov $0xc,%esi 1afeb: 48 89 c7 mov %rax,%rdi 1afee: e8 6d 8e ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1aff3: e9 d8 01 00 00 jmpq 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } int err = rados_read(io, oid, buf, len, offset); 1aff8: 48 8b bd b0 fb ff ff mov -0x450(%rbp),%rdi 1afff: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b006: 48 89 c1 mov %rax,%rcx 1b009: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1b010: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 1b017: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1b01e: 49 89 f8 mov %rdi,%r8 1b021: 48 89 c7 mov %rax,%rdi 1b024: e8 d7 78 ff ff callq 12900 1b029: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1b02f: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1b036: 79 7a jns 1b0b2 <_Z6x_readP18enif_environment_tiPKm+0x344> { free(buf); 1b038: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b03f: 48 89 c7 mov %rax,%rdi 1b042: e8 69 84 ff ff callq 134b0 logger.error(MOD_NAME, func_name, "read failed %ld: %s", id, strerror(-err)); 1b047: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1b04d: f7 d8 neg %eax 1b04f: 89 c7 mov %eax,%edi 1b051: e8 1a 89 ff ff callq 13970 1b056: 48 89 c1 mov %rax,%rcx 1b059: 48 8b b5 a0 fb ff ff mov -0x460(%rbp),%rsi 1b060: 48 8b 05 b1 04 21 00 mov 0x2104b1(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b067: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1b06e: 49 89 c9 mov %rcx,%r9 1b071: 49 89 f0 mov %rsi,%r8 1b074: 48 8d 0d 72 87 00 00 lea 0x8772(%rip),%rcx # 237ed <_fini+0x865> 1b07b: 48 89 c6 mov %rax,%rsi 1b07e: 48 8b 05 0b ef 20 00 mov 0x20ef0b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b085: 48 89 c7 mov %rax,%rdi 1b088: b8 00 00 00 00 mov $0x0,%eax 1b08d: e8 8e 8d ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1b092: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1b098: 89 c2 mov %eax,%edx 1b09a: f7 da neg %edx 1b09c: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b0a3: 89 d6 mov %edx,%esi 1b0a5: 48 89 c7 mov %rax,%rdi 1b0a8: e8 b3 8d ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b0ad: e9 1e 01 00 00 jmpq 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } if (err > 0) 1b0b2: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1b0b9: 0f 8e ec 00 00 00 jle 1b1ab <_Z6x_readP18enif_environment_tiPKm+0x43d> { ErlNifBinary obin; if (!enif_alloc_binary(err, &obin)) 1b0bf: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1b0c5: 48 98 cltq 1b0c7: 48 8d 95 80 fb ff ff lea -0x480(%rbp),%rdx 1b0ce: 48 89 d6 mov %rdx,%rsi 1b0d1: 48 89 c7 mov %rax,%rdi 1b0d4: e8 a7 8e ff ff callq 13f80 1b0d9: 85 c0 test %eax,%eax 1b0db: 0f 94 c0 sete %al 1b0de: 84 c0 test %al,%al 1b0e0: 74 28 je 1b10a <_Z6x_readP18enif_environment_tiPKm+0x39c> { free(buf); 1b0e2: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b0e9: 48 89 c7 mov %rax,%rdi 1b0ec: e8 bf 83 ff ff callq 134b0 return make_error_tuple(env, ENOMEM); 1b0f1: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b0f8: be 0c 00 00 00 mov $0xc,%esi 1b0fd: 48 89 c7 mov %rax,%rdi 1b100: e8 5b 8d ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b105: e9 c6 00 00 00 jmpq 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } memcpy(obin.data, buf, err); 1b10a: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1b110: 48 63 d0 movslq %eax,%rdx 1b113: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1b11a: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1b121: 48 89 ce mov %rcx,%rsi 1b124: 48 89 c7 mov %rax,%rdi 1b127: e8 94 95 ff ff callq 146c0 free(buf); 1b12c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b133: 48 89 c7 mov %rax,%rdi 1b136: e8 75 83 ff ff callq 134b0 ERL_NIF_TERM ret = enif_make_tuple2(env, 1b13b: 48 8d 95 80 fb ff ff lea -0x480(%rbp),%rdx 1b142: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b149: 48 89 d6 mov %rdx,%rsi 1b14c: 48 89 c7 mov %rax,%rdi 1b14f: e8 cc 82 ff ff callq 13420 1b154: 48 89 c3 mov %rax,%rbx 1b157: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b15e: 48 8d 35 fc 84 00 00 lea 0x84fc(%rip),%rsi # 23661 <_fini+0x6d9> 1b165: 48 89 c7 mov %rax,%rdi 1b168: e8 03 7c ff ff callq 12d70 1b16d: 48 89 c2 mov %rax,%rdx 1b170: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b177: 48 89 d9 mov %rbx,%rcx 1b17a: be 02 00 00 00 mov $0x2,%esi 1b17f: 48 89 c7 mov %rax,%rdi 1b182: b8 00 00 00 00 mov $0x0,%eax 1b187: e8 b4 90 ff ff callq 14240 1b18c: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) enif_make_atom(env, "ok"), enif_make_binary(env, &obin)); enif_release_binary(&obin); 1b193: 48 8d 85 80 fb ff ff lea -0x480(%rbp),%rax 1b19a: 48 89 c7 mov %rax,%rdi 1b19d: e8 de 7e ff ff callq 13080 return ret; 1b1a2: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1b1a9: eb 25 jmp 1b1d0 <_Z6x_readP18enif_environment_tiPKm+0x462> } else { free(buf); 1b1ab: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b1b2: 48 89 c7 mov %rax,%rdi 1b1b5: e8 f6 82 ff ff callq 134b0 return enif_make_atom(env, "eof"); 1b1ba: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1b1c1: 48 8d 35 39 86 00 00 lea 0x8639(%rip),%rsi # 23801 <_fini+0x879> 1b1c8: 48 89 c7 mov %rax,%rdi 1b1cb: e8 a0 7b ff ff callq 12d70 } } 1b1d0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b1d4: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1b1db: 00 00 1b1dd: 74 05 je 1b1e4 <_Z6x_readP18enif_environment_tiPKm+0x476> 1b1df: e8 fc 8c ff ff callq 13ee0 <__stack_chk_fail@plt> 1b1e4: 48 81 c4 a8 04 00 00 add $0x4a8,%rsp 1b1eb: 5b pop %rbx 1b1ec: 5d pop %rbp 1b1ed: c3 retq 000000000001b1ee <_Z8x_removeP18enif_environment_tiPKm>: ERL_NIF_TERM x_remove(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b1ee: 55 push %rbp 1b1ef: 48 89 e5 mov %rsp,%rbp 1b1f2: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1b1f9: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1b200: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1b206: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1b20d: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1b214: 00 00 1b216: 48 89 45 f8 mov %rax,-0x8(%rbp) 1b21a: 31 c0 xor %eax,%eax const char * func_name = "x_remove()"; 1b21c: 48 8d 05 e2 85 00 00 lea 0x85e2(%rip),%rax # 23805 <_fini+0x87d> 1b223: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1b22a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b231: 48 8b 08 mov (%rax),%rcx 1b234: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 1b23b: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b242: 48 89 ce mov %rcx,%rsi 1b245: 48 89 c7 mov %rax,%rdi 1b248: e8 33 83 ff ff callq 13580 1b24d: 85 c0 test %eax,%eax 1b24f: 74 33 je 1b284 <_Z8x_removeP18enif_environment_tiPKm+0x96> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1b251: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b258: 48 83 c0 08 add $0x8,%rax 1b25c: 48 8b 30 mov (%rax),%rsi 1b25f: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1b266: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b26d: 41 b8 01 00 00 00 mov $0x1,%r8d 1b273: b9 00 04 00 00 mov $0x400,%ecx 1b278: 48 89 c7 mov %rax,%rdi 1b27b: e8 b0 8f ff ff callq 14230 { const char * func_name = "x_remove()"; uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1b280: 85 c0 test %eax,%eax 1b282: 75 07 jne 1b28b <_Z8x_removeP18enif_environment_tiPKm+0x9d> 1b284: b8 01 00 00 00 mov $0x1,%eax 1b289: eb 05 jmp 1b290 <_Z8x_removeP18enif_environment_tiPKm+0xa2> 1b28b: b8 00 00 00 00 mov $0x0,%eax 1b290: 84 c0 test %al,%al 1b292: 74 40 je 1b2d4 <_Z8x_removeP18enif_environment_tiPKm+0xe6> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1b294: 48 8b 05 7d 02 21 00 mov 0x21027d(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b29b: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b2a2: 48 8d 0d 31 83 00 00 lea 0x8331(%rip),%rcx # 235da <_fini+0x652> 1b2a9: 48 89 c6 mov %rax,%rsi 1b2ac: 48 8b 05 dd ec 20 00 mov 0x20ecdd(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b2b3: 48 89 c7 mov %rax,%rdi 1b2b6: b8 00 00 00 00 mov $0x0,%eax 1b2bb: e8 60 8b ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b2c0: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b2c7: 48 89 c7 mov %rax,%rdi 1b2ca: e8 f1 85 ff ff callq 138c0 1b2cf: e9 45 01 00 00 jmpq 1b419 <_Z8x_removeP18enif_environment_tiPKm+0x22b> } rados_ioctx_t io = map_ioctx_get(id); 1b2d4: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1b2db: 48 89 c7 mov %rax,%rdi 1b2de: e8 bd 7a ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1b2e3: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1b2ea: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1b2f1: 00 1b2f2: 75 4a jne 1b33e <_Z8x_removeP18enif_environment_tiPKm+0x150> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1b2f4: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1b2fb: 48 8b 05 16 02 21 00 mov 0x210216(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b302: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b309: 49 89 c8 mov %rcx,%r8 1b30c: 48 8d 0d 63 83 00 00 lea 0x8363(%rip),%rcx # 23676 <_fini+0x6ee> 1b313: 48 89 c6 mov %rax,%rsi 1b316: 48 8b 05 73 ec 20 00 mov 0x20ec73(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b31d: 48 89 c7 mov %rax,%rdi 1b320: b8 00 00 00 00 mov $0x0,%eax 1b325: e8 f6 8a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b32a: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b331: 48 89 c7 mov %rax,%rdi 1b334: e8 87 85 ff ff callq 138c0 1b339: e9 db 00 00 00 jmpq 1b419 <_Z8x_removeP18enif_environment_tiPKm+0x22b> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s", id, oid); 1b33e: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1b345: 48 8b 05 cc 01 21 00 mov 0x2101cc(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b34c: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1b353: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b35a: 49 89 f1 mov %rsi,%r9 1b35d: 49 89 c8 mov %rcx,%r8 1b360: 48 8d 0d a9 84 00 00 lea 0x84a9(%rip),%rcx # 23810 <_fini+0x888> 1b367: 48 89 c6 mov %rax,%rsi 1b36a: 48 8b 05 1f ec 20 00 mov 0x20ec1f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b371: 48 89 c7 mov %rax,%rdi 1b374: b8 00 00 00 00 mov $0x0,%eax 1b379: e8 52 8c ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_remove(io, oid); 1b37e: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1b385: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1b38c: 48 89 d6 mov %rdx,%rsi 1b38f: 48 89 c7 mov %rax,%rdi 1b392: e8 19 7f ff ff callq 132b0 1b397: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1b39d: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1b3a4: 79 5d jns 1b403 <_Z8x_removeP18enif_environment_tiPKm+0x215> { logger.error(MOD_NAME, func_name, "failed to remove: io=%ld, oid=%s", id, oid); 1b3a6: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1b3ad: 48 8b 05 64 01 21 00 mov 0x210164(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b3b4: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1b3bb: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b3c2: 49 89 f1 mov %rsi,%r9 1b3c5: 49 89 c8 mov %rcx,%r8 1b3c8: 48 8d 0d 51 84 00 00 lea 0x8451(%rip),%rcx # 23820 <_fini+0x898> 1b3cf: 48 89 c6 mov %rax,%rsi 1b3d2: 48 8b 05 b7 eb 20 00 mov 0x20ebb7(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b3d9: 48 89 c7 mov %rax,%rdi 1b3dc: b8 00 00 00 00 mov $0x0,%eax 1b3e1: e8 3a 8a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1b3e6: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1b3ec: 89 c2 mov %eax,%edx 1b3ee: f7 da neg %edx 1b3f0: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b3f7: 89 d6 mov %edx,%esi 1b3f9: 48 89 c7 mov %rax,%rdi 1b3fc: e8 5f 8a ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b401: eb 16 jmp 1b419 <_Z8x_removeP18enif_environment_tiPKm+0x22b> } return enif_make_atom(env, "ok"); 1b403: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b40a: 48 8d 35 50 82 00 00 lea 0x8250(%rip),%rsi # 23661 <_fini+0x6d9> 1b411: 48 89 c7 mov %rax,%rdi 1b414: e8 57 79 ff ff callq 12d70 } 1b419: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1b41d: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1b424: 00 00 1b426: 74 05 je 1b42d <_Z8x_removeP18enif_environment_tiPKm+0x23f> 1b428: e8 b3 8a ff ff callq 13ee0 <__stack_chk_fail@plt> 1b42d: c9 leaveq 1b42e: c3 retq 000000000001b42f <_Z7x_truncP18enif_environment_tiPKm>: ERL_NIF_TERM x_trunc(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b42f: 55 push %rbp 1b430: 48 89 e5 mov %rsp,%rbp 1b433: 48 81 ec 70 04 00 00 sub $0x470,%rsp 1b43a: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1b441: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1b447: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1b44e: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1b455: 00 00 1b457: 48 89 45 f8 mov %rax,-0x8(%rbp) 1b45b: 31 c0 xor %eax,%eax const char * func_name = "x_trunc()"; 1b45d: 48 8d 05 dd 83 00 00 lea 0x83dd(%rip),%rax # 23841 <_fini+0x8b9> 1b464: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; uint64_t size; if (!enif_get_uint64(env, argv[0], &id) || 1b46b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b472: 48 8b 08 mov (%rax),%rcx 1b475: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1b47c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b483: 48 89 ce mov %rcx,%rsi 1b486: 48 89 c7 mov %rax,%rdi 1b489: e8 f2 80 ff ff callq 13580 1b48e: 85 c0 test %eax,%eax 1b490: 74 5e je 1b4f0 <_Z7x_truncP18enif_environment_tiPKm+0xc1> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1b492: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b499: 48 83 c0 08 add $0x8,%rax 1b49d: 48 8b 30 mov (%rax),%rsi 1b4a0: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1b4a7: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b4ae: 41 b8 01 00 00 00 mov $0x1,%r8d 1b4b4: b9 00 04 00 00 mov $0x400,%ecx 1b4b9: 48 89 c7 mov %rax,%rdi 1b4bc: e8 6f 8d ff ff callq 14230 const char * func_name = "x_trunc()"; uint64_t id; char oid[MAX_NAME_LEN]; uint64_t size; if (!enif_get_uint64(env, argv[0], &id) || 1b4c1: 85 c0 test %eax,%eax 1b4c3: 74 2b je 1b4f0 <_Z7x_truncP18enif_environment_tiPKm+0xc1> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_uint64(env, argv[2], &size)) 1b4c5: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b4cc: 48 83 c0 10 add $0x10,%rax 1b4d0: 48 8b 08 mov (%rax),%rcx 1b4d3: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 1b4da: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b4e1: 48 89 ce mov %rcx,%rsi 1b4e4: 48 89 c7 mov %rax,%rdi 1b4e7: e8 94 80 ff ff callq 13580 const char * func_name = "x_trunc()"; uint64_t id; char oid[MAX_NAME_LEN]; uint64_t size; if (!enif_get_uint64(env, argv[0], &id) || 1b4ec: 85 c0 test %eax,%eax 1b4ee: 75 07 jne 1b4f7 <_Z7x_truncP18enif_environment_tiPKm+0xc8> 1b4f0: b8 01 00 00 00 mov $0x1,%eax 1b4f5: eb 05 jmp 1b4fc <_Z7x_truncP18enif_environment_tiPKm+0xcd> 1b4f7: b8 00 00 00 00 mov $0x0,%eax 1b4fc: 84 c0 test %al,%al 1b4fe: 74 40 je 1b540 <_Z7x_truncP18enif_environment_tiPKm+0x111> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_uint64(env, argv[2], &size)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1b500: 48 8b 05 11 00 21 00 mov 0x210011(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b507: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b50e: 48 8d 0d c5 80 00 00 lea 0x80c5(%rip),%rcx # 235da <_fini+0x652> 1b515: 48 89 c6 mov %rax,%rsi 1b518: 48 8b 05 71 ea 20 00 mov 0x20ea71(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b51f: 48 89 c7 mov %rax,%rdi 1b522: b8 00 00 00 00 mov $0x0,%eax 1b527: e8 f4 88 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b52c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b533: 48 89 c7 mov %rax,%rdi 1b536: e8 85 83 ff ff callq 138c0 1b53b: e9 62 01 00 00 jmpq 1b6a2 <_Z7x_truncP18enif_environment_tiPKm+0x273> } rados_ioctx_t io = map_ioctx_get(id); 1b540: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1b547: 48 89 c7 mov %rax,%rdi 1b54a: e8 51 78 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1b54f: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1b556: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1b55d: 00 1b55e: 75 4a jne 1b5aa <_Z7x_truncP18enif_environment_tiPKm+0x17b> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1b560: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1b567: 48 8b 05 aa ff 20 00 mov 0x20ffaa(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b56e: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b575: 49 89 c8 mov %rcx,%r8 1b578: 48 8d 0d f7 80 00 00 lea 0x80f7(%rip),%rcx # 23676 <_fini+0x6ee> 1b57f: 48 89 c6 mov %rax,%rsi 1b582: 48 8b 05 07 ea 20 00 mov 0x20ea07(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b589: 48 89 c7 mov %rax,%rdi 1b58c: b8 00 00 00 00 mov $0x0,%eax 1b591: e8 8a 88 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b596: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b59d: 48 89 c7 mov %rax,%rdi 1b5a0: e8 1b 83 ff ff callq 138c0 1b5a5: e9 f8 00 00 00 jmpq 1b6a2 <_Z7x_truncP18enif_environment_tiPKm+0x273> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s, size=%ld", id, oid, size); 1b5aa: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1b5b1: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1b5b8: 48 8b 05 59 ff 20 00 mov 0x20ff59(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b5bf: 48 8d bd f0 fb ff ff lea -0x410(%rbp),%rdi 1b5c6: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b5cd: 48 89 0c 24 mov %rcx,(%rsp) 1b5d1: 49 89 f9 mov %rdi,%r9 1b5d4: 49 89 f0 mov %rsi,%r8 1b5d7: 48 8d 0d 6d 82 00 00 lea 0x826d(%rip),%rcx # 2384b <_fini+0x8c3> 1b5de: 48 89 c6 mov %rax,%rsi 1b5e1: 48 8b 05 a8 e9 20 00 mov 0x20e9a8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b5e8: 48 89 c7 mov %rax,%rdi 1b5eb: b8 00 00 00 00 mov $0x0,%eax 1b5f0: e8 db 89 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_trunc(io, oid, size); 1b5f5: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 1b5fc: 48 8d 8d f0 fb ff ff lea -0x410(%rbp),%rcx 1b603: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1b60a: 48 89 ce mov %rcx,%rsi 1b60d: 48 89 c7 mov %rax,%rdi 1b610: e8 2b 8a ff ff callq 14040 1b615: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1b61b: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1b622: 79 68 jns 1b68c <_Z7x_truncP18enif_environment_tiPKm+0x25d> { logger.error(MOD_NAME, func_name, "failed to truncate : io=%ld, oid=%s, size=%ld", id, oid, size); 1b624: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1b62b: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1b632: 48 8b 05 df fe 20 00 mov 0x20fedf(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b639: 48 8d bd f0 fb ff ff lea -0x410(%rbp),%rdi 1b640: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b647: 48 89 0c 24 mov %rcx,(%rsp) 1b64b: 49 89 f9 mov %rdi,%r9 1b64e: 49 89 f0 mov %rsi,%r8 1b651: 48 8d 0d 10 82 00 00 lea 0x8210(%rip),%rcx # 23868 <_fini+0x8e0> 1b658: 48 89 c6 mov %rax,%rsi 1b65b: 48 8b 05 2e e9 20 00 mov 0x20e92e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b662: 48 89 c7 mov %rax,%rdi 1b665: b8 00 00 00 00 mov $0x0,%eax 1b66a: e8 b1 87 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1b66f: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1b675: 89 c2 mov %eax,%edx 1b677: f7 da neg %edx 1b679: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b680: 89 d6 mov %edx,%esi 1b682: 48 89 c7 mov %rax,%rdi 1b685: e8 d6 87 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b68a: eb 16 jmp 1b6a2 <_Z7x_truncP18enif_environment_tiPKm+0x273> } return enif_make_atom(env, "ok"); 1b68c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1b693: 48 8d 35 c7 7f 00 00 lea 0x7fc7(%rip),%rsi # 23661 <_fini+0x6d9> 1b69a: 48 89 c7 mov %rax,%rdi 1b69d: e8 ce 76 ff ff callq 12d70 } 1b6a2: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1b6a6: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1b6ad: 00 00 1b6af: 74 05 je 1b6b6 <_Z7x_truncP18enif_environment_tiPKm+0x287> 1b6b1: e8 2a 88 ff ff callq 13ee0 <__stack_chk_fail@plt> 1b6b6: c9 leaveq 1b6b7: c3 retq 000000000001b6b8 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b6b8: 55 push %rbp 1b6b9: 48 89 e5 mov %rsp,%rbp 1b6bc: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 1b6c3: 48 89 bd 68 ff ff ff mov %rdi,-0x98(%rbp) 1b6ca: 89 b5 64 ff ff ff mov %esi,-0x9c(%rbp) 1b6d0: 48 89 95 58 ff ff ff mov %rdx,-0xa8(%rbp) const char * func_name = "x_ioctx_pool_stat()"; 1b6d7: 48 8d 05 b8 81 00 00 lea 0x81b8(%rip),%rax # 23896 <_fini+0x90e> 1b6de: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1b6e2: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1b6e9: 48 8b 08 mov (%rax),%rcx 1b6ec: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1b6f0: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b6f7: 48 89 ce mov %rcx,%rsi 1b6fa: 48 89 c7 mov %rax,%rdi 1b6fd: e8 7e 7e ff ff callq 13580 1b702: 85 c0 test %eax,%eax 1b704: 0f 94 c0 sete %al 1b707: 84 c0 test %al,%al 1b709: 74 3d je 1b748 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x90> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1b70b: 48 8b 05 06 fe 20 00 mov 0x20fe06(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b712: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1b716: 48 8d 0d bd 7e 00 00 lea 0x7ebd(%rip),%rcx # 235da <_fini+0x652> 1b71d: 48 89 c6 mov %rax,%rsi 1b720: 48 8b 05 69 e8 20 00 mov 0x20e869(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b727: 48 89 c7 mov %rax,%rdi 1b72a: b8 00 00 00 00 mov $0x0,%eax 1b72f: e8 ec 86 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b734: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b73b: 48 89 c7 mov %rax,%rdi 1b73e: e8 7d 81 ff ff callq 138c0 1b743: e9 4e 06 00 00 jmpq 1bd96 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6de> } rados_ioctx_t io = map_ioctx_get(id); 1b748: 48 8b 45 d0 mov -0x30(%rbp),%rax 1b74c: 48 89 c7 mov %rax,%rdi 1b74f: e8 4c 76 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1b754: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1b758: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1b75d: 75 44 jne 1b7a3 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0xeb> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1b75f: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1b763: 48 8b 05 ae fd 20 00 mov 0x20fdae(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b76a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1b76e: 49 89 c8 mov %rcx,%r8 1b771: 48 8d 0d fe 7e 00 00 lea 0x7efe(%rip),%rcx # 23676 <_fini+0x6ee> 1b778: 48 89 c6 mov %rax,%rsi 1b77b: 48 8b 05 0e e8 20 00 mov 0x20e80e(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b782: 48 89 c7 mov %rax,%rdi 1b785: b8 00 00 00 00 mov $0x0,%eax 1b78a: e8 91 86 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b78f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b796: 48 89 c7 mov %rax,%rdi 1b799: e8 22 81 ff ff callq 138c0 1b79e: e9 f3 05 00 00 jmpq 1bd96 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6de> } rados_pool_stat_t stat; int err = rados_ioctx_pool_stat(io, &stat); 1b7a3: 48 8d 95 70 ff ff ff lea -0x90(%rbp),%rdx 1b7aa: 48 8b 45 e0 mov -0x20(%rbp),%rax 1b7ae: 48 89 d6 mov %rdx,%rsi 1b7b1: 48 89 c7 mov %rax,%rdi 1b7b4: e8 b7 87 ff ff callq 13f70 1b7b9: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 1b7bc: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1b7c0: 79 5f jns 1b821 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x169> { logger.error(MOD_NAME, func_name, "unable to read pool stat for %ld: %s", id, strerror(-err)); 1b7c2: 8b 45 fc mov -0x4(%rbp),%eax 1b7c5: f7 d8 neg %eax 1b7c7: 89 c7 mov %eax,%edi 1b7c9: e8 a2 81 ff ff callq 13970 1b7ce: 48 89 c1 mov %rax,%rcx 1b7d1: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1b7d5: 48 8b 05 3c fd 20 00 mov 0x20fd3c(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1b7dc: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1b7e0: 49 89 c9 mov %rcx,%r9 1b7e3: 49 89 f0 mov %rsi,%r8 1b7e6: 48 8d 0d c3 80 00 00 lea 0x80c3(%rip),%rcx # 238b0 <_fini+0x928> 1b7ed: 48 89 c6 mov %rax,%rsi 1b7f0: 48 8b 05 99 e7 20 00 mov 0x20e799(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1b7f7: 48 89 c7 mov %rax,%rdi 1b7fa: b8 00 00 00 00 mov $0x0,%eax 1b7ff: e8 1c 86 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1b804: 8b 45 fc mov -0x4(%rbp),%eax 1b807: 89 c2 mov %eax,%edx 1b809: f7 da neg %edx 1b80b: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b812: 89 d6 mov %edx,%esi 1b814: 48 89 c7 mov %rax,%rdi 1b817: e8 44 86 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b81c: e9 75 05 00 00 jmpq 1bd96 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6de> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1b821: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b828: be 00 00 00 00 mov $0x0,%esi 1b82d: 48 89 c7 mov %rax,%rdi 1b830: b8 00 00 00 00 mov $0x0,%eax 1b835: e8 f6 82 ff ff callq 13b30 1b83a: 48 89 45 e8 mov %rax,-0x18(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, stat.num_wr_kb); 1b83e: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1b842: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b849: 48 89 d6 mov %rdx,%rsi 1b84c: 48 89 c7 mov %rax,%rdi 1b84f: e8 fc 82 ff ff callq 13b50 1b854: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_wr_kb"), t), term_list); 1b858: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b85f: 48 8d 35 6f 80 00 00 lea 0x806f(%rip),%rsi # 238d5 <_fini+0x94d> 1b866: 48 89 c7 mov %rax,%rdi 1b869: e8 02 75 ff ff callq 12d70 1b86e: 48 89 c2 mov %rax,%rdx 1b871: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b875: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b87c: be 02 00 00 00 mov $0x2,%esi 1b881: 48 89 c7 mov %rax,%rdi 1b884: b8 00 00 00 00 mov $0x0,%eax 1b889: e8 b2 89 ff ff callq 14240 1b88e: 48 89 c1 mov %rax,%rcx 1b891: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b895: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b89c: 48 89 ce mov %rcx,%rsi 1b89f: 48 89 c7 mov %rax,%rdi 1b8a2: e8 b9 7c ff ff callq 13560 1b8a7: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_wr); 1b8ab: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1b8af: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b8b6: 48 89 d6 mov %rdx,%rsi 1b8b9: 48 89 c7 mov %rax,%rdi 1b8bc: e8 8f 82 ff ff callq 13b50 1b8c1: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_wr"), t), term_list); 1b8c5: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b8cc: 48 8d 35 0c 80 00 00 lea 0x800c(%rip),%rsi # 238df <_fini+0x957> 1b8d3: 48 89 c7 mov %rax,%rdi 1b8d6: e8 95 74 ff ff callq 12d70 1b8db: 48 89 c2 mov %rax,%rdx 1b8de: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b8e2: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b8e9: be 02 00 00 00 mov $0x2,%esi 1b8ee: 48 89 c7 mov %rax,%rdi 1b8f1: b8 00 00 00 00 mov $0x0,%eax 1b8f6: e8 45 89 ff ff callq 14240 1b8fb: 48 89 c1 mov %rax,%rcx 1b8fe: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b902: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b909: 48 89 ce mov %rcx,%rsi 1b90c: 48 89 c7 mov %rax,%rdi 1b90f: e8 4c 7c ff ff callq 13560 1b914: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_rd_kb); 1b918: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1b91c: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b923: 48 89 d6 mov %rdx,%rsi 1b926: 48 89 c7 mov %rax,%rdi 1b929: e8 22 82 ff ff callq 13b50 1b92e: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_rd_kb"), t), term_list); 1b932: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b939: 48 8d 35 a6 7f 00 00 lea 0x7fa6(%rip),%rsi # 238e6 <_fini+0x95e> 1b940: 48 89 c7 mov %rax,%rdi 1b943: e8 28 74 ff ff callq 12d70 1b948: 48 89 c2 mov %rax,%rdx 1b94b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b94f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b956: be 02 00 00 00 mov $0x2,%esi 1b95b: 48 89 c7 mov %rax,%rdi 1b95e: b8 00 00 00 00 mov $0x0,%eax 1b963: e8 d8 88 ff ff callq 14240 1b968: 48 89 c1 mov %rax,%rcx 1b96b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b96f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b976: 48 89 ce mov %rcx,%rsi 1b979: 48 89 c7 mov %rax,%rdi 1b97c: e8 df 7b ff ff callq 13560 1b981: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_rd); 1b985: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1b989: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b990: 48 89 d6 mov %rdx,%rsi 1b993: 48 89 c7 mov %rax,%rdi 1b996: e8 b5 81 ff ff callq 13b50 1b99b: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_rd"), t), term_list); 1b99f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b9a6: 48 8d 35 43 7f 00 00 lea 0x7f43(%rip),%rsi # 238f0 <_fini+0x968> 1b9ad: 48 89 c7 mov %rax,%rdi 1b9b0: e8 bb 73 ff ff callq 12d70 1b9b5: 48 89 c2 mov %rax,%rdx 1b9b8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b9bc: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b9c3: be 02 00 00 00 mov $0x2,%esi 1b9c8: 48 89 c7 mov %rax,%rdi 1b9cb: b8 00 00 00 00 mov $0x0,%eax 1b9d0: e8 6b 88 ff ff callq 14240 1b9d5: 48 89 c1 mov %rax,%rcx 1b9d8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b9dc: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b9e3: 48 89 ce mov %rcx,%rsi 1b9e6: 48 89 c7 mov %rax,%rdi 1b9e9: e8 72 7b ff ff callq 13560 1b9ee: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_degraded); 1b9f2: 48 8b 55 a8 mov -0x58(%rbp),%rdx 1b9f6: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b9fd: 48 89 d6 mov %rdx,%rsi 1ba00: 48 89 c7 mov %rax,%rdi 1ba03: e8 48 81 ff ff callq 13b50 1ba08: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_objects_degraded"), t), term_list); 1ba0c: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba13: 48 8d 35 dd 7e 00 00 lea 0x7edd(%rip),%rsi # 238f7 <_fini+0x96f> 1ba1a: 48 89 c7 mov %rax,%rdi 1ba1d: e8 4e 73 ff ff callq 12d70 1ba22: 48 89 c2 mov %rax,%rdx 1ba25: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1ba29: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba30: be 02 00 00 00 mov $0x2,%esi 1ba35: 48 89 c7 mov %rax,%rdi 1ba38: b8 00 00 00 00 mov $0x0,%eax 1ba3d: e8 fe 87 ff ff callq 14240 1ba42: 48 89 c1 mov %rax,%rcx 1ba45: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1ba49: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba50: 48 89 ce mov %rcx,%rsi 1ba53: 48 89 c7 mov %rax,%rdi 1ba56: e8 05 7b ff ff callq 13560 1ba5b: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_unfound); 1ba5f: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1ba63: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba6a: 48 89 d6 mov %rdx,%rsi 1ba6d: 48 89 c7 mov %rax,%rdi 1ba70: e8 db 80 ff ff callq 13b50 1ba75: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_objects_unfound"), t), term_list); 1ba79: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba80: 48 8d 35 85 7e 00 00 lea 0x7e85(%rip),%rsi # 2390c <_fini+0x984> 1ba87: 48 89 c7 mov %rax,%rdi 1ba8a: e8 e1 72 ff ff callq 12d70 1ba8f: 48 89 c2 mov %rax,%rdx 1ba92: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1ba96: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ba9d: be 02 00 00 00 mov $0x2,%esi 1baa2: 48 89 c7 mov %rax,%rdi 1baa5: b8 00 00 00 00 mov $0x0,%eax 1baaa: e8 91 87 ff ff callq 14240 1baaf: 48 89 c1 mov %rax,%rcx 1bab2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bab6: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1babd: 48 89 ce mov %rcx,%rsi 1bac0: 48 89 c7 mov %rax,%rdi 1bac3: e8 98 7a ff ff callq 13560 1bac8: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_missing_on_primary); 1bacc: 48 8b 55 98 mov -0x68(%rbp),%rdx 1bad0: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bad7: 48 89 d6 mov %rdx,%rsi 1bada: 48 89 c7 mov %rax,%rdi 1badd: e8 6e 80 ff ff callq 13b50 1bae2: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_objects_missing_on_primary"), t), term_list); 1bae6: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1baed: 48 8d 35 2c 7e 00 00 lea 0x7e2c(%rip),%rsi # 23920 <_fini+0x998> 1baf4: 48 89 c7 mov %rax,%rdi 1baf7: e8 74 72 ff ff callq 12d70 1bafc: 48 89 c2 mov %rax,%rdx 1baff: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bb03: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb0a: be 02 00 00 00 mov $0x2,%esi 1bb0f: 48 89 c7 mov %rax,%rdi 1bb12: b8 00 00 00 00 mov $0x0,%eax 1bb17: e8 24 87 ff ff callq 14240 1bb1c: 48 89 c1 mov %rax,%rcx 1bb1f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bb23: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb2a: 48 89 ce mov %rcx,%rsi 1bb2d: 48 89 c7 mov %rax,%rdi 1bb30: e8 2b 7a ff ff callq 13560 1bb35: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_object_copies); 1bb39: 48 8b 55 90 mov -0x70(%rbp),%rdx 1bb3d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb44: 48 89 d6 mov %rdx,%rsi 1bb47: 48 89 c7 mov %rax,%rdi 1bb4a: e8 01 80 ff ff callq 13b50 1bb4f: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_object_copies"), t), term_list); 1bb53: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb5a: 48 8d 35 de 7d 00 00 lea 0x7dde(%rip),%rsi # 2393f <_fini+0x9b7> 1bb61: 48 89 c7 mov %rax,%rdi 1bb64: e8 07 72 ff ff callq 12d70 1bb69: 48 89 c2 mov %rax,%rdx 1bb6c: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bb70: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb77: be 02 00 00 00 mov $0x2,%esi 1bb7c: 48 89 c7 mov %rax,%rdi 1bb7f: b8 00 00 00 00 mov $0x0,%eax 1bb84: e8 b7 86 ff ff callq 14240 1bb89: 48 89 c1 mov %rax,%rcx 1bb8c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bb90: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bb97: 48 89 ce mov %rcx,%rsi 1bb9a: 48 89 c7 mov %rax,%rdi 1bb9d: e8 be 79 ff ff callq 13560 1bba2: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_object_clones); 1bba6: 48 8b 55 88 mov -0x78(%rbp),%rdx 1bbaa: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bbb1: 48 89 d6 mov %rdx,%rsi 1bbb4: 48 89 c7 mov %rax,%rdi 1bbb7: e8 94 7f ff ff callq 13b50 1bbbc: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_object_clones"), t), term_list); 1bbc0: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bbc7: 48 8d 35 83 7d 00 00 lea 0x7d83(%rip),%rsi # 23951 <_fini+0x9c9> 1bbce: 48 89 c7 mov %rax,%rdi 1bbd1: e8 9a 71 ff ff callq 12d70 1bbd6: 48 89 c2 mov %rax,%rdx 1bbd9: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bbdd: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bbe4: be 02 00 00 00 mov $0x2,%esi 1bbe9: 48 89 c7 mov %rax,%rdi 1bbec: b8 00 00 00 00 mov $0x0,%eax 1bbf1: e8 4a 86 ff ff callq 14240 1bbf6: 48 89 c1 mov %rax,%rcx 1bbf9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bbfd: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc04: 48 89 ce mov %rcx,%rsi 1bc07: 48 89 c7 mov %rax,%rdi 1bc0a: e8 51 79 ff ff callq 13560 1bc0f: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects); 1bc13: 48 8b 55 80 mov -0x80(%rbp),%rdx 1bc17: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc1e: 48 89 d6 mov %rdx,%rsi 1bc21: 48 89 c7 mov %rax,%rdi 1bc24: e8 27 7f ff ff callq 13b50 1bc29: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_objects"), t), term_list); 1bc2d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc34: 48 8d 35 28 7d 00 00 lea 0x7d28(%rip),%rsi # 23963 <_fini+0x9db> 1bc3b: 48 89 c7 mov %rax,%rdi 1bc3e: e8 2d 71 ff ff callq 12d70 1bc43: 48 89 c2 mov %rax,%rdx 1bc46: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bc4a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc51: be 02 00 00 00 mov $0x2,%esi 1bc56: 48 89 c7 mov %rax,%rdi 1bc59: b8 00 00 00 00 mov $0x0,%eax 1bc5e: e8 dd 85 ff ff callq 14240 1bc63: 48 89 c1 mov %rax,%rcx 1bc66: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bc6a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc71: 48 89 ce mov %rcx,%rsi 1bc74: 48 89 c7 mov %rax,%rdi 1bc77: e8 e4 78 ff ff callq 13560 1bc7c: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_kb); 1bc80: 48 8b 95 78 ff ff ff mov -0x88(%rbp),%rdx 1bc87: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bc8e: 48 89 d6 mov %rdx,%rsi 1bc91: 48 89 c7 mov %rax,%rdi 1bc94: e8 b7 7e ff ff callq 13b50 1bc99: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_kb"), t), term_list); 1bc9d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bca4: 48 8d 35 c4 7c 00 00 lea 0x7cc4(%rip),%rsi # 2396f <_fini+0x9e7> 1bcab: 48 89 c7 mov %rax,%rdi 1bcae: e8 bd 70 ff ff callq 12d70 1bcb3: 48 89 c2 mov %rax,%rdx 1bcb6: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bcba: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bcc1: be 02 00 00 00 mov $0x2,%esi 1bcc6: 48 89 c7 mov %rax,%rdi 1bcc9: b8 00 00 00 00 mov $0x0,%eax 1bcce: e8 6d 85 ff ff callq 14240 1bcd3: 48 89 c1 mov %rax,%rcx 1bcd6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bcda: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bce1: 48 89 ce mov %rcx,%rsi 1bce4: 48 89 c7 mov %rax,%rdi 1bce7: e8 74 78 ff ff callq 13560 1bcec: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_bytes); 1bcf0: 48 8b 95 70 ff ff ff mov -0x90(%rbp),%rdx 1bcf7: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bcfe: 48 89 d6 mov %rdx,%rsi 1bd01: 48 89 c7 mov %rax,%rdi 1bd04: e8 47 7e ff ff callq 13b50 1bd09: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "num_bytes"), t), term_list); 1bd0d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bd14: 48 8d 35 5b 7c 00 00 lea 0x7c5b(%rip),%rsi # 23976 <_fini+0x9ee> 1bd1b: 48 89 c7 mov %rax,%rdi 1bd1e: e8 4d 70 ff ff callq 12d70 1bd23: 48 89 c2 mov %rax,%rdx 1bd26: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bd2a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bd31: be 02 00 00 00 mov $0x2,%esi 1bd36: 48 89 c7 mov %rax,%rdi 1bd39: b8 00 00 00 00 mov $0x0,%eax 1bd3e: e8 fd 84 ff ff callq 14240 1bd43: 48 89 c1 mov %rax,%rcx 1bd46: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1bd4a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bd51: 48 89 ce mov %rcx,%rsi 1bd54: 48 89 c7 mov %rax,%rdi 1bd57: e8 04 78 ff ff callq 13560 1bd5c: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 1bd60: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bd67: 48 8d 35 f3 78 00 00 lea 0x78f3(%rip),%rsi # 23661 <_fini+0x6d9> 1bd6e: 48 89 c7 mov %rax,%rdi 1bd71: e8 fa 6f ff ff callq 12d70 1bd76: 48 89 c2 mov %rax,%rdx 1bd79: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1bd7d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1bd84: be 02 00 00 00 mov $0x2,%esi 1bd89: 48 89 c7 mov %rax,%rdi 1bd8c: b8 00 00 00 00 mov $0x0,%eax 1bd91: e8 aa 84 ff ff callq 14240 enif_make_atom(env, "ok"), term_list); } 1bd96: c9 leaveq 1bd97: c3 retq 000000000001bd98 <_Z6x_statP18enif_environment_tiPKm>: ERL_NIF_TERM x_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1bd98: 55 push %rbp 1bd99: 48 89 e5 mov %rsp,%rbp 1bd9c: 48 81 ec 70 04 00 00 sub $0x470,%rsp 1bda3: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 1bdaa: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 1bdb0: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 1bdb7: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1bdbe: 00 00 1bdc0: 48 89 45 f8 mov %rax,-0x8(%rbp) 1bdc4: 31 c0 xor %eax,%eax const char * func_name = "x_stat()"; 1bdc6: 48 8d 05 b3 7b 00 00 lea 0x7bb3(%rip),%rax # 23980 <_fini+0x9f8> 1bdcd: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); 1bdd4: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1bddb: ba 00 04 00 00 mov $0x400,%edx 1bde0: be 00 00 00 00 mov $0x0,%esi 1bde5: 48 89 c7 mov %rax,%rdi 1bde8: e8 13 6c ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1bded: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1bdf4: 48 8b 08 mov (%rax),%rcx 1bdf7: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1bdfe: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1be05: 48 89 ce mov %rcx,%rsi 1be08: 48 89 c7 mov %rax,%rdi 1be0b: e8 70 77 ff ff callq 13580 1be10: 85 c0 test %eax,%eax 1be12: 74 33 je 1be47 <_Z6x_statP18enif_environment_tiPKm+0xaf> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1be14: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1be1b: 48 83 c0 08 add $0x8,%rax 1be1f: 48 8b 30 mov (%rax),%rsi 1be22: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1be29: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1be30: 41 b8 01 00 00 00 mov $0x1,%r8d 1be36: b9 00 04 00 00 mov $0x400,%ecx 1be3b: 48 89 c7 mov %rax,%rdi 1be3e: e8 ed 83 ff ff callq 14230 const char * func_name = "x_stat()"; uint64_t id; char oid[MAX_NAME_LEN]; memset(oid, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1be43: 85 c0 test %eax,%eax 1be45: 75 07 jne 1be4e <_Z6x_statP18enif_environment_tiPKm+0xb6> 1be47: b8 01 00 00 00 mov $0x1,%eax 1be4c: eb 05 jmp 1be53 <_Z6x_statP18enif_environment_tiPKm+0xbb> 1be4e: b8 00 00 00 00 mov $0x0,%eax 1be53: 84 c0 test %al,%al 1be55: 74 40 je 1be97 <_Z6x_statP18enif_environment_tiPKm+0xff> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) { logger.error(MOD_NAME, func_name, "enif get params failed"); 1be57: 48 8b 05 ba f6 20 00 mov 0x20f6ba(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1be5e: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1be65: 48 8d 0d 6e 77 00 00 lea 0x776e(%rip),%rcx # 235da <_fini+0x652> 1be6c: 48 89 c6 mov %rax,%rsi 1be6f: 48 8b 05 1a e1 20 00 mov 0x20e11a(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1be76: 48 89 c7 mov %rax,%rdi 1be79: b8 00 00 00 00 mov $0x0,%eax 1be7e: e8 9d 7f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1be83: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1be8a: 48 89 c7 mov %rax,%rdi 1be8d: e8 2e 7a ff ff callq 138c0 1be92: e9 9c 02 00 00 jmpq 1c133 <_Z6x_statP18enif_environment_tiPKm+0x39b> } rados_ioctx_t io = map_ioctx_get(id); 1be97: 48 8b 85 b0 fb ff ff mov -0x450(%rbp),%rax 1be9e: 48 89 c7 mov %rax,%rdi 1bea1: e8 fa 6e ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1bea6: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1bead: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1beb4: 00 1beb5: 75 4a jne 1bf01 <_Z6x_statP18enif_environment_tiPKm+0x169> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1beb7: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1bebe: 48 8b 05 53 f6 20 00 mov 0x20f653(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1bec5: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1becc: 49 89 c8 mov %rcx,%r8 1becf: 48 8d 0d a0 77 00 00 lea 0x77a0(%rip),%rcx # 23676 <_fini+0x6ee> 1bed6: 48 89 c6 mov %rax,%rsi 1bed9: 48 8b 05 b0 e0 20 00 mov 0x20e0b0(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1bee0: 48 89 c7 mov %rax,%rdi 1bee3: b8 00 00 00 00 mov $0x0,%eax 1bee8: e8 33 7f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1beed: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1bef4: 48 89 c7 mov %rax,%rdi 1bef7: e8 c4 79 ff ff callq 138c0 1befc: e9 32 02 00 00 jmpq 1c133 <_Z6x_statP18enif_environment_tiPKm+0x39b> } logger.debug(MOD_NAME, func_name, "ioctx=%ld, oid=%s", id, oid); 1bf01: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1bf08: 48 8b 05 09 f6 20 00 mov 0x20f609(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1bf0f: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1bf16: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1bf1d: 49 89 f1 mov %rsi,%r9 1bf20: 49 89 c8 mov %rcx,%r8 1bf23: 48 8d 0d 5f 7a 00 00 lea 0x7a5f(%rip),%rcx # 23989 <_fini+0xa01> 1bf2a: 48 89 c6 mov %rax,%rsi 1bf2d: 48 8b 05 5c e0 20 00 mov 0x20e05c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1bf34: 48 89 c7 mov %rax,%rdi 1bf37: b8 00 00 00 00 mov $0x0,%eax 1bf3c: e8 8f 80 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t size; time_t mtime; int err = rados_stat(io, oid, &size, &mtime); 1bf41: 48 8d 8d c0 fb ff ff lea -0x440(%rbp),%rcx 1bf48: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1bf4f: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1bf56: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1bf5d: 48 89 c7 mov %rax,%rdi 1bf60: e8 9b 7e ff ff callq 13e00 1bf65: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1bf6b: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1bf72: 79 6b jns 1bfdf <_Z6x_statP18enif_environment_tiPKm+0x247> { logger.error(MOD_NAME, func_name, "unable to read object stat for %s: %s", oid, strerror(-err)); 1bf74: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1bf7a: f7 d8 neg %eax 1bf7c: 89 c7 mov %eax,%edi 1bf7e: e8 ed 79 ff ff callq 13970 1bf83: 48 89 c1 mov %rax,%rcx 1bf86: 48 8b 05 8b f5 20 00 mov 0x20f58b(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1bf8d: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1bf94: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1bf9b: 49 89 c9 mov %rcx,%r9 1bf9e: 49 89 f0 mov %rsi,%r8 1bfa1: 48 8d 0d f8 79 00 00 lea 0x79f8(%rip),%rcx # 239a0 <_fini+0xa18> 1bfa8: 48 89 c6 mov %rax,%rsi 1bfab: 48 8b 05 de df 20 00 mov 0x20dfde(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1bfb2: 48 89 c7 mov %rax,%rdi 1bfb5: b8 00 00 00 00 mov $0x0,%eax 1bfba: e8 61 7e ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1bfbf: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1bfc5: 89 c2 mov %eax,%edx 1bfc7: f7 da neg %edx 1bfc9: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1bfd0: 89 d6 mov %edx,%esi 1bfd2: 48 89 c7 mov %rax,%rdi 1bfd5: e8 86 7e ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1bfda: e9 54 01 00 00 jmpq 1c133 <_Z6x_statP18enif_environment_tiPKm+0x39b> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1bfdf: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1bfe6: be 00 00 00 00 mov $0x0,%esi 1bfeb: 48 89 c7 mov %rax,%rdi 1bfee: b8 00 00 00 00 mov $0x0,%eax 1bff3: e8 38 7b ff ff callq 13b30 1bff8: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, mtime); 1bfff: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1c006: 48 89 c2 mov %rax,%rdx 1c009: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c010: 48 89 d6 mov %rdx,%rsi 1c013: 48 89 c7 mov %rax,%rdi 1c016: e8 35 7b ff ff callq 13b50 1c01b: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "mtime"), t), term_list); 1c022: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c029: 48 8d 35 96 79 00 00 lea 0x7996(%rip),%rsi # 239c6 <_fini+0xa3e> 1c030: 48 89 c7 mov %rax,%rdi 1c033: e8 38 6d ff ff callq 12d70 1c038: 48 89 c2 mov %rax,%rdx 1c03b: 48 8b 8d e0 fb ff ff mov -0x420(%rbp),%rcx 1c042: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c049: be 02 00 00 00 mov $0x2,%esi 1c04e: 48 89 c7 mov %rax,%rdi 1c051: b8 00 00 00 00 mov $0x0,%eax 1c056: e8 e5 81 ff ff callq 14240 1c05b: 48 89 c1 mov %rax,%rcx 1c05e: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1c065: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c06c: 48 89 ce mov %rcx,%rsi 1c06f: 48 89 c7 mov %rax,%rdi 1c072: e8 e9 74 ff ff callq 13560 1c077: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) t = enif_make_uint64(env, size); 1c07e: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1c085: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c08c: 48 89 d6 mov %rdx,%rsi 1c08f: 48 89 c7 mov %rax,%rdi 1c092: e8 b9 7a ff ff callq 13b50 1c097: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "size"), t), term_list); 1c09e: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c0a5: 48 8d 35 20 79 00 00 lea 0x7920(%rip),%rsi # 239cc <_fini+0xa44> 1c0ac: 48 89 c7 mov %rax,%rdi 1c0af: e8 bc 6c ff ff callq 12d70 1c0b4: 48 89 c2 mov %rax,%rdx 1c0b7: 48 8b 8d e0 fb ff ff mov -0x420(%rbp),%rcx 1c0be: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c0c5: be 02 00 00 00 mov $0x2,%esi 1c0ca: 48 89 c7 mov %rax,%rdi 1c0cd: b8 00 00 00 00 mov $0x0,%eax 1c0d2: e8 69 81 ff ff callq 14240 1c0d7: 48 89 c1 mov %rax,%rcx 1c0da: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1c0e1: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c0e8: 48 89 ce mov %rcx,%rsi 1c0eb: 48 89 c7 mov %rax,%rdi 1c0ee: e8 6d 74 ff ff callq 13560 1c0f3: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) return enif_make_tuple2(env, 1c0fa: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c101: 48 8d 35 59 75 00 00 lea 0x7559(%rip),%rsi # 23661 <_fini+0x6d9> 1c108: 48 89 c7 mov %rax,%rdi 1c10b: e8 60 6c ff ff callq 12d70 1c110: 48 89 c2 mov %rax,%rdx 1c113: 48 8b 8d d8 fb ff ff mov -0x428(%rbp),%rcx 1c11a: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c121: be 02 00 00 00 mov $0x2,%esi 1c126: 48 89 c7 mov %rax,%rdi 1c129: b8 00 00 00 00 mov $0x0,%eax 1c12e: e8 0d 81 ff ff callq 14240 enif_make_atom(env, "ok"), term_list); } 1c133: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1c137: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c13e: 00 00 1c140: 74 05 je 1c147 <_Z6x_statP18enif_environment_tiPKm+0x3af> 1c142: e8 99 7d ff ff callq 13ee0 <__stack_chk_fail@plt> 1c147: c9 leaveq 1c148: c3 retq 000000000001c149 <_Z19x_objects_list_openP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_open(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c149: 55 push %rbp 1c14a: 48 89 e5 mov %rsp,%rbp 1c14d: 53 push %rbx 1c14e: 48 83 ec 58 sub $0x58,%rsp 1c152: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1c156: 89 75 b4 mov %esi,-0x4c(%rbp) 1c159: 48 89 55 a8 mov %rdx,-0x58(%rbp) const char * func_name = "x_objects_list_open()"; 1c15d: 48 8d 05 6d 78 00 00 lea 0x786d(%rip),%rax # 239d1 <_fini+0xa49> 1c164: 48 89 45 d0 mov %rax,-0x30(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1c168: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c16c: 48 8b 08 mov (%rax),%rcx 1c16f: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1c173: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c177: 48 89 ce mov %rcx,%rsi 1c17a: 48 89 c7 mov %rax,%rdi 1c17d: e8 fe 73 ff ff callq 13580 1c182: 85 c0 test %eax,%eax 1c184: 0f 94 c0 sete %al 1c187: 84 c0 test %al,%al 1c189: 74 3a je 1c1c5 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1c18b: 48 8b 05 86 f3 20 00 mov 0x20f386(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c192: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1c196: 48 8d 0d 3d 74 00 00 lea 0x743d(%rip),%rcx # 235da <_fini+0x652> 1c19d: 48 89 c6 mov %rax,%rsi 1c1a0: 48 8b 05 e9 dd 20 00 mov 0x20dde9(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c1a7: 48 89 c7 mov %rax,%rdi 1c1aa: b8 00 00 00 00 mov $0x0,%eax 1c1af: e8 6c 7c ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c1b4: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c1b8: 48 89 c7 mov %rax,%rdi 1c1bb: e8 00 77 ff ff callq 138c0 1c1c0: e9 ec 00 00 00 jmpq 1c2b1 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x168> } rados_ioctx_t io = map_ioctx_get(id); 1c1c5: 48 8b 45 c0 mov -0x40(%rbp),%rax 1c1c9: 48 89 c7 mov %rax,%rdi 1c1cc: e8 cf 6b ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1c1d1: 48 89 45 d8 mov %rax,-0x28(%rbp) if (io == NULL) 1c1d5: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 1c1da: 75 41 jne 1c21d <_Z19x_objects_list_openP18enif_environment_tiPKm+0xd4> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1c1dc: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1c1e0: 48 8b 05 31 f3 20 00 mov 0x20f331(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c1e7: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1c1eb: 49 89 c8 mov %rcx,%r8 1c1ee: 48 8d 0d 81 74 00 00 lea 0x7481(%rip),%rcx # 23676 <_fini+0x6ee> 1c1f5: 48 89 c6 mov %rax,%rsi 1c1f8: 48 8b 05 91 dd 20 00 mov 0x20dd91(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c1ff: 48 89 c7 mov %rax,%rdi 1c202: b8 00 00 00 00 mov $0x0,%eax 1c207: e8 14 7c ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c20c: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c210: 48 89 c7 mov %rax,%rdi 1c213: e8 a8 76 ff ff callq 138c0 1c218: e9 94 00 00 00 jmpq 1c2b1 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x168> } rados_list_ctx_t ctx; int err = rados_objects_list_open(io, &ctx); 1c21d: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1c221: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c225: 48 89 d6 mov %rdx,%rsi 1c228: 48 89 c7 mov %rax,%rdi 1c22b: e8 20 7a ff ff callq 13c50 1c230: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1c233: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1c237: 79 17 jns 1c250 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x107> { return make_error_tuple(env, -err); 1c239: 8b 45 ec mov -0x14(%rbp),%eax 1c23c: 89 c2 mov %eax,%edx 1c23e: f7 da neg %edx 1c240: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c244: 89 d6 mov %edx,%esi 1c246: 48 89 c7 mov %rax,%rdi 1c249: e8 12 7c ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c24e: eb 61 jmp 1c2b1 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x168> } uint64_t listid = new_id(); 1c250: e8 5b 7b ff ff callq 13db0 <_Z6new_idv@plt> 1c255: 48 89 45 e0 mov %rax,-0x20(%rbp) map_list_ctx_add(listid, ctx); 1c259: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1c25d: 48 8b 45 e0 mov -0x20(%rbp),%rax 1c261: 48 89 d6 mov %rdx,%rsi 1c264: 48 89 c7 mov %rax,%rdi 1c267: e8 64 76 ff ff callq 138d0 <_Z16map_list_ctx_addmPv@plt> return enif_make_tuple2(env, 1c26c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1c270: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c274: 48 89 d6 mov %rdx,%rsi 1c277: 48 89 c7 mov %rax,%rdi 1c27a: e8 d1 78 ff ff callq 13b50 1c27f: 48 89 c3 mov %rax,%rbx 1c282: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c286: 48 8d 35 d4 73 00 00 lea 0x73d4(%rip),%rsi # 23661 <_fini+0x6d9> 1c28d: 48 89 c7 mov %rax,%rdi 1c290: e8 db 6a ff ff callq 12d70 1c295: 48 89 c2 mov %rax,%rdx 1c298: 48 8b 45 b8 mov -0x48(%rbp),%rax 1c29c: 48 89 d9 mov %rbx,%rcx 1c29f: be 02 00 00 00 mov $0x2,%esi 1c2a4: 48 89 c7 mov %rax,%rdi 1c2a7: b8 00 00 00 00 mov $0x0,%eax 1c2ac: e8 8f 7f ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, listid)); } 1c2b1: 48 83 c4 58 add $0x58,%rsp 1c2b5: 5b pop %rbx 1c2b6: 5d pop %rbp 1c2b7: c3 retq 000000000001c2b8 <_Z19x_objects_list_nextP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_next(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c2b8: 55 push %rbp 1c2b9: 48 89 e5 mov %rsp,%rbp 1c2bc: 48 83 ec 70 sub $0x70,%rsp 1c2c0: 48 89 7d a8 mov %rdi,-0x58(%rbp) 1c2c4: 89 75 a4 mov %esi,-0x5c(%rbp) 1c2c7: 48 89 55 98 mov %rdx,-0x68(%rbp) const char * func_name = "x_objects_list_next()"; 1c2cb: 48 8d 05 15 77 00 00 lea 0x7715(%rip),%rax # 239e7 <_fini+0xa5f> 1c2d2: 48 89 45 e0 mov %rax,-0x20(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1c2d6: 48 8b 45 98 mov -0x68(%rbp),%rax 1c2da: 48 8b 08 mov (%rax),%rcx 1c2dd: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1c2e1: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c2e5: 48 89 ce mov %rcx,%rsi 1c2e8: 48 89 c7 mov %rax,%rdi 1c2eb: e8 90 72 ff ff callq 13580 1c2f0: 85 c0 test %eax,%eax 1c2f2: 0f 94 c0 sete %al 1c2f5: 84 c0 test %al,%al 1c2f7: 74 3a je 1c333 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1c2f9: 48 8b 05 18 f2 20 00 mov 0x20f218(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c300: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1c304: 48 8d 0d cf 72 00 00 lea 0x72cf(%rip),%rcx # 235da <_fini+0x652> 1c30b: 48 89 c6 mov %rax,%rsi 1c30e: 48 8b 05 7b dc 20 00 mov 0x20dc7b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c315: 48 89 c7 mov %rax,%rdi 1c318: b8 00 00 00 00 mov $0x0,%eax 1c31d: e8 fe 7a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c322: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c326: 48 89 c7 mov %rax,%rdi 1c329: e8 92 75 ff ff callq 138c0 1c32e: e9 47 02 00 00 jmpq 1c57a <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2c2> } rados_list_ctx_t ctx = map_list_ctx_get(id); 1c333: 48 8b 45 d0 mov -0x30(%rbp),%rax 1c337: 48 89 c7 mov %rax,%rdi 1c33a: e8 11 75 ff ff callq 13850 <_Z16map_list_ctx_getm@plt> 1c33f: 48 89 45 e8 mov %rax,-0x18(%rbp) if (ctx == NULL) 1c343: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 1c348: 75 41 jne 1c38b <_Z19x_objects_list_nextP18enif_environment_tiPKm+0xd3> { logger.error(MOD_NAME, func_name, "ioctx object list : %ld", id); 1c34a: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1c34e: 48 8b 05 c3 f1 20 00 mov 0x20f1c3(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c355: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1c359: 49 89 c8 mov %rcx,%r8 1c35c: 48 8d 0d 9a 76 00 00 lea 0x769a(%rip),%rcx # 239fd <_fini+0xa75> 1c363: 48 89 c6 mov %rax,%rsi 1c366: 48 8b 05 23 dc 20 00 mov 0x20dc23(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c36d: 48 89 c7 mov %rax,%rdi 1c370: b8 00 00 00 00 mov $0x0,%eax 1c375: e8 a6 7a ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c37a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c37e: 48 89 c7 mov %rax,%rdi 1c381: e8 3a 75 ff ff callq 138c0 1c386: e9 ef 01 00 00 jmpq 1c57a <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2c2> } logger.debug(MOD_NAME, func_name, "list id: %ld", id); 1c38b: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1c38f: 48 8b 05 82 f1 20 00 mov 0x20f182(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c396: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1c39a: 49 89 c8 mov %rcx,%r8 1c39d: 48 8d 0d 71 76 00 00 lea 0x7671(%rip),%rcx # 23a15 <_fini+0xa8d> 1c3a4: 48 89 c6 mov %rax,%rsi 1c3a7: 48 8b 05 e2 db 20 00 mov 0x20dbe2(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c3ae: 48 89 c7 mov %rax,%rdi 1c3b1: b8 00 00 00 00 mov $0x0,%eax 1c3b6: e8 15 7c ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> const char * entry[1]; const char * key[1]; int err = rados_objects_list_next(ctx, entry, key); 1c3bb: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1c3bf: 48 8d 4d b0 lea -0x50(%rbp),%rcx 1c3c3: 48 8b 45 e8 mov -0x18(%rbp),%rax 1c3c7: 48 89 ce mov %rcx,%rsi 1c3ca: 48 89 c7 mov %rax,%rdi 1c3cd: e8 ce 80 ff ff callq 144a0 1c3d2: 89 45 fc mov %eax,-0x4(%rbp) if ((err < 0) && (err != -ENOENT)) 1c3d5: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1c3d9: 79 62 jns 1c43d <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x185> 1c3db: 83 7d fc fe cmpl $0xfffffffe,-0x4(%rbp) 1c3df: 74 5c je 1c43d <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x185> { logger.error(MOD_NAME, func_name, "unable to get next object in list for %ld: %s", id, strerror(-err)); 1c3e1: 8b 45 fc mov -0x4(%rbp),%eax 1c3e4: f7 d8 neg %eax 1c3e6: 89 c7 mov %eax,%edi 1c3e8: e8 83 75 ff ff callq 13970 1c3ed: 48 89 c1 mov %rax,%rcx 1c3f0: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1c3f4: 48 8b 05 1d f1 20 00 mov 0x20f11d(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c3fb: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1c3ff: 49 89 c9 mov %rcx,%r9 1c402: 49 89 f0 mov %rsi,%r8 1c405: 48 8d 0d 1c 76 00 00 lea 0x761c(%rip),%rcx # 23a28 <_fini+0xaa0> 1c40c: 48 89 c6 mov %rax,%rsi 1c40f: 48 8b 05 7a db 20 00 mov 0x20db7a(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c416: 48 89 c7 mov %rax,%rdi 1c419: b8 00 00 00 00 mov $0x0,%eax 1c41e: e8 fd 79 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1c423: 8b 45 fc mov -0x4(%rbp),%eax 1c426: 89 c2 mov %eax,%edx 1c428: f7 da neg %edx 1c42a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c42e: 89 d6 mov %edx,%esi 1c430: 48 89 c7 mov %rax,%rdi 1c433: e8 28 7a ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c438: e9 3d 01 00 00 jmpq 1c57a <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2c2> } if (err == -ENOENT) 1c43d: 83 7d fc fe cmpl $0xfffffffe,-0x4(%rbp) 1c441: 75 18 jne 1c45b <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x1a3> { return enif_make_atom(env, "end"); 1c443: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c447: 48 8d 35 08 76 00 00 lea 0x7608(%rip),%rsi # 23a56 <_fini+0xace> 1c44e: 48 89 c7 mov %rax,%rdi 1c451: e8 1a 69 ff ff callq 12d70 1c456: e9 1f 01 00 00 jmpq 1c57a <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2c2> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1c45b: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c45f: be 00 00 00 00 mov $0x0,%esi 1c464: 48 89 c7 mov %rax,%rdi 1c467: b8 00 00 00 00 mov $0x0,%eax 1c46c: e8 bf 76 ff ff callq 13b30 1c471: 48 89 45 d8 mov %rax,-0x28(%rbp) ERL_NIF_TERM t; if (key[0] != NULL) 1c475: 48 8b 45 c0 mov -0x40(%rbp),%rax 1c479: 48 85 c0 test %rax,%rax 1c47c: 74 66 je 1c4e4 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x22c> { t = enif_make_string(env, key[0], ERL_NIF_LATIN1); 1c47e: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1c482: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c486: ba 01 00 00 00 mov $0x1,%edx 1c48b: 48 89 ce mov %rcx,%rsi 1c48e: 48 89 c7 mov %rax,%rdi 1c491: e8 aa 73 ff ff callq 13840 1c496: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "key"), t), term_list); 1c49a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c49e: 48 8d 35 b5 75 00 00 lea 0x75b5(%rip),%rsi # 23a5a <_fini+0xad2> 1c4a5: 48 89 c7 mov %rax,%rdi 1c4a8: e8 c3 68 ff ff callq 12d70 1c4ad: 48 89 c2 mov %rax,%rdx 1c4b0: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1c4b4: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c4b8: be 02 00 00 00 mov $0x2,%esi 1c4bd: 48 89 c7 mov %rax,%rdi 1c4c0: b8 00 00 00 00 mov $0x0,%eax 1c4c5: e8 76 7d ff ff callq 14240 1c4ca: 48 89 c1 mov %rax,%rcx 1c4cd: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1c4d1: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c4d5: 48 89 ce mov %rcx,%rsi 1c4d8: 48 89 c7 mov %rax,%rdi 1c4db: e8 80 70 ff ff callq 13560 1c4e0: 48 89 45 d8 mov %rax,-0x28(%rbp) } t = enif_make_string(env, entry[0], ERL_NIF_LATIN1); 1c4e4: 48 8b 4d b0 mov -0x50(%rbp),%rcx 1c4e8: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c4ec: ba 01 00 00 00 mov $0x1,%edx 1c4f1: 48 89 ce mov %rcx,%rsi 1c4f4: 48 89 c7 mov %rax,%rdi 1c4f7: e8 44 73 ff ff callq 13840 1c4fc: 48 89 45 f0 mov %rax,-0x10(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "entry"), t), term_list); 1c500: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c504: 48 8d 35 53 75 00 00 lea 0x7553(%rip),%rsi # 23a5e <_fini+0xad6> 1c50b: 48 89 c7 mov %rax,%rdi 1c50e: e8 5d 68 ff ff callq 12d70 1c513: 48 89 c2 mov %rax,%rdx 1c516: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1c51a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c51e: be 02 00 00 00 mov $0x2,%esi 1c523: 48 89 c7 mov %rax,%rdi 1c526: b8 00 00 00 00 mov $0x0,%eax 1c52b: e8 10 7d ff ff callq 14240 1c530: 48 89 c1 mov %rax,%rcx 1c533: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1c537: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c53b: 48 89 ce mov %rcx,%rsi 1c53e: 48 89 c7 mov %rax,%rdi 1c541: e8 1a 70 ff ff callq 13560 1c546: 48 89 45 d8 mov %rax,-0x28(%rbp) return enif_make_tuple2(env, 1c54a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c54e: 48 8d 35 0c 71 00 00 lea 0x710c(%rip),%rsi # 23661 <_fini+0x6d9> 1c555: 48 89 c7 mov %rax,%rdi 1c558: e8 13 68 ff ff callq 12d70 1c55d: 48 89 c2 mov %rax,%rdx 1c560: 48 8b 4d d8 mov -0x28(%rbp),%rcx 1c564: 48 8b 45 a8 mov -0x58(%rbp),%rax 1c568: be 02 00 00 00 mov $0x2,%esi 1c56d: 48 89 c7 mov %rax,%rdi 1c570: b8 00 00 00 00 mov $0x0,%eax 1c575: e8 c6 7c ff ff callq 14240 enif_make_atom(env, "ok"), term_list); } 1c57a: c9 leaveq 1c57b: c3 retq 000000000001c57c <_Z20x_objects_list_closeP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_close(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c57c: 55 push %rbp 1c57d: 48 89 e5 mov %rsp,%rbp 1c580: 48 83 ec 40 sub $0x40,%rsp 1c584: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1c588: 89 75 d4 mov %esi,-0x2c(%rbp) 1c58b: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_objects_list_close()"; 1c58f: 48 8d 05 ce 74 00 00 lea 0x74ce(%rip),%rax # 23a64 <_fini+0xadc> 1c596: 48 89 45 f0 mov %rax,-0x10(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1c59a: 48 8b 45 c8 mov -0x38(%rbp),%rax 1c59e: 48 8b 08 mov (%rax),%rcx 1c5a1: 48 8d 55 e8 lea -0x18(%rbp),%rdx 1c5a5: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c5a9: 48 89 ce mov %rcx,%rsi 1c5ac: 48 89 c7 mov %rax,%rdi 1c5af: e8 cc 6f ff ff callq 13580 1c5b4: 85 c0 test %eax,%eax 1c5b6: 0f 94 c0 sete %al 1c5b9: 84 c0 test %al,%al 1c5bb: 74 3a je 1c5f7 <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1c5bd: 48 8b 05 54 ef 20 00 mov 0x20ef54(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c5c4: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1c5c8: 48 8d 0d 0b 70 00 00 lea 0x700b(%rip),%rcx # 235da <_fini+0x652> 1c5cf: 48 89 c6 mov %rax,%rsi 1c5d2: 48 8b 05 b7 d9 20 00 mov 0x20d9b7(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c5d9: 48 89 c7 mov %rax,%rdi 1c5dc: b8 00 00 00 00 mov $0x0,%eax 1c5e1: e8 3a 78 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c5e6: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c5ea: 48 89 c7 mov %rax,%rdi 1c5ed: e8 ce 72 ff ff callq 138c0 1c5f2: e9 b0 00 00 00 jmpq 1c6a7 <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x12b> } rados_list_ctx_t ctx = map_list_ctx_get(id); 1c5f7: 48 8b 45 e8 mov -0x18(%rbp),%rax 1c5fb: 48 89 c7 mov %rax,%rdi 1c5fe: e8 4d 72 ff ff callq 13850 <_Z16map_list_ctx_getm@plt> 1c603: 48 89 45 f8 mov %rax,-0x8(%rbp) if (ctx == NULL) 1c607: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 1c60c: 75 3e jne 1c64c <_Z20x_objects_list_closeP18enif_environment_tiPKm+0xd0> { logger.error(MOD_NAME, func_name, "ioctx object list : %ld", id); 1c60e: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1c612: 48 8b 05 ff ee 20 00 mov 0x20eeff(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c619: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1c61d: 49 89 c8 mov %rcx,%r8 1c620: 48 8d 0d d6 73 00 00 lea 0x73d6(%rip),%rcx # 239fd <_fini+0xa75> 1c627: 48 89 c6 mov %rax,%rsi 1c62a: 48 8b 05 5f d9 20 00 mov 0x20d95f(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c631: 48 89 c7 mov %rax,%rdi 1c634: b8 00 00 00 00 mov $0x0,%eax 1c639: e8 e2 77 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1c63e: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c642: 48 89 c7 mov %rax,%rdi 1c645: e8 76 72 ff ff callq 138c0 1c64a: eb 5b jmp 1c6a7 <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x12b> } logger.debug(MOD_NAME, func_name, "list id: %ld", id); 1c64c: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1c650: 48 8b 05 c1 ee 20 00 mov 0x20eec1(%rip),%rax # 22b518 <_ZL8MOD_NAME> 1c657: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1c65b: 49 89 c8 mov %rcx,%r8 1c65e: 48 8d 0d b0 73 00 00 lea 0x73b0(%rip),%rcx # 23a15 <_fini+0xa8d> 1c665: 48 89 c6 mov %rax,%rsi 1c668: 48 8b 05 21 d9 20 00 mov 0x20d921(%rip),%rax # 229f90 <_DYNAMIC+0x240> 1c66f: 48 89 c7 mov %rax,%rdi 1c672: b8 00 00 00 00 mov $0x0,%eax 1c677: e8 54 79 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_objects_list_close(ctx); 1c67c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1c680: 48 89 c7 mov %rax,%rdi 1c683: e8 98 73 ff ff callq 13a20 map_list_ctx_remove(id); 1c688: 48 8b 45 e8 mov -0x18(%rbp),%rax 1c68c: 48 89 c7 mov %rax,%rdi 1c68f: e8 ac 69 ff ff callq 13040 <_Z19map_list_ctx_removem@plt> return enif_make_atom(env, "ok"); 1c694: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c698: 48 8d 35 c2 6f 00 00 lea 0x6fc2(%rip),%rsi # 23661 <_fini+0x6d9> 1c69f: 48 89 c7 mov %rax,%rdi 1c6a2: e8 c9 66 ff ff callq 12d70 } 1c6a7: c9 leaveq 1c6a8: c3 retq 1c6a9: 90 nop 1c6aa: 90 nop 1c6ab: 90 nop 000000000001c6ac <_Z11x_aio_flushP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_aio_flush(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c6ac: 55 push %rbp 1c6ad: 48 89 e5 mov %rsp,%rbp 1c6b0: 48 83 ec 40 sub $0x40,%rsp 1c6b4: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1c6b8: 89 75 d4 mov %esi,-0x2c(%rbp) 1c6bb: 48 89 55 c8 mov %rdx,-0x38(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1c6bf: 48 8b 45 c8 mov -0x38(%rbp),%rax 1c6c3: 48 8b 08 mov (%rax),%rcx 1c6c6: 48 8d 55 e8 lea -0x18(%rbp),%rdx 1c6ca: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c6ce: 48 89 ce mov %rcx,%rsi 1c6d1: 48 89 c7 mov %rax,%rdi 1c6d4: e8 a7 6e ff ff callq 13580 1c6d9: 85 c0 test %eax,%eax 1c6db: 0f 94 c0 sete %al 1c6de: 84 c0 test %al,%al 1c6e0: 74 0e je 1c6f0 <_Z11x_aio_flushP18enif_environment_tiPKm+0x44> { return enif_make_badarg(env); 1c6e2: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c6e6: 48 89 c7 mov %rax,%rdi 1c6e9: e8 d2 71 ff ff callq 138c0 1c6ee: eb 64 jmp 1c754 <_Z11x_aio_flushP18enif_environment_tiPKm+0xa8> } rados_ioctx_t io = map_ioctx_get(id); 1c6f0: 48 8b 45 e8 mov -0x18(%rbp),%rax 1c6f4: 48 89 c7 mov %rax,%rdi 1c6f7: e8 a4 66 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1c6fc: 48 89 45 f0 mov %rax,-0x10(%rbp) if (io == NULL) 1c700: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 1c705: 75 0e jne 1c715 <_Z11x_aio_flushP18enif_environment_tiPKm+0x69> { return enif_make_badarg(env); 1c707: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c70b: 48 89 c7 mov %rax,%rdi 1c70e: e8 ad 71 ff ff callq 138c0 1c713: eb 3f jmp 1c754 <_Z11x_aio_flushP18enif_environment_tiPKm+0xa8> } int err = rados_aio_flush(io); 1c715: 48 8b 45 f0 mov -0x10(%rbp),%rax 1c719: 48 89 c7 mov %rax,%rdi 1c71c: e8 df 6b ff ff callq 13300 1c721: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 1c724: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1c728: 79 17 jns 1c741 <_Z11x_aio_flushP18enif_environment_tiPKm+0x95> { return make_error_tuple(env, -err); 1c72a: 8b 45 fc mov -0x4(%rbp),%eax 1c72d: 89 c2 mov %eax,%edx 1c72f: f7 da neg %edx 1c731: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c735: 89 d6 mov %edx,%esi 1c737: 48 89 c7 mov %rax,%rdi 1c73a: e8 21 77 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c73f: eb 13 jmp 1c754 <_Z11x_aio_flushP18enif_environment_tiPKm+0xa8> } return enif_make_atom(env, "ok"); 1c741: 48 8b 45 d8 mov -0x28(%rbp),%rax 1c745: 48 8d 35 2f 73 00 00 lea 0x732f(%rip),%rsi # 23a7b <_fini+0xaf3> 1c74c: 48 89 c7 mov %rax,%rdi 1c74f: e8 1c 66 ff ff callq 12d70 } 1c754: c9 leaveq 1c755: c3 retq 1c756: 90 nop 1c757: 90 nop 000000000001c758 <_Z10x_getxattrP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_getxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c758: 55 push %rbp 1c759: 48 89 e5 mov %rsp,%rbp 1c75c: 53 push %rbx 1c75d: 48 81 ec 78 18 00 00 sub $0x1878,%rsp 1c764: 48 89 bd 98 e7 ff ff mov %rdi,-0x1868(%rbp) 1c76b: 89 b5 94 e7 ff ff mov %esi,-0x186c(%rbp) 1c771: 48 89 95 88 e7 ff ff mov %rdx,-0x1878(%rbp) 1c778: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c77f: 00 00 1c781: 48 89 45 e8 mov %rax,-0x18(%rbp) 1c785: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c787: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1c78e: 48 8b 08 mov (%rax),%rcx 1c791: 48 8d 95 c8 e7 ff ff lea -0x1838(%rbp),%rdx 1c798: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c79f: 48 89 ce mov %rcx,%rsi 1c7a2: 48 89 c7 mov %rax,%rdi 1c7a5: e8 d6 6d ff ff callq 13580 1c7aa: 85 c0 test %eax,%eax 1c7ac: 74 66 je 1c814 <_Z10x_getxattrP18enif_environment_tiPKm+0xbc> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1c7ae: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1c7b5: 48 83 c0 08 add $0x8,%rax 1c7b9: 48 8b 30 mov (%rax),%rsi 1c7bc: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 1c7c3: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c7ca: 41 b8 01 00 00 00 mov $0x1,%r8d 1c7d0: b9 00 04 00 00 mov $0x400,%ecx 1c7d5: 48 89 c7 mov %rax,%rdi 1c7d8: e8 53 7a ff ff callq 14230 ERL_NIF_TERM x_getxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c7dd: 85 c0 test %eax,%eax 1c7df: 74 33 je 1c814 <_Z10x_getxattrP18enif_environment_tiPKm+0xbc> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1c7e1: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1c7e8: 48 83 c0 10 add $0x10,%rax 1c7ec: 48 8b 30 mov (%rax),%rsi 1c7ef: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1c7f6: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c7fd: 41 b8 01 00 00 00 mov $0x1,%r8d 1c803: b9 00 04 00 00 mov $0x400,%ecx 1c808: 48 89 c7 mov %rax,%rdi 1c80b: e8 20 7a ff ff callq 14230 ERL_NIF_TERM x_getxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c810: 85 c0 test %eax,%eax 1c812: 75 07 jne 1c81b <_Z10x_getxattrP18enif_environment_tiPKm+0xc3> 1c814: b8 01 00 00 00 mov $0x1,%eax 1c819: eb 05 jmp 1c820 <_Z10x_getxattrP18enif_environment_tiPKm+0xc8> 1c81b: b8 00 00 00 00 mov $0x0,%eax 1c820: 84 c0 test %al,%al 1c822: 74 14 je 1c838 <_Z10x_getxattrP18enif_environment_tiPKm+0xe0> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1c824: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c82b: 48 89 c7 mov %rax,%rdi 1c82e: e8 8d 70 ff ff callq 138c0 1c833: e9 1a 01 00 00 jmpq 1c952 <_Z10x_getxattrP18enif_environment_tiPKm+0x1fa> } rados_ioctx_t io = map_ioctx_get(id); 1c838: 48 8b 85 c8 e7 ff ff mov -0x1838(%rbp),%rax 1c83f: 48 89 c7 mov %rax,%rdi 1c842: e8 59 65 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1c847: 48 89 85 d0 e7 ff ff mov %rax,-0x1830(%rbp) if (io == NULL) 1c84e: 48 83 bd d0 e7 ff ff cmpq $0x0,-0x1830(%rbp) 1c855: 00 1c856: 75 14 jne 1c86c <_Z10x_getxattrP18enif_environment_tiPKm+0x114> { return enif_make_badarg(env); 1c858: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c85f: 48 89 c7 mov %rax,%rdi 1c862: e8 59 70 ff ff callq 138c0 1c867: e9 e6 00 00 00 jmpq 1c952 <_Z10x_getxattrP18enif_environment_tiPKm+0x1fa> } char val[MAX_BUF_LEN]; int err = rados_getxattr(io, oid, xattr, val, MAX_BUF_LEN); 1c86c: 48 8d 8d e0 e7 ff ff lea -0x1820(%rbp),%rcx 1c873: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1c87a: 48 8d b5 e0 f7 ff ff lea -0x820(%rbp),%rsi 1c881: 48 8b 85 d0 e7 ff ff mov -0x1830(%rbp),%rax 1c888: 41 b8 00 10 00 00 mov $0x1000,%r8d 1c88e: 48 89 c7 mov %rax,%rdi 1c891: e8 da 62 ff ff callq 12b70 1c896: 89 85 dc e7 ff ff mov %eax,-0x1824(%rbp) if (err < 0) 1c89c: 83 bd dc e7 ff ff 00 cmpl $0x0,-0x1824(%rbp) 1c8a3: 79 20 jns 1c8c5 <_Z10x_getxattrP18enif_environment_tiPKm+0x16d> { return make_error_tuple(env, -err); 1c8a5: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1c8ab: 89 c2 mov %eax,%edx 1c8ad: f7 da neg %edx 1c8af: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c8b6: 89 d6 mov %edx,%esi 1c8b8: 48 89 c7 mov %rax,%rdi 1c8bb: e8 a0 75 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c8c0: e9 8d 00 00 00 jmpq 1c952 <_Z10x_getxattrP18enif_environment_tiPKm+0x1fa> } ErlNifBinary obin; enif_alloc_binary(err, &obin); // On success, returned value from rados_getxattr() is the length 1c8c5: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1c8cb: 48 98 cltq 1c8cd: 48 8d 95 a0 e7 ff ff lea -0x1860(%rbp),%rdx 1c8d4: 48 89 d6 mov %rdx,%rsi 1c8d7: 48 89 c7 mov %rax,%rdi 1c8da: e8 a1 76 ff ff callq 13f80 memcpy(obin.data, val, err); 1c8df: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1c8e5: 48 63 d0 movslq %eax,%rdx 1c8e8: 48 8b 85 a8 e7 ff ff mov -0x1858(%rbp),%rax 1c8ef: 48 8d 8d e0 e7 ff ff lea -0x1820(%rbp),%rcx 1c8f6: 48 89 ce mov %rcx,%rsi 1c8f9: 48 89 c7 mov %rax,%rdi 1c8fc: e8 bf 7d ff ff callq 146c0 return enif_make_tuple2(env, 1c901: 48 8d 95 a0 e7 ff ff lea -0x1860(%rbp),%rdx 1c908: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c90f: 48 89 d6 mov %rdx,%rsi 1c912: 48 89 c7 mov %rax,%rdi 1c915: e8 06 6b ff ff callq 13420 1c91a: 48 89 c3 mov %rax,%rbx 1c91d: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c924: 48 8d 35 53 71 00 00 lea 0x7153(%rip),%rsi # 23a7e <_fini+0xaf6> 1c92b: 48 89 c7 mov %rax,%rdi 1c92e: e8 3d 64 ff ff callq 12d70 1c933: 48 89 c2 mov %rax,%rdx 1c936: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c93d: 48 89 d9 mov %rbx,%rcx 1c940: be 02 00 00 00 mov $0x2,%esi 1c945: 48 89 c7 mov %rax,%rdi 1c948: b8 00 00 00 00 mov $0x0,%eax 1c94d: e8 ee 78 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_binary(env, &obin)); } 1c952: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1c956: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c95d: 00 00 1c95f: 74 05 je 1c966 <_Z10x_getxattrP18enif_environment_tiPKm+0x20e> 1c961: e8 7a 75 ff ff callq 13ee0 <__stack_chk_fail@plt> 1c966: 48 81 c4 78 18 00 00 add $0x1878,%rsp 1c96d: 5b pop %rbx 1c96e: 5d pop %rbp 1c96f: c3 retq 000000000001c970 <_Z10x_setxattrP18enif_environment_tiPKm>: ERL_NIF_TERM x_setxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c970: 55 push %rbp 1c971: 48 89 e5 mov %rsp,%rbp 1c974: 48 81 ec 70 08 00 00 sub $0x870,%rsp 1c97b: 48 89 bd a8 f7 ff ff mov %rdi,-0x858(%rbp) 1c982: 89 b5 a4 f7 ff ff mov %esi,-0x85c(%rbp) 1c988: 48 89 95 98 f7 ff ff mov %rdx,-0x868(%rbp) 1c98f: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c996: 00 00 1c998: 48 89 45 f8 mov %rax,-0x8(%rbp) 1c99c: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c99e: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c9a5: 48 8b 08 mov (%rax),%rcx 1c9a8: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1c9af: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c9b6: 48 89 ce mov %rcx,%rsi 1c9b9: 48 89 c7 mov %rax,%rdi 1c9bc: e8 bf 6b ff ff callq 13580 1c9c1: 85 c0 test %eax,%eax 1c9c3: 0f 84 8a 00 00 00 je 1ca53 <_Z10x_setxattrP18enif_environment_tiPKm+0xe3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1c9c9: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c9d0: 48 83 c0 08 add $0x8,%rax 1c9d4: 48 8b 30 mov (%rax),%rsi 1c9d7: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1c9de: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c9e5: 41 b8 01 00 00 00 mov $0x1,%r8d 1c9eb: b9 00 04 00 00 mov $0x400,%ecx 1c9f0: 48 89 c7 mov %rax,%rdi 1c9f3: e8 38 78 ff ff callq 14230 ERL_NIF_TERM x_setxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c9f8: 85 c0 test %eax,%eax 1c9fa: 74 57 je 1ca53 <_Z10x_setxattrP18enif_environment_tiPKm+0xe3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1c9fc: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1ca03: 48 83 c0 10 add $0x10,%rax 1ca07: 48 8b 30 mov (%rax),%rsi 1ca0a: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1ca11: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1ca18: 41 b8 01 00 00 00 mov $0x1,%r8d 1ca1e: b9 00 04 00 00 mov $0x400,%ecx 1ca23: 48 89 c7 mov %rax,%rdi 1ca26: e8 05 78 ff ff callq 14230 ERL_NIF_TERM x_setxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1ca2b: 85 c0 test %eax,%eax 1ca2d: 74 24 je 1ca53 <_Z10x_setxattrP18enif_environment_tiPKm+0xe3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[3])) 1ca2f: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1ca36: 48 83 c0 18 add $0x18,%rax 1ca3a: 48 8b 10 mov (%rax),%rdx 1ca3d: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1ca44: 48 89 d6 mov %rdx,%rsi 1ca47: 48 89 c7 mov %rax,%rdi 1ca4a: e8 b1 77 ff ff callq 14200 ERL_NIF_TERM x_setxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1ca4f: 85 c0 test %eax,%eax 1ca51: 75 07 jne 1ca5a <_Z10x_setxattrP18enif_environment_tiPKm+0xea> 1ca53: b8 01 00 00 00 mov $0x1,%eax 1ca58: eb 05 jmp 1ca5f <_Z10x_setxattrP18enif_environment_tiPKm+0xef> 1ca5a: b8 00 00 00 00 mov $0x0,%eax 1ca5f: 84 c0 test %al,%al 1ca61: 74 14 je 1ca77 <_Z10x_setxattrP18enif_environment_tiPKm+0x107> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[3])) { return enif_make_badarg(env); 1ca63: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1ca6a: 48 89 c7 mov %rax,%rdi 1ca6d: e8 4e 6e ff ff callq 138c0 1ca72: e9 cb 00 00 00 jmpq 1cb42 <_Z10x_setxattrP18enif_environment_tiPKm+0x1d2> } rados_ioctx_t io = map_ioctx_get(id); 1ca77: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 1ca7e: 48 89 c7 mov %rax,%rdi 1ca81: e8 1a 63 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1ca86: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1ca8d: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1ca94: 00 1ca95: 75 14 jne 1caab <_Z10x_setxattrP18enif_environment_tiPKm+0x13b> { return enif_make_badarg(env); 1ca97: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1ca9e: 48 89 c7 mov %rax,%rdi 1caa1: e8 1a 6e ff ff callq 138c0 1caa6: e9 97 00 00 00 jmpq 1cb42 <_Z10x_setxattrP18enif_environment_tiPKm+0x1d2> } ErlNifBinary ibin; enif_inspect_binary(env, argv[3], &ibin); 1caab: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1cab2: 48 83 c0 18 add $0x18,%rax 1cab6: 48 8b 08 mov (%rax),%rcx 1cab9: 48 8d 95 b0 f7 ff ff lea -0x850(%rbp),%rdx 1cac0: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1cac7: 48 89 ce mov %rcx,%rsi 1caca: 48 89 c7 mov %rax,%rdi 1cacd: e8 3e 70 ff ff callq 13b10 int err = rados_setxattr(io, oid, xattr, (const char*)ibin.data, ibin.size); 1cad2: 48 8b bd b0 f7 ff ff mov -0x850(%rbp),%rdi 1cad9: 48 8b 8d b8 f7 ff ff mov -0x848(%rbp),%rcx 1cae0: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cae7: 48 8d b5 f0 f7 ff ff lea -0x810(%rbp),%rsi 1caee: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1caf5: 49 89 f8 mov %rdi,%r8 1caf8: 48 89 c7 mov %rax,%rdi 1cafb: e8 70 75 ff ff callq 14070 1cb00: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1cb06: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1cb0d: 79 1d jns 1cb2c <_Z10x_setxattrP18enif_environment_tiPKm+0x1bc> { return make_error_tuple(env, -err); 1cb0f: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1cb15: 89 c2 mov %eax,%edx 1cb17: f7 da neg %edx 1cb19: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1cb20: 89 d6 mov %edx,%esi 1cb22: 48 89 c7 mov %rax,%rdi 1cb25: e8 36 73 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1cb2a: eb 16 jmp 1cb42 <_Z10x_setxattrP18enif_environment_tiPKm+0x1d2> } return enif_make_atom(env, "ok"); 1cb2c: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1cb33: 48 8d 35 44 6f 00 00 lea 0x6f44(%rip),%rsi # 23a7e <_fini+0xaf6> 1cb3a: 48 89 c7 mov %rax,%rdi 1cb3d: e8 2e 62 ff ff callq 12d70 } 1cb42: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1cb46: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1cb4d: 00 00 1cb4f: 74 05 je 1cb56 <_Z10x_setxattrP18enif_environment_tiPKm+0x1e6> 1cb51: e8 8a 73 ff ff callq 13ee0 <__stack_chk_fail@plt> 1cb56: c9 leaveq 1cb57: c3 retq 000000000001cb58 <_Z9x_rmxattrP18enif_environment_tiPKm>: ERL_NIF_TERM x_rmxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1cb58: 55 push %rbp 1cb59: 48 89 e5 mov %rsp,%rbp 1cb5c: 48 81 ec 50 08 00 00 sub $0x850,%rsp 1cb63: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 1cb6a: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 1cb70: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 1cb77: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1cb7e: 00 00 1cb80: 48 89 45 f8 mov %rax,-0x8(%rbp) 1cb84: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1cb86: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cb8d: 48 8b 08 mov (%rax),%rcx 1cb90: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1cb97: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cb9e: 48 89 ce mov %rcx,%rsi 1cba1: 48 89 c7 mov %rax,%rdi 1cba4: e8 d7 69 ff ff callq 13580 1cba9: 85 c0 test %eax,%eax 1cbab: 74 66 je 1cc13 <_Z9x_rmxattrP18enif_environment_tiPKm+0xbb> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1cbad: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cbb4: 48 83 c0 08 add $0x8,%rax 1cbb8: 48 8b 30 mov (%rax),%rsi 1cbbb: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1cbc2: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cbc9: 41 b8 01 00 00 00 mov $0x1,%r8d 1cbcf: b9 00 04 00 00 mov $0x400,%ecx 1cbd4: 48 89 c7 mov %rax,%rdi 1cbd7: e8 54 76 ff ff callq 14230 ERL_NIF_TERM x_rmxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1cbdc: 85 c0 test %eax,%eax 1cbde: 74 33 je 1cc13 <_Z9x_rmxattrP18enif_environment_tiPKm+0xbb> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1cbe0: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cbe7: 48 83 c0 10 add $0x10,%rax 1cbeb: 48 8b 30 mov (%rax),%rsi 1cbee: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cbf5: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cbfc: 41 b8 01 00 00 00 mov $0x1,%r8d 1cc02: b9 00 04 00 00 mov $0x400,%ecx 1cc07: 48 89 c7 mov %rax,%rdi 1cc0a: e8 21 76 ff ff callq 14230 ERL_NIF_TERM x_rmxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; char xattr[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1cc0f: 85 c0 test %eax,%eax 1cc11: 75 07 jne 1cc1a <_Z9x_rmxattrP18enif_environment_tiPKm+0xc2> 1cc13: b8 01 00 00 00 mov $0x1,%eax 1cc18: eb 05 jmp 1cc1f <_Z9x_rmxattrP18enif_environment_tiPKm+0xc7> 1cc1a: b8 00 00 00 00 mov $0x0,%eax 1cc1f: 84 c0 test %al,%al 1cc21: 74 14 je 1cc37 <_Z9x_rmxattrP18enif_environment_tiPKm+0xdf> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], xattr, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1cc23: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cc2a: 48 89 c7 mov %rax,%rdi 1cc2d: e8 8e 6c ff ff callq 138c0 1cc32: e9 93 00 00 00 jmpq 1ccca <_Z9x_rmxattrP18enif_environment_tiPKm+0x172> } rados_ioctx_t io = map_ioctx_get(id); 1cc37: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 1cc3e: 48 89 c7 mov %rax,%rdi 1cc41: e8 5a 61 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1cc46: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1cc4d: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1cc54: 00 1cc55: 75 11 jne 1cc68 <_Z9x_rmxattrP18enif_environment_tiPKm+0x110> { return enif_make_badarg(env); 1cc57: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cc5e: 48 89 c7 mov %rax,%rdi 1cc61: e8 5a 6c ff ff callq 138c0 1cc66: eb 62 jmp 1ccca <_Z9x_rmxattrP18enif_environment_tiPKm+0x172> } int err = rados_rmxattr(io, oid, xattr); 1cc68: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cc6f: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 1cc76: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1cc7d: 48 89 ce mov %rcx,%rsi 1cc80: 48 89 c7 mov %rax,%rdi 1cc83: e8 f8 77 ff ff callq 14480 1cc88: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1cc8e: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1cc95: 79 1d jns 1ccb4 <_Z9x_rmxattrP18enif_environment_tiPKm+0x15c> { return make_error_tuple(env, -err); 1cc97: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1cc9d: 89 c2 mov %eax,%edx 1cc9f: f7 da neg %edx 1cca1: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cca8: 89 d6 mov %edx,%esi 1ccaa: 48 89 c7 mov %rax,%rdi 1ccad: e8 ae 71 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1ccb2: eb 16 jmp 1ccca <_Z9x_rmxattrP18enif_environment_tiPKm+0x172> } return enif_make_atom(env, "ok"); 1ccb4: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1ccbb: 48 8d 35 bc 6d 00 00 lea 0x6dbc(%rip),%rsi # 23a7e <_fini+0xaf6> 1ccc2: 48 89 c7 mov %rax,%rdi 1ccc5: e8 a6 60 ff ff callq 12d70 } 1ccca: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1ccce: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ccd5: 00 00 1ccd7: 74 05 je 1ccde <_Z9x_rmxattrP18enif_environment_tiPKm+0x186> 1ccd9: e8 02 72 ff ff callq 13ee0 <__stack_chk_fail@plt> 1ccde: c9 leaveq 1ccdf: c3 retq 000000000001cce0 <_Z11x_getxattrsP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1cce0: 55 push %rbp 1cce1: 48 89 e5 mov %rsp,%rbp 1cce4: 53 push %rbx 1cce5: 48 81 ec 68 04 00 00 sub $0x468,%rsp 1ccec: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 1ccf3: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 1ccf9: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 1cd00: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1cd07: 00 00 1cd09: 48 89 45 e8 mov %rax,-0x18(%rbp) 1cd0d: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1cd0f: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1cd16: 48 8b 08 mov (%rax),%rcx 1cd19: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1cd20: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1cd27: 48 89 ce mov %rcx,%rsi 1cd2a: 48 89 c7 mov %rax,%rdi 1cd2d: e8 4e 68 ff ff callq 13580 1cd32: 85 c0 test %eax,%eax 1cd34: 74 33 je 1cd69 <_Z11x_getxattrsP18enif_environment_tiPKm+0x89> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1cd36: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1cd3d: 48 83 c0 08 add $0x8,%rax 1cd41: 48 8b 30 mov (%rax),%rsi 1cd44: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1cd4b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1cd52: 41 b8 01 00 00 00 mov $0x1,%r8d 1cd58: b9 00 04 00 00 mov $0x400,%ecx 1cd5d: 48 89 c7 mov %rax,%rdi 1cd60: e8 cb 74 ff ff callq 14230 ERL_NIF_TERM x_getxattrs(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1cd65: 85 c0 test %eax,%eax 1cd67: 75 07 jne 1cd70 <_Z11x_getxattrsP18enif_environment_tiPKm+0x90> 1cd69: b8 01 00 00 00 mov $0x1,%eax 1cd6e: eb 05 jmp 1cd75 <_Z11x_getxattrsP18enif_environment_tiPKm+0x95> 1cd70: b8 00 00 00 00 mov $0x0,%eax 1cd75: 84 c0 test %al,%al 1cd77: 74 14 je 1cd8d <_Z11x_getxattrsP18enif_environment_tiPKm+0xad> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1cd79: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1cd80: 48 89 c7 mov %rax,%rdi 1cd83: e8 38 6b ff ff callq 138c0 1cd88: e9 f6 00 00 00 jmpq 1ce83 <_Z11x_getxattrsP18enif_environment_tiPKm+0x1a3> } rados_ioctx_t io = map_ioctx_get(id); 1cd8d: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1cd94: 48 89 c7 mov %rax,%rdi 1cd97: e8 04 60 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1cd9c: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) if (io == NULL) 1cda3: 48 83 bd c8 fb ff ff cmpq $0x0,-0x438(%rbp) 1cdaa: 00 1cdab: 75 14 jne 1cdc1 <_Z11x_getxattrsP18enif_environment_tiPKm+0xe1> { return enif_make_badarg(env); 1cdad: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1cdb4: 48 89 c7 mov %rax,%rdi 1cdb7: e8 04 6b ff ff callq 138c0 1cdbc: e9 c2 00 00 00 jmpq 1ce83 <_Z11x_getxattrsP18enif_environment_tiPKm+0x1a3> } rados_xattrs_iter_t iter; int err = rados_getxattrs(io, oid, &iter); 1cdc1: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1cdc8: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1cdcf: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cdd6: 48 89 ce mov %rcx,%rsi 1cdd9: 48 89 c7 mov %rax,%rdi 1cddc: e8 4f 77 ff ff callq 14530 1cde1: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1cde7: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1cdee: 79 1d jns 1ce0d <_Z11x_getxattrsP18enif_environment_tiPKm+0x12d> { return make_error_tuple(env, -err); 1cdf0: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1cdf6: 89 c2 mov %eax,%edx 1cdf8: f7 da neg %edx 1cdfa: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ce01: 89 d6 mov %edx,%esi 1ce03: 48 89 c7 mov %rax,%rdi 1ce06: e8 55 70 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1ce0b: eb 76 jmp 1ce83 <_Z11x_getxattrsP18enif_environment_tiPKm+0x1a3> } uint64_t iter_id = new_id(); 1ce0d: e8 9e 6f ff ff callq 13db0 <_Z6new_idv@plt> 1ce12: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) map_xattr_iter_add(iter_id, iter); 1ce19: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 1ce20: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1ce27: 48 89 d6 mov %rdx,%rsi 1ce2a: 48 89 c7 mov %rax,%rdi 1ce2d: e8 ce 70 ff ff callq 13f00 <_Z18map_xattr_iter_addmPv@plt> return enif_make_tuple2(env, 1ce32: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 1ce39: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ce40: 48 89 d6 mov %rdx,%rsi 1ce43: 48 89 c7 mov %rax,%rdi 1ce46: e8 05 6d ff ff callq 13b50 1ce4b: 48 89 c3 mov %rax,%rbx 1ce4e: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ce55: 48 8d 35 22 6c 00 00 lea 0x6c22(%rip),%rsi # 23a7e <_fini+0xaf6> 1ce5c: 48 89 c7 mov %rax,%rdi 1ce5f: e8 0c 5f ff ff callq 12d70 1ce64: 48 89 c2 mov %rax,%rdx 1ce67: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ce6e: 48 89 d9 mov %rbx,%rcx 1ce71: be 02 00 00 00 mov $0x2,%esi 1ce76: 48 89 c7 mov %rax,%rdi 1ce79: b8 00 00 00 00 mov $0x0,%eax 1ce7e: e8 bd 73 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, iter_id)); } 1ce83: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1ce87: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ce8e: 00 00 1ce90: 74 05 je 1ce97 <_Z11x_getxattrsP18enif_environment_tiPKm+0x1b7> 1ce92: e8 49 70 ff ff callq 13ee0 <__stack_chk_fail@plt> 1ce97: 48 81 c4 68 04 00 00 add $0x468,%rsp 1ce9e: 5b pop %rbx 1ce9f: 5d pop %rbp 1cea0: c3 retq 000000000001cea1 <_Z16x_getxattrs_nextP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs_next(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1cea1: 55 push %rbp 1cea2: 48 89 e5 mov %rsp,%rbp 1cea5: 53 push %rbx 1cea6: 48 81 ec a8 04 00 00 sub $0x4a8,%rsp 1cead: 48 89 bd 68 fb ff ff mov %rdi,-0x498(%rbp) 1ceb4: 89 b5 64 fb ff ff mov %esi,-0x49c(%rbp) 1ceba: 48 89 95 58 fb ff ff mov %rdx,-0x4a8(%rbp) 1cec1: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1cec8: 00 00 1ceca: 48 89 45 e8 mov %rax,-0x18(%rbp) 1cece: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id)) 1ced0: 48 8b 85 58 fb ff ff mov -0x4a8(%rbp),%rax 1ced7: 48 8b 08 mov (%rax),%rcx 1ceda: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1cee1: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1cee8: 48 89 ce mov %rcx,%rsi 1ceeb: 48 89 c7 mov %rax,%rdi 1ceee: e8 8d 66 ff ff callq 13580 1cef3: 85 c0 test %eax,%eax 1cef5: 0f 94 c0 sete %al 1cef8: 84 c0 test %al,%al 1cefa: 74 14 je 1cf10 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x6f> { return enif_make_badarg(env); 1cefc: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1cf03: 48 89 c7 mov %rax,%rdi 1cf06: e8 b5 69 ff ff callq 138c0 1cf0b: e9 4e 02 00 00 jmpq 1d15e <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2bd> } rados_xattrs_iter_t iter = map_xattr_iter_get(id); 1cf10: 48 8b 85 b0 fb ff ff mov -0x450(%rbp),%rax 1cf17: 48 89 c7 mov %rax,%rdi 1cf1a: e8 31 60 ff ff callq 12f50 <_Z18map_xattr_iter_getm@plt> 1cf1f: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) if (iter == NULL) 1cf26: 48 83 bd c0 fb ff ff cmpq $0x0,-0x440(%rbp) 1cf2d: 00 1cf2e: 75 14 jne 1cf44 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0xa3> { return enif_make_badarg(env); 1cf30: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1cf37: 48 89 c7 mov %rax,%rdi 1cf3a: e8 81 69 ff ff callq 138c0 1cf3f: e9 1a 02 00 00 jmpq 1d15e <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2bd> } const char * name[1]; const char * val[1]; size_t len; int err = rados_getxattrs_next(iter, name, val, &len); 1cf44: 48 8d 8d b8 fb ff ff lea -0x448(%rbp),%rcx 1cf4b: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1cf52: 48 8d b5 90 fb ff ff lea -0x470(%rbp),%rsi 1cf59: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1cf60: 48 89 c7 mov %rax,%rdi 1cf63: e8 28 71 ff ff callq 14090 1cf68: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if ((err < 0) && (err != -ENOENT)) 1cf6e: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1cf75: 79 29 jns 1cfa0 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0xff> 1cf77: 83 bd dc fb ff ff fe cmpl $0xfffffffe,-0x424(%rbp) 1cf7e: 74 20 je 1cfa0 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0xff> { return make_error_tuple(env, -err); 1cf80: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1cf86: 89 c2 mov %eax,%edx 1cf88: f7 da neg %edx 1cf8a: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1cf91: 89 d6 mov %edx,%esi 1cf93: 48 89 c7 mov %rax,%rdi 1cf96: e8 c5 6e ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1cf9b: e9 be 01 00 00 jmpq 1d15e <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2bd> } if (len > 0) 1cfa0: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1cfa7: 48 85 c0 test %rax,%rax 1cfaa: 0f 84 98 01 00 00 je 1d148 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2a7> { ERL_NIF_TERM term_list = enif_make_list(env, 0); 1cfb0: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1cfb7: be 00 00 00 00 mov $0x0,%esi 1cfbc: 48 89 c7 mov %rax,%rdi 1cfbf: b8 00 00 00 00 mov $0x0,%eax 1cfc4: e8 67 6b ff ff callq 13b30 1cfc9: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) ErlNifBinary obin; enif_alloc_binary(len, &obin); 1cfd0: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1cfd7: 48 8d 95 70 fb ff ff lea -0x490(%rbp),%rdx 1cfde: 48 89 d6 mov %rdx,%rsi 1cfe1: 48 89 c7 mov %rax,%rdi 1cfe4: e8 97 6f ff ff callq 13f80 memcpy(obin.data, val[0], len); 1cfe9: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1cff0: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1cff7: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1cffe: 48 89 ce mov %rcx,%rsi 1d001: 48 89 c7 mov %rax,%rdi 1d004: e8 b7 76 ff ff callq 146c0 term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "value"), enif_make_binary(env, &obin)), term_list); 1d009: 48 8d 95 70 fb ff ff lea -0x490(%rbp),%rdx 1d010: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d017: 48 89 d6 mov %rdx,%rsi 1d01a: 48 89 c7 mov %rax,%rdi 1d01d: e8 fe 63 ff ff callq 13420 1d022: 48 89 c3 mov %rax,%rbx 1d025: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d02c: 48 8d 35 4e 6a 00 00 lea 0x6a4e(%rip),%rsi # 23a81 <_fini+0xaf9> 1d033: 48 89 c7 mov %rax,%rdi 1d036: e8 35 5d ff ff callq 12d70 1d03b: 48 89 c2 mov %rax,%rdx 1d03e: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d045: 48 89 d9 mov %rbx,%rcx 1d048: be 02 00 00 00 mov $0x2,%esi 1d04d: 48 89 c7 mov %rax,%rdi 1d050: b8 00 00 00 00 mov $0x0,%eax 1d055: e8 e6 71 ff ff callq 14240 1d05a: 48 89 c1 mov %rax,%rcx 1d05d: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1d064: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d06b: 48 89 ce mov %rcx,%rsi 1d06e: 48 89 c7 mov %rax,%rdi 1d071: e8 ea 64 ff ff callq 13560 1d076: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) enif_release_binary(&obin); 1d07d: 48 8d 85 70 fb ff ff lea -0x490(%rbp),%rax 1d084: 48 89 c7 mov %rax,%rdi 1d087: e8 f4 5f ff ff callq 13080 ERL_NIF_TERM t = enif_make_string(env, name[0], ERL_NIF_LATIN1); 1d08c: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 1d093: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d09a: ba 01 00 00 00 mov $0x1,%edx 1d09f: 48 89 ce mov %rcx,%rsi 1d0a2: 48 89 c7 mov %rax,%rdi 1d0a5: e8 96 67 ff ff callq 13840 1d0aa: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "xattr"), t), term_list); 1d0b1: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d0b8: 48 8d 35 c8 69 00 00 lea 0x69c8(%rip),%rsi # 23a87 <_fini+0xaff> 1d0bf: 48 89 c7 mov %rax,%rdi 1d0c2: e8 a9 5c ff ff callq 12d70 1d0c7: 48 89 c2 mov %rax,%rdx 1d0ca: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1d0d1: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d0d8: be 02 00 00 00 mov $0x2,%esi 1d0dd: 48 89 c7 mov %rax,%rdi 1d0e0: b8 00 00 00 00 mov $0x0,%eax 1d0e5: e8 56 71 ff ff callq 14240 1d0ea: 48 89 c1 mov %rax,%rcx 1d0ed: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1d0f4: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d0fb: 48 89 ce mov %rcx,%rsi 1d0fe: 48 89 c7 mov %rax,%rdi 1d101: e8 5a 64 ff ff callq 13560 1d106: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) return enif_make_tuple2(env, 1d10d: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d114: 48 8d 35 63 69 00 00 lea 0x6963(%rip),%rsi # 23a7e <_fini+0xaf6> 1d11b: 48 89 c7 mov %rax,%rdi 1d11e: e8 4d 5c ff ff callq 12d70 1d123: 48 89 c2 mov %rax,%rdx 1d126: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1d12d: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d134: be 02 00 00 00 mov $0x2,%esi 1d139: 48 89 c7 mov %rax,%rdi 1d13c: b8 00 00 00 00 mov $0x0,%eax 1d141: e8 fa 70 ff ff callq 14240 1d146: eb 16 jmp 1d15e <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2bd> enif_make_atom(env, "ok"), term_list); } else { return enif_make_atom(env, "end"); 1d148: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1d14f: 48 8d 35 37 69 00 00 lea 0x6937(%rip),%rsi # 23a8d <_fini+0xb05> 1d156: 48 89 c7 mov %rax,%rdi 1d159: e8 12 5c ff ff callq 12d70 } } 1d15e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1d162: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d169: 00 00 1d16b: 74 05 je 1d172 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2d1> 1d16d: e8 6e 6d ff ff callq 13ee0 <__stack_chk_fail@plt> 1d172: 48 81 c4 a8 04 00 00 add $0x4a8,%rsp 1d179: 5b pop %rbx 1d17a: 5d pop %rbp 1d17b: c3 retq 000000000001d17c <_Z15x_getxattrs_endP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs_end(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d17c: 55 push %rbp 1d17d: 48 89 e5 mov %rsp,%rbp 1d180: 48 81 ec 40 04 00 00 sub $0x440,%rsp 1d187: 48 89 bd d8 fb ff ff mov %rdi,-0x428(%rbp) 1d18e: 89 b5 d4 fb ff ff mov %esi,-0x42c(%rbp) 1d194: 48 89 95 c8 fb ff ff mov %rdx,-0x438(%rbp) 1d19b: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d1a2: 00 00 1d1a4: 48 89 45 f8 mov %rax,-0x8(%rbp) 1d1a8: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id)) 1d1aa: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d1b1: 48 8b 08 mov (%rax),%rcx 1d1b4: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1d1bb: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d1c2: 48 89 ce mov %rcx,%rsi 1d1c5: 48 89 c7 mov %rax,%rdi 1d1c8: e8 b3 63 ff ff callq 13580 1d1cd: 85 c0 test %eax,%eax 1d1cf: 0f 94 c0 sete %al 1d1d2: 84 c0 test %al,%al 1d1d4: 74 11 je 1d1e7 <_Z15x_getxattrs_endP18enif_environment_tiPKm+0x6b> { return enif_make_badarg(env); 1d1d6: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d1dd: 48 89 c7 mov %rax,%rdi 1d1e0: e8 db 66 ff ff callq 138c0 1d1e5: eb 65 jmp 1d24c <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xd0> } rados_xattrs_iter_t iter = map_xattr_iter_get(id); 1d1e7: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1d1ee: 48 89 c7 mov %rax,%rdi 1d1f1: e8 5a 5d ff ff callq 12f50 <_Z18map_xattr_iter_getm@plt> 1d1f6: 48 89 85 e8 fb ff ff mov %rax,-0x418(%rbp) if (iter == NULL) 1d1fd: 48 83 bd e8 fb ff ff cmpq $0x0,-0x418(%rbp) 1d204: 00 1d205: 75 11 jne 1d218 <_Z15x_getxattrs_endP18enif_environment_tiPKm+0x9c> { return enif_make_badarg(env); 1d207: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d20e: 48 89 c7 mov %rax,%rdi 1d211: e8 aa 66 ff ff callq 138c0 1d216: eb 34 jmp 1d24c <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xd0> } rados_getxattrs_end(iter); 1d218: 48 8b 85 e8 fb ff ff mov -0x418(%rbp),%rax 1d21f: 48 89 c7 mov %rax,%rdi 1d222: e8 89 64 ff ff callq 136b0 map_xattr_iter_remove(id); 1d227: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1d22e: 48 89 c7 mov %rax,%rdi 1d231: e8 7a 71 ff ff callq 143b0 <_Z21map_xattr_iter_removem@plt> return enif_make_atom(env, "ok"); 1d236: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d23d: 48 8d 35 3a 68 00 00 lea 0x683a(%rip),%rsi # 23a7e <_fini+0xaf6> 1d244: 48 89 c7 mov %rax,%rdi 1d247: e8 24 5b ff ff callq 12d70 } 1d24c: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1d250: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d257: 00 00 1d259: 74 05 je 1d260 <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xe4> 1d25b: e8 80 6c ff ff callq 13ee0 <__stack_chk_fail@plt> 1d260: c9 leaveq 1d261: c3 retq 1d262: 90 nop 1d263: 90 nop 000000000001d264 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_ioctx_snap_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d264: 55 push %rbp 1d265: 48 89 e5 mov %rsp,%rbp 1d268: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1d26f: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1d276: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1d27c: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1d283: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d28a: 00 00 1d28c: 48 89 45 f8 mov %rax,-0x8(%rbp) 1d290: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d292: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1d299: ba 00 04 00 00 mov $0x400,%edx 1d29e: be 00 00 00 00 mov $0x0,%esi 1d2a3: 48 89 c7 mov %rax,%rdi 1d2a6: e8 55 57 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1d2ab: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d2b2: 48 8b 08 mov (%rax),%rcx 1d2b5: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 1d2bc: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d2c3: 48 89 ce mov %rcx,%rsi 1d2c6: 48 89 c7 mov %rax,%rdi 1d2c9: e8 b2 62 ff ff callq 13580 1d2ce: 85 c0 test %eax,%eax 1d2d0: 74 33 je 1d305 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xa1> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1d2d2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d2d9: 48 83 c0 08 add $0x8,%rax 1d2dd: 48 8b 30 mov (%rax),%rsi 1d2e0: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d2e7: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d2ee: 41 b8 01 00 00 00 mov $0x1,%r8d 1d2f4: b9 00 04 00 00 mov $0x400,%ecx 1d2f9: 48 89 c7 mov %rax,%rdi 1d2fc: e8 2f 6f ff ff callq 14230 ERL_NIF_TERM x_ioctx_snap_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1d301: 85 c0 test %eax,%eax 1d303: 75 07 jne 1d30c <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xa8> 1d305: b8 01 00 00 00 mov $0x1,%eax 1d30a: eb 05 jmp 1d311 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xad> 1d30c: b8 00 00 00 00 mov $0x0,%eax 1d311: 84 c0 test %al,%al 1d313: 74 14 je 1d329 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xc5> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1d315: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d31c: 48 89 c7 mov %rax,%rdi 1d31f: e8 9c 65 ff ff callq 138c0 1d324: e9 8c 00 00 00 jmpq 1d3b5 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x151> } rados_ioctx_t io = map_ioctx_get(id); 1d329: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d330: 48 89 c7 mov %rax,%rdi 1d333: e8 68 5a ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1d338: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1d33f: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1d346: 00 1d347: 75 11 jne 1d35a <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xf6> { return enif_make_badarg(env); 1d349: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d350: 48 89 c7 mov %rax,%rdi 1d353: e8 68 65 ff ff callq 138c0 1d358: eb 5b jmp 1d3b5 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x151> } int err = rados_ioctx_snap_create(io, snap); 1d35a: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d361: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1d368: 48 89 d6 mov %rdx,%rsi 1d36b: 48 89 c7 mov %rax,%rdi 1d36e: e8 ed 5f ff ff callq 13360 1d373: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1d379: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1d380: 79 1d jns 1d39f <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x13b> { return make_error_tuple(env, -err); 1d382: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1d388: 89 c2 mov %eax,%edx 1d38a: f7 da neg %edx 1d38c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d393: 89 d6 mov %edx,%esi 1d395: 48 89 c7 mov %rax,%rdi 1d398: e8 c3 6a ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d39d: eb 16 jmp 1d3b5 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x151> } return enif_make_atom(env, "ok"); 1d39f: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d3a6: 48 8d 35 e4 66 00 00 lea 0x66e4(%rip),%rsi # 23a91 <_fini+0xb09> 1d3ad: 48 89 c7 mov %rax,%rdi 1d3b0: e8 bb 59 ff ff callq 12d70 } 1d3b5: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1d3b9: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d3c0: 00 00 1d3c2: 74 05 je 1d3c9 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x165> 1d3c4: e8 17 6b ff ff callq 13ee0 <__stack_chk_fail@plt> 1d3c9: c9 leaveq 1d3ca: c3 retq 000000000001d3cb <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_remove(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d3cb: 55 push %rbp 1d3cc: 48 89 e5 mov %rsp,%rbp 1d3cf: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1d3d6: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1d3dd: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1d3e3: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1d3ea: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d3f1: 00 00 1d3f3: 48 89 45 f8 mov %rax,-0x8(%rbp) 1d3f7: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d3f9: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1d400: ba 00 04 00 00 mov $0x400,%edx 1d405: be 00 00 00 00 mov $0x0,%esi 1d40a: 48 89 c7 mov %rax,%rdi 1d40d: e8 ee 55 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1d412: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d419: 48 8b 08 mov (%rax),%rcx 1d41c: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 1d423: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d42a: 48 89 ce mov %rcx,%rsi 1d42d: 48 89 c7 mov %rax,%rdi 1d430: e8 4b 61 ff ff callq 13580 1d435: 85 c0 test %eax,%eax 1d437: 74 33 je 1d46c <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xa1> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1d439: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d440: 48 83 c0 08 add $0x8,%rax 1d444: 48 8b 30 mov (%rax),%rsi 1d447: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d44e: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d455: 41 b8 01 00 00 00 mov $0x1,%r8d 1d45b: b9 00 04 00 00 mov $0x400,%ecx 1d460: 48 89 c7 mov %rax,%rdi 1d463: e8 c8 6d ff ff callq 14230 ERL_NIF_TERM x_ioctx_snap_remove(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1d468: 85 c0 test %eax,%eax 1d46a: 75 07 jne 1d473 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xa8> 1d46c: b8 01 00 00 00 mov $0x1,%eax 1d471: eb 05 jmp 1d478 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xad> 1d473: b8 00 00 00 00 mov $0x0,%eax 1d478: 84 c0 test %al,%al 1d47a: 74 14 je 1d490 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xc5> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1d47c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d483: 48 89 c7 mov %rax,%rdi 1d486: e8 35 64 ff ff callq 138c0 1d48b: e9 8c 00 00 00 jmpq 1d51c <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x151> } rados_ioctx_t io = map_ioctx_get(id); 1d490: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1d497: 48 89 c7 mov %rax,%rdi 1d49a: e8 01 59 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1d49f: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1d4a6: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1d4ad: 00 1d4ae: 75 11 jne 1d4c1 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xf6> { return enif_make_badarg(env); 1d4b0: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d4b7: 48 89 c7 mov %rax,%rdi 1d4ba: e8 01 64 ff ff callq 138c0 1d4bf: eb 5b jmp 1d51c <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x151> } int err = rados_ioctx_snap_remove(io, snap); 1d4c1: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d4c8: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1d4cf: 48 89 d6 mov %rdx,%rsi 1d4d2: 48 89 c7 mov %rax,%rdi 1d4d5: e8 e6 66 ff ff callq 13bc0 1d4da: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1d4e0: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1d4e7: 79 1d jns 1d506 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x13b> { return make_error_tuple(env, -err); 1d4e9: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1d4ef: 89 c2 mov %eax,%edx 1d4f1: f7 da neg %edx 1d4f3: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d4fa: 89 d6 mov %edx,%esi 1d4fc: 48 89 c7 mov %rax,%rdi 1d4ff: e8 5c 69 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d504: eb 16 jmp 1d51c <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x151> } return enif_make_atom(env, "ok"); 1d506: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1d50d: 48 8d 35 7d 65 00 00 lea 0x657d(%rip),%rsi # 23a91 <_fini+0xb09> 1d514: 48 89 c7 mov %rax,%rdi 1d517: e8 54 58 ff ff callq 12d70 } 1d51c: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1d520: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d527: 00 00 1d529: 74 05 je 1d530 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x165> 1d52b: e8 b0 69 ff ff callq 13ee0 <__stack_chk_fail@plt> 1d530: c9 leaveq 1d531: c3 retq 000000000001d532 <_Z10x_rollbackP18enif_environment_tiPKm>: ERL_NIF_TERM x_rollback(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d532: 55 push %rbp 1d533: 48 89 e5 mov %rsp,%rbp 1d536: 48 81 ec 50 08 00 00 sub $0x850,%rsp 1d53d: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 1d544: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 1d54a: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 1d551: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d558: 00 00 1d55a: 48 89 45 f8 mov %rax,-0x8(%rbp) 1d55e: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d560: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1d567: ba 00 04 00 00 mov $0x400,%edx 1d56c: be 00 00 00 00 mov $0x0,%esi 1d571: 48 89 c7 mov %rax,%rdi 1d574: e8 87 54 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1d579: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1d580: 48 8b 08 mov (%rax),%rcx 1d583: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1d58a: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d591: 48 89 ce mov %rcx,%rsi 1d594: 48 89 c7 mov %rax,%rdi 1d597: e8 e4 5f ff ff callq 13580 1d59c: 85 c0 test %eax,%eax 1d59e: 74 66 je 1d606 <_Z10x_rollbackP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1d5a0: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1d5a7: 48 83 c0 08 add $0x8,%rax 1d5ab: 48 8b 30 mov (%rax),%rsi 1d5ae: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1d5b5: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d5bc: 41 b8 01 00 00 00 mov $0x1,%r8d 1d5c2: b9 00 04 00 00 mov $0x400,%ecx 1d5c7: 48 89 c7 mov %rax,%rdi 1d5ca: e8 61 6c ff ff callq 14230 { uint64_t id; char oid[MAX_NAME_LEN]; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1d5cf: 85 c0 test %eax,%eax 1d5d1: 74 33 je 1d606 <_Z10x_rollbackP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1d5d3: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1d5da: 48 83 c0 10 add $0x10,%rax 1d5de: 48 8b 30 mov (%rax),%rsi 1d5e1: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d5e8: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d5ef: 41 b8 01 00 00 00 mov $0x1,%r8d 1d5f5: b9 00 04 00 00 mov $0x400,%ecx 1d5fa: 48 89 c7 mov %rax,%rdi 1d5fd: e8 2e 6c ff ff callq 14230 { uint64_t id; char oid[MAX_NAME_LEN]; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1d602: 85 c0 test %eax,%eax 1d604: 75 07 jne 1d60d <_Z10x_rollbackP18enif_environment_tiPKm+0xdb> 1d606: b8 01 00 00 00 mov $0x1,%eax 1d60b: eb 05 jmp 1d612 <_Z10x_rollbackP18enif_environment_tiPKm+0xe0> 1d60d: b8 00 00 00 00 mov $0x0,%eax 1d612: 84 c0 test %al,%al 1d614: 74 14 je 1d62a <_Z10x_rollbackP18enif_environment_tiPKm+0xf8> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_get_string(env, argv[2], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1d616: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d61d: 48 89 c7 mov %rax,%rdi 1d620: e8 9b 62 ff ff callq 138c0 1d625: e9 93 00 00 00 jmpq 1d6bd <_Z10x_rollbackP18enif_environment_tiPKm+0x18b> } rados_ioctx_t io = map_ioctx_get(id); 1d62a: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 1d631: 48 89 c7 mov %rax,%rdi 1d634: e8 67 57 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1d639: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1d640: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1d647: 00 1d648: 75 11 jne 1d65b <_Z10x_rollbackP18enif_environment_tiPKm+0x129> { return enif_make_badarg(env); 1d64a: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d651: 48 89 c7 mov %rax,%rdi 1d654: e8 67 62 ff ff callq 138c0 1d659: eb 62 jmp 1d6bd <_Z10x_rollbackP18enif_environment_tiPKm+0x18b> } int err = rados_rollback(io, oid, snap); 1d65b: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1d662: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 1d669: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1d670: 48 89 ce mov %rcx,%rsi 1d673: 48 89 c7 mov %rax,%rdi 1d676: e8 85 5d ff ff callq 13400 1d67b: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1d681: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1d688: 79 1d jns 1d6a7 <_Z10x_rollbackP18enif_environment_tiPKm+0x175> { return make_error_tuple(env, -err); 1d68a: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1d690: 89 c2 mov %eax,%edx 1d692: f7 da neg %edx 1d694: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d69b: 89 d6 mov %edx,%esi 1d69d: 48 89 c7 mov %rax,%rdi 1d6a0: e8 bb 67 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d6a5: eb 16 jmp 1d6bd <_Z10x_rollbackP18enif_environment_tiPKm+0x18b> } return enif_make_atom(env, "ok"); 1d6a7: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1d6ae: 48 8d 35 dc 63 00 00 lea 0x63dc(%rip),%rsi # 23a91 <_fini+0xb09> 1d6b5: 48 89 c7 mov %rax,%rdi 1d6b8: e8 b3 56 ff ff callq 12d70 } 1d6bd: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1d6c1: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d6c8: 00 00 1d6ca: 74 05 je 1d6d1 <_Z10x_rollbackP18enif_environment_tiPKm+0x19f> 1d6cc: e8 0f 68 ff ff callq 13ee0 <__stack_chk_fail@plt> 1d6d1: c9 leaveq 1d6d2: c3 retq 000000000001d6d3 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_list(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d6d3: 55 push %rbp 1d6d4: 48 89 e5 mov %rsp,%rbp 1d6d7: 53 push %rbx 1d6d8: 48 81 ec d8 3e 00 00 sub $0x3ed8,%rsp 1d6df: 48 89 bd 38 c1 ff ff mov %rdi,-0x3ec8(%rbp) 1d6e6: 89 b5 34 c1 ff ff mov %esi,-0x3ecc(%rbp) 1d6ec: 48 89 95 28 c1 ff ff mov %rdx,-0x3ed8(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1d6f3: 48 8b 85 28 c1 ff ff mov -0x3ed8(%rbp),%rax 1d6fa: 48 8b 08 mov (%rax),%rcx 1d6fd: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1d701: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d708: 48 89 ce mov %rcx,%rsi 1d70b: 48 89 c7 mov %rax,%rdi 1d70e: e8 6d 5e ff ff callq 13580 1d713: 85 c0 test %eax,%eax 1d715: 0f 94 c0 sete %al 1d718: 84 c0 test %al,%al 1d71a: 74 14 je 1d730 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x5d> { return enif_make_badarg(env); 1d71c: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d723: 48 89 c7 mov %rax,%rdi 1d726: e8 95 61 ff ff callq 138c0 1d72b: e9 7e 01 00 00 jmpq 1d8ae <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1db> } rados_ioctx_t io = map_ioctx_get(id); 1d730: 48 8b 45 c8 mov -0x38(%rbp),%rax 1d734: 48 89 c7 mov %rax,%rdi 1d737: e8 64 56 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1d73c: 48 89 45 d8 mov %rax,-0x28(%rbp) if (io == NULL) 1d740: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 1d745: 75 14 jne 1d75b <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x88> { return enif_make_badarg(env); 1d747: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d74e: 48 89 c7 mov %rax,%rdi 1d751: e8 6a 61 ff ff callq 138c0 1d756: e9 53 01 00 00 jmpq 1d8ae <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1db> } rados_snap_t snaps[2000]; int num = rados_ioctx_snap_list(io, snaps, 2000); 1d75b: 48 8d 8d 40 c1 ff ff lea -0x3ec0(%rbp),%rcx 1d762: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d766: ba d0 07 00 00 mov $0x7d0,%edx 1d76b: 48 89 ce mov %rcx,%rsi 1d76e: 48 89 c7 mov %rax,%rdi 1d771: e8 1a 6a ff ff callq 14190 1d776: 89 45 ec mov %eax,-0x14(%rbp) if ((num < 0) && (num != -ERANGE)) 1d779: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1d77d: 79 23 jns 1d7a2 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0xcf> 1d77f: 83 7d ec de cmpl $0xffffffde,-0x14(%rbp) 1d783: 74 1d je 1d7a2 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0xcf> { return make_error_tuple(env, -num); 1d785: 8b 45 ec mov -0x14(%rbp),%eax 1d788: 89 c2 mov %eax,%edx 1d78a: f7 da neg %edx 1d78c: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d793: 89 d6 mov %edx,%esi 1d795: 48 89 c7 mov %rax,%rdi 1d798: e8 c3 66 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d79d: e9 0c 01 00 00 jmpq 1d8ae <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1db> } if (num > 0) 1d7a2: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1d7a6: 0f 8e b1 00 00 00 jle 1d85d <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x18a> { ERL_NIF_TERM term_list = enif_make_list(env, 0); 1d7ac: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d7b3: be 00 00 00 00 mov $0x0,%esi 1d7b8: 48 89 c7 mov %rax,%rdi 1d7bb: b8 00 00 00 00 mov $0x0,%eax 1d7c0: e8 6b 63 ff ff callq 13b30 1d7c5: 48 89 45 d0 mov %rax,-0x30(%rbp) for (int i = num - 1; i >= 0; i--) 1d7c9: 8b 45 ec mov -0x14(%rbp),%eax 1d7cc: 83 e8 01 sub $0x1,%eax 1d7cf: 89 45 e8 mov %eax,-0x18(%rbp) 1d7d2: eb 45 jmp 1d819 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x146> { ERL_NIF_TERM t = enif_make_uint64(env, snaps[i]); 1d7d4: 8b 45 e8 mov -0x18(%rbp),%eax 1d7d7: 48 98 cltq 1d7d9: 48 8b 94 c5 40 c1 ff mov -0x3ec0(%rbp,%rax,8),%rdx 1d7e0: ff 1d7e1: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d7e8: 48 89 d6 mov %rdx,%rsi 1d7eb: 48 89 c7 mov %rax,%rdi 1d7ee: e8 5d 63 ff ff callq 13b50 1d7f3: 48 89 45 e0 mov %rax,-0x20(%rbp) term_list = enif_make_list_cell(env, t, term_list); 1d7f7: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1d7fb: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1d7ff: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d806: 48 89 ce mov %rcx,%rsi 1d809: 48 89 c7 mov %rax,%rdi 1d80c: e8 4f 5d ff ff callq 13560 1d811: 48 89 45 d0 mov %rax,-0x30(%rbp) } if (num > 0) { ERL_NIF_TERM term_list = enif_make_list(env, 0); for (int i = num - 1; i >= 0; i--) 1d815: 83 6d e8 01 subl $0x1,-0x18(%rbp) 1d819: 8b 45 e8 mov -0x18(%rbp),%eax 1d81c: f7 d0 not %eax 1d81e: c1 e8 1f shr $0x1f,%eax 1d821: 84 c0 test %al,%al 1d823: 75 af jne 1d7d4 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x101> { ERL_NIF_TERM t = enif_make_uint64(env, snaps[i]); term_list = enif_make_list_cell(env, t, term_list); } return enif_make_tuple2(env, 1d825: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d82c: 48 8d 35 5e 62 00 00 lea 0x625e(%rip),%rsi # 23a91 <_fini+0xb09> 1d833: 48 89 c7 mov %rax,%rdi 1d836: e8 35 55 ff ff callq 12d70 1d83b: 48 89 c2 mov %rax,%rdx 1d83e: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1d842: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d849: be 02 00 00 00 mov $0x2,%esi 1d84e: 48 89 c7 mov %rax,%rdi 1d851: b8 00 00 00 00 mov $0x0,%eax 1d856: e8 e5 69 ff ff callq 14240 1d85b: eb 51 jmp 1d8ae <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1db> enif_make_atom(env, "ok"), term_list); } else { return enif_make_tuple2(env, 1d85d: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d864: be 00 00 00 00 mov $0x0,%esi 1d869: 48 89 c7 mov %rax,%rdi 1d86c: b8 00 00 00 00 mov $0x0,%eax 1d871: e8 ba 62 ff ff callq 13b30 1d876: 48 89 c3 mov %rax,%rbx 1d879: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d880: 48 8d 35 0a 62 00 00 lea 0x620a(%rip),%rsi # 23a91 <_fini+0xb09> 1d887: 48 89 c7 mov %rax,%rdi 1d88a: e8 e1 54 ff ff callq 12d70 1d88f: 48 89 c2 mov %rax,%rdx 1d892: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d899: 48 89 d9 mov %rbx,%rcx 1d89c: be 02 00 00 00 mov $0x2,%esi 1d8a1: 48 89 c7 mov %rax,%rdi 1d8a4: b8 00 00 00 00 mov $0x0,%eax 1d8a9: e8 92 69 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_list(env, 0)); // empty list } } 1d8ae: 48 81 c4 d8 3e 00 00 add $0x3ed8,%rsp 1d8b5: 5b pop %rbx 1d8b6: 5d pop %rbp 1d8b7: c3 retq 000000000001d8b8 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d8b8: 55 push %rbp 1d8b9: 48 89 e5 mov %rsp,%rbp 1d8bc: 53 push %rbx 1d8bd: 48 81 ec 58 04 00 00 sub $0x458,%rsp 1d8c4: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1d8cb: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1d8d1: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1d8d8: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d8df: 00 00 1d8e1: 48 89 45 e8 mov %rax,-0x18(%rbp) 1d8e5: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d8e7: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1d8ee: ba 00 04 00 00 mov $0x400,%edx 1d8f3: be 00 00 00 00 mov $0x0,%esi 1d8f8: 48 89 c7 mov %rax,%rdi 1d8fb: e8 00 51 ff ff callq 12a00 if (!enif_get_uint64(env, argv[0], &id) || 1d900: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d907: 48 8b 08 mov (%rax),%rcx 1d90a: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1d911: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d918: 48 89 ce mov %rcx,%rsi 1d91b: 48 89 c7 mov %rax,%rdi 1d91e: e8 5d 5c ff ff callq 13580 1d923: 85 c0 test %eax,%eax 1d925: 74 33 je 1d95a <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xa2> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1d927: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d92e: 48 83 c0 08 add $0x8,%rax 1d932: 48 8b 30 mov (%rax),%rsi 1d935: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1d93c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d943: 41 b8 01 00 00 00 mov $0x1,%r8d 1d949: b9 00 04 00 00 mov $0x400,%ecx 1d94e: 48 89 c7 mov %rax,%rdi 1d951: e8 da 68 ff ff callq 14230 ERL_NIF_TERM x_ioctx_snap_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); if (!enif_get_uint64(env, argv[0], &id) || 1d956: 85 c0 test %eax,%eax 1d958: 75 07 jne 1d961 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xa9> 1d95a: b8 01 00 00 00 mov $0x1,%eax 1d95f: eb 05 jmp 1d966 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xae> 1d961: b8 00 00 00 00 mov $0x0,%eax 1d966: 84 c0 test %al,%al 1d968: 74 14 je 1d97e <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xc6> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1d96a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d971: 48 89 c7 mov %rax,%rdi 1d974: e8 47 5f ff ff callq 138c0 1d979: e9 d1 00 00 00 jmpq 1da4f <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x197> } rados_ioctx_t io = map_ioctx_get(id); 1d97e: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1d985: 48 89 c7 mov %rax,%rdi 1d988: e8 13 54 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1d98d: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1d994: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1d99b: 00 1d99c: 75 14 jne 1d9b2 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xfa> { return enif_make_badarg(env); 1d99e: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d9a5: 48 89 c7 mov %rax,%rdi 1d9a8: e8 13 5f ff ff callq 138c0 1d9ad: e9 9d 00 00 00 jmpq 1da4f <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x197> } rados_snap_t snapid; int err = rados_ioctx_snap_lookup(io, snap, &snapid); 1d9b2: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1d9b9: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1d9c0: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1d9c7: 48 89 ce mov %rcx,%rsi 1d9ca: 48 89 c7 mov %rax,%rdi 1d9cd: e8 5e 5e ff ff callq 13830 1d9d2: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1d9d8: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1d9df: 79 1d jns 1d9fe <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x146> return make_error_tuple(env, -err); 1d9e1: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1d9e7: 89 c2 mov %eax,%edx 1d9e9: f7 da neg %edx 1d9eb: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d9f2: 89 d6 mov %edx,%esi 1d9f4: 48 89 c7 mov %rax,%rdi 1d9f7: e8 64 64 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d9fc: eb 51 jmp 1da4f <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x197> return enif_make_tuple2(env, 1d9fe: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1da05: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1da0c: 48 89 d6 mov %rdx,%rsi 1da0f: 48 89 c7 mov %rax,%rdi 1da12: e8 39 61 ff ff callq 13b50 1da17: 48 89 c3 mov %rax,%rbx 1da1a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1da21: 48 8d 35 69 60 00 00 lea 0x6069(%rip),%rsi # 23a91 <_fini+0xb09> 1da28: 48 89 c7 mov %rax,%rdi 1da2b: e8 40 53 ff ff callq 12d70 1da30: 48 89 c2 mov %rax,%rdx 1da33: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1da3a: 48 89 d9 mov %rbx,%rcx 1da3d: be 02 00 00 00 mov $0x2,%esi 1da42: 48 89 c7 mov %rax,%rdi 1da45: b8 00 00 00 00 mov $0x0,%eax 1da4a: e8 f1 67 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, snapid)); } 1da4f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1da53: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1da5a: 00 00 1da5c: 74 05 je 1da63 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x1ab> 1da5e: e8 7d 64 ff ff callq 13ee0 <__stack_chk_fail@plt> 1da63: 48 81 c4 58 04 00 00 add $0x458,%rsp 1da6a: 5b pop %rbx 1da6b: 5d pop %rbp 1da6c: c3 retq 000000000001da6d <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_get_name(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1da6d: 55 push %rbp 1da6e: 48 89 e5 mov %rsp,%rbp 1da71: 53 push %rbx 1da72: 48 81 ec 58 04 00 00 sub $0x458,%rsp 1da79: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1da80: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1da86: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1da8d: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1da94: 00 00 1da96: 48 89 45 e8 mov %rax,-0x18(%rbp) 1da9a: 31 c0 xor %eax,%eax uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1da9c: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1daa3: 48 8b 08 mov (%rax),%rcx 1daa6: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1daad: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dab4: 48 89 ce mov %rcx,%rsi 1dab7: 48 89 c7 mov %rax,%rdi 1daba: e8 c1 5a ff ff callq 13580 1dabf: 85 c0 test %eax,%eax 1dac1: 74 2b je 1daee <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x81> !enif_get_uint64(env, argv[1], &snapid)) 1dac3: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1daca: 48 83 c0 08 add $0x8,%rax 1dace: 48 8b 08 mov (%rax),%rcx 1dad1: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1dad8: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dadf: 48 89 ce mov %rcx,%rsi 1dae2: 48 89 c7 mov %rax,%rdi 1dae5: e8 96 5a ff ff callq 13580 ERL_NIF_TERM x_ioctx_snap_get_name(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1daea: 85 c0 test %eax,%eax 1daec: 75 07 jne 1daf5 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x88> 1daee: b8 01 00 00 00 mov $0x1,%eax 1daf3: eb 05 jmp 1dafa <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x8d> 1daf5: b8 00 00 00 00 mov $0x0,%eax 1dafa: 84 c0 test %al,%al 1dafc: 74 14 je 1db12 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0xa5> !enif_get_uint64(env, argv[1], &snapid)) { return enif_make_badarg(env); 1dafe: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1db05: 48 89 c7 mov %rax,%rdi 1db08: e8 b3 5d ff ff callq 138c0 1db0d: e9 f1 00 00 00 jmpq 1dc03 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x196> } rados_ioctx_t io = map_ioctx_get(id); 1db12: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1db19: 48 89 c7 mov %rax,%rdi 1db1c: e8 7f 52 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1db21: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1db28: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1db2f: 00 1db30: 75 14 jne 1db46 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0xd9> { return enif_make_badarg(env); 1db32: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1db39: 48 89 c7 mov %rax,%rdi 1db3c: e8 7f 5d ff ff callq 138c0 1db41: e9 bd 00 00 00 jmpq 1dc03 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x196> } char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1db46: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1db4d: ba 00 04 00 00 mov $0x400,%edx 1db52: be 00 00 00 00 mov $0x0,%esi 1db57: 48 89 c7 mov %rax,%rdi 1db5a: e8 a1 4e ff ff callq 12a00 int err = rados_ioctx_snap_get_name(io, snapid, snap, MAX_NAME_LEN); 1db5f: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1db66: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1db6d: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1db74: b9 00 04 00 00 mov $0x400,%ecx 1db79: 48 89 c7 mov %rax,%rdi 1db7c: e8 6f 63 ff ff callq 13ef0 1db81: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1db87: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1db8e: 79 1d jns 1dbad <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x140> return make_error_tuple(env, -err); 1db90: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1db96: 89 c2 mov %eax,%edx 1db98: f7 da neg %edx 1db9a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dba1: 89 d6 mov %edx,%esi 1dba3: 48 89 c7 mov %rax,%rdi 1dba6: e8 b5 62 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1dbab: eb 56 jmp 1dc03 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x196> return enif_make_tuple2(env, 1dbad: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1dbb4: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dbbb: ba 01 00 00 00 mov $0x1,%edx 1dbc0: 48 89 ce mov %rcx,%rsi 1dbc3: 48 89 c7 mov %rax,%rdi 1dbc6: e8 75 5c ff ff callq 13840 1dbcb: 48 89 c3 mov %rax,%rbx 1dbce: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dbd5: 48 8d 35 b5 5e 00 00 lea 0x5eb5(%rip),%rsi # 23a91 <_fini+0xb09> 1dbdc: 48 89 c7 mov %rax,%rdi 1dbdf: e8 8c 51 ff ff callq 12d70 1dbe4: 48 89 c2 mov %rax,%rdx 1dbe7: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1dbee: 48 89 d9 mov %rbx,%rcx 1dbf1: be 02 00 00 00 mov $0x2,%esi 1dbf6: 48 89 c7 mov %rax,%rdi 1dbf9: b8 00 00 00 00 mov $0x0,%eax 1dbfe: e8 3d 66 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_string(env, snap, ERL_NIF_LATIN1)); } 1dc03: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1dc07: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1dc0e: 00 00 1dc10: 74 05 je 1dc17 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x1aa> 1dc12: e8 c9 62 ff ff callq 13ee0 <__stack_chk_fail@plt> 1dc17: 48 81 c4 58 04 00 00 add $0x458,%rsp 1dc1e: 5b pop %rbx 1dc1f: 5d pop %rbp 1dc20: c3 retq 000000000001dc21 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_get_stamp(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1dc21: 55 push %rbp 1dc22: 48 89 e5 mov %rsp,%rbp 1dc25: 53 push %rbx 1dc26: 48 83 ec 58 sub $0x58,%rsp 1dc2a: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1dc2e: 89 75 b4 mov %esi,-0x4c(%rbp) 1dc31: 48 89 55 a8 mov %rdx,-0x58(%rbp) uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1dc35: 48 8b 45 a8 mov -0x58(%rbp),%rax 1dc39: 48 8b 08 mov (%rax),%rcx 1dc3c: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1dc40: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dc44: 48 89 ce mov %rcx,%rsi 1dc47: 48 89 c7 mov %rax,%rdi 1dc4a: e8 31 59 ff ff callq 13580 1dc4f: 85 c0 test %eax,%eax 1dc51: 74 22 je 1dc75 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x54> !enif_get_uint64(env, argv[1], &snapid)) 1dc53: 48 8b 45 a8 mov -0x58(%rbp),%rax 1dc57: 48 83 c0 08 add $0x8,%rax 1dc5b: 48 8b 08 mov (%rax),%rcx 1dc5e: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1dc62: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dc66: 48 89 ce mov %rcx,%rsi 1dc69: 48 89 c7 mov %rax,%rdi 1dc6c: e8 0f 59 ff ff callq 13580 } ERL_NIF_TERM x_ioctx_snap_get_stamp(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1dc71: 85 c0 test %eax,%eax 1dc73: 75 07 jne 1dc7c <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x5b> 1dc75: b8 01 00 00 00 mov $0x1,%eax 1dc7a: eb 05 jmp 1dc81 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x60> 1dc7c: b8 00 00 00 00 mov $0x0,%eax 1dc81: 84 c0 test %al,%al 1dc83: 74 11 je 1dc96 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x75> !enif_get_uint64(env, argv[1], &snapid)) { return enif_make_badarg(env); 1dc85: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dc89: 48 89 c7 mov %rax,%rdi 1dc8c: e8 2f 5c ff ff callq 138c0 1dc91: e9 a4 00 00 00 jmpq 1dd3a <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x119> } rados_ioctx_t io = map_ioctx_get(id); 1dc96: 48 8b 45 c8 mov -0x38(%rbp),%rax 1dc9a: 48 89 c7 mov %rax,%rdi 1dc9d: e8 fe 50 ff ff callq 12da0 <_Z13map_ioctx_getm@plt> 1dca2: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1dca6: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1dcab: 75 0e jne 1dcbb <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x9a> { return enif_make_badarg(env); 1dcad: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dcb1: 48 89 c7 mov %rax,%rdi 1dcb4: e8 07 5c ff ff callq 138c0 1dcb9: eb 7f jmp 1dd3a <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x119> } time_t tm; int err = rados_ioctx_snap_get_stamp(io, snapid, &tm); 1dcbb: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1dcbf: 48 8d 55 d8 lea -0x28(%rbp),%rdx 1dcc3: 48 8b 45 e0 mov -0x20(%rbp),%rax 1dcc7: 48 89 ce mov %rcx,%rsi 1dcca: 48 89 c7 mov %rax,%rdi 1dccd: e8 2e 4e ff ff callq 12b00 1dcd2: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1dcd5: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1dcd9: 79 17 jns 1dcf2 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0xd1> return make_error_tuple(env, -err); 1dcdb: 8b 45 ec mov -0x14(%rbp),%eax 1dcde: 89 c2 mov %eax,%edx 1dce0: f7 da neg %edx 1dce2: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dce6: 89 d6 mov %edx,%esi 1dce8: 48 89 c7 mov %rax,%rdi 1dceb: e8 70 61 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 1dcf0: eb 48 jmp 1dd3a <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x119> return enif_make_tuple2(env, 1dcf2: 48 8b 45 d8 mov -0x28(%rbp),%rax 1dcf6: 48 89 c2 mov %rax,%rdx 1dcf9: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dcfd: 48 89 d6 mov %rdx,%rsi 1dd00: 48 89 c7 mov %rax,%rdi 1dd03: e8 48 5e ff ff callq 13b50 1dd08: 48 89 c3 mov %rax,%rbx 1dd0b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dd0f: 48 8d 35 7b 5d 00 00 lea 0x5d7b(%rip),%rsi # 23a91 <_fini+0xb09> 1dd16: 48 89 c7 mov %rax,%rdi 1dd19: e8 52 50 ff ff callq 12d70 1dd1e: 48 89 c2 mov %rax,%rdx 1dd21: 48 8b 45 b8 mov -0x48(%rbp),%rax 1dd25: 48 89 d9 mov %rbx,%rcx 1dd28: be 02 00 00 00 mov $0x2,%esi 1dd2d: 48 89 c7 mov %rax,%rdi 1dd30: b8 00 00 00 00 mov $0x0,%eax 1dd35: e8 06 65 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, tm)); } 1dd3a: 48 83 c4 58 add $0x58,%rsp 1dd3e: 5b pop %rbx 1dd3f: 5d pop %rbp 1dd40: c3 retq 1dd41: 90 nop 1dd42: 90 nop 1dd43: 90 nop 000000000001dd44 <_ZN6FSUtil5mkdirEPKcj>: #elif __unix__ #define PATH_SEPARATOR '/' #endif int FSUtil::mkdir(const char* dir, mode_t mode) { 1dd44: 55 push %rbp 1dd45: 48 89 e5 mov %rsp,%rbp 1dd48: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 1dd4f: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 1dd56: 89 b5 54 ff ff ff mov %esi,-0xac(%rbp) struct stat st; int status = 0; 1dd5c: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) if (stat(dir, &st) != 0) { 1dd63: 48 8d 95 60 ff ff ff lea -0xa0(%rbp),%rdx 1dd6a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1dd71: 48 89 d6 mov %rdx,%rsi 1dd74: 48 89 c7 mov %rax,%rdi 1dd77: e8 c4 51 00 00 callq 22f40 <__stat> 1dd7c: 85 c0 test %eax,%eax 1dd7e: 0f 95 c0 setne %al 1dd81: 84 c0 test %al,%al 1dd83: 74 29 je 1ddae <_ZN6FSUtil5mkdirEPKcj+0x6a> /* Directory does not exist */ if (::mkdir(dir, mode) != 0) 1dd85: 8b 95 54 ff ff ff mov -0xac(%rbp),%edx 1dd8b: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1dd92: 89 d6 mov %edx,%esi 1dd94: 48 89 c7 mov %rax,%rdi 1dd97: e8 b4 69 ff ff callq 14750 1dd9c: 85 c0 test %eax,%eax 1dd9e: 0f 95 c0 setne %al 1dda1: 84 c0 test %al,%al 1dda3: 74 2d je 1ddd2 <_ZN6FSUtil5mkdirEPKcj+0x8e> status = -1; 1dda5: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) 1ddac: eb 24 jmp 1ddd2 <_ZN6FSUtil5mkdirEPKcj+0x8e> } else if (!S_ISDIR(st.st_mode)) { 1ddae: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 1ddb4: 25 00 f0 00 00 and $0xf000,%eax 1ddb9: 3d 00 40 00 00 cmp $0x4000,%eax 1ddbe: 74 12 je 1ddd2 <_ZN6FSUtil5mkdirEPKcj+0x8e> errno = ENOTDIR; 1ddc0: e8 2b 60 ff ff callq 13df0 <__errno_location@plt> 1ddc5: c7 00 14 00 00 00 movl $0x14,(%rax) status = -1; 1ddcb: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } return(status); 1ddd2: 8b 45 fc mov -0x4(%rbp),%eax } 1ddd5: c9 leaveq 1ddd6: c3 retq 1ddd7: 90 nop 000000000001ddd8 <_ZN6FSUtil6mkpathEPKcj>: int FSUtil::mkpath(const char* path, mode_t mode) { 1ddd8: 55 push %rbp 1ddd9: 48 89 e5 mov %rsp,%rbp 1dddc: 48 83 ec 30 sub $0x30,%rsp 1dde0: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1dde4: 89 75 d4 mov %esi,-0x2c(%rbp) char *pp; char *sp; int status; char *copypath = strdup(path); 1dde7: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ddeb: 48 89 c7 mov %rax,%rdi 1ddee: e8 5d 60 ff ff callq 13e50 1ddf3: 48 89 45 f0 mov %rax,-0x10(%rbp) status = 0; 1ddf7: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) pp = copypath; 1ddfe: 48 8b 45 f0 mov -0x10(%rbp),%rax 1de02: 48 89 45 e0 mov %rax,-0x20(%rbp) while (status == 0 && (sp = strchr(pp, PATH_SEPARATOR)) != 0) 1de06: eb 38 jmp 1de40 <_ZN6FSUtil6mkpathEPKcj+0x68> { if (sp != pp) 1de08: 48 8b 45 e8 mov -0x18(%rbp),%rax 1de0c: 48 3b 45 e0 cmp -0x20(%rbp),%rax 1de10: 74 22 je 1de34 <_ZN6FSUtil6mkpathEPKcj+0x5c> { /* Neither root nor double slash in path */ *sp = '\0'; 1de12: 48 8b 45 e8 mov -0x18(%rbp),%rax 1de16: c6 00 00 movb $0x0,(%rax) status = FSUtil::mkdir(copypath, mode); 1de19: 8b 55 d4 mov -0x2c(%rbp),%edx 1de1c: 48 8b 45 f0 mov -0x10(%rbp),%rax 1de20: 89 d6 mov %edx,%esi 1de22: 48 89 c7 mov %rax,%rdi 1de25: e8 36 61 ff ff callq 13f60 <_ZN6FSUtil5mkdirEPKcj@plt> 1de2a: 89 45 fc mov %eax,-0x4(%rbp) *sp = PATH_SEPARATOR; 1de2d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1de31: c6 00 2f movb $0x2f,(%rax) } pp = sp + 1; 1de34: 48 8b 45 e8 mov -0x18(%rbp),%rax 1de38: 48 83 c0 01 add $0x1,%rax 1de3c: 48 89 45 e0 mov %rax,-0x20(%rbp) int status; char *copypath = strdup(path); status = 0; pp = copypath; while (status == 0 && (sp = strchr(pp, PATH_SEPARATOR)) != 0) 1de40: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1de44: 75 23 jne 1de69 <_ZN6FSUtil6mkpathEPKcj+0x91> 1de46: 48 8b 45 e0 mov -0x20(%rbp),%rax 1de4a: be 2f 00 00 00 mov $0x2f,%esi 1de4f: 48 89 c7 mov %rax,%rdi 1de52: e8 99 5e ff ff callq 13cf0 1de57: 48 89 45 e8 mov %rax,-0x18(%rbp) 1de5b: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 1de60: 74 07 je 1de69 <_ZN6FSUtil6mkpathEPKcj+0x91> 1de62: b8 01 00 00 00 mov $0x1,%eax 1de67: eb 05 jmp 1de6e <_ZN6FSUtil6mkpathEPKcj+0x96> 1de69: b8 00 00 00 00 mov $0x0,%eax 1de6e: 84 c0 test %al,%al 1de70: 75 96 jne 1de08 <_ZN6FSUtil6mkpathEPKcj+0x30> status = FSUtil::mkdir(copypath, mode); *sp = PATH_SEPARATOR; } pp = sp + 1; } if (status == 0) 1de72: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1de76: 75 14 jne 1de8c <_ZN6FSUtil6mkpathEPKcj+0xb4> status = FSUtil::mkdir(path, mode); 1de78: 8b 55 d4 mov -0x2c(%rbp),%edx 1de7b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1de7f: 89 d6 mov %edx,%esi 1de81: 48 89 c7 mov %rax,%rdi 1de84: e8 d7 60 ff ff callq 13f60 <_ZN6FSUtil5mkdirEPKcj@plt> 1de89: 89 45 fc mov %eax,-0x4(%rbp) free(copypath); 1de8c: 48 8b 45 f0 mov -0x10(%rbp),%rax 1de90: 48 89 c7 mov %rax,%rdi 1de93: e8 18 56 ff ff callq 134b0 return (status); 1de98: 8b 45 fc mov -0x4(%rbp),%eax } 1de9b: c9 leaveq 1de9c: c3 retq 1de9d: 90 nop 1de9e: 90 nop 1de9f: 90 nop 000000000001dea0 <_ZN6XMutexC1Ev>: * All rights reserved. */ #include "mutex.hpp" XMutex::XMutex() 1dea0: 55 push %rbp 1dea1: 48 89 e5 mov %rsp,%rbp 1dea4: 48 83 ec 10 sub $0x10,%rsp 1dea8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { #if __WIN32__ || _MSC_VER InitializeCriticalSection(&crit_section); #elif __unix__ pthread_mutex_init(&mutex, NULL); 1deac: 48 8b 45 f8 mov -0x8(%rbp),%rax 1deb0: be 00 00 00 00 mov $0x0,%esi 1deb5: 48 89 c7 mov %rax,%rdi 1deb8: e8 93 53 ff ff callq 13250 #endif } 1debd: c9 leaveq 1debe: c3 retq 1debf: 90 nop 000000000001dec0 <_ZN6XMutexD1Ev>: XMutex::~XMutex() 1dec0: 55 push %rbp 1dec1: 48 89 e5 mov %rsp,%rbp 1dec4: 48 83 ec 10 sub $0x10,%rsp 1dec8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { #if __WIN32__ || _MSC_VER DeleteCriticalSection(&crit_section); #elif __unix__ pthread_mutex_destroy(&mutex); 1decc: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ded0: 48 89 c7 mov %rax,%rdi 1ded3: e8 48 66 ff ff callq 14520 #endif } 1ded8: c9 leaveq 1ded9: c3 retq 000000000001deda <_ZN6XMutex4lockEv>: void XMutex::lock() { 1deda: 55 push %rbp 1dedb: 48 89 e5 mov %rsp,%rbp 1dede: 48 83 ec 10 sub $0x10,%rsp 1dee2: 48 89 7d f8 mov %rdi,-0x8(%rbp) #if __WIN32__ || _MSC_VER EnterCriticalSection(&crit_section); #elif __unix__ pthread_mutex_lock(&mutex); 1dee6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1deea: 48 89 c7 mov %rax,%rdi 1deed: e8 fe 64 ff ff callq 143f0 #endif } 1def2: c9 leaveq 1def3: c3 retq 000000000001def4 <_ZN6XMutex6unlockEv>: void XMutex::unlock() { 1def4: 55 push %rbp 1def5: 48 89 e5 mov %rsp,%rbp 1def8: 48 83 ec 10 sub $0x10,%rsp 1defc: 48 89 7d f8 mov %rdi,-0x8(%rbp) #if __WIN32__ || _MSC_VER LeaveCriticalSection(&crit_section); #elif __unix__ pthread_mutex_unlock(&mutex); 1df00: 48 8b 45 f8 mov -0x8(%rbp),%rax 1df04: 48 89 c7 mov %rax,%rdi 1df07: e8 24 67 ff ff callq 14630 #endif } 1df0c: c9 leaveq 1df0d: c3 retq 1df0e: 90 nop 1df0f: 90 nop 000000000001df10 <_ZN6TMUtil14getCurrentTimeER5XTime>: #endif #include "tmutil.hpp" void TMUtil::getCurrentTime(struct XTime& currTime) { 1df10: 55 push %rbp 1df11: 48 89 e5 mov %rsp,%rbp 1df14: 48 83 ec 10 sub $0x10,%rsp 1df18: 48 89 7d f8 mov %rdi,-0x8(%rbp) static struct timeval tv; static struct tm* ptm; static int milliseconds; // obtain time of day and convert to a tm struct gettimeofday(&tv, NULL); 1df1c: be 00 00 00 00 mov $0x0,%esi 1df21: 48 8d 3d c8 d8 20 00 lea 0x20d8c8(%rip),%rdi # 22b7f0 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv> 1df28: e8 a3 4e ff ff callq 12dd0 ptm = localtime((const time_t*)&tv.tv_sec); 1df2d: 48 8d 3d bc d8 20 00 lea 0x20d8bc(%rip),%rdi # 22b7f0 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv> 1df34: e8 b7 65 ff ff callq 144f0 1df39: 48 89 05 c0 d8 20 00 mov %rax,0x20d8c0(%rip) # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> // Convert microseconds to milliseconds milliseconds = tv.tv_usec / 1000; 1df40: 48 8b 0d b1 d8 20 00 mov 0x20d8b1(%rip),%rcx # 22b7f8 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv+0x8> 1df47: 48 ba cf f7 53 e3 a5 movabs $0x20c49ba5e353f7cf,%rdx 1df4e: 9b c4 20 1df51: 48 89 c8 mov %rcx,%rax 1df54: 48 f7 ea imul %rdx 1df57: 48 c1 fa 07 sar $0x7,%rdx 1df5b: 48 89 c8 mov %rcx,%rax 1df5e: 48 c1 f8 3f sar $0x3f,%rax 1df62: 48 89 d1 mov %rdx,%rcx 1df65: 48 29 c1 sub %rax,%rcx 1df68: 48 89 c8 mov %rcx,%rax 1df6b: 89 05 97 d8 20 00 mov %eax,0x20d897(%rip) # 22b808 <_ZZN6TMUtil14getCurrentTimeER5XTimeE12milliseconds> currTime.weekday = ptm->tm_wday; 1df71: 48 8b 05 88 d8 20 00 mov 0x20d888(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1df78: 8b 50 18 mov 0x18(%rax),%edx 1df7b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1df7f: 89 10 mov %edx,(%rax) currTime.month = ptm->tm_mon; 1df81: 48 8b 05 78 d8 20 00 mov 0x20d878(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1df88: 8b 50 10 mov 0x10(%rax),%edx 1df8b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1df8f: 89 50 04 mov %edx,0x4(%rax) currTime.day = ptm->tm_mday; 1df92: 48 8b 05 67 d8 20 00 mov 0x20d867(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1df99: 8b 50 0c mov 0xc(%rax),%edx 1df9c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dfa0: 89 50 08 mov %edx,0x8(%rax) currTime.year = 1900 + ptm->tm_year; 1dfa3: 48 8b 05 56 d8 20 00 mov 0x20d856(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1dfaa: 8b 40 14 mov 0x14(%rax),%eax 1dfad: 8d 90 6c 07 00 00 lea 0x76c(%rax),%edx 1dfb3: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dfb7: 89 50 0c mov %edx,0xc(%rax) currTime.hour = ptm->tm_hour; 1dfba: 48 8b 05 3f d8 20 00 mov 0x20d83f(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1dfc1: 8b 50 08 mov 0x8(%rax),%edx 1dfc4: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dfc8: 89 50 10 mov %edx,0x10(%rax) currTime.min = ptm->tm_min; 1dfcb: 48 8b 05 2e d8 20 00 mov 0x20d82e(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1dfd2: 8b 50 04 mov 0x4(%rax),%edx 1dfd5: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dfd9: 89 50 14 mov %edx,0x14(%rax) currTime.second = ptm->tm_sec; 1dfdc: 48 8b 05 1d d8 20 00 mov 0x20d81d(%rip),%rax # 22b800 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1dfe3: 8b 10 mov (%rax),%edx 1dfe5: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dfe9: 89 50 18 mov %edx,0x18(%rax) currTime.millisecond = milliseconds; 1dfec: 8b 15 16 d8 20 00 mov 0x20d816(%rip),%edx # 22b808 <_ZZN6TMUtil14getCurrentTimeER5XTimeE12milliseconds> 1dff2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dff6: 89 50 1c mov %edx,0x1c(%rax) #endif } 1dff9: c9 leaveq 1dffa: c3 retq 1dffb: 90 nop 000000000001dffc <_ZN4XLogC1Ev>: /******************************************************************************** * XLog ********************************************************************************/ XLog::XLog() 1dffc: 55 push %rbp 1dffd: 48 89 e5 mov %rsp,%rbp 1e000: 53 push %rbx 1e001: 48 83 ec 18 sub $0x18,%rsp 1e005: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e009: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e00d: 48 89 c7 mov %rax,%rdi 1e010: e8 3b 49 ff ff callq 12950 <_ZNSsC1Ev@plt> 1e015: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e019: 48 83 c0 10 add $0x10,%rax 1e01d: 48 89 c7 mov %rax,%rdi 1e020: e8 db 5f ff ff callq 14000 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt> { curr_level = NONE; 1e025: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e029: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) } 1e030: 48 83 c4 18 add $0x18,%rsp 1e034: 5b pop %rbx 1e035: 5d pop %rbp 1e036: c3 retq 1e037: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLog ********************************************************************************/ XLog::XLog() 1e03a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e03e: 48 89 c7 mov %rax,%rdi 1e041: e8 ea 53 ff ff callq 13430 <_ZNSsD1Ev@plt> 1e046: 48 89 d8 mov %rbx,%rax 1e049: 48 89 c7 mov %rax,%rdi 1e04c: e8 2f 65 ff ff callq 14580 <_Unwind_Resume@plt> 1e051: 90 nop 000000000001e052 <_ZN4XLogC1ERKSs>: { curr_level = NONE; } XLog::XLog(const string& name) 1e052: 55 push %rbp 1e053: 48 89 e5 mov %rsp,%rbp 1e056: 53 push %rbx 1e057: 48 83 ec 18 sub $0x18,%rsp 1e05b: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e05f: 48 89 75 e0 mov %rsi,-0x20(%rbp) 1e063: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e067: 48 89 c7 mov %rax,%rdi 1e06a: e8 e1 48 ff ff callq 12950 <_ZNSsC1Ev@plt> 1e06f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e073: 48 83 c0 10 add $0x10,%rax 1e077: 48 89 c7 mov %rax,%rdi 1e07a: e8 81 5f ff ff callq 14000 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt> { curr_level = NONE; 1e07f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e083: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) logger_name = name; 1e08a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e08e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1e092: 48 89 d6 mov %rdx,%rsi 1e095: 48 89 c7 mov %rax,%rdi 1e098: e8 03 66 ff ff callq 146a0 <_ZNSsaSERKSs@plt> } 1e09d: eb 2f jmp 1e0ce <_ZN4XLogC1ERKSs+0x7c> 1e09f: 48 89 c3 mov %rax,%rbx XLog::XLog() { curr_level = NONE; } XLog::XLog(const string& name) 1e0a2: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e0a6: 48 83 c0 10 add $0x10,%rax 1e0aa: 48 89 c7 mov %rax,%rdi 1e0ad: e8 de 4b ff ff callq 12c90 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt> 1e0b2: eb 03 jmp 1e0b7 <_ZN4XLogC1ERKSs+0x65> 1e0b4: 48 89 c3 mov %rax,%rbx 1e0b7: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e0bb: 48 89 c7 mov %rax,%rdi 1e0be: e8 6d 53 ff ff callq 13430 <_ZNSsD1Ev@plt> 1e0c3: 48 89 d8 mov %rbx,%rax 1e0c6: 48 89 c7 mov %rax,%rdi 1e0c9: e8 b2 64 ff ff callq 14580 <_Unwind_Resume@plt> { curr_level = NONE; logger_name = name; } 1e0ce: 48 83 c4 18 add $0x18,%rsp 1e0d2: 5b pop %rbx 1e0d3: 5d pop %rbp 1e0d4: c3 retq 1e0d5: 90 nop 000000000001e0d6 <_ZN4XLog8setLevelE8LogLevel>: void XLog::setLevel(LogLevel level) { 1e0d6: 55 push %rbp 1e0d7: 48 89 e5 mov %rsp,%rbp 1e0da: 48 83 ec 30 sub $0x30,%rsp 1e0de: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1e0e2: 89 75 d4 mov %esi,-0x2c(%rbp) curr_level = level; 1e0e5: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e0e9: 8b 55 d4 mov -0x2c(%rbp),%edx 1e0ec: 89 50 08 mov %edx,0x8(%rax) set::iterator it = log_handlers.begin(); 1e0ef: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e0f3: 48 83 c0 10 add $0x10,%rax 1e0f7: 48 89 c7 mov %rax,%rdi 1e0fa: e8 e1 50 ff ff callq 131e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1e0ff: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1e103: eb 34 jmp 1e139 <_ZN4XLog8setLevelE8LogLevel+0x63> (*it)->setLevel(level); 1e105: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e109: 48 89 c7 mov %rax,%rdi 1e10c: e8 af 5d ff ff callq 13ec0 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1e111: 48 8b 00 mov (%rax),%rax 1e114: 48 8b 10 mov (%rax),%rdx 1e117: 48 83 c2 20 add $0x20,%rdx 1e11b: 48 8b 0a mov (%rdx),%rcx 1e11e: 8b 55 d4 mov -0x2c(%rbp),%edx 1e121: 89 d6 mov %edx,%esi 1e123: 48 89 c7 mov %rax,%rdi 1e126: ff d1 callq *%rcx it++; 1e128: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e12c: be 00 00 00 00 mov $0x0,%esi 1e131: 48 89 c7 mov %rax,%rdi 1e134: e8 57 51 ff ff callq 13290 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt> void XLog::setLevel(LogLevel level) { curr_level = level; set::iterator it = log_handlers.begin(); while (it != log_handlers.end()) { 1e139: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e13d: 48 83 c0 10 add $0x10,%rax 1e141: 48 89 c7 mov %rax,%rdi 1e144: e8 c7 5b ff ff callq 13d10 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1e149: 48 89 45 f0 mov %rax,-0x10(%rbp) 1e14d: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1e151: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e155: 48 89 d6 mov %rdx,%rsi 1e158: 48 89 c7 mov %rax,%rdi 1e15b: e8 d0 51 ff ff callq 13330 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1e160: 84 c0 test %al,%al 1e162: 75 a1 jne 1e105 <_ZN4XLog8setLevelE8LogLevel+0x2f> (*it)->setLevel(level); it++; } } 1e164: c9 leaveq 1e165: c3 retq 000000000001e166 <_ZN4XLog10addHandlerER11XLogHandler>: void XLog::addHandler(XLogHandler& handler) { 1e166: 55 push %rbp 1e167: 48 89 e5 mov %rsp,%rbp 1e16a: 48 83 ec 40 sub $0x40,%rsp 1e16e: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1e172: 48 89 75 d0 mov %rsi,-0x30(%rbp) log_handlers.insert(&handler); 1e176: 48 8b 45 d0 mov -0x30(%rbp),%rax 1e17a: 48 89 45 f8 mov %rax,-0x8(%rbp) 1e17e: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e182: 48 8d 50 10 lea 0x10(%rax),%rdx 1e186: 48 8d 45 f8 lea -0x8(%rbp),%rax 1e18a: 48 89 c6 mov %rax,%rsi 1e18d: 48 89 d7 mov %rdx,%rdi 1e190: e8 8b 48 ff ff callq 12a20 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_@plt> 1e195: 48 89 c1 mov %rax,%rcx 1e198: 89 d0 mov %edx,%eax 1e19a: 48 89 4d c0 mov %rcx,-0x40(%rbp) 1e19e: 89 45 c8 mov %eax,-0x38(%rbp) 1e1a1: 48 8b 45 c0 mov -0x40(%rbp),%rax 1e1a5: 48 89 45 e0 mov %rax,-0x20(%rbp) 1e1a9: 48 8b 45 c8 mov -0x38(%rbp),%rax 1e1ad: 48 89 45 e8 mov %rax,-0x18(%rbp) } 1e1b1: c9 leaveq 1e1b2: c3 retq 1e1b3: 90 nop 000000000001e1b4 <_ZN4XLog13removeHandlerEP11XLogHandler>: void XLog::removeHandler(XLogHandler* const handler) { 1e1b4: 55 push %rbp 1e1b5: 48 89 e5 mov %rsp,%rbp 1e1b8: 48 83 ec 30 sub $0x30,%rsp 1e1bc: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1e1c0: 48 89 75 d0 mov %rsi,-0x30(%rbp) set::iterator it = log_handlers.find(handler); 1e1c4: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e1c8: 48 8d 50 10 lea 0x10(%rax),%rdx 1e1cc: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e1d0: 48 89 c6 mov %rax,%rsi 1e1d3: 48 89 d7 mov %rdx,%rdi 1e1d6: e8 35 5f ff ff callq 14110 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE4findERKS1_@plt> 1e1db: 48 89 45 e0 mov %rax,-0x20(%rbp) if (it != log_handlers.end()) 1e1df: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e1e3: 48 83 c0 10 add $0x10,%rax 1e1e7: 48 89 c7 mov %rax,%rdi 1e1ea: e8 21 5b ff ff callq 13d10 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1e1ef: 48 89 45 f0 mov %rax,-0x10(%rbp) 1e1f3: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1e1f7: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e1fb: 48 89 d6 mov %rdx,%rsi 1e1fe: 48 89 c7 mov %rax,%rdi 1e201: e8 2a 51 ff ff callq 13330 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1e206: 84 c0 test %al,%al 1e208: 74 17 je 1e221 <_ZN4XLog13removeHandlerEP11XLogHandler+0x6d> log_handlers.erase(it); 1e20a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e20e: 48 8d 50 10 lea 0x10(%rax),%rdx 1e212: 48 8b 45 e0 mov -0x20(%rbp),%rax 1e216: 48 89 c6 mov %rax,%rsi 1e219: 48 89 d7 mov %rdx,%rdi 1e21c: e8 ff 5f ff ff callq 14220 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt> } 1e221: c9 leaveq 1e222: c3 retq 1e223: 90 nop 000000000001e224 <_ZN4XLog5fatalEPKcS1_S1_z>: void XLog::fatal(const char* origin, const char* func, const char* format, ...) { 1e224: 55 push %rbp 1e225: 48 89 e5 mov %rsp,%rbp 1e228: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1e22f: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1e236: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1e23d: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1e244: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1e24b: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1e252: 84 c0 test %al,%al 1e254: 74 20 je 1e276 <_ZN4XLog5fatalEPKcS1_S1_z+0x52> 1e256: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1e25a: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1e25e: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1e262: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1e266: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1e26a: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1e26e: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1e272: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1e276: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (FATAL > curr_level) 1e27d: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e284: 8b 40 08 mov 0x8(%rax),%eax 1e287: 85 c0 test %eax,%eax 1e289: 7e 65 jle 1e2f0 <_ZN4XLog5fatalEPKcS1_S1_z+0xcc> return; va_list ap; va_start(ap, format); 1e28b: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1e292: 00 00 00 1e295: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1e29c: 00 00 00 1e29f: 48 8d 45 10 lea 0x10(%rbp),%rax 1e2a3: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1e2aa: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1e2b1: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, FATAL, format, ap); 1e2b8: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1e2bf: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1e2c6: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1e2cd: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1e2d4: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e2db: 49 89 f9 mov %rdi,%r9 1e2de: 49 89 c8 mov %rcx,%r8 1e2e1: b9 01 00 00 00 mov $0x1,%ecx 1e2e6: 48 89 c7 mov %rax,%rdi 1e2e9: e8 42 48 ff ff callq 12b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1e2ee: eb 01 jmp 1e2f1 <_ZN4XLog5fatalEPKcS1_S1_z+0xcd> } void XLog::fatal(const char* origin, const char* func, const char* format, ...) { if (FATAL > curr_level) return; 1e2f0: 90 nop va_list ap; va_start(ap, format); log(origin, func, FATAL, format, ap); va_end(ap); } 1e2f1: c9 leaveq 1e2f2: c3 retq 1e2f3: 90 nop 000000000001e2f4 <_ZN4XLog5errorEPKcS1_S1_z>: void XLog::error(const char* origin, const char* func, const char* format, ...) { 1e2f4: 55 push %rbp 1e2f5: 48 89 e5 mov %rsp,%rbp 1e2f8: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1e2ff: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1e306: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1e30d: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1e314: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1e31b: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1e322: 84 c0 test %al,%al 1e324: 74 20 je 1e346 <_ZN4XLog5errorEPKcS1_S1_z+0x52> 1e326: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1e32a: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1e32e: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1e332: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1e336: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1e33a: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1e33e: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1e342: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1e346: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (ERROR > curr_level) 1e34d: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e354: 8b 40 08 mov 0x8(%rax),%eax 1e357: 83 f8 01 cmp $0x1,%eax 1e35a: 7e 65 jle 1e3c1 <_ZN4XLog5errorEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1e35c: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1e363: 00 00 00 1e366: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1e36d: 00 00 00 1e370: 48 8d 45 10 lea 0x10(%rbp),%rax 1e374: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1e37b: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1e382: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, ERROR, format, ap); 1e389: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1e390: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1e397: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1e39e: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1e3a5: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e3ac: 49 89 f9 mov %rdi,%r9 1e3af: 49 89 c8 mov %rcx,%r8 1e3b2: b9 02 00 00 00 mov $0x2,%ecx 1e3b7: 48 89 c7 mov %rax,%rdi 1e3ba: e8 71 47 ff ff callq 12b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1e3bf: eb 01 jmp 1e3c2 <_ZN4XLog5errorEPKcS1_S1_z+0xce> } void XLog::error(const char* origin, const char* func, const char* format, ...) { if (ERROR > curr_level) return; 1e3c1: 90 nop va_list ap; va_start(ap, format); log(origin, func, ERROR, format, ap); va_end(ap); } 1e3c2: c9 leaveq 1e3c3: c3 retq 000000000001e3c4 <_ZN4XLog7warningEPKcS1_S1_z>: void XLog::warning(const char* origin, const char* func, const char* format, ...) { 1e3c4: 55 push %rbp 1e3c5: 48 89 e5 mov %rsp,%rbp 1e3c8: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1e3cf: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1e3d6: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1e3dd: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1e3e4: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1e3eb: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1e3f2: 84 c0 test %al,%al 1e3f4: 74 20 je 1e416 <_ZN4XLog7warningEPKcS1_S1_z+0x52> 1e3f6: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1e3fa: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1e3fe: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1e402: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1e406: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1e40a: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1e40e: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1e412: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1e416: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (WARNING > curr_level) 1e41d: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e424: 8b 40 08 mov 0x8(%rax),%eax 1e427: 83 f8 02 cmp $0x2,%eax 1e42a: 7e 65 jle 1e491 <_ZN4XLog7warningEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1e42c: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1e433: 00 00 00 1e436: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1e43d: 00 00 00 1e440: 48 8d 45 10 lea 0x10(%rbp),%rax 1e444: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1e44b: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1e452: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, WARNING, format, ap); 1e459: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1e460: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1e467: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1e46e: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1e475: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e47c: 49 89 f9 mov %rdi,%r9 1e47f: 49 89 c8 mov %rcx,%r8 1e482: b9 03 00 00 00 mov $0x3,%ecx 1e487: 48 89 c7 mov %rax,%rdi 1e48a: e8 a1 46 ff ff callq 12b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1e48f: eb 01 jmp 1e492 <_ZN4XLog7warningEPKcS1_S1_z+0xce> } void XLog::warning(const char* origin, const char* func, const char* format, ...) { if (WARNING > curr_level) return; 1e491: 90 nop va_list ap; va_start(ap, format); log(origin, func, WARNING, format, ap); va_end(ap); } 1e492: c9 leaveq 1e493: c3 retq 000000000001e494 <_ZN4XLog4infoEPKcS1_S1_z>: void XLog::info(const char* origin, const char* func, const char* format, ...) { 1e494: 55 push %rbp 1e495: 48 89 e5 mov %rsp,%rbp 1e498: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1e49f: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1e4a6: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1e4ad: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1e4b4: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1e4bb: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1e4c2: 84 c0 test %al,%al 1e4c4: 74 20 je 1e4e6 <_ZN4XLog4infoEPKcS1_S1_z+0x52> 1e4c6: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1e4ca: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1e4ce: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1e4d2: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1e4d6: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1e4da: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1e4de: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1e4e2: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1e4e6: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (INFO > curr_level) 1e4ed: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e4f4: 8b 40 08 mov 0x8(%rax),%eax 1e4f7: 83 f8 03 cmp $0x3,%eax 1e4fa: 7e 65 jle 1e561 <_ZN4XLog4infoEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1e4fc: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1e503: 00 00 00 1e506: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1e50d: 00 00 00 1e510: 48 8d 45 10 lea 0x10(%rbp),%rax 1e514: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1e51b: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1e522: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, INFO, format, ap); 1e529: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1e530: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1e537: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1e53e: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1e545: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e54c: 49 89 f9 mov %rdi,%r9 1e54f: 49 89 c8 mov %rcx,%r8 1e552: b9 04 00 00 00 mov $0x4,%ecx 1e557: 48 89 c7 mov %rax,%rdi 1e55a: e8 d1 45 ff ff callq 12b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1e55f: eb 01 jmp 1e562 <_ZN4XLog4infoEPKcS1_S1_z+0xce> } void XLog::info(const char* origin, const char* func, const char* format, ...) { if (INFO > curr_level) return; 1e561: 90 nop va_list ap; va_start(ap, format); log(origin, func, INFO, format, ap); va_end(ap); } 1e562: c9 leaveq 1e563: c3 retq 000000000001e564 <_ZN4XLog5debugEPKcS1_S1_z>: void XLog::debug(const char* origin, const char* func, const char* format, ...) { 1e564: 55 push %rbp 1e565: 48 89 e5 mov %rsp,%rbp 1e568: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1e56f: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1e576: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1e57d: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1e584: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1e58b: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1e592: 84 c0 test %al,%al 1e594: 74 20 je 1e5b6 <_ZN4XLog5debugEPKcS1_S1_z+0x52> 1e596: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1e59a: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1e59e: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1e5a2: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1e5a6: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1e5aa: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1e5ae: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1e5b2: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1e5b6: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (DEBUG > curr_level) 1e5bd: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e5c4: 8b 40 08 mov 0x8(%rax),%eax 1e5c7: 83 f8 04 cmp $0x4,%eax 1e5ca: 7e 65 jle 1e631 <_ZN4XLog5debugEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1e5cc: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1e5d3: 00 00 00 1e5d6: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1e5dd: 00 00 00 1e5e0: 48 8d 45 10 lea 0x10(%rbp),%rax 1e5e4: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1e5eb: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1e5f2: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, DEBUG, format, ap); 1e5f9: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1e600: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1e607: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1e60e: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1e615: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1e61c: 49 89 f9 mov %rdi,%r9 1e61f: 49 89 c8 mov %rcx,%r8 1e622: b9 05 00 00 00 mov $0x5,%ecx 1e627: 48 89 c7 mov %rax,%rdi 1e62a: e8 01 45 ff ff callq 12b30 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1e62f: eb 01 jmp 1e632 <_ZN4XLog5debugEPKcS1_S1_z+0xce> } void XLog::debug(const char* origin, const char* func, const char* format, ...) { if (DEBUG > curr_level) return; 1e631: 90 nop va_list ap; va_start(ap, format); log(origin, func, DEBUG, format, ap); va_end(ap); } 1e632: c9 leaveq 1e633: c3 retq 000000000001e634 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLog::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1e634: 55 push %rbp 1e635: 48 89 e5 mov %rsp,%rbp 1e638: 48 83 ec 50 sub $0x50,%rsp 1e63c: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1e640: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1e644: 48 89 55 c8 mov %rdx,-0x38(%rbp) 1e648: 89 4d c4 mov %ecx,-0x3c(%rbp) 1e64b: 4c 89 45 b8 mov %r8,-0x48(%rbp) 1e64f: 4c 89 4d b0 mov %r9,-0x50(%rbp) set::iterator it = log_handlers.begin(); 1e653: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e657: 48 83 c0 10 add $0x10,%rax 1e65b: 48 89 c7 mov %rax,%rdi 1e65e: e8 7d 4b ff ff callq 131e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1e663: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1e667: eb 55 jmp 1e6be <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x8a> XLogHandler * handler = *it; 1e669: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e66d: 48 89 c7 mov %rax,%rdi 1e670: e8 4b 58 ff ff callq 13ec0 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1e675: 48 8b 00 mov (%rax),%rax 1e678: 48 89 45 f8 mov %rax,-0x8(%rbp) // int status; // char * demangled = abi::__cxa_demangle(typeid(*handler).name(), 0, 0, &status); // printf("XLog:log() - handler type: %s\n", demangled); // //free(demangled); handler->log(origin, func, level, format, arglist); 1e67c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e680: 48 8b 00 mov (%rax),%rax 1e683: 48 83 c0 18 add $0x18,%rax 1e687: 4c 8b 10 mov (%rax),%r10 1e68a: 4c 8b 45 b0 mov -0x50(%rbp),%r8 1e68e: 48 8b 7d b8 mov -0x48(%rbp),%rdi 1e692: 8b 4d c4 mov -0x3c(%rbp),%ecx 1e695: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1e699: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1e69d: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e6a1: 4d 89 c1 mov %r8,%r9 1e6a4: 49 89 f8 mov %rdi,%r8 1e6a7: 48 89 c7 mov %rax,%rdi 1e6aa: 41 ff d2 callq *%r10 it++; 1e6ad: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e6b1: be 00 00 00 00 mov $0x0,%esi 1e6b6: 48 89 c7 mov %rax,%rdi 1e6b9: e8 d2 4b ff ff callq 13290 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt> } void XLog::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { set::iterator it = log_handlers.begin(); while (it != log_handlers.end()) { 1e6be: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e6c2: 48 83 c0 10 add $0x10,%rax 1e6c6: 48 89 c7 mov %rax,%rdi 1e6c9: e8 42 56 ff ff callq 13d10 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1e6ce: 48 89 45 f0 mov %rax,-0x10(%rbp) 1e6d2: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1e6d6: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e6da: 48 89 d6 mov %rdx,%rsi 1e6dd: 48 89 c7 mov %rax,%rdi 1e6e0: e8 4b 4c ff ff callq 13330 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1e6e5: 84 c0 test %al,%al 1e6e7: 75 80 jne 1e669 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x35> // //free(demangled); handler->log(origin, func, level, format, arglist); it++; } } 1e6e9: c9 leaveq 1e6ea: c3 retq 1e6eb: 90 nop 000000000001e6ec <_ZN4XLog5flushEv>: void XLog::flush() { 1e6ec: 55 push %rbp 1e6ed: 48 89 e5 mov %rsp,%rbp 1e6f0: 48 83 ec 30 sub $0x30,%rsp 1e6f4: 48 89 7d d8 mov %rdi,-0x28(%rbp) set::iterator it = log_handlers.begin(); 1e6f8: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e6fc: 48 83 c0 10 add $0x10,%rax 1e700: 48 89 c7 mov %rax,%rdi 1e703: e8 d8 4a ff ff callq 131e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1e708: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1e70c: eb 3b jmp 1e749 <_ZN4XLog5flushEv+0x5d> XLogHandler * handler = *it; 1e70e: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e712: 48 89 c7 mov %rax,%rdi 1e715: e8 a6 57 ff ff callq 13ec0 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1e71a: 48 8b 00 mov (%rax),%rax 1e71d: 48 89 45 f8 mov %rax,-0x8(%rbp) (*handler).flush(); 1e721: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e725: 48 8b 00 mov (%rax),%rax 1e728: 48 83 c0 10 add $0x10,%rax 1e72c: 48 8b 10 mov (%rax),%rdx 1e72f: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e733: 48 89 c7 mov %rax,%rdi 1e736: ff d2 callq *%rdx it++; 1e738: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e73c: be 00 00 00 00 mov $0x0,%esi 1e741: 48 89 c7 mov %rax,%rdi 1e744: e8 47 4b ff ff callq 13290 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt> } void XLog::flush() { set::iterator it = log_handlers.begin(); while (it != log_handlers.end()) { 1e749: 48 8b 45 d8 mov -0x28(%rbp),%rax 1e74d: 48 83 c0 10 add $0x10,%rax 1e751: 48 89 c7 mov %rax,%rdi 1e754: e8 b7 55 ff ff callq 13d10 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1e759: 48 89 45 f0 mov %rax,-0x10(%rbp) 1e75d: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1e761: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e765: 48 89 d6 mov %rdx,%rsi 1e768: 48 89 c7 mov %rax,%rdi 1e76b: e8 c0 4b ff ff callq 13330 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1e770: 84 c0 test %al,%al 1e772: 75 9a jne 1e70e <_ZN4XLog5flushEv+0x22> XLogHandler * handler = *it; (*handler).flush(); it++; } } 1e774: c9 leaveq 1e775: c3 retq 000000000001e776 <_ZN11XLogManagerC1Ev>: /******************************************************************************** * XLogManager ********************************************************************************/ XLogManager::XLogManager() 1e776: 55 push %rbp 1e777: 48 89 e5 mov %rsp,%rbp 1e77a: 53 push %rbx 1e77b: 48 83 ec 18 sub $0x18,%rsp 1e77f: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e783: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e787: 48 89 c7 mov %rax,%rdi 1e78a: e8 f1 55 ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 1e78f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e793: 48 83 c0 28 add $0x28,%rax 1e797: 48 89 c7 mov %rax,%rdi 1e79a: e8 01 43 ff ff callq 12aa0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEC1Ev@plt> 1e79f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e7a3: 48 83 c0 58 add $0x58,%rax 1e7a7: 48 89 c7 mov %rax,%rdi 1e7aa: e8 a1 41 ff ff callq 12950 <_ZNSsC1Ev@plt> { } 1e7af: eb 2f jmp 1e7e0 <_ZN11XLogManagerC1Ev+0x6a> 1e7b1: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLogManager ********************************************************************************/ XLogManager::XLogManager() 1e7b4: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e7b8: 48 83 c0 28 add $0x28,%rax 1e7bc: 48 89 c7 mov %rax,%rdi 1e7bf: e8 ac 4e ff ff callq 13670 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1e7c4: eb 03 jmp 1e7c9 <_ZN11XLogManagerC1Ev+0x53> 1e7c6: 48 89 c3 mov %rax,%rbx 1e7c9: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e7cd: 48 89 c7 mov %rax,%rdi 1e7d0: e8 6b 4d ff ff callq 13540 <_ZN6XMutexD1Ev@plt> 1e7d5: 48 89 d8 mov %rbx,%rax 1e7d8: 48 89 c7 mov %rax,%rdi 1e7db: e8 a0 5d ff ff callq 14580 <_Unwind_Resume@plt> { } 1e7e0: 48 83 c4 18 add $0x18,%rsp 1e7e4: 5b pop %rbx 1e7e5: 5d pop %rbp 1e7e6: c3 retq 1e7e7: 90 nop 000000000001e7e8 <_ZN11XLogManagerD1Ev>: XLogManager::~XLogManager() 1e7e8: 55 push %rbp 1e7e9: 48 89 e5 mov %rsp,%rbp 1e7ec: 53 push %rbx 1e7ed: 48 83 ec 58 sub $0x58,%rsp 1e7f1: 48 89 7d a8 mov %rdi,-0x58(%rbp) { map::const_iterator it = loggers.begin(); 1e7f5: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e7f9: 48 83 c0 28 add $0x28,%rax 1e7fd: 48 89 c7 mov %rax,%rdi 1e800: e8 8b 53 ff ff callq 13b90 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE5beginEv@plt> 1e805: 48 89 45 c0 mov %rax,-0x40(%rbp) 1e809: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1e80d: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e811: 48 89 d6 mov %rdx,%rsi 1e814: 48 89 c7 mov %rax,%rdi 1e817: e8 a4 47 ff ff callq 12fc0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> while (it != loggers.end()) { 1e81c: eb 36 jmp 1e854 <_ZN11XLogManagerD1Ev+0x6c> delete it->second; 1e81e: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e822: 48 89 c7 mov %rax,%rdi 1e825: e8 96 42 ff ff callq 12ac0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv@plt> 1e82a: 48 8b 58 08 mov 0x8(%rax),%rbx 1e82e: 48 85 db test %rbx,%rbx 1e831: 74 10 je 1e843 <_ZN11XLogManagerD1Ev+0x5b> 1e833: 48 89 df mov %rbx,%rdi 1e836: e8 95 51 ff ff callq 139d0 <_ZN4XLogD1Ev@plt> 1e83b: 48 89 df mov %rbx,%rdi 1e83e: e8 ad 44 ff ff callq 12cf0 <_ZdlPv@plt> it++; 1e843: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e847: be 00 00 00 00 mov $0x0,%esi 1e84c: 48 89 c7 mov %rax,%rdi 1e84f: e8 dc 4c ff ff callq 13530 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi@plt> } XLogManager::~XLogManager() { map::const_iterator it = loggers.begin(); while (it != loggers.end()) { 1e854: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e858: 48 83 c0 28 add $0x28,%rax 1e85c: 48 89 c7 mov %rax,%rdi 1e85f: e8 7c 4a ff ff callq 132e0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1e864: 48 89 45 e0 mov %rax,-0x20(%rbp) 1e868: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1e86c: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e870: 48 89 d6 mov %rdx,%rsi 1e873: 48 89 c7 mov %rax,%rdi 1e876: e8 45 47 ff ff callq 12fc0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> 1e87b: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1e87f: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e883: 48 89 d6 mov %rdx,%rsi 1e886: 48 89 c7 mov %rax,%rdi 1e889: e8 72 4e ff ff callq 13700 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_@plt> 1e88e: 84 c0 test %al,%al 1e890: 75 8c jne 1e81e <_ZN11XLogManagerD1Ev+0x36> XLogManager::XLogManager() { } XLogManager::~XLogManager() 1e892: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e896: 48 83 c0 58 add $0x58,%rax 1e89a: 48 89 c7 mov %rax,%rdi 1e89d: e8 8e 4b ff ff callq 13430 <_ZNSsD1Ev@plt> 1e8a2: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e8a6: 48 83 c0 28 add $0x28,%rax 1e8aa: 48 89 c7 mov %rax,%rdi 1e8ad: e8 be 4d ff ff callq 13670 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1e8b2: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e8b6: 48 89 c7 mov %rax,%rdi 1e8b9: e8 82 4c ff ff callq 13540 <_ZN6XMutexD1Ev@plt> map::const_iterator it = loggers.begin(); while (it != loggers.end()) { delete it->second; it++; } } 1e8be: 48 83 c4 58 add $0x58,%rsp 1e8c2: 5b pop %rbx 1e8c3: 5d pop %rbp 1e8c4: c3 retq 1e8c5: 48 89 c3 mov %rax,%rbx XLogManager::XLogManager() { } XLogManager::~XLogManager() 1e8c8: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e8cc: 48 83 c0 58 add $0x58,%rax 1e8d0: 48 89 c7 mov %rax,%rdi 1e8d3: e8 58 4b ff ff callq 13430 <_ZNSsD1Ev@plt> 1e8d8: eb 03 jmp 1e8dd <_ZN11XLogManagerD1Ev+0xf5> 1e8da: 48 89 c3 mov %rax,%rbx 1e8dd: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e8e1: 48 83 c0 28 add $0x28,%rax 1e8e5: 48 89 c7 mov %rax,%rdi 1e8e8: e8 83 4d ff ff callq 13670 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1e8ed: eb 03 jmp 1e8f2 <_ZN11XLogManagerD1Ev+0x10a> 1e8ef: 48 89 c3 mov %rax,%rbx 1e8f2: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e8f6: 48 89 c7 mov %rax,%rdi 1e8f9: e8 42 4c ff ff callq 13540 <_ZN6XMutexD1Ev@plt> 1e8fe: 48 89 d8 mov %rbx,%rax 1e901: 48 89 c7 mov %rax,%rdi 1e904: e8 77 5c ff ff callq 14580 <_Unwind_Resume@plt> 1e909: 90 nop 000000000001e90a <_ZN11XLogManager8instanceEv>: it++; } } XLogManager& XLogManager::instance() { 1e90a: 55 push %rbp 1e90b: 48 89 e5 mov %rsp,%rbp 1e90e: 41 54 push %r12 1e910: 53 push %rbx #elif defined(__GNUC__) && (__GNUC__ > 3) /* * G++ explicitly adds code to make sure that this is thread-safe, * so we are ok here. */ static XLogManager log_manager; 1e911: 48 8d 05 50 cf 20 00 lea 0x20cf50(%rip),%rax # 22b868 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e918: 0f b6 00 movzbl (%rax),%eax 1e91b: 84 c0 test %al,%al 1e91d: 75 50 jne 1e96f <_ZN11XLogManager8instanceEv+0x65> 1e91f: 48 8d 3d 42 cf 20 00 lea 0x20cf42(%rip),%rdi # 22b868 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e926: e8 b5 42 ff ff callq 12be0 <__cxa_guard_acquire@plt> 1e92b: 85 c0 test %eax,%eax 1e92d: 0f 95 c0 setne %al 1e930: 84 c0 test %al,%al 1e932: 74 3b je 1e96f <_ZN11XLogManager8instanceEv+0x65> 1e934: 41 bc 00 00 00 00 mov $0x0,%r12d 1e93a: 48 8d 3d 3f cf 20 00 lea 0x20cf3f(%rip),%rdi # 22b880 <_ZZN11XLogManager8instanceEvE11log_manager> 1e941: e8 3a 42 ff ff callq 12b80 <_ZN11XLogManagerC1Ev@plt> 1e946: 48 8d 3d 1b cf 20 00 lea 0x20cf1b(%rip),%rdi # 22b868 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e94d: e8 fe 4d ff ff callq 13750 <__cxa_guard_release@plt> 1e952: 48 8b 05 1f b6 20 00 mov 0x20b61f(%rip),%rax # 229f78 <_DYNAMIC+0x228> 1e959: 48 8b 15 10 b6 20 00 mov 0x20b610(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 1e960: 48 8d 35 19 cf 20 00 lea 0x20cf19(%rip),%rsi # 22b880 <_ZZN11XLogManager8instanceEvE11log_manager> 1e967: 48 89 c7 mov %rax,%rdi 1e96a: e8 e1 47 ff ff callq 13150 <__cxa_atexit@plt> #else #error Add critical section for your platform here #endif return log_manager; 1e96f: 48 8d 05 0a cf 20 00 lea 0x20cf0a(%rip),%rax # 22b880 <_ZZN11XLogManager8instanceEvE11log_manager> } 1e976: 5b pop %rbx 1e977: 41 5c pop %r12 1e979: 5d pop %rbp 1e97a: c3 retq 1e97b: 48 89 c3 mov %rax,%rbx #elif defined(__GNUC__) && (__GNUC__ > 3) /* * G++ explicitly adds code to make sure that this is thread-safe, * so we are ok here. */ static XLogManager log_manager; 1e97e: 45 84 e4 test %r12b,%r12b 1e981: 75 0c jne 1e98f <_ZN11XLogManager8instanceEv+0x85> 1e983: 48 8d 3d de ce 20 00 lea 0x20cede(%rip),%rdi # 22b868 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e98a: e8 11 5a ff ff callq 143a0 <__cxa_guard_abort@plt> 1e98f: 48 89 d8 mov %rbx,%rax 1e992: 48 89 c7 mov %rax,%rdi 1e995: e8 e6 5b ff ff callq 14580 <_Unwind_Resume@plt> 000000000001e99a <_ZN11XLogManager6getLogEPKc>: return log_manager; } XLogRef XLogManager::getLog(const char* name) { 1e99a: 55 push %rbp 1e99b: 48 89 e5 mov %rsp,%rbp 1e99e: 41 54 push %r12 1e9a0: 53 push %rbx 1e9a1: 48 83 ec 70 sub $0x70,%rsp 1e9a5: 48 89 7d 88 mov %rdi,-0x78(%rbp) 1e9a9: 48 89 75 80 mov %rsi,-0x80(%rbp) mutex.lock(); 1e9ad: 48 8b 45 88 mov -0x78(%rbp),%rax 1e9b1: 48 89 c7 mov %rax,%rdi 1e9b4: e8 17 43 ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> if (loggers.find(name) == loggers.end()) 1e9b9: 48 8b 45 88 mov -0x78(%rbp),%rax 1e9bd: 48 83 c0 28 add $0x28,%rax 1e9c1: 48 89 c7 mov %rax,%rdi 1e9c4: e8 17 49 ff ff callq 132e0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1e9c9: 48 89 45 b0 mov %rax,-0x50(%rbp) 1e9cd: 48 8d 45 ec lea -0x14(%rbp),%rax 1e9d1: 48 89 c7 mov %rax,%rdi 1e9d4: e8 57 5a ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1e9d9: 48 8d 55 ec lea -0x14(%rbp),%rdx 1e9dd: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1e9e1: 48 8d 45 90 lea -0x70(%rbp),%rax 1e9e5: 48 89 ce mov %rcx,%rsi 1e9e8: 48 89 c7 mov %rax,%rdi 1e9eb: e8 30 4f ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1e9f0: 48 8b 45 88 mov -0x78(%rbp),%rax 1e9f4: 48 8d 50 28 lea 0x28(%rax),%rdx 1e9f8: 48 8d 45 90 lea -0x70(%rbp),%rax 1e9fc: 48 89 c6 mov %rax,%rsi 1e9ff: 48 89 d7 mov %rdx,%rdi 1ea02: e8 f9 47 ff ff callq 13200 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE4findERS5_@plt> 1ea07: 48 89 45 a0 mov %rax,-0x60(%rbp) 1ea0b: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1ea0f: 48 8d 45 a0 lea -0x60(%rbp),%rax 1ea13: 48 89 d6 mov %rdx,%rsi 1ea16: 48 89 c7 mov %rax,%rdi 1ea19: e8 42 3f ff ff callq 12960 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 1ea1e: 89 c3 mov %eax,%ebx 1ea20: 48 8d 45 90 lea -0x70(%rbp),%rax 1ea24: 48 89 c7 mov %rax,%rdi 1ea27: e8 04 4a ff ff callq 13430 <_ZNSsD1Ev@plt> 1ea2c: 48 8d 45 ec lea -0x14(%rbp),%rax 1ea30: 48 89 c7 mov %rax,%rdi 1ea33: e8 88 55 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1ea38: 84 db test %bl,%bl 1ea3a: 0f 84 ac 00 00 00 je 1eaec <_ZN11XLogManager6getLogEPKc+0x152> loggers[name] = new XLog(name); 1ea40: 48 8d 45 ee lea -0x12(%rbp),%rax 1ea44: 48 89 c7 mov %rax,%rdi 1ea47: e8 e4 59 ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1ea4c: 48 8d 55 ee lea -0x12(%rbp),%rdx 1ea50: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1ea54: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ea58: 48 89 ce mov %rcx,%rsi 1ea5b: 48 89 c7 mov %rax,%rdi 1ea5e: e8 bd 4e ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1ea63: 4c 8d 65 d0 lea -0x30(%rbp),%r12 1ea67: bf 40 00 00 00 mov $0x40,%edi 1ea6c: e8 ff 5a ff ff callq 14570 <_Znwm@plt> 1ea71: 48 89 c3 mov %rax,%rbx 1ea74: 4c 89 e6 mov %r12,%rsi 1ea77: 48 89 df mov %rbx,%rdi 1ea7a: e8 e1 47 ff ff callq 13260 <_ZN4XLogC1ERKSs@plt> 1ea7f: 48 8d 45 ed lea -0x13(%rbp),%rax 1ea83: 48 89 c7 mov %rax,%rdi 1ea86: e8 a5 59 ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1ea8b: 48 8d 55 ed lea -0x13(%rbp),%rdx 1ea8f: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1ea93: 48 8d 45 c0 lea -0x40(%rbp),%rax 1ea97: 48 89 ce mov %rcx,%rsi 1ea9a: 48 89 c7 mov %rax,%rdi 1ea9d: e8 7e 4e ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1eaa2: 48 8b 45 88 mov -0x78(%rbp),%rax 1eaa6: 48 8d 50 28 lea 0x28(%rax),%rdx 1eaaa: 48 8d 45 c0 lea -0x40(%rbp),%rax 1eaae: 48 89 c6 mov %rax,%rsi 1eab1: 48 89 d7 mov %rdx,%rdi 1eab4: e8 67 40 ff ff callq 12b20 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt> 1eab9: 48 89 18 mov %rbx,(%rax) 1eabc: 48 8d 45 c0 lea -0x40(%rbp),%rax 1eac0: 48 89 c7 mov %rax,%rdi 1eac3: e8 68 49 ff ff callq 13430 <_ZNSsD1Ev@plt> 1eac8: 48 8d 45 ed lea -0x13(%rbp),%rax 1eacc: 48 89 c7 mov %rax,%rdi 1eacf: e8 ec 54 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1ead4: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ead8: 48 89 c7 mov %rax,%rdi 1eadb: e8 50 49 ff ff callq 13430 <_ZNSsD1Ev@plt> 1eae0: 48 8d 45 ee lea -0x12(%rbp),%rax 1eae4: 48 89 c7 mov %rax,%rdi 1eae7: e8 d4 54 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> mutex.unlock(); 1eaec: 48 8b 45 88 mov -0x78(%rbp),%rax 1eaf0: 48 89 c7 mov %rax,%rdi 1eaf3: e8 58 5a ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> return *(loggers[name]); 1eaf8: 48 8d 45 ef lea -0x11(%rbp),%rax 1eafc: 48 89 c7 mov %rax,%rdi 1eaff: e8 2c 59 ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1eb04: 48 8d 55 ef lea -0x11(%rbp),%rdx 1eb08: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1eb0c: 48 8d 45 e0 lea -0x20(%rbp),%rax 1eb10: 48 89 ce mov %rcx,%rsi 1eb13: 48 89 c7 mov %rax,%rdi 1eb16: e8 05 4e ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1eb1b: 48 8b 45 88 mov -0x78(%rbp),%rax 1eb1f: 48 8d 50 28 lea 0x28(%rax),%rdx 1eb23: 48 8d 45 e0 lea -0x20(%rbp),%rax 1eb27: 48 89 c6 mov %rax,%rsi 1eb2a: 48 89 d7 mov %rdx,%rdi 1eb2d: e8 ee 3f ff ff callq 12b20 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt> 1eb32: 48 8b 18 mov (%rax),%rbx 1eb35: 48 8d 45 e0 lea -0x20(%rbp),%rax 1eb39: 48 89 c7 mov %rax,%rdi 1eb3c: e8 ef 48 ff ff callq 13430 <_ZNSsD1Ev@plt> 1eb41: 48 8d 45 ef lea -0x11(%rbp),%rax 1eb45: 48 89 c7 mov %rax,%rdi 1eb48: e8 73 54 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1eb4d: 48 89 d8 mov %rbx,%rax } 1eb50: 48 83 c4 70 add $0x70,%rsp 1eb54: 5b pop %rbx 1eb55: 41 5c pop %r12 1eb57: 5d pop %rbp 1eb58: c3 retq 1eb59: 48 89 c3 mov %rax,%rbx } XLogRef XLogManager::getLog(const char* name) { mutex.lock(); if (loggers.find(name) == loggers.end()) 1eb5c: 48 8d 45 90 lea -0x70(%rbp),%rax 1eb60: 48 89 c7 mov %rax,%rdi 1eb63: e8 c8 48 ff ff callq 13430 <_ZNSsD1Ev@plt> 1eb68: eb 03 jmp 1eb6d <_ZN11XLogManager6getLogEPKc+0x1d3> 1eb6a: 48 89 c3 mov %rax,%rbx 1eb6d: 48 8d 45 ec lea -0x14(%rbp),%rax 1eb71: 48 89 c7 mov %rax,%rdi 1eb74: e8 47 54 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1eb79: 48 89 d8 mov %rbx,%rax 1eb7c: 48 89 c7 mov %rax,%rdi 1eb7f: e8 fc 59 ff ff callq 14580 <_Unwind_Resume@plt> 1eb84: 49 89 c4 mov %rax,%r12 loggers[name] = new XLog(name); 1eb87: 48 89 df mov %rbx,%rdi 1eb8a: e8 61 41 ff ff callq 12cf0 <_ZdlPv@plt> 1eb8f: 4c 89 e3 mov %r12,%rbx 1eb92: eb 25 jmp 1ebb9 <_ZN11XLogManager6getLogEPKc+0x21f> 1eb94: 48 89 c3 mov %rax,%rbx 1eb97: 48 8d 45 c0 lea -0x40(%rbp),%rax 1eb9b: 48 89 c7 mov %rax,%rdi 1eb9e: e8 8d 48 ff ff callq 13430 <_ZNSsD1Ev@plt> 1eba3: eb 03 jmp 1eba8 <_ZN11XLogManager6getLogEPKc+0x20e> 1eba5: 48 89 c3 mov %rax,%rbx 1eba8: 48 8d 45 ed lea -0x13(%rbp),%rax 1ebac: 48 89 c7 mov %rax,%rdi 1ebaf: e8 0c 54 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1ebb4: eb 03 jmp 1ebb9 <_ZN11XLogManager6getLogEPKc+0x21f> 1ebb6: 48 89 c3 mov %rax,%rbx 1ebb9: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ebbd: 48 89 c7 mov %rax,%rdi 1ebc0: e8 6b 48 ff ff callq 13430 <_ZNSsD1Ev@plt> 1ebc5: eb 03 jmp 1ebca <_ZN11XLogManager6getLogEPKc+0x230> 1ebc7: 48 89 c3 mov %rax,%rbx 1ebca: 48 8d 45 ee lea -0x12(%rbp),%rax 1ebce: 48 89 c7 mov %rax,%rdi 1ebd1: e8 ea 53 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1ebd6: 48 89 d8 mov %rbx,%rax 1ebd9: 48 89 c7 mov %rax,%rdi 1ebdc: e8 9f 59 ff ff callq 14580 <_Unwind_Resume@plt> 1ebe1: 48 89 c3 mov %rax,%rbx mutex.unlock(); return *(loggers[name]); 1ebe4: 48 8d 45 e0 lea -0x20(%rbp),%rax 1ebe8: 48 89 c7 mov %rax,%rdi 1ebeb: e8 40 48 ff ff callq 13430 <_ZNSsD1Ev@plt> 1ebf0: eb 03 jmp 1ebf5 <_ZN11XLogManager6getLogEPKc+0x25b> 1ebf2: 48 89 c3 mov %rax,%rbx 1ebf5: 48 8d 45 ef lea -0x11(%rbp),%rax 1ebf9: 48 89 c7 mov %rax,%rdi 1ebfc: e8 bf 53 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1ec01: 48 89 d8 mov %rbx,%rax 1ec04: 48 89 c7 mov %rax,%rdi 1ec07: e8 74 59 ff ff callq 14580 <_Unwind_Resume@plt> 000000000001ec0c <_ZN11XLogManager12setDirectoryEPKc>: } void XLogManager::setDirectory(const char* dir) { 1ec0c: 55 push %rbp 1ec0d: 48 89 e5 mov %rsp,%rbp 1ec10: 48 83 ec 10 sub $0x10,%rsp 1ec14: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ec18: 48 89 75 f0 mov %rsi,-0x10(%rbp) log_dir = dir; 1ec1c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec20: 48 8d 50 58 lea 0x58(%rax),%rdx 1ec24: 48 8b 45 f0 mov -0x10(%rbp),%rax 1ec28: 48 89 c6 mov %rax,%rsi 1ec2b: 48 89 d7 mov %rdx,%rdi 1ec2e: e8 fd 3c ff ff callq 12930 <_ZNSsaSEPKc@plt> /* * TODO: check if dir exists, if not, create (all sub-dirs) */ } 1ec33: c9 leaveq 1ec34: c3 retq 1ec35: 90 nop 000000000001ec36 <_ZN11XLogHandlerC1Ev>: /******************************************************************************** * XLogHandler ********************************************************************************/ XLogHandler::XLogHandler() : 1ec36: 55 push %rbp 1ec37: 48 89 e5 mov %rsp,%rbp 1ec3a: 48 89 7d f8 mov %rdi,-0x8(%rbp) level(NONE) 1ec3e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec42: 48 8b 15 67 b3 20 00 mov 0x20b367(%rip),%rdx # 229fb0 <_DYNAMIC+0x260> 1ec49: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ec4d: 48 89 10 mov %rdx,(%rax) 1ec50: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec54: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) { } 1ec5b: 5d pop %rbp 1ec5c: c3 retq 1ec5d: 90 nop 000000000001ec5e <_ZN11XLogHandlerD1Ev>: XLogHandler::~XLogHandler() 1ec5e: 55 push %rbp 1ec5f: 48 89 e5 mov %rsp,%rbp 1ec62: 48 83 ec 10 sub $0x10,%rsp 1ec66: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ec6a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec6e: 48 8b 15 3b b3 20 00 mov 0x20b33b(%rip),%rdx # 229fb0 <_DYNAMIC+0x260> 1ec75: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ec79: 48 89 10 mov %rdx,(%rax) { } 1ec7c: b8 00 00 00 00 mov $0x0,%eax 1ec81: 83 e0 01 and $0x1,%eax 1ec84: 84 c0 test %al,%al 1ec86: 74 0c je 1ec94 <_ZN11XLogHandlerD1Ev+0x36> 1ec88: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec8c: 48 89 c7 mov %rax,%rdi 1ec8f: e8 5c 40 ff ff callq 12cf0 <_ZdlPv@plt> 1ec94: c9 leaveq 1ec95: c3 retq 000000000001ec96 <_ZN11XLogHandlerD0Ev>: XLogHandler::XLogHandler() : level(NONE) { } XLogHandler::~XLogHandler() 1ec96: 55 push %rbp 1ec97: 48 89 e5 mov %rsp,%rbp 1ec9a: 48 83 ec 10 sub $0x10,%rsp 1ec9e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { } 1eca2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eca6: 48 89 c7 mov %rax,%rdi 1eca9: e8 b2 40 ff ff callq 12d60 <_ZN11XLogHandlerD1Ev@plt> 1ecae: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ecb2: 48 89 c7 mov %rax,%rdi 1ecb5: e8 36 40 ff ff callq 12cf0 <_ZdlPv@plt> 1ecba: c9 leaveq 1ecbb: c3 retq 000000000001ecbc <_ZN11XLogHandler11getLevelStrERKi>: const char* XLogHandler::getLevelStr(const int& level) { 1ecbc: 55 push %rbp 1ecbd: 48 89 e5 mov %rsp,%rbp 1ecc0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ecc4: 48 89 75 f0 mov %rsi,-0x10(%rbp) static const char* const log_level[] = { "NONE", "FATAL", "ERROR", "WARNING", "INFO", "DEBUG" }; if (level >=0 && level < 6) 1ecc8: 48 8b 45 f0 mov -0x10(%rbp),%rax 1eccc: 8b 00 mov (%rax),%eax 1ecce: 85 c0 test %eax,%eax 1ecd0: 78 28 js 1ecfa <_ZN11XLogHandler11getLevelStrERKi+0x3e> 1ecd2: 48 8b 45 f0 mov -0x10(%rbp),%rax 1ecd6: 8b 00 mov (%rax),%eax 1ecd8: 83 f8 05 cmp $0x5,%eax 1ecdb: 7f 1d jg 1ecfa <_ZN11XLogHandler11getLevelStrERKi+0x3e> return log_level[level]; 1ecdd: 48 8b 45 f0 mov -0x10(%rbp),%rax 1ece1: 8b 00 mov (%rax),%eax 1ece3: 48 98 cltq 1ece5: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx 1ecec: 00 1eced: 48 8d 05 4c ae 20 00 lea 0x20ae4c(%rip),%rax # 229b40 <_ZZN11XLogHandler11getLevelStrERKiE9log_level> 1ecf4: 48 8b 04 02 mov (%rdx,%rax,1),%rax 1ecf8: eb 07 jmp 1ed01 <_ZN11XLogHandler11getLevelStrERKi+0x45> else return "INVALID_LEVEL"; 1ecfa: 48 8d 05 97 4d 00 00 lea 0x4d97(%rip),%rax # 23a98 <_fini+0xb10> } 1ed01: 5d pop %rbp 1ed02: c3 retq 1ed03: 90 nop 000000000001ed04 <_ZN11XLogHandler8setLevelE8LogLevel>: void XLogHandler::setLevel(LogLevel l) { 1ed04: 55 push %rbp 1ed05: 48 89 e5 mov %rsp,%rbp 1ed08: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ed0c: 89 75 f4 mov %esi,-0xc(%rbp) level = l; 1ed0f: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ed13: 8b 55 f4 mov -0xc(%rbp),%edx 1ed16: 89 50 08 mov %edx,0x8(%rax) } 1ed19: 5d pop %rbp 1ed1a: c3 retq 1ed1b: 90 nop 000000000001ed1c <_ZN17XLogStderrHandlerC1Ev>: /******************************************************************************** * XLogStderrHandler ********************************************************************************/ XLogStderrHandler::XLogStderrHandler() 1ed1c: 55 push %rbp 1ed1d: 48 89 e5 mov %rsp,%rbp 1ed20: 53 push %rbx 1ed21: 48 83 ec 18 sub $0x18,%rsp 1ed25: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1ed29: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed2d: 48 89 c7 mov %rax,%rdi 1ed30: e8 0b 40 ff ff callq 12d40 <_ZN11XLogHandlerC2Ev@plt> 1ed35: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed39: 48 8b 15 88 b2 20 00 mov 0x20b288(%rip),%rdx # 229fc8 <_DYNAMIC+0x278> 1ed40: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ed44: 48 89 10 mov %rdx,(%rax) 1ed47: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed4b: 48 83 c0 10 add $0x10,%rax 1ed4f: 48 89 c7 mov %rax,%rdi 1ed52: e8 29 50 ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> { } 1ed57: eb 1a jmp 1ed73 <_ZN17XLogStderrHandlerC1Ev+0x57> 1ed59: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLogStderrHandler ********************************************************************************/ XLogStderrHandler::XLogStderrHandler() 1ed5c: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed60: 48 89 c7 mov %rax,%rdi 1ed63: e8 78 4a ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1ed68: 48 89 d8 mov %rbx,%rax 1ed6b: 48 89 c7 mov %rax,%rdi 1ed6e: e8 0d 58 ff ff callq 14580 <_Unwind_Resume@plt> { } 1ed73: 48 83 c4 18 add $0x18,%rsp 1ed77: 5b pop %rbx 1ed78: 5d pop %rbp 1ed79: c3 retq 000000000001ed7a <_ZN17XLogStderrHandlerD1Ev>: XLogStderrHandler::~XLogStderrHandler() 1ed7a: 55 push %rbp 1ed7b: 48 89 e5 mov %rsp,%rbp 1ed7e: 53 push %rbx 1ed7f: 48 83 ec 18 sub $0x18,%rsp 1ed83: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1ed87: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed8b: 48 8b 15 36 b2 20 00 mov 0x20b236(%rip),%rdx # 229fc8 <_DYNAMIC+0x278> 1ed92: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ed96: 48 89 10 mov %rdx,(%rax) { flush(); 1ed99: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ed9d: 48 89 c7 mov %rax,%rdi 1eda0: e8 fb 42 ff ff callq 130a0 <_ZN17XLogStderrHandler5flushEv@plt> XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1eda5: 48 8b 45 e8 mov -0x18(%rbp),%rax 1eda9: 48 83 c0 10 add $0x10,%rax 1edad: 48 89 c7 mov %rax,%rdi 1edb0: e8 8b 47 ff ff callq 13540 <_ZN6XMutexD1Ev@plt> 1edb5: 48 8b 45 e8 mov -0x18(%rbp),%rax 1edb9: 48 89 c7 mov %rax,%rdi 1edbc: e8 1f 4a ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> { flush(); } 1edc1: b8 00 00 00 00 mov $0x0,%eax 1edc6: 83 e0 01 and $0x1,%eax 1edc9: 84 c0 test %al,%al 1edcb: 74 3d je 1ee0a <_ZN17XLogStderrHandlerD1Ev+0x90> 1edcd: 48 8b 45 e8 mov -0x18(%rbp),%rax 1edd1: 48 89 c7 mov %rax,%rdi 1edd4: e8 17 3f ff ff callq 12cf0 <_ZdlPv@plt> 1edd9: eb 2f jmp 1ee0a <_ZN17XLogStderrHandlerD1Ev+0x90> 1eddb: 48 89 c3 mov %rax,%rbx XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1edde: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ede2: 48 83 c0 10 add $0x10,%rax 1ede6: 48 89 c7 mov %rax,%rdi 1ede9: e8 52 47 ff ff callq 13540 <_ZN6XMutexD1Ev@plt> 1edee: eb 03 jmp 1edf3 <_ZN17XLogStderrHandlerD1Ev+0x79> 1edf0: 48 89 c3 mov %rax,%rbx 1edf3: 48 8b 45 e8 mov -0x18(%rbp),%rax 1edf7: 48 89 c7 mov %rax,%rdi 1edfa: e8 e1 49 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1edff: 48 89 d8 mov %rbx,%rax 1ee02: 48 89 c7 mov %rax,%rdi 1ee05: e8 76 57 ff ff callq 14580 <_Unwind_Resume@plt> { flush(); } 1ee0a: 48 83 c4 18 add $0x18,%rsp 1ee0e: 5b pop %rbx 1ee0f: 5d pop %rbp 1ee10: c3 retq 1ee11: 90 nop 000000000001ee12 <_ZN17XLogStderrHandlerD0Ev>: XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1ee12: 55 push %rbp 1ee13: 48 89 e5 mov %rsp,%rbp 1ee16: 48 83 ec 10 sub $0x10,%rsp 1ee1a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { flush(); } 1ee1e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ee22: 48 89 c7 mov %rax,%rdi 1ee25: e8 66 4a ff ff callq 13890 <_ZN17XLogStderrHandlerD1Ev@plt> 1ee2a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ee2e: 48 89 c7 mov %rax,%rdi 1ee31: e8 ba 3e ff ff callq 12cf0 <_ZdlPv@plt> 1ee36: c9 leaveq 1ee37: c3 retq 000000000001ee38 <_ZN17XLogStderrHandler5flushEv>: void XLogStderrHandler::flush() { 1ee38: 55 push %rbp 1ee39: 48 89 e5 mov %rsp,%rbp 1ee3c: 48 83 ec 10 sub $0x10,%rsp 1ee40: 48 89 7d f8 mov %rdi,-0x8(%rbp) fflush(stderr); 1ee44: 48 8b 05 55 b1 20 00 mov 0x20b155(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1ee4b: 48 8b 00 mov (%rax),%rax 1ee4e: 48 89 c7 mov %rax,%rdi 1ee51: e8 1a 59 ff ff callq 14770 } 1ee56: c9 leaveq 1ee57: c3 retq 000000000001ee58 <_ZN17XLogStderrHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogStderrHandler::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1ee58: 55 push %rbp 1ee59: 48 89 e5 mov %rsp,%rbp 1ee5c: 48 83 c4 80 add $0xffffffffffffff80,%rsp 1ee60: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1ee64: 48 89 75 c0 mov %rsi,-0x40(%rbp) 1ee68: 48 89 55 b8 mov %rdx,-0x48(%rbp) 1ee6c: 89 4d b4 mov %ecx,-0x4c(%rbp) 1ee6f: 4c 89 45 a8 mov %r8,-0x58(%rbp) 1ee73: 4c 89 4d a0 mov %r9,-0x60(%rbp) mutex.lock(); 1ee77: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ee7b: 48 83 c0 10 add $0x10,%rax 1ee7f: 48 89 c7 mov %rax,%rdi 1ee82: e8 49 3e ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> XTime tm; TMUtil::getCurrentTime(tm); 1ee87: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ee8b: 48 89 c7 mov %rax,%rdi 1ee8e: e8 5d 41 ff ff callq 12ff0 <_ZN6TMUtil14getCurrentTimeER5XTime@plt> fprintf(stderr, "%d-%02d-%02d %02d:%02d:%02d.%03d ", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.second, tm.millisecond); 1ee93: 44 8b 45 ec mov -0x14(%rbp),%r8d 1ee97: 8b 7d e8 mov -0x18(%rbp),%edi 1ee9a: 8b 75 e4 mov -0x1c(%rbp),%esi 1ee9d: 44 8b 4d e0 mov -0x20(%rbp),%r9d 1eea1: 44 8b 55 d8 mov -0x28(%rbp),%r10d 1eea5: 8b 4d d4 mov -0x2c(%rbp),%ecx 1eea8: 8b 55 dc mov -0x24(%rbp),%edx 1eeab: 48 8b 05 ee b0 20 00 mov 0x20b0ee(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1eeb2: 48 8b 00 mov (%rax),%rax 1eeb5: 44 89 44 24 10 mov %r8d,0x10(%rsp) 1eeba: 89 7c 24 08 mov %edi,0x8(%rsp) 1eebe: 89 34 24 mov %esi,(%rsp) 1eec1: 45 89 d0 mov %r10d,%r8d 1eec4: 48 8d 35 dd 4b 00 00 lea 0x4bdd(%rip),%rsi # 23aa8 <_fini+0xb20> 1eecb: 48 89 c7 mov %rax,%rdi 1eece: b8 00 00 00 00 mov $0x0,%eax 1eed3: e8 d8 55 ff ff callq 144b0 fprintf(stderr, "%-8s ", getLevelStr(level)); 1eed8: 8b 45 b4 mov -0x4c(%rbp),%eax 1eedb: 89 45 fc mov %eax,-0x4(%rbp) 1eede: 48 8b 45 c8 mov -0x38(%rbp),%rax 1eee2: 48 8d 55 fc lea -0x4(%rbp),%rdx 1eee6: 48 89 d6 mov %rdx,%rsi 1eee9: 48 89 c7 mov %rax,%rdi 1eeec: e8 4f 56 ff ff callq 14540 <_ZN11XLogHandler11getLevelStrERKi@plt> 1eef1: 48 89 c2 mov %rax,%rdx 1eef4: 48 8b 05 a5 b0 20 00 mov 0x20b0a5(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1eefb: 48 8b 00 mov (%rax),%rax 1eefe: 48 8d 35 c5 4b 00 00 lea 0x4bc5(%rip),%rsi # 23aca <_fini+0xb42> 1ef05: 48 89 c7 mov %rax,%rdi 1ef08: b8 00 00 00 00 mov $0x0,%eax 1ef0d: e8 9e 55 ff ff callq 144b0 if (origin != NULL) { 1ef12: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 1ef17: 74 26 je 1ef3f <_ZN17XLogStderrHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0xe7> fprintf(stderr, "[%s %s] ", origin, func); 1ef19: 48 8b 05 80 b0 20 00 mov 0x20b080(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1ef20: 48 8b 00 mov (%rax),%rax 1ef23: 48 8b 4d b8 mov -0x48(%rbp),%rcx 1ef27: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1ef2b: 48 8d 35 9e 4b 00 00 lea 0x4b9e(%rip),%rsi # 23ad0 <_fini+0xb48> 1ef32: 48 89 c7 mov %rax,%rdi 1ef35: b8 00 00 00 00 mov $0x0,%eax 1ef3a: e8 71 55 ff ff callq 144b0 } vfprintf(stderr, format, arglist); 1ef3f: 48 8b 05 5a b0 20 00 mov 0x20b05a(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1ef46: 48 8b 00 mov (%rax),%rax 1ef49: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1ef4d: 48 8b 4d a8 mov -0x58(%rbp),%rcx 1ef51: 48 89 ce mov %rcx,%rsi 1ef54: 48 89 c7 mov %rax,%rdi 1ef57: e8 f4 43 ff ff callq 13350 fprintf(stderr, "\n"); 1ef5c: 48 8b 05 3d b0 20 00 mov 0x20b03d(%rip),%rax # 229fa0 <_DYNAMIC+0x250> 1ef63: 48 8b 00 mov (%rax),%rax 1ef66: 48 89 c6 mov %rax,%rsi 1ef69: bf 0a 00 00 00 mov $0xa,%edi 1ef6e: e8 dd 44 ff ff callq 13450 mutex.unlock(); 1ef73: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ef77: 48 83 c0 10 add $0x10,%rax 1ef7b: 48 89 c7 mov %rax,%rdi 1ef7e: e8 cd 55 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } 1ef83: c9 leaveq 1ef84: c3 retq 1ef85: 90 nop 000000000001ef86 <_ZN19XLogFileHandlerBaseC1EPKc>: ********************************************************************************/ XMutex XLogFileHandlerBase::mutex; vector XLogFileHandlerBase::log_files; XLogFileHandlerBase::XLogFileHandlerBase(const char* filename) : 1ef86: 55 push %rbp 1ef87: 48 89 e5 mov %rsp,%rbp 1ef8a: 53 push %rbx 1ef8b: 48 83 ec 48 sub $0x48,%rsp 1ef8f: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1ef93: 48 89 75 b0 mov %rsi,-0x50(%rbp) XLogHandler(), log_file_size(0), log_file(NULL) 1ef97: 48 8b 45 b8 mov -0x48(%rbp),%rax 1ef9b: 48 89 c7 mov %rax,%rdi 1ef9e: e8 9d 3d ff ff callq 12d40 <_ZN11XLogHandlerC2Ev@plt> 1efa3: 48 8b 45 b8 mov -0x48(%rbp),%rax 1efa7: 48 8b 15 72 af 20 00 mov 0x20af72(%rip),%rdx # 229f20 <_DYNAMIC+0x1d0> 1efae: 48 8d 52 10 lea 0x10(%rdx),%rdx 1efb2: 48 89 10 mov %rdx,(%rax) 1efb5: 48 8b 45 b8 mov -0x48(%rbp),%rax 1efb9: 48 83 c0 10 add $0x10,%rax 1efbd: 48 89 c7 mov %rax,%rdi 1efc0: e8 8b 39 ff ff callq 12950 <_ZNSsC1Ev@plt> 1efc5: 48 8b 45 b8 mov -0x48(%rbp),%rax 1efc9: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 1efd0: 00 1efd1: 48 8b 45 b8 mov -0x48(%rbp),%rax 1efd5: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1efdc: 00 { vector::iterator it = find(log_files.begin(), log_files.end(), filename); 1efdd: 48 8b 05 44 af 20 00 mov 0x20af44(%rip),%rax # 229f28 <_DYNAMIC+0x1d8> 1efe4: 48 89 c7 mov %rax,%rdi 1efe7: e8 14 4a ff ff callq 13a00 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1efec: 48 89 c3 mov %rax,%rbx 1efef: 48 8b 05 32 af 20 00 mov 0x20af32(%rip),%rax # 229f28 <_DYNAMIC+0x1d8> 1eff6: 48 89 c7 mov %rax,%rdi 1eff9: e8 12 3c ff ff callq 12c10 <_ZNSt6vectorISsSaISsEE5beginEv@plt> 1effe: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1f002: 48 89 de mov %rbx,%rsi 1f005: 48 89 c7 mov %rax,%rdi 1f008: e8 f3 44 ff ff callq 13500 <_ZSt4findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_@plt> 1f00d: 48 89 45 c0 mov %rax,-0x40(%rbp) if (it != log_files.end()) { 1f011: 48 8b 05 10 af 20 00 mov 0x20af10(%rip),%rax # 229f28 <_DYNAMIC+0x1d8> 1f018: 48 89 c7 mov %rax,%rdi 1f01b: e8 e0 49 ff ff callq 13a00 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1f020: 48 89 45 d0 mov %rax,-0x30(%rbp) 1f024: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1f028: 48 8d 45 c0 lea -0x40(%rbp),%rax 1f02c: 48 89 d6 mov %rdx,%rsi 1f02f: 48 89 c7 mov %rax,%rdi 1f032: e8 b9 44 ff ff callq 134f0 <_ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_@plt> 1f037: 84 c0 test %al,%al 1f039: 75 51 jne 1f08c <_ZN19XLogFileHandlerBaseC1EPKc+0x106> * Another log handler is writing to the same log file. * TODO: throw exception */ } else { log_files.push_back(filename); 1f03b: 48 8d 45 ef lea -0x11(%rbp),%rax 1f03f: 48 89 c7 mov %rax,%rdi 1f042: e8 e9 53 ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1f047: 48 8b 4d b0 mov -0x50(%rbp),%rcx 1f04b: 48 8d 55 ef lea -0x11(%rbp),%rdx 1f04f: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f053: 48 89 ce mov %rcx,%rsi 1f056: 48 89 c7 mov %rax,%rdi 1f059: e8 c2 48 ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1f05e: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f062: 48 89 c6 mov %rax,%rsi 1f065: 48 8b 05 bc ae 20 00 mov 0x20aebc(%rip),%rax # 229f28 <_DYNAMIC+0x1d8> 1f06c: 48 89 c7 mov %rax,%rdi 1f06f: e8 bc 4c ff ff callq 13d30 <_ZNSt6vectorISsSaISsEE9push_backERKSs@plt> 1f074: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f078: 48 89 c7 mov %rax,%rdi 1f07b: e8 b0 43 ff ff callq 13430 <_ZNSsD1Ev@plt> 1f080: 48 8d 45 ef lea -0x11(%rbp),%rax 1f084: 48 89 c7 mov %rax,%rdi 1f087: e8 34 4f ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> } log_filename = filename; 1f08c: 48 8b 45 b0 mov -0x50(%rbp),%rax 1f090: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1f094: 48 83 c2 10 add $0x10,%rdx 1f098: 48 89 c6 mov %rax,%rsi 1f09b: 48 89 d7 mov %rdx,%rdi 1f09e: e8 8d 38 ff ff callq 12930 <_ZNSsaSEPKc@plt> // TODO: // Determine directory // Split log file name and extension } 1f0a3: eb 51 jmp 1f0f6 <_ZN19XLogFileHandlerBaseC1EPKc+0x170> 1f0a5: 48 89 c3 mov %rax,%rbx * Another log handler is writing to the same log file. * TODO: throw exception */ } else { log_files.push_back(filename); 1f0a8: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f0ac: 48 89 c7 mov %rax,%rdi 1f0af: e8 7c 43 ff ff callq 13430 <_ZNSsD1Ev@plt> 1f0b4: eb 03 jmp 1f0b9 <_ZN19XLogFileHandlerBaseC1EPKc+0x133> 1f0b6: 48 89 c3 mov %rax,%rbx 1f0b9: 48 8d 45 ef lea -0x11(%rbp),%rax 1f0bd: 48 89 c7 mov %rax,%rdi 1f0c0: e8 fb 4e ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1f0c5: eb 03 jmp 1f0ca <_ZN19XLogFileHandlerBaseC1EPKc+0x144> 1f0c7: 48 89 c3 mov %rax,%rbx vector XLogFileHandlerBase::log_files; XLogFileHandlerBase::XLogFileHandlerBase(const char* filename) : XLogHandler(), log_file_size(0), log_file(NULL) 1f0ca: 48 8b 45 b8 mov -0x48(%rbp),%rax 1f0ce: 48 83 c0 10 add $0x10,%rax 1f0d2: 48 89 c7 mov %rax,%rdi 1f0d5: e8 56 43 ff ff callq 13430 <_ZNSsD1Ev@plt> 1f0da: eb 03 jmp 1f0df <_ZN19XLogFileHandlerBaseC1EPKc+0x159> 1f0dc: 48 89 c3 mov %rax,%rbx 1f0df: 48 8b 45 b8 mov -0x48(%rbp),%rax 1f0e3: 48 89 c7 mov %rax,%rdi 1f0e6: e8 f5 46 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1f0eb: 48 89 d8 mov %rbx,%rax 1f0ee: 48 89 c7 mov %rax,%rdi 1f0f1: e8 8a 54 ff ff callq 14580 <_Unwind_Resume@plt> log_filename = filename; // TODO: // Determine directory // Split log file name and extension } 1f0f6: 48 83 c4 48 add $0x48,%rsp 1f0fa: 5b pop %rbx 1f0fb: 5d pop %rbp 1f0fc: c3 retq 1f0fd: 90 nop 000000000001f0fe <_ZN19XLogFileHandlerBaseD1Ev>: XLogFileHandlerBase::~XLogFileHandlerBase() 1f0fe: 55 push %rbp 1f0ff: 48 89 e5 mov %rsp,%rbp 1f102: 53 push %rbx 1f103: 48 83 ec 18 sub $0x18,%rsp 1f107: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1f10b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f10f: 48 8b 15 0a ae 20 00 mov 0x20ae0a(%rip),%rdx # 229f20 <_DYNAMIC+0x1d0> 1f116: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f11a: 48 89 10 mov %rdx,(%rax) { flush(); 1f11d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f121: 48 89 c7 mov %rax,%rdi 1f124: e8 b7 48 ff ff callq 139e0 <_ZN19XLogFileHandlerBase5flushEv@plt> if (log_file) { 1f129: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f12d: 48 8b 40 20 mov 0x20(%rax),%rax 1f131: 48 85 c0 test %rax,%rax 1f134: 74 1c je 1f152 <_ZN19XLogFileHandlerBaseD1Ev+0x54> fclose(log_file); 1f136: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f13a: 48 8b 40 20 mov 0x20(%rax),%rax 1f13e: 48 89 c7 mov %rax,%rdi 1f141: e8 6a 50 ff ff callq 141b0 log_file = NULL; 1f146: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f14a: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1f151: 00 // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1f152: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f156: 48 83 c0 10 add $0x10,%rax 1f15a: 48 89 c7 mov %rax,%rdi 1f15d: e8 ce 42 ff ff callq 13430 <_ZNSsD1Ev@plt> 1f162: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f166: 48 89 c7 mov %rax,%rdi 1f169: e8 72 46 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1f16e: b8 00 00 00 00 mov $0x0,%eax 1f173: 83 e0 01 and $0x1,%eax 1f176: 84 c0 test %al,%al 1f178: 74 3d je 1f1b7 <_ZN19XLogFileHandlerBaseD1Ev+0xb9> 1f17a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f17e: 48 89 c7 mov %rax,%rdi 1f181: e8 6a 3b ff ff callq 12cf0 <_ZdlPv@plt> 1f186: eb 2f jmp 1f1b7 <_ZN19XLogFileHandlerBaseD1Ev+0xb9> 1f188: 48 89 c3 mov %rax,%rbx // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1f18b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f18f: 48 83 c0 10 add $0x10,%rax 1f193: 48 89 c7 mov %rax,%rdi 1f196: e8 95 42 ff ff callq 13430 <_ZNSsD1Ev@plt> 1f19b: eb 03 jmp 1f1a0 <_ZN19XLogFileHandlerBaseD1Ev+0xa2> 1f19d: 48 89 c3 mov %rax,%rbx 1f1a0: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f1a4: 48 89 c7 mov %rax,%rdi 1f1a7: e8 34 46 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1f1ac: 48 89 d8 mov %rbx,%rax 1f1af: 48 89 c7 mov %rax,%rdi 1f1b2: e8 c9 53 ff ff callq 14580 <_Unwind_Resume@plt> flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1f1b7: 48 83 c4 18 add $0x18,%rsp 1f1bb: 5b pop %rbx 1f1bc: 5d pop %rbp 1f1bd: c3 retq 000000000001f1be <_ZN19XLogFileHandlerBaseD0Ev>: // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1f1be: 55 push %rbp 1f1bf: 48 89 e5 mov %rsp,%rbp 1f1c2: 48 83 ec 10 sub $0x10,%rsp 1f1c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1f1ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1ce: 48 89 c7 mov %rax,%rdi 1f1d1: e8 aa 4a ff ff callq 13c80 <_ZN19XLogFileHandlerBaseD1Ev@plt> 1f1d6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1da: 48 89 c7 mov %rax,%rdi 1f1dd: e8 0e 3b ff ff callq 12cf0 <_ZdlPv@plt> 1f1e2: c9 leaveq 1f1e3: c3 retq 000000000001f1e4 <_ZN19XLogFileHandlerBase5flushEv>: void XLogFileHandlerBase::flush() { 1f1e4: 55 push %rbp 1f1e5: 48 89 e5 mov %rsp,%rbp 1f1e8: 48 83 ec 10 sub $0x10,%rsp 1f1ec: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (log_file) 1f1f0: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1f4: 48 8b 40 20 mov 0x20(%rax),%rax 1f1f8: 48 85 c0 test %rax,%rax 1f1fb: 74 10 je 1f20d <_ZN19XLogFileHandlerBase5flushEv+0x29> fflush(log_file); 1f1fd: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f201: 48 8b 40 20 mov 0x20(%rax),%rax 1f205: 48 89 c7 mov %rax,%rdi 1f208: e8 63 55 ff ff callq 14770 } 1f20d: c9 leaveq 1f20e: c3 retq 1f20f: 90 nop 000000000001f210 <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogFileHandlerBase::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1f210: 55 push %rbp 1f211: 48 89 e5 mov %rsp,%rbp 1f214: 48 83 c4 80 add $0xffffffffffffff80,%rsp 1f218: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1f21c: 48 89 75 c0 mov %rsi,-0x40(%rbp) 1f220: 48 89 55 b8 mov %rdx,-0x48(%rbp) 1f224: 89 4d b4 mov %ecx,-0x4c(%rbp) 1f227: 4c 89 45 a8 mov %r8,-0x58(%rbp) 1f22b: 4c 89 4d a0 mov %r9,-0x60(%rbp) if (!log_file) 1f22f: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f233: 48 8b 40 20 mov 0x20(%rax),%rax 1f237: 48 85 c0 test %rax,%rax 1f23a: 75 0c jne 1f248 <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x38> openLogFile(); 1f23c: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f240: 48 89 c7 mov %rax,%rdi 1f243: e8 68 3c ff ff callq 12eb0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt> if (log_file) { 1f248: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f24c: 48 8b 40 20 mov 0x20(%rax),%rax 1f250: 48 85 c0 test %rax,%rax 1f253: 0f 84 00 01 00 00 je 1f359 <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x149> mutex.lock(); 1f259: 48 8b 05 38 ad 20 00 mov 0x20ad38(%rip),%rax # 229f98 <_DYNAMIC+0x248> 1f260: 48 89 c7 mov %rax,%rdi 1f263: e8 68 3a ff ff callq 12cd0 <_ZN6XMutex4lockEv@plt> XTime tm; TMUtil::getCurrentTime(tm); 1f268: 48 8d 45 d0 lea -0x30(%rbp),%rax 1f26c: 48 89 c7 mov %rax,%rdi 1f26f: e8 7c 3d ff ff callq 12ff0 <_ZN6TMUtil14getCurrentTimeER5XTime@plt> fprintf(log_file, "%d-%02d-%02d %02d:%02d:%02d.%03d ", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.second, tm.millisecond); 1f274: 44 8b 45 ec mov -0x14(%rbp),%r8d 1f278: 8b 7d e8 mov -0x18(%rbp),%edi 1f27b: 8b 75 e4 mov -0x1c(%rbp),%esi 1f27e: 44 8b 4d e0 mov -0x20(%rbp),%r9d 1f282: 44 8b 55 d8 mov -0x28(%rbp),%r10d 1f286: 8b 4d d4 mov -0x2c(%rbp),%ecx 1f289: 8b 55 dc mov -0x24(%rbp),%edx 1f28c: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f290: 48 8b 40 20 mov 0x20(%rax),%rax 1f294: 44 89 44 24 10 mov %r8d,0x10(%rsp) 1f299: 89 7c 24 08 mov %edi,0x8(%rsp) 1f29d: 89 34 24 mov %esi,(%rsp) 1f2a0: 45 89 d0 mov %r10d,%r8d 1f2a3: 48 8d 35 fe 47 00 00 lea 0x47fe(%rip),%rsi # 23aa8 <_fini+0xb20> 1f2aa: 48 89 c7 mov %rax,%rdi 1f2ad: b8 00 00 00 00 mov $0x0,%eax 1f2b2: e8 f9 51 ff ff callq 144b0 fprintf(log_file, "%-8s ", getLevelStr(level)); 1f2b7: 8b 45 b4 mov -0x4c(%rbp),%eax 1f2ba: 89 45 fc mov %eax,-0x4(%rbp) 1f2bd: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f2c1: 48 8d 55 fc lea -0x4(%rbp),%rdx 1f2c5: 48 89 d6 mov %rdx,%rsi 1f2c8: 48 89 c7 mov %rax,%rdi 1f2cb: e8 70 52 ff ff callq 14540 <_ZN11XLogHandler11getLevelStrERKi@plt> 1f2d0: 48 89 c2 mov %rax,%rdx 1f2d3: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f2d7: 48 8b 40 20 mov 0x20(%rax),%rax 1f2db: 48 8d 35 e8 47 00 00 lea 0x47e8(%rip),%rsi # 23aca <_fini+0xb42> 1f2e2: 48 89 c7 mov %rax,%rdi 1f2e5: b8 00 00 00 00 mov $0x0,%eax 1f2ea: e8 c1 51 ff ff callq 144b0 if (origin != NULL) { 1f2ef: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 1f2f4: 74 24 je 1f31a <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x10a> fprintf(log_file, "[%s %s] ", origin, func); 1f2f6: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f2fa: 48 8b 40 20 mov 0x20(%rax),%rax 1f2fe: 48 8b 4d b8 mov -0x48(%rbp),%rcx 1f302: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1f306: 48 8d 35 c3 47 00 00 lea 0x47c3(%rip),%rsi # 23ad0 <_fini+0xb48> 1f30d: 48 89 c7 mov %rax,%rdi 1f310: b8 00 00 00 00 mov $0x0,%eax 1f315: e8 96 51 ff ff callq 144b0 } vfprintf(log_file, format, arglist); 1f31a: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f31e: 48 8b 40 20 mov 0x20(%rax),%rax 1f322: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1f326: 48 8b 4d a8 mov -0x58(%rbp),%rcx 1f32a: 48 89 ce mov %rcx,%rsi 1f32d: 48 89 c7 mov %rax,%rdi 1f330: e8 1b 40 ff ff callq 13350 fprintf(log_file, "\n"); 1f335: 48 8b 45 c8 mov -0x38(%rbp),%rax 1f339: 48 8b 40 20 mov 0x20(%rax),%rax 1f33d: 48 89 c6 mov %rax,%rsi 1f340: bf 0a 00 00 00 mov $0xa,%edi 1f345: e8 06 41 ff ff callq 13450 mutex.unlock(); 1f34a: 48 8b 05 47 ac 20 00 mov 0x20ac47(%rip),%rax # 229f98 <_DYNAMIC+0x248> 1f351: 48 89 c7 mov %rax,%rdi 1f354: e8 f7 51 ff ff callq 14550 <_ZN6XMutex6unlockEv@plt> } } 1f359: c9 leaveq 1f35a: c3 retq 1f35b: 90 nop 000000000001f35c <_ZN19XLogFileHandlerBase11openLogFileEv>: void XLogFileHandlerBase::openLogFile() { 1f35c: 55 push %rbp 1f35d: 48 89 e5 mov %rsp,%rbp 1f360: 48 83 ec 10 sub $0x10,%rsp 1f364: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!log_file) { 1f368: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f36c: 48 8b 40 20 mov 0x20(%rax),%rax 1f370: 48 85 c0 test %rax,%rax 1f373: 75 2a jne 1f39f <_ZN19XLogFileHandlerBase11openLogFileEv+0x43> log_file = fopen(log_filename.c_str(), "w"); 1f375: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f379: 48 83 c0 10 add $0x10,%rax 1f37d: 48 89 c7 mov %rax,%rdi 1f380: e8 eb 38 ff ff callq 12c70 <_ZNKSs5c_strEv@plt> 1f385: 48 8d 35 4d 47 00 00 lea 0x474d(%rip),%rsi # 23ad9 <_fini+0xb51> 1f38c: 48 89 c7 mov %rax,%rdi 1f38f: e8 fc 3b ff ff callq 12f90 1f394: 48 89 c2 mov %rax,%rdx 1f397: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f39b: 48 89 50 20 mov %rdx,0x20(%rax) } } 1f39f: c9 leaveq 1f3a0: c3 retq 1f3a1: 90 nop 000000000001f3a2 <_ZN19XLogFileHandlerBase11openLogFileEPKc>: void XLogFileHandlerBase::openLogFile(const char* filename) { 1f3a2: 55 push %rbp 1f3a3: 48 89 e5 mov %rsp,%rbp 1f3a6: 48 83 ec 10 sub $0x10,%rsp 1f3aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f3ae: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (log_file) { 1f3b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3b6: 48 8b 40 20 mov 0x20(%rax),%rax 1f3ba: 48 85 c0 test %rax,%rax 1f3bd: 74 33 je 1f3f2 <_ZN19XLogFileHandlerBase11openLogFileEPKc+0x50> flush(); 1f3bf: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3c3: 48 8b 00 mov (%rax),%rax 1f3c6: 48 83 c0 10 add $0x10,%rax 1f3ca: 48 8b 10 mov (%rax),%rdx 1f3cd: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3d1: 48 89 c7 mov %rax,%rdi 1f3d4: ff d2 callq *%rdx fclose(log_file); 1f3d6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3da: 48 8b 40 20 mov 0x20(%rax),%rax 1f3de: 48 89 c7 mov %rax,%rdi 1f3e1: e8 ca 4d ff ff callq 141b0 log_file = NULL; 1f3e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3ea: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1f3f1: 00 } log_filename = filename; 1f3f2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3f6: 48 8d 50 10 lea 0x10(%rax),%rdx 1f3fa: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f3fe: 48 89 c6 mov %rax,%rsi 1f401: 48 89 d7 mov %rdx,%rdi 1f404: e8 27 35 ff ff callq 12930 <_ZNSsaSEPKc@plt> openLogFile(); 1f409: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f40d: 48 89 c7 mov %rax,%rdi 1f410: e8 9b 3a ff ff callq 12eb0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt> } 1f415: c9 leaveq 1f416: c3 retq 1f417: 90 nop 000000000001f418 <_ZN15XLogFileHandlerC1EPKc>: /******************************************************************************** * XLogFileHandler ********************************************************************************/ XLogFileHandler::XLogFileHandler(const char* filename) : 1f418: 55 push %rbp 1f419: 48 89 e5 mov %rsp,%rbp 1f41c: 48 83 ec 10 sub $0x10,%rsp 1f420: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f424: 48 89 75 f0 mov %rsi,-0x10(%rbp) XLogFileHandlerBase(filename) 1f428: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f42c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1f430: 48 89 d6 mov %rdx,%rsi 1f433: 48 89 c7 mov %rax,%rdi 1f436: e8 45 3f ff ff callq 13380 <_ZN19XLogFileHandlerBaseC2EPKc@plt> 1f43b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f43f: 48 8b 15 02 ab 20 00 mov 0x20ab02(%rip),%rdx # 229f48 <_DYNAMIC+0x1f8> 1f446: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f44a: 48 89 10 mov %rdx,(%rax) { } 1f44d: c9 leaveq 1f44e: c3 retq 1f44f: 90 nop 000000000001f450 <_ZN15XLogFileHandlerD1Ev>: XLogFileHandler::~XLogFileHandler() 1f450: 55 push %rbp 1f451: 48 89 e5 mov %rsp,%rbp 1f454: 48 83 ec 10 sub $0x10,%rsp 1f458: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f45c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f460: 48 8b 15 e1 aa 20 00 mov 0x20aae1(%rip),%rdx # 229f48 <_DYNAMIC+0x1f8> 1f467: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f46b: 48 89 10 mov %rdx,(%rax) 1f46e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f472: 48 89 c7 mov %rax,%rdi 1f475: e8 a6 4b ff ff callq 14020 <_ZN19XLogFileHandlerBaseD2Ev@plt> { } 1f47a: b8 00 00 00 00 mov $0x0,%eax 1f47f: 83 e0 01 and $0x1,%eax 1f482: 84 c0 test %al,%al 1f484: 74 0c je 1f492 <_ZN15XLogFileHandlerD1Ev+0x42> 1f486: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f48a: 48 89 c7 mov %rax,%rdi 1f48d: e8 5e 38 ff ff callq 12cf0 <_ZdlPv@plt> 1f492: c9 leaveq 1f493: c3 retq 000000000001f494 <_ZN15XLogFileHandlerD0Ev>: XLogFileHandler::XLogFileHandler(const char* filename) : XLogFileHandlerBase(filename) { } XLogFileHandler::~XLogFileHandler() 1f494: 55 push %rbp 1f495: 48 89 e5 mov %rsp,%rbp 1f498: 48 83 ec 10 sub $0x10,%rsp 1f49c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { } 1f4a0: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f4a4: 48 89 c7 mov %rax,%rdi 1f4a7: e8 f4 48 ff ff callq 13da0 <_ZN15XLogFileHandlerD1Ev@plt> 1f4ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f4b0: 48 89 c7 mov %rax,%rdi 1f4b3: e8 38 38 ff ff callq 12cf0 <_ZdlPv@plt> 1f4b8: c9 leaveq 1f4b9: c3 retq 000000000001f4ba <_ZN17XLogSyslogHandlerC1Ev>: /******************************************************************************** * XLogSyslogHandler ********************************************************************************/ XLogSyslogHandler::XLogSyslogHandler() : 1f4ba: 55 push %rbp 1f4bb: 48 89 e5 mov %rsp,%rbp 1f4be: 53 push %rbx 1f4bf: 48 83 ec 28 sub $0x28,%rsp 1f4c3: 48 89 7d d8 mov %rdi,-0x28(%rbp) is_open(0), id("XLogHandler") 1f4c7: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f4cb: 48 89 c7 mov %rax,%rdi 1f4ce: e8 6d 38 ff ff callq 12d40 <_ZN11XLogHandlerC2Ev@plt> 1f4d3: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f4d7: 48 8b 15 72 aa 20 00 mov 0x20aa72(%rip),%rdx # 229f50 <_DYNAMIC+0x200> 1f4de: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f4e2: 48 89 10 mov %rdx,(%rax) 1f4e5: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f4e9: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) 1f4ef: 48 8d 45 ef lea -0x11(%rbp),%rax 1f4f3: 48 89 c7 mov %rax,%rdi 1f4f6: e8 35 4f ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1f4fb: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f4ff: 48 8d 48 10 lea 0x10(%rax),%rcx 1f503: 48 8d 45 ef lea -0x11(%rbp),%rax 1f507: 48 89 c2 mov %rax,%rdx 1f50a: 48 8d 35 ca 45 00 00 lea 0x45ca(%rip),%rsi # 23adb <_fini+0xb53> 1f511: 48 89 cf mov %rcx,%rdi 1f514: e8 07 44 ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1f519: 48 8d 45 ef lea -0x11(%rbp),%rax 1f51d: 48 89 c7 mov %rax,%rdi 1f520: e8 9b 4a ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> { openLog(); 1f525: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f529: 48 89 c7 mov %rax,%rdi 1f52c: e8 2f 4b ff ff callq 14060 <_ZN17XLogSyslogHandler7openLogEv@plt> } 1f531: eb 3b jmp 1f56e <_ZN17XLogSyslogHandlerC1Ev+0xb4> 1f533: 48 89 c3 mov %rax,%rbx * XLogSyslogHandler ********************************************************************************/ XLogSyslogHandler::XLogSyslogHandler() : is_open(0), id("XLogHandler") 1f536: 48 8d 45 ef lea -0x11(%rbp),%rax 1f53a: 48 89 c7 mov %rax,%rdi 1f53d: e8 7e 4a ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1f542: eb 13 jmp 1f557 <_ZN17XLogSyslogHandlerC1Ev+0x9d> 1f544: 48 89 c3 mov %rax,%rbx 1f547: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f54b: 48 83 c0 10 add $0x10,%rax 1f54f: 48 89 c7 mov %rax,%rdi 1f552: e8 d9 3e ff ff callq 13430 <_ZNSsD1Ev@plt> 1f557: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f55b: 48 89 c7 mov %rax,%rdi 1f55e: e8 7d 42 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1f563: 48 89 d8 mov %rbx,%rax 1f566: 48 89 c7 mov %rax,%rdi 1f569: e8 12 50 ff ff callq 14580 <_Unwind_Resume@plt> { openLog(); } 1f56e: 48 83 c4 28 add $0x28,%rsp 1f572: 5b pop %rbx 1f573: 5d pop %rbp 1f574: c3 retq 1f575: 90 nop 000000000001f576 <_ZN17XLogSyslogHandlerC1EPKc>: XLogSyslogHandler::XLogSyslogHandler(const char* ident) : 1f576: 55 push %rbp 1f577: 48 89 e5 mov %rsp,%rbp 1f57a: 53 push %rbx 1f57b: 48 83 ec 28 sub $0x28,%rsp 1f57f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1f583: 48 89 75 d0 mov %rsi,-0x30(%rbp) is_open(0), id(ident) 1f587: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f58b: 48 89 c7 mov %rax,%rdi 1f58e: e8 ad 37 ff ff callq 12d40 <_ZN11XLogHandlerC2Ev@plt> 1f593: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f597: 48 8b 15 b2 a9 20 00 mov 0x20a9b2(%rip),%rdx # 229f50 <_DYNAMIC+0x200> 1f59e: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f5a2: 48 89 10 mov %rdx,(%rax) 1f5a5: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f5a9: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) 1f5af: 48 8d 45 ef lea -0x11(%rbp),%rax 1f5b3: 48 89 c7 mov %rax,%rdi 1f5b6: e8 75 4e ff ff callq 14430 <_ZNSaIcEC1Ev@plt> 1f5bb: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f5bf: 48 8d 48 10 lea 0x10(%rax),%rcx 1f5c3: 48 8d 55 ef lea -0x11(%rbp),%rdx 1f5c7: 48 8b 45 d0 mov -0x30(%rbp),%rax 1f5cb: 48 89 c6 mov %rax,%rsi 1f5ce: 48 89 cf mov %rcx,%rdi 1f5d1: e8 4a 43 ff ff callq 13920 <_ZNSsC1EPKcRKSaIcE@plt> 1f5d6: 48 8d 45 ef lea -0x11(%rbp),%rax 1f5da: 48 89 c7 mov %rax,%rdi 1f5dd: e8 de 49 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> { openLog(); 1f5e2: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f5e6: 48 89 c7 mov %rax,%rdi 1f5e9: e8 72 4a ff ff callq 14060 <_ZN17XLogSyslogHandler7openLogEv@plt> } 1f5ee: eb 3b jmp 1f62b <_ZN17XLogSyslogHandlerC1EPKc+0xb5> 1f5f0: 48 89 c3 mov %rax,%rbx openLog(); } XLogSyslogHandler::XLogSyslogHandler(const char* ident) : is_open(0), id(ident) 1f5f3: 48 8d 45 ef lea -0x11(%rbp),%rax 1f5f7: 48 89 c7 mov %rax,%rdi 1f5fa: e8 c1 49 ff ff callq 13fc0 <_ZNSaIcED1Ev@plt> 1f5ff: eb 13 jmp 1f614 <_ZN17XLogSyslogHandlerC1EPKc+0x9e> 1f601: 48 89 c3 mov %rax,%rbx 1f604: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f608: 48 83 c0 10 add $0x10,%rax 1f60c: 48 89 c7 mov %rax,%rdi 1f60f: e8 1c 3e ff ff callq 13430 <_ZNSsD1Ev@plt> 1f614: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f618: 48 89 c7 mov %rax,%rdi 1f61b: e8 c0 41 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1f620: 48 89 d8 mov %rbx,%rax 1f623: 48 89 c7 mov %rax,%rdi 1f626: e8 55 4f ff ff callq 14580 <_Unwind_Resume@plt> { openLog(); } 1f62b: 48 83 c4 28 add $0x28,%rsp 1f62f: 5b pop %rbx 1f630: 5d pop %rbp 1f631: c3 retq 000000000001f632 <_ZN17XLogSyslogHandlerD1Ev>: XLogSyslogHandler::~XLogSyslogHandler() 1f632: 55 push %rbp 1f633: 48 89 e5 mov %rsp,%rbp 1f636: 53 push %rbx 1f637: 48 83 ec 18 sub $0x18,%rsp 1f63b: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1f63f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f643: 48 8b 15 06 a9 20 00 mov 0x20a906(%rip),%rdx # 229f50 <_DYNAMIC+0x200> 1f64a: 48 8d 52 10 lea 0x10(%rdx),%rdx 1f64e: 48 89 10 mov %rdx,(%rax) { if (is_open) { 1f651: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f655: 0f b7 40 0c movzwl 0xc(%rax),%eax 1f659: 66 85 c0 test %ax,%ax 1f65c: 74 0f je 1f66d <_ZN17XLogSyslogHandlerD1Ev+0x3b> #if __linux closelog(); 1f65e: e8 8d 3d ff ff callq 133f0 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif is_open = 0; 1f663: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f667: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1f66d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f671: 48 83 c0 10 add $0x10,%rax 1f675: 48 89 c7 mov %rax,%rdi 1f678: e8 b3 3d ff ff callq 13430 <_ZNSsD1Ev@plt> 1f67d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f681: 48 89 c7 mov %rax,%rdi 1f684: e8 57 41 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> #else #error Not implemented yet. #endif is_open = 0; } } 1f689: b8 00 00 00 00 mov $0x0,%eax 1f68e: 83 e0 01 and $0x1,%eax 1f691: 84 c0 test %al,%al 1f693: 74 3d je 1f6d2 <_ZN17XLogSyslogHandlerD1Ev+0xa0> 1f695: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f699: 48 89 c7 mov %rax,%rdi 1f69c: e8 4f 36 ff ff callq 12cf0 <_ZdlPv@plt> 1f6a1: eb 2f jmp 1f6d2 <_ZN17XLogSyslogHandlerD1Ev+0xa0> 1f6a3: 48 89 c3 mov %rax,%rbx id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1f6a6: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f6aa: 48 83 c0 10 add $0x10,%rax 1f6ae: 48 89 c7 mov %rax,%rdi 1f6b1: e8 7a 3d ff ff callq 13430 <_ZNSsD1Ev@plt> 1f6b6: eb 03 jmp 1f6bb <_ZN17XLogSyslogHandlerD1Ev+0x89> 1f6b8: 48 89 c3 mov %rax,%rbx 1f6bb: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f6bf: 48 89 c7 mov %rax,%rdi 1f6c2: e8 19 41 ff ff callq 137e0 <_ZN11XLogHandlerD2Ev@plt> 1f6c7: 48 89 d8 mov %rbx,%rax 1f6ca: 48 89 c7 mov %rax,%rdi 1f6cd: e8 ae 4e ff ff callq 14580 <_Unwind_Resume@plt> #else #error Not implemented yet. #endif is_open = 0; } } 1f6d2: 48 83 c4 18 add $0x18,%rsp 1f6d6: 5b pop %rbx 1f6d7: 5d pop %rbp 1f6d8: c3 retq 1f6d9: 90 nop 000000000001f6da <_ZN17XLogSyslogHandlerD0Ev>: id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1f6da: 55 push %rbp 1f6db: 48 89 e5 mov %rsp,%rbp 1f6de: 48 83 ec 10 sub $0x10,%rsp 1f6e2: 48 89 7d f8 mov %rdi,-0x8(%rbp) #else #error Not implemented yet. #endif is_open = 0; } } 1f6e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f6ea: 48 89 c7 mov %rax,%rdi 1f6ed: e8 0e 4a ff ff callq 14100 <_ZN17XLogSyslogHandlerD1Ev@plt> 1f6f2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f6f6: 48 89 c7 mov %rax,%rdi 1f6f9: e8 f2 35 ff ff callq 12cf0 <_ZdlPv@plt> 1f6fe: c9 leaveq 1f6ff: c3 retq 000000000001f700 <_ZN17XLogSyslogHandler7openLogEv>: void XLogSyslogHandler::openLog() { 1f700: 55 push %rbp 1f701: 48 89 e5 mov %rsp,%rbp 1f704: 48 83 ec 10 sub $0x10,%rsp 1f708: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!is_open) { 1f70c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f710: 0f b7 40 0c movzwl 0xc(%rax),%eax 1f714: 66 85 c0 test %ax,%ax 1f717: 75 2c jne 1f745 <_ZN17XLogSyslogHandler7openLogEv+0x45> #if __linux openlog(id.c_str(), LOG_NDELAY, LOG_USER); 1f719: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f71d: 48 83 c0 10 add $0x10,%rax 1f721: 48 89 c7 mov %rax,%rdi 1f724: e8 47 35 ff ff callq 12c70 <_ZNKSs5c_strEv@plt> 1f729: ba 08 00 00 00 mov $0x8,%edx 1f72e: be 08 00 00 00 mov $0x8,%esi 1f733: 48 89 c7 mov %rax,%rdi 1f736: e8 e5 35 ff ff callq 12d20 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif is_open = 1; 1f73b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f73f: 66 c7 40 0c 01 00 movw $0x1,0xc(%rax) } } 1f745: c9 leaveq 1f746: c3 retq 1f747: 90 nop 000000000001f748 <_ZN17XLogSyslogHandler5flushEv>: void XLogSyslogHandler::flush() { 1f748: 55 push %rbp 1f749: 48 89 e5 mov %rsp,%rbp 1f74c: 48 89 7d f8 mov %rdi,-0x8(%rbp) // Do nothing } 1f750: 5d pop %rbp 1f751: c3 retq 000000000001f752 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel>: int XLogSyslogHandler::mapLevel(LogLevel level) { 1f752: 55 push %rbp 1f753: 48 89 e5 mov %rsp,%rbp 1f756: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f75a: 89 75 f4 mov %esi,-0xc(%rbp) switch(level) { 1f75d: 8b 45 f4 mov -0xc(%rbp),%eax 1f760: 83 f8 02 cmp $0x2,%eax 1f763: 74 1f je 1f784 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x32> 1f765: 83 f8 02 cmp $0x2,%eax 1f768: 7f 07 jg 1f771 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x1f> 1f76a: 83 f8 01 cmp $0x1,%eax 1f76d: 74 0e je 1f77d <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x2b> 1f76f: eb 28 jmp 1f799 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x47> 1f771: 83 f8 03 cmp $0x3,%eax 1f774: 74 15 je 1f78b <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x39> 1f776: 83 f8 04 cmp $0x4,%eax 1f779: 74 17 je 1f792 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x40> 1f77b: eb 1c jmp 1f799 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x47> #if __linux case FATAL: return LOG_CRIT; 1f77d: b8 02 00 00 00 mov $0x2,%eax 1f782: eb 1a jmp 1f79e <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case ERROR: return LOG_ERR; 1f784: b8 03 00 00 00 mov $0x3,%eax 1f789: eb 13 jmp 1f79e <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case WARNING: return LOG_WARNING; 1f78b: b8 04 00 00 00 mov $0x4,%eax 1f790: eb 0c jmp 1f79e <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case INFO: return LOG_INFO; 1f792: b8 06 00 00 00 mov $0x6,%eax 1f797: eb 05 jmp 1f79e <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> default: return LOG_DEBUG; 1f799: b8 07 00 00 00 mov $0x7,%eax #error Windows version not implemented yet. #else #error Not implemented yet. #endif } } 1f79e: 5d pop %rbp 1f79f: c3 retq 000000000001f7a0 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogSyslogHandler::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1f7a0: 55 push %rbp 1f7a1: 48 89 e5 mov %rsp,%rbp 1f7a4: 53 push %rbx 1f7a5: 48 83 ec 48 sub $0x48,%rsp 1f7a9: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1f7ad: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1f7b1: 48 89 55 c8 mov %rdx,-0x38(%rbp) 1f7b5: 89 4d c4 mov %ecx,-0x3c(%rbp) 1f7b8: 4c 89 45 b8 mov %r8,-0x48(%rbp) 1f7bc: 4c 89 4d b0 mov %r9,-0x50(%rbp) if (!is_open) 1f7c0: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f7c4: 0f b7 40 0c movzwl 0xc(%rax),%eax 1f7c8: 66 85 c0 test %ax,%ax 1f7cb: 75 0c jne 1f7d9 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x39> openLog(); 1f7cd: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f7d1: 48 89 c7 mov %rax,%rdi 1f7d4: e8 87 48 ff ff callq 14060 <_ZN17XLogSyslogHandler7openLogEv@plt> if (is_open) { 1f7d9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f7dd: 0f b7 40 0c movzwl 0xc(%rax),%eax 1f7e1: 66 85 c0 test %ax,%ax 1f7e4: 0f 84 e1 00 00 00 je 1f8cb <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x12b> int priority = mapLevel(level); 1f7ea: 8b 55 c4 mov -0x3c(%rbp),%edx 1f7ed: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f7f1: 89 d6 mov %edx,%esi 1f7f3: 48 89 c7 mov %rax,%rdi 1f7f6: e8 95 4f ff ff callq 14790 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt> 1f7fb: 89 45 ec mov %eax,-0x14(%rbp) string s; 1f7fe: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f802: 48 89 c7 mov %rax,%rdi 1f805: e8 46 31 ff ff callq 12950 <_ZNSsC1Ev@plt> if (origin != NULL) { 1f80a: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 1f80f: 74 72 je 1f883 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0xe3> s.append("["); 1f811: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f815: 48 8d 35 cb 42 00 00 lea 0x42cb(%rip),%rsi # 23ae7 <_fini+0xb5f> 1f81c: 48 89 c7 mov %rax,%rdi 1f81f: e8 fc 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> s.append(origin); 1f824: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1f828: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f82c: 48 89 d6 mov %rdx,%rsi 1f82f: 48 89 c7 mov %rax,%rdi 1f832: e8 e9 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> s.append(" "); 1f837: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f83b: 48 8d 35 a7 42 00 00 lea 0x42a7(%rip),%rsi # 23ae9 <_fini+0xb61> 1f842: 48 89 c7 mov %rax,%rdi 1f845: e8 d6 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> s.append(func); 1f84a: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1f84e: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f852: 48 89 d6 mov %rdx,%rsi 1f855: 48 89 c7 mov %rax,%rdi 1f858: e8 c3 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> s.append("] "); 1f85d: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f861: 48 8d 35 83 42 00 00 lea 0x4283(%rip),%rsi # 23aeb <_fini+0xb63> 1f868: 48 89 c7 mov %rax,%rdi 1f86b: e8 b0 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> s.append(format); 1f870: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1f874: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f878: 48 89 d6 mov %rdx,%rsi 1f87b: 48 89 c7 mov %rax,%rdi 1f87e: e8 9d 48 ff ff callq 14120 <_ZNSs6appendEPKc@plt> } #if __linux vsyslog(priority, s.c_str(), arglist); 1f883: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f887: 48 89 c7 mov %rax,%rdi 1f88a: e8 e1 33 ff ff callq 12c70 <_ZNKSs5c_strEv@plt> 1f88f: 48 89 c1 mov %rax,%rcx 1f892: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1f896: 8b 45 ec mov -0x14(%rbp),%eax 1f899: 48 89 ce mov %rcx,%rsi 1f89c: 89 c7 mov %eax,%edi 1f89e: e8 8d 39 ff ff callq 13230 1f8a3: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f8a7: 48 89 c7 mov %rax,%rdi 1f8aa: e8 81 3b ff ff callq 13430 <_ZNSsD1Ev@plt> 1f8af: eb 1b jmp 1f8cc <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x12c> 1f8b1: 48 89 c3 mov %rax,%rbx 1f8b4: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f8b8: 48 89 c7 mov %rax,%rdi 1f8bb: e8 70 3b ff ff callq 13430 <_ZNSsD1Ev@plt> 1f8c0: 48 89 d8 mov %rbx,%rax 1f8c3: 48 89 c7 mov %rax,%rdi 1f8c6: e8 b5 4c ff ff callq 14580 <_Unwind_Resume@plt> #error Windows version not implemented yet. #else #error Not implemented yet. #endif } } 1f8cb: 90 nop 1f8cc: 48 83 c4 48 add $0x48,%rsp 1f8d0: 5b pop %rbx 1f8d1: 5d pop %rbp 1f8d2: c3 retq 1f8d3: 90 nop 000000000001f8d4 <_ZN17XLogSyslogHandler8setLevelE8LogLevel>: void XLogSyslogHandler::setLevel(LogLevel l) { 1f8d4: 55 push %rbp 1f8d5: 48 89 e5 mov %rsp,%rbp 1f8d8: 53 push %rbx 1f8d9: 48 83 ec 28 sub $0x28,%rsp 1f8dd: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1f8e1: 89 75 d4 mov %esi,-0x2c(%rbp) level = l; 1f8e4: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f8e8: 8b 55 d4 mov -0x2c(%rbp),%edx 1f8eb: 89 50 08 mov %edx,0x8(%rax) int priority = mapLevel(level); 1f8ee: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f8f2: 8b 50 08 mov 0x8(%rax),%edx 1f8f5: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f8f9: 89 d6 mov %edx,%esi 1f8fb: 48 89 c7 mov %rax,%rdi 1f8fe: e8 8d 4e ff ff callq 14790 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt> 1f903: 89 45 ec mov %eax,-0x14(%rbp) #if __linux setlogmask(LOG_UPTO(priority)); 1f906: 8b 45 ec mov -0x14(%rbp),%eax 1f909: 83 c0 01 add $0x1,%eax 1f90c: ba 01 00 00 00 mov $0x1,%edx 1f911: 89 d3 mov %edx,%ebx 1f913: 89 c1 mov %eax,%ecx 1f915: d3 e3 shl %cl,%ebx 1f917: 89 d8 mov %ebx,%eax 1f919: 83 e8 01 sub $0x1,%eax 1f91c: 89 c7 mov %eax,%edi 1f91e: e8 9d 35 ff ff callq 12ec0 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif } 1f923: 48 83 c4 28 add $0x28,%rsp 1f927: 5b pop %rbx 1f928: 5d pop %rbp 1f929: c3 retq 000000000001f92a <_Z41__static_initialization_and_destruction_0ii>: 1f92a: 55 push %rbp 1f92b: 48 89 e5 mov %rsp,%rbp 1f92e: 48 83 ec 10 sub $0x10,%rsp 1f932: 89 7d fc mov %edi,-0x4(%rbp) 1f935: 89 75 f8 mov %esi,-0x8(%rbp) 1f938: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 1f93c: 75 67 jne 1f9a5 <_Z41__static_initialization_and_destruction_0ii+0x7b> 1f93e: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 1f945: 75 5e jne 1f9a5 <_Z41__static_initialization_and_destruction_0ii+0x7b> /******************************************************************************** * XLogFileHandlerBase ********************************************************************************/ XMutex XLogFileHandlerBase::mutex; 1f947: 48 8b 05 4a a6 20 00 mov 0x20a64a(%rip),%rax # 229f98 <_DYNAMIC+0x248> 1f94e: 48 89 c7 mov %rax,%rdi 1f951: e8 2a 44 ff ff callq 13d80 <_ZN6XMutexC1Ev@plt> 1f956: 48 8b 05 fb a5 20 00 mov 0x20a5fb(%rip),%rax # 229f58 <_DYNAMIC+0x208> 1f95d: 48 8b 15 0c a6 20 00 mov 0x20a60c(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 1f964: 48 8b 0d 2d a6 20 00 mov 0x20a62d(%rip),%rcx # 229f98 <_DYNAMIC+0x248> 1f96b: 48 89 ce mov %rcx,%rsi 1f96e: 48 89 c7 mov %rax,%rdi 1f971: e8 da 37 ff ff callq 13150 <__cxa_atexit@plt> vector XLogFileHandlerBase::log_files; 1f976: 48 8b 05 ab a5 20 00 mov 0x20a5ab(%rip),%rax # 229f28 <_DYNAMIC+0x1d8> 1f97d: 48 89 c7 mov %rax,%rdi 1f980: e8 7b 36 ff ff callq 13000 <_ZNSt6vectorISsSaISsEEC1Ev@plt> 1f985: 48 8b 05 1c a6 20 00 mov 0x20a61c(%rip),%rax # 229fa8 <_DYNAMIC+0x258> 1f98c: 48 8b 15 dd a5 20 00 mov 0x20a5dd(%rip),%rdx # 229f70 <_DYNAMIC+0x220> 1f993: 48 8b 0d 8e a5 20 00 mov 0x20a58e(%rip),%rcx # 229f28 <_DYNAMIC+0x1d8> 1f99a: 48 89 ce mov %rcx,%rsi 1f99d: 48 89 c7 mov %rax,%rdi 1f9a0: e8 ab 37 ff ff callq 13150 <__cxa_atexit@plt> #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif } 1f9a5: c9 leaveq 1f9a6: c3 retq 000000000001f9a7 <_GLOBAL__sub_I_log.cpp>: 1f9a7: 55 push %rbp 1f9a8: 48 89 e5 mov %rsp,%rbp 1f9ab: be ff ff 00 00 mov $0xffff,%esi 1f9b0: bf 01 00 00 00 mov $0x1,%edi 1f9b5: e8 70 ff ff ff callq 1f92a <_Z41__static_initialization_and_destruction_0ii> 1f9ba: 5d pop %rbp 1f9bb: c3 retq 000000000001f9bc <_ZdlPvS_>: inline void* operator new[](std::size_t, void* __p) throw() { return __p; } // Default placement versions of operator delete. inline void operator delete (void*, void*) throw() { } 1f9bc: 55 push %rbp 1f9bd: 48 89 e5 mov %rsp,%rbp 1f9c0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f9c4: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1f9c8: 5d pop %rbp 1f9c9: c3 retq 000000000001f9ca <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev>: 1f9ca: 55 push %rbp 1f9cb: 48 89 e5 mov %rsp,%rbp 1f9ce: 48 83 ec 10 sub $0x10,%rsp 1f9d2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f9d6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f9da: 48 89 c7 mov %rax,%rdi 1f9dd: e8 6e 33 ff ff callq 12d50 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev@plt> 1f9e2: c9 leaveq 1f9e3: c3 retq 000000000001f9e4 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev>: // allocation/deallocation /** * @brief Default constructor creates no elements. */ set() 1f9e4: 55 push %rbp 1f9e5: 48 89 e5 mov %rsp,%rbp 1f9e8: 48 83 ec 10 sub $0x10,%rsp 1f9ec: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 1f9f0: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f9f4: 48 89 c7 mov %rax,%rdi 1f9f7: e8 64 37 ff ff callq 13160 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1Ev@plt> 1f9fc: c9 leaveq 1f9fd: c3 retq 000000000001f9fe <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv>: * Returns a read-only (constant) iterator that points to the first * element in the %set. Iteration is done in ascending order according * to the keys. */ iterator begin() const 1f9fe: 55 push %rbp 1f9ff: 48 89 e5 mov %rsp,%rbp 1fa02: 48 83 ec 10 sub $0x10,%rsp 1fa06: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.begin(); } 1fa0a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa0e: 48 89 c7 mov %rax,%rdi 1fa11: e8 9a 41 ff ff callq 13bb0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt> 1fa16: c9 leaveq 1fa17: c3 retq 000000000001fa18 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv>: * Returns a read-only (constant) iterator that points one past the last * element in the %set. Iteration is done in ascending order according * to the keys. */ iterator end() const 1fa18: 55 push %rbp 1fa19: 48 89 e5 mov %rsp,%rbp 1fa1c: 48 83 ec 10 sub $0x10,%rsp 1fa20: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 1fa24: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa28: 48 89 c7 mov %rax,%rdi 1fa2b: e8 e0 4c ff ff callq 14710 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 1fa30: c9 leaveq 1fa31: c3 retq 000000000001fa32 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 1fa32: 55 push %rbp 1fa33: 48 89 e5 mov %rsp,%rbp 1fa36: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fa3a: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 1fa3e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa42: 48 8b 10 mov (%rax),%rdx 1fa45: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fa49: 48 8b 00 mov (%rax),%rax 1fa4c: 48 39 c2 cmp %rax,%rdx 1fa4f: 0f 95 c0 setne %al 1fa52: 5d pop %rbp 1fa53: c3 retq 000000000001fa54 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv>: _M_const_cast() const { return iterator(static_cast (const_cast(_M_node))); } reference operator*() const 1fa54: 55 push %rbp 1fa55: 48 89 e5 mov %rsp,%rbp 1fa58: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 1fa5c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa60: 48 8b 00 mov (%rax),%rax 1fa63: 48 83 c0 20 add $0x20,%rax 1fa67: 5d pop %rbp 1fa68: c3 retq 1fa69: 90 nop 000000000001fa6a <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 1fa6a: 55 push %rbp 1fa6b: 48 89 e5 mov %rsp,%rbp 1fa6e: 48 83 ec 20 sub $0x20,%rsp 1fa72: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1fa76: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 1fa79: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fa7d: 48 8b 00 mov (%rax),%rax 1fa80: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 1fa84: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fa88: 48 8b 00 mov (%rax),%rax 1fa8b: 48 89 c7 mov %rax,%rdi 1fa8e: e8 cd 3d ff ff callq 13860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 1fa93: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1fa97: 48 89 02 mov %rax,(%rdx) return __tmp; 1fa9a: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1fa9e: c9 leaveq 1fa9f: c3 retq 000000000001faa0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_>: * not already present in the %set. * * Insertion requires logarithmic time. */ std::pair insert(const value_type& __x) 1faa0: 55 push %rbp 1faa1: 48 89 e5 mov %rsp,%rbp 1faa4: 48 83 ec 60 sub $0x60,%rsp 1faa8: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1faac: 48 89 75 b0 mov %rsi,-0x50(%rbp) { std::pair __p = _M_t._M_insert_unique(__x); 1fab0: 48 8b 45 b8 mov -0x48(%rbp),%rax 1fab4: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1fab8: 48 89 d6 mov %rdx,%rsi 1fabb: 48 89 c7 mov %rax,%rdi 1fabe: e8 4d 30 ff ff callq 12b10 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_@plt> 1fac3: 48 89 c1 mov %rax,%rcx 1fac6: 89 d0 mov %edx,%eax 1fac8: 48 89 4d a0 mov %rcx,-0x60(%rbp) 1facc: 89 45 a8 mov %eax,-0x58(%rbp) 1facf: 48 8b 45 a0 mov -0x60(%rbp),%rax 1fad3: 48 89 45 c0 mov %rax,-0x40(%rbp) 1fad7: 48 8b 45 a8 mov -0x58(%rbp),%rax 1fadb: 48 89 45 c8 mov %rax,-0x38(%rbp) return std::pair(__p.first, __p.second); 1fadf: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1fae3: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fae7: 48 89 d6 mov %rdx,%rsi 1faea: 48 89 c7 mov %rax,%rdi 1faed: e8 4e 3e ff ff callq 13940 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt> 1faf2: 48 8d 45 c0 lea -0x40(%rbp),%rax 1faf6: 48 8d 50 08 lea 0x8(%rax),%rdx 1fafa: 48 8d 4d f0 lea -0x10(%rbp),%rcx 1fafe: 48 8d 45 d0 lea -0x30(%rbp),%rax 1fb02: 48 89 ce mov %rcx,%rsi 1fb05: 48 89 c7 mov %rax,%rdi 1fb08: e8 23 48 ff ff callq 14330 <_ZNSt4pairISt23_Rb_tree_const_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 1fb0d: 48 8b 45 d0 mov -0x30(%rbp),%rax 1fb11: 48 89 45 e0 mov %rax,-0x20(%rbp) 1fb15: 48 8b 45 d8 mov -0x28(%rbp),%rax 1fb19: 48 89 45 e8 mov %rax,-0x18(%rbp) 1fb1d: 48 8b 45 e0 mov -0x20(%rbp),%rax 1fb21: 8b 55 e8 mov -0x18(%rbp),%edx } 1fb24: c9 leaveq 1fb25: c3 retq 000000000001fb26 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE4findERKS1_>: * the key matches. If successful the function returns an iterator * pointing to the sought after element. If unsuccessful it returns the * past-the-end ( @c end() ) iterator. */ iterator find(const key_type& __x) 1fb26: 55 push %rbp 1fb27: 48 89 e5 mov %rsp,%rbp 1fb2a: 48 83 ec 30 sub $0x30,%rsp 1fb2e: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1fb32: 48 89 75 d0 mov %rsi,-0x30(%rbp) { return _M_t.find(__x); } 1fb36: 48 8b 45 d8 mov -0x28(%rbp),%rax 1fb3a: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1fb3e: 48 89 d6 mov %rdx,%rsi 1fb41: 48 89 c7 mov %rax,%rdi 1fb44: e8 17 42 ff ff callq 13d60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_@plt> 1fb49: 48 89 45 e0 mov %rax,-0x20(%rbp) 1fb4d: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1fb51: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fb55: 48 89 d6 mov %rdx,%rsi 1fb58: 48 89 c7 mov %rax,%rdi 1fb5b: e8 e0 3d ff ff callq 13940 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt> 1fb60: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fb64: c9 leaveq 1fb65: c3 retq 000000000001fb66 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E>: * that if the element is itself a pointer, the pointed-to memory is not * touched in any way. Managing the pointer is the user's * responsibility. */ void erase(iterator __position) 1fb66: 55 push %rbp 1fb67: 48 89 e5 mov %rsp,%rbp 1fb6a: 48 83 ec 10 sub $0x10,%rsp 1fb6e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fb72: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_t.erase(__position); } 1fb76: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fb7a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fb7e: 48 89 d6 mov %rdx,%rsi 1fb81: 48 89 c7 mov %rax,%rdi 1fb84: e8 97 47 ff ff callq 14320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt> 1fb89: c9 leaveq 1fb8a: c3 retq 1fb8b: 90 nop 000000000001fb8c <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEC1Ev>: // (get_allocator() is normally listed in this section, but seems to have // been accidentally omitted in the printed standard) /** * @brief Default constructor creates no elements. */ map() 1fb8c: 55 push %rbp 1fb8d: 48 89 e5 mov %rsp,%rbp 1fb90: 48 83 ec 10 sub $0x10,%rsp 1fb94: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 1fb98: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fb9c: 48 89 c7 mov %rax,%rdi 1fb9f: e8 cc 2c ff ff callq 12870 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt> 1fba4: c9 leaveq 1fba5: c3 retq 000000000001fba6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 1fba6: 55 push %rbp 1fba7: 48 89 e5 mov %rsp,%rbp 1fbaa: 48 83 ec 10 sub $0x10,%rsp 1fbae: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fbb2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fbb6: 48 89 c7 mov %rax,%rdi 1fbb9: e8 02 37 ff ff callq 132c0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 1fbbe: c9 leaveq 1fbbf: c3 retq 000000000001fbc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 1fbc0: 55 push %rbp 1fbc1: 48 89 e5 mov %rsp,%rbp 1fbc4: 53 push %rbx 1fbc5: 48 83 ec 18 sub $0x18,%rsp 1fbc9: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 1fbcd: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fbd1: 48 89 c7 mov %rax,%rdi 1fbd4: e8 e7 2f ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 1fbd9: 48 89 c2 mov %rax,%rdx 1fbdc: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fbe0: 48 89 d6 mov %rdx,%rsi 1fbe3: 48 89 c7 mov %rax,%rdi 1fbe6: e8 a5 42 ff ff callq 13e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt> 1fbeb: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fbef: 48 89 c7 mov %rax,%rdi 1fbf2: e8 79 3f ff ff callq 13b70 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt> 1fbf7: 48 83 c4 18 add $0x18,%rsp 1fbfb: 5b pop %rbx 1fbfc: 5d pop %rbp 1fbfd: c3 retq 1fbfe: 48 89 c3 mov %rax,%rbx 1fc01: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fc05: 48 89 c7 mov %rax,%rdi 1fc08: e8 63 3f ff ff callq 13b70 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt> 1fc0d: 48 89 d8 mov %rbx,%rax 1fc10: 48 89 c7 mov %rax,%rdi 1fc13: e8 68 49 ff ff callq 14580 <_Unwind_Resume@plt> 000000000001fc18 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE5beginEv>: * Returns a read/write iterator that points to the first pair in the * %map. * Iteration is done in ascending order according to the keys. */ iterator begin() 1fc18: 55 push %rbp 1fc19: 48 89 e5 mov %rsp,%rbp 1fc1c: 48 83 ec 10 sub $0x10,%rsp 1fc20: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.begin(); } 1fc24: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fc28: 48 89 c7 mov %rax,%rdi 1fc2b: e8 80 35 ff ff callq 131b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt> 1fc30: c9 leaveq 1fc31: c3 retq 000000000001fc32 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E>: explicit _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { } _Rb_tree_const_iterator(const iterator& __it) 1fc32: 55 push %rbp 1fc33: 48 89 e5 mov %rsp,%rbp 1fc36: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fc3a: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 1fc3e: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fc42: 48 8b 10 mov (%rax),%rdx 1fc45: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fc49: 48 89 10 mov %rdx,(%rax) 1fc4c: 5d pop %rbp 1fc4d: c3 retq 000000000001fc4e <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv>: * Returns a read/write iterator that points one past the last * pair in the %map. Iteration is done in ascending order * according to the keys. */ iterator end() 1fc4e: 55 push %rbp 1fc4f: 48 89 e5 mov %rsp,%rbp 1fc52: 48 83 ec 10 sub $0x10,%rsp 1fc56: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 1fc5a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fc5e: 48 89 c7 mov %rax,%rdi 1fc61: e8 2a 41 ff ff callq 13d90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 1fc66: c9 leaveq 1fc67: c3 retq 000000000001fc68 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 1fc68: 55 push %rbp 1fc69: 48 89 e5 mov %rsp,%rbp 1fc6c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fc70: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 1fc74: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fc78: 48 8b 10 mov (%rax),%rdx 1fc7b: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fc7f: 48 8b 00 mov (%rax),%rax 1fc82: 48 39 c2 cmp %rax,%rdx 1fc85: 0f 95 c0 setne %al 1fc88: 5d pop %rbp 1fc89: c3 retq 000000000001fc8a <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv>: reference operator*() const { return static_cast<_Link_type>(_M_node)->_M_value_field; } pointer operator->() const 1fc8a: 55 push %rbp 1fc8b: 48 89 e5 mov %rsp,%rbp 1fc8e: 48 83 ec 10 sub $0x10,%rsp 1fc92: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } 1fc96: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fc9a: 48 8b 00 mov (%rax),%rax 1fc9d: 48 83 c0 20 add $0x20,%rax 1fca1: 48 89 c7 mov %rax,%rdi 1fca4: e8 07 31 ff ff callq 12db0 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_@plt> 1fca9: c9 leaveq 1fcaa: c3 retq 1fcab: 90 nop 000000000001fcac <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 1fcac: 55 push %rbp 1fcad: 48 89 e5 mov %rsp,%rbp 1fcb0: 48 83 ec 20 sub $0x20,%rsp 1fcb4: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1fcb8: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 1fcbb: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fcbf: 48 8b 00 mov (%rax),%rax 1fcc2: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 1fcc6: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fcca: 48 8b 00 mov (%rax),%rax 1fccd: 48 89 c7 mov %rax,%rdi 1fcd0: e8 8b 3b ff ff callq 13860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 1fcd5: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1fcd9: 48 89 02 mov %rax,(%rdx) return __tmp; 1fcdc: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1fce0: c9 leaveq 1fce1: c3 retq 000000000001fce2 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE4findERS5_>: * the key matches. If successful the function returns an iterator * pointing to the sought after %pair. If unsuccessful it returns the * past-the-end ( @c end() ) iterator. */ iterator find(const key_type& __x) 1fce2: 55 push %rbp 1fce3: 48 89 e5 mov %rsp,%rbp 1fce6: 48 83 ec 10 sub $0x10,%rsp 1fcea: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fcee: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.find(__x); } 1fcf2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fcf6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fcfa: 48 89 d6 mov %rdx,%rsi 1fcfd: 48 89 c7 mov %rax,%rdi 1fd00: e8 bb 2b ff ff callq 128c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_@plt> 1fd05: c9 leaveq 1fd06: c3 retq 1fd07: 90 nop 000000000001fd08 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 1fd08: 55 push %rbp 1fd09: 48 89 e5 mov %rsp,%rbp 1fd0c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fd10: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 1fd14: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fd18: 48 8b 10 mov (%rax),%rdx 1fd1b: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fd1f: 48 8b 00 mov (%rax),%rax 1fd22: 48 39 c2 cmp %rax,%rdx 1fd25: 0f 94 c0 sete %al 1fd28: 5d pop %rbp 1fd29: c3 retq 000000000001fd2a <_ZNSt4pairIKSsP4XLogED1Ev>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 1fd2a: 55 push %rbp 1fd2b: 48 89 e5 mov %rsp,%rbp 1fd2e: 48 83 ec 10 sub $0x10,%rsp 1fd32: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fd36: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fd3a: 48 89 c7 mov %rax,%rdi 1fd3d: e8 ee 36 ff ff callq 13430 <_ZNSsD1Ev@plt> 1fd42: c9 leaveq 1fd43: c3 retq 000000000001fd44 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_>: * is created using default values, which is then returned. * * Lookup requires logarithmic time. */ mapped_type& operator[](const key_type& __k) 1fd44: 55 push %rbp 1fd45: 48 89 e5 mov %rsp,%rbp 1fd48: 53 push %rbx 1fd49: 48 83 ec 58 sub $0x58,%rsp 1fd4d: 48 89 7d a8 mov %rdi,-0x58(%rbp) 1fd51: 48 89 75 a0 mov %rsi,-0x60(%rbp) { // concept requirements __glibcxx_function_requires(_DefaultConstructibleConcept) iterator __i = lower_bound(__k); 1fd55: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1fd59: 48 8b 45 a8 mov -0x58(%rbp),%rax 1fd5d: 48 89 d6 mov %rdx,%rsi 1fd60: 48 89 c7 mov %rax,%rdi 1fd63: e8 f8 44 ff ff callq 14260 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE11lower_boundERS5_@plt> 1fd68: 48 89 45 c0 mov %rax,-0x40(%rbp) // __i->first is greater than or equivalent to __k. if (__i == end() || key_comp()(__k, (*__i).first)) 1fd6c: 48 8b 45 a8 mov -0x58(%rbp),%rax 1fd70: 48 89 c7 mov %rax,%rdi 1fd73: e8 68 35 ff ff callq 132e0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1fd78: 48 89 45 d0 mov %rax,-0x30(%rbp) 1fd7c: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1fd80: 48 8d 45 c0 lea -0x40(%rbp),%rax 1fd84: 48 89 d6 mov %rdx,%rsi 1fd87: 48 89 c7 mov %rax,%rdi 1fd8a: e8 d1 2b ff ff callq 12960 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 1fd8f: 84 c0 test %al,%al 1fd91: 75 35 jne 1fdc8 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x84> 1fd93: 48 8d 45 c0 lea -0x40(%rbp),%rax 1fd97: 48 89 c7 mov %rax,%rdi 1fd9a: e8 c1 2e ff ff callq 12c60 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt> 1fd9f: 48 89 c3 mov %rax,%rbx 1fda2: 48 8b 45 a8 mov -0x58(%rbp),%rax 1fda6: 48 89 c7 mov %rax,%rdi 1fda9: e8 12 39 ff ff callq 136c0 <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv@plt> 1fdae: 48 8b 4d a0 mov -0x60(%rbp),%rcx 1fdb2: 48 8d 45 ef lea -0x11(%rbp),%rax 1fdb6: 48 89 da mov %rbx,%rdx 1fdb9: 48 89 ce mov %rcx,%rsi 1fdbc: 48 89 c7 mov %rax,%rdi 1fdbf: e8 6c 2c ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 1fdc4: 84 c0 test %al,%al 1fdc6: 74 07 je 1fdcf <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x8b> 1fdc8: b8 01 00 00 00 mov $0x1,%eax 1fdcd: eb 05 jmp 1fdd4 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x90> 1fdcf: b8 00 00 00 00 mov $0x0,%eax 1fdd4: 84 c0 test %al,%al 1fdd6: 74 46 je 1fe1e <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0xda> __i = insert(__i, value_type(__k, mapped_type())); 1fdd8: 48 c7 45 e0 00 00 00 movq $0x0,-0x20(%rbp) 1fddf: 00 1fde0: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1fde4: 48 8b 4d a0 mov -0x60(%rbp),%rcx 1fde8: 48 8d 45 b0 lea -0x50(%rbp),%rax 1fdec: 48 89 ce mov %rcx,%rsi 1fdef: 48 89 c7 mov %rax,%rdi 1fdf2: e8 39 42 ff ff callq 14030 <_ZNSt4pairIKSsP4XLogEC1ERS0_RKS2_@plt> 1fdf7: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1fdfb: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1fdff: 48 8b 45 a8 mov -0x58(%rbp),%rax 1fe03: 48 89 ce mov %rcx,%rsi 1fe06: 48 89 c7 mov %rax,%rdi 1fe09: e8 b2 3e ff ff callq 13cc0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE6insertESt17_Rb_tree_iteratorIS6_ERKS6_@plt> 1fe0e: 48 89 45 c0 mov %rax,-0x40(%rbp) 1fe12: 48 8d 45 b0 lea -0x50(%rbp),%rax 1fe16: 48 89 c7 mov %rax,%rdi 1fe19: e8 02 30 ff ff callq 12e20 <_ZNSt4pairIKSsP4XLogED1Ev@plt> return (*__i).second; 1fe1e: 48 8d 45 c0 lea -0x40(%rbp),%rax 1fe22: 48 89 c7 mov %rax,%rdi 1fe25: e8 36 2e ff ff callq 12c60 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt> 1fe2a: 48 83 c0 08 add $0x8,%rax } 1fe2e: 48 83 c4 58 add $0x58,%rsp 1fe32: 5b pop %rbx 1fe33: 5d pop %rbp 1fe34: c3 retq 1fe35: 48 89 c3 mov %rax,%rbx __glibcxx_function_requires(_DefaultConstructibleConcept) iterator __i = lower_bound(__k); // __i->first is greater than or equivalent to __k. if (__i == end() || key_comp()(__k, (*__i).first)) __i = insert(__i, value_type(__k, mapped_type())); 1fe38: 48 8d 45 b0 lea -0x50(%rbp),%rax 1fe3c: 48 89 c7 mov %rax,%rdi 1fe3f: e8 dc 2f ff ff callq 12e20 <_ZNSt4pairIKSsP4XLogED1Ev@plt> 1fe44: 48 89 d8 mov %rbx,%rax 1fe47: 48 89 c7 mov %rax,%rdi 1fe4a: e8 31 47 ff ff callq 14580 <_Unwind_Resume@plt> 1fe4f: 90 nop 000000000001fe50 <_ZNSt6vectorISsSaISsEEC1Ev>: // [23.2.4.1] construct/copy/destroy // (assign() and get_allocator() are also listed in this section) /** * @brief Default constructor creates no elements. */ vector() 1fe50: 55 push %rbp 1fe51: 48 89 e5 mov %rsp,%rbp 1fe54: 48 83 ec 10 sub $0x10,%rsp 1fe58: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Base() { } 1fe5c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fe60: 48 89 c7 mov %rax,%rdi 1fe63: e8 e8 47 ff ff callq 14650 <_ZNSt12_Vector_baseISsSaISsEEC2Ev@plt> 1fe68: c9 leaveq 1fe69: c3 retq 000000000001fe6a <_ZNSt6vectorISsSaISsEE5beginEv>: * Returns a read/write iterator that points to the first * element in the %vector. Iteration is done in ordinary * element order. */ iterator begin() 1fe6a: 55 push %rbp 1fe6b: 48 89 e5 mov %rsp,%rbp 1fe6e: 48 83 ec 20 sub $0x20,%rsp 1fe72: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_start); } 1fe76: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1fe7a: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fe7e: 48 89 d6 mov %rdx,%rsi 1fe81: 48 89 c7 mov %rax,%rdi 1fe84: e8 a7 3f ff ff callq 13e30 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt> 1fe89: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fe8d: c9 leaveq 1fe8e: c3 retq 1fe8f: 90 nop 000000000001fe90 <_ZNSt6vectorISsSaISsEE3endEv>: * Returns a read/write iterator that points one past the last * element in the %vector. Iteration is done in ordinary * element order. */ iterator end() 1fe90: 55 push %rbp 1fe91: 48 89 e5 mov %rsp,%rbp 1fe94: 48 83 ec 20 sub $0x20,%rsp 1fe98: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_finish); } 1fe9c: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fea0: 48 8d 50 08 lea 0x8(%rax),%rdx 1fea4: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fea8: 48 89 d6 mov %rdx,%rsi 1feab: 48 89 c7 mov %rax,%rdi 1feae: e8 7d 3f ff ff callq 13e30 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt> 1feb3: 48 8b 45 f0 mov -0x10(%rbp),%rax 1feb7: c9 leaveq 1feb8: c3 retq 000000000001feb9 <_ZSt4findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_>: * @return The first iterator @c i in the range @p [first,last) * such that @c *i == @p val, or @p last if no such iterator exists. */ template inline _InputIterator find(_InputIterator __first, _InputIterator __last, 1feb9: 55 push %rbp 1feba: 48 89 e5 mov %rsp,%rbp 1febd: 53 push %rbx 1febe: 48 83 ec 38 sub $0x38,%rsp 1fec2: 48 89 7d e0 mov %rdi,-0x20(%rbp) 1fec6: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1feca: 48 89 55 d8 mov %rdx,-0x28(%rbp) __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) __glibcxx_function_requires(_EqualOpConcept< typename iterator_traits<_InputIterator>::value_type, _Tp>) __glibcxx_requires_valid_range(__first, __last); return std::__find(__first, __last, __val, std::__iterator_category(__first)); 1fece: 48 8d 45 e0 lea -0x20(%rbp),%rax 1fed2: 48 89 c7 mov %rax,%rdi 1fed5: e8 c6 32 ff ff callq 131a0 <_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_@plt> 1feda: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1fede: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1fee2: 48 8b 45 e0 mov -0x20(%rbp),%rax 1fee6: 88 1c 24 mov %bl,(%rsp) 1fee9: 48 89 ce mov %rcx,%rsi 1feec: 48 89 c7 mov %rax,%rdi 1feef: e8 dc 32 ff ff callq 131d0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag@plt> } 1fef4: 48 83 c4 38 add $0x38,%rsp 1fef8: 5b pop %rbx 1fef9: 5d pop %rbp 1fefa: c3 retq 000000000001fefb <_ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_>: const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 1fefb: 55 push %rbp 1fefc: 48 89 e5 mov %rsp,%rbp 1feff: 53 push %rbx 1ff00: 48 83 ec 18 sub $0x18,%rsp 1ff04: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1ff08: 48 89 75 e0 mov %rsi,-0x20(%rbp) const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } 1ff0c: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ff10: 48 89 c7 mov %rax,%rdi 1ff13: e8 c8 31 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 1ff18: 48 8b 18 mov (%rax),%rbx 1ff1b: 48 8b 45 e0 mov -0x20(%rbp),%rax 1ff1f: 48 89 c7 mov %rax,%rdi 1ff22: e8 b9 31 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 1ff27: 48 8b 00 mov (%rax),%rax 1ff2a: 48 39 c3 cmp %rax,%rbx 1ff2d: 0f 95 c0 setne %al 1ff30: 48 83 c4 18 add $0x18,%rsp 1ff34: 5b pop %rbx 1ff35: 5d pop %rbp 1ff36: c3 retq 1ff37: 90 nop 000000000001ff38 <_ZNSt6vectorISsSaISsEE9push_backERKSs>: * to it. Due to the nature of a %vector this operation can be * done in constant time if the %vector has preallocated space * available. */ void push_back(const value_type& __x) 1ff38: 55 push %rbp 1ff39: 48 89 e5 mov %rsp,%rbp 1ff3c: 48 83 ec 10 sub $0x10,%rsp 1ff40: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ff44: 48 89 75 f0 mov %rsi,-0x10(%rbp) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1ff48: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff4c: 48 8b 50 08 mov 0x8(%rax),%rdx 1ff50: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff54: 48 8b 40 10 mov 0x10(%rax),%rax 1ff58: 48 39 c2 cmp %rax,%rdx 1ff5b: 74 31 je 1ff8e <_ZNSt6vectorISsSaISsEE9push_backERKSs+0x56> { this->_M_impl.construct(this->_M_impl._M_finish, __x); 1ff5d: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff61: 48 8b 48 08 mov 0x8(%rax),%rcx 1ff65: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff69: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1ff6d: 48 89 ce mov %rcx,%rsi 1ff70: 48 89 c7 mov %rax,%rdi 1ff73: e8 f8 34 ff ff callq 13470 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> ++this->_M_impl._M_finish; 1ff78: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff7c: 48 8b 40 08 mov 0x8(%rax),%rax 1ff80: 48 8d 50 08 lea 0x8(%rax),%rdx 1ff84: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff88: 48 89 50 08 mov %rdx,0x8(%rax) 1ff8c: eb 22 jmp 1ffb0 <_ZNSt6vectorISsSaISsEE9push_backERKSs+0x78> } else _M_insert_aux(end(), __x); 1ff8e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ff92: 48 89 c7 mov %rax,%rdi 1ff95: e8 66 3a ff ff callq 13a00 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1ff9a: 48 89 c1 mov %rax,%rcx 1ff9d: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1ffa1: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ffa5: 48 89 ce mov %rcx,%rsi 1ffa8: 48 89 c7 mov %rax,%rdi 1ffab: e8 40 33 ff ff callq 132f0 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs@plt> } 1ffb0: c9 leaveq 1ffb1: c3 retq 000000000001ffb2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1Ev>: _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const; public: // allocation/deallocation _Rb_tree() { } 1ffb2: 55 push %rbp 1ffb3: 48 89 e5 mov %rsp,%rbp 1ffb6: 48 83 ec 10 sub $0x10,%rsp 1ffba: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ffbe: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ffc2: 48 89 c7 mov %rax,%rdi 1ffc5: e8 06 43 ff ff callq 142d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev@plt> 1ffca: c9 leaveq 1ffcb: c3 retq 000000000001ffcc <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv>: return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); } const_iterator begin() const 1ffcc: 55 push %rbp 1ffcd: 48 89 e5 mov %rsp,%rbp 1ffd0: 48 83 ec 20 sub $0x20,%rsp 1ffd4: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); 1ffd8: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ffdc: 48 8b 50 18 mov 0x18(%rax),%rdx 1ffe0: 48 8d 45 f0 lea -0x10(%rbp),%rax 1ffe4: 48 89 d6 mov %rdx,%rsi 1ffe7: 48 89 c7 mov %rax,%rdi 1ffea: e8 21 3e ff ff callq 13e10 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt> 1ffef: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1fff3: c9 leaveq 1fff4: c3 retq 1fff5: 90 nop 000000000001fff6 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv>: iterator end() { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } const_iterator end() const 1fff6: 55 push %rbp 1fff7: 48 89 e5 mov %rsp,%rbp 1fffa: 48 83 ec 20 sub $0x20,%rsp 1fffe: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return const_iterator(static_cast<_Const_Link_type> (&this->_M_impl._M_header)); 20002: 48 8b 45 e8 mov -0x18(%rbp),%rax 20006: 48 8d 50 08 lea 0x8(%rax),%rdx 2000a: 48 8d 45 f0 lea -0x10(%rbp),%rax 2000e: 48 89 d6 mov %rdx,%rsi 20011: 48 89 c7 mov %rax,%rdi 20014: e8 f7 3d ff ff callq 13e10 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt> 20019: 48 8b 45 f0 mov -0x10(%rbp),%rax } 2001d: c9 leaveq 2001e: c3 retq 2001f: 90 nop 0000000000020020 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif pair::iterator, bool> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 20020: 55 push %rbp 20021: 48 89 e5 mov %rsp,%rbp 20024: 53 push %rbx 20025: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 2002c: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 20033: 48 89 b5 50 ff ff ff mov %rsi,-0xb0(%rbp) _M_insert_unique(_Arg&& __v) #else _M_insert_unique(const _Val& __v) #endif { _Link_type __x = _M_begin(); 2003a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 20041: 48 89 c7 mov %rax,%rdi 20044: e8 c7 45 ff ff callq 14610 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 20049: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 2004d: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 20054: 48 89 c7 mov %rax,%rdi 20057: e8 c4 36 ff ff callq 13720 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 2005c: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 20060: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 20064: eb 6c jmp 200d2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xb2> { __y = __x; 20066: 48 8b 45 d8 mov -0x28(%rbp),%rax 2006a: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 2006e: 48 8b 45 d8 mov -0x28(%rbp),%rax 20072: 48 89 c7 mov %rax,%rdi 20075: e8 f6 28 ff ff callq 12970 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt> 2007a: 48 89 c3 mov %rax,%rbx 2007d: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 20084: 48 8d 45 ea lea -0x16(%rbp),%rax 20088: 48 89 d6 mov %rdx,%rsi 2008b: 48 89 c7 mov %rax,%rdi 2008e: e8 1d 2c ff ff callq 12cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20093: 48 89 c1 mov %rax,%rcx 20096: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 2009d: 48 89 da mov %rbx,%rdx 200a0: 48 89 ce mov %rcx,%rsi 200a3: 48 89 c7 mov %rax,%rdi 200a6: e8 f5 3d ff ff callq 13ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 200ab: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 200ae: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 200b2: 74 0e je 200c2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xa2> 200b4: 48 8b 45 d8 mov -0x28(%rbp),%rax 200b8: 48 89 c7 mov %rax,%rdi 200bb: e8 70 30 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 200c0: eb 0c jmp 200ce <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xae> 200c2: 48 8b 45 d8 mov -0x28(%rbp),%rax 200c6: 48 89 c7 mov %rax,%rdi 200c9: e8 d2 31 ff ff callq 132a0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 200ce: 48 89 45 d8 mov %rax,-0x28(%rbp) #endif { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); bool __comp = true; while (__x != 0) 200d2: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 200d7: 0f 95 c0 setne %al 200da: 84 c0 test %al,%al 200dc: 75 88 jne 20066 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x46> { __y = __x; __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); __x = __comp ? _S_left(__x) : _S_right(__x); } iterator __j = iterator(__y); 200de: 48 8b 55 e0 mov -0x20(%rbp),%rdx 200e2: 48 8d 45 a0 lea -0x60(%rbp),%rax 200e6: 48 89 d6 mov %rdx,%rsi 200e9: 48 89 c7 mov %rax,%rdi 200ec: e8 5f 40 ff ff callq 14150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> if (__comp) 200f1: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 200f5: 0f 84 91 00 00 00 je 2018c <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x16c> { if (__j == begin()) 200fb: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 20102: 48 89 c7 mov %rax,%rdi 20105: e8 26 3b ff ff callq 13c30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt> 2010a: 48 89 45 b0 mov %rax,-0x50(%rbp) 2010e: 48 8d 55 b0 lea -0x50(%rbp),%rdx 20112: 48 8d 45 a0 lea -0x60(%rbp),%rax 20116: 48 89 d6 mov %rdx,%rsi 20119: 48 89 c7 mov %rax,%rdi 2011c: e8 1f 36 ff ff callq 13740 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt> 20121: 84 c0 test %al,%al 20123: 74 5b je 20180 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 20125: c6 45 eb 01 movb $0x1,-0x15(%rbp) 20129: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 20130: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20134: 48 8b 75 d8 mov -0x28(%rbp),%rsi 20138: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 2013f: 48 89 c7 mov %rax,%rdi 20142: e8 b9 45 ff ff callq 14700 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt> 20147: 48 89 45 c0 mov %rax,-0x40(%rbp) 2014b: 48 8d 55 eb lea -0x15(%rbp),%rdx 2014f: 48 8d 4d c0 lea -0x40(%rbp),%rcx 20153: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 2015a: 48 89 ce mov %rcx,%rsi 2015d: 48 89 c7 mov %rax,%rdi 20160: e8 6b 2a ff ff callq 12bd0 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 20165: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 2016c: 48 89 45 90 mov %rax,-0x70(%rbp) 20170: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 20177: 48 89 45 98 mov %rax,-0x68(%rbp) 2017b: e9 d0 00 00 00 jmpq 20250 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x230> else --__j; 20180: 48 8d 45 a0 lea -0x60(%rbp),%rax 20184: 48 89 c7 mov %rax,%rdi 20187: e8 54 3e ff ff callq 13fe0 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 2018c: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 20193: 48 8d 45 ec lea -0x14(%rbp),%rax 20197: 48 89 d6 mov %rdx,%rsi 2019a: 48 89 c7 mov %rax,%rdi 2019d: e8 0e 2b ff ff callq 12cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 201a2: 48 89 c3 mov %rax,%rbx 201a5: 48 8b 45 a0 mov -0x60(%rbp),%rax 201a9: 48 89 c7 mov %rax,%rdi 201ac: e8 6f 44 ff ff callq 14620 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 201b1: 48 89 c1 mov %rax,%rcx 201b4: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 201bb: 48 89 da mov %rbx,%rdx 201be: 48 89 ce mov %rcx,%rsi 201c1: 48 89 c7 mov %rax,%rdi 201c4: e8 d7 3c ff ff callq 13ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 201c9: 84 c0 test %al,%al 201cb: 74 58 je 20225 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 201cd: c6 45 ed 01 movb $0x1,-0x13(%rbp) 201d1: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 201d8: 48 8b 55 e0 mov -0x20(%rbp),%rdx 201dc: 48 8b 75 d8 mov -0x28(%rbp),%rsi 201e0: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 201e7: 48 89 c7 mov %rax,%rdi 201ea: e8 11 45 ff ff callq 14700 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt> 201ef: 48 89 45 d0 mov %rax,-0x30(%rbp) 201f3: 48 8d 55 ed lea -0x13(%rbp),%rdx 201f7: 48 8d 4d d0 lea -0x30(%rbp),%rcx 201fb: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 20202: 48 89 ce mov %rcx,%rsi 20205: 48 89 c7 mov %rax,%rdi 20208: e8 c3 29 ff ff callq 12bd0 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 2020d: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 20214: 48 89 45 90 mov %rax,-0x70(%rbp) 20218: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 2021f: 48 89 45 98 mov %rax,-0x68(%rbp) 20223: eb 2b jmp 20250 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x230> return pair(__j, false); 20225: c6 45 ee 00 movb $0x0,-0x12(%rbp) 20229: 48 8d 55 ee lea -0x12(%rbp),%rdx 2022d: 48 8d 4d a0 lea -0x60(%rbp),%rcx 20231: 48 8d 45 80 lea -0x80(%rbp),%rax 20235: 48 89 ce mov %rcx,%rsi 20238: 48 89 c7 mov %rax,%rdi 2023b: e8 90 29 ff ff callq 12bd0 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 20240: 48 8b 45 80 mov -0x80(%rbp),%rax 20244: 48 89 45 90 mov %rax,-0x70(%rbp) 20248: 48 8b 45 88 mov -0x78(%rbp),%rax 2024c: 48 89 45 98 mov %rax,-0x68(%rbp) 20250: 48 8b 45 90 mov -0x70(%rbp),%rax 20254: 8b 55 98 mov -0x68(%rbp),%edx } 20257: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 2025e: 5b pop %rbx 2025f: 5d pop %rbp 20260: c3 retq 20261: 90 nop 0000000000020262 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E>: explicit _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { } _Rb_tree_const_iterator(const iterator& __it) 20262: 55 push %rbp 20263: 48 89 e5 mov %rsp,%rbp 20266: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2026a: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 2026e: 48 8b 45 f0 mov -0x10(%rbp),%rax 20272: 48 8b 10 mov (%rax),%rdx 20275: 48 8b 45 f8 mov -0x8(%rbp),%rax 20279: 48 89 10 mov %rdx,(%rax) 2027c: 5d pop %rbp 2027d: c3 retq 000000000002027e <_ZNSt4pairISt23_Rb_tree_const_iteratorIP11XLogHandlerEbEC1ERKS3_RKb>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 2027e: 55 push %rbp 2027f: 48 89 e5 mov %rsp,%rbp 20282: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20286: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2028a: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 2028e: 48 8b 45 f8 mov -0x8(%rbp),%rax 20292: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20296: 48 8b 12 mov (%rdx),%rdx 20299: 48 89 10 mov %rdx,(%rax) 2029c: 48 8b 45 e8 mov -0x18(%rbp),%rax 202a0: 0f b6 10 movzbl (%rax),%edx 202a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 202a7: 88 50 08 mov %dl,0x8(%rax) 202aa: 5d pop %rbp 202ab: c3 retq 00000000000202ac <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 202ac: 55 push %rbp 202ad: 48 89 e5 mov %rsp,%rbp 202b0: 53 push %rbx 202b1: 48 83 ec 38 sub $0x38,%rsp 202b5: 48 89 7d c8 mov %rdi,-0x38(%rbp) 202b9: 48 89 75 c0 mov %rsi,-0x40(%rbp) find(const _Key& __k) { iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 202bd: 48 8b 45 c8 mov -0x38(%rbp),%rax 202c1: 48 89 c7 mov %rax,%rdi 202c4: e8 57 34 ff ff callq 13720 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 202c9: 48 89 c3 mov %rax,%rbx 202cc: 48 8b 45 c8 mov -0x38(%rbp),%rax 202d0: 48 89 c7 mov %rax,%rdi 202d3: e8 38 43 ff ff callq 14610 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 202d8: 48 89 c6 mov %rax,%rsi 202db: 48 8b 55 c0 mov -0x40(%rbp),%rdx 202df: 48 8b 45 c8 mov -0x38(%rbp),%rax 202e3: 48 89 d1 mov %rdx,%rcx 202e6: 48 89 da mov %rbx,%rdx 202e9: 48 89 c7 mov %rax,%rdi 202ec: e8 0f 38 ff ff callq 13b00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_@plt> 202f1: 48 89 45 d0 mov %rax,-0x30(%rbp) return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 202f5: 48 8b 45 c8 mov -0x38(%rbp),%rax 202f9: 48 89 c7 mov %rax,%rdi 202fc: e8 af 25 ff ff callq 128b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 20301: 48 89 45 e0 mov %rax,-0x20(%rbp) 20305: 48 8d 55 e0 lea -0x20(%rbp),%rdx 20309: 48 8d 45 d0 lea -0x30(%rbp),%rax 2030d: 48 89 d6 mov %rdx,%rsi 20310: 48 89 c7 mov %rax,%rdi 20313: e8 28 34 ff ff callq 13740 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt> 20318: 84 c0 test %al,%al 2031a: 75 26 jne 20342 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0x96> 2031c: 48 8b 45 d0 mov -0x30(%rbp),%rax 20320: 48 89 c7 mov %rax,%rdi 20323: e8 f8 42 ff ff callq 14620 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20328: 48 89 c2 mov %rax,%rdx 2032b: 48 8b 45 c8 mov -0x38(%rbp),%rax 2032f: 48 8b 4d c0 mov -0x40(%rbp),%rcx 20333: 48 89 ce mov %rcx,%rsi 20336: 48 89 c7 mov %rax,%rdi 20339: e8 62 3b ff ff callq 13ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 2033e: 84 c0 test %al,%al 20340: 74 0e je 20350 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0xa4> 20342: 48 8b 45 c8 mov -0x38(%rbp),%rax 20346: 48 89 c7 mov %rax,%rdi 20349: e8 62 25 ff ff callq 128b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 2034e: eb 04 jmp 20354 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0xa8> 20350: 48 8b 45 d0 mov -0x30(%rbp),%rax } 20354: 48 83 c4 38 add $0x38,%rsp 20358: 5b pop %rbx 20359: 5d pop %rbp 2035a: c3 retq 2035b: 90 nop 000000000002035c <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E>: void erase(iterator __position) { _M_erase_aux(__position); } void erase(const_iterator __position) 2035c: 55 push %rbp 2035d: 48 89 e5 mov %rsp,%rbp 20360: 48 83 ec 10 sub $0x10,%rsp 20364: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20368: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_erase_aux(__position); } 2036c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20370: 48 8b 45 f8 mov -0x8(%rbp),%rax 20374: 48 89 d6 mov %rdx,%rsi 20377: 48 89 c7 mov %rax,%rdi 2037a: e8 c1 2b ff ff callq 12f40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS1_E@plt> 2037f: c9 leaveq 20380: c3 retq 20381: 90 nop 0000000000020382 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev>: _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const; public: // allocation/deallocation _Rb_tree() { } 20382: 55 push %rbp 20383: 48 89 e5 mov %rsp,%rbp 20386: 48 83 ec 10 sub $0x10,%rsp 2038a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2038e: 48 8b 45 f8 mov -0x8(%rbp),%rax 20392: 48 89 c7 mov %rax,%rdi 20395: e8 86 2c ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev@plt> 2039a: c9 leaveq 2039b: c3 retq 000000000002039c <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED1Ev>: ~allocator() throw() { } 2039c: 55 push %rbp 2039d: 48 89 e5 mov %rsp,%rbp 203a0: 48 83 ec 10 sub $0x10,%rsp 203a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 203a8: 48 8b 45 f8 mov -0x8(%rbp),%rax 203ac: 48 89 c7 mov %rax,%rdi 203af: e8 cc 42 ff ff callq 14680 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 203b4: c9 leaveq 203b5: c3 retq 00000000000203b6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 203b6: 55 push %rbp 203b7: 48 89 e5 mov %rsp,%rbp 203ba: 48 83 ec 20 sub $0x20,%rsp 203be: 48 89 7d e8 mov %rdi,-0x18(%rbp) 203c2: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 203c6: eb 49 jmp 20411 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E+0x5b> { _M_erase(_S_right(__x)); 203c8: 48 8b 45 e0 mov -0x20(%rbp),%rax 203cc: 48 89 c7 mov %rax,%rdi 203cf: e8 bc 27 ff ff callq 12b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 203d4: 48 89 c2 mov %rax,%rdx 203d7: 48 8b 45 e8 mov -0x18(%rbp),%rax 203db: 48 89 d6 mov %rdx,%rsi 203de: 48 89 c7 mov %rax,%rdi 203e1: e8 aa 3a ff ff callq 13e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt> _Link_type __y = _S_left(__x); 203e6: 48 8b 45 e0 mov -0x20(%rbp),%rax 203ea: 48 89 c7 mov %rax,%rdi 203ed: e8 be 3a ff ff callq 13eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 203f2: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 203f6: 48 8b 55 e0 mov -0x20(%rbp),%rdx 203fa: 48 8b 45 e8 mov -0x18(%rbp),%rax 203fe: 48 89 d6 mov %rdx,%rsi 20401: 48 89 c7 mov %rax,%rdi 20404: e8 97 34 ff ff callq 138a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E@plt> __x = __y; 20409: 48 8b 45 f8 mov -0x8(%rbp),%rax 2040d: 48 89 45 e0 mov %rax,-0x20(%rbp) void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 20411: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 20416: 0f 95 c0 setne %al 20419: 84 c0 test %al,%al 2041b: 75 ab jne 203c8 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E+0x12> _M_erase(_S_right(__x)); _Link_type __y = _S_left(__x); _M_destroy_node(__x); __x = __y; } } 2041d: c9 leaveq 2041e: c3 retq 2041f: 90 nop 0000000000020420 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv>: _Const_Base_ptr _M_rightmost() const { return this->_M_impl._M_header._M_right; } _Link_type _M_begin() 20420: 55 push %rbp 20421: 48 89 e5 mov %rsp,%rbp 20424: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 20428: 48 8b 45 f8 mov -0x8(%rbp),%rax 2042c: 48 8b 40 10 mov 0x10(%rax),%rax 20430: 5d pop %rbp 20431: c3 retq 0000000000020432 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 20432: 55 push %rbp 20433: 48 89 e5 mov %rsp,%rbp 20436: 48 83 ec 20 sub $0x20,%rsp 2043a: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 2043e: 48 8b 45 e8 mov -0x18(%rbp),%rax 20442: 48 8b 50 18 mov 0x18(%rax),%rdx 20446: 48 8d 45 f0 lea -0x10(%rbp),%rax 2044a: 48 89 d6 mov %rdx,%rsi 2044d: 48 89 c7 mov %rax,%rdi 20450: e8 0b 26 ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 20455: 48 8b 45 f0 mov -0x10(%rbp),%rax } 20459: c9 leaveq 2045a: c3 retq 2045b: 90 nop 000000000002045c <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv>: return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() 2045c: 55 push %rbp 2045d: 48 89 e5 mov %rsp,%rbp 20460: 48 83 ec 20 sub $0x20,%rsp 20464: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 20468: 48 8b 45 e8 mov -0x18(%rbp),%rax 2046c: 48 8d 50 08 lea 0x8(%rax),%rdx 20470: 48 8d 45 f0 lea -0x10(%rbp),%rax 20474: 48 89 d6 mov %rdx,%rsi 20477: 48 89 c7 mov %rax,%rdi 2047a: e8 e1 25 ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 2047f: 48 8b 45 f0 mov -0x10(%rbp),%rax 20483: c9 leaveq 20484: c3 retq 0000000000020485 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 20485: 55 push %rbp 20486: 48 89 e5 mov %rsp,%rbp 20489: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 2048d: 48 8b 45 f8 mov -0x8(%rbp),%rax } 20491: 5d pop %rbp 20492: c3 retq 20493: 90 nop 0000000000020494 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 20494: 55 push %rbp 20495: 48 89 e5 mov %rsp,%rbp 20498: 53 push %rbx 20499: 48 83 ec 38 sub $0x38,%rsp 2049d: 48 89 7d c8 mov %rdi,-0x38(%rbp) 204a1: 48 89 75 c0 mov %rsi,-0x40(%rbp) find(const _Key& __k) { iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 204a5: 48 8b 45 c8 mov -0x38(%rbp),%rax 204a9: 48 89 c7 mov %rax,%rdi 204ac: e8 8f 24 ff ff callq 12940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 204b1: 48 89 c3 mov %rax,%rbx 204b4: 48 8b 45 c8 mov -0x38(%rbp),%rax 204b8: 48 89 c7 mov %rax,%rdi 204bb: e8 00 27 ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 204c0: 48 89 c6 mov %rax,%rsi 204c3: 48 8b 55 c0 mov -0x40(%rbp),%rdx 204c7: 48 8b 45 c8 mov -0x38(%rbp),%rax 204cb: 48 89 d1 mov %rdx,%rcx 204ce: 48 89 da mov %rbx,%rdx 204d1: 48 89 c7 mov %rax,%rdi 204d4: e8 07 37 ff ff callq 13be0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt> 204d9: 48 89 45 d0 mov %rax,-0x30(%rbp) return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 204dd: 48 8b 45 c8 mov -0x38(%rbp),%rax 204e1: 48 89 c7 mov %rax,%rdi 204e4: e8 a7 38 ff ff callq 13d90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 204e9: 48 89 45 e0 mov %rax,-0x20(%rbp) 204ed: 48 8d 55 e0 lea -0x20(%rbp),%rdx 204f1: 48 8d 45 d0 lea -0x30(%rbp),%rax 204f5: 48 89 d6 mov %rdx,%rsi 204f8: 48 89 c7 mov %rax,%rdi 204fb: e8 60 24 ff ff callq 12960 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 20500: 84 c0 test %al,%al 20502: 75 26 jne 2052a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0x96> 20504: 48 8b 45 d0 mov -0x30(%rbp),%rax 20508: 48 89 c7 mov %rax,%rdi 2050b: e8 00 31 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20510: 48 89 c2 mov %rax,%rdx 20513: 48 8b 45 c8 mov -0x38(%rbp),%rax 20517: 48 8b 4d c0 mov -0x40(%rbp),%rcx 2051b: 48 89 ce mov %rcx,%rsi 2051e: 48 89 c7 mov %rax,%rdi 20521: e8 0a 25 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 20526: 84 c0 test %al,%al 20528: 74 0e je 20538 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0xa4> 2052a: 48 8b 45 c8 mov -0x38(%rbp),%rax 2052e: 48 89 c7 mov %rax,%rdi 20531: e8 5a 38 ff ff callq 13d90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 20536: eb 04 jmp 2053c <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0xa8> 20538: 48 8b 45 d0 mov -0x30(%rbp),%rax } 2053c: 48 83 c4 38 add $0x38,%rsp 20540: 5b pop %rbx 20541: 5d pop %rbp 20542: c3 retq 20543: 90 nop 0000000000020544 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE11lower_boundERS5_>: * that matches the given key. If unsuccessful it returns an iterator * pointing to the first element that has a greater value than given key * or end() if no such element exists. */ iterator lower_bound(const key_type& __x) 20544: 55 push %rbp 20545: 48 89 e5 mov %rsp,%rbp 20548: 48 83 ec 10 sub $0x10,%rsp 2054c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20550: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.lower_bound(__x); } 20554: 48 8b 45 f8 mov -0x8(%rbp),%rax 20558: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2055c: 48 89 d6 mov %rdx,%rsi 2055f: 48 89 c7 mov %rax,%rdi 20562: e8 a9 3f ff ff callq 14510 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_@plt> 20567: c9 leaveq 20568: c3 retq 20569: 90 nop 000000000002056a <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv>: /** * Returns the key comparison object out of which the %map was * constructed. */ key_compare key_comp() const 2056a: 55 push %rbp 2056b: 48 89 e5 mov %rsp,%rbp 2056e: 53 push %rbx 2056f: 48 83 ec 18 sub $0x18,%rsp 20573: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _M_t.key_comp(); } 20577: 48 8b 45 e8 mov -0x18(%rbp),%rax 2057b: 48 89 c7 mov %rax,%rdi 2057e: e8 8d 2d ff ff callq 13310 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv@plt> 20583: 89 d8 mov %ebx,%eax 20585: 48 83 c4 18 add $0x18,%rsp 20589: 5b pop %rbx 2058a: 5d pop %rbp 2058b: c3 retq 000000000002058c <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv>: explicit _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } reference operator*() const 2058c: 55 push %rbp 2058d: 48 89 e5 mov %rsp,%rbp 20590: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 20594: 48 8b 45 f8 mov -0x8(%rbp),%rax 20598: 48 8b 00 mov (%rax),%rax 2059b: 48 83 c0 20 add $0x20,%rax 2059f: 5d pop %rbp 205a0: c3 retq 205a1: 90 nop 00000000000205a2 <_ZNKSt4lessISsEclERKSsS2_>: /// One of the @link comparison_functors comparison functors@endlink. template struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const 205a2: 55 push %rbp 205a3: 48 89 e5 mov %rsp,%rbp 205a6: 48 83 ec 20 sub $0x20,%rsp 205aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 205ae: 48 89 75 f0 mov %rsi,-0x10(%rbp) 205b2: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 205b6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 205ba: 48 8b 45 f0 mov -0x10(%rbp),%rax 205be: 48 89 d6 mov %rdx,%rsi 205c1: 48 89 c7 mov %rax,%rdi 205c4: e8 97 36 ff ff callq 13c60 <_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_@plt> 205c9: c9 leaveq 205ca: c3 retq 205cb: 90 nop 00000000000205cc <_ZNSt4pairIKSsP4XLogEC1ERS0_RKS2_>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 205cc: 55 push %rbp 205cd: 48 89 e5 mov %rsp,%rbp 205d0: 48 83 ec 20 sub $0x20,%rsp 205d4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 205d8: 48 89 75 f0 mov %rsi,-0x10(%rbp) 205dc: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 205e0: 48 8b 45 f8 mov -0x8(%rbp),%rax 205e4: 48 8b 55 f0 mov -0x10(%rbp),%rdx 205e8: 48 89 d6 mov %rdx,%rsi 205eb: 48 89 c7 mov %rax,%rdi 205ee: e8 0d 2b ff ff callq 13100 <_ZNSsC1ERKSs@plt> 205f3: 48 8b 45 e8 mov -0x18(%rbp),%rax 205f7: 48 8b 10 mov (%rax),%rdx 205fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 205fe: 48 89 50 08 mov %rdx,0x8(%rax) 20602: c9 leaveq 20603: c3 retq 0000000000020604 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE6insertESt17_Rb_tree_iteratorIS6_ERKS6_>: */ iterator #ifdef __GXX_EXPERIMENTAL_CXX0X__ insert(const_iterator __position, const value_type& __x) #else insert(iterator __position, const value_type& __x) 20604: 55 push %rbp 20605: 48 89 e5 mov %rsp,%rbp 20608: 48 83 ec 30 sub $0x30,%rsp 2060c: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20610: 48 89 75 e0 mov %rsi,-0x20(%rbp) 20614: 48 89 55 d8 mov %rdx,-0x28(%rbp) #endif { return _M_t._M_insert_unique_(__position, __x); } 20618: 48 8d 55 e0 lea -0x20(%rbp),%rdx 2061c: 48 8d 45 f0 lea -0x10(%rbp),%rax 20620: 48 89 d6 mov %rdx,%rsi 20623: 48 89 c7 mov %rax,%rdi 20626: e8 95 29 ff ff callq 12fc0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> 2062b: 48 8b 45 e8 mov -0x18(%rbp),%rax 2062f: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20633: 48 8b 4d f0 mov -0x10(%rbp),%rcx 20637: 48 89 ce mov %rcx,%rsi 2063a: 48 89 c7 mov %rax,%rdi 2063d: e8 ce 2d ff ff callq 13410 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_@plt> 20642: c9 leaveq 20643: c3 retq 0000000000020644 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev>: template struct _Vector_base { typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; struct _Vector_impl 20644: 55 push %rbp 20645: 48 89 e5 mov %rsp,%rbp 20648: 48 83 ec 10 sub $0x10,%rsp 2064c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20650: 48 8b 45 f8 mov -0x8(%rbp),%rax 20654: 48 89 c7 mov %rax,%rdi 20657: e8 54 32 ff ff callq 138b0 <_ZNSaISsED2Ev@plt> 2065c: c9 leaveq 2065d: c3 retq 000000000002065e <_ZNSt12_Vector_baseISsSaISsEEC1Ev>: allocator_type get_allocator() const { return allocator_type(_M_get_Tp_allocator()); } _Vector_base() 2065e: 55 push %rbp 2065f: 48 89 e5 mov %rsp,%rbp 20662: 48 83 ec 10 sub $0x10,%rsp 20666: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_impl() { } 2066a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2066e: 48 89 c7 mov %rax,%rdi 20671: e8 ea 2d ff ff callq 13460 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1Ev@plt> 20676: c9 leaveq 20677: c3 retq 0000000000020678 <_ZNSt12_Vector_baseISsSaISsEED1Ev>: __x._M_impl._M_finish = 0; __x._M_impl._M_end_of_storage = 0; } #endif ~_Vector_base() 20678: 55 push %rbp 20679: 48 89 e5 mov %rsp,%rbp 2067c: 53 push %rbx 2067d: 48 83 ec 18 sub $0x18,%rsp 20681: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 20685: 48 8b 45 e8 mov -0x18(%rbp),%rax 20689: 48 8b 40 10 mov 0x10(%rax),%rax 2068d: 48 89 c2 mov %rax,%rdx 20690: 48 8b 45 e8 mov -0x18(%rbp),%rax 20694: 48 8b 00 mov (%rax),%rax 20697: 48 89 d1 mov %rdx,%rcx 2069a: 48 29 c1 sub %rax,%rcx 2069d: 48 89 c8 mov %rcx,%rax 206a0: 48 c1 f8 03 sar $0x3,%rax 206a4: 48 89 c2 mov %rax,%rdx 206a7: 48 8b 45 e8 mov -0x18(%rbp),%rax 206ab: 48 8b 08 mov (%rax),%rcx 206ae: 48 8b 45 e8 mov -0x18(%rbp),%rax 206b2: 48 89 ce mov %rcx,%rsi 206b5: 48 89 c7 mov %rax,%rdi 206b8: e8 d3 2a ff ff callq 13190 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt> - this->_M_impl._M_start); } 206bd: 48 8b 45 e8 mov -0x18(%rbp),%rax 206c1: 48 89 c7 mov %rax,%rdi 206c4: e8 07 22 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt> 206c9: 48 83 c4 18 add $0x18,%rsp 206cd: 5b pop %rbx 206ce: 5d pop %rbp 206cf: c3 retq 206d0: 48 89 c3 mov %rax,%rbx 206d3: 48 8b 45 e8 mov -0x18(%rbp),%rax 206d7: 48 89 c7 mov %rax,%rdi 206da: e8 f1 21 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt> 206df: 48 89 d8 mov %rbx,%rax 206e2: 48 89 c7 mov %rax,%rdi 206e5: e8 96 3e ff ff callq 14580 <_Unwind_Resume@plt> 00000000000206ea <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_>: typedef typename __traits_type::pointer pointer; _GLIBCXX_CONSTEXPR __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } 206ea: 55 push %rbp 206eb: 48 89 e5 mov %rsp,%rbp 206ee: 48 89 7d f8 mov %rdi,-0x8(%rbp) 206f2: 48 89 75 f0 mov %rsi,-0x10(%rbp) 206f6: 48 8b 45 f0 mov -0x10(%rbp),%rax 206fa: 48 8b 10 mov (%rax),%rdx 206fd: 48 8b 45 f8 mov -0x8(%rbp),%rax 20701: 48 89 10 mov %rdx,(%rax) 20704: 5d pop %rbp 20705: c3 retq 0000000000020706 <_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_>: * This function is not a part of the C++ standard but is syntactic * sugar for internal library use only. */ template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) 20706: 55 push %rbp 20707: 48 89 e5 mov %rsp,%rbp 2070a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return typename iterator_traits<_Iter>::iterator_category(); } 2070e: 5d pop %rbp 2070f: c3 retq 0000000000020710 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag>: } /// This is an overload used by find() for the RAI case. template _RandomAccessIterator __find(_RandomAccessIterator __first, _RandomAccessIterator __last, 20710: 55 push %rbp 20711: 48 89 e5 mov %rsp,%rbp 20714: 53 push %rbx 20715: 48 83 ec 38 sub $0x38,%rsp 20719: 48 89 7d d0 mov %rdi,-0x30(%rbp) 2071d: 48 89 75 c0 mov %rsi,-0x40(%rbp) 20721: 48 89 55 c8 mov %rdx,-0x38(%rbp) const _Tp& __val, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; 20725: 48 8d 55 d0 lea -0x30(%rbp),%rdx 20729: 48 8d 45 c0 lea -0x40(%rbp),%rax 2072d: 48 89 d6 mov %rdx,%rsi 20730: 48 89 c7 mov %rax,%rdi 20733: e8 b8 2a ff ff callq 131f0 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 20738: 48 c1 f8 02 sar $0x2,%rax 2073c: 48 89 45 e8 mov %rax,-0x18(%rbp) for (; __trip_count > 0; --__trip_count) 20740: e9 e1 00 00 00 jmpq 20826 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x116> { if (*__first == __val) 20745: 48 8b 45 c8 mov -0x38(%rbp),%rax 20749: 48 8b 18 mov (%rax),%rbx 2074c: 48 8d 45 d0 lea -0x30(%rbp),%rax 20750: 48 89 c7 mov %rax,%rdi 20753: e8 38 35 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 20758: 48 89 de mov %rbx,%rsi 2075b: 48 89 c7 mov %rax,%rdi 2075e: e8 0d 28 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 20763: 84 c0 test %al,%al 20765: 74 09 je 20770 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x60> return __first; 20767: 48 8b 45 d0 mov -0x30(%rbp),%rax 2076b: e9 90 01 00 00 jmpq 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 20770: 48 8d 45 d0 lea -0x30(%rbp),%rax 20774: 48 89 c7 mov %rax,%rdi 20777: e8 c4 35 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 2077c: 48 8b 45 c8 mov -0x38(%rbp),%rax 20780: 48 8b 18 mov (%rax),%rbx 20783: 48 8d 45 d0 lea -0x30(%rbp),%rax 20787: 48 89 c7 mov %rax,%rdi 2078a: e8 01 35 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 2078f: 48 89 de mov %rbx,%rsi 20792: 48 89 c7 mov %rax,%rdi 20795: e8 d6 27 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 2079a: 84 c0 test %al,%al 2079c: 74 09 je 207a7 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x97> return __first; 2079e: 48 8b 45 d0 mov -0x30(%rbp),%rax 207a2: e9 59 01 00 00 jmpq 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 207a7: 48 8d 45 d0 lea -0x30(%rbp),%rax 207ab: 48 89 c7 mov %rax,%rdi 207ae: e8 8d 35 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 207b3: 48 8b 45 c8 mov -0x38(%rbp),%rax 207b7: 48 8b 18 mov (%rax),%rbx 207ba: 48 8d 45 d0 lea -0x30(%rbp),%rax 207be: 48 89 c7 mov %rax,%rdi 207c1: e8 ca 34 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 207c6: 48 89 de mov %rbx,%rsi 207c9: 48 89 c7 mov %rax,%rdi 207cc: e8 9f 27 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 207d1: 84 c0 test %al,%al 207d3: 74 09 je 207de <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0xce> return __first; 207d5: 48 8b 45 d0 mov -0x30(%rbp),%rax 207d9: e9 22 01 00 00 jmpq 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 207de: 48 8d 45 d0 lea -0x30(%rbp),%rax 207e2: 48 89 c7 mov %rax,%rdi 207e5: e8 56 35 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 207ea: 48 8b 45 c8 mov -0x38(%rbp),%rax 207ee: 48 8b 18 mov (%rax),%rbx 207f1: 48 8d 45 d0 lea -0x30(%rbp),%rax 207f5: 48 89 c7 mov %rax,%rdi 207f8: e8 93 34 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 207fd: 48 89 de mov %rbx,%rsi 20800: 48 89 c7 mov %rax,%rdi 20803: e8 68 27 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 20808: 84 c0 test %al,%al 2080a: 74 09 je 20815 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x105> return __first; 2080c: 48 8b 45 d0 mov -0x30(%rbp),%rax 20810: e9 eb 00 00 00 jmpq 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 20815: 48 8d 45 d0 lea -0x30(%rbp),%rax 20819: 48 89 c7 mov %rax,%rdi 2081c: e8 1f 35 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> const _Tp& __val, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) 20821: 48 83 6d e8 01 subq $0x1,-0x18(%rbp) 20826: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 2082b: 0f 9f c0 setg %al 2082e: 84 c0 test %al,%al 20830: 0f 85 0f ff ff ff jne 20745 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x35> if (*__first == __val) return __first; ++__first; } switch (__last - __first) 20836: 48 8d 55 d0 lea -0x30(%rbp),%rdx 2083a: 48 8d 45 c0 lea -0x40(%rbp),%rax 2083e: 48 89 d6 mov %rdx,%rsi 20841: 48 89 c7 mov %rax,%rdi 20844: e8 a7 29 ff ff callq 131f0 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 20849: 48 83 f8 02 cmp $0x2,%rax 2084d: 74 45 je 20894 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x184> 2084f: 48 83 f8 03 cmp $0x3,%rax 20853: 74 0b je 20860 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x150> 20855: 48 83 f8 01 cmp $0x1,%rax 20859: 74 6d je 208c8 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1b8> 2085b: e9 9c 00 00 00 jmpq 208fc <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1ec> { case 3: if (*__first == __val) 20860: 48 8b 45 c8 mov -0x38(%rbp),%rax 20864: 48 8b 18 mov (%rax),%rbx 20867: 48 8d 45 d0 lea -0x30(%rbp),%rax 2086b: 48 89 c7 mov %rax,%rdi 2086e: e8 1d 34 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 20873: 48 89 de mov %rbx,%rsi 20876: 48 89 c7 mov %rax,%rdi 20879: e8 f2 26 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 2087e: 84 c0 test %al,%al 20880: 74 06 je 20888 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x178> return __first; 20882: 48 8b 45 d0 mov -0x30(%rbp),%rax 20886: eb 78 jmp 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 20888: 48 8d 45 d0 lea -0x30(%rbp),%rax 2088c: 48 89 c7 mov %rax,%rdi 2088f: e8 ac 34 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 2: if (*__first == __val) 20894: 48 8b 45 c8 mov -0x38(%rbp),%rax 20898: 48 8b 18 mov (%rax),%rbx 2089b: 48 8d 45 d0 lea -0x30(%rbp),%rax 2089f: 48 89 c7 mov %rax,%rdi 208a2: e8 e9 33 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 208a7: 48 89 de mov %rbx,%rsi 208aa: 48 89 c7 mov %rax,%rdi 208ad: e8 be 26 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 208b2: 84 c0 test %al,%al 208b4: 74 06 je 208bc <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1ac> return __first; 208b6: 48 8b 45 d0 mov -0x30(%rbp),%rax 208ba: eb 44 jmp 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 208bc: 48 8d 45 d0 lea -0x30(%rbp),%rax 208c0: 48 89 c7 mov %rax,%rdi 208c3: e8 78 34 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 1: if (*__first == __val) 208c8: 48 8b 45 c8 mov -0x38(%rbp),%rax 208cc: 48 8b 18 mov (%rax),%rbx 208cf: 48 8d 45 d0 lea -0x30(%rbp),%rax 208d3: 48 89 c7 mov %rax,%rdi 208d6: e8 b5 33 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 208db: 48 89 de mov %rbx,%rsi 208de: 48 89 c7 mov %rax,%rdi 208e1: e8 8a 26 ff ff callq 12f70 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 208e6: 84 c0 test %al,%al 208e8: 74 06 je 208f0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1e0> return __first; 208ea: 48 8b 45 d0 mov -0x30(%rbp),%rax 208ee: eb 10 jmp 20900 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 208f0: 48 8d 45 d0 lea -0x30(%rbp),%rax 208f4: 48 89 c7 mov %rax,%rdi 208f7: e8 44 34 ff ff callq 13d40 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 0: default: return __last; 208fc: 48 8b 45 c0 mov -0x40(%rbp),%rax } } 20900: 48 83 c4 38 add $0x38,%rsp 20904: 5b pop %rbx 20905: 5d pop %rbp 20906: c3 retq 20907: 90 nop 0000000000020908 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv>: __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } const _Iterator& base() const 20908: 55 push %rbp 20909: 48 89 e5 mov %rsp,%rbp 2090c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_current; } 20910: 48 8b 45 f8 mov -0x8(%rbp),%rax 20914: 5d pop %rbp 20915: c3 retq 0000000000020916 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs>: // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 20916: 55 push %rbp 20917: 48 89 e5 mov %rsp,%rbp 2091a: 41 55 push %r13 2091c: 41 54 push %r12 2091e: 53 push %rbx 2091f: 48 83 ec 28 sub $0x28,%rsp 20923: 48 89 7d d8 mov %rdi,-0x28(%rbp) 20927: 48 89 75 d0 mov %rsi,-0x30(%rbp) 2092b: 48 89 55 c8 mov %rdx,-0x38(%rbp) { ::new((void *)__p) _Tp(__val); } 2092f: 4c 8b 65 d0 mov -0x30(%rbp),%r12 20933: 4c 89 e6 mov %r12,%rsi 20936: bf 08 00 00 00 mov $0x8,%edi 2093b: e8 30 28 ff ff callq 13170 <_ZnwmPv@plt> 20940: 48 89 c3 mov %rax,%rbx 20943: 48 85 db test %rbx,%rbx 20946: 74 2a je 20972 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs+0x5c> 20948: 48 8b 45 c8 mov -0x38(%rbp),%rax 2094c: 48 89 c6 mov %rax,%rsi 2094f: 48 89 df mov %rbx,%rdi 20952: e8 a9 27 ff ff callq 13100 <_ZNSsC1ERKSs@plt> 20957: eb 19 jmp 20972 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs+0x5c> 20959: 49 89 c5 mov %rax,%r13 2095c: 4c 89 e6 mov %r12,%rsi 2095f: 48 89 df mov %rbx,%rdi 20962: e8 d9 3a ff ff callq 14440 <_ZdlPvS_@plt> 20967: 4c 89 e8 mov %r13,%rax 2096a: 48 89 c7 mov %rax,%rdi 2096d: e8 0e 3c ff ff callq 14580 <_Unwind_Resume@plt> 20972: 48 83 c4 28 add $0x28,%rsp 20976: 5b pop %rbx 20977: 41 5c pop %r12 20979: 41 5d pop %r13 2097b: 5d pop %rbp 2097c: c3 retq 2097d: 90 nop 000000000002097e <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs>: vector<_Tp, _Alloc>:: _M_insert_aux(iterator __position, _Args&&... __args) #else template void vector<_Tp, _Alloc>:: 2097e: 55 push %rbp 2097f: 48 89 e5 mov %rsp,%rbp 20982: 41 54 push %r12 20984: 53 push %rbx 20985: 48 83 ec 60 sub $0x60,%rsp 20989: 48 89 7d a8 mov %rdi,-0x58(%rbp) 2098d: 48 89 75 a0 mov %rsi,-0x60(%rbp) 20991: 48 89 55 98 mov %rdx,-0x68(%rbp) _M_insert_aux(iterator __position, const _Tp& __x) #endif { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 20995: 48 8b 45 a8 mov -0x58(%rbp),%rax 20999: 48 8b 50 08 mov 0x8(%rax),%rdx 2099d: 48 8b 45 a8 mov -0x58(%rbp),%rax 209a1: 48 8b 40 10 mov 0x10(%rax),%rax 209a5: 48 39 c2 cmp %rax,%rdx 209a8: 0f 84 ab 00 00 00 je 20a59 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0xdb> { this->_M_impl.construct(this->_M_impl._M_finish, 209ae: 48 8b 45 a8 mov -0x58(%rbp),%rax 209b2: 48 8b 40 08 mov 0x8(%rax),%rax 209b6: 48 8d 50 f8 lea -0x8(%rax),%rdx 209ba: 48 8b 45 a8 mov -0x58(%rbp),%rax 209be: 48 8b 48 08 mov 0x8(%rax),%rcx 209c2: 48 8b 45 a8 mov -0x58(%rbp),%rax 209c6: 48 89 ce mov %rcx,%rsi 209c9: 48 89 c7 mov %rax,%rdi 209cc: e8 9f 2a ff ff callq 13470 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> _GLIBCXX_MOVE(*(this->_M_impl._M_finish - 1))); ++this->_M_impl._M_finish; 209d1: 48 8b 45 a8 mov -0x58(%rbp),%rax 209d5: 48 8b 40 08 mov 0x8(%rax),%rax 209d9: 48 8d 50 08 lea 0x8(%rax),%rdx 209dd: 48 8b 45 a8 mov -0x58(%rbp),%rax 209e1: 48 89 50 08 mov %rdx,0x8(%rax) #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Tp __x_copy = __x; 209e5: 48 8b 55 98 mov -0x68(%rbp),%rdx 209e9: 48 8d 45 b0 lea -0x50(%rbp),%rax 209ed: 48 89 d6 mov %rdx,%rsi 209f0: 48 89 c7 mov %rax,%rdi 209f3: e8 08 27 ff ff callq 13100 <_ZNSsC1ERKSs@plt> #endif _GLIBCXX_MOVE_BACKWARD3(__position.base(), 209f8: 48 8b 45 a8 mov -0x58(%rbp),%rax 209fc: 48 8b 40 08 mov 0x8(%rax),%rax 20a00: 4c 8d 60 f8 lea -0x8(%rax),%r12 20a04: 48 8b 45 a8 mov -0x58(%rbp),%rax 20a08: 48 8b 40 08 mov 0x8(%rax),%rax 20a0c: 48 8d 58 f0 lea -0x10(%rax),%rbx 20a10: 48 8d 45 a0 lea -0x60(%rbp),%rax 20a14: 48 89 c7 mov %rax,%rdi 20a17: e8 c4 26 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20a1c: 48 8b 00 mov (%rax),%rax 20a1f: 4c 89 e2 mov %r12,%rdx 20a22: 48 89 de mov %rbx,%rsi 20a25: 48 89 c7 mov %rax,%rdi 20a28: e8 a3 2d ff ff callq 137d0 <_ZSt13copy_backwardIPSsS0_ET0_T_S2_S1_@plt> this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1); #ifndef __GXX_EXPERIMENTAL_CXX0X__ *__position = __x_copy; 20a2d: 48 8d 45 a0 lea -0x60(%rbp),%rax 20a31: 48 89 c7 mov %rax,%rdi 20a34: e8 57 32 ff ff callq 13c90 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 20a39: 48 8d 55 b0 lea -0x50(%rbp),%rdx 20a3d: 48 89 d6 mov %rdx,%rsi 20a40: 48 89 c7 mov %rax,%rdi 20a43: e8 58 3c ff ff callq 146a0 <_ZNSsaSERKSs@plt> 20a48: 48 8d 45 b0 lea -0x50(%rbp),%rax 20a4c: 48 89 c7 mov %rax,%rdi 20a4f: e8 dc 29 ff ff callq 13430 <_ZNSsD1Ev@plt> - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } 20a54: e9 33 02 00 00 jmpq 20c8c <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x30e> #endif } else { const size_type __len = _M_check_len(size_type(1), "vector::_M_insert_aux"); 20a59: 48 8b 45 a8 mov -0x58(%rbp),%rax 20a5d: 48 8d 15 8a 30 00 00 lea 0x308a(%rip),%rdx # 23aee <_fini+0xb66> 20a64: be 01 00 00 00 mov $0x1,%esi 20a69: 48 89 c7 mov %rax,%rdi 20a6c: e8 1f 1e ff ff callq 12890 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc@plt> 20a71: 48 89 45 d8 mov %rax,-0x28(%rbp) const size_type __elems_before = __position - begin(); 20a75: 48 8b 45 a8 mov -0x58(%rbp),%rax 20a79: 48 89 c7 mov %rax,%rdi 20a7c: e8 8f 21 ff ff callq 12c10 <_ZNSt6vectorISsSaISsEE5beginEv@plt> 20a81: 48 89 45 c0 mov %rax,-0x40(%rbp) 20a85: 48 8d 55 c0 lea -0x40(%rbp),%rdx 20a89: 48 8d 45 a0 lea -0x60(%rbp),%rax 20a8d: 48 89 d6 mov %rdx,%rsi 20a90: 48 89 c7 mov %rax,%rdi 20a93: e8 58 27 ff ff callq 131f0 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 20a98: 48 89 45 e0 mov %rax,-0x20(%rbp) pointer __new_start(this->_M_allocate(__len)); 20a9c: 48 8b 45 a8 mov -0x58(%rbp),%rax 20aa0: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20aa4: 48 89 d6 mov %rdx,%rsi 20aa7: 48 89 c7 mov %rax,%rdi 20aaa: e8 c1 28 ff ff callq 13370 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm@plt> 20aaf: 48 89 45 e8 mov %rax,-0x18(%rbp) pointer __new_finish(__new_start); 20ab3: 48 8b 45 e8 mov -0x18(%rbp),%rax 20ab7: 48 89 45 d0 mov %rax,-0x30(%rbp) { // The order of the three operations is dictated by the C++0x // case, where the moves could alter a new element belonging // to the existing vector. This is an issue only for callers // taking the element by const lvalue ref (see 23.1/13). this->_M_impl.construct(__new_start + __elems_before, 20abb: 48 8b 45 e0 mov -0x20(%rbp),%rax 20abf: 48 c1 e0 03 shl $0x3,%rax 20ac3: 48 89 c1 mov %rax,%rcx 20ac6: 48 03 4d e8 add -0x18(%rbp),%rcx 20aca: 48 8b 45 a8 mov -0x58(%rbp),%rax 20ace: 48 8b 55 98 mov -0x68(%rbp),%rdx 20ad2: 48 89 ce mov %rcx,%rsi 20ad5: 48 89 c7 mov %rax,%rdi 20ad8: e8 93 29 ff ff callq 13470 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> #ifdef __GXX_EXPERIMENTAL_CXX0X__ std::forward<_Args>(__args)...); #else __x); #endif __new_finish = 0; 20add: 48 c7 45 d0 00 00 00 movq $0x0,-0x30(%rbp) 20ae4: 00 __new_finish = 20ae5: 48 8b 45 a8 mov -0x58(%rbp),%rax 20ae9: 48 89 c7 mov %rax,%rdi 20aec: e8 9f 23 ff ff callq 12e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 20af1: 48 89 c3 mov %rax,%rbx 20af4: 48 8d 45 a0 lea -0x60(%rbp),%rax 20af8: 48 89 c7 mov %rax,%rdi 20afb: e8 e0 25 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20b00: 48 8b 30 mov (%rax),%rsi 20b03: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b07: 48 8b 00 mov (%rax),%rax 20b0a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 20b0e: 48 89 d9 mov %rbx,%rcx 20b11: 48 89 c7 mov %rax,%rdi 20b14: e8 17 24 ff ff callq 12f30 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt> 20b19: 48 89 45 d0 mov %rax,-0x30(%rbp) std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); ++__new_finish; 20b1d: 48 83 45 d0 08 addq $0x8,-0x30(%rbp) __new_finish = 20b22: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b26: 48 89 c7 mov %rax,%rdi 20b29: e8 62 23 ff ff callq 12e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 20b2e: 49 89 c4 mov %rax,%r12 20b31: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b35: 48 8b 58 08 mov 0x8(%rax),%rbx 20b39: 48 8d 45 a0 lea -0x60(%rbp),%rax 20b3d: 48 89 c7 mov %rax,%rdi 20b40: e8 9b 25 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20b45: 48 8b 00 mov (%rax),%rax 20b48: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20b4c: 4c 89 e1 mov %r12,%rcx 20b4f: 48 89 de mov %rbx,%rsi 20b52: 48 89 c7 mov %rax,%rdi 20b55: e8 d6 23 ff ff callq 12f30 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt> 20b5a: 48 89 45 d0 mov %rax,-0x30(%rbp) else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); __throw_exception_again; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 20b5e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b62: 48 89 c7 mov %rax,%rdi 20b65: e8 26 23 ff ff callq 12e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 20b6a: 48 89 c2 mov %rax,%rdx 20b6d: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b71: 48 8b 48 08 mov 0x8(%rax),%rcx 20b75: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b79: 48 8b 00 mov (%rax),%rax 20b7c: 48 89 ce mov %rcx,%rsi 20b7f: 48 89 c7 mov %rax,%rdi 20b82: e8 f9 21 ff ff callq 12d80 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, 20b87: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b8b: 48 8b 40 10 mov 0x10(%rax),%rax 20b8f: 48 89 c2 mov %rax,%rdx 20b92: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b96: 48 8b 00 mov (%rax),%rax 20b99: 48 89 d1 mov %rdx,%rcx 20b9c: 48 29 c1 sub %rax,%rcx 20b9f: 48 89 c8 mov %rcx,%rax 20ba2: 48 c1 f8 03 sar $0x3,%rax 20ba6: 48 89 c2 mov %rax,%rdx 20ba9: 48 8b 45 a8 mov -0x58(%rbp),%rax 20bad: 48 8b 08 mov (%rax),%rcx 20bb0: 48 8b 45 a8 mov -0x58(%rbp),%rax 20bb4: 48 89 ce mov %rcx,%rsi 20bb7: 48 89 c7 mov %rax,%rdi 20bba: e8 d1 25 ff ff callq 13190 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt> this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; 20bbf: 48 8b 45 a8 mov -0x58(%rbp),%rax 20bc3: 48 8b 55 e8 mov -0x18(%rbp),%rdx 20bc7: 48 89 10 mov %rdx,(%rax) this->_M_impl._M_finish = __new_finish; 20bca: 48 8b 45 a8 mov -0x58(%rbp),%rax 20bce: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20bd2: 48 89 50 08 mov %rdx,0x8(%rax) this->_M_impl._M_end_of_storage = __new_start + __len; 20bd6: 48 8b 45 d8 mov -0x28(%rbp),%rax 20bda: 48 c1 e0 03 shl $0x3,%rax 20bde: 48 89 c2 mov %rax,%rdx 20be1: 48 03 55 e8 add -0x18(%rbp),%rdx 20be5: 48 8b 45 a8 mov -0x58(%rbp),%rax 20be9: 48 89 50 10 mov %rdx,0x10(%rax) 20bed: e9 9a 00 00 00 jmpq 20c8c <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x30e> 20bf2: 48 89 c3 mov %rax,%rbx #endif _GLIBCXX_MOVE_BACKWARD3(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1); #ifndef __GXX_EXPERIMENTAL_CXX0X__ *__position = __x_copy; 20bf5: 48 8d 45 b0 lea -0x50(%rbp),%rax 20bf9: 48 89 c7 mov %rax,%rdi 20bfc: e8 2f 28 ff ff callq 13430 <_ZNSsD1Ev@plt> 20c01: 48 89 d8 mov %rbx,%rax 20c04: 48 89 c7 mov %rax,%rdi 20c07: e8 74 39 ff ff callq 14580 <_Unwind_Resume@plt> 20c0c: 48 89 c3 mov %rax,%rbx std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } __catch(...) 20c0f: e8 6c 36 ff ff callq 14280 <__cxa_end_catch@plt> 20c14: 48 89 d8 mov %rbx,%rax 20c17: 48 89 c7 mov %rax,%rdi 20c1a: e8 61 39 ff ff callq 14580 <_Unwind_Resume@plt> 20c1f: 48 89 c7 mov %rax,%rdi 20c22: e8 99 37 ff ff callq 143c0 <__cxa_begin_catch@plt> { if (!__new_finish) 20c27: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 20c2c: 75 20 jne 20c4e <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x2d0> this->_M_impl.destroy(__new_start + __elems_before); 20c2e: 48 8b 45 e0 mov -0x20(%rbp),%rax 20c32: 48 c1 e0 03 shl $0x3,%rax 20c36: 48 89 c2 mov %rax,%rdx 20c39: 48 03 55 e8 add -0x18(%rbp),%rdx 20c3d: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c41: 48 89 d6 mov %rdx,%rsi 20c44: 48 89 c7 mov %rax,%rdi 20c47: e8 54 20 ff ff callq 12ca0 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs@plt> 20c4c: eb 22 jmp 20c70 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x2f2> else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 20c4e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c52: 48 89 c7 mov %rax,%rdi 20c55: e8 36 22 ff ff callq 12e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 20c5a: 48 89 c2 mov %rax,%rdx 20c5d: 48 8b 4d d0 mov -0x30(%rbp),%rcx 20c61: 48 8b 45 e8 mov -0x18(%rbp),%rax 20c65: 48 89 ce mov %rcx,%rsi 20c68: 48 89 c7 mov %rax,%rdi 20c6b: e8 10 21 ff ff callq 12d80 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_deallocate(__new_start, __len); 20c70: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c74: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20c78: 48 8b 4d e8 mov -0x18(%rbp),%rcx 20c7c: 48 89 ce mov %rcx,%rsi 20c7f: 48 89 c7 mov %rax,%rdi 20c82: e8 09 25 ff ff callq 13190 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt> __throw_exception_again; 20c87: e8 84 21 ff ff callq 12e10 <__cxa_rethrow@plt> - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } 20c8c: 48 83 c4 60 add $0x60,%rsp 20c90: 5b pop %rbx 20c91: 41 5c pop %r12 20c93: 5d pop %rbp 20c94: c3 retq 20c95: 90 nop 0000000000020c96 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev>: { _Key_compare _M_key_compare; _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() 20c96: 55 push %rbp 20c97: 48 89 e5 mov %rsp,%rbp 20c9a: 53 push %rbx 20c9b: 48 83 ec 18 sub $0x18,%rsp 20c9f: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 20ca3: 48 8b 45 e8 mov -0x18(%rbp),%rax 20ca7: 48 89 c7 mov %rax,%rdi 20caa: e8 11 27 ff ff callq 133c0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt> 20caf: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cb3: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 20cba: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cbe: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 20cc5: 00 20cc6: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cca: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 20cd1: 00 20cd2: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cd6: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 20cdd: 00 20cde: 48 8b 45 e8 mov -0x18(%rbp),%rax 20ce2: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 20ce9: 00 { _M_initialize(); } 20cea: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cee: 48 89 c7 mov %rax,%rdi 20cf1: e8 5a 21 ff ff callq 12e50 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt> 20cf6: eb 1a jmp 20d12 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev+0x7c> 20cf8: 48 89 c3 mov %rax,%rbx _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 20cfb: 48 8b 45 e8 mov -0x18(%rbp),%rax 20cff: 48 89 c7 mov %rax,%rdi 20d02: e8 29 29 ff ff callq 13630 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 20d07: 48 89 d8 mov %rbx,%rax 20d0a: 48 89 c7 mov %rax,%rdi 20d0d: e8 6e 38 ff ff callq 14580 <_Unwind_Resume@plt> { _M_initialize(); } 20d12: 48 83 c4 18 add $0x18,%rsp 20d16: 5b pop %rbx 20d17: 5d pop %rbp 20d18: c3 retq 20d19: 90 nop 0000000000020d1a <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E>: _Rb_tree_const_iterator() : _M_node() { } explicit _Rb_tree_const_iterator(_Link_type __x) 20d1a: 55 push %rbp 20d1b: 48 89 e5 mov %rsp,%rbp 20d1e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20d22: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 20d26: 48 8b 45 f8 mov -0x8(%rbp),%rax 20d2a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20d2e: 48 89 10 mov %rdx,(%rax) 20d31: 5d pop %rbp 20d32: c3 retq 20d33: 90 nop 0000000000020d34 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_>: _Tp& operator()(_Tp& __x) const { return __x; } const _Tp& operator()(const _Tp& __x) const 20d34: 55 push %rbp 20d35: 48 89 e5 mov %rsp,%rbp 20d38: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20d3c: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x; } 20d40: 48 8b 45 f0 mov -0x10(%rbp),%rax 20d44: 5d pop %rbp 20d45: c3 retq 0000000000020d46 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E>: static const_reference _S_value(_Const_Link_type __x) { return __x->_M_value_field; } static const _Key& _S_key(_Const_Link_type __x) 20d46: 55 push %rbp 20d47: 48 89 e5 mov %rsp,%rbp 20d4a: 48 83 ec 20 sub $0x20,%rsp 20d4e: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 20d52: 48 8b 45 e8 mov -0x18(%rbp),%rax 20d56: 48 89 c7 mov %rax,%rdi 20d59: e8 f2 2b ff ff callq 13950 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt13_Rb_tree_nodeIS1_E@plt> 20d5e: 48 89 c2 mov %rax,%rdx 20d61: 48 8d 45 ff lea -0x1(%rbp),%rax 20d65: 48 89 d6 mov %rdx,%rsi 20d68: 48 89 c7 mov %rax,%rdi 20d6b: e8 40 1f ff ff callq 12cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20d70: c9 leaveq 20d71: c3 retq 0000000000020d72 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_>: /// One of the @link comparison_functors comparison functors@endlink. template struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const 20d72: 55 push %rbp 20d73: 48 89 e5 mov %rsp,%rbp 20d76: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20d7a: 48 89 75 f0 mov %rsi,-0x10(%rbp) 20d7e: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 20d82: 48 8b 45 f0 mov -0x10(%rbp),%rax 20d86: 48 8b 10 mov (%rax),%rdx 20d89: 48 8b 45 e8 mov -0x18(%rbp),%rax 20d8d: 48 8b 00 mov (%rax),%rax 20d90: 48 39 c2 cmp %rax,%rdx 20d93: 0f 92 c0 setb %al 20d96: 5d pop %rbp 20d97: c3 retq 0000000000020d98 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 20d98: 55 push %rbp 20d99: 48 89 e5 mov %rsp,%rbp 20d9c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20da0: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 20da4: 48 8b 45 f8 mov -0x8(%rbp),%rax 20da8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20dac: 48 89 10 mov %rdx,(%rax) 20daf: 5d pop %rbp 20db0: c3 retq 20db1: 90 nop 0000000000020db2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 20db2: 55 push %rbp 20db3: 48 89 e5 mov %rsp,%rbp 20db6: 48 83 ec 20 sub $0x20,%rsp 20dba: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 20dbe: 48 8b 45 e8 mov -0x18(%rbp),%rax 20dc2: 48 8b 50 18 mov 0x18(%rax),%rdx 20dc6: 48 8d 45 f0 lea -0x10(%rbp),%rax 20dca: 48 89 d6 mov %rdx,%rsi 20dcd: 48 89 c7 mov %rax,%rdi 20dd0: e8 7b 33 ff ff callq 14150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 20dd5: 48 8b 45 f0 mov -0x10(%rbp),%rax } 20dd9: c9 leaveq 20dda: c3 retq 20ddb: 90 nop 0000000000020ddc <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 20ddc: 55 push %rbp 20ddd: 48 89 e5 mov %rsp,%rbp 20de0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20de4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 20de8: 48 8b 45 f8 mov -0x8(%rbp),%rax 20dec: 48 8b 10 mov (%rax),%rdx 20def: 48 8b 45 f0 mov -0x10(%rbp),%rax 20df3: 48 8b 00 mov (%rax),%rax 20df6: 48 39 c2 cmp %rax,%rdx 20df9: 0f 94 c0 sete %al 20dfc: 5d pop %rbp 20dfd: c3 retq 0000000000020dfe <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_>: typename _Compare, typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 20dfe: 55 push %rbp 20dff: 48 89 e5 mov %rsp,%rbp 20e02: 53 push %rbx 20e03: 48 83 ec 48 sub $0x48,%rsp 20e07: 48 89 7d c8 mov %rdi,-0x38(%rbp) 20e0b: 48 89 75 c0 mov %rsi,-0x40(%rbp) 20e0f: 48 89 55 b8 mov %rdx,-0x48(%rbp) 20e13: 48 89 4d b0 mov %rcx,-0x50(%rbp) _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) #endif { bool __insert_left = (__x != 0 || __p == _M_end() || _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__p))); 20e17: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 20e1c: 75 4d jne 20e6b <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x6d> 20e1e: 48 8b 45 c8 mov -0x38(%rbp),%rax 20e22: 48 89 c7 mov %rax,%rdi 20e25: e8 f6 28 ff ff callq 13720 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 20e2a: 48 3b 45 b8 cmp -0x48(%rbp),%rax 20e2e: 74 3b je 20e6b <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x6d> 20e30: 48 8b 45 b8 mov -0x48(%rbp),%rax 20e34: 48 89 c7 mov %rax,%rdi 20e37: e8 e4 37 ff ff callq 14620 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20e3c: 48 89 c3 mov %rax,%rbx 20e3f: 48 8b 55 b0 mov -0x50(%rbp),%rdx 20e43: 48 8d 45 ee lea -0x12(%rbp),%rax 20e47: 48 89 d6 mov %rdx,%rsi 20e4a: 48 89 c7 mov %rax,%rdi 20e4d: e8 5e 1e ff ff callq 12cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20e52: 48 89 c1 mov %rax,%rcx 20e55: 48 8b 45 c8 mov -0x38(%rbp),%rax 20e59: 48 89 da mov %rbx,%rdx 20e5c: 48 89 ce mov %rcx,%rsi 20e5f: 48 89 c7 mov %rax,%rdi 20e62: e8 39 30 ff ff callq 13ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 20e67: 84 c0 test %al,%al 20e69: 74 07 je 20e72 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x74> 20e6b: b8 01 00 00 00 mov $0x1,%eax 20e70: eb 05 jmp 20e77 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x79> 20e72: b8 00 00 00 00 mov $0x0,%eax 20e77: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 20e7a: 48 8b 55 b0 mov -0x50(%rbp),%rdx 20e7e: 48 8b 45 c8 mov -0x38(%rbp),%rax 20e82: 48 89 d6 mov %rdx,%rsi 20e85: 48 89 c7 mov %rax,%rdi 20e88: e8 d3 32 ff ff callq 14160 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt> 20e8d: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 20e91: 48 8b 45 c8 mov -0x38(%rbp),%rax 20e95: 48 8d 48 08 lea 0x8(%rax),%rcx 20e99: 0f b6 45 ef movzbl -0x11(%rbp),%eax 20e9d: 48 8b 55 b8 mov -0x48(%rbp),%rdx 20ea1: 48 8b 75 e0 mov -0x20(%rbp),%rsi 20ea5: 89 c7 mov %eax,%edi 20ea7: e8 c4 2f ff ff callq 13e70 <_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt> const_cast<_Base_ptr>(__p), this->_M_impl._M_header); ++_M_impl._M_node_count; 20eac: 48 8b 45 c8 mov -0x38(%rbp),%rax 20eb0: 48 8b 40 28 mov 0x28(%rax),%rax 20eb4: 48 8d 50 01 lea 0x1(%rax),%rdx 20eb8: 48 8b 45 c8 mov -0x38(%rbp),%rax 20ebc: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 20ec0: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20ec4: 48 8d 45 d0 lea -0x30(%rbp),%rax 20ec8: 48 89 d6 mov %rdx,%rsi 20ecb: 48 89 c7 mov %rax,%rdi 20ece: e8 7d 32 ff ff callq 14150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 20ed3: 48 8b 45 d0 mov -0x30(%rbp),%rax } 20ed7: 48 83 c4 48 add $0x48,%rsp 20edb: 5b pop %rbx 20edc: 5d pop %rbp 20edd: c3 retq 0000000000020ede <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 20ede: 55 push %rbp 20edf: 48 89 e5 mov %rsp,%rbp 20ee2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20ee6: 48 89 75 f0 mov %rsi,-0x10(%rbp) 20eea: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 20eee: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ef2: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20ef6: 48 8b 12 mov (%rdx),%rdx 20ef9: 48 89 10 mov %rdx,(%rax) 20efc: 48 8b 45 e8 mov -0x18(%rbp),%rax 20f00: 0f b6 10 movzbl (%rax),%edx 20f03: 48 8b 45 f8 mov -0x8(%rbp),%rax 20f07: 88 50 08 mov %dl,0x8(%rax) 20f0a: 5d pop %rbp 20f0b: c3 retq 0000000000020f0c <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 20f0c: 55 push %rbp 20f0d: 48 89 e5 mov %rsp,%rbp 20f10: 48 83 ec 10 sub $0x10,%rsp 20f14: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 20f18: 48 8b 45 f8 mov -0x8(%rbp),%rax 20f1c: 48 8b 00 mov (%rax),%rax 20f1f: 48 89 c7 mov %rax,%rdi 20f22: e8 09 21 ff ff callq 13030 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 20f27: 48 8b 55 f8 mov -0x8(%rbp),%rdx 20f2b: 48 89 02 mov %rax,(%rdx) return *this; 20f2e: 48 8b 45 f8 mov -0x8(%rbp),%rax } 20f32: c9 leaveq 20f33: c3 retq 0000000000020f34 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base>: static const_reference _S_value(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } static const _Key& _S_key(_Const_Base_ptr __x) 20f34: 55 push %rbp 20f35: 48 89 e5 mov %rsp,%rbp 20f38: 48 83 ec 20 sub $0x20,%rsp 20f3c: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 20f40: 48 8b 45 e8 mov -0x18(%rbp),%rax 20f44: 48 89 c7 mov %rax,%rdi 20f47: e8 d4 1f ff ff callq 12f20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 20f4c: 48 89 c2 mov %rax,%rdx 20f4f: 48 8d 45 ff lea -0x1(%rbp),%rax 20f53: 48 89 d6 mov %rdx,%rsi 20f56: 48 89 c7 mov %rax,%rdi 20f59: e8 52 1d ff ff callq 12cb0 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20f5e: c9 leaveq 20f5f: c3 retq 0000000000020f60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 20f60: 55 push %rbp 20f61: 48 89 e5 mov %rsp,%rbp 20f64: 48 83 ec 30 sub $0x30,%rsp 20f68: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20f6c: 48 89 75 e0 mov %rsi,-0x20(%rbp) 20f70: 48 89 55 d8 mov %rdx,-0x28(%rbp) 20f74: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 20f78: eb 53 jmp 20fcd <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x6d> if (!_M_impl._M_key_compare(_S_key(__x), __k)) 20f7a: 48 8b 45 e0 mov -0x20(%rbp),%rax 20f7e: 48 89 c7 mov %rax,%rdi 20f81: e8 ea 19 ff ff callq 12970 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt> 20f86: 48 89 c1 mov %rax,%rcx 20f89: 48 8b 45 e8 mov -0x18(%rbp),%rax 20f8d: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20f91: 48 89 ce mov %rcx,%rsi 20f94: 48 89 c7 mov %rax,%rdi 20f97: e8 04 2f ff ff callq 13ea0 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 20f9c: 83 f0 01 xor $0x1,%eax 20f9f: 84 c0 test %al,%al 20fa1: 74 1a je 20fbd <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x5d> __y = __x, __x = _S_left(__x); 20fa3: 48 8b 45 e0 mov -0x20(%rbp),%rax 20fa7: 48 89 45 d8 mov %rax,-0x28(%rbp) 20fab: 48 8b 45 e0 mov -0x20(%rbp),%rax 20faf: 48 89 c7 mov %rax,%rdi 20fb2: e8 79 21 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 20fb7: 48 89 45 e0 mov %rax,-0x20(%rbp) 20fbb: eb 10 jmp 20fcd <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x6d> else __x = _S_right(__x); 20fbd: 48 8b 45 e0 mov -0x20(%rbp),%rax 20fc1: 48 89 c7 mov %rax,%rdi 20fc4: e8 d7 22 ff ff callq 132a0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 20fc9: 48 89 45 e0 mov %rax,-0x20(%rbp) _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 20fcd: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 20fd2: 0f 95 c0 setne %al 20fd5: 84 c0 test %al,%al 20fd7: 75 a1 jne 20f7a <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x1a> if (!_M_impl._M_key_compare(_S_key(__x), __k)) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); 20fd9: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20fdd: 48 8d 45 f0 lea -0x10(%rbp),%rax 20fe1: 48 89 d6 mov %rdx,%rsi 20fe4: 48 89 c7 mov %rax,%rdi 20fe7: e8 64 31 ff ff callq 14150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 20fec: 48 8b 45 f0 mov -0x10(%rbp),%rax } 20ff0: c9 leaveq 20ff1: c3 retq 0000000000020ff2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv>: return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() 20ff2: 55 push %rbp 20ff3: 48 89 e5 mov %rsp,%rbp 20ff6: 48 83 ec 20 sub $0x20,%rsp 20ffa: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 20ffe: 48 8b 45 e8 mov -0x18(%rbp),%rax 21002: 48 8d 50 08 lea 0x8(%rax),%rdx 21006: 48 8d 45 f0 lea -0x10(%rbp),%rax 2100a: 48 89 d6 mov %rdx,%rsi 2100d: 48 89 c7 mov %rax,%rdi 21010: e8 3b 31 ff ff callq 14150 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 21015: 48 8b 45 f0 mov -0x10(%rbp),%rax 21019: c9 leaveq 2101a: c3 retq 2101b: 90 nop 000000000002101c <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS1_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2101c: 55 push %rbp 2101d: 48 89 e5 mov %rsp,%rbp 21020: 48 83 ec 20 sub $0x20,%rsp 21024: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21028: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase_aux(const_iterator __position) { _Link_type __y = static_cast<_Link_type>(_Rb_tree_rebalance_for_erase (const_cast<_Base_ptr>(__position._M_node), this->_M_impl._M_header)); 2102c: 48 8b 45 e8 mov -0x18(%rbp),%rax 21030: 48 8d 50 08 lea 0x8(%rax),%rdx 21034: 48 8b 45 e0 mov -0x20(%rbp),%rax 21038: 48 89 d6 mov %rdx,%rsi 2103b: 48 89 c7 mov %rax,%rdi 2103e: e8 ed 2e ff ff callq 13f30 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt> 21043: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__y); 21047: 48 8b 55 f8 mov -0x8(%rbp),%rdx 2104b: 48 8b 45 e8 mov -0x18(%rbp),%rax 2104f: 48 89 d6 mov %rdx,%rsi 21052: 48 89 c7 mov %rax,%rdi 21055: e8 46 1f ff ff callq 12fa0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt> --_M_impl._M_node_count; 2105a: 48 8b 45 e8 mov -0x18(%rbp),%rax 2105e: 48 8b 40 28 mov 0x28(%rax),%rax 21062: 48 8d 50 ff lea -0x1(%rax),%rdx 21066: 48 8b 45 e8 mov -0x18(%rbp),%rax 2106a: 48 89 50 28 mov %rdx,0x28(%rax) } 2106e: c9 leaveq 2106f: c3 retq 0000000000021070 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev>: { _Key_compare _M_key_compare; _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() 21070: 55 push %rbp 21071: 48 89 e5 mov %rsp,%rbp 21074: 53 push %rbx 21075: 48 83 ec 18 sub $0x18,%rsp 21079: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 2107d: 48 8b 45 e8 mov -0x18(%rbp),%rax 21081: 48 89 c7 mov %rax,%rdi 21084: e8 f7 29 ff ff callq 13a80 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt> 21089: 48 8b 45 e8 mov -0x18(%rbp),%rax 2108d: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 21094: 48 8b 45 e8 mov -0x18(%rbp),%rax 21098: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 2109f: 00 210a0: 48 8b 45 e8 mov -0x18(%rbp),%rax 210a4: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 210ab: 00 210ac: 48 8b 45 e8 mov -0x18(%rbp),%rax 210b0: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 210b7: 00 210b8: 48 8b 45 e8 mov -0x18(%rbp),%rax 210bc: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 210c3: 00 { _M_initialize(); } 210c4: 48 8b 45 e8 mov -0x18(%rbp),%rax 210c8: 48 89 c7 mov %rax,%rdi 210cb: e8 c0 35 ff ff callq 14690 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv@plt> 210d0: eb 1a jmp 210ec <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev+0x7c> 210d2: 48 89 c3 mov %rax,%rbx _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. _Rb_tree_impl() : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 210d5: 48 8b 45 e8 mov -0x18(%rbp),%rax 210d9: 48 89 c7 mov %rax,%rdi 210dc: e8 df 21 ff ff callq 132c0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 210e1: 48 89 d8 mov %rbx,%rax 210e4: 48 89 c7 mov %rax,%rdi 210e7: e8 94 34 ff ff callq 14580 <_Unwind_Resume@plt> { _M_initialize(); } 210ec: 48 83 c4 18 add $0x18,%rsp 210f0: 5b pop %rbx 210f1: 5d pop %rbp 210f2: c3 retq 210f3: 90 nop 00000000000210f4 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 210f4: 55 push %rbp 210f5: 48 89 e5 mov %rsp,%rbp 210f8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 210fc: 5d pop %rbp 210fd: c3 retq 00000000000210fe <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base>: static _Const_Link_type _S_left(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_left); } static _Link_type _S_right(_Base_ptr __x) 210fe: 55 push %rbp 210ff: 48 89 e5 mov %rsp,%rbp 21102: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 21106: 48 8b 45 f8 mov -0x8(%rbp),%rax 2110a: 48 8b 40 18 mov 0x18(%rax),%rax 2110e: 5d pop %rbp 2110f: c3 retq 0000000000021110 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base>: static const _Key& _S_key(_Const_Link_type __x) { return _KeyOfValue()(_S_value(__x)); } static _Link_type _S_left(_Base_ptr __x) 21110: 55 push %rbp 21111: 48 89 e5 mov %rsp,%rbp 21114: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 21118: 48 8b 45 f8 mov -0x8(%rbp),%rax 2111c: 48 8b 40 10 mov 0x10(%rax),%rax 21120: 5d pop %rbp 21121: c3 retq 0000000000021122 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 21122: 55 push %rbp 21123: 48 89 e5 mov %rsp,%rbp 21126: 53 push %rbx 21127: 48 83 ec 28 sub $0x28,%rsp 2112b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 2112f: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 21133: 48 8b 45 d0 mov -0x30(%rbp),%rax 21137: 48 83 c0 20 add $0x20,%rax 2113b: 48 89 c7 mov %rax,%rdi 2113e: e8 7d 29 ff ff callq 13ac0 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt> 21143: 48 89 c3 mov %rax,%rbx 21146: 48 8d 45 ef lea -0x11(%rbp),%rax 2114a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 2114e: 48 89 d6 mov %rdx,%rsi 21151: 48 89 c7 mov %rax,%rdi 21154: e8 37 1f ff ff callq 13090 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt> 21159: 48 8d 45 ef lea -0x11(%rbp),%rax 2115d: 48 89 de mov %rbx,%rsi 21160: 48 89 c7 mov %rax,%rdi 21163: e8 88 27 ff ff callq 138f0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_@plt> 21168: 48 8d 45 ef lea -0x11(%rbp),%rax 2116c: 48 89 c7 mov %rax,%rdi 2116f: e8 9c 28 ff ff callq 13a10 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> _M_put_node(__p); 21174: 48 8b 55 d0 mov -0x30(%rbp),%rdx 21178: 48 8b 45 d8 mov -0x28(%rbp),%rax 2117c: 48 89 d6 mov %rdx,%rsi 2117f: 48 89 c7 mov %rax,%rdi 21182: e8 69 2a ff ff callq 13bf0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt> } 21187: 48 83 c4 28 add $0x28,%rsp 2118b: 5b pop %rbx 2118c: 5d pop %rbp 2118d: c3 retq 2118e: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 21191: 48 8d 45 ef lea -0x11(%rbp),%rax 21195: 48 89 c7 mov %rax,%rdi 21198: e8 73 28 ff ff callq 13a10 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> 2119d: 48 89 d8 mov %rbx,%rax 211a0: 48 89 c7 mov %rax,%rdi 211a3: e8 d8 33 ff ff callq 14580 <_Unwind_Resume@plt> 00000000000211a8 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 211a8: 55 push %rbp 211a9: 48 89 e5 mov %rsp,%rbp 211ac: 48 89 7d f8 mov %rdi,-0x8(%rbp) 211b0: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 211b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 211b8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 211bc: 48 89 10 mov %rdx,(%rax) 211bf: 5d pop %rbp 211c0: c3 retq 211c1: 90 nop 00000000000211c2 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv>: return static_cast<_Const_Link_type> (this->_M_impl._M_header._M_parent); } _Link_type _M_end() 211c2: 55 push %rbp 211c3: 48 89 e5 mov %rsp,%rbp 211c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 211ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 211ce: 48 83 c0 08 add $0x8,%rax 211d2: 5d pop %rbp 211d3: c3 retq 00000000000211d4 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 211d4: 55 push %rbp 211d5: 48 89 e5 mov %rsp,%rbp 211d8: 48 83 ec 30 sub $0x30,%rsp 211dc: 48 89 7d e8 mov %rdi,-0x18(%rbp) 211e0: 48 89 75 e0 mov %rsi,-0x20(%rbp) 211e4: 48 89 55 d8 mov %rdx,-0x28(%rbp) 211e8: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 211ec: eb 53 jmp 21241 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x6d> if (!_M_impl._M_key_compare(_S_key(__x), __k)) 211ee: 48 8b 45 e0 mov -0x20(%rbp),%rax 211f2: 48 89 c7 mov %rax,%rdi 211f5: e8 a6 25 ff ff callq 137a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt> 211fa: 48 89 c1 mov %rax,%rcx 211fd: 48 8b 45 e8 mov -0x18(%rbp),%rax 21201: 48 8b 55 d0 mov -0x30(%rbp),%rdx 21205: 48 89 ce mov %rcx,%rsi 21208: 48 89 c7 mov %rax,%rdi 2120b: e8 20 18 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21210: 83 f0 01 xor $0x1,%eax 21213: 84 c0 test %al,%al 21215: 74 1a je 21231 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x5d> __y = __x, __x = _S_left(__x); 21217: 48 8b 45 e0 mov -0x20(%rbp),%rax 2121b: 48 89 45 d8 mov %rax,-0x28(%rbp) 2121f: 48 8b 45 e0 mov -0x20(%rbp),%rax 21223: 48 89 c7 mov %rax,%rdi 21226: e8 85 2c ff ff callq 13eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 2122b: 48 89 45 e0 mov %rax,-0x20(%rbp) 2122f: eb 10 jmp 21241 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x6d> else __x = _S_right(__x); 21231: 48 8b 45 e0 mov -0x20(%rbp),%rax 21235: 48 89 c7 mov %rax,%rdi 21238: e8 53 19 ff ff callq 12b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 2123d: 48 89 45 e0 mov %rax,-0x20(%rbp) _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 21241: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 21246: 0f 95 c0 setne %al 21249: 84 c0 test %al,%al 2124b: 75 a1 jne 211ee <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x1a> if (!_M_impl._M_key_compare(_S_key(__x), __k)) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); 2124d: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21251: 48 8d 45 f0 lea -0x10(%rbp),%rax 21255: 48 89 d6 mov %rdx,%rsi 21258: 48 89 c7 mov %rax,%rdi 2125b: e8 00 18 ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 21260: 48 8b 45 f0 mov -0x10(%rbp),%rax } 21264: c9 leaveq 21265: c3 retq 0000000000021266 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base>: static const_reference _S_value(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } static const _Key& _S_key(_Const_Base_ptr __x) 21266: 55 push %rbp 21267: 48 89 e5 mov %rsp,%rbp 2126a: 48 83 ec 20 sub $0x20,%rsp 2126e: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 21272: 48 8b 45 e8 mov -0x18(%rbp),%rax 21276: 48 89 c7 mov %rax,%rdi 21279: e8 52 24 ff ff callq 136d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 2127e: 48 89 c2 mov %rax,%rdx 21281: 48 8d 45 ff lea -0x1(%rbp),%rax 21285: 48 89 d6 mov %rdx,%rsi 21288: 48 89 c7 mov %rax,%rdi 2128b: e8 30 17 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21290: c9 leaveq 21291: c3 retq 0000000000021292 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_>: size_type count(const key_type& __k) const; iterator lower_bound(const key_type& __k) 21292: 55 push %rbp 21293: 48 89 e5 mov %rsp,%rbp 21296: 53 push %rbx 21297: 48 83 ec 18 sub $0x18,%rsp 2129b: 48 89 7d e8 mov %rdi,-0x18(%rbp) 2129f: 48 89 75 e0 mov %rsi,-0x20(%rbp) { return _M_lower_bound(_M_begin(), _M_end(), __k); } 212a3: 48 8b 45 e8 mov -0x18(%rbp),%rax 212a7: 48 89 c7 mov %rax,%rdi 212aa: e8 91 16 ff ff callq 12940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 212af: 48 89 c3 mov %rax,%rbx 212b2: 48 8b 45 e8 mov -0x18(%rbp),%rax 212b6: 48 89 c7 mov %rax,%rdi 212b9: e8 02 19 ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 212be: 48 89 c6 mov %rax,%rsi 212c1: 48 8b 55 e0 mov -0x20(%rbp),%rdx 212c5: 48 8b 45 e8 mov -0x18(%rbp),%rax 212c9: 48 89 d1 mov %rdx,%rcx 212cc: 48 89 da mov %rbx,%rdx 212cf: 48 89 c7 mov %rax,%rdi 212d2: e8 09 29 ff ff callq 13be0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt> 212d7: 48 83 c4 18 add $0x18,%rsp 212db: 5b pop %rbx 212dc: 5d pop %rbp 212dd: c3 retq 00000000000212de <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv>: _Rb_tree& operator=(const _Rb_tree& __x); // Accessors. _Compare key_comp() const 212de: 55 push %rbp 212df: 48 89 e5 mov %rsp,%rbp 212e2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_key_compare; } 212e6: 5d pop %rbp 212e7: c3 retq 00000000000212e8 <_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_>: * @param rhs Second string. * @return True if @a lhs precedes @a rhs. False otherwise. */ template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 212e8: 55 push %rbp 212e9: 48 89 e5 mov %rsp,%rbp 212ec: 48 83 ec 10 sub $0x10,%rsp 212f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 212f4: 48 89 75 f0 mov %rsi,-0x10(%rbp) const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) < 0; } 212f8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 212fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 21300: 48 89 d6 mov %rdx,%rsi 21303: 48 89 c7 mov %rax,%rdi 21306: e8 e5 1d ff ff callq 130f0 <_ZNKSs7compareERKSs@plt> 2130b: c1 e8 1f shr $0x1f,%eax 2130e: c9 leaveq 2130f: c3 retq 0000000000021310 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_>: typename _Compare, typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 21310: 55 push %rbp 21311: 48 89 e5 mov %rsp,%rbp 21314: 53 push %rbx 21315: 48 83 ec 78 sub $0x78,%rsp 21319: 48 89 7d a8 mov %rdi,-0x58(%rbp) 2131d: 48 89 75 a0 mov %rsi,-0x60(%rbp) 21321: 48 89 55 98 mov %rdx,-0x68(%rbp) #else _M_insert_unique_(const_iterator __position, const _Val& __v) #endif { // end() if (__position._M_node == _M_end()) 21325: 48 8b 5d a0 mov -0x60(%rbp),%rbx 21329: 48 8b 45 a8 mov -0x58(%rbp),%rax 2132d: 48 89 c7 mov %rax,%rdi 21330: e8 0b 16 ff ff callq 12940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 21335: 48 39 c3 cmp %rax,%rbx 21338: 0f 94 c0 sete %al 2133b: 84 c0 test %al,%al 2133d: 0f 84 c8 00 00 00 je 2140b <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0xfb> { if (size() > 0 21343: 48 8b 45 a8 mov -0x58(%rbp),%rax 21347: 48 89 c7 mov %rax,%rdi 2134a: e8 71 19 ff ff callq 12cc0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv@plt> 2134f: 48 85 c0 test %rax,%rax 21352: 74 4d je 213a1 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x91> 21354: 48 8b 55 98 mov -0x68(%rbp),%rdx 21358: 48 8d 45 eb lea -0x15(%rbp),%rax 2135c: 48 89 d6 mov %rdx,%rsi 2135f: 48 89 c7 mov %rax,%rdi 21362: e8 59 16 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21367: 48 89 c3 mov %rax,%rbx 2136a: 48 8b 45 a8 mov -0x58(%rbp),%rax 2136e: 48 89 c7 mov %rax,%rdi 21371: e8 5a 2e ff ff callq 141d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 21376: 48 8b 00 mov (%rax),%rax 21379: 48 89 c7 mov %rax,%rdi 2137c: e8 8f 22 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21381: 48 89 c1 mov %rax,%rcx 21384: 48 8b 45 a8 mov -0x58(%rbp),%rax 21388: 48 89 da mov %rbx,%rdx 2138b: 48 89 ce mov %rcx,%rsi 2138e: 48 89 c7 mov %rax,%rdi 21391: e8 9a 16 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21396: 84 c0 test %al,%al 21398: 74 07 je 213a1 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x91> 2139a: b8 01 00 00 00 mov $0x1,%eax 2139f: eb 05 jmp 213a6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x96> 213a1: b8 00 00 00 00 mov $0x0,%eax 213a6: 84 c0 test %al,%al 213a8: 74 29 je 213d3 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0xc3> && _M_impl._M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v))) return _M_insert_(0, _M_rightmost(), _GLIBCXX_FORWARD(_Arg, __v)); 213aa: 48 8b 45 a8 mov -0x58(%rbp),%rax 213ae: 48 89 c7 mov %rax,%rdi 213b1: e8 1a 2e ff ff callq 141d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 213b6: 48 8b 10 mov (%rax),%rdx 213b9: 48 8b 4d 98 mov -0x68(%rbp),%rcx 213bd: 48 8b 45 a8 mov -0x58(%rbp),%rax 213c1: be 00 00 00 00 mov $0x0,%esi 213c6: 48 89 c7 mov %rax,%rdi 213c9: e8 e2 1f ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 213ce: e9 03 03 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 213d3: 48 8b 55 98 mov -0x68(%rbp),%rdx 213d7: 48 8b 45 a8 mov -0x58(%rbp),%rax 213db: 48 89 d6 mov %rdx,%rsi 213de: 48 89 c7 mov %rax,%rdi 213e1: e8 1a 30 ff ff callq 14400 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 213e6: 48 89 c1 mov %rax,%rcx 213e9: 89 d0 mov %edx,%eax 213eb: 48 89 4d 80 mov %rcx,-0x80(%rbp) 213ef: 89 45 88 mov %eax,-0x78(%rbp) 213f2: 48 8b 45 80 mov -0x80(%rbp),%rax 213f6: 48 89 45 b0 mov %rax,-0x50(%rbp) 213fa: 48 8b 45 88 mov -0x78(%rbp),%rax 213fe: 48 89 45 b8 mov %rax,-0x48(%rbp) 21402: 48 8b 45 b0 mov -0x50(%rbp),%rax 21406: e9 cb 02 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else if (_M_impl._M_key_compare(_KeyOfValue()(__v), 2140b: 48 8b 45 a0 mov -0x60(%rbp),%rax 2140f: 48 89 c7 mov %rax,%rdi 21412: e8 f9 21 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21417: 48 89 c3 mov %rax,%rbx 2141a: 48 8b 55 98 mov -0x68(%rbp),%rdx 2141e: 48 8d 45 ec lea -0x14(%rbp),%rax 21422: 48 89 d6 mov %rdx,%rsi 21425: 48 89 c7 mov %rax,%rdi 21428: e8 93 15 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 2142d: 48 89 c1 mov %rax,%rcx 21430: 48 8b 45 a8 mov -0x58(%rbp),%rax 21434: 48 89 da mov %rbx,%rdx 21437: 48 89 ce mov %rcx,%rsi 2143a: 48 89 c7 mov %rax,%rdi 2143d: e8 ee 15 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21442: 84 c0 test %al,%al 21444: 0f 84 2d 01 00 00 je 21577 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x267> _S_key(__position._M_node))) { // First, try before... const_iterator __before = __position; 2144a: 48 8b 45 a0 mov -0x60(%rbp),%rax 2144e: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_leftmost()) // begin() 21452: 48 8b 5d a0 mov -0x60(%rbp),%rbx 21456: 48 8b 45 a8 mov -0x58(%rbp),%rax 2145a: 48 89 c7 mov %rax,%rdi 2145d: e8 5e 1d ff ff callq 131c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 21462: 48 8b 00 mov (%rax),%rax 21465: 48 39 c3 cmp %rax,%rbx 21468: 0f 94 c0 sete %al 2146b: 84 c0 test %al,%al 2146d: 74 39 je 214a8 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x198> return _M_insert_(_M_leftmost(), _M_leftmost(), _GLIBCXX_FORWARD(_Arg, __v)); 2146f: 48 8b 45 a8 mov -0x58(%rbp),%rax 21473: 48 89 c7 mov %rax,%rdi 21476: e8 45 1d ff ff callq 131c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 2147b: 48 8b 18 mov (%rax),%rbx 2147e: 48 8b 45 a8 mov -0x58(%rbp),%rax 21482: 48 89 c7 mov %rax,%rdi 21485: e8 36 1d ff ff callq 131c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 2148a: 48 8b 30 mov (%rax),%rsi 2148d: 48 8b 55 98 mov -0x68(%rbp),%rdx 21491: 48 8b 45 a8 mov -0x58(%rbp),%rax 21495: 48 89 d1 mov %rdx,%rcx 21498: 48 89 da mov %rbx,%rdx 2149b: 48 89 c7 mov %rax,%rdi 2149e: e8 0d 1f ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 214a3: e9 2e 02 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), 214a8: 48 8b 55 98 mov -0x68(%rbp),%rdx 214ac: 48 8d 45 ed lea -0x13(%rbp),%rax 214b0: 48 89 d6 mov %rdx,%rsi 214b3: 48 89 c7 mov %rax,%rdi 214b6: e8 05 15 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 214bb: 48 89 c3 mov %rax,%rbx 214be: 48 8d 45 e0 lea -0x20(%rbp),%rax 214c2: 48 89 c7 mov %rax,%rdi 214c5: e8 36 17 ff ff callq 12c00 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv@plt> 214ca: 48 8b 00 mov (%rax),%rax 214cd: 48 89 c7 mov %rax,%rdi 214d0: e8 3b 21 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 214d5: 48 89 c1 mov %rax,%rcx 214d8: 48 8b 45 a8 mov -0x58(%rbp),%rax 214dc: 48 89 da mov %rbx,%rdx 214df: 48 89 ce mov %rcx,%rsi 214e2: 48 89 c7 mov %rax,%rdi 214e5: e8 46 15 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 214ea: 84 c0 test %al,%al 214ec: 74 51 je 2153f <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x22f> _KeyOfValue()(__v))) { if (_S_right(__before._M_node) == 0) 214ee: 48 8b 45 e0 mov -0x20(%rbp),%rax 214f2: 48 89 c7 mov %rax,%rdi 214f5: e8 e6 2f ff ff callq 144e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 214fa: 48 85 c0 test %rax,%rax 214fd: 0f 94 c0 sete %al 21500: 84 c0 test %al,%al 21502: 74 1e je 21522 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x212> return _M_insert_(0, __before._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 21504: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21508: 48 8b 4d 98 mov -0x68(%rbp),%rcx 2150c: 48 8b 45 a8 mov -0x58(%rbp),%rax 21510: be 00 00 00 00 mov $0x0,%esi 21515: 48 89 c7 mov %rax,%rdi 21518: e8 93 1e ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 2151d: e9 b4 01 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> else return _M_insert_(__position._M_node, __position._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 21522: 48 8b 55 a0 mov -0x60(%rbp),%rdx 21526: 48 8b 75 a0 mov -0x60(%rbp),%rsi 2152a: 48 8b 4d 98 mov -0x68(%rbp),%rcx 2152e: 48 8b 45 a8 mov -0x58(%rbp),%rax 21532: 48 89 c7 mov %rax,%rdi 21535: e8 76 1e ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 2153a: e9 97 01 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 2153f: 48 8b 55 98 mov -0x68(%rbp),%rdx 21543: 48 8b 45 a8 mov -0x58(%rbp),%rax 21547: 48 89 d6 mov %rdx,%rsi 2154a: 48 89 c7 mov %rax,%rdi 2154d: e8 ae 2e ff ff callq 14400 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 21552: 48 89 c1 mov %rax,%rcx 21555: 89 d0 mov %edx,%eax 21557: 48 89 4d 80 mov %rcx,-0x80(%rbp) 2155b: 89 45 88 mov %eax,-0x78(%rbp) 2155e: 48 8b 45 80 mov -0x80(%rbp),%rax 21562: 48 89 45 c0 mov %rax,-0x40(%rbp) 21566: 48 8b 45 88 mov -0x78(%rbp),%rax 2156a: 48 89 45 c8 mov %rax,-0x38(%rbp) 2156e: 48 8b 45 c0 mov -0x40(%rbp),%rax 21572: e9 5f 01 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else if (_M_impl._M_key_compare(_S_key(__position._M_node), 21577: 48 8b 55 98 mov -0x68(%rbp),%rdx 2157b: 48 8d 45 ee lea -0x12(%rbp),%rax 2157f: 48 89 d6 mov %rdx,%rsi 21582: 48 89 c7 mov %rax,%rdi 21585: e8 36 14 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 2158a: 48 89 c3 mov %rax,%rbx 2158d: 48 8b 45 a0 mov -0x60(%rbp),%rax 21591: 48 89 c7 mov %rax,%rdi 21594: e8 77 20 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21599: 48 89 c1 mov %rax,%rcx 2159c: 48 8b 45 a8 mov -0x58(%rbp),%rax 215a0: 48 89 da mov %rbx,%rdx 215a3: 48 89 ce mov %rcx,%rsi 215a6: 48 89 c7 mov %rax,%rdi 215a9: e8 82 14 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 215ae: 84 c0 test %al,%al 215b0: 0f 84 14 01 00 00 je 216ca <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3ba> _KeyOfValue()(__v))) { // ... then try after. const_iterator __after = __position; 215b6: 48 8b 45 a0 mov -0x60(%rbp),%rax 215ba: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_rightmost()) 215be: 48 8b 5d a0 mov -0x60(%rbp),%rbx 215c2: 48 8b 45 a8 mov -0x58(%rbp),%rax 215c6: 48 89 c7 mov %rax,%rdi 215c9: e8 02 2c ff ff callq 141d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 215ce: 48 8b 00 mov (%rax),%rax 215d1: 48 39 c3 cmp %rax,%rbx 215d4: 0f 94 c0 sete %al 215d7: 84 c0 test %al,%al 215d9: 74 29 je 21604 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x2f4> return _M_insert_(0, _M_rightmost(), _GLIBCXX_FORWARD(_Arg, __v)); 215db: 48 8b 45 a8 mov -0x58(%rbp),%rax 215df: 48 89 c7 mov %rax,%rdi 215e2: e8 e9 2b ff ff callq 141d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 215e7: 48 8b 10 mov (%rax),%rdx 215ea: 48 8b 4d 98 mov -0x68(%rbp),%rcx 215ee: 48 8b 45 a8 mov -0x58(%rbp),%rax 215f2: be 00 00 00 00 mov $0x0,%esi 215f7: 48 89 c7 mov %rax,%rdi 215fa: e8 b1 1d ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 215ff: e9 d2 00 00 00 jmpq 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> else if (_M_impl._M_key_compare(_KeyOfValue()(__v), 21604: 48 8d 45 e0 lea -0x20(%rbp),%rax 21608: 48 89 c7 mov %rax,%rdi 2160b: e8 10 16 ff ff callq 12c20 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv@plt> 21610: 48 8b 00 mov (%rax),%rax 21613: 48 89 c7 mov %rax,%rdi 21616: e8 f5 1f ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 2161b: 48 89 c3 mov %rax,%rbx 2161e: 48 8b 55 98 mov -0x68(%rbp),%rdx 21622: 48 8d 45 ef lea -0x11(%rbp),%rax 21626: 48 89 d6 mov %rdx,%rsi 21629: 48 89 c7 mov %rax,%rdi 2162c: e8 8f 13 ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21631: 48 89 c1 mov %rax,%rcx 21634: 48 8b 45 a8 mov -0x58(%rbp),%rax 21638: 48 89 da mov %rbx,%rdx 2163b: 48 89 ce mov %rcx,%rsi 2163e: 48 89 c7 mov %rax,%rdi 21641: e8 ea 13 ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21646: 84 c0 test %al,%al 21648: 74 4b je 21695 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x385> _S_key((++__after)._M_node))) { if (_S_right(__position._M_node) == 0) 2164a: 48 8b 45 a0 mov -0x60(%rbp),%rax 2164e: 48 89 c7 mov %rax,%rdi 21651: e8 8a 2e ff ff callq 144e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 21656: 48 85 c0 test %rax,%rax 21659: 0f 94 c0 sete %al 2165c: 84 c0 test %al,%al 2165e: 74 1b je 2167b <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x36b> return _M_insert_(0, __position._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 21660: 48 8b 55 a0 mov -0x60(%rbp),%rdx 21664: 48 8b 4d 98 mov -0x68(%rbp),%rcx 21668: 48 8b 45 a8 mov -0x58(%rbp),%rax 2166c: be 00 00 00 00 mov $0x0,%esi 21671: 48 89 c7 mov %rax,%rdi 21674: e8 37 1d ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21679: eb 5b jmp 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> else return _M_insert_(__after._M_node, __after._M_node, _GLIBCXX_FORWARD(_Arg, __v)); 2167b: 48 8b 55 e0 mov -0x20(%rbp),%rdx 2167f: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21683: 48 8b 4d 98 mov -0x68(%rbp),%rcx 21687: 48 8b 45 a8 mov -0x58(%rbp),%rax 2168b: 48 89 c7 mov %rax,%rdi 2168e: e8 1d 1d ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21693: eb 41 jmp 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else return _M_insert_unique(_GLIBCXX_FORWARD(_Arg, __v)).first; 21695: 48 8b 55 98 mov -0x68(%rbp),%rdx 21699: 48 8b 45 a8 mov -0x58(%rbp),%rax 2169d: 48 89 d6 mov %rdx,%rsi 216a0: 48 89 c7 mov %rax,%rdi 216a3: e8 58 2d ff ff callq 14400 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 216a8: 48 89 c1 mov %rax,%rcx 216ab: 89 d0 mov %edx,%eax 216ad: 48 89 4d 80 mov %rcx,-0x80(%rbp) 216b1: 89 45 88 mov %eax,-0x78(%rbp) 216b4: 48 8b 45 80 mov -0x80(%rbp),%rax 216b8: 48 89 45 d0 mov %rax,-0x30(%rbp) 216bc: 48 8b 45 88 mov -0x78(%rbp),%rax 216c0: 48 89 45 d8 mov %rax,-0x28(%rbp) 216c4: 48 8b 45 d0 mov -0x30(%rbp),%rax 216c8: eb 0c jmp 216d6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else // Equivalent keys. return __position._M_const_cast(); 216ca: 48 8d 45 a0 lea -0x60(%rbp),%rax 216ce: 48 89 c7 mov %rax,%rdi 216d1: e8 1a 2b ff ff callq 141f0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEE13_M_const_castEv@plt> } 216d6: 48 83 c4 78 add $0x78,%rsp 216da: 5b pop %rbx 216db: 5d pop %rbp 216dc: c3 retq 216dd: 90 nop 00000000000216de <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1Ev>: { typename _Tp_alloc_type::pointer _M_start; typename _Tp_alloc_type::pointer _M_finish; typename _Tp_alloc_type::pointer _M_end_of_storage; _Vector_impl() 216de: 55 push %rbp 216df: 48 89 e5 mov %rsp,%rbp 216e2: 48 83 ec 10 sub $0x10,%rsp 216e6: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) 216ea: 48 8b 45 f8 mov -0x8(%rbp),%rax 216ee: 48 89 c7 mov %rax,%rdi 216f1: e8 8a 22 ff ff callq 13980 <_ZNSaISsEC2Ev@plt> 216f6: 48 8b 45 f8 mov -0x8(%rbp),%rax 216fa: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 21701: 48 8b 45 f8 mov -0x8(%rbp),%rax 21705: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) 2170c: 00 2170d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21711: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 21718: 00 { } 21719: c9 leaveq 2171a: c3 retq 2171b: 90 nop 000000000002171c <_ZNSaISsED1Ev>: 2171c: 55 push %rbp 2171d: 48 89 e5 mov %rsp,%rbp 21720: 48 83 ec 10 sub $0x10,%rsp 21724: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21728: 48 8b 45 f8 mov -0x8(%rbp),%rax 2172c: 48 89 c7 mov %rax,%rdi 2172f: e8 6c 1d ff ff callq 134a0 <_ZN9__gnu_cxx13new_allocatorISsED2Ev@plt> 21734: c9 leaveq 21735: c3 retq 0000000000021736 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm>: typename _Tp_alloc_type::pointer _M_allocate(size_t __n) { return __n != 0 ? _M_impl.allocate(__n) : 0; } void _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n) 21736: 55 push %rbp 21737: 48 89 e5 mov %rsp,%rbp 2173a: 48 83 ec 20 sub $0x20,%rsp 2173e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21742: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21746: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__p) 2174a: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 2174f: 74 17 je 21768 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm+0x32> _M_impl.deallocate(__p, __n); 21751: 48 8b 45 f8 mov -0x8(%rbp),%rax 21755: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21759: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2175d: 48 89 ce mov %rcx,%rsi 21760: 48 89 c7 mov %rax,%rdi 21763: e8 58 22 ff ff callq 139c0 <_ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm@plt> } 21768: c9 leaveq 21769: c3 retq 000000000002176a <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_>: #endif { return __lhs.base() - __rhs.base(); } template inline typename __normal_iterator<_Iterator, _Container>::difference_type operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 2176a: 55 push %rbp 2176b: 48 89 e5 mov %rsp,%rbp 2176e: 53 push %rbx 2176f: 48 83 ec 18 sub $0x18,%rsp 21773: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21777: 48 89 75 e0 mov %rsi,-0x20(%rbp) const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } 2177b: 48 8b 45 e8 mov -0x18(%rbp),%rax 2177f: 48 89 c7 mov %rax,%rdi 21782: e8 59 19 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 21787: 48 8b 00 mov (%rax),%rax 2178a: 48 89 c3 mov %rax,%rbx 2178d: 48 8b 45 e0 mov -0x20(%rbp),%rax 21791: 48 89 c7 mov %rax,%rdi 21794: e8 47 19 ff ff callq 130e0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 21799: 48 8b 00 mov (%rax),%rax 2179c: 48 89 da mov %rbx,%rdx 2179f: 48 29 c2 sub %rax,%rdx 217a2: 48 89 d0 mov %rdx,%rax 217a5: 48 c1 f8 03 sar $0x3,%rax 217a9: 48 83 c4 18 add $0x18,%rsp 217ad: 5b pop %rbx 217ae: 5d pop %rbp 217af: c3 retq 00000000000217b0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv>: _Container>::__type>& __i) : _M_current(__i.base()) { } // Forward iterator requirements reference operator*() const 217b0: 55 push %rbp 217b1: 48 89 e5 mov %rsp,%rbp 217b4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *_M_current; } 217b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 217bc: 48 8b 00 mov (%rax),%rax 217bf: 5d pop %rbp 217c0: c3 retq 00000000000217c1 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_>: * @param rhs C string. * @return True if @a lhs.compare(@a rhs) == 0. False otherwise. */ template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 217c1: 55 push %rbp 217c2: 48 89 e5 mov %rsp,%rbp 217c5: 48 83 ec 10 sub $0x10,%rsp 217c9: 48 89 7d f8 mov %rdi,-0x8(%rbp) 217cd: 48 89 75 f0 mov %rsi,-0x10(%rbp) const _CharT* __rhs) { return __lhs.compare(__rhs) == 0; } 217d1: 48 8b 55 f0 mov -0x10(%rbp),%rdx 217d5: 48 8b 45 f8 mov -0x8(%rbp),%rax 217d9: 48 89 d6 mov %rdx,%rsi 217dc: 48 89 c7 mov %rax,%rdi 217df: e8 2c 21 ff ff callq 13910 <_ZNKSs7compareEPKc@plt> 217e4: 85 c0 test %eax,%eax 217e6: 0f 94 c0 sete %al 217e9: c9 leaveq 217ea: c3 retq 217eb: 90 nop 00000000000217ec <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv>: pointer operator->() const { return _M_current; } __normal_iterator& operator++() 217ec: 55 push %rbp 217ed: 48 89 e5 mov %rsp,%rbp 217f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { ++_M_current; 217f4: 48 8b 45 f8 mov -0x8(%rbp),%rax 217f8: 48 8b 00 mov (%rax),%rax 217fb: 48 8d 50 08 lea 0x8(%rax),%rdx 217ff: 48 8b 45 f8 mov -0x8(%rbp),%rax 21803: 48 89 10 mov %rdx,(%rax) return *this; 21806: 48 8b 45 f8 mov -0x8(%rbp),%rax } 2180a: 5d pop %rbp 2180b: c3 retq 000000000002180c <_ZSt13copy_backwardIPSsS0_ET0_T_S2_S1_>: * Result may not be in the range [first,last). Use copy instead. Note * that the start of the output range may overlap [first,last). */ template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 2180c: 55 push %rbp 2180d: 48 89 e5 mov %rsp,%rbp 21810: 53 push %rbx 21811: 48 83 ec 28 sub $0x28,%rsp 21815: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21819: 48 89 75 e0 mov %rsi,-0x20(%rbp) 2181d: 48 89 55 d8 mov %rdx,-0x28(%rbp) typename iterator_traits<_BI2>::value_type>) __glibcxx_requires_valid_range(__first, __last); return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> (std::__miter_base(__first), std::__miter_base(__last), __result)); 21821: 48 8b 45 e0 mov -0x20(%rbp),%rax 21825: 48 89 c7 mov %rax,%rdi 21828: e8 93 28 ff ff callq 140c0 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt> 2182d: 48 89 c3 mov %rax,%rbx 21830: 48 8b 45 e8 mov -0x18(%rbp),%rax 21834: 48 89 c7 mov %rax,%rdi 21837: e8 84 28 ff ff callq 140c0 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt> 2183c: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21840: 48 89 de mov %rbx,%rsi 21843: 48 89 c7 mov %rax,%rdi 21846: e8 65 24 ff ff callq 13cb0 <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_@plt> } 2184b: 48 83 c4 28 add $0x28,%rsp 2184f: 5b pop %rbx 21850: 5d pop %rbp 21851: c3 retq 0000000000021852 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc>: _M_insert_aux(iterator __position, _Args&&... __args); #endif // Called by the latter. size_type _M_check_len(size_type __n, const char* __s) const 21852: 55 push %rbp 21853: 48 89 e5 mov %rsp,%rbp 21856: 53 push %rbx 21857: 48 83 ec 38 sub $0x38,%rsp 2185b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 2185f: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21863: 48 89 55 c8 mov %rdx,-0x38(%rbp) { if (max_size() - size() < __n) 21867: 48 8b 45 d8 mov -0x28(%rbp),%rax 2186b: 48 89 c7 mov %rax,%rdi 2186e: e8 0d 11 ff ff callq 12980 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 21873: 48 89 c3 mov %rax,%rbx 21876: 48 8b 45 d8 mov -0x28(%rbp),%rax 2187a: 48 89 c7 mov %rax,%rdi 2187d: e8 ae 21 ff ff callq 13a30 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 21882: 48 89 da mov %rbx,%rdx 21885: 48 29 c2 sub %rax,%rdx 21888: 48 8b 45 d0 mov -0x30(%rbp),%rax 2188c: 48 39 c2 cmp %rax,%rdx 2188f: 0f 92 c0 setb %al 21892: 84 c0 test %al,%al 21894: 74 0c je 218a2 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0x50> __throw_length_error(__N(__s)); 21896: 48 8b 45 c8 mov -0x38(%rbp),%rax 2189a: 48 89 c7 mov %rax,%rdi 2189d: e8 4e 10 ff ff callq 128f0 <_ZSt20__throw_length_errorPKc@plt> const size_type __len = size() + std::max(size(), __n); 218a2: 48 8b 45 d8 mov -0x28(%rbp),%rax 218a6: 48 89 c7 mov %rax,%rdi 218a9: e8 82 21 ff ff callq 13a30 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 218ae: 48 89 c3 mov %rax,%rbx 218b1: 48 8b 45 d8 mov -0x28(%rbp),%rax 218b5: 48 89 c7 mov %rax,%rdi 218b8: e8 73 21 ff ff callq 13a30 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 218bd: 48 89 45 e0 mov %rax,-0x20(%rbp) 218c1: 48 8d 55 d0 lea -0x30(%rbp),%rdx 218c5: 48 8d 45 e0 lea -0x20(%rbp),%rax 218c9: 48 89 d6 mov %rdx,%rsi 218cc: 48 89 c7 mov %rax,%rdi 218cf: e8 1c 28 ff ff callq 140f0 <_ZSt3maxImERKT_S2_S2_@plt> 218d4: 48 8b 00 mov (%rax),%rax 218d7: 48 01 d8 add %rbx,%rax 218da: 48 89 45 e8 mov %rax,-0x18(%rbp) return (__len < size() || __len > max_size()) ? max_size() : __len; 218de: 48 8b 45 d8 mov -0x28(%rbp),%rax 218e2: 48 89 c7 mov %rax,%rdi 218e5: e8 46 21 ff ff callq 13a30 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 218ea: 48 3b 45 e8 cmp -0x18(%rbp),%rax 218ee: 77 12 ja 21902 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xb0> 218f0: 48 8b 45 d8 mov -0x28(%rbp),%rax 218f4: 48 89 c7 mov %rax,%rdi 218f7: e8 84 10 ff ff callq 12980 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 218fc: 48 3b 45 e8 cmp -0x18(%rbp),%rax 21900: 73 0e jae 21910 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xbe> 21902: 48 8b 45 d8 mov -0x28(%rbp),%rax 21906: 48 89 c7 mov %rax,%rdi 21909: e8 72 10 ff ff callq 12980 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 2190e: eb 04 jmp 21914 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xc2> 21910: 48 8b 45 e8 mov -0x18(%rbp),%rax } 21914: 48 83 c4 38 add $0x38,%rsp 21918: 5b pop %rbx 21919: 5d pop %rbp 2191a: c3 retq 2191b: 90 nop 000000000002191c <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm>: public: _Vector_impl _M_impl; typename _Tp_alloc_type::pointer _M_allocate(size_t __n) 2191c: 55 push %rbp 2191d: 48 89 e5 mov %rsp,%rbp 21920: 48 83 ec 10 sub $0x10,%rsp 21924: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21928: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __n != 0 ? _M_impl.allocate(__n) : 0; } 2192c: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 21931: 74 1a je 2194d <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm+0x31> 21933: 48 8b 45 f8 mov -0x8(%rbp),%rax 21937: 48 8b 4d f0 mov -0x10(%rbp),%rcx 2193b: ba 00 00 00 00 mov $0x0,%edx 21940: 48 89 ce mov %rcx,%rsi 21943: 48 89 c7 mov %rax,%rdi 21946: e8 a5 1d ff ff callq 136f0 <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv@plt> 2194b: eb 05 jmp 21952 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm+0x36> 2194d: b8 00 00 00 00 mov $0x0,%eax 21952: c9 leaveq 21953: c3 retq 0000000000021954 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv>: public: typedef _Alloc allocator_type; _Tp_alloc_type& _M_get_Tp_allocator() 21954: 55 push %rbp 21955: 48 89 e5 mov %rsp,%rbp 21958: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 2195c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21960: 5d pop %rbp 21961: c3 retq 0000000000021962 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_>: { return std::uninitialized_copy(__first, __last, __result); } template inline _ForwardIterator __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 21962: 55 push %rbp 21963: 48 89 e5 mov %rsp,%rbp 21966: 48 83 ec 20 sub $0x20,%rsp 2196a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2196e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21972: 48 89 55 e8 mov %rdx,-0x18(%rbp) 21976: 48 89 4d e0 mov %rcx,-0x20(%rbp) _ForwardIterator __result, _Allocator& __alloc) { return std::__uninitialized_copy_a(_GLIBCXX_MAKE_MOVE_ITERATOR(__first), _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result, __alloc); 2197a: 48 8b 4d e0 mov -0x20(%rbp),%rcx 2197e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21982: 48 8b 75 f0 mov -0x10(%rbp),%rsi 21986: 48 8b 45 f8 mov -0x8(%rbp),%rax 2198a: 48 89 c7 mov %rax,%rdi 2198d: e8 ce 2a ff ff callq 14460 <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E@plt> } 21992: c9 leaveq 21993: c3 retq 0000000000021994 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 21994: 55 push %rbp 21995: 48 89 e5 mov %rsp,%rbp 21998: 48 83 ec 10 sub $0x10,%rsp 2199c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 219a0: 48 89 75 f0 mov %rsi,-0x10(%rbp) 219a4: 48 8b 45 f0 mov -0x10(%rbp),%rax 219a8: 48 89 c7 mov %rax,%rdi 219ab: e8 80 1a ff ff callq 13430 <_ZNSsD1Ev@plt> 219b0: c9 leaveq 219b1: c3 retq 00000000000219b2 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E>: __alloc.destroy(std::__addressof(*__first)); } template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last, 219b2: 55 push %rbp 219b3: 48 89 e5 mov %rsp,%rbp 219b6: 48 83 ec 20 sub $0x20,%rsp 219ba: 48 89 7d f8 mov %rdi,-0x8(%rbp) 219be: 48 89 75 f0 mov %rsi,-0x10(%rbp) 219c2: 48 89 55 e8 mov %rdx,-0x18(%rbp) allocator<_Tp>&) { _Destroy(__first, __last); 219c6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 219ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 219ce: 48 89 d6 mov %rdx,%rsi 219d1: 48 89 c7 mov %rax,%rdi 219d4: e8 17 2d ff ff callq 146f0 <_ZSt8_DestroyIPSsEvT_S1_@plt> } 219d9: c9 leaveq 219da: c3 retq 219db: 90 nop 00000000000219dc <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 219dc: 55 push %rbp 219dd: 48 89 e5 mov %rsp,%rbp 219e0: 48 83 ec 10 sub $0x10,%rsp 219e4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 219e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 219ec: 48 89 c7 mov %rax,%rdi 219ef: e8 4c 18 ff ff callq 13240 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt> 219f4: c9 leaveq 219f5: c3 retq 00000000000219f6 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt13_Rb_tree_nodeIS1_E>: _Const_Link_type _M_end() const { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); } static const_reference _S_value(_Const_Link_type __x) 219f6: 55 push %rbp 219f7: 48 89 e5 mov %rsp,%rbp 219fa: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 219fe: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a02: 48 83 c0 20 add $0x20,%rax 21a06: 5d pop %rbp 21a07: c3 retq 0000000000021a08 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt18_Rb_tree_node_base>: static _Const_Link_type _S_right(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_right); } static const_reference _S_value(_Const_Base_ptr __x) 21a08: 55 push %rbp 21a09: 48 89 e5 mov %rsp,%rbp 21a0c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 21a10: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a14: 48 83 c0 20 add $0x20,%rax 21a18: 5d pop %rbp 21a19: c3 retq 0000000000021a1a <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC1Ev>: 21a1a: 55 push %rbp 21a1b: 48 89 e5 mov %rsp,%rbp 21a1e: 48 83 ec 10 sub $0x10,%rsp 21a22: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a26: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a2a: 48 89 c7 mov %rax,%rdi 21a2d: e8 4e 18 ff ff callq 13280 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt> 21a32: c9 leaveq 21a33: c3 retq 0000000000021a34 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 21a34: 55 push %rbp 21a35: 48 89 e5 mov %rsp,%rbp 21a38: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 21a3c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a40: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 21a47: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a4b: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 21a52: 00 this->_M_header._M_left = &this->_M_header; 21a53: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a57: 48 8d 50 08 lea 0x8(%rax),%rdx 21a5b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a5f: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 21a63: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a67: 48 8d 50 08 lea 0x8(%rax),%rdx 21a6b: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a6f: 48 89 50 20 mov %rdx,0x20(%rax) } 21a73: 5d pop %rbp 21a74: c3 retq 21a75: 90 nop 0000000000021a76 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv>: const _Node_allocator& _M_get_Node_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const 21a76: 55 push %rbp 21a77: 48 89 e5 mov %rsp,%rbp 21a7a: 48 83 ec 10 sub $0x10,%rsp 21a7e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a82: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 21a86: 48 8b 45 f0 mov -0x10(%rbp),%rax 21a8a: 48 89 c7 mov %rax,%rdi 21a8d: e8 4e 26 ff ff callq 140e0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE21_M_get_Node_allocatorEv@plt> 21a92: 48 89 c2 mov %rax,%rdx 21a95: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a99: 48 89 d6 mov %rdx,%rsi 21a9c: 48 89 c7 mov %rax,%rdi 21a9f: e8 7c 16 ff ff callq 13120 <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E@plt> 21aa4: 48 8b 45 f8 mov -0x8(%rbp),%rax 21aa8: c9 leaveq 21aa9: c3 retq 0000000000021aaa <_ZNSaISt4pairIKSsP4XLogEED1Ev>: : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 21aaa: 55 push %rbp 21aab: 48 89 e5 mov %rsp,%rbp 21aae: 48 83 ec 10 sub $0x10,%rsp 21ab2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21ab6: 48 8b 45 f8 mov -0x8(%rbp),%rax 21aba: 48 89 c7 mov %rax,%rdi 21abd: e8 ee 10 ff ff callq 12bb0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED2Ev@plt> 21ac2: c9 leaveq 21ac3: c3 retq 0000000000021ac4 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 21ac4: 55 push %rbp 21ac5: 48 89 e5 mov %rsp,%rbp 21ac8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 21acc: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21ad0: 5d pop %rbp 21ad1: c3 retq 0000000000021ad2 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_>: 21ad2: 55 push %rbp 21ad3: 48 89 e5 mov %rsp,%rbp 21ad6: 48 83 ec 10 sub $0x10,%rsp 21ada: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21ade: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21ae2: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ae6: 48 89 c7 mov %rax,%rdi 21ae9: e8 32 13 ff ff callq 12e20 <_ZNSt4pairIKSsP4XLogED1Ev@plt> 21aee: c9 leaveq 21aef: c3 retq 0000000000021af0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E>: _Link_type _M_get_node() { return _M_impl._Node_allocator::allocate(1); } void _M_put_node(_Link_type __p) 21af0: 55 push %rbp 21af1: 48 89 e5 mov %rsp,%rbp 21af4: 48 83 ec 10 sub $0x10,%rsp 21af8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21afc: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 21b00: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b04: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21b08: ba 01 00 00 00 mov $0x1,%edx 21b0d: 48 89 ce mov %rcx,%rsi 21b10: 48 89 c7 mov %rax,%rdi 21b13: e8 58 22 ff ff callq 13d70 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE10deallocateEPS7_m@plt> 21b18: c9 leaveq 21b19: c3 retq 0000000000021b1a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E>: static const_reference _S_value(_Const_Link_type __x) { return __x->_M_value_field; } static const _Key& _S_key(_Const_Link_type __x) 21b1a: 55 push %rbp 21b1b: 48 89 e5 mov %rsp,%rbp 21b1e: 48 83 ec 20 sub $0x20,%rsp 21b22: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 21b26: 48 8b 45 e8 mov -0x18(%rbp),%rax 21b2a: 48 89 c7 mov %rax,%rdi 21b2d: e8 ee 0d ff ff callq 12920 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt13_Rb_tree_nodeIS4_E@plt> 21b32: 48 89 c2 mov %rax,%rdx 21b35: 48 8d 45 ff lea -0x1(%rbp),%rax 21b39: 48 89 d6 mov %rdx,%rsi 21b3c: 48 89 c7 mov %rax,%rdi 21b3f: e8 7c 0e ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21b44: c9 leaveq 21b45: c3 retq 0000000000021b46 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt18_Rb_tree_node_base>: static _Const_Link_type _S_right(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_right); } static const_reference _S_value(_Const_Base_ptr __x) 21b46: 55 push %rbp 21b47: 48 89 e5 mov %rsp,%rbp 21b4a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 21b4e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b52: 48 83 c0 20 add $0x20,%rax 21b56: 5d pop %rbp 21b57: c3 retq 0000000000021b58 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_>: typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const 21b58: 55 push %rbp 21b59: 48 89 e5 mov %rsp,%rbp 21b5c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b60: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x.first; } 21b64: 48 8b 45 f0 mov -0x10(%rbp),%rax 21b68: 5d pop %rbp 21b69: c3 retq 0000000000021b6a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv>: _Const_Base_ptr _M_leftmost() const { return this->_M_impl._M_header._M_left; } _Base_ptr& _M_rightmost() 21b6a: 55 push %rbp 21b6b: 48 89 e5 mov %rsp,%rbp 21b6e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 21b72: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b76: 48 83 c0 20 add $0x20,%rax 21b7a: 5d pop %rbp 21b7b: c3 retq 0000000000021b7c <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv>: bool empty() const { return _M_impl._M_node_count == 0; } size_type size() const 21b7c: 55 push %rbp 21b7d: 48 89 e5 mov %rsp,%rbp 21b80: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_node_count; } 21b84: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b88: 48 8b 40 28 mov 0x28(%rax),%rax 21b8c: 5d pop %rbp 21b8d: c3 retq 0000000000021b8e <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_>: typename _Compare, typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 21b8e: 55 push %rbp 21b8f: 48 89 e5 mov %rsp,%rbp 21b92: 53 push %rbx 21b93: 48 83 ec 48 sub $0x48,%rsp 21b97: 48 89 7d c8 mov %rdi,-0x38(%rbp) 21b9b: 48 89 75 c0 mov %rsi,-0x40(%rbp) 21b9f: 48 89 55 b8 mov %rdx,-0x48(%rbp) 21ba3: 48 89 4d b0 mov %rcx,-0x50(%rbp) _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) #endif { bool __insert_left = (__x != 0 || __p == _M_end() || _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__p))); 21ba7: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 21bac: 75 4d jne 21bfb <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x6d> 21bae: 48 8b 45 c8 mov -0x38(%rbp),%rax 21bb2: 48 89 c7 mov %rax,%rdi 21bb5: e8 86 0d ff ff callq 12940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 21bba: 48 3b 45 b8 cmp -0x48(%rbp),%rax 21bbe: 74 3b je 21bfb <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x6d> 21bc0: 48 8b 45 b8 mov -0x48(%rbp),%rax 21bc4: 48 89 c7 mov %rax,%rdi 21bc7: e8 44 1a ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21bcc: 48 89 c3 mov %rax,%rbx 21bcf: 48 8b 55 b0 mov -0x50(%rbp),%rdx 21bd3: 48 8d 45 ee lea -0x12(%rbp),%rax 21bd7: 48 89 d6 mov %rdx,%rsi 21bda: 48 89 c7 mov %rax,%rdi 21bdd: e8 de 0d ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21be2: 48 89 c1 mov %rax,%rcx 21be5: 48 8b 45 c8 mov -0x38(%rbp),%rax 21be9: 48 89 da mov %rbx,%rdx 21bec: 48 89 ce mov %rcx,%rsi 21bef: 48 89 c7 mov %rax,%rdi 21bf2: e8 39 0e ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21bf7: 84 c0 test %al,%al 21bf9: 74 07 je 21c02 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x74> 21bfb: b8 01 00 00 00 mov $0x1,%eax 21c00: eb 05 jmp 21c07 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x79> 21c02: b8 00 00 00 00 mov $0x0,%eax 21c07: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 21c0a: 48 8b 55 b0 mov -0x50(%rbp),%rdx 21c0e: 48 8b 45 c8 mov -0x38(%rbp),%rax 21c12: 48 89 d6 mov %rdx,%rsi 21c15: 48 89 c7 mov %rax,%rdi 21c18: e8 e3 1f ff ff callq 13c00 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_@plt> 21c1d: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 21c21: 48 8b 45 c8 mov -0x38(%rbp),%rax 21c25: 48 8d 48 08 lea 0x8(%rax),%rcx 21c29: 0f b6 45 ef movzbl -0x11(%rbp),%eax 21c2d: 48 8b 55 b8 mov -0x48(%rbp),%rdx 21c31: 48 8b 75 e0 mov -0x20(%rbp),%rsi 21c35: 89 c7 mov %eax,%edi 21c37: e8 34 22 ff ff callq 13e70 <_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt> const_cast<_Base_ptr>(__p), this->_M_impl._M_header); ++_M_impl._M_node_count; 21c3c: 48 8b 45 c8 mov -0x38(%rbp),%rax 21c40: 48 8b 40 28 mov 0x28(%rax),%rax 21c44: 48 8d 50 01 lea 0x1(%rax),%rdx 21c48: 48 8b 45 c8 mov -0x38(%rbp),%rax 21c4c: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 21c50: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21c54: 48 8d 45 d0 lea -0x30(%rbp),%rax 21c58: 48 89 d6 mov %rdx,%rsi 21c5b: 48 89 c7 mov %rax,%rdi 21c5e: e8 fd 0d ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 21c63: 48 8b 45 d0 mov -0x30(%rbp),%rax } 21c67: 48 83 c4 48 add $0x48,%rsp 21c6b: 5b pop %rbx 21c6c: 5d pop %rbp 21c6d: c3 retq 0000000000021c6e <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ template #endif pair::iterator, bool> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 21c6e: 55 push %rbp 21c6f: 48 89 e5 mov %rsp,%rbp 21c72: 53 push %rbx 21c73: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 21c7a: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 21c81: 48 89 b5 50 ff ff ff mov %rsi,-0xb0(%rbp) _M_insert_unique(_Arg&& __v) #else _M_insert_unique(const _Val& __v) #endif { _Link_type __x = _M_begin(); 21c88: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21c8f: 48 89 c7 mov %rax,%rdi 21c92: e8 29 0f ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 21c97: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 21c9b: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21ca2: 48 89 c7 mov %rax,%rdi 21ca5: e8 96 0c ff ff callq 12940 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 21caa: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 21cae: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 21cb2: eb 6c jmp 21d20 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xb2> { __y = __x; 21cb4: 48 8b 45 d8 mov -0x28(%rbp),%rax 21cb8: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 21cbc: 48 8b 45 d8 mov -0x28(%rbp),%rax 21cc0: 48 89 c7 mov %rax,%rdi 21cc3: e8 d8 1a ff ff callq 137a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt> 21cc8: 48 89 c3 mov %rax,%rbx 21ccb: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 21cd2: 48 8d 45 ea lea -0x16(%rbp),%rax 21cd6: 48 89 d6 mov %rdx,%rsi 21cd9: 48 89 c7 mov %rax,%rdi 21cdc: e8 df 0c ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21ce1: 48 89 c1 mov %rax,%rcx 21ce4: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21ceb: 48 89 da mov %rbx,%rdx 21cee: 48 89 ce mov %rcx,%rsi 21cf1: 48 89 c7 mov %rax,%rdi 21cf4: e8 37 0d ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21cf9: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 21cfc: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 21d00: 74 0e je 21d10 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xa2> 21d02: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d06: 48 89 c7 mov %rax,%rdi 21d09: e8 a2 21 ff ff callq 13eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 21d0e: eb 0c jmp 21d1c <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xae> 21d10: 48 8b 45 d8 mov -0x28(%rbp),%rax 21d14: 48 89 c7 mov %rax,%rdi 21d17: e8 74 0e ff ff callq 12b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 21d1c: 48 89 45 d8 mov %rax,-0x28(%rbp) #endif { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); bool __comp = true; while (__x != 0) 21d20: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 21d25: 0f 95 c0 setne %al 21d28: 84 c0 test %al,%al 21d2a: 75 88 jne 21cb4 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x46> { __y = __x; __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); __x = __comp ? _S_left(__x) : _S_right(__x); } iterator __j = iterator(__y); 21d2c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21d30: 48 8d 45 a0 lea -0x60(%rbp),%rax 21d34: 48 89 d6 mov %rdx,%rsi 21d37: 48 89 c7 mov %rax,%rdi 21d3a: e8 21 0d ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> if (__comp) 21d3f: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 21d43: 0f 84 91 00 00 00 je 21dda <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x16c> { if (__j == begin()) 21d49: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21d50: 48 89 c7 mov %rax,%rdi 21d53: e8 58 14 ff ff callq 131b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt> 21d58: 48 89 45 b0 mov %rax,-0x50(%rbp) 21d5c: 48 8d 55 b0 lea -0x50(%rbp),%rdx 21d60: 48 8d 45 a0 lea -0x60(%rbp),%rax 21d64: 48 89 d6 mov %rdx,%rsi 21d67: 48 89 c7 mov %rax,%rdi 21d6a: e8 f1 0b ff ff callq 12960 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 21d6f: 84 c0 test %al,%al 21d71: 74 5b je 21dce <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 21d73: c6 45 eb 01 movb $0x1,-0x15(%rbp) 21d77: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 21d7e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21d82: 48 8b 75 d8 mov -0x28(%rbp),%rsi 21d86: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21d8d: 48 89 c7 mov %rax,%rdi 21d90: e8 1b 16 ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21d95: 48 89 45 c0 mov %rax,-0x40(%rbp) 21d99: 48 8d 55 eb lea -0x15(%rbp),%rdx 21d9d: 48 8d 4d c0 lea -0x40(%rbp),%rcx 21da1: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 21da8: 48 89 ce mov %rcx,%rsi 21dab: 48 89 c7 mov %rax,%rdi 21dae: e8 2d 18 ff ff callq 135e0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 21db3: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 21dba: 48 89 45 90 mov %rax,-0x70(%rbp) 21dbe: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 21dc5: 48 89 45 98 mov %rax,-0x68(%rbp) 21dc9: e9 d0 00 00 00 jmpq 21e9e <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x230> else --__j; 21dce: 48 8d 45 a0 lea -0x60(%rbp),%rax 21dd2: 48 89 c7 mov %rax,%rdi 21dd5: e8 d6 0c ff ff callq 12ab0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 21dda: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 21de1: 48 8d 45 ec lea -0x14(%rbp),%rax 21de5: 48 89 d6 mov %rdx,%rsi 21de8: 48 89 c7 mov %rax,%rdi 21deb: e8 d0 0b ff ff callq 129c0 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21df0: 48 89 c3 mov %rax,%rbx 21df3: 48 8b 45 a0 mov -0x60(%rbp),%rax 21df7: 48 89 c7 mov %rax,%rdi 21dfa: e8 11 18 ff ff callq 13610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21dff: 48 89 c1 mov %rax,%rcx 21e02: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21e09: 48 89 da mov %rbx,%rdx 21e0c: 48 89 ce mov %rcx,%rsi 21e0f: 48 89 c7 mov %rax,%rdi 21e12: e8 19 0c ff ff callq 12a30 <_ZNKSt4lessISsEclERKSsS2_@plt> 21e17: 84 c0 test %al,%al 21e19: 74 58 je 21e73 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 21e1b: c6 45 ed 01 movb $0x1,-0x13(%rbp) 21e1f: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 21e26: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21e2a: 48 8b 75 d8 mov -0x28(%rbp),%rsi 21e2e: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21e35: 48 89 c7 mov %rax,%rdi 21e38: e8 73 15 ff ff callq 133b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21e3d: 48 89 45 d0 mov %rax,-0x30(%rbp) 21e41: 48 8d 55 ed lea -0x13(%rbp),%rdx 21e45: 48 8d 4d d0 lea -0x30(%rbp),%rcx 21e49: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 21e50: 48 89 ce mov %rcx,%rsi 21e53: 48 89 c7 mov %rax,%rdi 21e56: e8 85 17 ff ff callq 135e0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 21e5b: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 21e62: 48 89 45 90 mov %rax,-0x70(%rbp) 21e66: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 21e6d: 48 89 45 98 mov %rax,-0x68(%rbp) 21e71: eb 2b jmp 21e9e <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x230> return pair(__j, false); 21e73: c6 45 ee 00 movb $0x0,-0x12(%rbp) 21e77: 48 8d 55 ee lea -0x12(%rbp),%rdx 21e7b: 48 8d 4d a0 lea -0x60(%rbp),%rcx 21e7f: 48 8d 45 80 lea -0x80(%rbp),%rax 21e83: 48 89 ce mov %rcx,%rsi 21e86: 48 89 c7 mov %rax,%rdi 21e89: e8 52 17 ff ff callq 135e0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 21e8e: 48 8b 45 80 mov -0x80(%rbp),%rax 21e92: 48 89 45 90 mov %rax,-0x70(%rbp) 21e96: 48 8b 45 88 mov -0x78(%rbp),%rax 21e9a: 48 89 45 98 mov %rax,-0x68(%rbp) 21e9e: 48 8b 45 90 mov -0x70(%rbp),%rax 21ea2: 8b 55 98 mov -0x68(%rbp),%edx } 21ea5: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 21eac: 5b pop %rbx 21ead: 5d pop %rbp 21eae: c3 retq 21eaf: 90 nop 0000000000021eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv>: _Const_Base_ptr _M_root() const { return this->_M_impl._M_header._M_parent; } _Base_ptr& _M_leftmost() 21eb0: 55 push %rbp 21eb1: 48 89 e5 mov %rsp,%rbp 21eb4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 21eb8: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ebc: 48 83 c0 18 add $0x18,%rax 21ec0: 5d pop %rbp 21ec1: c3 retq 0000000000021ec2 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 21ec2: 55 push %rbp 21ec3: 48 89 e5 mov %rsp,%rbp 21ec6: 48 83 ec 10 sub $0x10,%rsp 21eca: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 21ece: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ed2: 48 8b 00 mov (%rax),%rax 21ed5: 48 89 c7 mov %rax,%rdi 21ed8: e8 73 0b ff ff callq 12a50 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt> 21edd: 48 8b 55 f8 mov -0x8(%rbp),%rdx 21ee1: 48 89 02 mov %rax,(%rdx) return *this; 21ee4: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21ee8: c9 leaveq 21ee9: c3 retq 0000000000021eea <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base>: static _Link_type _S_right(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_right); } static _Const_Link_type _S_right(_Const_Base_ptr __x) 21eea: 55 push %rbp 21eeb: 48 89 e5 mov %rsp,%rbp 21eee: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 21ef2: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ef6: 48 8b 40 18 mov 0x18(%rax),%rax 21efa: 5d pop %rbp 21efb: c3 retq 0000000000021efc <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv>: operator->() const { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } _Self& operator++() 21efc: 55 push %rbp 21efd: 48 89 e5 mov %rsp,%rbp 21f00: 48 83 ec 10 sub $0x10,%rsp 21f04: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_increment(_M_node); 21f08: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f0c: 48 8b 00 mov (%rax),%rax 21f0f: 48 89 c7 mov %rax,%rdi 21f12: e8 49 19 ff ff callq 13860 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 21f17: 48 8b 55 f8 mov -0x8(%rbp),%rdx 21f1b: 48 89 02 mov %rax,(%rdx) return *this; 21f1e: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21f22: c9 leaveq 21f23: c3 retq 0000000000021f24 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEE13_M_const_castEv>: _Rb_tree_const_iterator(const iterator& __it) : _M_node(__it._M_node) { } iterator _M_const_cast() const 21f24: 55 push %rbp 21f25: 48 89 e5 mov %rsp,%rbp 21f28: 48 83 ec 20 sub $0x20,%rsp 21f2c: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast (const_cast(_M_node))); } 21f30: 48 8b 45 e8 mov -0x18(%rbp),%rax 21f34: 48 8b 10 mov (%rax),%rdx 21f37: 48 8d 45 f0 lea -0x10(%rbp),%rax 21f3b: 48 89 d6 mov %rdx,%rsi 21f3e: 48 89 c7 mov %rax,%rdi 21f41: e8 1a 0b ff ff callq 12a60 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 21f46: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f4a: c9 leaveq 21f4b: c3 retq 0000000000021f4c <_ZNSaISsEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 21f4c: 55 push %rbp 21f4d: 48 89 e5 mov %rsp,%rbp 21f50: 48 83 ec 10 sub $0x10,%rsp 21f54: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f58: 48 8b 45 f8 mov -0x8(%rbp),%rax 21f5c: 48 89 c7 mov %rax,%rdi 21f5f: e8 6c 27 ff ff callq 146d0 <_ZN9__gnu_cxx13new_allocatorISsEC2Ev@plt> 21f64: c9 leaveq 21f65: c3 retq 0000000000021f66 <_ZN9__gnu_cxx13new_allocatorISsED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 21f66: 55 push %rbp 21f67: 48 89 e5 mov %rsp,%rbp 21f6a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f6e: 5d pop %rbp 21f6f: c3 retq 0000000000021f70 <_ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm>: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) 21f70: 55 push %rbp 21f71: 48 89 e5 mov %rsp,%rbp 21f74: 48 83 ec 20 sub $0x20,%rsp 21f78: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21f7c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21f80: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 21f84: 48 8b 45 f0 mov -0x10(%rbp),%rax 21f88: 48 89 c7 mov %rax,%rdi 21f8b: e8 60 0d ff ff callq 12cf0 <_ZdlPv@plt> 21f90: c9 leaveq 21f91: c3 retq 0000000000021f92 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_>: : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value> { }; template inline typename _Miter_base<_Iterator>::iterator_type __miter_base(_Iterator __it) 21f92: 55 push %rbp 21f93: 48 89 e5 mov %rsp,%rbp 21f96: 48 83 ec 10 sub $0x10,%rsp 21f9a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::_Miter_base<_Iterator>::_S_base(__it); } 21f9e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21fa2: 48 89 c7 mov %rax,%rdi 21fa5: e8 d6 16 ff ff callq 13680 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt> 21faa: c9 leaveq 21fab: c3 retq 0000000000021fac <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_>: __result); } template inline _BI2 __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 21fac: 55 push %rbp 21fad: 48 89 e5 mov %rsp,%rbp 21fb0: 41 54 push %r12 21fb2: 53 push %rbx 21fb3: 48 83 ec 20 sub $0x20,%rsp 21fb7: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21fbb: 48 89 75 e0 mov %rsi,-0x20(%rbp) 21fbf: 48 89 55 d8 mov %rdx,-0x28(%rbp) { return _BI2(std::__copy_move_backward_a<_IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); 21fc3: 48 8b 45 d8 mov -0x28(%rbp),%rax 21fc7: 48 89 c7 mov %rax,%rdi 21fca: e8 11 1d ff ff callq 13ce0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 21fcf: 49 89 c4 mov %rax,%r12 21fd2: 48 8b 45 e0 mov -0x20(%rbp),%rax 21fd6: 48 89 c7 mov %rax,%rdi 21fd9: e8 02 1d ff ff callq 13ce0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 21fde: 48 89 c3 mov %rax,%rbx 21fe1: 48 8b 45 e8 mov -0x18(%rbp),%rax 21fe5: 48 89 c7 mov %rax,%rdi 21fe8: e8 f3 1c ff ff callq 13ce0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 21fed: 4c 89 e2 mov %r12,%rdx 21ff0: 48 89 de mov %rbx,%rsi 21ff3: 48 89 c7 mov %rax,%rdi 21ff6: e8 85 18 ff ff callq 13880 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_@plt> } 21ffb: 48 83 c4 20 add $0x20,%rsp 21fff: 5b pop %rbx 22000: 41 5c pop %r12 22002: 5d pop %rbp 22003: c3 retq 0000000000022004 <_ZNKSt6vectorISsSaISsEE4sizeEv>: #endif // [23.2.4.2] capacity /** Returns the number of elements in the %vector. */ size_type size() const 22004: 55 push %rbp 22005: 48 89 e5 mov %rsp,%rbp 22008: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 2200c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22010: 48 8b 40 08 mov 0x8(%rax),%rax 22014: 48 89 c2 mov %rax,%rdx 22017: 48 8b 45 f8 mov -0x8(%rbp),%rax 2201b: 48 8b 00 mov (%rax),%rax 2201e: 48 89 d1 mov %rdx,%rcx 22021: 48 29 c1 sub %rax,%rcx 22024: 48 89 c8 mov %rcx,%rax 22027: 48 c1 f8 03 sar $0x3,%rax 2202b: 5d pop %rbp 2202c: c3 retq 2202d: 90 nop 000000000002202e <_ZNKSt6vectorISsSaISsEE8max_sizeEv>: /** Returns the size() of the largest possible %vector. */ size_type max_size() const 2202e: 55 push %rbp 2202f: 48 89 e5 mov %rsp,%rbp 22032: 48 83 ec 10 sub $0x10,%rsp 22036: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_get_Tp_allocator().max_size(); } 2203a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2203e: 48 89 c7 mov %rax,%rdi 22041: e8 8a 0f ff ff callq 12fd0 <_ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 22046: 48 89 c7 mov %rax,%rdi 22049: e8 f2 1e ff ff callq 13f40 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt> 2204e: c9 leaveq 2204f: c3 retq 0000000000022050 <_ZSt3maxImERKT_S2_S2_>: * temporary expressions, since they are only evaluated once, unlike a * preprocessor macro. */ template inline const _Tp& max(const _Tp& __a, const _Tp& __b) 22050: 55 push %rbp 22051: 48 89 e5 mov %rsp,%rbp 22054: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22058: 48 89 75 f0 mov %rsi,-0x10(%rbp) { // concept requirements __glibcxx_function_requires(_LessThanComparableConcept<_Tp>) //return __a < __b ? __b : __a; if (__a < __b) 2205c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22060: 48 8b 10 mov (%rax),%rdx 22063: 48 8b 45 f0 mov -0x10(%rbp),%rax 22067: 48 8b 00 mov (%rax),%rax 2206a: 48 39 c2 cmp %rax,%rdx 2206d: 73 06 jae 22075 <_ZSt3maxImERKT_S2_S2_+0x25> return __b; 2206f: 48 8b 45 f0 mov -0x10(%rbp),%rax 22073: eb 04 jmp 22079 <_ZSt3maxImERKT_S2_S2_+0x29> return __a; 22075: 48 8b 45 f8 mov -0x8(%rbp),%rax } 22079: 5d pop %rbp 2207a: c3 retq 2207b: 90 nop 000000000002207c <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv>: address(const_reference __x) const { return std::__addressof(__x); } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) 2207c: 55 push %rbp 2207d: 48 89 e5 mov %rsp,%rbp 22080: 48 83 ec 20 sub $0x20,%rsp 22084: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22088: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2208c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 22090: 48 8b 45 f8 mov -0x8(%rbp),%rax 22094: 48 89 c7 mov %rax,%rdi 22097: e8 a4 1e ff ff callq 13f40 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt> 2209c: 48 3b 45 f0 cmp -0x10(%rbp),%rax 220a0: 0f 92 c0 setb %al 220a3: 84 c0 test %al,%al 220a5: 74 05 je 220ac <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 220a7: e8 f4 21 ff ff callq 142a0 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 220ac: 48 8b 45 f0 mov -0x10(%rbp),%rax 220b0: 48 c1 e0 03 shl $0x3,%rax 220b4: 48 89 c7 mov %rax,%rdi 220b7: e8 b4 24 ff ff callq 14570 <_Znwm@plt> } 220bc: c9 leaveq 220bd: c3 retq 00000000000220be <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E>: } } template inline _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 220be: 55 push %rbp 220bf: 48 89 e5 mov %rsp,%rbp 220c2: 48 83 ec 20 sub $0x20,%rsp 220c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 220ca: 48 89 75 f0 mov %rsi,-0x10(%rbp) 220ce: 48 89 55 e8 mov %rdx,-0x18(%rbp) 220d2: 48 89 4d e0 mov %rcx,-0x20(%rbp) _ForwardIterator __result, allocator<_Tp>&) { return std::uninitialized_copy(__first, __last, __result); } 220d6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 220da: 48 8b 4d f0 mov -0x10(%rbp),%rcx 220de: 48 8b 45 f8 mov -0x8(%rbp),%rax 220e2: 48 89 ce mov %rcx,%rsi 220e5: 48 89 c7 mov %rax,%rdi 220e8: e8 23 08 ff ff callq 12910 <_ZSt18uninitialized_copyIPSsS0_ET0_T_S2_S1_@plt> 220ed: c9 leaveq 220ee: c3 retq 00000000000220ef <_ZSt8_DestroyIPSsEvT_S1_>: * a trivial destructor, the compiler should optimize all of this * away, otherwise the objects' destructors must be invoked. */ template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) 220ef: 55 push %rbp 220f0: 48 89 e5 mov %rsp,%rbp 220f3: 48 83 ec 10 sub $0x10,%rsp 220f7: 48 89 7d f8 mov %rdi,-0x8(%rbp) 220fb: 48 89 75 f0 mov %rsi,-0x10(%rbp) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 220ff: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22103: 48 8b 45 f8 mov -0x8(%rbp),%rax 22107: 48 89 d6 mov %rdx,%rsi 2210a: 48 89 c7 mov %rax,%rdi 2210d: e8 de 16 ff ff callq 137f0 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_@plt> __destroy(__first, __last); } 22112: c9 leaveq 22113: c3 retq 0000000000022114 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 22114: 55 push %rbp 22115: 48 89 e5 mov %rsp,%rbp 22118: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2211c: 5d pop %rbp 2211d: c3 retq 000000000002211e <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC1Ev>: 2211e: 55 push %rbp 2211f: 48 89 e5 mov %rsp,%rbp 22122: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22126: 5d pop %rbp 22127: c3 retq 0000000000022128 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE21_M_get_Node_allocatorEv>: _Node_allocator& _M_get_Node_allocator() { return *static_cast<_Node_allocator*>(&this->_M_impl); } const _Node_allocator& _M_get_Node_allocator() const 22128: 55 push %rbp 22129: 48 89 e5 mov %rsp,%rbp 2212c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 22130: 48 8b 45 f8 mov -0x8(%rbp),%rax 22134: 5d pop %rbp 22135: c3 retq 0000000000022136 <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 22136: 55 push %rbp 22137: 48 89 e5 mov %rsp,%rbp 2213a: 48 83 ec 10 sub $0x10,%rsp 2213e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22142: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22146: 48 8b 45 f8 mov -0x8(%rbp),%rax 2214a: 48 89 c7 mov %rax,%rdi 2214d: e8 0e 26 ff ff callq 14760 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC2Ev@plt> 22152: c9 leaveq 22153: c3 retq 0000000000022154 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 22154: 55 push %rbp 22155: 48 89 e5 mov %rsp,%rbp 22158: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2215c: 5d pop %rbp 2215d: c3 retq 000000000002215e <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE10deallocateEPS7_m>: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) 2215e: 55 push %rbp 2215f: 48 89 e5 mov %rsp,%rbp 22162: 48 83 ec 20 sub $0x20,%rsp 22166: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2216a: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2216e: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 22172: 48 8b 45 f0 mov -0x10(%rbp),%rax 22176: 48 89 c7 mov %rax,%rdi 22179: e8 72 0b ff ff callq 12cf0 <_ZdlPv@plt> 2217e: c9 leaveq 2217f: c3 retq 0000000000022180 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt13_Rb_tree_nodeIS4_E>: _Const_Link_type _M_end() const { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); } static const_reference _S_value(_Const_Link_type __x) 22180: 55 push %rbp 22181: 48 89 e5 mov %rsp,%rbp 22184: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 22188: 48 8b 45 f8 mov -0x8(%rbp),%rax 2218c: 48 83 c0 20 add $0x20,%rax 22190: 5d pop %rbp 22191: c3 retq 0000000000022192 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_>: _M_put_node(_Link_type __p) { _M_impl._Node_allocator::deallocate(__p, 1); } #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Link_type _M_create_node(const value_type& __x) 22192: 55 push %rbp 22193: 48 89 e5 mov %rsp,%rbp 22196: 53 push %rbx 22197: 48 83 ec 28 sub $0x28,%rsp 2219b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 2219f: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 221a3: 48 8b 45 d8 mov -0x28(%rbp),%rax 221a7: 48 89 c7 mov %rax,%rdi 221aa: e8 31 21 ff ff callq 142e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_get_nodeEv@plt> 221af: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 221b3: 48 8b 45 e0 mov -0x20(%rbp),%rax 221b7: 48 83 c0 20 add $0x20,%rax 221bb: 48 89 c7 mov %rax,%rdi 221be: e8 fd 18 ff ff callq 13ac0 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt> 221c3: 48 89 c3 mov %rax,%rbx 221c6: 48 8d 45 ef lea -0x11(%rbp),%rax 221ca: 48 8b 55 d8 mov -0x28(%rbp),%rdx 221ce: 48 89 d6 mov %rdx,%rsi 221d1: 48 89 c7 mov %rax,%rdi 221d4: e8 b7 0e ff ff callq 13090 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt> 221d9: 48 8b 55 d0 mov -0x30(%rbp),%rdx 221dd: 48 8d 45 ef lea -0x11(%rbp),%rax 221e1: 48 89 de mov %rbx,%rsi 221e4: 48 89 c7 mov %rax,%rdi 221e7: e8 74 14 ff ff callq 13660 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_@plt> 221ec: 48 8d 45 ef lea -0x11(%rbp),%rax 221f0: 48 89 c7 mov %rax,%rdi 221f3: e8 18 18 ff ff callq 13a10 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 221f8: 48 8b 45 e0 mov -0x20(%rbp),%rax } 221fc: 48 83 c4 28 add $0x28,%rsp 22200: 5b pop %rbx 22201: 5d pop %rbp 22202: c3 retq 22203: 48 89 c3 mov %rax,%rbx _Link_type _M_create_node(const value_type& __x) { _Link_type __tmp = _M_get_node(); __try { get_allocator().construct 22206: 48 8d 45 ef lea -0x11(%rbp),%rax 2220a: 48 89 c7 mov %rax,%rdi 2220d: e8 fe 17 ff ff callq 13a10 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> 22212: 48 89 d8 mov %rbx,%rax 22215: eb 13 jmp 2222a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_+0x98> 22217: 48 89 c3 mov %rax,%rbx (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 2221a: e8 61 20 ff ff callq 14280 <__cxa_end_catch@plt> 2221f: 48 89 d8 mov %rbx,%rax 22222: 48 89 c7 mov %rax,%rdi 22225: e8 56 23 ff ff callq 14580 <_Unwind_Resume@plt> 2222a: 48 89 c7 mov %rax,%rdi 2222d: e8 8e 21 ff ff callq 143c0 <__cxa_begin_catch@plt> { _M_put_node(__tmp); 22232: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22236: 48 8b 45 d8 mov -0x28(%rbp),%rax 2223a: 48 89 d6 mov %rdx,%rsi 2223d: 48 89 c7 mov %rax,%rdi 22240: e8 ab 19 ff ff callq 13bf0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt> __throw_exception_again; 22245: e8 c6 0b ff ff callq 12e10 <__cxa_rethrow@plt> 000000000002224a <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb>: * respective default constructors. */ _GLIBCXX_CONSTEXPR pair() : first(), second() { } /** Two objects may be passed to a @c pair constructor to be copied. */ _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b) 2224a: 55 push %rbp 2224b: 48 89 e5 mov %rsp,%rbp 2224e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22252: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22256: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 2225a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2225e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22262: 48 8b 12 mov (%rdx),%rdx 22265: 48 89 10 mov %rdx,(%rax) 22268: 48 8b 45 e8 mov -0x18(%rbp),%rax 2226c: 0f b6 10 movzbl (%rax),%edx 2226f: 48 8b 45 f8 mov -0x8(%rbp),%rax 22273: 88 50 08 mov %dl,0x8(%rax) 22276: 5d pop %rbp 22277: c3 retq 0000000000022278 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 22278: 55 push %rbp 22279: 48 89 e5 mov %rsp,%rbp 2227c: 48 83 ec 10 sub $0x10,%rsp 22280: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 22284: 48 8b 45 f8 mov -0x8(%rbp),%rax 22288: 48 8b 00 mov (%rax),%rax 2228b: 48 89 c7 mov %rax,%rdi 2228e: e8 9d 0d ff ff callq 13030 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 22293: 48 8b 55 f8 mov -0x8(%rbp),%rdx 22297: 48 89 02 mov %rax,(%rdx) return *this; 2229a: 48 8b 45 f8 mov -0x8(%rbp),%rax } 2229e: c9 leaveq 2229f: c3 retq 00000000000222a0 <_ZN9__gnu_cxx13new_allocatorISsEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 222a0: 55 push %rbp 222a1: 48 89 e5 mov %rsp,%rbp 222a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 222a8: 5d pop %rbp 222a9: c3 retq 00000000000222aa <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_>: // untouched template struct _Iter_base { typedef _Iterator iterator_type; static iterator_type _S_base(_Iterator __it) 222aa: 55 push %rbp 222ab: 48 89 e5 mov %rsp,%rbp 222ae: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __it; } 222b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 222b6: 5d pop %rbp 222b7: c3 retq 00000000000222b8 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_>: : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value> { }; template inline typename _Niter_base<_Iterator>::iterator_type __niter_base(_Iterator __it) 222b8: 55 push %rbp 222b9: 48 89 e5 mov %rsp,%rbp 222bc: 48 83 ec 10 sub $0x10,%rsp 222c0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::_Niter_base<_Iterator>::_S_base(__it); } 222c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 222c8: 48 89 c7 mov %rax,%rdi 222cb: e8 b0 13 ff ff callq 13680 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt> 222d0: c9 leaveq 222d1: c3 retq 00000000000222d2 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_>: } }; template inline _BI2 __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 222d2: 55 push %rbp 222d3: 48 89 e5 mov %rsp,%rbp 222d6: 48 83 ec 30 sub $0x30,%rsp 222da: 48 89 7d e8 mov %rdi,-0x18(%rbp) 222de: 48 89 75 e0 mov %rsi,-0x20(%rbp) 222e2: 48 89 55 d8 mov %rdx,-0x28(%rbp) typedef typename iterator_traits<_BI2>::value_type _ValueType2; typedef typename iterator_traits<_BI1>::iterator_category _Category; const bool __simple = (__is_trivial(_ValueType1) && __is_pointer<_BI1>::__value && __is_pointer<_BI2>::__value && __are_same<_ValueType1, _ValueType2>::__value); 222e6: c6 45 ff 00 movb $0x0,-0x1(%rbp) return std::__copy_move_backward<_IsMove, __simple, _Category>::__copy_move_b(__first, __last, __result); 222ea: 48 8b 55 d8 mov -0x28(%rbp),%rdx 222ee: 48 8b 4d e0 mov -0x20(%rbp),%rcx 222f2: 48 8b 45 e8 mov -0x18(%rbp),%rax 222f6: 48 89 ce mov %rcx,%rsi 222f9: 48 89 c7 mov %rax,%rdi 222fc: e8 3f 1b ff ff callq 13e40 <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_@plt> } 22301: c9 leaveq 22302: c3 retq 22303: 90 nop 0000000000022304 <_ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv>: _Tp_alloc_type& _M_get_Tp_allocator() { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } const _Tp_alloc_type& _M_get_Tp_allocator() const 22304: 55 push %rbp 22305: 48 89 e5 mov %rsp,%rbp 22308: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 2230c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22310: 5d pop %rbp 22311: c3 retq 0000000000022312 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 22312: 55 push %rbp 22313: 48 89 e5 mov %rsp,%rbp 22316: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 2231a: 48 b8 ff ff ff ff ff movabs $0x1fffffffffffffff,%rax 22321: ff ff 1f 22324: 5d pop %rbp 22325: c3 retq 0000000000022326 <_ZSt18uninitialized_copyIPSsS0_ET0_T_S2_S1_>: * * Like copy(), but does not require an initialized output range. */ template inline _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, 22326: 55 push %rbp 22327: 48 89 e5 mov %rsp,%rbp 2232a: 48 83 ec 20 sub $0x20,%rsp 2232e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22332: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22336: 48 89 55 e8 mov %rdx,-0x18(%rbp) typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType2; return std::__uninitialized_copy<(__is_trivial(_ValueType1) && __is_trivial(_ValueType2))>:: __uninit_copy(__first, __last, __result); 2233a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2233e: 48 8b 4d f0 mov -0x10(%rbp),%rcx 22342: 48 8b 45 f8 mov -0x8(%rbp),%rax 22346: 48 89 ce mov %rcx,%rsi 22349: 48 89 c7 mov %rax,%rdi 2234c: e8 8f 20 ff ff callq 143e0 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_@plt> } 22351: c9 leaveq 22352: c3 retq 0000000000022353 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_>: template struct _Destroy_aux { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) 22353: 55 push %rbp 22354: 48 89 e5 mov %rsp,%rbp 22357: 48 83 ec 10 sub $0x10,%rsp 2235b: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2235f: 48 89 75 f0 mov %rsi,-0x10(%rbp) { for (; __first != __last; ++__first) 22363: eb 19 jmp 2237e <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_+0x2b> std::_Destroy(std::__addressof(*__first)); 22365: 48 8b 45 f8 mov -0x8(%rbp),%rax 22369: 48 89 c7 mov %rax,%rdi 2236c: e8 ff 06 ff ff callq 12a70 <_ZSt11__addressofISsEPT_RS0_@plt> 22371: 48 89 c7 mov %rax,%rdi 22374: e8 87 0b ff ff callq 12f00 <_ZSt8_DestroyISsEvPT_@plt> { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) 22379: 48 83 45 f8 08 addq $0x8,-0x8(%rbp) 2237e: 48 8b 45 f8 mov -0x8(%rbp),%rax 22382: 48 3b 45 f0 cmp -0x10(%rbp),%rax 22386: 0f 95 c0 setne %al 22389: 84 c0 test %al,%al 2238b: 75 d8 jne 22365 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_+0x12> std::_Destroy(std::__addressof(*__first)); } 2238d: c9 leaveq 2238e: c3 retq 2238f: 90 nop 0000000000022390 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 22390: 55 push %rbp 22391: 48 89 e5 mov %rsp,%rbp 22394: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22398: 5d pop %rbp 22399: c3 retq 000000000002239a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_get_nodeEv>: get_allocator() const { return allocator_type(_M_get_Node_allocator()); } protected: _Link_type _M_get_node() 2239a: 55 push %rbp 2239b: 48 89 e5 mov %rsp,%rbp 2239e: 48 83 ec 10 sub $0x10,%rsp 223a2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 223a6: 48 8b 45 f8 mov -0x8(%rbp),%rax 223aa: ba 00 00 00 00 mov $0x0,%edx 223af: be 01 00 00 00 mov $0x1,%esi 223b4: 48 89 c7 mov %rax,%rdi 223b7: e8 a4 17 ff ff callq 13b60 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv@plt> 223bc: c9 leaveq 223bd: c3 retq 00000000000223be <_ZNSt4pairIKSsP4XLogEC1ERKS3_>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 223be: 55 push %rbp 223bf: 48 89 e5 mov %rsp,%rbp 223c2: 48 83 ec 10 sub $0x10,%rsp 223c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 223ca: 48 89 75 f0 mov %rsi,-0x10(%rbp) 223ce: 48 8b 55 f0 mov -0x10(%rbp),%rdx 223d2: 48 8b 45 f8 mov -0x8(%rbp),%rax 223d6: 48 89 d6 mov %rdx,%rsi 223d9: 48 89 c7 mov %rax,%rdi 223dc: e8 1f 0d ff ff callq 13100 <_ZNSsC1ERKSs@plt> 223e1: 48 8b 45 f0 mov -0x10(%rbp),%rax 223e5: 48 8b 50 08 mov 0x8(%rax),%rdx 223e9: 48 8b 45 f8 mov -0x8(%rbp),%rax 223ed: 48 89 50 08 mov %rdx,0x8(%rax) 223f1: c9 leaveq 223f2: c3 retq 223f3: 90 nop 00000000000223f4 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_>: { return size_t(-1) / sizeof(_Tp); } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 223f4: 55 push %rbp 223f5: 48 89 e5 mov %rsp,%rbp 223f8: 41 55 push %r13 223fa: 41 54 push %r12 223fc: 53 push %rbx 223fd: 48 83 ec 28 sub $0x28,%rsp 22401: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22405: 48 89 75 d0 mov %rsi,-0x30(%rbp) 22409: 48 89 55 c8 mov %rdx,-0x38(%rbp) { ::new((void *)__p) _Tp(__val); } 2240d: 4c 8b 65 d0 mov -0x30(%rbp),%r12 22411: 4c 89 e6 mov %r12,%rsi 22414: bf 10 00 00 00 mov $0x10,%edi 22419: e8 52 0d ff ff callq 13170 <_ZnwmPv@plt> 2241e: 48 89 c3 mov %rax,%rbx 22421: 48 85 db test %rbx,%rbx 22424: 74 2a je 22450 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_+0x5c> 22426: 48 8b 45 c8 mov -0x38(%rbp),%rax 2242a: 48 89 c6 mov %rax,%rsi 2242d: 48 89 df mov %rbx,%rdi 22430: e8 7b 0c ff ff callq 130b0 <_ZNSt4pairIKSsP4XLogEC1ERKS3_@plt> 22435: eb 19 jmp 22450 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_+0x5c> 22437: 49 89 c5 mov %rax,%r13 2243a: 4c 89 e6 mov %r12,%rsi 2243d: 48 89 df mov %rbx,%rdi 22440: e8 fb 1f ff ff callq 14440 <_ZdlPvS_@plt> 22445: 4c 89 e8 mov %r13,%rax 22448: 48 89 c7 mov %rax,%rdi 2244b: e8 30 21 ff ff callq 14580 <_Unwind_Resume@plt> 22450: 48 83 c4 28 add $0x28,%rsp 22454: 5b pop %rbx 22455: 41 5c pop %r12 22457: 41 5d pop %r13 22459: 5d pop %rbp 2245a: c3 retq 000000000002245b <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_>: template<> struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 2245b: 55 push %rbp 2245c: 48 89 e5 mov %rsp,%rbp 2245f: 48 83 ec 30 sub $0x30,%rsp 22463: 48 89 7d e8 mov %rdi,-0x18(%rbp) 22467: 48 89 75 e0 mov %rsi,-0x20(%rbp) 2246b: 48 89 55 d8 mov %rdx,-0x28(%rbp) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) 2246f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22473: 48 8b 45 e8 mov -0x18(%rbp),%rax 22477: 48 89 d1 mov %rdx,%rcx 2247a: 48 29 c1 sub %rax,%rcx 2247d: 48 89 c8 mov %rcx,%rax 22480: 48 c1 f8 03 sar $0x3,%rax 22484: 48 89 45 f8 mov %rax,-0x8(%rbp) 22488: eb 22 jmp 224ac <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_+0x51> *--__result = *--__last; 2248a: 48 83 6d e0 08 subq $0x8,-0x20(%rbp) 2248f: 48 83 6d d8 08 subq $0x8,-0x28(%rbp) 22494: 48 8b 55 e0 mov -0x20(%rbp),%rdx 22498: 48 8b 45 d8 mov -0x28(%rbp),%rax 2249c: 48 89 d6 mov %rdx,%rsi 2249f: 48 89 c7 mov %rax,%rdi 224a2: e8 f9 21 ff ff callq 146a0 <_ZNSsaSERKSs@plt> template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) 224a7: 48 83 6d f8 01 subq $0x1,-0x8(%rbp) 224ac: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 224b1: 0f 9f c0 setg %al 224b4: 84 c0 test %al,%al 224b6: 75 d2 jne 2248a <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_+0x2f> *--__result = *--__last; return __result; 224b8: 48 8b 45 d8 mov -0x28(%rbp),%rax } 224bc: c9 leaveq 224bd: c3 retq 00000000000224be <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_>: template struct __uninitialized_copy { template static _ForwardIterator __uninit_copy(_InputIterator __first, _InputIterator __last, 224be: 55 push %rbp 224bf: 48 89 e5 mov %rsp,%rbp 224c2: 53 push %rbx 224c3: 48 83 ec 38 sub $0x38,%rsp 224c7: 48 89 7d d8 mov %rdi,-0x28(%rbp) 224cb: 48 89 75 d0 mov %rsi,-0x30(%rbp) 224cf: 48 89 55 c8 mov %rdx,-0x38(%rbp) _ForwardIterator __result) { _ForwardIterator __cur = __result; 224d3: 48 8b 45 c8 mov -0x38(%rbp),%rax 224d7: 48 89 45 e8 mov %rax,-0x18(%rbp) __try { for (; __first != __last; ++__first, ++__cur) 224db: eb 25 jmp 22502 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_+0x44> std::_Construct(std::__addressof(*__cur), *__first); 224dd: 48 8b 45 e8 mov -0x18(%rbp),%rax 224e1: 48 89 c7 mov %rax,%rdi 224e4: e8 87 05 ff ff callq 12a70 <_ZSt11__addressofISsEPT_RS0_@plt> 224e9: 48 8b 55 d8 mov -0x28(%rbp),%rdx 224ed: 48 89 d6 mov %rdx,%rsi 224f0: 48 89 c7 mov %rax,%rdi 224f3: e8 b8 04 ff ff callq 129b0 <_ZSt10_ConstructISsSsEvPT_RKT0_@plt> _ForwardIterator __result) { _ForwardIterator __cur = __result; __try { for (; __first != __last; ++__first, ++__cur) 224f8: 48 83 45 d8 08 addq $0x8,-0x28(%rbp) 224fd: 48 83 45 e8 08 addq $0x8,-0x18(%rbp) 22502: 48 8b 45 d8 mov -0x28(%rbp),%rax 22506: 48 3b 45 d0 cmp -0x30(%rbp),%rax 2250a: 0f 95 c0 setne %al 2250d: 84 c0 test %al,%al 2250f: 75 cc jne 224dd <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_+0x1f> std::_Construct(std::__addressof(*__cur), *__first); return __cur; 22511: 48 8b 45 e8 mov -0x18(%rbp),%rax __catch(...) { std::_Destroy(__result, __cur); __throw_exception_again; } } 22515: 48 83 c4 38 add $0x38,%rsp 22519: 5b pop %rbx 2251a: 5d pop %rbp 2251b: c3 retq 2251c: 48 89 c3 mov %rax,%rbx { for (; __first != __last; ++__first, ++__cur) std::_Construct(std::__addressof(*__cur), *__first); return __cur; } __catch(...) 2251f: e8 5c 1d ff ff callq 14280 <__cxa_end_catch@plt> 22524: 48 89 d8 mov %rbx,%rax 22527: 48 89 c7 mov %rax,%rdi 2252a: e8 51 20 ff ff callq 14580 <_Unwind_Resume@plt> 2252f: 48 89 c7 mov %rax,%rdi 22532: e8 89 1e ff ff callq 143c0 <__cxa_begin_catch@plt> { std::_Destroy(__result, __cur); 22537: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2253b: 48 8b 45 c8 mov -0x38(%rbp),%rax 2253f: 48 89 d6 mov %rdx,%rsi 22542: 48 89 c7 mov %rax,%rdi 22545: e8 a6 21 ff ff callq 146f0 <_ZSt8_DestroyIPSsEvT_S1_@plt> __throw_exception_again; 2254a: e8 c1 08 ff ff callq 12e10 <__cxa_rethrow@plt> 000000000002254f <_ZSt11__addressofISsEPT_RS0_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 2254f: 55 push %rbp 22550: 48 89 e5 mov %rsp,%rbp 22553: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 22557: 48 8b 45 f8 mov -0x8(%rbp),%rax } 2255b: 5d pop %rbp 2255c: c3 retq 000000000002255d <_ZSt8_DestroyISsEvPT_>: /** * Destroy the object pointed to by a pointer type. */ template inline void _Destroy(_Tp* __pointer) 2255d: 55 push %rbp 2255e: 48 89 e5 mov %rsp,%rbp 22561: 48 83 ec 10 sub $0x10,%rsp 22565: 48 89 7d f8 mov %rdi,-0x8(%rbp) { __pointer->~_Tp(); } 22569: 48 8b 45 f8 mov -0x8(%rbp),%rax 2256d: 48 89 c7 mov %rax,%rdi 22570: e8 bb 0e ff ff callq 13430 <_ZNSsD1Ev@plt> 22575: c9 leaveq 22576: c3 retq 22577: 90 nop 0000000000022578 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv>: address(const_reference __x) const { return std::__addressof(__x); } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) 22578: 55 push %rbp 22579: 48 89 e5 mov %rsp,%rbp 2257c: 48 83 ec 20 sub $0x20,%rsp 22580: 48 89 7d f8 mov %rdi,-0x8(%rbp) 22584: 48 89 75 f0 mov %rsi,-0x10(%rbp) 22588: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 2258c: 48 8b 45 f8 mov -0x8(%rbp),%rax 22590: 48 89 c7 mov %rax,%rdi 22593: e8 38 0f ff ff callq 134d0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv@plt> 22598: 48 3b 45 f0 cmp -0x10(%rbp),%rax 2259c: 0f 92 c0 setb %al 2259f: 84 c0 test %al,%al 225a1: 74 05 je 225a8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 225a3: e8 f8 1c ff ff callq 142a0 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 225a8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 225ac: 48 89 d0 mov %rdx,%rax 225af: 48 01 c0 add %rax,%rax 225b2: 48 01 d0 add %rdx,%rax 225b5: 48 c1 e0 04 shl $0x4,%rax 225b9: 48 89 c7 mov %rax,%rdi 225bc: e8 af 1f ff ff callq 14570 <_Znwm@plt> } 225c1: c9 leaveq 225c2: c3 retq 00000000000225c3 <_ZSt10_ConstructISsSsEvPT_RKT0_>: _Construct(_T1* __p, _Args&&... __args) { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } #else template inline void _Construct(_T1* __p, const _T2& __value) 225c3: 55 push %rbp 225c4: 48 89 e5 mov %rsp,%rbp 225c7: 41 55 push %r13 225c9: 41 54 push %r12 225cb: 53 push %rbx 225cc: 48 83 ec 18 sub $0x18,%rsp 225d0: 48 89 7d d8 mov %rdi,-0x28(%rbp) 225d4: 48 89 75 d0 mov %rsi,-0x30(%rbp) { // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_]allocator::construct ::new(static_cast(__p)) _T1(__value); 225d8: 4c 8b 65 d8 mov -0x28(%rbp),%r12 225dc: 4c 89 e6 mov %r12,%rsi 225df: bf 08 00 00 00 mov $0x8,%edi 225e4: e8 87 0b ff ff callq 13170 <_ZnwmPv@plt> 225e9: 48 89 c3 mov %rax,%rbx 225ec: 48 85 db test %rbx,%rbx 225ef: 74 2a je 2261b <_ZSt10_ConstructISsSsEvPT_RKT0_+0x58> 225f1: 48 8b 45 d0 mov -0x30(%rbp),%rax 225f5: 48 89 c6 mov %rax,%rsi 225f8: 48 89 df mov %rbx,%rdi 225fb: e8 00 0b ff ff callq 13100 <_ZNSsC1ERKSs@plt> } 22600: eb 19 jmp 2261b <_ZSt10_ConstructISsSsEvPT_RKT0_+0x58> 22602: 49 89 c5 mov %rax,%r13 inline void _Construct(_T1* __p, const _T2& __value) { // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_]allocator::construct ::new(static_cast(__p)) _T1(__value); 22605: 4c 89 e6 mov %r12,%rsi 22608: 48 89 df mov %rbx,%rdi 2260b: e8 30 1e ff ff callq 14440 <_ZdlPvS_@plt> 22610: 4c 89 e8 mov %r13,%rax 22613: 48 89 c7 mov %rax,%rdi 22616: e8 65 1f ff ff callq 14580 <_Unwind_Resume@plt> } 2261b: 48 83 c4 18 add $0x18,%rsp 2261f: 5b pop %rbx 22620: 41 5c pop %r12 22622: 41 5d pop %r13 22624: 5d pop %rbp 22625: c3 retq 0000000000022626 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 22626: 55 push %rbp 22627: 48 89 e5 mov %rsp,%rbp 2262a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 2262e: 48 b8 55 55 55 55 55 movabs $0x555555555555555,%rax 22635: 55 55 05 22638: 5d pop %rbp 22639: c3 retq 000000000002263a <_ZNSt6vectorISsSaISsEED1Ev>: * The dtor only erases the elements, and note that if the * elements themselves are pointers, the pointed-to memory is * not touched in any way. Managing the pointer is the user's * responsibility. */ ~vector() 2263a: 55 push %rbp 2263b: 48 89 e5 mov %rsp,%rbp 2263e: 53 push %rbx 2263f: 48 83 ec 18 sub $0x18,%rsp 22643: 48 89 7d e8 mov %rdi,-0x18(%rbp) { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 22647: 48 8b 45 e8 mov -0x18(%rbp),%rax 2264b: 48 89 c7 mov %rax,%rdi 2264e: e8 3d 08 ff ff callq 12e90 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 22653: 48 89 c2 mov %rax,%rdx 22656: 48 8b 45 e8 mov -0x18(%rbp),%rax 2265a: 48 8b 48 08 mov 0x8(%rax),%rcx 2265e: 48 8b 45 e8 mov -0x18(%rbp),%rax 22662: 48 8b 00 mov (%rax),%rax 22665: 48 89 ce mov %rcx,%rsi 22668: 48 89 c7 mov %rax,%rdi 2266b: e8 10 07 ff ff callq 12d80 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_get_Tp_allocator()); } 22670: 48 8b 45 e8 mov -0x18(%rbp),%rax 22674: 48 89 c7 mov %rax,%rdi 22677: e8 24 02 ff ff callq 128a0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt> 2267c: 48 83 c4 18 add $0x18,%rsp 22680: 5b pop %rbx 22681: 5d pop %rbp 22682: c3 retq 22683: 48 89 c3 mov %rax,%rbx 22686: 48 8b 45 e8 mov -0x18(%rbp),%rax 2268a: 48 89 c7 mov %rax,%rdi 2268d: e8 0e 02 ff ff callq 128a0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt> 22692: 48 89 d8 mov %rbx,%rax 22695: 48 89 c7 mov %rax,%rdi 22698: e8 e3 1e ff ff callq 14580 <_Unwind_Resume@plt> 2269d: 90 nop 2269e: 90 nop 2269f: 90 nop 00000000000226a0 <_ZL4initPKc>: static uint64_t read_cluster_id = 0; static uint64_t write_cluster_id = 0; static int init(const char * conf_file) { 226a0: 55 push %rbp 226a1: 48 89 e5 mov %rsp,%rbp 226a4: 48 83 ec 30 sub $0x30,%rsp 226a8: 48 89 7d d8 mov %rdi,-0x28(%rbp) const char * func_name = "init()"; 226ac: 48 8d 05 13 15 00 00 lea 0x1513(%rip),%rax # 23bc6 <_ZTS11XLogHandler+0x22> 226b3: 48 89 45 f0 mov %rax,-0x10(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 226b7: 48 8b 05 62 8e 20 00 mov 0x208e62(%rip),%rax # 22b520 <_ZL8MOD_NAME> 226be: 48 8b 55 f0 mov -0x10(%rbp),%rdx 226c2: 48 8d 0d 04 15 00 00 lea 0x1504(%rip),%rcx # 23bcd <_ZTS11XLogHandler+0x29> 226c9: 48 89 c6 mov %rax,%rsi 226cc: 48 8b 05 bd 78 20 00 mov 0x2078bd(%rip),%rax # 229f90 <_DYNAMIC+0x240> 226d3: 48 89 c7 mov %rax,%rdi 226d6: b8 00 00 00 00 mov $0x0,%eax 226db: e8 f0 18 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> if (read_cluster_id == 0) 226e0: 48 8b 05 f9 91 20 00 mov 0x2091f9(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 226e7: 48 85 c0 test %rax,%rax 226ea: 0f 85 d0 01 00 00 jne 228c0 <_ZL4initPKc+0x220> { logger.debug(MOD_NAME, func_name, "init read cluster"); 226f0: 48 8b 05 29 8e 20 00 mov 0x208e29(%rip),%rax # 22b520 <_ZL8MOD_NAME> 226f7: 48 8b 55 f0 mov -0x10(%rbp),%rdx 226fb: 48 8d 0d d3 14 00 00 lea 0x14d3(%rip),%rcx # 23bd5 <_ZTS11XLogHandler+0x31> 22702: 48 89 c6 mov %rax,%rsi 22705: 48 8b 05 84 78 20 00 mov 0x207884(%rip),%rax # 229f90 <_DYNAMIC+0x240> 2270c: 48 89 c7 mov %rax,%rdi 2270f: b8 00 00 00 00 mov $0x0,%eax 22714: e8 b7 18 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster; int err = rados_create(&cluster, NULL); 22719: 48 8d 45 e8 lea -0x18(%rbp),%rax 2271d: be 00 00 00 00 mov $0x0,%esi 22722: 48 89 c7 mov %rax,%rdi 22725: e8 f6 15 ff ff callq 13d20 2272a: 89 45 f8 mov %eax,-0x8(%rbp) if (err < 0) 2272d: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) 22731: 79 31 jns 22764 <_ZL4initPKc+0xc4> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle"); 22733: 48 8b 05 e6 8d 20 00 mov 0x208de6(%rip),%rax # 22b520 <_ZL8MOD_NAME> 2273a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2273e: 48 8d 0d a3 14 00 00 lea 0x14a3(%rip),%rcx # 23be8 <_ZTS11XLogHandler+0x44> 22745: 48 89 c6 mov %rax,%rsi 22748: 48 8b 05 41 78 20 00 mov 0x207841(%rip),%rax # 229f90 <_DYNAMIC+0x240> 2274f: 48 89 c7 mov %rax,%rdi 22752: b8 00 00 00 00 mov $0x0,%eax 22757: e8 c4 16 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 2275c: 8b 45 f8 mov -0x8(%rbp),%eax 2275f: e9 3b 03 00 00 jmpq 22a9f <_ZL4initPKc+0x3ff> } logger.debug(MOD_NAME, func_name, "cluster created"); 22764: 48 8b 05 b5 8d 20 00 mov 0x208db5(%rip),%rax # 22b520 <_ZL8MOD_NAME> 2276b: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2276f: 48 8d 0d 92 14 00 00 lea 0x1492(%rip),%rcx # 23c08 <_ZTS11XLogHandler+0x64> 22776: 48 89 c6 mov %rax,%rsi 22779: 48 8b 05 10 78 20 00 mov 0x207810(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22780: 48 89 c7 mov %rax,%rdi 22783: b8 00 00 00 00 mov $0x0,%eax 22788: e8 43 18 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 2278d: 48 8b 05 fc 77 20 00 mov 0x2077fc(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22794: 48 89 c7 mov %rax,%rdi 22797: e8 44 08 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> read_cluster_id = new_id(); 2279c: e8 0f 16 ff ff callq 13db0 <_Z6new_idv@plt> 227a1: 48 89 05 38 91 20 00 mov %rax,0x209138(%rip) # 22b8e0 <_ZL15read_cluster_id> map_cluster_add(read_cluster_id, cluster); 227a8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 227ac: 48 8b 05 2d 91 20 00 mov 0x20912d(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 227b3: 48 89 d6 mov %rdx,%rsi 227b6: 48 89 c7 mov %rax,%rdi 227b9: e8 b2 1e ff ff callq 14670 <_Z15map_cluster_addmPv@plt> logger.debug(MOD_NAME, func_name, "cluster added to local map: %ld", read_cluster_id); 227be: 48 8b 0d 1b 91 20 00 mov 0x20911b(%rip),%rcx # 22b8e0 <_ZL15read_cluster_id> 227c5: 48 8b 05 54 8d 20 00 mov 0x208d54(%rip),%rax # 22b520 <_ZL8MOD_NAME> 227cc: 48 8b 55 f0 mov -0x10(%rbp),%rdx 227d0: 49 89 c8 mov %rcx,%r8 227d3: 48 8d 0d 3e 14 00 00 lea 0x143e(%rip),%rcx # 23c18 <_ZTS11XLogHandler+0x74> 227da: 48 89 c6 mov %rax,%rsi 227dd: 48 8b 05 ac 77 20 00 mov 0x2077ac(%rip),%rax # 229f90 <_DYNAMIC+0x240> 227e4: 48 89 c7 mov %rax,%rdi 227e7: b8 00 00 00 00 mov $0x0,%eax 227ec: e8 df 17 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 227f1: 48 8b 05 98 77 20 00 mov 0x207798(%rip),%rax # 229f90 <_DYNAMIC+0x240> 227f8: 48 89 c7 mov %rax,%rdi 227fb: e8 e0 07 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> err = rados_conf_read_file(cluster, conf_file); 22800: 48 8b 45 e8 mov -0x18(%rbp),%rax 22804: 48 8b 55 d8 mov -0x28(%rbp),%rdx 22808: 48 89 d6 mov %rdx,%rsi 2280b: 48 89 c7 mov %rax,%rdi 2280e: e8 ad 15 ff ff callq 13dc0 22813: 89 45 f8 mov %eax,-0x8(%rbp) if (err < 0) 22816: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) 2281a: 79 42 jns 2285e <_ZL4initPKc+0x1be> { logger.error(MOD_NAME, func_name, "failed to read default config file %s for cluster: %ld", conf_file, read_cluster_id); 2281c: 48 8b 35 bd 90 20 00 mov 0x2090bd(%rip),%rsi # 22b8e0 <_ZL15read_cluster_id> 22823: 48 8b 05 f6 8c 20 00 mov 0x208cf6(%rip),%rax # 22b520 <_ZL8MOD_NAME> 2282a: 48 8b 4d d8 mov -0x28(%rbp),%rcx 2282e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22832: 49 89 f1 mov %rsi,%r9 22835: 49 89 c8 mov %rcx,%r8 22838: 48 8d 0d f9 13 00 00 lea 0x13f9(%rip),%rcx # 23c38 <_ZTS11XLogHandler+0x94> 2283f: 48 89 c6 mov %rax,%rsi 22842: 48 8b 05 47 77 20 00 mov 0x207747(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22849: 48 89 c7 mov %rax,%rdi 2284c: b8 00 00 00 00 mov $0x0,%eax 22851: e8 ca 15 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 22856: 8b 45 f8 mov -0x8(%rbp),%eax 22859: e9 41 02 00 00 jmpq 22a9f <_ZL4initPKc+0x3ff> } err = rados_connect(cluster); 2285e: 48 8b 45 e8 mov -0x18(%rbp),%rax 22862: 48 89 c7 mov %rax,%rdi 22865: e8 86 02 ff ff callq 12af0 2286a: 89 45 f8 mov %eax,-0x8(%rbp) if (err < 0) 2286d: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) 22871: 79 4d jns 228c0 <_ZL4initPKc+0x220> { logger.error(MOD_NAME, func_name, "failed to connect to cluster %ld: %s", read_cluster_id, strerror(-err)); 22873: 8b 45 f8 mov -0x8(%rbp),%eax 22876: f7 d8 neg %eax 22878: 89 c7 mov %eax,%edi 2287a: e8 f1 10 ff ff callq 13970 2287f: 48 89 c1 mov %rax,%rcx 22882: 48 8b 35 57 90 20 00 mov 0x209057(%rip),%rsi # 22b8e0 <_ZL15read_cluster_id> 22889: 48 8b 05 90 8c 20 00 mov 0x208c90(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22890: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22894: 49 89 c9 mov %rcx,%r9 22897: 49 89 f0 mov %rsi,%r8 2289a: 48 8d 0d cf 13 00 00 lea 0x13cf(%rip),%rcx # 23c70 <_ZTS11XLogHandler+0xcc> 228a1: 48 89 c6 mov %rax,%rsi 228a4: 48 8b 05 e5 76 20 00 mov 0x2076e5(%rip),%rax # 229f90 <_DYNAMIC+0x240> 228ab: 48 89 c7 mov %rax,%rdi 228ae: b8 00 00 00 00 mov $0x0,%eax 228b3: e8 68 15 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 228b8: 8b 45 f8 mov -0x8(%rbp),%eax 228bb: e9 df 01 00 00 jmpq 22a9f <_ZL4initPKc+0x3ff> } } if (write_cluster_id == 0) 228c0: 48 8b 05 21 90 20 00 mov 0x209021(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 228c7: 48 85 c0 test %rax,%rax 228ca: 0f 85 ca 01 00 00 jne 22a9a <_ZL4initPKc+0x3fa> { logger.debug(MOD_NAME, func_name, "init write cluster"); 228d0: 48 8b 05 49 8c 20 00 mov 0x208c49(%rip),%rax # 22b520 <_ZL8MOD_NAME> 228d7: 48 8b 55 f0 mov -0x10(%rbp),%rdx 228db: 48 8d 0d b3 13 00 00 lea 0x13b3(%rip),%rcx # 23c95 <_ZTS11XLogHandler+0xf1> 228e2: 48 89 c6 mov %rax,%rsi 228e5: 48 8b 05 a4 76 20 00 mov 0x2076a4(%rip),%rax # 229f90 <_DYNAMIC+0x240> 228ec: 48 89 c7 mov %rax,%rdi 228ef: b8 00 00 00 00 mov $0x0,%eax 228f4: e8 d7 16 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster; int err = rados_create(&cluster, NULL); 228f9: 48 8d 45 e8 lea -0x18(%rbp),%rax 228fd: be 00 00 00 00 mov $0x0,%esi 22902: 48 89 c7 mov %rax,%rdi 22905: e8 16 14 ff ff callq 13d20 2290a: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 2290d: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 22911: 79 31 jns 22944 <_ZL4initPKc+0x2a4> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle"); 22913: 48 8b 05 06 8c 20 00 mov 0x208c06(%rip),%rax # 22b520 <_ZL8MOD_NAME> 2291a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2291e: 48 8d 0d c3 12 00 00 lea 0x12c3(%rip),%rcx # 23be8 <_ZTS11XLogHandler+0x44> 22925: 48 89 c6 mov %rax,%rsi 22928: 48 8b 05 61 76 20 00 mov 0x207661(%rip),%rax # 229f90 <_DYNAMIC+0x240> 2292f: 48 89 c7 mov %rax,%rdi 22932: b8 00 00 00 00 mov $0x0,%eax 22937: e8 e4 14 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 2293c: 8b 45 fc mov -0x4(%rbp),%eax 2293f: e9 5b 01 00 00 jmpq 22a9f <_ZL4initPKc+0x3ff> } logger.debug(MOD_NAME, func_name, "cluster created"); 22944: 48 8b 05 d5 8b 20 00 mov 0x208bd5(%rip),%rax # 22b520 <_ZL8MOD_NAME> 2294b: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2294f: 48 8d 0d b2 12 00 00 lea 0x12b2(%rip),%rcx # 23c08 <_ZTS11XLogHandler+0x64> 22956: 48 89 c6 mov %rax,%rsi 22959: 48 8b 05 30 76 20 00 mov 0x207630(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22960: 48 89 c7 mov %rax,%rdi 22963: b8 00 00 00 00 mov $0x0,%eax 22968: e8 63 16 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 2296d: 48 8b 05 1c 76 20 00 mov 0x20761c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22974: 48 89 c7 mov %rax,%rdi 22977: e8 64 06 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> write_cluster_id = new_id(); 2297c: e8 2f 14 ff ff callq 13db0 <_Z6new_idv@plt> 22981: 48 89 05 60 8f 20 00 mov %rax,0x208f60(%rip) # 22b8e8 <_ZL16write_cluster_id> map_cluster_add(write_cluster_id, cluster); 22988: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2298c: 48 8b 05 55 8f 20 00 mov 0x208f55(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 22993: 48 89 d6 mov %rdx,%rsi 22996: 48 89 c7 mov %rax,%rdi 22999: e8 d2 1c ff ff callq 14670 <_Z15map_cluster_addmPv@plt> logger.debug(MOD_NAME, func_name, "cluster added to local map: %ld", write_cluster_id); 2299e: 48 8b 0d 43 8f 20 00 mov 0x208f43(%rip),%rcx # 22b8e8 <_ZL16write_cluster_id> 229a5: 48 8b 05 74 8b 20 00 mov 0x208b74(%rip),%rax # 22b520 <_ZL8MOD_NAME> 229ac: 48 8b 55 f0 mov -0x10(%rbp),%rdx 229b0: 49 89 c8 mov %rcx,%r8 229b3: 48 8d 0d 5e 12 00 00 lea 0x125e(%rip),%rcx # 23c18 <_ZTS11XLogHandler+0x74> 229ba: 48 89 c6 mov %rax,%rsi 229bd: 48 8b 05 cc 75 20 00 mov 0x2075cc(%rip),%rax # 229f90 <_DYNAMIC+0x240> 229c4: 48 89 c7 mov %rax,%rdi 229c7: b8 00 00 00 00 mov $0x0,%eax 229cc: e8 ff 15 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 229d1: 48 8b 05 b8 75 20 00 mov 0x2075b8(%rip),%rax # 229f90 <_DYNAMIC+0x240> 229d8: 48 89 c7 mov %rax,%rdi 229db: e8 00 06 ff ff callq 12fe0 <_ZN4XLog5flushEv@plt> err = rados_conf_read_file(cluster, conf_file); 229e0: 48 8b 45 e8 mov -0x18(%rbp),%rax 229e4: 48 8b 55 d8 mov -0x28(%rbp),%rdx 229e8: 48 89 d6 mov %rdx,%rsi 229eb: 48 89 c7 mov %rax,%rdi 229ee: e8 cd 13 ff ff callq 13dc0 229f3: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 229f6: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 229fa: 79 3f jns 22a3b <_ZL4initPKc+0x39b> { logger.error(MOD_NAME, func_name, "failed to read default config file %s for cluster: %ld", conf_file, write_cluster_id); 229fc: 48 8b 35 e5 8e 20 00 mov 0x208ee5(%rip),%rsi # 22b8e8 <_ZL16write_cluster_id> 22a03: 48 8b 05 16 8b 20 00 mov 0x208b16(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22a0a: 48 8b 4d d8 mov -0x28(%rbp),%rcx 22a0e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22a12: 49 89 f1 mov %rsi,%r9 22a15: 49 89 c8 mov %rcx,%r8 22a18: 48 8d 0d 19 12 00 00 lea 0x1219(%rip),%rcx # 23c38 <_ZTS11XLogHandler+0x94> 22a1f: 48 89 c6 mov %rax,%rsi 22a22: 48 8b 05 67 75 20 00 mov 0x207567(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22a29: 48 89 c7 mov %rax,%rdi 22a2c: b8 00 00 00 00 mov $0x0,%eax 22a31: e8 ea 13 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 22a36: 8b 45 fc mov -0x4(%rbp),%eax 22a39: eb 64 jmp 22a9f <_ZL4initPKc+0x3ff> } err = rados_connect(cluster); 22a3b: 48 8b 45 e8 mov -0x18(%rbp),%rax 22a3f: 48 89 c7 mov %rax,%rdi 22a42: e8 a9 00 ff ff callq 12af0 22a47: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 22a4a: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 22a4e: 79 4a jns 22a9a <_ZL4initPKc+0x3fa> { logger.error(MOD_NAME, func_name, "failed to connect to cluster %ld: %s", write_cluster_id, strerror(-err)); 22a50: 8b 45 fc mov -0x4(%rbp),%eax 22a53: f7 d8 neg %eax 22a55: 89 c7 mov %eax,%edi 22a57: e8 14 0f ff ff callq 13970 22a5c: 48 89 c1 mov %rax,%rcx 22a5f: 48 8b 35 82 8e 20 00 mov 0x208e82(%rip),%rsi # 22b8e8 <_ZL16write_cluster_id> 22a66: 48 8b 05 b3 8a 20 00 mov 0x208ab3(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22a6d: 48 8b 55 f0 mov -0x10(%rbp),%rdx 22a71: 49 89 c9 mov %rcx,%r9 22a74: 49 89 f0 mov %rsi,%r8 22a77: 48 8d 0d f2 11 00 00 lea 0x11f2(%rip),%rcx # 23c70 <_ZTS11XLogHandler+0xcc> 22a7e: 48 89 c6 mov %rax,%rsi 22a81: 48 8b 05 08 75 20 00 mov 0x207508(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22a88: 48 89 c7 mov %rax,%rdi 22a8b: b8 00 00 00 00 mov $0x0,%eax 22a90: e8 8b 13 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return err; 22a95: 8b 45 fc mov -0x4(%rbp),%eax 22a98: eb 05 jmp 22a9f <_ZL4initPKc+0x3ff> } } return 0; 22a9a: b8 00 00 00 00 mov $0x0,%eax } 22a9f: c9 leaveq 22aa0: c3 retq 0000000000022aa1 <_Z12x_yunio_initP18enif_environment_tiPKm>: ERL_NIF_TERM x_yunio_init(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 22aa1: 55 push %rbp 22aa2: 48 89 e5 mov %rsp,%rbp 22aa5: 48 81 ec 40 08 00 00 sub $0x840,%rsp 22aac: 48 89 bd d8 f7 ff ff mov %rdi,-0x828(%rbp) 22ab3: 89 b5 d4 f7 ff ff mov %esi,-0x82c(%rbp) 22ab9: 48 89 95 c8 f7 ff ff mov %rdx,-0x838(%rbp) 22ac0: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 22ac7: 00 00 22ac9: 48 89 45 f8 mov %rax,-0x8(%rbp) 22acd: 31 c0 xor %eax,%eax const char * func_name = "x_yunio_init()"; 22acf: 48 8d 05 d2 11 00 00 lea 0x11d2(%rip),%rax # 23ca8 <_ZTS11XLogHandler+0x104> 22ad6: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 22add: 48 8b 05 3c 8a 20 00 mov 0x208a3c(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22ae4: 48 8b 95 e0 f7 ff ff mov -0x820(%rbp),%rdx 22aeb: 48 8d 0d db 10 00 00 lea 0x10db(%rip),%rcx # 23bcd <_ZTS11XLogHandler+0x29> 22af2: 48 89 c6 mov %rax,%rsi 22af5: 48 8b 05 94 74 20 00 mov 0x207494(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22afc: 48 89 c7 mov %rax,%rdi 22aff: b8 00 00 00 00 mov $0x0,%eax 22b04: e8 c7 14 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> char conf_file[MAX_FILE_NAME_LEN]; memset(conf_file, 0, MAX_FILE_NAME_LEN); 22b09: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 22b10: ba 00 08 00 00 mov $0x800,%edx 22b15: be 00 00 00 00 mov $0x0,%esi 22b1a: 48 89 c7 mov %rax,%rdi 22b1d: e8 de fe fe ff callq 12a00 if (!enif_get_string(env, argv[0], conf_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) 22b22: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 22b29: 48 8b 30 mov (%rax),%rsi 22b2c: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 22b33: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 22b3a: 41 b8 01 00 00 00 mov $0x1,%r8d 22b40: b9 00 08 00 00 mov $0x800,%ecx 22b45: 48 89 c7 mov %rax,%rdi 22b48: e8 e3 16 ff ff callq 14230 22b4d: 85 c0 test %eax,%eax 22b4f: 0f 94 c0 sete %al 22b52: 84 c0 test %al,%al 22b54: 74 3d je 22b93 <_Z12x_yunio_initP18enif_environment_tiPKm+0xf2> { logger.error(MOD_NAME, func_name, "enif get params failed"); 22b56: 48 8b 05 c3 89 20 00 mov 0x2089c3(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22b5d: 48 8b 95 e0 f7 ff ff mov -0x820(%rbp),%rdx 22b64: 48 8d 0d 4c 11 00 00 lea 0x114c(%rip),%rcx # 23cb7 <_ZTS11XLogHandler+0x113> 22b6b: 48 89 c6 mov %rax,%rsi 22b6e: 48 8b 05 1b 74 20 00 mov 0x20741b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22b75: 48 89 c7 mov %rax,%rdi 22b78: b8 00 00 00 00 mov $0x0,%eax 22b7d: e8 9e 12 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 22b82: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 22b89: 48 89 c7 mov %rax,%rdi 22b8c: e8 2f 0d ff ff callq 138c0 22b91: eb 51 jmp 22be4 <_Z12x_yunio_initP18enif_environment_tiPKm+0x143> } int err = init(conf_file); 22b93: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 22b9a: 48 89 c7 mov %rax,%rdi 22b9d: e8 fe fa ff ff callq 226a0 <_ZL4initPKc> 22ba2: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 22ba8: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 22baf: 79 1d jns 22bce <_Z12x_yunio_initP18enif_environment_tiPKm+0x12d> return make_error_tuple(env, -err); 22bb1: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 22bb7: 89 c2 mov %eax,%edx 22bb9: f7 da neg %edx 22bbb: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 22bc2: 89 d6 mov %edx,%esi 22bc4: 48 89 c7 mov %rax,%rdi 22bc7: e8 94 12 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 22bcc: eb 16 jmp 22be4 <_Z12x_yunio_initP18enif_environment_tiPKm+0x143> return enif_make_atom(env, "ok"); 22bce: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 22bd5: 48 8d 35 f2 10 00 00 lea 0x10f2(%rip),%rsi # 23cce <_ZTS11XLogHandler+0x12a> 22bdc: 48 89 c7 mov %rax,%rdi 22bdf: e8 8c 01 ff ff callq 12d70 } 22be4: 48 8b 55 f8 mov -0x8(%rbp),%rdx 22be8: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 22bef: 00 00 22bf1: 74 05 je 22bf8 <_Z12x_yunio_initP18enif_environment_tiPKm+0x157> 22bf3: e8 e8 12 ff ff callq 13ee0 <__stack_chk_fail@plt> 22bf8: c9 leaveq 22bf9: c3 retq 0000000000022bfa <_Z13x_yunio_clearP18enif_environment_tiPKm>: ERL_NIF_TERM x_yunio_clear(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 22bfa: 55 push %rbp 22bfb: 48 89 e5 mov %rsp,%rbp 22bfe: 48 83 ec 40 sub $0x40,%rsp 22c02: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22c06: 89 75 d4 mov %esi,-0x2c(%rbp) 22c09: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_yunio_clear()"; 22c0d: 48 8d 05 bd 10 00 00 lea 0x10bd(%rip),%rax # 23cd1 <_ZTS11XLogHandler+0x12d> 22c14: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 22c18: 48 8b 05 01 89 20 00 mov 0x208901(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22c1f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22c23: 48 8d 0d a3 0f 00 00 lea 0xfa3(%rip),%rcx # 23bcd <_ZTS11XLogHandler+0x29> 22c2a: 48 89 c6 mov %rax,%rsi 22c2d: 48 8b 05 5c 73 20 00 mov 0x20735c(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22c34: 48 89 c7 mov %rax,%rdi 22c37: b8 00 00 00 00 mov $0x0,%eax 22c3c: e8 8f 13 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> if (read_cluster_id) 22c41: 48 8b 05 98 8c 20 00 mov 0x208c98(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 22c48: 48 85 c0 test %rax,%rax 22c4b: 0f 84 84 00 00 00 je 22cd5 <_Z13x_yunio_clearP18enif_environment_tiPKm+0xdb> { rados_t cluster = map_cluster_get(read_cluster_id); 22c51: 48 8b 05 88 8c 20 00 mov 0x208c88(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 22c58: 48 89 c7 mov %rax,%rdi 22c5b: e8 b0 02 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 22c60: 48 89 45 f0 mov %rax,-0x10(%rbp) if (cluster == NULL) 22c64: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 22c69: 75 44 jne 22caf <_Z13x_yunio_clearP18enif_environment_tiPKm+0xb5> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", read_cluster_id); 22c6b: 48 8b 0d 6e 8c 20 00 mov 0x208c6e(%rip),%rcx # 22b8e0 <_ZL15read_cluster_id> 22c72: 48 8b 05 a7 88 20 00 mov 0x2088a7(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22c79: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22c7d: 49 89 c8 mov %rcx,%r8 22c80: 48 8d 0d 5a 10 00 00 lea 0x105a(%rip),%rcx # 23ce1 <_ZTS11XLogHandler+0x13d> 22c87: 48 89 c6 mov %rax,%rsi 22c8a: 48 8b 05 ff 72 20 00 mov 0x2072ff(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22c91: 48 89 c7 mov %rax,%rdi 22c94: b8 00 00 00 00 mov $0x0,%eax 22c99: e8 82 11 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 22c9e: 48 8b 45 d8 mov -0x28(%rbp),%rax 22ca2: 48 89 c7 mov %rax,%rdi 22ca5: e8 16 0c ff ff callq 138c0 22caa: e9 ca 00 00 00 jmpq 22d79 <_Z13x_yunio_clearP18enif_environment_tiPKm+0x17f> } rados_shutdown(cluster); 22caf: 48 8b 45 f0 mov -0x10(%rbp),%rax 22cb3: 48 89 c7 mov %rax,%rdi 22cb6: e8 e5 06 ff ff callq 133a0 map_cluster_remove(read_cluster_id); 22cbb: 48 8b 05 1e 8c 20 00 mov 0x208c1e(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 22cc2: 48 89 c7 mov %rax,%rdi 22cc5: e8 66 0a ff ff callq 13730 <_Z18map_cluster_removem@plt> read_cluster_id = 0; 22cca: 48 c7 05 0b 8c 20 00 movq $0x0,0x208c0b(%rip) # 22b8e0 <_ZL15read_cluster_id> 22cd1: 00 00 00 00 } if (write_cluster_id) 22cd5: 48 8b 05 0c 8c 20 00 mov 0x208c0c(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 22cdc: 48 85 c0 test %rax,%rax 22cdf: 0f 84 81 00 00 00 je 22d66 <_Z13x_yunio_clearP18enif_environment_tiPKm+0x16c> { rados_t cluster = map_cluster_get(write_cluster_id); 22ce5: 48 8b 05 fc 8b 20 00 mov 0x208bfc(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 22cec: 48 89 c7 mov %rax,%rdi 22cef: e8 1c 02 ff ff callq 12f10 <_Z15map_cluster_getm@plt> 22cf4: 48 89 45 f8 mov %rax,-0x8(%rbp) if (cluster == NULL) 22cf8: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 22cfd: 75 41 jne 22d40 <_Z13x_yunio_clearP18enif_environment_tiPKm+0x146> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", write_cluster_id); 22cff: 48 8b 0d e2 8b 20 00 mov 0x208be2(%rip),%rcx # 22b8e8 <_ZL16write_cluster_id> 22d06: 48 8b 05 13 88 20 00 mov 0x208813(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22d0d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22d11: 49 89 c8 mov %rcx,%r8 22d14: 48 8d 0d c6 0f 00 00 lea 0xfc6(%rip),%rcx # 23ce1 <_ZTS11XLogHandler+0x13d> 22d1b: 48 89 c6 mov %rax,%rsi 22d1e: 48 8b 05 6b 72 20 00 mov 0x20726b(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22d25: 48 89 c7 mov %rax,%rdi 22d28: b8 00 00 00 00 mov $0x0,%eax 22d2d: e8 ee 10 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 22d32: 48 8b 45 d8 mov -0x28(%rbp),%rax 22d36: 48 89 c7 mov %rax,%rdi 22d39: e8 82 0b ff ff callq 138c0 22d3e: eb 39 jmp 22d79 <_Z13x_yunio_clearP18enif_environment_tiPKm+0x17f> } rados_shutdown(cluster); 22d40: 48 8b 45 f8 mov -0x8(%rbp),%rax 22d44: 48 89 c7 mov %rax,%rdi 22d47: e8 54 06 ff ff callq 133a0 map_cluster_remove(write_cluster_id); 22d4c: 48 8b 05 95 8b 20 00 mov 0x208b95(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 22d53: 48 89 c7 mov %rax,%rdi 22d56: e8 d5 09 ff ff callq 13730 <_Z18map_cluster_removem@plt> write_cluster_id = 0; 22d5b: 48 c7 05 82 8b 20 00 movq $0x0,0x208b82(%rip) # 22b8e8 <_ZL16write_cluster_id> 22d62: 00 00 00 00 } return enif_make_atom(env, "ok"); 22d66: 48 8b 45 d8 mov -0x28(%rbp),%rax 22d6a: 48 8d 35 5d 0f 00 00 lea 0xf5d(%rip),%rsi # 23cce <_ZTS11XLogHandler+0x12a> 22d71: 48 89 c7 mov %rax,%rdi 22d74: e8 f7 ff fe ff callq 12d70 } 22d79: c9 leaveq 22d7a: c3 retq 0000000000022d7b <_Z24x_yunio_get_read_clusterP18enif_environment_tiPKm>: ERL_NIF_TERM x_yunio_get_read_cluster(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 22d7b: 55 push %rbp 22d7c: 48 89 e5 mov %rsp,%rbp 22d7f: 53 push %rbx 22d80: 48 83 ec 38 sub $0x38,%rsp 22d84: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22d88: 89 75 d4 mov %esi,-0x2c(%rbp) 22d8b: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_yunio_get_read_cluster()"; 22d8f: 48 8d 05 66 0f 00 00 lea 0xf66(%rip),%rax # 23cfc <_ZTS11XLogHandler+0x158> 22d96: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 22d9a: 48 8b 05 7f 87 20 00 mov 0x20877f(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22da1: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22da5: 48 8d 0d 21 0e 00 00 lea 0xe21(%rip),%rcx # 23bcd <_ZTS11XLogHandler+0x29> 22dac: 48 89 c6 mov %rax,%rsi 22daf: 48 8b 05 da 71 20 00 mov 0x2071da(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22db6: 48 89 c7 mov %rax,%rdi 22db9: b8 00 00 00 00 mov $0x0,%eax 22dbe: e8 0d 12 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> if (read_cluster_id == 0) 22dc3: 48 8b 05 16 8b 20 00 mov 0x208b16(%rip),%rax # 22b8e0 <_ZL15read_cluster_id> 22dca: 48 85 c0 test %rax,%rax 22dcd: 75 3c jne 22e0b <_Z24x_yunio_get_read_clusterP18enif_environment_tiPKm+0x90> { logger.error(MOD_NAME, func_name, "Cluster handles not initialized. Should call yunio_init() first."); 22dcf: 48 8b 05 4a 87 20 00 mov 0x20874a(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22dd6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22dda: 48 8d 0d 37 0f 00 00 lea 0xf37(%rip),%rcx # 23d18 <_ZTS11XLogHandler+0x174> 22de1: 48 89 c6 mov %rax,%rsi 22de4: 48 8b 05 a5 71 20 00 mov 0x2071a5(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22deb: 48 89 c7 mov %rax,%rdi 22dee: b8 00 00 00 00 mov $0x0,%eax 22df3: e8 28 10 ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, EAGAIN); 22df8: 48 8b 45 d8 mov -0x28(%rbp),%rax 22dfc: be 0b 00 00 00 mov $0xb,%esi 22e01: 48 89 c7 mov %rax,%rdi 22e04: e8 57 10 ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 22e09: eb 48 jmp 22e53 <_Z24x_yunio_get_read_clusterP18enif_environment_tiPKm+0xd8> } return enif_make_tuple2(env, 22e0b: 48 8b 15 ce 8a 20 00 mov 0x208ace(%rip),%rdx # 22b8e0 <_ZL15read_cluster_id> 22e12: 48 8b 45 d8 mov -0x28(%rbp),%rax 22e16: 48 89 d6 mov %rdx,%rsi 22e19: 48 89 c7 mov %rax,%rdi 22e1c: e8 2f 0d ff ff callq 13b50 22e21: 48 89 c3 mov %rax,%rbx 22e24: 48 8b 45 d8 mov -0x28(%rbp),%rax 22e28: 48 8d 35 9f 0e 00 00 lea 0xe9f(%rip),%rsi # 23cce <_ZTS11XLogHandler+0x12a> 22e2f: 48 89 c7 mov %rax,%rdi 22e32: e8 39 ff fe ff callq 12d70 22e37: 48 89 c2 mov %rax,%rdx 22e3a: 48 8b 45 d8 mov -0x28(%rbp),%rax 22e3e: 48 89 d9 mov %rbx,%rcx 22e41: be 02 00 00 00 mov $0x2,%esi 22e46: 48 89 c7 mov %rax,%rdi 22e49: b8 00 00 00 00 mov $0x0,%eax 22e4e: e8 ed 13 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, read_cluster_id)); } 22e53: 48 83 c4 38 add $0x38,%rsp 22e57: 5b pop %rbx 22e58: 5d pop %rbp 22e59: c3 retq 0000000000022e5a <_Z25x_yunio_get_write_clusterP18enif_environment_tiPKm>: ERL_NIF_TERM x_yunio_get_write_cluster(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 22e5a: 55 push %rbp 22e5b: 48 89 e5 mov %rsp,%rbp 22e5e: 53 push %rbx 22e5f: 48 83 ec 38 sub $0x38,%rsp 22e63: 48 89 7d d8 mov %rdi,-0x28(%rbp) 22e67: 89 75 d4 mov %esi,-0x2c(%rbp) 22e6a: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_yunio_get_write_cluster()"; 22e6e: 48 8d 05 e4 0e 00 00 lea 0xee4(%rip),%rax # 23d59 <_ZTS11XLogHandler+0x1b5> 22e75: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 22e79: 48 8b 05 a0 86 20 00 mov 0x2086a0(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22e80: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22e84: 48 8d 0d 42 0d 00 00 lea 0xd42(%rip),%rcx # 23bcd <_ZTS11XLogHandler+0x29> 22e8b: 48 89 c6 mov %rax,%rsi 22e8e: 48 8b 05 fb 70 20 00 mov 0x2070fb(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22e95: 48 89 c7 mov %rax,%rdi 22e98: b8 00 00 00 00 mov $0x0,%eax 22e9d: e8 2e 11 ff ff callq 13fd0 <_ZN4XLog5debugEPKcS1_S1_z@plt> if (write_cluster_id == 0) 22ea2: 48 8b 05 3f 8a 20 00 mov 0x208a3f(%rip),%rax # 22b8e8 <_ZL16write_cluster_id> 22ea9: 48 85 c0 test %rax,%rax 22eac: 75 3c jne 22eea <_Z25x_yunio_get_write_clusterP18enif_environment_tiPKm+0x90> { logger.error(MOD_NAME, func_name, "Cluster handles not initialized. Should call yunio_init() first."); 22eae: 48 8b 05 6b 86 20 00 mov 0x20866b(%rip),%rax # 22b520 <_ZL8MOD_NAME> 22eb5: 48 8b 55 e8 mov -0x18(%rbp),%rdx 22eb9: 48 8d 0d 58 0e 00 00 lea 0xe58(%rip),%rcx # 23d18 <_ZTS11XLogHandler+0x174> 22ec0: 48 89 c6 mov %rax,%rsi 22ec3: 48 8b 05 c6 70 20 00 mov 0x2070c6(%rip),%rax # 229f90 <_DYNAMIC+0x240> 22eca: 48 89 c7 mov %rax,%rdi 22ecd: b8 00 00 00 00 mov $0x0,%eax 22ed2: e8 49 0f ff ff callq 13e20 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, EAGAIN); 22ed7: 48 8b 45 d8 mov -0x28(%rbp),%rax 22edb: be 0b 00 00 00 mov $0xb,%esi 22ee0: 48 89 c7 mov %rax,%rdi 22ee3: e8 78 0f ff ff callq 13e60 <_Z16make_error_tupleP18enif_environment_ti@plt> 22ee8: eb 48 jmp 22f32 <_Z25x_yunio_get_write_clusterP18enif_environment_tiPKm+0xd8> } return enif_make_tuple2(env, 22eea: 48 8b 15 f7 89 20 00 mov 0x2089f7(%rip),%rdx # 22b8e8 <_ZL16write_cluster_id> 22ef1: 48 8b 45 d8 mov -0x28(%rbp),%rax 22ef5: 48 89 d6 mov %rdx,%rsi 22ef8: 48 89 c7 mov %rax,%rdi 22efb: e8 50 0c ff ff callq 13b50 22f00: 48 89 c3 mov %rax,%rbx 22f03: 48 8b 45 d8 mov -0x28(%rbp),%rax 22f07: 48 8d 35 c0 0d 00 00 lea 0xdc0(%rip),%rsi # 23cce <_ZTS11XLogHandler+0x12a> 22f0e: 48 89 c7 mov %rax,%rdi 22f11: e8 5a fe fe ff callq 12d70 22f16: 48 89 c2 mov %rax,%rdx 22f19: 48 8b 45 d8 mov -0x28(%rbp),%rax 22f1d: 48 89 d9 mov %rbx,%rcx 22f20: be 02 00 00 00 mov $0x2,%esi 22f25: 48 89 c7 mov %rax,%rdi 22f28: b8 00 00 00 00 mov $0x0,%eax 22f2d: e8 0e 13 ff ff callq 14240 enif_make_atom(env, "ok"), enif_make_uint64(env, write_cluster_id)); } 22f32: 48 83 c4 38 add $0x38,%rsp 22f36: 5b pop %rbx 22f37: 5d pop %rbp 22f38: c3 retq 22f39: 90 nop 22f3a: 90 nop 22f3b: 90 nop 22f3c: 90 nop 22f3d: 90 nop 22f3e: 90 nop 22f3f: 90 nop 0000000000022f40 <__stat>: 22f40: 48 89 f2 mov %rsi,%rdx 22f43: 48 89 fe mov %rdi,%rsi 22f46: bf 01 00 00 00 mov $0x1,%edi 22f4b: e9 50 06 ff ff jmpq 135a0 <__xstat@plt> 0000000000022f50 <__do_global_ctors_aux>: 22f50: 55 push %rbp 22f51: 48 89 e5 mov %rsp,%rbp 22f54: 53 push %rbx 22f55: 48 83 ec 08 sub $0x8,%rsp 22f59: 48 8b 05 68 6b 20 00 mov 0x206b68(%rip),%rax # 229ac8 <__CTOR_LIST__> 22f60: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 22f64: 74 19 je 22f7f <__do_global_ctors_aux+0x2f> 22f66: 48 8d 1d 5b 6b 20 00 lea 0x206b5b(%rip),%rbx # 229ac8 <__CTOR_LIST__> 22f6d: 0f 1f 00 nopl (%rax) 22f70: 48 83 eb 08 sub $0x8,%rbx 22f74: ff d0 callq *%rax 22f76: 48 8b 03 mov (%rbx),%rax 22f79: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 22f7d: 75 f1 jne 22f70 <__do_global_ctors_aux+0x20> 22f7f: 48 83 c4 08 add $0x8,%rsp 22f83: 5b pop %rbx 22f84: 5d pop %rbp 22f85: c3 retq 22f86: 90 nop 22f87: 90 nop Disassembly of section .fini: 0000000000022f88 <_fini>: 22f88: 48 83 ec 08 sub $0x8,%rsp 22f8c: e8 2f 18 ff ff callq 147c0 <__do_global_dtors_aux> 22f91: 48 83 c4 08 add $0x8,%rsp 22f95: c3 retq