rados_nif.so: file format elf64-x86-64 Disassembly of section .init: 0000000000012290 <_init>: 12290: 48 83 ec 08 sub $0x8,%rsp 12294: e8 97 1e 00 00 callq 14130 12299: e8 32 1f 00 00 callq 141d0 1229e: e8 dd fb 00 00 callq 21e80 <__do_global_ctors_aux> 122a3: 48 83 c4 08 add $0x8,%rsp 122a7: c3 retq Disassembly of section .plt: 00000000000122b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt-0x10>: 122b0: ff 35 3a 5d 21 00 pushq 0x215d3a(%rip) # 227ff0 <_GLOBAL_OFFSET_TABLE_+0x8> 122b6: ff 25 3c 5d 21 00 jmpq *0x215d3c(%rip) # 227ff8 <_GLOBAL_OFFSET_TABLE_+0x10> 122bc: 0f 1f 40 00 nopl 0x0(%rax) 00000000000122c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt>: 122c0: ff 25 3a 5d 21 00 jmpq *0x215d3a(%rip) # 228000 <_GLOBAL_OFFSET_TABLE_+0x18> 122c6: 68 00 00 00 00 pushq $0x0 122cb: e9 e0 ff ff ff jmpq 122b0 <_init+0x20> 00000000000122d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt>: 122d0: ff 25 32 5d 21 00 jmpq *0x215d32(%rip) # 228008 <_GLOBAL_OFFSET_TABLE_+0x20> 122d6: 68 01 00 00 00 pushq $0x1 122db: e9 d0 ff ff ff jmpq 122b0 <_init+0x20> 00000000000122e0 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc@plt>: 122e0: ff 25 2a 5d 21 00 jmpq *0x215d2a(%rip) # 228010 <_GLOBAL_OFFSET_TABLE_+0x28> 122e6: 68 02 00 00 00 pushq $0x2 122eb: e9 c0 ff ff ff jmpq 122b0 <_init+0x20> 00000000000122f0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt>: 122f0: ff 25 22 5d 21 00 jmpq *0x215d22(%rip) # 228018 <_GLOBAL_OFFSET_TABLE_+0x30> 122f6: 68 03 00 00 00 pushq $0x3 122fb: e9 b0 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012300 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt>: 12300: ff 25 1a 5d 21 00 jmpq *0x215d1a(%rip) # 228020 <_GLOBAL_OFFSET_TABLE_+0x38> 12306: 68 04 00 00 00 pushq $0x4 1230b: e9 a0 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012310 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_@plt>: 12310: ff 25 12 5d 21 00 jmpq *0x215d12(%rip) # 228028 <_GLOBAL_OFFSET_TABLE_+0x40> 12316: 68 05 00 00 00 pushq $0x5 1231b: e9 90 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012320 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt>: 12320: ff 25 0a 5d 21 00 jmpq *0x215d0a(%rip) # 228030 <_GLOBAL_OFFSET_TABLE_+0x48> 12326: 68 06 00 00 00 pushq $0x6 1232b: e9 80 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012330 : 12330: ff 25 02 5d 21 00 jmpq *0x215d02(%rip) # 228038 <_GLOBAL_OFFSET_TABLE_+0x50> 12336: 68 07 00 00 00 pushq $0x7 1233b: e9 70 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012340 <_ZSt20__throw_length_errorPKc@plt>: 12340: ff 25 fa 5c 21 00 jmpq *0x215cfa(%rip) # 228040 <_GLOBAL_OFFSET_TABLE_+0x58> 12346: 68 08 00 00 00 pushq $0x8 1234b: e9 60 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012350 : 12350: ff 25 f2 5c 21 00 jmpq *0x215cf2(%rip) # 228048 <_GLOBAL_OFFSET_TABLE_+0x60> 12356: 68 09 00 00 00 pushq $0x9 1235b: e9 50 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012360 <_ZSt18uninitialized_copyIPSsS0_ET0_T_S2_S1_@plt>: 12360: ff 25 ea 5c 21 00 jmpq *0x215cea(%rip) # 228050 <_GLOBAL_OFFSET_TABLE_+0x68> 12366: 68 0a 00 00 00 pushq $0xa 1236b: e9 40 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012370 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt13_Rb_tree_nodeIS4_E@plt>: 12370: ff 25 e2 5c 21 00 jmpq *0x215ce2(%rip) # 228058 <_GLOBAL_OFFSET_TABLE_+0x70> 12376: 68 0b 00 00 00 pushq $0xb 1237b: e9 30 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012380 <_ZNSsaSEPKc@plt>: 12380: ff 25 da 5c 21 00 jmpq *0x215cda(%rip) # 228060 <_GLOBAL_OFFSET_TABLE_+0x78> 12386: 68 0c 00 00 00 pushq $0xc 1238b: e9 20 ff ff ff jmpq 122b0 <_init+0x20> 0000000000012390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt>: 12390: ff 25 d2 5c 21 00 jmpq *0x215cd2(%rip) # 228068 <_GLOBAL_OFFSET_TABLE_+0x80> 12396: 68 0d 00 00 00 pushq $0xd 1239b: e9 10 ff ff ff jmpq 122b0 <_init+0x20> 00000000000123a0 <_ZNSsC1Ev@plt>: 123a0: ff 25 ca 5c 21 00 jmpq *0x215cca(%rip) # 228070 <_GLOBAL_OFFSET_TABLE_+0x88> 123a6: 68 0e 00 00 00 pushq $0xe 123ab: e9 00 ff ff ff jmpq 122b0 <_init+0x20> 00000000000123b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt>: 123b0: ff 25 c2 5c 21 00 jmpq *0x215cc2(%rip) # 228078 <_GLOBAL_OFFSET_TABLE_+0x90> 123b6: 68 0f 00 00 00 pushq $0xf 123bb: e9 f0 fe ff ff jmpq 122b0 <_init+0x20> 00000000000123c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt>: 123c0: ff 25 ba 5c 21 00 jmpq *0x215cba(%rip) # 228080 <_GLOBAL_OFFSET_TABLE_+0x98> 123c6: 68 10 00 00 00 pushq $0x10 123cb: e9 e0 fe ff ff jmpq 122b0 <_init+0x20> 00000000000123d0 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt>: 123d0: ff 25 b2 5c 21 00 jmpq *0x215cb2(%rip) # 228088 <_GLOBAL_OFFSET_TABLE_+0xa0> 123d6: 68 11 00 00 00 pushq $0x11 123db: e9 d0 fe ff ff jmpq 122b0 <_init+0x20> 00000000000123e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv@plt>: 123e0: ff 25 aa 5c 21 00 jmpq *0x215caa(%rip) # 228090 <_GLOBAL_OFFSET_TABLE_+0xa8> 123e6: 68 12 00 00 00 pushq $0x12 123eb: e9 c0 fe ff ff jmpq 122b0 <_init+0x20> 00000000000123f0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE6insertESt17_Rb_tree_iteratorIS5_ERKS5_@plt>: 123f0: ff 25 a2 5c 21 00 jmpq *0x215ca2(%rip) # 228098 <_GLOBAL_OFFSET_TABLE_+0xb0> 123f6: 68 13 00 00 00 pushq $0x13 123fb: e9 b0 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012400 <_ZSt10_ConstructISsSsEvPT_RKT0_@plt>: 12400: ff 25 9a 5c 21 00 jmpq *0x215c9a(%rip) # 2280a0 <_GLOBAL_OFFSET_TABLE_+0xb8> 12406: 68 14 00 00 00 pushq $0x14 1240b: e9 a0 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt>: 12410: ff 25 92 5c 21 00 jmpq *0x215c92(%rip) # 2280a8 <_GLOBAL_OFFSET_TABLE_+0xc0> 12416: 68 15 00 00 00 pushq $0x15 1241b: e9 90 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012420 <_ZNSt4listIiSaIiEE5beginEv@plt>: 12420: ff 25 8a 5c 21 00 jmpq *0x215c8a(%rip) # 2280b0 <_GLOBAL_OFFSET_TABLE_+0xc8> 12426: 68 16 00 00 00 pushq $0x16 1242b: e9 80 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012430 : 12430: ff 25 82 5c 21 00 jmpq *0x215c82(%rip) # 2280b8 <_GLOBAL_OFFSET_TABLE_+0xd0> 12436: 68 17 00 00 00 pushq $0x17 1243b: e9 70 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012440 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt>: 12440: ff 25 7a 5c 21 00 jmpq *0x215c7a(%rip) # 2280c0 <_GLOBAL_OFFSET_TABLE_+0xd8> 12446: 68 18 00 00 00 pushq $0x18 1244b: e9 60 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012450 : 12450: ff 25 72 5c 21 00 jmpq *0x215c72(%rip) # 2280c8 <_GLOBAL_OFFSET_TABLE_+0xe0> 12456: 68 19 00 00 00 pushq $0x19 1245b: e9 50 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012460 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt>: 12460: ff 25 6a 5c 21 00 jmpq *0x215c6a(%rip) # 2280d0 <_GLOBAL_OFFSET_TABLE_+0xe8> 12466: 68 1a 00 00 00 pushq $0x1a 1246b: e9 40 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012470 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_@plt>: 12470: ff 25 62 5c 21 00 jmpq *0x215c62(%rip) # 2280d8 <_GLOBAL_OFFSET_TABLE_+0xf0> 12476: 68 1b 00 00 00 pushq $0x1b 1247b: e9 30 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012480 <_ZNKSt4lessISsEclERKSsS2_@plt>: 12480: ff 25 5a 5c 21 00 jmpq *0x215c5a(%rip) # 2280e0 <_GLOBAL_OFFSET_TABLE_+0xf8> 12486: 68 1c 00 00 00 pushq $0x1c 1248b: e9 20 fe ff ff jmpq 122b0 <_init+0x20> 0000000000012490 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt>: 12490: ff 25 52 5c 21 00 jmpq *0x215c52(%rip) # 2280e8 <_GLOBAL_OFFSET_TABLE_+0x100> 12496: 68 1d 00 00 00 pushq $0x1d 1249b: e9 10 fe ff ff jmpq 122b0 <_init+0x20> 00000000000124a0 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt>: 124a0: ff 25 4a 5c 21 00 jmpq *0x215c4a(%rip) # 2280f0 <_GLOBAL_OFFSET_TABLE_+0x108> 124a6: 68 1e 00 00 00 pushq $0x1e 124ab: e9 00 fe ff ff jmpq 122b0 <_init+0x20> 00000000000124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt>: 124b0: ff 25 42 5c 21 00 jmpq *0x215c42(%rip) # 2280f8 <_GLOBAL_OFFSET_TABLE_+0x110> 124b6: 68 1f 00 00 00 pushq $0x1f 124bb: e9 f0 fd ff ff jmpq 122b0 <_init+0x20> 00000000000124c0 <_ZSt11__addressofISsEPT_RS0_@plt>: 124c0: ff 25 3a 5c 21 00 jmpq *0x215c3a(%rip) # 228100 <_GLOBAL_OFFSET_TABLE_+0x118> 124c6: 68 20 00 00 00 pushq $0x20 124cb: e9 e0 fd ff ff jmpq 122b0 <_init+0x20> 00000000000124d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt>: 124d0: ff 25 32 5c 21 00 jmpq *0x215c32(%rip) # 228108 <_GLOBAL_OFFSET_TABLE_+0x120> 124d6: 68 21 00 00 00 pushq $0x21 124db: e9 d0 fd ff ff jmpq 122b0 <_init+0x20> 00000000000124e0 : 124e0: ff 25 2a 5c 21 00 jmpq *0x215c2a(%rip) # 228110 <_GLOBAL_OFFSET_TABLE_+0x128> 124e6: 68 22 00 00 00 pushq $0x22 124eb: e9 c0 fd ff ff jmpq 122b0 <_init+0x20> 00000000000124f0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEC1Ev@plt>: 124f0: ff 25 22 5c 21 00 jmpq *0x215c22(%rip) # 228118 <_GLOBAL_OFFSET_TABLE_+0x130> 124f6: 68 23 00 00 00 pushq $0x23 124fb: e9 b0 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012500 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv@plt>: 12500: ff 25 1a 5c 21 00 jmpq *0x215c1a(%rip) # 228120 <_GLOBAL_OFFSET_TABLE_+0x138> 12506: 68 24 00 00 00 pushq $0x24 1250b: e9 a0 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012510 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv@plt>: 12510: ff 25 12 5c 21 00 jmpq *0x215c12(%rip) # 228128 <_GLOBAL_OFFSET_TABLE_+0x140> 12516: 68 25 00 00 00 pushq $0x25 1251b: e9 90 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012520 <_ZNSt4listIiSaIiEEC1Ev@plt>: 12520: ff 25 0a 5c 21 00 jmpq *0x215c0a(%rip) # 228130 <_GLOBAL_OFFSET_TABLE_+0x148> 12526: 68 26 00 00 00 pushq $0x26 1252b: e9 80 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012530 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1ERKS5_@plt>: 12530: ff 25 02 5c 21 00 jmpq *0x215c02(%rip) # 228138 <_GLOBAL_OFFSET_TABLE_+0x150> 12536: 68 27 00 00 00 pushq $0x27 1253b: e9 70 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012540 : 12540: ff 25 fa 5b 21 00 jmpq *0x215bfa(%rip) # 228140 <_GLOBAL_OFFSET_TABLE_+0x158> 12546: 68 28 00 00 00 pushq $0x28 1254b: e9 60 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012550 : 12550: ff 25 f2 5b 21 00 jmpq *0x215bf2(%rip) # 228148 <_GLOBAL_OFFSET_TABLE_+0x160> 12556: 68 29 00 00 00 pushq $0x29 1255b: e9 50 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012560 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_@plt>: 12560: ff 25 ea 5b 21 00 jmpq *0x215bea(%rip) # 228150 <_GLOBAL_OFFSET_TABLE_+0x168> 12566: 68 2a 00 00 00 pushq $0x2a 1256b: e9 40 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012570 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt>: 12570: ff 25 e2 5b 21 00 jmpq *0x215be2(%rip) # 228158 <_GLOBAL_OFFSET_TABLE_+0x170> 12576: 68 2b 00 00 00 pushq $0x2b 1257b: e9 30 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt>: 12580: ff 25 da 5b 21 00 jmpq *0x215bda(%rip) # 228160 <_GLOBAL_OFFSET_TABLE_+0x178> 12586: 68 2c 00 00 00 pushq $0x2c 1258b: e9 20 fd ff ff jmpq 122b0 <_init+0x20> 0000000000012590 <_ZN11XLogManager8instanceEv@plt>: 12590: ff 25 d2 5b 21 00 jmpq *0x215bd2(%rip) # 228168 <_GLOBAL_OFFSET_TABLE_+0x180> 12596: 68 2d 00 00 00 pushq $0x2d 1259b: e9 10 fd ff ff jmpq 122b0 <_init+0x20> 00000000000125a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 125a0: ff 25 ca 5b 21 00 jmpq *0x215bca(%rip) # 228170 <_GLOBAL_OFFSET_TABLE_+0x188> 125a6: 68 2e 00 00 00 pushq $0x2e 125ab: e9 00 fd ff ff jmpq 122b0 <_init+0x20> 00000000000125b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt>: 125b0: ff 25 c2 5b 21 00 jmpq *0x215bc2(%rip) # 228178 <_GLOBAL_OFFSET_TABLE_+0x190> 125b6: 68 2f 00 00 00 pushq $0x2f 125bb: e9 f0 fc ff ff jmpq 122b0 <_init+0x20> 00000000000125c0 : 125c0: ff 25 ba 5b 21 00 jmpq *0x215bba(%rip) # 228180 <_GLOBAL_OFFSET_TABLE_+0x198> 125c6: 68 30 00 00 00 pushq $0x30 125cb: e9 e0 fc ff ff jmpq 122b0 <_init+0x20> 00000000000125d0 <_ZN11XLogManagerC1Ev@plt>: 125d0: ff 25 b2 5b 21 00 jmpq *0x215bb2(%rip) # 228188 <_GLOBAL_OFFSET_TABLE_+0x1a0> 125d6: 68 31 00 00 00 pushq $0x31 125db: e9 d0 fc ff ff jmpq 122b0 <_init+0x20> 00000000000125e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 125e0: ff 25 aa 5b 21 00 jmpq *0x215baa(%rip) # 228190 <_GLOBAL_OFFSET_TABLE_+0x1a8> 125e6: 68 32 00 00 00 pushq $0x32 125eb: e9 c0 fc ff ff jmpq 122b0 <_init+0x20> 00000000000125f0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt>: 125f0: ff 25 a2 5b 21 00 jmpq *0x215ba2(%rip) # 228198 <_GLOBAL_OFFSET_TABLE_+0x1b0> 125f6: 68 33 00 00 00 pushq $0x33 125fb: e9 b0 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012600 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED2Ev@plt>: 12600: ff 25 9a 5b 21 00 jmpq *0x215b9a(%rip) # 2281a0 <_GLOBAL_OFFSET_TABLE_+0x1b8> 12606: 68 34 00 00 00 pushq $0x34 1260b: e9 a0 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt>: 12610: ff 25 92 5b 21 00 jmpq *0x215b92(%rip) # 2281a8 <_GLOBAL_OFFSET_TABLE_+0x1c0> 12616: 68 35 00 00 00 pushq $0x35 1261b: e9 90 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012620 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt>: 12620: ff 25 8a 5b 21 00 jmpq *0x215b8a(%rip) # 2281b0 <_GLOBAL_OFFSET_TABLE_+0x1c8> 12626: 68 36 00 00 00 pushq $0x36 1262b: e9 80 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012630 <__cxa_guard_acquire@plt>: 12630: ff 25 82 5b 21 00 jmpq *0x215b82(%rip) # 2281b8 <_GLOBAL_OFFSET_TABLE_+0x1d0> 12636: 68 37 00 00 00 pushq $0x37 1263b: e9 70 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012640 <_ZNSt4listIiSaIiEE3endEv@plt>: 12640: ff 25 7a 5b 21 00 jmpq *0x215b7a(%rip) # 2281c0 <_GLOBAL_OFFSET_TABLE_+0x1d8> 12646: 68 38 00 00 00 pushq $0x38 1264b: e9 60 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012650 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv@plt>: 12650: ff 25 72 5b 21 00 jmpq *0x215b72(%rip) # 2281c8 <_GLOBAL_OFFSET_TABLE_+0x1e0> 12656: 68 39 00 00 00 pushq $0x39 1265b: e9 50 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012660 <_ZNSt6vectorISsSaISsEE5beginEv@plt>: 12660: ff 25 6a 5b 21 00 jmpq *0x215b6a(%rip) # 2281d0 <_GLOBAL_OFFSET_TABLE_+0x1e8> 12666: 68 3a 00 00 00 pushq $0x3a 1266b: e9 40 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012670 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv@plt>: 12670: ff 25 62 5b 21 00 jmpq *0x215b62(%rip) # 2281d8 <_GLOBAL_OFFSET_TABLE_+0x1f0> 12676: 68 3b 00 00 00 pushq $0x3b 1267b: e9 30 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012680 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv@plt>: 12680: ff 25 5a 5b 21 00 jmpq *0x215b5a(%rip) # 2281e0 <_GLOBAL_OFFSET_TABLE_+0x1f8> 12686: 68 3c 00 00 00 pushq $0x3c 1268b: e9 20 fc ff ff jmpq 122b0 <_init+0x20> 0000000000012690 <_ZN4XLog8setLevelE8LogLevel@plt>: 12690: ff 25 52 5b 21 00 jmpq *0x215b52(%rip) # 2281e8 <_GLOBAL_OFFSET_TABLE_+0x200> 12696: 68 3d 00 00 00 pushq $0x3d 1269b: e9 10 fc ff ff jmpq 122b0 <_init+0x20> 00000000000126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt>: 126a0: ff 25 4a 5b 21 00 jmpq *0x215b4a(%rip) # 2281f0 <_GLOBAL_OFFSET_TABLE_+0x208> 126a6: 68 3e 00 00 00 pushq $0x3e 126ab: e9 00 fc ff ff jmpq 122b0 <_init+0x20> 00000000000126b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt>: 126b0: ff 25 42 5b 21 00 jmpq *0x215b42(%rip) # 2281f8 <_GLOBAL_OFFSET_TABLE_+0x210> 126b6: 68 3f 00 00 00 pushq $0x3f 126bb: e9 f0 fb ff ff jmpq 122b0 <_init+0x20> 00000000000126c0 <_ZNKSs5c_strEv@plt>: 126c0: ff 25 3a 5b 21 00 jmpq *0x215b3a(%rip) # 228200 <_GLOBAL_OFFSET_TABLE_+0x218> 126c6: 68 40 00 00 00 pushq $0x40 126cb: e9 e0 fb ff ff jmpq 122b0 <_init+0x20> 00000000000126d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt>: 126d0: ff 25 32 5b 21 00 jmpq *0x215b32(%rip) # 228208 <_GLOBAL_OFFSET_TABLE_+0x220> 126d6: 68 41 00 00 00 pushq $0x41 126db: e9 d0 fb ff ff jmpq 122b0 <_init+0x20> 00000000000126e0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt>: 126e0: ff 25 2a 5b 21 00 jmpq *0x215b2a(%rip) # 228210 <_GLOBAL_OFFSET_TABLE_+0x228> 126e6: 68 42 00 00 00 pushq $0x42 126eb: e9 c0 fb ff ff jmpq 122b0 <_init+0x20> 00000000000126f0 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs@plt>: 126f0: ff 25 22 5b 21 00 jmpq *0x215b22(%rip) # 228218 <_GLOBAL_OFFSET_TABLE_+0x230> 126f6: 68 43 00 00 00 pushq $0x43 126fb: e9 b0 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt>: 12700: ff 25 1a 5b 21 00 jmpq *0x215b1a(%rip) # 228220 <_GLOBAL_OFFSET_TABLE_+0x238> 12706: 68 44 00 00 00 pushq $0x44 1270b: e9 a0 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012710 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv@plt>: 12710: ff 25 12 5b 21 00 jmpq *0x215b12(%rip) # 228228 <_GLOBAL_OFFSET_TABLE_+0x240> 12716: 68 45 00 00 00 pushq $0x45 1271b: e9 90 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012720 <_ZN6XMutex4lockEv@plt>: 12720: ff 25 0a 5b 21 00 jmpq *0x215b0a(%rip) # 228230 <_GLOBAL_OFFSET_TABLE_+0x248> 12726: 68 46 00 00 00 pushq $0x46 1272b: e9 80 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012730 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_m@plt>: 12730: ff 25 02 5b 21 00 jmpq *0x215b02(%rip) # 228238 <_GLOBAL_OFFSET_TABLE_+0x250> 12736: 68 47 00 00 00 pushq $0x47 1273b: e9 70 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012740 <_ZdlPv@plt>: 12740: ff 25 fa 5a 21 00 jmpq *0x215afa(%rip) # 228240 <_GLOBAL_OFFSET_TABLE_+0x258> 12746: 68 48 00 00 00 pushq $0x48 1274b: e9 60 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012750 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt>: 12750: ff 25 f2 5a 21 00 jmpq *0x215af2(%rip) # 228248 <_GLOBAL_OFFSET_TABLE_+0x260> 12756: 68 49 00 00 00 pushq $0x49 1275b: e9 50 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012760 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt>: 12760: ff 25 ea 5a 21 00 jmpq *0x215aea(%rip) # 228250 <_GLOBAL_OFFSET_TABLE_+0x268> 12766: 68 4a 00 00 00 pushq $0x4a 1276b: e9 40 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012770 : 12770: ff 25 e2 5a 21 00 jmpq *0x215ae2(%rip) # 228258 <_GLOBAL_OFFSET_TABLE_+0x270> 12776: 68 4b 00 00 00 pushq $0x4b 1277b: e9 30 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012780 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_rightmostEv@plt>: 12780: ff 25 da 5a 21 00 jmpq *0x215ada(%rip) # 228260 <_GLOBAL_OFFSET_TABLE_+0x278> 12786: 68 4c 00 00 00 pushq $0x4c 1278b: e9 20 fb ff ff jmpq 122b0 <_init+0x20> 0000000000012790 <_ZN11XLogHandlerC2Ev@plt>: 12790: ff 25 d2 5a 21 00 jmpq *0x215ad2(%rip) # 228268 <_GLOBAL_OFFSET_TABLE_+0x280> 12796: 68 4d 00 00 00 pushq $0x4d 1279b: e9 10 fb ff ff jmpq 122b0 <_init+0x20> 00000000000127a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev@plt>: 127a0: ff 25 ca 5a 21 00 jmpq *0x215aca(%rip) # 228270 <_GLOBAL_OFFSET_TABLE_+0x288> 127a6: 68 4e 00 00 00 pushq $0x4e 127ab: e9 00 fb ff ff jmpq 122b0 <_init+0x20> 00000000000127b0 <_ZN11XLogHandlerD1Ev@plt>: 127b0: ff 25 c2 5a 21 00 jmpq *0x215ac2(%rip) # 228278 <_GLOBAL_OFFSET_TABLE_+0x290> 127b6: 68 4f 00 00 00 pushq $0x4f 127bb: e9 f0 fa ff ff jmpq 122b0 <_init+0x20> 00000000000127c0 : 127c0: ff 25 ba 5a 21 00 jmpq *0x215aba(%rip) # 228280 <_GLOBAL_OFFSET_TABLE_+0x298> 127c6: 68 50 00 00 00 pushq $0x50 127cb: e9 e0 fa ff ff jmpq 122b0 <_init+0x20> 00000000000127d0 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt>: 127d0: ff 25 b2 5a 21 00 jmpq *0x215ab2(%rip) # 228288 <_GLOBAL_OFFSET_TABLE_+0x2a0> 127d6: 68 51 00 00 00 pushq $0x51 127db: e9 d0 fa ff ff jmpq 122b0 <_init+0x20> 00000000000127e0 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt>: 127e0: ff 25 aa 5a 21 00 jmpq *0x215aaa(%rip) # 228290 <_GLOBAL_OFFSET_TABLE_+0x2a8> 127e6: 68 52 00 00 00 pushq $0x52 127eb: e9 c0 fa ff ff jmpq 122b0 <_init+0x20> 00000000000127f0 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_@plt>: 127f0: ff 25 a2 5a 21 00 jmpq *0x215aa2(%rip) # 228298 <_GLOBAL_OFFSET_TABLE_+0x2b0> 127f6: 68 53 00 00 00 pushq $0x53 127fb: e9 b0 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012800 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv@plt>: 12800: ff 25 9a 5a 21 00 jmpq *0x215a9a(%rip) # 2282a0 <_GLOBAL_OFFSET_TABLE_+0x2b8> 12806: 68 54 00 00 00 pushq $0x54 1280b: e9 a0 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012810 : 12810: ff 25 92 5a 21 00 jmpq *0x215a92(%rip) # 2282a8 <_GLOBAL_OFFSET_TABLE_+0x2c0> 12816: 68 55 00 00 00 pushq $0x55 1281b: e9 90 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012820 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt>: 12820: ff 25 8a 5a 21 00 jmpq *0x215a8a(%rip) # 2282b0 <_GLOBAL_OFFSET_TABLE_+0x2c8> 12826: 68 56 00 00 00 pushq $0x56 1282b: e9 80 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012830 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS3_@plt>: 12830: ff 25 82 5a 21 00 jmpq *0x215a82(%rip) # 2282b8 <_GLOBAL_OFFSET_TABLE_+0x2d0> 12836: 68 57 00 00 00 pushq $0x57 1283b: e9 70 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012840 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt>: 12840: ff 25 7a 5a 21 00 jmpq *0x215a7a(%rip) # 2282c0 <_GLOBAL_OFFSET_TABLE_+0x2d8> 12846: 68 58 00 00 00 pushq $0x58 1284b: e9 60 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012850 <__cxa_rethrow@plt>: 12850: ff 25 72 5a 21 00 jmpq *0x215a72(%rip) # 2282c8 <_GLOBAL_OFFSET_TABLE_+0x2e0> 12856: 68 59 00 00 00 pushq $0x59 1285b: e9 50 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012860 <_ZNSt4pairIKSsP4XLogED1Ev@plt>: 12860: ff 25 6a 5a 21 00 jmpq *0x215a6a(%rip) # 2282d0 <_GLOBAL_OFFSET_TABLE_+0x2e8> 12866: 68 5a 00 00 00 pushq $0x5a 1286b: e9 40 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012870 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv@plt>: 12870: ff 25 62 5a 21 00 jmpq *0x215a62(%rip) # 2282d8 <_GLOBAL_OFFSET_TABLE_+0x2f0> 12876: 68 5b 00 00 00 pushq $0x5b 1287b: e9 30 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012880 <_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi@plt>: 12880: ff 25 5a 5a 21 00 jmpq *0x215a5a(%rip) # 2282e0 <_GLOBAL_OFFSET_TABLE_+0x2f8> 12886: 68 5c 00 00 00 pushq $0x5c 1288b: e9 20 fa ff ff jmpq 122b0 <_init+0x20> 0000000000012890 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt>: 12890: ff 25 52 5a 21 00 jmpq *0x215a52(%rip) # 2282e8 <_GLOBAL_OFFSET_TABLE_+0x300> 12896: 68 5d 00 00 00 pushq $0x5d 1289b: e9 10 fa ff ff jmpq 122b0 <_init+0x20> 00000000000128a0 <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv@plt>: 128a0: ff 25 4a 5a 21 00 jmpq *0x215a4a(%rip) # 2282f0 <_GLOBAL_OFFSET_TABLE_+0x308> 128a6: 68 5e 00 00 00 pushq $0x5e 128ab: e9 00 fa ff ff jmpq 122b0 <_init+0x20> 00000000000128b0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt>: 128b0: ff 25 42 5a 21 00 jmpq *0x215a42(%rip) # 2282f8 <_GLOBAL_OFFSET_TABLE_+0x310> 128b6: 68 5f 00 00 00 pushq $0x5f 128bb: e9 f0 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000128c0 <_ZNSt10_List_baseIiSaIiEE7_M_initEv@plt>: 128c0: ff 25 3a 5a 21 00 jmpq *0x215a3a(%rip) # 228300 <_GLOBAL_OFFSET_TABLE_+0x318> 128c6: 68 60 00 00 00 pushq $0x60 128cb: e9 e0 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt>: 128d0: ff 25 32 5a 21 00 jmpq *0x215a32(%rip) # 228308 <_GLOBAL_OFFSET_TABLE_+0x320> 128d6: 68 61 00 00 00 pushq $0x61 128db: e9 d0 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000128e0 <_ZN4XLogC1ERKS_@plt>: 128e0: ff 25 2a 5a 21 00 jmpq *0x215a2a(%rip) # 228310 <_GLOBAL_OFFSET_TABLE_+0x328> 128e6: 68 62 00 00 00 pushq $0x62 128eb: e9 c0 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000128f0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt>: 128f0: ff 25 22 5a 21 00 jmpq *0x215a22(%rip) # 228318 <_GLOBAL_OFFSET_TABLE_+0x330> 128f6: 68 63 00 00 00 pushq $0x63 128fb: e9 b0 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012900 : 12900: ff 25 1a 5a 21 00 jmpq *0x215a1a(%rip) # 228320 <_GLOBAL_OFFSET_TABLE_+0x338> 12906: 68 64 00 00 00 pushq $0x64 1290b: e9 a0 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012910 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt>: 12910: ff 25 12 5a 21 00 jmpq *0x215a12(%rip) # 228328 <_GLOBAL_OFFSET_TABLE_+0x340> 12916: 68 65 00 00 00 pushq $0x65 1291b: e9 90 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012920 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt17_Rb_tree_iteratorIS3_ESB_@plt>: 12920: ff 25 0a 5a 21 00 jmpq *0x215a0a(%rip) # 228330 <_GLOBAL_OFFSET_TABLE_+0x348> 12926: 68 66 00 00 00 pushq $0x66 1292b: e9 80 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012930 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_@plt>: 12930: ff 25 02 5a 21 00 jmpq *0x215a02(%rip) # 228338 <_GLOBAL_OFFSET_TABLE_+0x350> 12936: 68 67 00 00 00 pushq $0x67 1293b: e9 70 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012940 <_ZSt8_DestroyISsEvPT_@plt>: 12940: ff 25 fa 59 21 00 jmpq *0x2159fa(%rip) # 228340 <_GLOBAL_OFFSET_TABLE_+0x358> 12946: 68 68 00 00 00 pushq $0x68 1294b: e9 60 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012950 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 12950: ff 25 f2 59 21 00 jmpq *0x2159f2(%rip) # 228348 <_GLOBAL_OFFSET_TABLE_+0x360> 12956: 68 69 00 00 00 pushq $0x69 1295b: e9 50 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012960 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt>: 12960: ff 25 ea 59 21 00 jmpq *0x2159ea(%rip) # 228350 <_GLOBAL_OFFSET_TABLE_+0x368> 12966: 68 6a 00 00 00 pushq $0x6a 1296b: e9 40 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012970 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS1_E@plt>: 12970: ff 25 e2 59 21 00 jmpq *0x2159e2(%rip) # 228358 <_GLOBAL_OFFSET_TABLE_+0x370> 12976: 68 6b 00 00 00 pushq $0x6b 1297b: e9 30 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012980 <_ZNSaISt4pairIKmPvEED1Ev@plt>: 12980: ff 25 da 59 21 00 jmpq *0x2159da(%rip) # 228360 <_GLOBAL_OFFSET_TABLE_+0x378> 12986: 68 6c 00 00 00 pushq $0x6c 1298b: e9 20 f9 ff ff jmpq 122b0 <_init+0x20> 0000000000012990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt>: 12990: ff 25 d2 59 21 00 jmpq *0x2159d2(%rip) # 228368 <_GLOBAL_OFFSET_TABLE_+0x380> 12996: 68 6d 00 00 00 pushq $0x6d 1299b: e9 10 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000129a0 : 129a0: ff 25 ca 59 21 00 jmpq *0x2159ca(%rip) # 228370 <_GLOBAL_OFFSET_TABLE_+0x388> 129a6: 68 6e 00 00 00 pushq $0x6e 129ab: e9 00 f9 ff ff jmpq 122b0 <_init+0x20> 00000000000129b0 : 129b0: ff 25 c2 59 21 00 jmpq *0x2159c2(%rip) # 228378 <_GLOBAL_OFFSET_TABLE_+0x390> 129b6: 68 6f 00 00 00 pushq $0x6f 129bb: e9 f0 f8 ff ff jmpq 122b0 <_init+0x20> 00000000000129c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt>: 129c0: ff 25 ba 59 21 00 jmpq *0x2159ba(%rip) # 228380 <_GLOBAL_OFFSET_TABLE_+0x398> 129c6: 68 70 00 00 00 pushq $0x70 129cb: e9 e0 f8 ff ff jmpq 122b0 <_init+0x20> 00000000000129d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_@plt>: 129d0: ff 25 b2 59 21 00 jmpq *0x2159b2(%rip) # 228388 <_GLOBAL_OFFSET_TABLE_+0x3a0> 129d6: 68 71 00 00 00 pushq $0x71 129db: e9 d0 f8 ff ff jmpq 122b0 <_init+0x20> 00000000000129e0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt>: 129e0: ff 25 aa 59 21 00 jmpq *0x2159aa(%rip) # 228390 <_GLOBAL_OFFSET_TABLE_+0x3a8> 129e6: 68 72 00 00 00 pushq $0x72 129eb: e9 c0 f8 ff ff jmpq 122b0 <_init+0x20> 00000000000129f0 <_ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt>: 129f0: ff 25 a2 59 21 00 jmpq *0x2159a2(%rip) # 228398 <_GLOBAL_OFFSET_TABLE_+0x3b0> 129f6: 68 73 00 00 00 pushq $0x73 129fb: e9 b0 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a00 <_ZN4XLog5flushEv@plt>: 12a00: ff 25 9a 59 21 00 jmpq *0x21599a(%rip) # 2283a0 <_GLOBAL_OFFSET_TABLE_+0x3b8> 12a06: 68 74 00 00 00 pushq $0x74 12a0b: e9 a0 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a10 <_ZN6TMUtil14getCurrentTimeER5XTime@plt>: 12a10: ff 25 92 59 21 00 jmpq *0x215992(%rip) # 2283a8 <_GLOBAL_OFFSET_TABLE_+0x3c0> 12a16: 68 75 00 00 00 pushq $0x75 12a1b: e9 90 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a20 <_ZNSt6vectorISsSaISsEEC1Ev@plt>: 12a20: ff 25 8a 59 21 00 jmpq *0x21598a(%rip) # 2283b0 <_GLOBAL_OFFSET_TABLE_+0x3c8> 12a26: 68 76 00 00 00 pushq $0x76 12a2b: e9 80 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_leftmostEv@plt>: 12a30: ff 25 82 59 21 00 jmpq *0x215982(%rip) # 2283b8 <_GLOBAL_OFFSET_TABLE_+0x3d0> 12a36: 68 77 00 00 00 pushq $0x77 12a3b: e9 70 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a40 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev@plt>: 12a40: ff 25 7a 59 21 00 jmpq *0x21597a(%rip) # 2283c0 <_GLOBAL_OFFSET_TABLE_+0x3d8> 12a46: 68 78 00 00 00 pushq $0x78 12a4b: e9 60 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a50 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt>: 12a50: ff 25 72 59 21 00 jmpq *0x215972(%rip) # 2283c8 <_GLOBAL_OFFSET_TABLE_+0x3e0> 12a56: 68 79 00 00 00 pushq $0x79 12a5b: e9 50 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a60 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E@plt>: 12a60: ff 25 6a 59 21 00 jmpq *0x21596a(%rip) # 2283d0 <_GLOBAL_OFFSET_TABLE_+0x3e8> 12a66: 68 7a 00 00 00 pushq $0x7a 12a6b: e9 40 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a70 <_ZN9__gnu_cxx13new_allocatorIiED2Ev@plt>: 12a70: ff 25 62 59 21 00 jmpq *0x215962(%rip) # 2283d8 <_GLOBAL_OFFSET_TABLE_+0x3f0> 12a76: 68 7b 00 00 00 pushq $0x7b 12a7b: e9 30 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a80 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE10deallocateEPS6_m@plt>: 12a80: ff 25 5a 59 21 00 jmpq *0x21595a(%rip) # 2283e0 <_GLOBAL_OFFSET_TABLE_+0x3f8> 12a86: 68 7c 00 00 00 pushq $0x7c 12a8b: e9 20 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012a90 : 12a90: ff 25 52 59 21 00 jmpq *0x215952(%rip) # 2283e8 <_GLOBAL_OFFSET_TABLE_+0x400> 12a96: 68 7d 00 00 00 pushq $0x7d 12a9b: e9 10 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012aa0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt>: 12aa0: ff 25 4a 59 21 00 jmpq *0x21594a(%rip) # 2283f0 <_GLOBAL_OFFSET_TABLE_+0x408> 12aa6: 68 7e 00 00 00 pushq $0x7e 12aab: e9 00 f8 ff ff jmpq 122b0 <_init+0x20> 0000000000012ab0 <_ZN17XLogStderrHandler5flushEv@plt>: 12ab0: ff 25 42 59 21 00 jmpq *0x215942(%rip) # 2283f8 <_GLOBAL_OFFSET_TABLE_+0x410> 12ab6: 68 7f 00 00 00 pushq $0x7f 12abb: e9 f0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012ac0 <_ZNSt4pairIKSsP4XLogEC1ERKS3_@plt>: 12ac0: ff 25 3a 59 21 00 jmpq *0x21593a(%rip) # 228400 <_GLOBAL_OFFSET_TABLE_+0x418> 12ac6: 68 80 00 00 00 pushq $0x80 12acb: e9 e0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012ad0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt>: 12ad0: ff 25 32 59 21 00 jmpq *0x215932(%rip) # 228408 <_GLOBAL_OFFSET_TABLE_+0x420> 12ad6: 68 81 00 00 00 pushq $0x81 12adb: e9 d0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012ae0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 12ae0: ff 25 2a 59 21 00 jmpq *0x21592a(%rip) # 228410 <_GLOBAL_OFFSET_TABLE_+0x428> 12ae6: 68 82 00 00 00 pushq $0x82 12aeb: e9 c0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt>: 12af0: ff 25 22 59 21 00 jmpq *0x215922(%rip) # 228418 <_GLOBAL_OFFSET_TABLE_+0x430> 12af6: 68 83 00 00 00 pushq $0x83 12afb: e9 b0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b00 <_ZNKSs7compareERKSs@plt>: 12b00: ff 25 1a 59 21 00 jmpq *0x21591a(%rip) # 228420 <_GLOBAL_OFFSET_TABLE_+0x438> 12b06: 68 84 00 00 00 pushq $0x84 12b0b: e9 a0 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b10 <_ZNSsC1ERKSs@plt>: 12b10: ff 25 12 59 21 00 jmpq *0x215912(%rip) # 228428 <_GLOBAL_OFFSET_TABLE_+0x440> 12b16: 68 85 00 00 00 pushq $0x85 12b1b: e9 90 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b20 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci@plt>: 12b20: ff 25 0a 59 21 00 jmpq *0x21590a(%rip) # 228430 <_GLOBAL_OFFSET_TABLE_+0x448> 12b26: 68 86 00 00 00 pushq $0x86 12b2b: e9 80 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b30 <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E@plt>: 12b30: ff 25 02 59 21 00 jmpq *0x215902(%rip) # 228438 <_GLOBAL_OFFSET_TABLE_+0x450> 12b36: 68 87 00 00 00 pushq $0x87 12b3b: e9 70 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 12b40: ff 25 fa 58 21 00 jmpq *0x2158fa(%rip) # 228440 <_GLOBAL_OFFSET_TABLE_+0x458> 12b46: 68 88 00 00 00 pushq $0x88 12b4b: e9 60 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b50 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE21_M_get_Node_allocatorEv@plt>: 12b50: ff 25 f2 58 21 00 jmpq *0x2158f2(%rip) # 228448 <_GLOBAL_OFFSET_TABLE_+0x460> 12b56: 68 89 00 00 00 pushq $0x89 12b5b: e9 50 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b60 <__cxa_atexit@plt>: 12b60: ff 25 ea 58 21 00 jmpq *0x2158ea(%rip) # 228450 <_GLOBAL_OFFSET_TABLE_+0x468> 12b66: 68 8a 00 00 00 pushq $0x8a 12b6b: e9 40 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b70 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1Ev@plt>: 12b70: ff 25 e2 58 21 00 jmpq *0x2158e2(%rip) # 228458 <_GLOBAL_OFFSET_TABLE_+0x470> 12b76: 68 8b 00 00 00 pushq $0x8b 12b7b: e9 30 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b80 <_ZnwmPv@plt>: 12b80: ff 25 da 58 21 00 jmpq *0x2158da(%rip) # 228460 <_GLOBAL_OFFSET_TABLE_+0x478> 12b86: 68 8c 00 00 00 pushq $0x8c 12b8b: e9 20 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012b90 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi@plt>: 12b90: ff 25 d2 58 21 00 jmpq *0x2158d2(%rip) # 228468 <_GLOBAL_OFFSET_TABLE_+0x480> 12b96: 68 8d 00 00 00 pushq $0x8d 12b9b: e9 10 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012ba0 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt>: 12ba0: ff 25 ca 58 21 00 jmpq *0x2158ca(%rip) # 228470 <_GLOBAL_OFFSET_TABLE_+0x488> 12ba6: 68 8e 00 00 00 pushq $0x8e 12bab: e9 00 f7 ff ff jmpq 122b0 <_init+0x20> 0000000000012bb0 <_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_@plt>: 12bb0: ff 25 c2 58 21 00 jmpq *0x2158c2(%rip) # 228478 <_GLOBAL_OFFSET_TABLE_+0x490> 12bb6: 68 8f 00 00 00 pushq $0x8f 12bbb: e9 f0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt>: 12bc0: ff 25 ba 58 21 00 jmpq *0x2158ba(%rip) # 228480 <_GLOBAL_OFFSET_TABLE_+0x498> 12bc6: 68 90 00 00 00 pushq $0x90 12bcb: e9 e0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012bd0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt>: 12bd0: ff 25 b2 58 21 00 jmpq *0x2158b2(%rip) # 228488 <_GLOBAL_OFFSET_TABLE_+0x4a0> 12bd6: 68 91 00 00 00 pushq $0x91 12bdb: e9 d0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012be0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag@plt>: 12be0: ff 25 aa 58 21 00 jmpq *0x2158aa(%rip) # 228490 <_GLOBAL_OFFSET_TABLE_+0x4a8> 12be6: 68 92 00 00 00 pushq $0x92 12beb: e9 c0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012bf0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt>: 12bf0: ff 25 a2 58 21 00 jmpq *0x2158a2(%rip) # 228498 <_GLOBAL_OFFSET_TABLE_+0x4b0> 12bf6: 68 93 00 00 00 pushq $0x93 12bfb: e9 b0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c00 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt>: 12c00: ff 25 9a 58 21 00 jmpq *0x21589a(%rip) # 2284a0 <_GLOBAL_OFFSET_TABLE_+0x4b8> 12c06: 68 94 00 00 00 pushq $0x94 12c0b: e9 a0 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c10 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE4findERS5_@plt>: 12c10: ff 25 92 58 21 00 jmpq *0x215892(%rip) # 2284a8 <_GLOBAL_OFFSET_TABLE_+0x4c0> 12c16: 68 95 00 00 00 pushq $0x95 12c1b: e9 90 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c20 <_ZN17XLogStderrHandlerC1Ev@plt>: 12c20: ff 25 8a 58 21 00 jmpq *0x21588a(%rip) # 2284b0 <_GLOBAL_OFFSET_TABLE_+0x4c8> 12c26: 68 96 00 00 00 pushq $0x96 12c2b: e9 80 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c30 <_ZNSt10_List_baseIiSaIiEEC2Ev@plt>: 12c30: ff 25 82 58 21 00 jmpq *0x215882(%rip) # 2284b8 <_GLOBAL_OFFSET_TABLE_+0x4d0> 12c36: 68 97 00 00 00 pushq $0x97 12c3b: e9 70 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c40 : 12c40: ff 25 7a 58 21 00 jmpq *0x21587a(%rip) # 2284c0 <_GLOBAL_OFFSET_TABLE_+0x4d8> 12c46: 68 98 00 00 00 pushq $0x98 12c4b: e9 60 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c50 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt>: 12c50: ff 25 72 58 21 00 jmpq *0x215872(%rip) # 2284c8 <_GLOBAL_OFFSET_TABLE_+0x4e0> 12c56: 68 99 00 00 00 pushq $0x99 12c5b: e9 50 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c60 : 12c60: ff 25 6a 58 21 00 jmpq *0x21586a(%rip) # 2284d0 <_GLOBAL_OFFSET_TABLE_+0x4e8> 12c66: 68 9a 00 00 00 pushq $0x9a 12c6b: e9 40 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c70 <_ZN4XLogC1ERKSs@plt>: 12c70: ff 25 62 58 21 00 jmpq *0x215862(%rip) # 2284d8 <_GLOBAL_OFFSET_TABLE_+0x4f0> 12c76: 68 9b 00 00 00 pushq $0x9b 12c7b: e9 30 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_@plt>: 12c80: ff 25 5a 58 21 00 jmpq *0x21585a(%rip) # 2284e0 <_GLOBAL_OFFSET_TABLE_+0x4f8> 12c86: 68 9c 00 00 00 pushq $0x9c 12c8b: e9 20 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012c90 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt>: 12c90: ff 25 52 58 21 00 jmpq *0x215852(%rip) # 2284e8 <_GLOBAL_OFFSET_TABLE_+0x500> 12c96: 68 9d 00 00 00 pushq $0x9d 12c9b: e9 10 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012ca0 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt>: 12ca0: ff 25 4a 58 21 00 jmpq *0x21584a(%rip) # 2284f0 <_GLOBAL_OFFSET_TABLE_+0x508> 12ca6: 68 9e 00 00 00 pushq $0x9e 12cab: e9 00 f6 ff ff jmpq 122b0 <_init+0x20> 0000000000012cb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 12cb0: ff 25 42 58 21 00 jmpq *0x215842(%rip) # 2284f8 <_GLOBAL_OFFSET_TABLE_+0x510> 12cb6: 68 9f 00 00 00 pushq $0x9f 12cbb: e9 f0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012cc0 : 12cc0: ff 25 3a 58 21 00 jmpq *0x21583a(%rip) # 228500 <_GLOBAL_OFFSET_TABLE_+0x518> 12cc6: 68 a0 00 00 00 pushq $0xa0 12ccb: e9 e0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012cd0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt>: 12cd0: ff 25 32 58 21 00 jmpq *0x215832(%rip) # 228508 <_GLOBAL_OFFSET_TABLE_+0x520> 12cd6: 68 a1 00 00 00 pushq $0xa1 12cdb: e9 d0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012ce0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt>: 12ce0: ff 25 2a 58 21 00 jmpq *0x21582a(%rip) # 228510 <_GLOBAL_OFFSET_TABLE_+0x528> 12ce6: 68 a2 00 00 00 pushq $0xa2 12ceb: e9 c0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012cf0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt>: 12cf0: ff 25 22 58 21 00 jmpq *0x215822(%rip) # 228518 <_GLOBAL_OFFSET_TABLE_+0x530> 12cf6: 68 a3 00 00 00 pushq $0xa3 12cfb: e9 b0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d00 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs@plt>: 12d00: ff 25 1a 58 21 00 jmpq *0x21581a(%rip) # 228520 <_GLOBAL_OFFSET_TABLE_+0x538> 12d06: 68 a4 00 00 00 pushq $0xa4 12d0b: e9 a0 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d10 : 12d10: ff 25 12 58 21 00 jmpq *0x215812(%rip) # 228528 <_GLOBAL_OFFSET_TABLE_+0x540> 12d16: 68 a5 00 00 00 pushq $0xa5 12d1b: e9 90 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d20 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv@plt>: 12d20: ff 25 0a 58 21 00 jmpq *0x21580a(%rip) # 228530 <_GLOBAL_OFFSET_TABLE_+0x548> 12d26: 68 a6 00 00 00 pushq $0xa6 12d2b: e9 80 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_minimumEPSt18_Rb_tree_node_base@plt>: 12d30: ff 25 02 58 21 00 jmpq *0x215802(%rip) # 228538 <_GLOBAL_OFFSET_TABLE_+0x550> 12d36: 68 a7 00 00 00 pushq $0xa7 12d3b: e9 70 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d40 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt>: 12d40: ff 25 fa 57 21 00 jmpq *0x2157fa(%rip) # 228540 <_GLOBAL_OFFSET_TABLE_+0x558> 12d46: 68 a8 00 00 00 pushq $0xa8 12d4b: e9 60 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d50 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED2Ev@plt>: 12d50: ff 25 f2 57 21 00 jmpq *0x2157f2(%rip) # 228548 <_GLOBAL_OFFSET_TABLE_+0x560> 12d56: 68 a9 00 00 00 pushq $0xa9 12d5b: e9 50 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d60 : 12d60: ff 25 ea 57 21 00 jmpq *0x2157ea(%rip) # 228550 <_GLOBAL_OFFSET_TABLE_+0x568> 12d66: 68 aa 00 00 00 pushq $0xaa 12d6b: e9 40 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d70 : 12d70: ff 25 e2 57 21 00 jmpq *0x2157e2(%rip) # 228558 <_GLOBAL_OFFSET_TABLE_+0x570> 12d76: 68 ab 00 00 00 pushq $0xab 12d7b: e9 30 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d80 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm@plt>: 12d80: ff 25 da 57 21 00 jmpq *0x2157da(%rip) # 228560 <_GLOBAL_OFFSET_TABLE_+0x578> 12d86: 68 ac 00 00 00 pushq $0xac 12d8b: e9 20 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012d90 <_ZN19XLogFileHandlerBaseC2EPKc@plt>: 12d90: ff 25 d2 57 21 00 jmpq *0x2157d2(%rip) # 228568 <_GLOBAL_OFFSET_TABLE_+0x580> 12d96: 68 ad 00 00 00 pushq $0xad 12d9b: e9 10 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012da0 <_ZNSt4pairIKmPvEC1ERS0_RKS1_@plt>: 12da0: ff 25 ca 57 21 00 jmpq *0x2157ca(%rip) # 228570 <_GLOBAL_OFFSET_TABLE_+0x588> 12da6: 68 ae 00 00 00 pushq $0xae 12dab: e9 00 f5 ff ff jmpq 122b0 <_init+0x20> 0000000000012db0 : 12db0: ff 25 c2 57 21 00 jmpq *0x2157c2(%rip) # 228578 <_GLOBAL_OFFSET_TABLE_+0x590> 12db6: 68 af 00 00 00 pushq $0xaf 12dbb: e9 f0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt>: 12dc0: ff 25 ba 57 21 00 jmpq *0x2157ba(%rip) # 228580 <_GLOBAL_OFFSET_TABLE_+0x598> 12dc6: 68 b0 00 00 00 pushq $0xb0 12dcb: e9 e0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012dd0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt>: 12dd0: ff 25 b2 57 21 00 jmpq *0x2157b2(%rip) # 228588 <_GLOBAL_OFFSET_TABLE_+0x5a0> 12dd6: 68 b1 00 00 00 pushq $0xb1 12ddb: e9 d0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012de0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_@plt>: 12de0: ff 25 aa 57 21 00 jmpq *0x2157aa(%rip) # 228590 <_GLOBAL_OFFSET_TABLE_+0x5a8> 12de6: 68 b2 00 00 00 pushq $0xb2 12deb: e9 c0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012df0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt>: 12df0: ff 25 a2 57 21 00 jmpq *0x2157a2(%rip) # 228598 <_GLOBAL_OFFSET_TABLE_+0x5b0> 12df6: 68 b3 00 00 00 pushq $0xb3 12dfb: e9 b0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e00 : 12e00: ff 25 9a 57 21 00 jmpq *0x21579a(%rip) # 2285a0 <_GLOBAL_OFFSET_TABLE_+0x5b8> 12e06: 68 b4 00 00 00 pushq $0xb4 12e0b: e9 a0 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e10 : 12e10: ff 25 92 57 21 00 jmpq *0x215792(%rip) # 2285a8 <_GLOBAL_OFFSET_TABLE_+0x5c0> 12e16: 68 b5 00 00 00 pushq $0xb5 12e1b: e9 90 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e20 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_@plt>: 12e20: ff 25 8a 57 21 00 jmpq *0x21578a(%rip) # 2285b0 <_GLOBAL_OFFSET_TABLE_+0x5c8> 12e26: 68 b6 00 00 00 pushq $0xb6 12e2b: e9 80 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e30 : 12e30: ff 25 82 57 21 00 jmpq *0x215782(%rip) # 2285b8 <_GLOBAL_OFFSET_TABLE_+0x5d0> 12e36: 68 b7 00 00 00 pushq $0xb7 12e3b: e9 70 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e40 <_ZNSsD1Ev@plt>: 12e40: ff 25 7a 57 21 00 jmpq *0x21577a(%rip) # 2285c0 <_GLOBAL_OFFSET_TABLE_+0x5d8> 12e46: 68 b8 00 00 00 pushq $0xb8 12e4b: e9 60 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e50 : 12e50: ff 25 72 57 21 00 jmpq *0x215772(%rip) # 2285c8 <_GLOBAL_OFFSET_TABLE_+0x5e0> 12e56: 68 b9 00 00 00 pushq $0xb9 12e5b: e9 50 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e60 : 12e60: ff 25 6a 57 21 00 jmpq *0x21576a(%rip) # 2285d0 <_GLOBAL_OFFSET_TABLE_+0x5e8> 12e66: 68 ba 00 00 00 pushq $0xba 12e6b: e9 40 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e70 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1Ev@plt>: 12e70: ff 25 62 57 21 00 jmpq *0x215762(%rip) # 2285d8 <_GLOBAL_OFFSET_TABLE_+0x5f0> 12e76: 68 bb 00 00 00 pushq $0xbb 12e7b: e9 30 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e80 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt>: 12e80: ff 25 5a 57 21 00 jmpq *0x21575a(%rip) # 2285e0 <_GLOBAL_OFFSET_TABLE_+0x5f8> 12e86: 68 bc 00 00 00 pushq $0xbc 12e8b: e9 20 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012e90 <_ZN17XLogSyslogHandlerC1Ev@plt>: 12e90: ff 25 52 57 21 00 jmpq *0x215752(%rip) # 2285e8 <_GLOBAL_OFFSET_TABLE_+0x600> 12e96: 68 bd 00 00 00 pushq $0xbd 12e9b: e9 10 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012ea0 <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE@plt>: 12ea0: ff 25 4a 57 21 00 jmpq *0x21574a(%rip) # 2285f0 <_GLOBAL_OFFSET_TABLE_+0x608> 12ea6: 68 be 00 00 00 pushq $0xbe 12eab: e9 00 f4 ff ff jmpq 122b0 <_init+0x20> 0000000000012eb0 <_ZN9__gnu_cxx13new_allocatorISsED2Ev@plt>: 12eb0: ff 25 42 57 21 00 jmpq *0x215742(%rip) # 2285f8 <_GLOBAL_OFFSET_TABLE_+0x610> 12eb6: 68 bf 00 00 00 pushq $0xbf 12ebb: e9 f0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012ec0 : 12ec0: ff 25 3a 57 21 00 jmpq *0x21573a(%rip) # 228600 <_GLOBAL_OFFSET_TABLE_+0x618> 12ec6: 68 c0 00 00 00 pushq $0xc0 12ecb: e9 e0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt>: 12ed0: ff 25 32 57 21 00 jmpq *0x215732(%rip) # 228608 <_GLOBAL_OFFSET_TABLE_+0x620> 12ed6: 68 c1 00 00 00 pushq $0xc1 12edb: e9 d0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012ee0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv@plt>: 12ee0: ff 25 2a 57 21 00 jmpq *0x21572a(%rip) # 228610 <_GLOBAL_OFFSET_TABLE_+0x628> 12ee6: 68 c2 00 00 00 pushq $0xc2 12eeb: e9 c0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012ef0 : 12ef0: ff 25 22 57 21 00 jmpq *0x215722(%rip) # 228618 <_GLOBAL_OFFSET_TABLE_+0x630> 12ef6: 68 c3 00 00 00 pushq $0xc3 12efb: e9 b0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f00 <_ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_@plt>: 12f00: ff 25 1a 57 21 00 jmpq *0x21571a(%rip) # 228620 <_GLOBAL_OFFSET_TABLE_+0x638> 12f06: 68 c4 00 00 00 pushq $0xc4 12f0b: e9 a0 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f10 <_ZSt4findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_@plt>: 12f10: ff 25 12 57 21 00 jmpq *0x215712(%rip) # 228628 <_GLOBAL_OFFSET_TABLE_+0x640> 12f16: 68 c5 00 00 00 pushq $0xc5 12f1b: e9 90 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f20 <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv@plt>: 12f20: ff 25 0a 57 21 00 jmpq *0x21570a(%rip) # 228630 <_GLOBAL_OFFSET_TABLE_+0x648> 12f26: 68 c6 00 00 00 pushq $0xc6 12f2b: e9 80 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv@plt>: 12f30: ff 25 02 57 21 00 jmpq *0x215702(%rip) # 228638 <_GLOBAL_OFFSET_TABLE_+0x650> 12f36: 68 c7 00 00 00 pushq $0xc7 12f3b: e9 70 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f40 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi@plt>: 12f40: ff 25 fa 56 21 00 jmpq *0x2156fa(%rip) # 228640 <_GLOBAL_OFFSET_TABLE_+0x658> 12f46: 68 c8 00 00 00 pushq $0xc8 12f4b: e9 60 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f50 <_ZN6XMutexD1Ev@plt>: 12f50: ff 25 f2 56 21 00 jmpq *0x2156f2(%rip) # 228648 <_GLOBAL_OFFSET_TABLE_+0x660> 12f56: 68 c9 00 00 00 pushq $0xc9 12f5b: e9 50 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt>: 12f60: ff 25 ea 56 21 00 jmpq *0x2156ea(%rip) # 228650 <_GLOBAL_OFFSET_TABLE_+0x668> 12f66: 68 ca 00 00 00 pushq $0xca 12f6b: e9 40 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f70 : 12f70: ff 25 e2 56 21 00 jmpq *0x2156e2(%rip) # 228658 <_GLOBAL_OFFSET_TABLE_+0x670> 12f76: 68 cb 00 00 00 pushq $0xcb 12f7b: e9 30 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f80 <_ZNKSt4lessImEclERKmS2_@plt>: 12f80: ff 25 da 56 21 00 jmpq *0x2156da(%rip) # 228660 <_GLOBAL_OFFSET_TABLE_+0x678> 12f86: 68 cc 00 00 00 pushq $0xcc 12f8b: e9 20 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012f90 : 12f90: ff 25 d2 56 21 00 jmpq *0x2156d2(%rip) # 228668 <_GLOBAL_OFFSET_TABLE_+0x680> 12f96: 68 cd 00 00 00 pushq $0xcd 12f9b: e9 10 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012fa0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_@plt>: 12fa0: ff 25 ca 56 21 00 jmpq *0x2156ca(%rip) # 228670 <_GLOBAL_OFFSET_TABLE_+0x688> 12fa6: 68 ce 00 00 00 pushq $0xce 12fab: e9 00 f3 ff ff jmpq 122b0 <_init+0x20> 0000000000012fb0 <__xstat@plt>: 12fb0: ff 25 c2 56 21 00 jmpq *0x2156c2(%rip) # 228678 <_GLOBAL_OFFSET_TABLE_+0x690> 12fb6: 68 cf 00 00 00 pushq $0xcf 12fbb: e9 f0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000012fc0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt>: 12fc0: ff 25 ba 56 21 00 jmpq *0x2156ba(%rip) # 228680 <_GLOBAL_OFFSET_TABLE_+0x698> 12fc6: 68 d0 00 00 00 pushq $0xd0 12fcb: e9 e0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000012fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt>: 12fd0: ff 25 b2 56 21 00 jmpq *0x2156b2(%rip) # 228688 <_GLOBAL_OFFSET_TABLE_+0x6a0> 12fd6: 68 d1 00 00 00 pushq $0xd1 12fdb: e9 d0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000012fe0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_maximumEPSt18_Rb_tree_node_base@plt>: 12fe0: ff 25 aa 56 21 00 jmpq *0x2156aa(%rip) # 228690 <_GLOBAL_OFFSET_TABLE_+0x6a8> 12fe6: 68 d2 00 00 00 pushq $0xd2 12feb: e9 c0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000012ff0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt>: 12ff0: ff 25 a2 56 21 00 jmpq *0x2156a2(%rip) # 228698 <_GLOBAL_OFFSET_TABLE_+0x6b0> 12ff6: 68 d3 00 00 00 pushq $0xd3 12ffb: e9 b0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013000 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt13_Rb_tree_nodeIS3_E@plt>: 13000: ff 25 9a 56 21 00 jmpq *0x21569a(%rip) # 2286a0 <_GLOBAL_OFFSET_TABLE_+0x6b8> 13006: 68 d4 00 00 00 pushq $0xd4 1300b: e9 a0 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt>: 13010: ff 25 92 56 21 00 jmpq *0x215692(%rip) # 2286a8 <_GLOBAL_OFFSET_TABLE_+0x6c0> 13016: 68 d5 00 00 00 pushq $0xd5 1301b: e9 90 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 13020: ff 25 8a 56 21 00 jmpq *0x21568a(%rip) # 2286b0 <_GLOBAL_OFFSET_TABLE_+0x6c8> 13026: 68 d6 00 00 00 pushq $0xd6 1302b: e9 80 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013030 <__cxa_finalize@plt>: 13030: ff 25 82 56 21 00 jmpq *0x215682(%rip) # 2286b8 <_GLOBAL_OFFSET_TABLE_+0x6d0> 13036: 68 d7 00 00 00 pushq $0xd7 1303b: e9 70 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013040 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt>: 13040: ff 25 7a 56 21 00 jmpq *0x21567a(%rip) # 2286c0 <_GLOBAL_OFFSET_TABLE_+0x6d8> 13046: 68 d8 00 00 00 pushq $0xd8 1304b: e9 60 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013050 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt>: 13050: ff 25 72 56 21 00 jmpq *0x215672(%rip) # 2286c8 <_GLOBAL_OFFSET_TABLE_+0x6e0> 13056: 68 d9 00 00 00 pushq $0xd9 1305b: e9 50 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013060 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt>: 13060: ff 25 6a 56 21 00 jmpq *0x21566a(%rip) # 2286d0 <_GLOBAL_OFFSET_TABLE_+0x6e8> 13066: 68 da 00 00 00 pushq $0xda 1306b: e9 40 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013070 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_@plt>: 13070: ff 25 62 56 21 00 jmpq *0x215662(%rip) # 2286d8 <_GLOBAL_OFFSET_TABLE_+0x6f0> 13076: 68 db 00 00 00 pushq $0xdb 1307b: e9 30 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013080 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt>: 13080: ff 25 5a 56 21 00 jmpq *0x21565a(%rip) # 2286e0 <_GLOBAL_OFFSET_TABLE_+0x6f8> 13086: 68 dc 00 00 00 pushq $0xdc 1308b: e9 20 f2 ff ff jmpq 122b0 <_init+0x20> 0000000000013090 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt>: 13090: ff 25 52 56 21 00 jmpq *0x215652(%rip) # 2286e8 <_GLOBAL_OFFSET_TABLE_+0x700> 13096: 68 dd 00 00 00 pushq $0xdd 1309b: e9 10 f2 ff ff jmpq 122b0 <_init+0x20> 00000000000130a0 : 130a0: ff 25 4a 56 21 00 jmpq *0x21564a(%rip) # 2286f0 <_GLOBAL_OFFSET_TABLE_+0x708> 130a6: 68 de 00 00 00 pushq $0xde 130ab: e9 00 f2 ff ff jmpq 122b0 <_init+0x20> 00000000000130b0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED2Ev@plt>: 130b0: ff 25 42 56 21 00 jmpq *0x215642(%rip) # 2286f8 <_GLOBAL_OFFSET_TABLE_+0x710> 130b6: 68 df 00 00 00 pushq $0xdf 130bb: e9 f0 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000130c0 : 130c0: ff 25 3a 56 21 00 jmpq *0x21563a(%rip) # 228700 <_GLOBAL_OFFSET_TABLE_+0x718> 130c6: 68 e0 00 00 00 pushq $0xe0 130cb: e9 e0 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000130d0 <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv@plt>: 130d0: ff 25 32 56 21 00 jmpq *0x215632(%rip) # 228708 <_GLOBAL_OFFSET_TABLE_+0x720> 130d6: 68 e1 00 00 00 pushq $0xe1 130db: e9 d0 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000130e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 130e0: ff 25 2a 56 21 00 jmpq *0x21562a(%rip) # 228710 <_GLOBAL_OFFSET_TABLE_+0x728> 130e6: 68 e2 00 00 00 pushq $0xe2 130eb: e9 c0 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000130f0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC2Ev@plt>: 130f0: ff 25 22 56 21 00 jmpq *0x215622(%rip) # 228718 <_GLOBAL_OFFSET_TABLE_+0x730> 130f6: 68 e3 00 00 00 pushq $0xe3 130fb: e9 b0 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013100 <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv@plt>: 13100: ff 25 1a 56 21 00 jmpq *0x21561a(%rip) # 228720 <_GLOBAL_OFFSET_TABLE_+0x738> 13106: 68 e4 00 00 00 pushq $0xe4 1310b: e9 a0 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013110 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_@plt>: 13110: ff 25 12 56 21 00 jmpq *0x215612(%rip) # 228728 <_GLOBAL_OFFSET_TABLE_+0x740> 13116: 68 e5 00 00 00 pushq $0xe5 1311b: e9 90 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013120 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt>: 13120: ff 25 0a 56 21 00 jmpq *0x21560a(%rip) # 228730 <_GLOBAL_OFFSET_TABLE_+0x748> 13126: 68 e6 00 00 00 pushq $0xe6 1312b: e9 80 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt>: 13130: ff 25 02 56 21 00 jmpq *0x215602(%rip) # 228738 <_GLOBAL_OFFSET_TABLE_+0x750> 13136: 68 e7 00 00 00 pushq $0xe7 1313b: e9 70 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013140 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt>: 13140: ff 25 fa 55 21 00 jmpq *0x2155fa(%rip) # 228740 <_GLOBAL_OFFSET_TABLE_+0x758> 13146: 68 e8 00 00 00 pushq $0xe8 1314b: e9 60 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013150 <__cxa_guard_release@plt>: 13150: ff 25 f2 55 21 00 jmpq *0x2155f2(%rip) # 228748 <_GLOBAL_OFFSET_TABLE_+0x760> 13156: 68 e9 00 00 00 pushq $0xe9 1315b: e9 50 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013160 <_ZN4XLog10addHandlerER11XLogHandler@plt>: 13160: ff 25 ea 55 21 00 jmpq *0x2155ea(%rip) # 228750 <_GLOBAL_OFFSET_TABLE_+0x768> 13166: 68 ea 00 00 00 pushq $0xea 1316b: e9 40 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013170 <_ZNSt20_List_const_iteratorIiEppEi@plt>: 13170: ff 25 e2 55 21 00 jmpq *0x2155e2(%rip) # 228758 <_GLOBAL_OFFSET_TABLE_+0x770> 13176: 68 eb 00 00 00 pushq $0xeb 1317b: e9 30 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013180 <_ZNSt20_List_const_iteratorIiEC1Ev@plt>: 13180: ff 25 da 55 21 00 jmpq *0x2155da(%rip) # 228760 <_GLOBAL_OFFSET_TABLE_+0x778> 13186: 68 ec 00 00 00 pushq $0xec 1318b: e9 20 f1 ff ff jmpq 122b0 <_init+0x20> 0000000000013190 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt>: 13190: ff 25 d2 55 21 00 jmpq *0x2155d2(%rip) # 228768 <_GLOBAL_OFFSET_TABLE_+0x780> 13196: 68 ed 00 00 00 pushq $0xed 1319b: e9 10 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000131a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt>: 131a0: ff 25 ca 55 21 00 jmpq *0x2155ca(%rip) # 228770 <_GLOBAL_OFFSET_TABLE_+0x788> 131a6: 68 ee 00 00 00 pushq $0xee 131ab: e9 00 f1 ff ff jmpq 122b0 <_init+0x20> 00000000000131b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev@plt>: 131b0: ff 25 c2 55 21 00 jmpq *0x2155c2(%rip) # 228778 <_GLOBAL_OFFSET_TABLE_+0x790> 131b6: 68 ef 00 00 00 pushq $0xef 131bb: e9 f0 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000131c0 : 131c0: ff 25 ba 55 21 00 jmpq *0x2155ba(%rip) # 228780 <_GLOBAL_OFFSET_TABLE_+0x798> 131c6: 68 f0 00 00 00 pushq $0xf0 131cb: e9 e0 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000131d0 <_ZSt13copy_backwardIPSsS0_ET0_T_S2_S1_@plt>: 131d0: ff 25 b2 55 21 00 jmpq *0x2155b2(%rip) # 228788 <_GLOBAL_OFFSET_TABLE_+0x7a0> 131d6: 68 f1 00 00 00 pushq $0xf1 131db: e9 d0 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000131e0 <_ZN11XLogHandlerD2Ev@plt>: 131e0: ff 25 aa 55 21 00 jmpq *0x2155aa(%rip) # 228790 <_GLOBAL_OFFSET_TABLE_+0x7a8> 131e6: 68 f2 00 00 00 pushq $0xf2 131eb: e9 c0 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000131f0 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_@plt>: 131f0: ff 25 a2 55 21 00 jmpq *0x2155a2(%rip) # 228798 <_GLOBAL_OFFSET_TABLE_+0x7b0> 131f6: 68 f3 00 00 00 pushq $0xf3 131fb: e9 b0 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013200 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt>: 13200: ff 25 9a 55 21 00 jmpq *0x21559a(%rip) # 2287a0 <_GLOBAL_OFFSET_TABLE_+0x7b8> 13206: 68 f4 00 00 00 pushq $0xf4 1320b: e9 a0 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013210 <_ZNKSt20_List_const_iteratorIiEneERKS0_@plt>: 13210: ff 25 92 55 21 00 jmpq *0x215592(%rip) # 2287a8 <_GLOBAL_OFFSET_TABLE_+0x7c0> 13216: 68 f5 00 00 00 pushq $0xf5 1321b: e9 90 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013220 : 13220: ff 25 8a 55 21 00 jmpq *0x21558a(%rip) # 2287b0 <_GLOBAL_OFFSET_TABLE_+0x7c8> 13226: 68 f6 00 00 00 pushq $0xf6 1322b: e9 80 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013230 : 13230: ff 25 82 55 21 00 jmpq *0x215582(%rip) # 2287b8 <_GLOBAL_OFFSET_TABLE_+0x7d0> 13236: 68 f7 00 00 00 pushq $0xf7 1323b: e9 70 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt>: 13240: ff 25 7a 55 21 00 jmpq *0x21557a(%rip) # 2287c0 <_GLOBAL_OFFSET_TABLE_+0x7d8> 13246: 68 f8 00 00 00 pushq $0xf8 1324b: e9 60 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013250 : 13250: ff 25 72 55 21 00 jmpq *0x215572(%rip) # 2287c8 <_GLOBAL_OFFSET_TABLE_+0x7e0> 13256: 68 f9 00 00 00 pushq $0xf9 1325b: e9 50 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013260 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_@plt>: 13260: ff 25 6a 55 21 00 jmpq *0x21556a(%rip) # 2287d0 <_GLOBAL_OFFSET_TABLE_+0x7e8> 13266: 68 fa 00 00 00 pushq $0xfa 1326b: e9 40 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013270 <_ZN17XLogStderrHandlerD1Ev@plt>: 13270: ff 25 62 55 21 00 jmpq *0x215562(%rip) # 2287d8 <_GLOBAL_OFFSET_TABLE_+0x7f0> 13276: 68 fb 00 00 00 pushq $0xfb 1327b: e9 30 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013280 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E@plt>: 13280: ff 25 5a 55 21 00 jmpq *0x21555a(%rip) # 2287e0 <_GLOBAL_OFFSET_TABLE_+0x7f8> 13286: 68 fc 00 00 00 pushq $0xfc 1328b: e9 20 f0 ff ff jmpq 122b0 <_init+0x20> 0000000000013290 <_ZNSaISsED2Ev@plt>: 13290: ff 25 52 55 21 00 jmpq *0x215552(%rip) # 2287e8 <_GLOBAL_OFFSET_TABLE_+0x800> 13296: 68 fd 00 00 00 pushq $0xfd 1329b: e9 10 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000132a0 : 132a0: ff 25 4a 55 21 00 jmpq *0x21554a(%rip) # 2287f0 <_GLOBAL_OFFSET_TABLE_+0x808> 132a6: 68 fe 00 00 00 pushq $0xfe 132ab: e9 00 f0 ff ff jmpq 122b0 <_init+0x20> 00000000000132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt>: 132b0: ff 25 42 55 21 00 jmpq *0x215542(%rip) # 2287f8 <_GLOBAL_OFFSET_TABLE_+0x810> 132b6: 68 ff 00 00 00 pushq $0xff 132bb: e9 f0 ef ff ff jmpq 122b0 <_init+0x20> 00000000000132c0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_@plt>: 132c0: ff 25 3a 55 21 00 jmpq *0x21553a(%rip) # 228800 <_GLOBAL_OFFSET_TABLE_+0x818> 132c6: 68 00 01 00 00 pushq $0x100 132cb: e9 e0 ef ff ff jmpq 122b0 <_init+0x20> 00000000000132d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E@plt>: 132d0: ff 25 32 55 21 00 jmpq *0x215532(%rip) # 228808 <_GLOBAL_OFFSET_TABLE_+0x820> 132d6: 68 01 01 00 00 pushq $0x101 132db: e9 d0 ef ff ff jmpq 122b0 <_init+0x20> 00000000000132e0 <_ZNKSs7compareEPKc@plt>: 132e0: ff 25 2a 55 21 00 jmpq *0x21552a(%rip) # 228810 <_GLOBAL_OFFSET_TABLE_+0x828> 132e6: 68 02 01 00 00 pushq $0x102 132eb: e9 c0 ef ff ff jmpq 122b0 <_init+0x20> 00000000000132f0 <_ZNSsC1EPKcRKSaIcE@plt>: 132f0: ff 25 22 55 21 00 jmpq *0x215522(%rip) # 228818 <_GLOBAL_OFFSET_TABLE_+0x830> 132f6: 68 03 01 00 00 pushq $0x103 132fb: e9 b0 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013300 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_@plt>: 13300: ff 25 1a 55 21 00 jmpq *0x21551a(%rip) # 228820 <_GLOBAL_OFFSET_TABLE_+0x838> 13306: 68 04 01 00 00 pushq $0x104 1330b: e9 a0 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013310 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt>: 13310: ff 25 12 55 21 00 jmpq *0x215512(%rip) # 228828 <_GLOBAL_OFFSET_TABLE_+0x840> 13316: 68 05 01 00 00 pushq $0x105 1331b: e9 90 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt13_Rb_tree_nodeIS1_E@plt>: 13320: ff 25 0a 55 21 00 jmpq *0x21550a(%rip) # 228830 <_GLOBAL_OFFSET_TABLE_+0x848> 13326: 68 06 01 00 00 pushq $0x106 1332b: e9 80 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013330 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev@plt>: 13330: ff 25 02 55 21 00 jmpq *0x215502(%rip) # 228838 <_GLOBAL_OFFSET_TABLE_+0x850> 13336: 68 07 01 00 00 pushq $0x107 1333b: e9 70 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013340 : 13340: ff 25 fa 54 21 00 jmpq *0x2154fa(%rip) # 228840 <_GLOBAL_OFFSET_TABLE_+0x858> 13346: 68 08 01 00 00 pushq $0x108 1334b: e9 60 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013350 <_ZNSaISsEC2Ev@plt>: 13350: ff 25 f2 54 21 00 jmpq *0x2154f2(%rip) # 228848 <_GLOBAL_OFFSET_TABLE_+0x860> 13356: 68 09 01 00 00 pushq $0x109 1335b: e9 50 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013360 : 13360: ff 25 ea 54 21 00 jmpq *0x2154ea(%rip) # 228850 <_GLOBAL_OFFSET_TABLE_+0x868> 13366: 68 0a 01 00 00 pushq $0x10a 1336b: e9 40 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt>: 13370: ff 25 e2 54 21 00 jmpq *0x2154e2(%rip) # 228858 <_GLOBAL_OFFSET_TABLE_+0x870> 13376: 68 0b 01 00 00 pushq $0x10b 1337b: e9 30 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013380 <_ZNKSt10_List_baseIiSaIiEE21_M_get_Node_allocatorEv@plt>: 13380: ff 25 da 54 21 00 jmpq *0x2154da(%rip) # 228860 <_GLOBAL_OFFSET_TABLE_+0x878> 13386: 68 0c 01 00 00 pushq $0x10c 1338b: e9 20 ef ff ff jmpq 122b0 <_init+0x20> 0000000000013390 <_ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm@plt>: 13390: ff 25 d2 54 21 00 jmpq *0x2154d2(%rip) # 228868 <_GLOBAL_OFFSET_TABLE_+0x880> 13396: 68 0d 01 00 00 pushq $0x10d 1339b: e9 10 ef ff ff jmpq 122b0 <_init+0x20> 00000000000133a0 <_ZN4XLogD1Ev@plt>: 133a0: ff 25 ca 54 21 00 jmpq *0x2154ca(%rip) # 228870 <_GLOBAL_OFFSET_TABLE_+0x888> 133a6: 68 0e 01 00 00 pushq $0x10e 133ab: e9 00 ef ff ff jmpq 122b0 <_init+0x20> 00000000000133b0 <_ZN19XLogFileHandlerBase5flushEv@plt>: 133b0: ff 25 c2 54 21 00 jmpq *0x2154c2(%rip) # 228878 <_GLOBAL_OFFSET_TABLE_+0x890> 133b6: 68 0f 01 00 00 pushq $0x10f 133bb: e9 f0 ee ff ff jmpq 122b0 <_init+0x20> 00000000000133c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_@plt>: 133c0: ff 25 ba 54 21 00 jmpq *0x2154ba(%rip) # 228880 <_GLOBAL_OFFSET_TABLE_+0x898> 133c6: 68 10 01 00 00 pushq $0x110 133cb: e9 e0 ee ff ff jmpq 122b0 <_init+0x20> 00000000000133d0 <_ZNSt6vectorISsSaISsEE3endEv@plt>: 133d0: ff 25 b2 54 21 00 jmpq *0x2154b2(%rip) # 228888 <_GLOBAL_OFFSET_TABLE_+0x8a0> 133d6: 68 11 01 00 00 pushq $0x111 133db: e9 d0 ee ff ff jmpq 122b0 <_init+0x20> 00000000000133e0 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt>: 133e0: ff 25 aa 54 21 00 jmpq *0x2154aa(%rip) # 228890 <_GLOBAL_OFFSET_TABLE_+0x8a8> 133e6: 68 12 01 00 00 pushq $0x112 133eb: e9 c0 ee ff ff jmpq 122b0 <_init+0x20> 00000000000133f0 : 133f0: ff 25 a2 54 21 00 jmpq *0x2154a2(%rip) # 228898 <_GLOBAL_OFFSET_TABLE_+0x8b0> 133f6: 68 13 01 00 00 pushq $0x113 133fb: e9 b0 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013400 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt>: 13400: ff 25 9a 54 21 00 jmpq *0x21549a(%rip) # 2288a0 <_GLOBAL_OFFSET_TABLE_+0x8b8> 13406: 68 14 01 00 00 pushq $0x114 1340b: e9 a0 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt>: 13410: ff 25 92 54 21 00 jmpq *0x215492(%rip) # 2288a8 <_GLOBAL_OFFSET_TABLE_+0x8c0> 13416: 68 15 01 00 00 pushq $0x115 1341b: e9 90 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013420 <_ZSt11__addressofIiEPT_RS0_@plt>: 13420: ff 25 8a 54 21 00 jmpq *0x21548a(%rip) # 2288b0 <_GLOBAL_OFFSET_TABLE_+0x8c8> 13426: 68 16 01 00 00 pushq $0x116 1342b: e9 80 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013430 <_ZNKSt20_List_const_iteratorIiEdeEv@plt>: 13430: ff 25 82 54 21 00 jmpq *0x215482(%rip) # 2288b8 <_GLOBAL_OFFSET_TABLE_+0x8d0> 13436: 68 17 01 00 00 pushq $0x117 1343b: e9 70 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013440 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED2Ev@plt>: 13440: ff 25 7a 54 21 00 jmpq *0x21547a(%rip) # 2288c0 <_GLOBAL_OFFSET_TABLE_+0x8d8> 13446: 68 18 01 00 00 pushq $0x118 1344b: e9 60 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013450 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt>: 13450: ff 25 72 54 21 00 jmpq *0x215472(%rip) # 2288c8 <_GLOBAL_OFFSET_TABLE_+0x8e0> 13456: 68 19 01 00 00 pushq $0x119 1345b: e9 50 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013460 <_ZNSt4listIiSaIiEE9push_backERKi@plt>: 13460: ff 25 6a 54 21 00 jmpq *0x21546a(%rip) # 2288d0 <_GLOBAL_OFFSET_TABLE_+0x8e8> 13466: 68 1a 01 00 00 pushq $0x11a 1346b: e9 40 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013470 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_get_nodeEv@plt>: 13470: ff 25 62 54 21 00 jmpq *0x215462(%rip) # 2288d8 <_GLOBAL_OFFSET_TABLE_+0x8f0> 13476: 68 1b 01 00 00 pushq $0x11b 1347b: e9 30 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 13480: ff 25 5a 54 21 00 jmpq *0x21545a(%rip) # 2288e0 <_GLOBAL_OFFSET_TABLE_+0x8f8> 13486: 68 1c 01 00 00 pushq $0x11c 1348b: e9 20 ee ff ff jmpq 122b0 <_init+0x20> 0000000000013490 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt>: 13490: ff 25 52 54 21 00 jmpq *0x215452(%rip) # 2288e8 <_GLOBAL_OFFSET_TABLE_+0x900> 13496: 68 1d 01 00 00 pushq $0x11d 1349b: e9 10 ee ff ff jmpq 122b0 <_init+0x20> 00000000000134a0 : 134a0: ff 25 4a 54 21 00 jmpq *0x21544a(%rip) # 2288f0 <_GLOBAL_OFFSET_TABLE_+0x908> 134a6: 68 1e 01 00 00 pushq $0x11e 134ab: e9 00 ee ff ff jmpq 122b0 <_init+0x20> 00000000000134b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv@plt>: 134b0: ff 25 42 54 21 00 jmpq *0x215442(%rip) # 2288f8 <_GLOBAL_OFFSET_TABLE_+0x910> 134b6: 68 1f 01 00 00 pushq $0x11f 134bb: e9 f0 ed ff ff jmpq 122b0 <_init+0x20> 00000000000134c0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt>: 134c0: ff 25 3a 54 21 00 jmpq *0x21543a(%rip) # 228900 <_GLOBAL_OFFSET_TABLE_+0x918> 134c6: 68 20 01 00 00 pushq $0x120 134cb: e9 e0 ed ff ff jmpq 122b0 <_init+0x20> 00000000000134d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_@plt>: 134d0: ff 25 32 54 21 00 jmpq *0x215432(%rip) # 228908 <_GLOBAL_OFFSET_TABLE_+0x920> 134d6: 68 21 01 00 00 pushq $0x121 134db: e9 d0 ed ff ff jmpq 122b0 <_init+0x20> 00000000000134e0 : 134e0: ff 25 2a 54 21 00 jmpq *0x21542a(%rip) # 228910 <_GLOBAL_OFFSET_TABLE_+0x928> 134e6: 68 22 01 00 00 pushq $0x122 134eb: e9 c0 ed ff ff jmpq 122b0 <_init+0x20> 00000000000134f0 : 134f0: ff 25 22 54 21 00 jmpq *0x215422(%rip) # 228918 <_GLOBAL_OFFSET_TABLE_+0x930> 134f6: 68 23 01 00 00 pushq $0x123 134fb: e9 b0 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013500 : 13500: ff 25 1a 54 21 00 jmpq *0x21541a(%rip) # 228920 <_GLOBAL_OFFSET_TABLE_+0x938> 13506: 68 24 01 00 00 pushq $0x124 1350b: e9 a0 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013510 : 13510: ff 25 12 54 21 00 jmpq *0x215412(%rip) # 228928 <_GLOBAL_OFFSET_TABLE_+0x940> 13516: 68 25 01 00 00 pushq $0x125 1351b: e9 90 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013520 : 13520: ff 25 0a 54 21 00 jmpq *0x21540a(%rip) # 228930 <_GLOBAL_OFFSET_TABLE_+0x948> 13526: 68 26 01 00 00 pushq $0x126 1352b: e9 80 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013530 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv@plt>: 13530: ff 25 02 54 21 00 jmpq *0x215402(%rip) # 228938 <_GLOBAL_OFFSET_TABLE_+0x950> 13536: 68 27 01 00 00 pushq $0x127 1353b: e9 70 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013540 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt>: 13540: ff 25 fa 53 21 00 jmpq *0x2153fa(%rip) # 228940 <_GLOBAL_OFFSET_TABLE_+0x958> 13546: 68 28 01 00 00 pushq $0x128 1354b: e9 60 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt>: 13550: ff 25 f2 53 21 00 jmpq *0x2153f2(%rip) # 228948 <_GLOBAL_OFFSET_TABLE_+0x960> 13556: 68 29 01 00 00 pushq $0x129 1355b: e9 50 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013560 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE5beginEv@plt>: 13560: ff 25 ea 53 21 00 jmpq *0x2153ea(%rip) # 228950 <_GLOBAL_OFFSET_TABLE_+0x968> 13566: 68 2a 01 00 00 pushq $0x12a 1356b: e9 40 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013570 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_@plt>: 13570: ff 25 e2 53 21 00 jmpq *0x2153e2(%rip) # 228958 <_GLOBAL_OFFSET_TABLE_+0x970> 13576: 68 2b 01 00 00 pushq $0x12b 1357b: e9 30 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013580 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt>: 13580: ff 25 da 53 21 00 jmpq *0x2153da(%rip) # 228960 <_GLOBAL_OFFSET_TABLE_+0x978> 13586: 68 2c 01 00 00 pushq $0x12c 1358b: e9 20 ed ff ff jmpq 122b0 <_init+0x20> 0000000000013590 : 13590: ff 25 d2 53 21 00 jmpq *0x2153d2(%rip) # 228968 <_GLOBAL_OFFSET_TABLE_+0x980> 13596: 68 2d 01 00 00 pushq $0x12d 1359b: e9 10 ed ff ff jmpq 122b0 <_init+0x20> 00000000000135a0 <_ZNSt8__detail15_List_node_base7_M_hookEPS0_@plt>: 135a0: ff 25 ca 53 21 00 jmpq *0x2153ca(%rip) # 228970 <_GLOBAL_OFFSET_TABLE_+0x988> 135a6: 68 2e 01 00 00 pushq $0x12e 135ab: e9 00 ed ff ff jmpq 122b0 <_init+0x20> 00000000000135b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt>: 135b0: ff 25 c2 53 21 00 jmpq *0x2153c2(%rip) # 228978 <_GLOBAL_OFFSET_TABLE_+0x990> 135b6: 68 2f 01 00 00 pushq $0x12f 135bb: e9 f0 ec ff ff jmpq 122b0 <_init+0x20> 00000000000135c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt>: 135c0: ff 25 ba 53 21 00 jmpq *0x2153ba(%rip) # 228980 <_GLOBAL_OFFSET_TABLE_+0x998> 135c6: 68 30 01 00 00 pushq $0x130 135cb: e9 e0 ec ff ff jmpq 122b0 <_init+0x20> 00000000000135d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_@plt>: 135d0: ff 25 b2 53 21 00 jmpq *0x2153b2(%rip) # 228988 <_GLOBAL_OFFSET_TABLE_+0x9a0> 135d6: 68 31 01 00 00 pushq $0x131 135db: e9 d0 ec ff ff jmpq 122b0 <_init+0x20> 00000000000135e0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt>: 135e0: ff 25 aa 53 21 00 jmpq *0x2153aa(%rip) # 228990 <_GLOBAL_OFFSET_TABLE_+0x9a8> 135e6: 68 32 01 00 00 pushq $0x132 135eb: e9 c0 ec ff ff jmpq 122b0 <_init+0x20> 00000000000135f0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE3endEv@plt>: 135f0: ff 25 a2 53 21 00 jmpq *0x2153a2(%rip) # 228998 <_GLOBAL_OFFSET_TABLE_+0x9b0> 135f6: 68 33 01 00 00 pushq $0x133 135fb: e9 b0 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013600 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt>: 13600: ff 25 9a 53 21 00 jmpq *0x21539a(%rip) # 2289a0 <_GLOBAL_OFFSET_TABLE_+0x9b8> 13606: 68 34 01 00 00 pushq $0x134 1360b: e9 a0 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013610 : 13610: ff 25 92 53 21 00 jmpq *0x215392(%rip) # 2289a8 <_GLOBAL_OFFSET_TABLE_+0x9c0> 13616: 68 35 01 00 00 pushq $0x135 1361b: e9 90 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013620 : 13620: ff 25 8a 53 21 00 jmpq *0x21538a(%rip) # 2289b0 <_GLOBAL_OFFSET_TABLE_+0x9c8> 13626: 68 36 01 00 00 pushq $0x136 1362b: e9 80 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013630 <_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_@plt>: 13630: ff 25 82 53 21 00 jmpq *0x215382(%rip) # 2289b8 <_GLOBAL_OFFSET_TABLE_+0x9d0> 13636: 68 37 01 00 00 pushq $0x137 1363b: e9 70 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013640 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt>: 13640: ff 25 7a 53 21 00 jmpq *0x21537a(%rip) # 2289c0 <_GLOBAL_OFFSET_TABLE_+0x9d8> 13646: 68 38 01 00 00 pushq $0x138 1364b: e9 60 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013650 <_ZN19XLogFileHandlerBaseD1Ev@plt>: 13650: ff 25 72 53 21 00 jmpq *0x215372(%rip) # 2289c8 <_GLOBAL_OFFSET_TABLE_+0x9e0> 13656: 68 39 01 00 00 pushq $0x139 1365b: e9 50 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt>: 13660: ff 25 6a 53 21 00 jmpq *0x21536a(%rip) # 2289d0 <_GLOBAL_OFFSET_TABLE_+0x9e8> 13666: 68 3a 01 00 00 pushq $0x13a 1366b: e9 40 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013670 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv@plt>: 13670: ff 25 62 53 21 00 jmpq *0x215362(%rip) # 2289d8 <_GLOBAL_OFFSET_TABLE_+0x9f0> 13676: 68 3b 01 00 00 pushq $0x13b 1367b: e9 30 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013680 <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_@plt>: 13680: ff 25 5a 53 21 00 jmpq *0x21535a(%rip) # 2289e0 <_GLOBAL_OFFSET_TABLE_+0x9f8> 13686: 68 3c 01 00 00 pushq $0x13c 1368b: e9 20 ec ff ff jmpq 122b0 <_init+0x20> 0000000000013690 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE6insertESt17_Rb_tree_iteratorIS6_ERKS6_@plt>: 13690: ff 25 52 53 21 00 jmpq *0x215352(%rip) # 2289e8 <_GLOBAL_OFFSET_TABLE_+0xa00> 13696: 68 3d 01 00 00 pushq $0x13d 1369b: e9 10 ec ff ff jmpq 122b0 <_init+0x20> 00000000000136a0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC2Ev@plt>: 136a0: ff 25 4a 53 21 00 jmpq *0x21534a(%rip) # 2289f0 <_GLOBAL_OFFSET_TABLE_+0xa08> 136a6: 68 3e 01 00 00 pushq $0x13e 136ab: e9 00 ec ff ff jmpq 122b0 <_init+0x20> 00000000000136b0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt>: 136b0: ff 25 42 53 21 00 jmpq *0x215342(%rip) # 2289f8 <_GLOBAL_OFFSET_TABLE_+0xa10> 136b6: 68 3f 01 00 00 pushq $0x13f 136bb: e9 f0 eb ff ff jmpq 122b0 <_init+0x20> 00000000000136c0 : 136c0: ff 25 3a 53 21 00 jmpq *0x21533a(%rip) # 228a00 <_GLOBAL_OFFSET_TABLE_+0xa18> 136c6: 68 40 01 00 00 pushq $0x140 136cb: e9 e0 eb ff ff jmpq 122b0 <_init+0x20> 00000000000136d0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv@plt>: 136d0: ff 25 32 53 21 00 jmpq *0x215332(%rip) # 228a08 <_GLOBAL_OFFSET_TABLE_+0xa20> 136d6: 68 41 01 00 00 pushq $0x141 136db: e9 d0 eb ff ff jmpq 122b0 <_init+0x20> 00000000000136e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt>: 136e0: ff 25 2a 53 21 00 jmpq *0x21532a(%rip) # 228a10 <_GLOBAL_OFFSET_TABLE_+0xa28> 136e6: 68 42 01 00 00 pushq $0x142 136eb: e9 c0 eb ff ff jmpq 122b0 <_init+0x20> 00000000000136f0 : 136f0: ff 25 22 53 21 00 jmpq *0x215322(%rip) # 228a18 <_GLOBAL_OFFSET_TABLE_+0xa30> 136f6: 68 43 01 00 00 pushq $0x143 136fb: e9 b0 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013700 <_ZNSt6vectorISsSaISsEE9push_backERKSs@plt>: 13700: ff 25 1a 53 21 00 jmpq *0x21531a(%rip) # 228a20 <_GLOBAL_OFFSET_TABLE_+0xa38> 13706: 68 44 01 00 00 pushq $0x144 1370b: e9 a0 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt>: 13710: ff 25 12 53 21 00 jmpq *0x215312(%rip) # 228a28 <_GLOBAL_OFFSET_TABLE_+0xa40> 13716: 68 45 01 00 00 pushq $0x145 1371b: e9 90 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013720 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv@plt>: 13720: ff 25 0a 53 21 00 jmpq *0x21530a(%rip) # 228a30 <_GLOBAL_OFFSET_TABLE_+0xa48> 13726: 68 46 01 00 00 pushq $0x146 1372b: e9 80 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013730 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_@plt>: 13730: ff 25 02 53 21 00 jmpq *0x215302(%rip) # 228a38 <_GLOBAL_OFFSET_TABLE_+0xa50> 13736: 68 47 01 00 00 pushq $0x147 1373b: e9 70 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013740 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE10deallocateEPS7_m@plt>: 13740: ff 25 fa 52 21 00 jmpq *0x2152fa(%rip) # 228a40 <_GLOBAL_OFFSET_TABLE_+0xa58> 13746: 68 48 01 00 00 pushq $0x148 1374b: e9 60 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013750 <_ZN6XMutexC1Ev@plt>: 13750: ff 25 f2 52 21 00 jmpq *0x2152f2(%rip) # 228a48 <_GLOBAL_OFFSET_TABLE_+0xa60> 13756: 68 49 01 00 00 pushq $0x149 1375b: e9 50 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013760 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt>: 13760: ff 25 ea 52 21 00 jmpq *0x2152ea(%rip) # 228a50 <_GLOBAL_OFFSET_TABLE_+0xa68> 13766: 68 4a 01 00 00 pushq $0x14a 1376b: e9 40 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013770 <_ZN15XLogFileHandlerD1Ev@plt>: 13770: ff 25 e2 52 21 00 jmpq *0x2152e2(%rip) # 228a58 <_GLOBAL_OFFSET_TABLE_+0xa70> 13776: 68 4b 01 00 00 pushq $0x14b 1377b: e9 30 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013780 <_Z6new_idv@plt>: 13780: ff 25 da 52 21 00 jmpq *0x2152da(%rip) # 228a60 <_GLOBAL_OFFSET_TABLE_+0xa78> 13786: 68 4c 01 00 00 pushq $0x14c 1378b: e9 20 eb ff ff jmpq 122b0 <_init+0x20> 0000000000013790 : 13790: ff 25 d2 52 21 00 jmpq *0x2152d2(%rip) # 228a68 <_GLOBAL_OFFSET_TABLE_+0xa80> 13796: 68 4d 01 00 00 pushq $0x14d 1379b: e9 10 eb ff ff jmpq 122b0 <_init+0x20> 00000000000137a0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt>: 137a0: ff 25 ca 52 21 00 jmpq *0x2152ca(%rip) # 228a70 <_GLOBAL_OFFSET_TABLE_+0xa88> 137a6: 68 4e 01 00 00 pushq $0x14e 137ab: e9 00 eb ff ff jmpq 122b0 <_init+0x20> 00000000000137b0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt>: 137b0: ff 25 c2 52 21 00 jmpq *0x2152c2(%rip) # 228a78 <_GLOBAL_OFFSET_TABLE_+0xa90> 137b6: 68 4f 01 00 00 pushq $0x14f 137bb: e9 f0 ea ff ff jmpq 122b0 <_init+0x20> 00000000000137c0 <__errno_location@plt>: 137c0: ff 25 ba 52 21 00 jmpq *0x2152ba(%rip) # 228a80 <_GLOBAL_OFFSET_TABLE_+0xa98> 137c6: 68 50 01 00 00 pushq $0x150 137cb: e9 e0 ea ff ff jmpq 122b0 <_init+0x20> 00000000000137d0 : 137d0: ff 25 b2 52 21 00 jmpq *0x2152b2(%rip) # 228a88 <_GLOBAL_OFFSET_TABLE_+0xaa0> 137d6: 68 51 01 00 00 pushq $0x151 137db: e9 d0 ea ff ff jmpq 122b0 <_init+0x20> 00000000000137e0 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt>: 137e0: ff 25 aa 52 21 00 jmpq *0x2152aa(%rip) # 228a90 <_GLOBAL_OFFSET_TABLE_+0xaa8> 137e6: 68 52 01 00 00 pushq $0x152 137eb: e9 c0 ea ff ff jmpq 122b0 <_init+0x20> 00000000000137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt>: 137f0: ff 25 a2 52 21 00 jmpq *0x2152a2(%rip) # 228a98 <_GLOBAL_OFFSET_TABLE_+0xab0> 137f6: 68 53 01 00 00 pushq $0x153 137fb: e9 b0 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013800 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt>: 13800: ff 25 9a 52 21 00 jmpq *0x21529a(%rip) # 228aa0 <_GLOBAL_OFFSET_TABLE_+0xab8> 13806: 68 54 01 00 00 pushq $0x154 1380b: e9 a0 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013810 <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_@plt>: 13810: ff 25 92 52 21 00 jmpq *0x215292(%rip) # 228aa8 <_GLOBAL_OFFSET_TABLE_+0xac0> 13816: 68 55 01 00 00 pushq $0x155 1381b: e9 90 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013820 : 13820: ff 25 8a 52 21 00 jmpq *0x21528a(%rip) # 228ab0 <_GLOBAL_OFFSET_TABLE_+0xac8> 13826: 68 56 01 00 00 pushq $0x156 1382b: e9 80 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013830 <_Z16make_error_tupleP18enif_environment_ti@plt>: 13830: ff 25 82 52 21 00 jmpq *0x215282(%rip) # 228ab8 <_GLOBAL_OFFSET_TABLE_+0xad0> 13836: 68 57 01 00 00 pushq $0x157 1383b: e9 70 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013840 <_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt>: 13840: ff 25 7a 52 21 00 jmpq *0x21527a(%rip) # 228ac0 <_GLOBAL_OFFSET_TABLE_+0xad8> 13846: 68 58 01 00 00 pushq $0x158 1384b: e9 60 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013850 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt>: 13850: ff 25 72 52 21 00 jmpq *0x215272(%rip) # 228ac8 <_GLOBAL_OFFSET_TABLE_+0xae0> 13856: 68 59 01 00 00 pushq $0x159 1385b: e9 50 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013860 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt>: 13860: ff 25 6a 52 21 00 jmpq *0x21526a(%rip) # 228ad0 <_GLOBAL_OFFSET_TABLE_+0xae8> 13866: 68 5a 01 00 00 pushq $0x15a 1386b: e9 40 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt>: 13870: ff 25 62 52 21 00 jmpq *0x215262(%rip) # 228ad8 <_GLOBAL_OFFSET_TABLE_+0xaf0> 13876: 68 5b 01 00 00 pushq $0x15b 1387b: e9 30 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013880 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 13880: ff 25 5a 52 21 00 jmpq *0x21525a(%rip) # 228ae0 <_GLOBAL_OFFSET_TABLE_+0xaf8> 13886: 68 5c 01 00 00 pushq $0x15c 1388b: e9 20 ea ff ff jmpq 122b0 <_init+0x20> 0000000000013890 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt>: 13890: ff 25 52 52 21 00 jmpq *0x215252(%rip) # 228ae8 <_GLOBAL_OFFSET_TABLE_+0xb00> 13896: 68 5d 01 00 00 pushq $0x15d 1389b: e9 10 ea ff ff jmpq 122b0 <_init+0x20> 00000000000138a0 <_ZNSaIP11XLogHandlerED1Ev@plt>: 138a0: ff 25 4a 52 21 00 jmpq *0x21524a(%rip) # 228af0 <_GLOBAL_OFFSET_TABLE_+0xb08> 138a6: 68 5e 01 00 00 pushq $0x15e 138ab: e9 00 ea ff ff jmpq 122b0 <_init+0x20> 00000000000138b0 <__stack_chk_fail@plt>: 138b0: ff 25 42 52 21 00 jmpq *0x215242(%rip) # 228af8 <_GLOBAL_OFFSET_TABLE_+0xb10> 138b6: 68 5f 01 00 00 pushq $0x15f 138bb: e9 f0 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000138c0 : 138c0: ff 25 3a 52 21 00 jmpq *0x21523a(%rip) # 228b00 <_GLOBAL_OFFSET_TABLE_+0xb18> 138c6: 68 60 01 00 00 pushq $0x160 138cb: e9 e0 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000138d0 <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi@plt>: 138d0: ff 25 32 52 21 00 jmpq *0x215232(%rip) # 228b08 <_GLOBAL_OFFSET_TABLE_+0xb20> 138d6: 68 61 01 00 00 pushq $0x161 138db: e9 d0 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EEC1Ev@plt>: 138e0: ff 25 2a 52 21 00 jmpq *0x21522a(%rip) # 228b10 <_GLOBAL_OFFSET_TABLE_+0xb28> 138e6: 68 62 01 00 00 pushq $0x162 138eb: e9 c0 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000138f0 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt>: 138f0: ff 25 22 52 21 00 jmpq *0x215222(%rip) # 228b18 <_GLOBAL_OFFSET_TABLE_+0xb30> 138f6: 68 63 01 00 00 pushq $0x163 138fb: e9 b0 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013900 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt>: 13900: ff 25 1a 52 21 00 jmpq *0x21521a(%rip) # 228b20 <_GLOBAL_OFFSET_TABLE_+0xb38> 13906: 68 64 01 00 00 pushq $0x164 1390b: e9 a0 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013910 : 13910: ff 25 12 52 21 00 jmpq *0x215212(%rip) # 228b28 <_GLOBAL_OFFSET_TABLE_+0xb40> 13916: 68 65 01 00 00 pushq $0x165 1391b: e9 90 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013920 <_ZN6FSUtil5mkdirEPKcj@plt>: 13920: ff 25 0a 52 21 00 jmpq *0x21520a(%rip) # 228b30 <_GLOBAL_OFFSET_TABLE_+0xb48> 13926: 68 66 01 00 00 pushq $0x166 1392b: e9 80 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013930 : 13930: ff 25 02 52 21 00 jmpq *0x215202(%rip) # 228b38 <_GLOBAL_OFFSET_TABLE_+0xb50> 13936: 68 67 01 00 00 pushq $0x167 1393b: e9 70 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013940 : 13940: ff 25 fa 51 21 00 jmpq *0x2151fa(%rip) # 228b40 <_GLOBAL_OFFSET_TABLE_+0xb58> 13946: 68 68 01 00 00 pushq $0x168 1394b: e9 60 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013950 <_ZNSt4listIiSaIiEED1Ev@plt>: 13950: ff 25 f2 51 21 00 jmpq *0x2151f2(%rip) # 228b48 <_GLOBAL_OFFSET_TABLE_+0xb60> 13956: 68 69 01 00 00 pushq $0x169 1395b: e9 50 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013960 : 13960: ff 25 ea 51 21 00 jmpq *0x2151ea(%rip) # 228b50 <_GLOBAL_OFFSET_TABLE_+0xb68> 13966: 68 6a 01 00 00 pushq $0x16a 1396b: e9 40 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013970 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt18_Rb_tree_node_base@plt>: 13970: ff 25 e2 51 21 00 jmpq *0x2151e2(%rip) # 228b58 <_GLOBAL_OFFSET_TABLE_+0xb70> 13976: 68 6b 01 00 00 pushq $0x16b 1397b: e9 30 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013980 <_ZNSaIcED1Ev@plt>: 13980: ff 25 da 51 21 00 jmpq *0x2151da(%rip) # 228b60 <_GLOBAL_OFFSET_TABLE_+0xb78> 13986: 68 6c 01 00 00 pushq $0x16c 1398b: e9 20 e9 ff ff jmpq 122b0 <_init+0x20> 0000000000013990 <_ZN4XLog5debugEPKcS1_S1_z@plt>: 13990: ff 25 d2 51 21 00 jmpq *0x2151d2(%rip) # 228b68 <_GLOBAL_OFFSET_TABLE_+0xb80> 13996: 68 6d 01 00 00 pushq $0x16d 1399b: e9 10 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000139a0 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv@plt>: 139a0: ff 25 ca 51 21 00 jmpq *0x2151ca(%rip) # 228b70 <_GLOBAL_OFFSET_TABLE_+0xb88> 139a6: 68 6e 01 00 00 pushq $0x16e 139ab: e9 00 e9 ff ff jmpq 122b0 <_init+0x20> 00000000000139b0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt>: 139b0: ff 25 c2 51 21 00 jmpq *0x2151c2(%rip) # 228b78 <_GLOBAL_OFFSET_TABLE_+0xb90> 139b6: 68 6f 01 00 00 pushq $0x16f 139bb: e9 f0 e8 ff ff jmpq 122b0 <_init+0x20> 00000000000139c0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt>: 139c0: ff 25 ba 51 21 00 jmpq *0x2151ba(%rip) # 228b80 <_GLOBAL_OFFSET_TABLE_+0xb98> 139c6: 68 70 01 00 00 pushq $0x170 139cb: e9 e0 e8 ff ff jmpq 122b0 <_init+0x20> 00000000000139d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt>: 139d0: ff 25 b2 51 21 00 jmpq *0x2151b2(%rip) # 228b88 <_GLOBAL_OFFSET_TABLE_+0xba0> 139d6: 68 71 01 00 00 pushq $0x171 139db: e9 d0 e8 ff ff jmpq 122b0 <_init+0x20> 00000000000139e0 <_ZN19XLogFileHandlerBaseD2Ev@plt>: 139e0: ff 25 aa 51 21 00 jmpq *0x2151aa(%rip) # 228b90 <_GLOBAL_OFFSET_TABLE_+0xba8> 139e6: 68 72 01 00 00 pushq $0x172 139eb: e9 c0 e8 ff ff jmpq 122b0 <_init+0x20> 00000000000139f0 <_ZNSt4pairIKSsP4XLogEC1ERS0_RKS2_@plt>: 139f0: ff 25 a2 51 21 00 jmpq *0x2151a2(%rip) # 228b98 <_GLOBAL_OFFSET_TABLE_+0xbb0> 139f6: 68 73 01 00 00 pushq $0x173 139fb: e9 b0 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a00 : 13a00: ff 25 9a 51 21 00 jmpq *0x21519a(%rip) # 228ba0 <_GLOBAL_OFFSET_TABLE_+0xbb8> 13a06: 68 74 01 00 00 pushq $0x174 13a0b: e9 a0 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a10 : 13a10: ff 25 92 51 21 00 jmpq *0x215192(%rip) # 228ba8 <_GLOBAL_OFFSET_TABLE_+0xbc0> 13a16: 68 75 01 00 00 pushq $0x175 13a1b: e9 90 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a20 <_ZN17XLogSyslogHandler7openLogEv@plt>: 13a20: ff 25 8a 51 21 00 jmpq *0x21518a(%rip) # 228bb0 <_GLOBAL_OFFSET_TABLE_+0xbc8> 13a26: 68 76 01 00 00 pushq $0x176 13a2b: e9 80 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a30 : 13a30: ff 25 82 51 21 00 jmpq *0x215182(%rip) # 228bb8 <_GLOBAL_OFFSET_TABLE_+0xbd0> 13a36: 68 77 01 00 00 pushq $0x177 13a3b: e9 70 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a40 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt>: 13a40: ff 25 7a 51 21 00 jmpq *0x21517a(%rip) # 228bc0 <_GLOBAL_OFFSET_TABLE_+0xbd8> 13a46: 68 78 01 00 00 pushq $0x178 13a4b: e9 60 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a50 : 13a50: ff 25 72 51 21 00 jmpq *0x215172(%rip) # 228bc8 <_GLOBAL_OFFSET_TABLE_+0xbe0> 13a56: 68 79 01 00 00 pushq $0x179 13a5b: e9 50 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a60 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC2Ev@plt>: 13a60: ff 25 6a 51 21 00 jmpq *0x21516a(%rip) # 228bd0 <_GLOBAL_OFFSET_TABLE_+0xbe8> 13a66: 68 7a 01 00 00 pushq $0x17a 13a6b: e9 40 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a70 : 13a70: ff 25 62 51 21 00 jmpq *0x215162(%rip) # 228bd8 <_GLOBAL_OFFSET_TABLE_+0xbf0> 13a76: 68 7b 01 00 00 pushq $0x17b 13a7b: e9 30 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a80 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt>: 13a80: ff 25 5a 51 21 00 jmpq *0x21515a(%rip) # 228be0 <_GLOBAL_OFFSET_TABLE_+0xbf8> 13a86: 68 7c 01 00 00 pushq $0x17c 13a8b: e9 20 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013a90 : 13a90: ff 25 52 51 21 00 jmpq *0x215152(%rip) # 228be8 <_GLOBAL_OFFSET_TABLE_+0xc00> 13a96: 68 7d 01 00 00 pushq $0x17d 13a9b: e9 10 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013aa0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE21_M_get_Node_allocatorEv@plt>: 13aa0: ff 25 4a 51 21 00 jmpq *0x21514a(%rip) # 228bf0 <_GLOBAL_OFFSET_TABLE_+0xc08> 13aa6: 68 7e 01 00 00 pushq $0x17e 13aab: e9 00 e8 ff ff jmpq 122b0 <_init+0x20> 0000000000013ab0 <_ZSt3maxImERKT_S2_S2_@plt>: 13ab0: ff 25 42 51 21 00 jmpq *0x215142(%rip) # 228bf8 <_GLOBAL_OFFSET_TABLE_+0xc10> 13ab6: 68 7f 01 00 00 pushq $0x17f 13abb: e9 f0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013ac0 <_ZN17XLogSyslogHandlerD1Ev@plt>: 13ac0: ff 25 3a 51 21 00 jmpq *0x21513a(%rip) # 228c00 <_GLOBAL_OFFSET_TABLE_+0xc18> 13ac6: 68 80 01 00 00 pushq $0x180 13acb: e9 e0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013ad0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE4findERKS1_@plt>: 13ad0: ff 25 32 51 21 00 jmpq *0x215132(%rip) # 228c08 <_GLOBAL_OFFSET_TABLE_+0xc20> 13ad6: 68 81 01 00 00 pushq $0x181 13adb: e9 d0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013ae0 <_ZNSs6appendEPKc@plt>: 13ae0: ff 25 2a 51 21 00 jmpq *0x21512a(%rip) # 228c10 <_GLOBAL_OFFSET_TABLE_+0xc28> 13ae6: 68 82 01 00 00 pushq $0x182 13aeb: e9 c0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013af0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_@plt>: 13af0: ff 25 22 51 21 00 jmpq *0x215122(%rip) # 228c18 <_GLOBAL_OFFSET_TABLE_+0xc30> 13af6: 68 83 01 00 00 pushq $0x183 13afb: e9 b0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev@plt>: 13b00: ff 25 1a 51 21 00 jmpq *0x21511a(%rip) # 228c20 <_GLOBAL_OFFSET_TABLE_+0xc38> 13b06: 68 84 01 00 00 pushq $0x184 13b0b: e9 a0 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt>: 13b10: ff 25 12 51 21 00 jmpq *0x215112(%rip) # 228c28 <_GLOBAL_OFFSET_TABLE_+0xc40> 13b16: 68 85 01 00 00 pushq $0x185 13b1b: e9 90 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt>: 13b20: ff 25 0a 51 21 00 jmpq *0x21510a(%rip) # 228c30 <_GLOBAL_OFFSET_TABLE_+0xc48> 13b26: 68 86 01 00 00 pushq $0x186 13b2b: e9 80 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b30 : 13b30: ff 25 02 51 21 00 jmpq *0x215102(%rip) # 228c38 <_GLOBAL_OFFSET_TABLE_+0xc50> 13b36: 68 87 01 00 00 pushq $0x187 13b3b: e9 70 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_@plt>: 13b40: ff 25 fa 50 21 00 jmpq *0x2150fa(%rip) # 228c40 <_GLOBAL_OFFSET_TABLE_+0xc58> 13b46: 68 88 01 00 00 pushq $0x188 13b4b: e9 60 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b50 : 13b50: ff 25 f2 50 21 00 jmpq *0x2150f2(%rip) # 228c48 <_GLOBAL_OFFSET_TABLE_+0xc60> 13b56: 68 89 01 00 00 pushq $0x189 13b5b: e9 50 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b60 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt>: 13b60: ff 25 ea 50 21 00 jmpq *0x2150ea(%rip) # 228c50 <_GLOBAL_OFFSET_TABLE_+0xc68> 13b66: 68 8a 01 00 00 pushq $0x18a 13b6b: e9 40 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b70 : 13b70: ff 25 e2 50 21 00 jmpq *0x2150e2(%rip) # 228c58 <_GLOBAL_OFFSET_TABLE_+0xc70> 13b76: 68 8b 01 00 00 pushq $0x18b 13b7b: e9 30 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_get_nodeEv@plt>: 13b80: ff 25 da 50 21 00 jmpq *0x2150da(%rip) # 228c60 <_GLOBAL_OFFSET_TABLE_+0xc78> 13b86: 68 8c 01 00 00 pushq $0x18c 13b8b: e9 20 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt>: 13b90: ff 25 d2 50 21 00 jmpq *0x2150d2(%rip) # 228c68 <_GLOBAL_OFFSET_TABLE_+0xc80> 13b96: 68 8d 01 00 00 pushq $0x18d 13b9b: e9 10 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013ba0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt>: 13ba0: ff 25 ca 50 21 00 jmpq *0x2150ca(%rip) # 228c70 <_GLOBAL_OFFSET_TABLE_+0xc88> 13ba6: 68 8e 01 00 00 pushq $0x18e 13bab: e9 00 e7 ff ff jmpq 122b0 <_init+0x20> 0000000000013bb0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEE13_M_const_castEv@plt>: 13bb0: ff 25 c2 50 21 00 jmpq *0x2150c2(%rip) # 228c78 <_GLOBAL_OFFSET_TABLE_+0xc90> 13bb6: 68 8f 01 00 00 pushq $0x18f 13bbb: e9 f0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013bc0 : 13bc0: ff 25 ba 50 21 00 jmpq *0x2150ba(%rip) # 228c80 <_GLOBAL_OFFSET_TABLE_+0xc98> 13bc6: 68 90 01 00 00 pushq $0x190 13bcb: e9 e0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013bd0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt>: 13bd0: ff 25 b2 50 21 00 jmpq *0x2150b2(%rip) # 228c88 <_GLOBAL_OFFSET_TABLE_+0xca0> 13bd6: 68 91 01 00 00 pushq $0x191 13bdb: e9 d0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013be0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt>: 13be0: ff 25 aa 50 21 00 jmpq *0x2150aa(%rip) # 228c90 <_GLOBAL_OFFSET_TABLE_+0xca8> 13be6: 68 92 01 00 00 pushq $0x192 13beb: e9 c0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013bf0 : 13bf0: ff 25 a2 50 21 00 jmpq *0x2150a2(%rip) # 228c98 <_GLOBAL_OFFSET_TABLE_+0xcb0> 13bf6: 68 93 01 00 00 pushq $0x193 13bfb: e9 b0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c00 : 13c00: ff 25 9a 50 21 00 jmpq *0x21509a(%rip) # 228ca0 <_GLOBAL_OFFSET_TABLE_+0xcb8> 13c06: 68 94 01 00 00 pushq $0x194 13c0b: e9 a0 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c10 <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E@plt>: 13c10: ff 25 92 50 21 00 jmpq *0x215092(%rip) # 228ca8 <_GLOBAL_OFFSET_TABLE_+0xcc0> 13c16: 68 95 01 00 00 pushq $0x195 13c1b: e9 90 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c20 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE11lower_boundERS5_@plt>: 13c20: ff 25 8a 50 21 00 jmpq *0x21508a(%rip) # 228cb0 <_GLOBAL_OFFSET_TABLE_+0xcc8> 13c26: 68 96 01 00 00 pushq $0x196 13c2b: e9 80 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c30 <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev@plt>: 13c30: ff 25 82 50 21 00 jmpq *0x215082(%rip) # 228cb8 <_GLOBAL_OFFSET_TABLE_+0xcd0> 13c36: 68 97 01 00 00 pushq $0x197 13c3b: e9 70 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c40 <__cxa_end_catch@plt>: 13c40: ff 25 7a 50 21 00 jmpq *0x21507a(%rip) # 228cc0 <_GLOBAL_OFFSET_TABLE_+0xcd8> 13c46: 68 98 01 00 00 pushq $0x198 13c4b: e9 60 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c50 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv@plt>: 13c50: ff 25 72 50 21 00 jmpq *0x215072(%rip) # 228cc8 <_GLOBAL_OFFSET_TABLE_+0xce0> 13c56: 68 99 01 00 00 pushq $0x199 13c5b: e9 50 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c60 <_ZSt17__throw_bad_allocv@plt>: 13c60: ff 25 6a 50 21 00 jmpq *0x21506a(%rip) # 228cd0 <_GLOBAL_OFFSET_TABLE_+0xce8> 13c66: 68 9a 01 00 00 pushq $0x19a 13c6b: e9 40 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c70 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_@plt>: 13c70: ff 25 62 50 21 00 jmpq *0x215062(%rip) # 228cd8 <_GLOBAL_OFFSET_TABLE_+0xcf0> 13c76: 68 9b 01 00 00 pushq $0x19b 13c7b: e9 30 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c80 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEE13_M_const_castEv@plt>: 13c80: ff 25 5a 50 21 00 jmpq *0x21505a(%rip) # 228ce0 <_GLOBAL_OFFSET_TABLE_+0xcf8> 13c86: 68 9c 01 00 00 pushq $0x19c 13c8b: e9 20 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013c90 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev@plt>: 13c90: ff 25 52 50 21 00 jmpq *0x215052(%rip) # 228ce8 <_GLOBAL_OFFSET_TABLE_+0xd00> 13c96: 68 9d 01 00 00 pushq $0x19d 13c9b: e9 10 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013ca0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_get_nodeEv@plt>: 13ca0: ff 25 4a 50 21 00 jmpq *0x21504a(%rip) # 228cf0 <_GLOBAL_OFFSET_TABLE_+0xd08> 13ca6: 68 9e 01 00 00 pushq $0x19e 13cab: e9 00 e6 ff ff jmpq 122b0 <_init+0x20> 0000000000013cb0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv@plt>: 13cb0: ff 25 42 50 21 00 jmpq *0x215042(%rip) # 228cf8 <_GLOBAL_OFFSET_TABLE_+0xd10> 13cb6: 68 9f 01 00 00 pushq $0x19f 13cbb: e9 f0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013cc0 <_ZNSt4pairIKmPvED1Ev@plt>: 13cc0: ff 25 3a 50 21 00 jmpq *0x21503a(%rip) # 228d00 <_GLOBAL_OFFSET_TABLE_+0xd18> 13cc6: 68 a0 01 00 00 pushq $0x1a0 13ccb: e9 e0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013cd0 <_ZN11XLogManager6getLogEPKc@plt>: 13cd0: ff 25 32 50 21 00 jmpq *0x215032(%rip) # 228d08 <_GLOBAL_OFFSET_TABLE_+0xd20> 13cd6: 68 a1 01 00 00 pushq $0x1a1 13cdb: e9 d0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013ce0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt>: 13ce0: ff 25 2a 50 21 00 jmpq *0x21502a(%rip) # 228d10 <_GLOBAL_OFFSET_TABLE_+0xd28> 13ce6: 68 a2 01 00 00 pushq $0x1a2 13ceb: e9 c0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013cf0 <_ZNSt4pairISt23_Rb_tree_const_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt>: 13cf0: ff 25 22 50 21 00 jmpq *0x215022(%rip) # 228d18 <_GLOBAL_OFFSET_TABLE_+0xd30> 13cf6: 68 a3 01 00 00 pushq $0x1a3 13cfb: e9 b0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d00 : 13d00: ff 25 1a 50 21 00 jmpq *0x21501a(%rip) # 228d20 <_GLOBAL_OFFSET_TABLE_+0xd38> 13d06: 68 a4 01 00 00 pushq $0x1a4 13d0b: e9 a0 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d10 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv@plt>: 13d10: ff 25 12 50 21 00 jmpq *0x215012(%rip) # 228d28 <_GLOBAL_OFFSET_TABLE_+0xd40> 13d16: 68 a5 01 00 00 pushq $0x1a5 13d1b: e9 90 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d20 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE10deallocateEPS4_m@plt>: 13d20: ff 25 0a 50 21 00 jmpq *0x21500a(%rip) # 228d30 <_GLOBAL_OFFSET_TABLE_+0xd48> 13d26: 68 a6 01 00 00 pushq $0x1a6 13d2b: e9 80 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d30 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_@plt>: 13d30: ff 25 02 50 21 00 jmpq *0x215002(%rip) # 228d38 <_GLOBAL_OFFSET_TABLE_+0xd50> 13d36: 68 a7 01 00 00 pushq $0x1a7 13d3b: e9 70 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d40 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt>: 13d40: ff 25 fa 4f 21 00 jmpq *0x214ffa(%rip) # 228d40 <_GLOBAL_OFFSET_TABLE_+0xd58> 13d46: 68 a8 01 00 00 pushq $0x1a8 13d4b: e9 60 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d50 : 13d50: ff 25 f2 4f 21 00 jmpq *0x214ff2(%rip) # 228d48 <_GLOBAL_OFFSET_TABLE_+0xd60> 13d56: 68 a9 01 00 00 pushq $0x1a9 13d5b: e9 50 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d60 <__cxa_guard_abort@plt>: 13d60: ff 25 ea 4f 21 00 jmpq *0x214fea(%rip) # 228d50 <_GLOBAL_OFFSET_TABLE_+0xd68> 13d66: 68 aa 01 00 00 pushq $0x1aa 13d6b: e9 40 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d70 <__cxa_begin_catch@plt>: 13d70: ff 25 e2 4f 21 00 jmpq *0x214fe2(%rip) # 228d58 <_GLOBAL_OFFSET_TABLE_+0xd70> 13d76: 68 ab 01 00 00 pushq $0x1ab 13d7b: e9 30 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d80 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt>: 13d80: ff 25 da 4f 21 00 jmpq *0x214fda(%rip) # 228d60 <_GLOBAL_OFFSET_TABLE_+0xd78> 13d86: 68 ac 01 00 00 pushq $0x1ac 13d8b: e9 20 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013d90 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_@plt>: 13d90: ff 25 d2 4f 21 00 jmpq *0x214fd2(%rip) # 228d68 <_GLOBAL_OFFSET_TABLE_+0xd80> 13d96: 68 ad 01 00 00 pushq $0x1ad 13d9b: e9 10 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013da0 : 13da0: ff 25 ca 4f 21 00 jmpq *0x214fca(%rip) # 228d70 <_GLOBAL_OFFSET_TABLE_+0xd88> 13da6: 68 ae 01 00 00 pushq $0x1ae 13dab: e9 00 e5 ff ff jmpq 122b0 <_init+0x20> 0000000000013db0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt>: 13db0: ff 25 c2 4f 21 00 jmpq *0x214fc2(%rip) # 228d78 <_GLOBAL_OFFSET_TABLE_+0xd90> 13db6: 68 af 01 00 00 pushq $0x1af 13dbb: e9 f0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013dc0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt23_Rb_tree_const_iteratorIS3_E@plt>: 13dc0: ff 25 ba 4f 21 00 jmpq *0x214fba(%rip) # 228d80 <_GLOBAL_OFFSET_TABLE_+0xd98> 13dc6: 68 b0 01 00 00 pushq $0x1b0 13dcb: e9 e0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013dd0 <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi@plt>: 13dd0: ff 25 b2 4f 21 00 jmpq *0x214fb2(%rip) # 228d88 <_GLOBAL_OFFSET_TABLE_+0xda0> 13dd6: 68 b1 01 00 00 pushq $0x1b1 13ddb: e9 d0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013de0 <_ZNSaIcEC1Ev@plt>: 13de0: ff 25 aa 4f 21 00 jmpq *0x214faa(%rip) # 228d90 <_GLOBAL_OFFSET_TABLE_+0xda8> 13de6: 68 b2 01 00 00 pushq $0x1b2 13deb: e9 c0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013df0 <_ZdlPvS_@plt>: 13df0: ff 25 a2 4f 21 00 jmpq *0x214fa2(%rip) # 228d98 <_GLOBAL_OFFSET_TABLE_+0xdb0> 13df6: 68 b3 01 00 00 pushq $0x1b3 13dfb: e9 b0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE@plt>: 13e00: ff 25 9a 4f 21 00 jmpq *0x214f9a(%rip) # 228da0 <_GLOBAL_OFFSET_TABLE_+0xdb8> 13e06: 68 b4 01 00 00 pushq $0x1b4 13e0b: e9 a0 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e10 <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E@plt>: 13e10: ff 25 92 4f 21 00 jmpq *0x214f92(%rip) # 228da8 <_GLOBAL_OFFSET_TABLE_+0xdc0> 13e16: 68 b5 01 00 00 pushq $0x1b5 13e1b: e9 90 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e20 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE11lower_boundERS4_@plt>: 13e20: ff 25 8a 4f 21 00 jmpq *0x214f8a(%rip) # 228db0 <_GLOBAL_OFFSET_TABLE_+0xdc8> 13e26: 68 b6 01 00 00 pushq $0x1b6 13e2b: e9 80 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e30 : 13e30: ff 25 82 4f 21 00 jmpq *0x214f82(%rip) # 228db8 <_GLOBAL_OFFSET_TABLE_+0xdd0> 13e36: 68 b7 01 00 00 pushq $0x1b7 13e3b: e9 70 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e40 : 13e40: ff 25 7a 4f 21 00 jmpq *0x214f7a(%rip) # 228dc0 <_GLOBAL_OFFSET_TABLE_+0xdd8> 13e46: 68 b8 01 00 00 pushq $0x1b8 13e4b: e9 60 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e50 : 13e50: ff 25 72 4f 21 00 jmpq *0x214f72(%rip) # 228dc8 <_GLOBAL_OFFSET_TABLE_+0xde0> 13e56: 68 b9 01 00 00 pushq $0x1b9 13e5b: e9 50 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e60 : 13e60: ff 25 6a 4f 21 00 jmpq *0x214f6a(%rip) # 228dd0 <_GLOBAL_OFFSET_TABLE_+0xde8> 13e66: 68 ba 01 00 00 pushq $0x1ba 13e6b: e9 40 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt>: 13e70: ff 25 62 4f 21 00 jmpq *0x214f62(%rip) # 228dd8 <_GLOBAL_OFFSET_TABLE_+0xdf0> 13e76: 68 bb 01 00 00 pushq $0x1bb 13e7b: e9 30 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e80 <_ZNSaIiED1Ev@plt>: 13e80: ff 25 5a 4f 21 00 jmpq *0x214f5a(%rip) # 228de0 <_GLOBAL_OFFSET_TABLE_+0xdf8> 13e86: 68 bc 01 00 00 pushq $0x1bc 13e8b: e9 20 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt>: 13e90: ff 25 52 4f 21 00 jmpq *0x214f52(%rip) # 228de8 <_GLOBAL_OFFSET_TABLE_+0xe00> 13e96: 68 bd 01 00 00 pushq $0x1bd 13e9b: e9 10 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013ea0 : 13ea0: ff 25 4a 4f 21 00 jmpq *0x214f4a(%rip) # 228df0 <_GLOBAL_OFFSET_TABLE_+0xe08> 13ea6: 68 be 01 00 00 pushq $0x1be 13eab: e9 00 e4 ff ff jmpq 122b0 <_init+0x20> 0000000000013eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_@plt>: 13eb0: ff 25 42 4f 21 00 jmpq *0x214f42(%rip) # 228df8 <_GLOBAL_OFFSET_TABLE_+0xe10> 13eb6: 68 bf 01 00 00 pushq $0x1bf 13ebb: e9 f0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013ec0 : 13ec0: ff 25 3a 4f 21 00 jmpq *0x214f3a(%rip) # 228e00 <_GLOBAL_OFFSET_TABLE_+0xe18> 13ec6: 68 c0 01 00 00 pushq $0x1c0 13ecb: e9 e0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013ed0 : 13ed0: ff 25 32 4f 21 00 jmpq *0x214f32(%rip) # 228e08 <_GLOBAL_OFFSET_TABLE_+0xe20> 13ed6: 68 c1 01 00 00 pushq $0x1c1 13edb: e9 d0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013ee0 <_ZN11XLogHandler11getLevelStrERKi@plt>: 13ee0: ff 25 2a 4f 21 00 jmpq *0x214f2a(%rip) # 228e10 <_GLOBAL_OFFSET_TABLE_+0xe28> 13ee6: 68 c2 01 00 00 pushq $0x1c2 13eeb: e9 c0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013ef0 <_ZN6XMutex6unlockEv@plt>: 13ef0: ff 25 22 4f 21 00 jmpq *0x214f22(%rip) # 228e18 <_GLOBAL_OFFSET_TABLE_+0xe30> 13ef6: 68 c3 01 00 00 pushq $0x1c3 13efb: e9 b0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt>: 13f00: ff 25 1a 4f 21 00 jmpq *0x214f1a(%rip) # 228e20 <_GLOBAL_OFFSET_TABLE_+0xe38> 13f06: 68 c4 01 00 00 pushq $0x1c4 13f0b: e9 a0 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f10 <_Znwm@plt>: 13f10: ff 25 12 4f 21 00 jmpq *0x214f12(%rip) # 228e28 <_GLOBAL_OFFSET_TABLE_+0xe40> 13f16: 68 c5 01 00 00 pushq $0x1c5 13f1b: e9 90 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f20 <_Unwind_Resume@plt>: 13f20: ff 25 0a 4f 21 00 jmpq *0x214f0a(%rip) # 228e30 <_GLOBAL_OFFSET_TABLE_+0xe48> 13f26: 68 c6 01 00 00 pushq $0x1c6 13f2b: e9 80 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt>: 13f30: ff 25 02 4f 21 00 jmpq *0x214f02(%rip) # 228e38 <_GLOBAL_OFFSET_TABLE_+0xe50> 13f36: 68 c7 01 00 00 pushq $0x1c7 13f3b: e9 70 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_@plt>: 13f40: ff 25 fa 4e 21 00 jmpq *0x214efa(%rip) # 228e40 <_GLOBAL_OFFSET_TABLE_+0xe58> 13f46: 68 c8 01 00 00 pushq $0x1c8 13f4b: e9 60 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f50 <_ZNSt10_List_baseIiSaIiEED2Ev@plt>: 13f50: ff 25 f2 4e 21 00 jmpq *0x214ef2(%rip) # 228e48 <_GLOBAL_OFFSET_TABLE_+0xe60> 13f56: 68 c9 01 00 00 pushq $0x1c9 13f5b: e9 50 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f60 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt>: 13f60: ff 25 ea 4e 21 00 jmpq *0x214eea(%rip) # 228e50 <_GLOBAL_OFFSET_TABLE_+0xe68> 13f66: 68 ca 01 00 00 pushq $0x1ca 13f6b: e9 40 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f70 <_ZNSaISt10_List_nodeIiEED2Ev@plt>: 13f70: ff 25 e2 4e 21 00 jmpq *0x214ee2(%rip) # 228e58 <_GLOBAL_OFFSET_TABLE_+0xe70> 13f76: 68 cb 01 00 00 pushq $0x1cb 13f7b: e9 30 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f80 <_ZN15XLogFileHandlerC1EPKc@plt>: 13f80: ff 25 da 4e 21 00 jmpq *0x214eda(%rip) # 228e60 <_GLOBAL_OFFSET_TABLE_+0xe78> 13f86: 68 cc 01 00 00 pushq $0x1cc 13f8b: e9 20 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013f90 : 13f90: ff 25 d2 4e 21 00 jmpq *0x214ed2(%rip) # 228e68 <_GLOBAL_OFFSET_TABLE_+0xe80> 13f96: 68 cd 01 00 00 pushq $0x1cd 13f9b: e9 10 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013fa0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv@plt>: 13fa0: ff 25 ca 4e 21 00 jmpq *0x214eca(%rip) # 228e70 <_GLOBAL_OFFSET_TABLE_+0xe88> 13fa6: 68 ce 01 00 00 pushq $0x1ce 13fab: e9 00 e3 ff ff jmpq 122b0 <_init+0x20> 0000000000013fb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt>: 13fb0: ff 25 c2 4e 21 00 jmpq *0x214ec2(%rip) # 228e78 <_GLOBAL_OFFSET_TABLE_+0xe90> 13fb6: 68 cf 01 00 00 pushq $0x1cf 13fbb: e9 f0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000013fc0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt>: 13fc0: ff 25 ba 4e 21 00 jmpq *0x214eba(%rip) # 228e80 <_GLOBAL_OFFSET_TABLE_+0xe98> 13fc6: 68 d0 01 00 00 pushq $0x1d0 13fcb: e9 e0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000013fd0 : 13fd0: ff 25 b2 4e 21 00 jmpq *0x214eb2(%rip) # 228e88 <_GLOBAL_OFFSET_TABLE_+0xea0> 13fd6: 68 d1 01 00 00 pushq $0x1d1 13fdb: e9 d0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000013fe0 <_ZNSaISt10_List_nodeIiEEC2Ev@plt>: 13fe0: ff 25 aa 4e 21 00 jmpq *0x214eaa(%rip) # 228e90 <_GLOBAL_OFFSET_TABLE_+0xea8> 13fe6: 68 d2 01 00 00 pushq $0x1d2 13feb: e9 c0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000013ff0 <_ZNSt12_Vector_baseISsSaISsEEC2Ev@plt>: 13ff0: ff 25 a2 4e 21 00 jmpq *0x214ea2(%rip) # 228e98 <_GLOBAL_OFFSET_TABLE_+0xeb0> 13ff6: 68 d3 01 00 00 pushq $0x1d3 13ffb: e9 b0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014000 <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E@plt>: 14000: ff 25 9a 4e 21 00 jmpq *0x214e9a(%rip) # 228ea0 <_GLOBAL_OFFSET_TABLE_+0xeb8> 14006: 68 d4 01 00 00 pushq $0x1d4 1400b: e9 a0 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014010 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt>: 14010: ff 25 92 4e 21 00 jmpq *0x214e92(%rip) # 228ea8 <_GLOBAL_OFFSET_TABLE_+0xec0> 14016: 68 d5 01 00 00 pushq $0x1d5 1401b: e9 90 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv@plt>: 14020: ff 25 8a 4e 21 00 jmpq *0x214e8a(%rip) # 228eb0 <_GLOBAL_OFFSET_TABLE_+0xec8> 14026: 68 d6 01 00 00 pushq $0x1d6 1402b: e9 80 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014030 <_ZNSsaSERKSs@plt>: 14030: ff 25 82 4e 21 00 jmpq *0x214e82(%rip) # 228eb8 <_GLOBAL_OFFSET_TABLE_+0xed0> 14036: 68 d7 01 00 00 pushq $0x1d7 1403b: e9 70 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014040 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_@plt>: 14040: ff 25 7a 4e 21 00 jmpq *0x214e7a(%rip) # 228ec0 <_GLOBAL_OFFSET_TABLE_+0xed8> 14046: 68 d8 01 00 00 pushq $0x1d8 1404b: e9 60 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014050 : 14050: ff 25 72 4e 21 00 jmpq *0x214e72(%rip) # 228ec8 <_GLOBAL_OFFSET_TABLE_+0xee0> 14056: 68 d9 01 00 00 pushq $0x1d9 1405b: e9 50 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014060 <_ZN9__gnu_cxx13new_allocatorISsEC2Ev@plt>: 14060: ff 25 6a 4e 21 00 jmpq *0x214e6a(%rip) # 228ed0 <_GLOBAL_OFFSET_TABLE_+0xee8> 14066: 68 da 01 00 00 pushq $0x1da 1406b: e9 40 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014070 <_ZNSt4listIiSaIiEE14_M_create_nodeERKi@plt>: 14070: ff 25 62 4e 21 00 jmpq *0x214e62(%rip) # 228ed8 <_GLOBAL_OFFSET_TABLE_+0xef0> 14076: 68 db 01 00 00 pushq $0x1db 1407b: e9 30 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014080 <_ZSt8_DestroyIPSsEvT_S1_@plt>: 14080: ff 25 5a 4e 21 00 jmpq *0x214e5a(%rip) # 228ee0 <_GLOBAL_OFFSET_TABLE_+0xef8> 14086: 68 dc 01 00 00 pushq $0x1dc 1408b: e9 20 e2 ff ff jmpq 122b0 <_init+0x20> 0000000000014090 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt>: 14090: ff 25 52 4e 21 00 jmpq *0x214e52(%rip) # 228ee8 <_GLOBAL_OFFSET_TABLE_+0xf00> 14096: 68 dd 01 00 00 pushq $0x1dd 1409b: e9 10 e2 ff ff jmpq 122b0 <_init+0x20> 00000000000140a0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt>: 140a0: ff 25 4a 4e 21 00 jmpq *0x214e4a(%rip) # 228ef0 <_GLOBAL_OFFSET_TABLE_+0xf08> 140a6: 68 de 01 00 00 pushq $0x1de 140ab: e9 00 e2 ff ff jmpq 122b0 <_init+0x20> 00000000000140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt>: 140b0: ff 25 42 4e 21 00 jmpq *0x214e42(%rip) # 228ef8 <_GLOBAL_OFFSET_TABLE_+0xf10> 140b6: 68 df 01 00 00 pushq $0x1df 140bb: e9 f0 e1 ff ff jmpq 122b0 <_init+0x20> 00000000000140c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv@plt>: 140c0: ff 25 3a 4e 21 00 jmpq *0x214e3a(%rip) # 228f00 <_GLOBAL_OFFSET_TABLE_+0xf18> 140c6: 68 e0 01 00 00 pushq $0x1e0 140cb: e9 e0 e1 ff ff jmpq 122b0 <_init+0x20> 00000000000140d0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS5_@plt>: 140d0: ff 25 32 4e 21 00 jmpq *0x214e32(%rip) # 228f08 <_GLOBAL_OFFSET_TABLE_+0xf20> 140d6: 68 e1 01 00 00 pushq $0x1e1 140db: e9 d0 e1 ff ff jmpq 122b0 <_init+0x20> 00000000000140e0 : 140e0: ff 25 2a 4e 21 00 jmpq *0x214e2a(%rip) # 228f10 <_GLOBAL_OFFSET_TABLE_+0xf28> 140e6: 68 e2 01 00 00 pushq $0x1e2 140eb: e9 c0 e1 ff ff jmpq 122b0 <_init+0x20> 00000000000140f0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC2Ev@plt>: 140f0: ff 25 22 4e 21 00 jmpq *0x214e22(%rip) # 228f18 <_GLOBAL_OFFSET_TABLE_+0xf30> 140f6: 68 e3 01 00 00 pushq $0x1e3 140fb: e9 b0 e1 ff ff jmpq 122b0 <_init+0x20> 0000000000014100 : 14100: ff 25 1a 4e 21 00 jmpq *0x214e1a(%rip) # 228f20 <_GLOBAL_OFFSET_TABLE_+0xf38> 14106: 68 e4 01 00 00 pushq $0x1e4 1410b: e9 a0 e1 ff ff jmpq 122b0 <_init+0x20> 0000000000014110 <_ZN9__gnu_cxx13new_allocatorIiEC2Ev@plt>: 14110: ff 25 12 4e 21 00 jmpq *0x214e12(%rip) # 228f28 <_GLOBAL_OFFSET_TABLE_+0xf40> 14116: 68 e5 01 00 00 pushq $0x1e5 1411b: e9 90 e1 ff ff jmpq 122b0 <_init+0x20> 0000000000014120 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt>: 14120: ff 25 0a 4e 21 00 jmpq *0x214e0a(%rip) # 228f30 <_GLOBAL_OFFSET_TABLE_+0xf48> 14126: 68 e6 01 00 00 pushq $0x1e6 1412b: e9 80 e1 ff ff jmpq 122b0 <_init+0x20> Disassembly of section .text: 0000000000014130 : 14130: 48 83 ec 08 sub $0x8,%rsp 14134: 48 8b 05 f5 3d 21 00 mov 0x213df5(%rip),%rax # 227f30 <_DYNAMIC+0x1e0> 1413b: 48 85 c0 test %rax,%rax 1413e: 74 02 je 14142 14140: ff d0 callq *%rax 14142: 48 83 c4 08 add $0x8,%rsp 14146: c3 retq 14147: 90 nop 14148: 90 nop 14149: 90 nop 1414a: 90 nop 1414b: 90 nop 1414c: 90 nop 1414d: 90 nop 1414e: 90 nop 1414f: 90 nop 0000000000014150 <__do_global_dtors_aux>: 14150: 55 push %rbp 14151: 80 3d 08 53 21 00 00 cmpb $0x0,0x215308(%rip) # 229460 <__bss_start> 14158: 48 89 e5 mov %rsp,%rbp 1415b: 41 54 push %r12 1415d: 53 push %rbx 1415e: 75 62 jne 141c2 <__do_global_dtors_aux+0x72> 14160: 48 83 3d f8 3d 21 00 cmpq $0x0,0x213df8(%rip) # 227f60 <_DYNAMIC+0x210> 14167: 00 14168: 74 0c je 14176 <__do_global_dtors_aux+0x26> 1416a: 48 8b 3d cf 4d 21 00 mov 0x214dcf(%rip),%rdi # 228f40 <__dso_handle> 14171: e8 ba ee ff ff callq 13030 <__cxa_finalize@plt> 14176: 48 8d 1d 5b 39 21 00 lea 0x21395b(%rip),%rbx # 227ad8 <__DTOR_END__> 1417d: 4c 8d 25 4c 39 21 00 lea 0x21394c(%rip),%r12 # 227ad0 <__DTOR_LIST__> 14184: 48 8b 05 dd 52 21 00 mov 0x2152dd(%rip),%rax # 229468 1418b: 4c 29 e3 sub %r12,%rbx 1418e: 48 c1 fb 03 sar $0x3,%rbx 14192: 48 83 eb 01 sub $0x1,%rbx 14196: 48 39 d8 cmp %rbx,%rax 14199: 73 20 jae 141bb <__do_global_dtors_aux+0x6b> 1419b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 141a0: 48 83 c0 01 add $0x1,%rax 141a4: 48 89 05 bd 52 21 00 mov %rax,0x2152bd(%rip) # 229468 141ab: 41 ff 14 c4 callq *(%r12,%rax,8) 141af: 48 8b 05 b2 52 21 00 mov 0x2152b2(%rip),%rax # 229468 141b6: 48 39 d8 cmp %rbx,%rax 141b9: 72 e5 jb 141a0 <__do_global_dtors_aux+0x50> 141bb: c6 05 9e 52 21 00 01 movb $0x1,0x21529e(%rip) # 229460 <__bss_start> 141c2: 5b pop %rbx 141c3: 41 5c pop %r12 141c5: 5d pop %rbp 141c6: c3 retq 141c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 141ce: 00 00 00000000000141d0 : 141d0: 48 83 3d 08 39 21 00 cmpq $0x0,0x213908(%rip) # 227ae0 <__JCR_END__> 141d7: 00 141d8: 55 push %rbp 141d9: 48 89 e5 mov %rsp,%rbp 141dc: 74 1a je 141f8 141de: 48 8b 05 53 3d 21 00 mov 0x213d53(%rip),%rax # 227f38 <_DYNAMIC+0x1e8> 141e5: 48 85 c0 test %rax,%rax 141e8: 74 0e je 141f8 141ea: 5d pop %rbp 141eb: 48 8d 3d ee 38 21 00 lea 0x2138ee(%rip),%rdi # 227ae0 <__JCR_END__> 141f2: ff e0 jmpq *%rax 141f4: 0f 1f 40 00 nopl 0x0(%rax) 141f8: 5d pop %rbp 141f9: c3 retq 141fa: 90 nop 141fb: 90 nop 00000000000141fc <_Z4loadP18enif_environment_tPPvm>: static XMutex id_mutex; XLog logger = XLogManager::instance().getLog("RadosLog"); int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) { 141fc: 55 push %rbp 141fd: 48 89 e5 mov %rsp,%rbp 14200: 48 83 ec 30 sub $0x30,%rsp 14204: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14208: 48 89 75 e0 mov %rsi,-0x20(%rbp) 1420c: 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); 14210: 48 8b 45 e8 mov -0x18(%rbp),%rax 14214: 41 b9 00 00 00 00 mov $0x0,%r9d 1421a: 41 b8 01 00 00 00 mov $0x1,%r8d 14220: 48 8d 0d cb 00 00 00 lea 0xcb(%rip),%rcx # 142f2 <_ZL17dtor_cluster_typeP18enif_environment_tPv> 14227: 48 8d 15 a2 dc 00 00 lea 0xdca2(%rip),%rdx # 21ed0 <_fini+0x18> 1422e: be 00 00 00 00 mov $0x0,%esi 14233: 48 89 c7 mov %rax,%rdi 14236: e8 25 f1 ff ff callq 13360 1423b: 48 89 45 f8 mov %rax,-0x8(%rbp) if (rt == NULL) 1423f: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 14244: 75 07 jne 1424d <_Z4loadP18enif_environment_tPPvm+0x51> return -1; 14246: b8 ff ff ff ff mov $0xffffffff,%eax 1424b: eb 63 jmp 142b0 <_Z4loadP18enif_environment_tPPvm+0xb4> cluster_type_resource = rt; 1424d: 48 8b 45 f8 mov -0x8(%rbp),%rax 14251: 48 89 05 68 53 21 00 mov %rax,0x215368(%rip) # 2295c0 <_ZL21cluster_type_resource> rt = enif_open_resource_type( env, NULL, "ioctx_type_resource", dtor_ioctx_type, ERL_NIF_RT_CREATE, NULL); 14258: 48 8b 45 e8 mov -0x18(%rbp),%rax 1425c: 41 b9 00 00 00 00 mov $0x0,%r9d 14262: 41 b8 01 00 00 00 mov $0x1,%r8d 14268: 48 8d 0d 91 00 00 00 lea 0x91(%rip),%rcx # 14300 <_ZL15dtor_ioctx_typeP18enif_environment_tPv> 1426f: 48 8d 15 70 dc 00 00 lea 0xdc70(%rip),%rdx # 21ee6 <_fini+0x2e> 14276: be 00 00 00 00 mov $0x0,%esi 1427b: 48 89 c7 mov %rax,%rdi 1427e: e8 dd f0 ff ff callq 13360 14283: 48 89 45 f8 mov %rax,-0x8(%rbp) if (rt == NULL) 14287: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 1428c: 75 07 jne 14295 <_Z4loadP18enif_environment_tPPvm+0x99> return -1; 1428e: b8 ff ff ff ff mov $0xffffffff,%eax 14293: eb 1b jmp 142b0 <_Z4loadP18enif_environment_tPPvm+0xb4> ioctx_type_resource = rt; 14295: 48 8b 45 f8 mov -0x8(%rbp),%rax 14299: 48 89 05 28 53 21 00 mov %rax,0x215328(%rip) # 2295c8 <_ZL19ioctx_type_resource> id_index = 0; 142a0: 48 c7 05 25 53 21 00 movq $0x0,0x215325(%rip) # 2295d0 <_ZL8id_index> 142a7: 00 00 00 00 return 0; 142ab: b8 00 00 00 00 mov $0x0,%eax } 142b0: c9 leaveq 142b1: c3 retq 00000000000142b2 <_ZL6reloadP18enif_environment_tPPvm>: static int reload(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) { 142b2: 55 push %rbp 142b3: 48 89 e5 mov %rsp,%rbp 142b6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 142ba: 48 89 75 f0 mov %rsi,-0x10(%rbp) 142be: 48 89 55 e8 mov %rdx,-0x18(%rbp) return 0; 142c2: b8 00 00 00 00 mov $0x0,%eax } 142c7: 5d pop %rbp 142c8: c3 retq 00000000000142c9 <_ZL7upgradeP18enif_environment_tPPvS2_m>: static int upgrade(ErlNifEnv* env, void** priv, void** old_priv, ERL_NIF_TERM load_info) { 142c9: 55 push %rbp 142ca: 48 89 e5 mov %rsp,%rbp 142cd: 48 89 7d f8 mov %rdi,-0x8(%rbp) 142d1: 48 89 75 f0 mov %rsi,-0x10(%rbp) 142d5: 48 89 55 e8 mov %rdx,-0x18(%rbp) 142d9: 48 89 4d e0 mov %rcx,-0x20(%rbp) return 0; 142dd: b8 00 00 00 00 mov $0x0,%eax } 142e2: 5d pop %rbp 142e3: c3 retq 00000000000142e4 <_ZL6unloadP18enif_environment_tPv>: static void unload(ErlNifEnv* env, void* priv) { 142e4: 55 push %rbp 142e5: 48 89 e5 mov %rsp,%rbp 142e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 142ec: 48 89 75 f0 mov %rsi,-0x10(%rbp) return; } 142f0: 5d pop %rbp 142f1: c3 retq 00000000000142f2 <_ZL17dtor_cluster_typeP18enif_environment_tPv>: static void dtor_cluster_type(ErlNifEnv* env, void* obj) { 142f2: 55 push %rbp 142f3: 48 89 e5 mov %rsp,%rbp 142f6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 142fa: 48 89 75 f0 mov %rsi,-0x10(%rbp) } 142fe: 5d pop %rbp 142ff: c3 retq 0000000000014300 <_ZL15dtor_ioctx_typeP18enif_environment_tPv>: static void dtor_ioctx_type(ErlNifEnv* env, void* obj) { 14300: 55 push %rbp 14301: 48 89 e5 mov %rsp,%rbp 14304: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14308: 48 89 75 f0 mov %rsi,-0x10(%rbp) } 1430c: 5d pop %rbp 1430d: c3 retq 000000000001430e <_Z6new_idv>: uint64_t new_id() { 1430e: 55 push %rbp 1430f: 48 89 e5 mov %rsp,%rbp id_mutex.lock(); 14312: 48 8d 3d c7 52 21 00 lea 0x2152c7(%rip),%rdi # 2295e0 <_ZL8id_mutex> 14319: e8 02 e4 ff ff callq 12720 <_ZN6XMutex4lockEv@plt> if (id_index == _UINT64_MAX) 1431e: 48 8b 05 ab 52 21 00 mov 0x2152ab(%rip),%rax # 2295d0 <_ZL8id_index> 14325: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 14329: 75 0b jne 14336 <_Z6new_idv+0x28> id_index = 0; 1432b: 48 c7 05 9a 52 21 00 movq $0x0,0x21529a(%rip) # 2295d0 <_ZL8id_index> 14332: 00 00 00 00 id_index++; 14336: 48 8b 05 93 52 21 00 mov 0x215293(%rip),%rax # 2295d0 <_ZL8id_index> 1433d: 48 83 c0 01 add $0x1,%rax 14341: 48 89 05 88 52 21 00 mov %rax,0x215288(%rip) # 2295d0 <_ZL8id_index> id_mutex.unlock(); 14348: 48 8d 3d 91 52 21 00 lea 0x215291(%rip),%rdi # 2295e0 <_ZL8id_mutex> 1434f: e8 9c fb ff ff callq 13ef0 <_ZN6XMutex6unlockEv@plt> return id_index; 14354: 48 8b 05 75 52 21 00 mov 0x215275(%rip),%rax # 2295d0 <_ZL8id_index> } 1435b: 5d pop %rbp 1435c: c3 retq 000000000001435d <_Z16make_error_tupleP18enif_environment_ti>: ERL_NIF_TERM make_error_tuple(ErlNifEnv* env, int err) { 1435d: 55 push %rbp 1435e: 48 89 e5 mov %rsp,%rbp 14361: 48 83 ec 20 sub $0x20,%rsp 14365: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14369: 89 75 e4 mov %esi,-0x1c(%rbp) ERL_NIF_TERM atom = enif_make_atom(env, "error"); 1436c: 48 8b 45 e8 mov -0x18(%rbp),%rax 14370: 48 8d 35 83 db 00 00 lea 0xdb83(%rip),%rsi # 21efa <_fini+0x42> 14377: 48 89 c7 mov %rax,%rdi 1437a: e8 41 e4 ff ff callq 127c0 1437f: 48 89 45 f0 mov %rax,-0x10(%rbp) ERL_NIF_TERM reason = enif_make_string(env, strerror(err), ERL_NIF_LATIN1); 14383: 8b 45 e4 mov -0x1c(%rbp),%eax 14386: 89 c7 mov %eax,%edi 14388: e8 b3 ef ff ff callq 13340 1438d: 48 89 c1 mov %rax,%rcx 14390: 48 8b 45 e8 mov -0x18(%rbp),%rax 14394: ba 01 00 00 00 mov $0x1,%edx 14399: 48 89 ce mov %rcx,%rsi 1439c: 48 89 c7 mov %rax,%rdi 1439f: e8 8c ee ff ff callq 13230 143a4: 48 89 45 f8 mov %rax,-0x8(%rbp) return enif_make_tuple2(env, atom, reason); 143a8: 48 8b 4d f8 mov -0x8(%rbp),%rcx 143ac: 48 8b 55 f0 mov -0x10(%rbp),%rdx 143b0: 48 8b 45 e8 mov -0x18(%rbp),%rax 143b4: be 02 00 00 00 mov $0x2,%esi 143b9: 48 89 c7 mov %rax,%rdi 143bc: b8 00 00 00 00 mov $0x0,%eax 143c1: e8 3a f8 ff ff callq 13c00 } 143c6: c9 leaveq 143c7: c3 retq 00000000000143c8 <_Z24x_add_stderr_log_handlerP18enif_environment_tiPKm>: ERL_NIF_TERM x_add_stderr_log_handler(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 143c8: 55 push %rbp 143c9: 48 89 e5 mov %rsp,%rbp 143cc: 41 54 push %r12 143ce: 53 push %rbx 143cf: 48 83 ec 30 sub $0x30,%rsp 143d3: 48 89 7d d8 mov %rdi,-0x28(%rbp) 143d7: 89 75 d4 mov %esi,-0x2c(%rbp) 143da: 48 89 55 c8 mov %rdx,-0x38(%rbp) XLogStderrHandler *log_handler = new XLogStderrHandler(); 143de: bf 38 00 00 00 mov $0x38,%edi 143e3: e8 28 fb ff ff callq 13f10 <_Znwm@plt> 143e8: 48 89 c3 mov %rax,%rbx 143eb: 48 89 df mov %rbx,%rdi 143ee: e8 2d e8 ff ff callq 12c20 <_ZN17XLogStderrHandlerC1Ev@plt> 143f3: 48 89 5d e8 mov %rbx,-0x18(%rbp) logger.addHandler(*log_handler); 143f7: 48 8b 45 e8 mov -0x18(%rbp),%rax 143fb: 48 89 c6 mov %rax,%rsi 143fe: 48 8b 05 8b 3b 21 00 mov 0x213b8b(%rip),%rax # 227f90 <_DYNAMIC+0x240> 14405: 48 89 c7 mov %rax,%rdi 14408: e8 53 ed ff ff callq 13160 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 1440d: 48 8b 45 d8 mov -0x28(%rbp),%rax 14411: 48 8d 35 e8 da 00 00 lea 0xdae8(%rip),%rsi # 21f00 <_fini+0x48> 14418: 48 89 c7 mov %rax,%rdi 1441b: e8 a0 e3 ff ff callq 127c0 } 14420: 48 83 c4 30 add $0x30,%rsp 14424: 5b pop %rbx 14425: 41 5c pop %r12 14427: 5d pop %rbp 14428: c3 retq 14429: 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(); 1442c: 48 89 df mov %rbx,%rdi 1442f: e8 0c e3 ff ff callq 12740 <_ZdlPv@plt> 14434: 4c 89 e0 mov %r12,%rax 14437: 48 89 c7 mov %rax,%rdi 1443a: e8 e1 fa ff ff callq 13f20 <_Unwind_Resume@plt> 000000000001443f <_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[]) { 1443f: 55 push %rbp 14440: 48 89 e5 mov %rsp,%rbp 14443: 41 54 push %r12 14445: 53 push %rbx 14446: 48 83 ec 30 sub $0x30,%rsp 1444a: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1444e: 89 75 d4 mov %esi,-0x2c(%rbp) 14451: 48 89 55 c8 mov %rdx,-0x38(%rbp) XLogSyslogHandler *log_handler = new XLogSyslogHandler(); 14455: bf 18 00 00 00 mov $0x18,%edi 1445a: e8 b1 fa ff ff callq 13f10 <_Znwm@plt> 1445f: 48 89 c3 mov %rax,%rbx 14462: 48 89 df mov %rbx,%rdi 14465: e8 26 ea ff ff callq 12e90 <_ZN17XLogSyslogHandlerC1Ev@plt> 1446a: 48 89 5d e8 mov %rbx,-0x18(%rbp) logger.addHandler(*log_handler); 1446e: 48 8b 45 e8 mov -0x18(%rbp),%rax 14472: 48 89 c6 mov %rax,%rsi 14475: 48 8b 05 14 3b 21 00 mov 0x213b14(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1447c: 48 89 c7 mov %rax,%rdi 1447f: e8 dc ec ff ff callq 13160 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 14484: 48 8b 45 d8 mov -0x28(%rbp),%rax 14488: 48 8d 35 71 da 00 00 lea 0xda71(%rip),%rsi # 21f00 <_fini+0x48> 1448f: 48 89 c7 mov %rax,%rdi 14492: e8 29 e3 ff ff callq 127c0 } 14497: 48 83 c4 30 add $0x30,%rsp 1449b: 5b pop %rbx 1449c: 41 5c pop %r12 1449e: 5d pop %rbp 1449f: c3 retq 144a0: 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(); 144a3: 48 89 df mov %rbx,%rdi 144a6: e8 95 e2 ff ff callq 12740 <_ZdlPv@plt> 144ab: 4c 89 e0 mov %r12,%rax 144ae: 48 89 c7 mov %rax,%rdi 144b1: e8 6a fa ff ff callq 13f20 <_Unwind_Resume@plt> 00000000000144b6 <_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[]) { 144b6: 55 push %rbp 144b7: 48 89 e5 mov %rsp,%rbp 144ba: 41 54 push %r12 144bc: 53 push %rbx 144bd: 48 81 ec 40 08 00 00 sub $0x840,%rsp 144c4: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 144cb: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 144d1: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 144d8: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 144df: 00 00 144e1: 48 89 45 e8 mov %rax,-0x18(%rbp) 144e5: 31 c0 xor %eax,%eax char log_file[MAX_FILE_NAME_LEN]; memset(log_file, 0, MAX_FILE_NAME_LEN); 144e7: 48 8d 85 e0 f7 ff ff lea -0x820(%rbp),%rax 144ee: ba 00 08 00 00 mov $0x800,%edx 144f3: be 00 00 00 00 mov $0x0,%esi 144f8: 48 89 c7 mov %rax,%rdi 144fb: e8 50 df ff ff callq 12450 if (!enif_get_string(env, argv[0], log_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) 14500: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 14507: 48 8b 30 mov (%rax),%rsi 1450a: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 14511: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 14518: 41 b8 01 00 00 00 mov $0x1,%r8d 1451e: b9 00 08 00 00 mov $0x800,%ecx 14523: 48 89 c7 mov %rax,%rdi 14526: e8 c5 f6 ff ff callq 13bf0 1452b: 85 c0 test %eax,%eax 1452d: 0f 94 c0 sete %al 14530: 84 c0 test %al,%al 14532: 74 11 je 14545 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x8f> { return enif_make_badarg(env); 14534: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1453b: 48 89 c7 mov %rax,%rdi 1453e: e8 5d ed ff ff callq 132a0 14543: eb 55 jmp 1459a <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0xe4> } XLogFileHandler *log_handler = new XLogFileHandler(log_file); 14545: bf 28 00 00 00 mov $0x28,%edi 1454a: e8 c1 f9 ff ff callq 13f10 <_Znwm@plt> 1454f: 48 89 c3 mov %rax,%rbx 14552: 48 8d 85 e0 f7 ff ff lea -0x820(%rbp),%rax 14559: 48 89 c6 mov %rax,%rsi 1455c: 48 89 df mov %rbx,%rdi 1455f: e8 1c fa ff ff callq 13f80 <_ZN15XLogFileHandlerC1EPKc@plt> 14564: 48 89 9d d8 f7 ff ff mov %rbx,-0x828(%rbp) logger.addHandler(*log_handler); 1456b: 48 8b 85 d8 f7 ff ff mov -0x828(%rbp),%rax 14572: 48 89 c6 mov %rax,%rsi 14575: 48 8b 05 14 3a 21 00 mov 0x213a14(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1457c: 48 89 c7 mov %rax,%rdi 1457f: e8 dc eb ff ff callq 13160 <_ZN4XLog10addHandlerER11XLogHandler@plt> return enif_make_atom(env, "ok"); 14584: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1458b: 48 8d 35 6e d9 00 00 lea 0xd96e(%rip),%rsi # 21f00 <_fini+0x48> 14592: 48 89 c7 mov %rax,%rdi 14595: e8 26 e2 ff ff callq 127c0 } 1459a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1459e: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 145a5: 00 00 145a7: 74 1d je 145c6 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x110> 145a9: eb 16 jmp 145c1 <_Z22x_add_file_log_handlerP18enif_environment_tiPKm+0x10b> 145ab: 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); 145ae: 48 89 df mov %rbx,%rdi 145b1: e8 8a e1 ff ff callq 12740 <_ZdlPv@plt> 145b6: 4c 89 e0 mov %r12,%rax 145b9: 48 89 c7 mov %rax,%rdi 145bc: e8 5f f9 ff ff callq 13f20 <_Unwind_Resume@plt> logger.addHandler(*log_handler); return enif_make_atom(env, "ok"); } 145c1: e8 ea f2 ff ff callq 138b0 <__stack_chk_fail@plt> 145c6: 48 81 c4 40 08 00 00 add $0x840,%rsp 145cd: 5b pop %rbx 145ce: 41 5c pop %r12 145d0: 5d pop %rbp 145d1: c3 retq 00000000000145d2 <_ZL13atom_to_levelPc>: static LogLevel atom_to_level(char * level) { 145d2: 55 push %rbp 145d3: 48 89 e5 mov %rsp,%rbp 145d6: 48 83 ec 10 sub $0x10,%rsp 145da: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (strcmp(level, "fatal") == 0) 145de: 48 8b 45 f8 mov -0x8(%rbp),%rax 145e2: 48 8d 35 1a d9 00 00 lea 0xd91a(%rip),%rsi # 21f03 <_fini+0x4b> 145e9: 48 89 c7 mov %rax,%rdi 145ec: e8 1f f3 ff ff callq 13910 145f1: 85 c0 test %eax,%eax 145f3: 75 07 jne 145fc <_ZL13atom_to_levelPc+0x2a> return FATAL; 145f5: b8 01 00 00 00 mov $0x1,%eax 145fa: eb 7d jmp 14679 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "error") == 0) 145fc: 48 8b 45 f8 mov -0x8(%rbp),%rax 14600: 48 8d 35 f3 d8 00 00 lea 0xd8f3(%rip),%rsi # 21efa <_fini+0x42> 14607: 48 89 c7 mov %rax,%rdi 1460a: e8 01 f3 ff ff callq 13910 1460f: 85 c0 test %eax,%eax 14611: 75 07 jne 1461a <_ZL13atom_to_levelPc+0x48> return ERROR; 14613: b8 02 00 00 00 mov $0x2,%eax 14618: eb 5f jmp 14679 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "warning") == 0) 1461a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1461e: 48 8d 35 e4 d8 00 00 lea 0xd8e4(%rip),%rsi # 21f09 <_fini+0x51> 14625: 48 89 c7 mov %rax,%rdi 14628: e8 e3 f2 ff ff callq 13910 1462d: 85 c0 test %eax,%eax 1462f: 75 07 jne 14638 <_ZL13atom_to_levelPc+0x66> return WARNING; 14631: b8 03 00 00 00 mov $0x3,%eax 14636: eb 41 jmp 14679 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "info") == 0) 14638: 48 8b 45 f8 mov -0x8(%rbp),%rax 1463c: 48 8d 35 ce d8 00 00 lea 0xd8ce(%rip),%rsi # 21f11 <_fini+0x59> 14643: 48 89 c7 mov %rax,%rdi 14646: e8 c5 f2 ff ff callq 13910 1464b: 85 c0 test %eax,%eax 1464d: 75 07 jne 14656 <_ZL13atom_to_levelPc+0x84> return INFO; 1464f: b8 04 00 00 00 mov $0x4,%eax 14654: eb 23 jmp 14679 <_ZL13atom_to_levelPc+0xa7> else if (strcmp(level, "debug") == 0) 14656: 48 8b 45 f8 mov -0x8(%rbp),%rax 1465a: 48 8d 35 b5 d8 00 00 lea 0xd8b5(%rip),%rsi # 21f16 <_fini+0x5e> 14661: 48 89 c7 mov %rax,%rdi 14664: e8 a7 f2 ff ff callq 13910 14669: 85 c0 test %eax,%eax 1466b: 75 07 jne 14674 <_ZL13atom_to_levelPc+0xa2> return DEBUG; 1466d: b8 05 00 00 00 mov $0x5,%eax 14672: eb 05 jmp 14679 <_ZL13atom_to_levelPc+0xa7> else return NONE; 14674: b8 00 00 00 00 mov $0x0,%eax } 14679: c9 leaveq 1467a: c3 retq 000000000001467b <_Z15x_set_log_levelP18enif_environment_tiPKm>: ERL_NIF_TERM x_set_log_level(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1467b: 55 push %rbp 1467c: 48 89 e5 mov %rsp,%rbp 1467f: 48 83 ec 60 sub $0x60,%rsp 14683: 48 89 7d b8 mov %rdi,-0x48(%rbp) 14687: 89 75 b4 mov %esi,-0x4c(%rbp) 1468a: 48 89 55 a8 mov %rdx,-0x58(%rbp) 1468e: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 14695: 00 00 14697: 48 89 45 f8 mov %rax,-0x8(%rbp) 1469b: 31 c0 xor %eax,%eax char level[32]; memset(level, 0, 32); 1469d: 48 8d 45 d0 lea -0x30(%rbp),%rax 146a1: ba 20 00 00 00 mov $0x20,%edx 146a6: be 00 00 00 00 mov $0x0,%esi 146ab: 48 89 c7 mov %rax,%rdi 146ae: e8 9d dd ff ff callq 12450 if (!enif_get_atom(env, argv[0], level, 32, ERL_NIF_LATIN1)) 146b3: 48 8b 45 a8 mov -0x58(%rbp),%rax 146b7: 48 8b 30 mov (%rax),%rsi 146ba: 48 8d 55 d0 lea -0x30(%rbp),%rdx 146be: 48 8b 45 b8 mov -0x48(%rbp),%rax 146c2: 41 b8 01 00 00 00 mov $0x1,%r8d 146c8: b9 20 00 00 00 mov $0x20,%ecx 146cd: 48 89 c7 mov %rax,%rdi 146d0: e8 bb f3 ff ff callq 13a90 146d5: 85 c0 test %eax,%eax 146d7: 0f 94 c0 sete %al 146da: 84 c0 test %al,%al 146dc: 74 0e je 146ec <_Z15x_set_log_levelP18enif_environment_tiPKm+0x71> { return enif_make_badarg(env); 146de: 48 8b 45 b8 mov -0x48(%rbp),%rax 146e2: 48 89 c7 mov %rax,%rdi 146e5: e8 b6 eb ff ff callq 132a0 146ea: eb 36 jmp 14722 <_Z15x_set_log_levelP18enif_environment_tiPKm+0xa7> } LogLevel l = atom_to_level(level); 146ec: 48 8d 45 d0 lea -0x30(%rbp),%rax 146f0: 48 89 c7 mov %rax,%rdi 146f3: e8 da fe ff ff callq 145d2 <_ZL13atom_to_levelPc> 146f8: 89 45 cc mov %eax,-0x34(%rbp) logger.setLevel(l); 146fb: 8b 45 cc mov -0x34(%rbp),%eax 146fe: 89 c6 mov %eax,%esi 14700: 48 8b 05 89 38 21 00 mov 0x213889(%rip),%rax # 227f90 <_DYNAMIC+0x240> 14707: 48 89 c7 mov %rax,%rdi 1470a: e8 81 df ff ff callq 12690 <_ZN4XLog8setLevelE8LogLevel@plt> return enif_make_atom(env, "ok"); 1470f: 48 8b 45 b8 mov -0x48(%rbp),%rax 14713: 48 8d 35 e6 d7 00 00 lea 0xd7e6(%rip),%rsi # 21f00 <_fini+0x48> 1471a: 48 89 c7 mov %rax,%rdi 1471d: e8 9e e0 ff ff callq 127c0 } 14722: 48 8b 55 f8 mov -0x8(%rbp),%rdx 14726: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1472d: 00 00 1472f: 74 05 je 14736 <_Z15x_set_log_levelP18enif_environment_tiPKm+0xbb> 14731: e8 7a f1 ff ff callq 138b0 <__stack_chk_fail@plt> 14736: c9 leaveq 14737: c3 retq 0000000000014738 : {"getxattrs", 2, x_getxattrs}, {"getxattrs_next", 1, x_getxattrs_next}, {"getxattrs_end", 1, x_getxattrs_end}, }; ERL_NIF_INIT(rados, nif_funcs, load, reload, upgrade, unload) 14738: 55 push %rbp 14739: 48 89 e5 mov %rsp,%rbp 1473c: 48 8d 05 bd 4c 21 00 lea 0x214cbd(%rip),%rax # 229400 <_ZZ8nif_initE5entry> 14743: 5d pop %rbp 14744: c3 retq 0000000000014745 <_Z41__static_initialization_and_destruction_0ii>: 14745: 55 push %rbp 14746: 48 89 e5 mov %rsp,%rbp 14749: 48 83 ec 10 sub $0x10,%rsp 1474d: 89 7d fc mov %edi,-0x4(%rbp) 14750: 89 75 f8 mov %esi,-0x8(%rbp) 14753: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 14757: 0f 85 38 01 00 00 jne 14895 <_Z41__static_initialization_and_destruction_0ii+0x150> 1475d: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 14764: 0f 85 2b 01 00 00 jne 14895 <_Z41__static_initialization_and_destruction_0ii+0x150> * 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; 1476a: 48 8b 05 47 38 21 00 mov 0x213847(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 14771: 48 89 c7 mov %rax,%rdi 14774: e8 67 ee ff ff callq 135e0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 14779: 48 8b 05 40 38 21 00 mov 0x213840(%rip),%rax # 227fc0 <_DYNAMIC+0x270> 14780: 48 8b 15 e9 37 21 00 mov 0x2137e9(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 14787: 48 8b 0d 2a 38 21 00 mov 0x21382a(%rip),%rcx # 227fb8 <_DYNAMIC+0x268> 1478e: 48 89 ce mov %rcx,%rsi 14791: 48 89 c7 mov %rax,%rdi 14794: e8 c7 e3 ff ff callq 12b60 <__cxa_atexit@plt> /* * Map of IO context. Same mechanism as the cluster handles. */ map map_ioctx; 14799: 48 8b 05 e0 37 21 00 mov 0x2137e0(%rip),%rax # 227f80 <_DYNAMIC+0x230> 147a0: 48 89 c7 mov %rax,%rdi 147a3: e8 38 ee ff ff callq 135e0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 147a8: 48 8b 05 11 38 21 00 mov 0x213811(%rip),%rax # 227fc0 <_DYNAMIC+0x270> 147af: 48 8b 15 ba 37 21 00 mov 0x2137ba(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 147b6: 48 8b 0d c3 37 21 00 mov 0x2137c3(%rip),%rcx # 227f80 <_DYNAMIC+0x230> 147bd: 48 89 ce mov %rcx,%rsi 147c0: 48 89 c7 mov %rax,%rdi 147c3: e8 98 e3 ff ff callq 12b60 <__cxa_atexit@plt> /* * Map of list context. Same mechanism as the cluster handles. */ map map_list_ctx; 147c8: 48 8b 05 71 37 21 00 mov 0x213771(%rip),%rax # 227f40 <_DYNAMIC+0x1f0> 147cf: 48 89 c7 mov %rax,%rdi 147d2: e8 09 ee ff ff callq 135e0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 147d7: 48 8b 05 e2 37 21 00 mov 0x2137e2(%rip),%rax # 227fc0 <_DYNAMIC+0x270> 147de: 48 8b 15 8b 37 21 00 mov 0x21378b(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 147e5: 48 8b 0d 54 37 21 00 mov 0x213754(%rip),%rcx # 227f40 <_DYNAMIC+0x1f0> 147ec: 48 89 ce mov %rcx,%rsi 147ef: 48 89 c7 mov %rax,%rdi 147f2: e8 69 e3 ff ff callq 12b60 <__cxa_atexit@plt> /* * Map of xattr iterators. */ map map_xattr_iter; 147f7: 48 8b 05 8a 37 21 00 mov 0x21378a(%rip),%rax # 227f88 <_DYNAMIC+0x238> 147fe: 48 89 c7 mov %rax,%rdi 14801: e8 da ed ff ff callq 135e0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEC1Ev@plt> 14806: 48 8b 05 b3 37 21 00 mov 0x2137b3(%rip),%rax # 227fc0 <_DYNAMIC+0x270> 1480d: 48 8b 15 5c 37 21 00 mov 0x21375c(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 14814: 48 8b 0d 6d 37 21 00 mov 0x21376d(%rip),%rcx # 227f88 <_DYNAMIC+0x238> 1481b: 48 89 ce mov %rcx,%rsi 1481e: 48 89 c7 mov %rax,%rdi 14821: e8 3a e3 ff ff callq 12b60 <__cxa_atexit@plt> static uint64_t id_index = 0; static XMutex id_mutex; 14826: 48 8d 3d b3 4d 21 00 lea 0x214db3(%rip),%rdi # 2295e0 <_ZL8id_mutex> 1482d: e8 1e ef ff ff callq 13750 <_ZN6XMutexC1Ev@plt> 14832: 48 8b 05 1f 37 21 00 mov 0x21371f(%rip),%rax # 227f58 <_DYNAMIC+0x208> 14839: 48 8b 15 30 37 21 00 mov 0x213730(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 14840: 48 8d 35 99 4d 21 00 lea 0x214d99(%rip),%rsi # 2295e0 <_ZL8id_mutex> 14847: 48 89 c7 mov %rax,%rdi 1484a: e8 11 e3 ff ff callq 12b60 <__cxa_atexit@plt> XLog logger = XLogManager::instance().getLog("RadosLog"); 1484f: e8 3c dd ff ff callq 12590 <_ZN11XLogManager8instanceEv@plt> 14854: 48 8d 35 27 d9 00 00 lea 0xd927(%rip),%rsi # 22182 <_fini+0x2ca> 1485b: 48 89 c7 mov %rax,%rdi 1485e: e8 6d f4 ff ff callq 13cd0 <_ZN11XLogManager6getLogEPKc@plt> 14863: 48 89 c6 mov %rax,%rsi 14866: 48 8b 05 23 37 21 00 mov 0x213723(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1486d: 48 89 c7 mov %rax,%rdi 14870: e8 6b e0 ff ff callq 128e0 <_ZN4XLogC1ERKS_@plt> 14875: 48 8b 05 ec 36 21 00 mov 0x2136ec(%rip),%rax # 227f68 <_DYNAMIC+0x218> 1487c: 48 8b 15 ed 36 21 00 mov 0x2136ed(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 14883: 48 8b 0d 06 37 21 00 mov 0x213706(%rip),%rcx # 227f90 <_DYNAMIC+0x240> 1488a: 48 89 ce mov %rcx,%rsi 1488d: 48 89 c7 mov %rax,%rdi 14890: e8 cb e2 ff ff callq 12b60 <__cxa_atexit@plt> {"getxattrs", 2, x_getxattrs}, {"getxattrs_next", 1, x_getxattrs_next}, {"getxattrs_end", 1, x_getxattrs_end}, }; ERL_NIF_INIT(rados, nif_funcs, load, reload, upgrade, unload) 14895: c9 leaveq 14896: c3 retq 0000000000014897 <_GLOBAL__sub_I_rados_nif.cpp>: 14897: 55 push %rbp 14898: 48 89 e5 mov %rsp,%rbp 1489b: be ff ff 00 00 mov $0xffff,%esi 148a0: bf 01 00 00 00 mov $0x1,%edi 148a5: e8 9b fe ff ff callq 14745 <_Z41__static_initialization_and_destruction_0ii> 148aa: 5d pop %rbp 148ab: c3 retq 00000000000148ac <_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; } 148ac: 55 push %rbp 148ad: 48 89 e5 mov %rsp,%rbp 148b0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 148b4: 48 89 75 f0 mov %rsi,-0x10(%rbp) 148b8: 48 8b 45 f0 mov -0x10(%rbp),%rax 148bc: 5d pop %rbp 148bd: c3 retq 00000000000148be <_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) 148be: 55 push %rbp 148bf: 48 89 e5 mov %rsp,%rbp 148c2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { while (__x->_M_left != 0) __x = __x->_M_left; 148c6: eb 0c jmp 148d4 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_+0x16> 148c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 148cc: 48 8b 40 10 mov 0x10(%rax),%rax 148d0: 48 89 45 f8 mov %rax,-0x8(%rbp) 148d4: 48 8b 45 f8 mov -0x8(%rbp),%rax 148d8: 48 8b 40 10 mov 0x10(%rax),%rax 148dc: 48 85 c0 test %rax,%rax 148df: 0f 95 c0 setne %al 148e2: 84 c0 test %al,%al 148e4: 75 e2 jne 148c8 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_+0xa> return __x; 148e6: 48 8b 45 f8 mov -0x8(%rbp),%rax } 148ea: 5d pop %rbp 148eb: c3 retq 00000000000148ec <_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) 148ec: 55 push %rbp 148ed: 48 89 e5 mov %rsp,%rbp 148f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { while (__x->_M_right != 0) __x = __x->_M_right; 148f4: eb 0c jmp 14902 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_+0x16> 148f6: 48 8b 45 f8 mov -0x8(%rbp),%rax 148fa: 48 8b 40 18 mov 0x18(%rax),%rax 148fe: 48 89 45 f8 mov %rax,-0x8(%rbp) 14902: 48 8b 45 f8 mov -0x8(%rbp),%rax 14906: 48 8b 40 18 mov 0x18(%rax),%rax 1490a: 48 85 c0 test %rax,%rax 1490d: 0f 95 c0 setne %al 14910: 84 c0 test %al,%al 14912: 75 e2 jne 148f6 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_+0xa> return __x; 14914: 48 8b 45 f8 mov -0x8(%rbp),%rax } 14918: 5d pop %rbp 14919: c3 retq 000000000001491a <_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 1491a: 55 push %rbp 1491b: 48 89 e5 mov %rsp,%rbp 1491e: 48 83 ec 10 sub $0x10,%rsp 14922: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14926: 48 8b 45 f8 mov -0x8(%rbp),%rax 1492a: 48 89 c7 mov %rax,%rdi 1492d: e8 ce f1 ff ff callq 13b00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev@plt> 14932: c9 leaveq 14933: c3 retq 0000000000014934 <_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 14934: 55 push %rbp 14935: 48 89 e5 mov %rsp,%rbp 14938: 53 push %rbx 14939: 48 83 ec 18 sub $0x18,%rsp 1493d: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14941: 48 89 75 e0 mov %rsi,-0x20(%rbp) 14945: 48 8b 55 e0 mov -0x20(%rbp),%rdx 14949: 48 8b 45 e8 mov -0x18(%rbp),%rax 1494d: 48 89 d6 mov %rdx,%rsi 14950: 48 89 c7 mov %rax,%rdi 14953: e8 b8 e1 ff ff callq 12b10 <_ZNSsC1ERKSs@plt> 14958: 48 8b 45 e0 mov -0x20(%rbp),%rax 1495c: 8b 50 08 mov 0x8(%rax),%edx 1495f: 48 8b 45 e8 mov -0x18(%rbp),%rax 14963: 89 50 08 mov %edx,0x8(%rax) 14966: 48 8b 45 e0 mov -0x20(%rbp),%rax 1496a: 48 8d 50 10 lea 0x10(%rax),%rdx 1496e: 48 8b 45 e8 mov -0x18(%rbp),%rax 14972: 48 83 c0 10 add $0x10,%rax 14976: 48 89 d6 mov %rdx,%rsi 14979: 48 89 c7 mov %rax,%rdi 1497c: e8 af db ff ff callq 12530 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1ERKS5_@plt> 14981: eb 1a jmp 1499d <_ZN4XLogC1ERKS_+0x69> 14983: 48 89 c3 mov %rax,%rbx 14986: 48 8b 45 e8 mov -0x18(%rbp),%rax 1498a: 48 89 c7 mov %rax,%rdi 1498d: e8 ae e4 ff ff callq 12e40 <_ZNSsD1Ev@plt> 14992: 48 89 d8 mov %rbx,%rax 14995: 48 89 c7 mov %rax,%rdi 14998: e8 83 f5 ff ff callq 13f20 <_Unwind_Resume@plt> 1499d: 48 83 c4 18 add $0x18,%rsp 149a1: 5b pop %rbx 149a2: 5d pop %rbp 149a3: c3 retq 00000000000149a4 <_ZN4XLogD1Ev>: 149a4: 55 push %rbp 149a5: 48 89 e5 mov %rsp,%rbp 149a8: 53 push %rbx 149a9: 48 83 ec 18 sub $0x18,%rsp 149ad: 48 89 7d e8 mov %rdi,-0x18(%rbp) 149b1: 48 8b 45 e8 mov -0x18(%rbp),%rax 149b5: 48 83 c0 10 add $0x10,%rax 149b9: 48 89 c7 mov %rax,%rdi 149bc: e8 1f dd ff ff callq 126e0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt> 149c1: 48 8b 45 e8 mov -0x18(%rbp),%rax 149c5: 48 89 c7 mov %rax,%rdi 149c8: e8 73 e4 ff ff callq 12e40 <_ZNSsD1Ev@plt> 149cd: 48 83 c4 18 add $0x18,%rsp 149d1: 5b pop %rbx 149d2: 5d pop %rbp 149d3: c3 retq 149d4: 48 89 c3 mov %rax,%rbx 149d7: 48 8b 45 e8 mov -0x18(%rbp),%rax 149db: 48 89 c7 mov %rax,%rdi 149de: e8 5d e4 ff ff callq 12e40 <_ZNSsD1Ev@plt> 149e3: 48 89 d8 mov %rbx,%rax 149e6: 48 89 c7 mov %rax,%rdi 149e9: e8 32 f5 ff ff callq 13f20 <_Unwind_Resume@plt> 00000000000149ee <_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() 149ee: 55 push %rbp 149ef: 48 89 e5 mov %rsp,%rbp 149f2: 48 83 ec 10 sub $0x10,%rsp 149f6: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 149fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 149fe: 48 89 c7 mov %rax,%rdi 14a01: e8 da ee ff ff callq 138e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EEC1Ev@plt> 14a06: c9 leaveq 14a07: c3 retq 0000000000014a08 <_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) 14a08: 55 push %rbp 14a09: 48 89 e5 mov %rsp,%rbp 14a0c: 48 83 ec 10 sub $0x10,%rsp 14a10: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14a14: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_t(__x._M_t) { } 14a18: 48 8b 55 f0 mov -0x10(%rbp),%rdx 14a1c: 48 8b 45 f8 mov -0x8(%rbp),%rax 14a20: 48 89 d6 mov %rdx,%rsi 14a23: 48 89 c7 mov %rax,%rdi 14a26: e8 55 e2 ff ff callq 12c80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_@plt> 14a2b: c9 leaveq 14a2c: c3 retq 14a2d: 90 nop 0000000000014a2e <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 14a2e: 55 push %rbp 14a2f: 48 89 e5 mov %rsp,%rbp 14a32: 48 83 ec 10 sub $0x10,%rsp 14a36: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14a3a: 48 8b 45 f8 mov -0x8(%rbp),%rax 14a3e: 48 89 c7 mov %rax,%rdi 14a41: e8 fa e5 ff ff callq 13040 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 14a46: c9 leaveq 14a47: c3 retq 0000000000014a48 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 14a48: 55 push %rbp 14a49: 48 89 e5 mov %rsp,%rbp 14a4c: 53 push %rbx 14a4d: 48 83 ec 18 sub $0x18,%rsp 14a51: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 14a55: 48 8b 45 e8 mov -0x18(%rbp),%rax 14a59: 48 89 c7 mov %rax,%rdi 14a5c: e8 4f f5 ff ff callq 13fb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 14a61: 48 89 c2 mov %rax,%rdx 14a64: 48 8b 45 e8 mov -0x18(%rbp),%rax 14a68: 48 89 d6 mov %rdx,%rsi 14a6b: 48 89 c7 mov %rax,%rdi 14a6e: e8 ed e5 ff ff callq 13060 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> 14a73: 48 8b 45 e8 mov -0x18(%rbp),%rax 14a77: 48 89 c7 mov %rax,%rdi 14a7a: e8 d1 e5 ff ff callq 13050 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 14a7f: 48 83 c4 18 add $0x18,%rsp 14a83: 5b pop %rbx 14a84: 5d pop %rbp 14a85: c3 retq 14a86: 48 89 c3 mov %rax,%rbx 14a89: 48 8b 45 e8 mov -0x18(%rbp),%rax 14a8d: 48 89 c7 mov %rax,%rdi 14a90: e8 bb e5 ff ff callq 13050 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 14a95: 48 89 d8 mov %rbx,%rax 14a98: 48 89 c7 mov %rax,%rdi 14a9b: e8 80 f4 ff ff callq 13f20 <_Unwind_Resume@plt> 0000000000014aa0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 14aa0: 55 push %rbp 14aa1: 48 89 e5 mov %rsp,%rbp 14aa4: 48 83 ec 10 sub $0x10,%rsp 14aa8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14aac: 48 8b 45 f8 mov -0x8(%rbp),%rax 14ab0: 48 89 c7 mov %rax,%rdi 14ab3: e8 a8 f0 ff ff callq 13b60 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 14ab8: c9 leaveq 14ab9: c3 retq 0000000000014aba <_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() { } 14aba: 55 push %rbp 14abb: 48 89 e5 mov %rsp,%rbp 14abe: 48 83 ec 10 sub $0x10,%rsp 14ac2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14ac6: 48 8b 45 f8 mov -0x8(%rbp),%rax 14aca: 48 89 c7 mov %rax,%rdi 14acd: e8 de e6 ff ff callq 131b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev@plt> 14ad2: c9 leaveq 14ad3: c3 retq 0000000000014ad4 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 14ad4: 55 push %rbp 14ad5: 48 89 e5 mov %rsp,%rbp 14ad8: 53 push %rbx 14ad9: 48 83 ec 18 sub $0x18,%rsp 14add: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 14ae1: 48 8b 45 e8 mov -0x18(%rbp),%rax 14ae5: 48 89 c7 mov %rax,%rdi 14ae8: e8 73 e4 ff ff callq 12f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 14aed: 48 89 c2 mov %rax,%rdx 14af0: 48 8b 45 e8 mov -0x18(%rbp),%rax 14af4: 48 89 d6 mov %rdx,%rsi 14af7: 48 89 c7 mov %rax,%rdi 14afa: e8 11 e5 ff ff callq 13010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> 14aff: 48 8b 45 e8 mov -0x18(%rbp),%rax 14b03: 48 89 c7 mov %rax,%rdi 14b06: e8 85 d9 ff ff callq 12490 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt> 14b0b: 48 83 c4 18 add $0x18,%rsp 14b0f: 5b pop %rbx 14b10: 5d pop %rbp 14b11: c3 retq 14b12: 48 89 c3 mov %rax,%rbx 14b15: 48 8b 45 e8 mov -0x18(%rbp),%rax 14b19: 48 89 c7 mov %rax,%rdi 14b1c: e8 6f d9 ff ff callq 12490 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EED1Ev@plt> 14b21: 48 89 d8 mov %rbx,%rax 14b24: 48 89 c7 mov %rax,%rdi 14b27: e8 f4 f3 ff ff callq 13f20 <_Unwind_Resume@plt> 0000000000014b2c <_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) 14b2c: 55 push %rbp 14b2d: 48 89 e5 mov %rsp,%rbp 14b30: 41 54 push %r12 14b32: 53 push %rbx 14b33: 48 83 ec 10 sub $0x10,%rsp 14b37: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14b3b: 48 89 75 e0 mov %rsi,-0x20(%rbp) : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) 14b3f: 48 8b 45 e0 mov -0x20(%rbp),%rax 14b43: 48 89 c7 mov %rax,%rdi 14b46: e8 65 ee ff ff callq 139b0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt> 14b4b: 48 89 c2 mov %rax,%rdx 14b4e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 14b52: 48 8b 45 e8 mov -0x18(%rbp),%rax 14b56: 48 89 ce mov %rcx,%rsi 14b59: 48 89 c7 mov %rax,%rdi 14b5c: e8 9f f2 ff ff callq 13e00 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE@plt> { if (__x._M_root() != 0) 14b61: 48 8b 45 e0 mov -0x20(%rbp),%rax 14b65: 48 89 c7 mov %rax,%rdi 14b68: e8 83 da ff ff callq 125f0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 14b6d: 48 85 c0 test %rax,%rax 14b70: 0f 95 c0 setne %al 14b73: 84 c0 test %al,%al 14b75: 0f 84 c0 00 00 00 je 14c3b <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_+0x10f> { _M_root() = _M_copy(__x._M_begin(), _M_end()); 14b7b: 48 8b 45 e8 mov -0x18(%rbp),%rax 14b7f: 48 89 c7 mov %rax,%rdi 14b82: e8 29 da ff ff callq 125b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 14b87: 48 89 c3 mov %rax,%rbx 14b8a: 48 8b 45 e8 mov -0x18(%rbp),%rax 14b8e: 48 89 c7 mov %rax,%rdi 14b91: e8 9a e5 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 14b96: 49 89 c4 mov %rax,%r12 14b99: 48 8b 45 e0 mov -0x20(%rbp),%rax 14b9d: 48 89 c7 mov %rax,%rdi 14ba0: e8 2b f0 ff ff callq 13bd0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 14ba5: 48 89 c1 mov %rax,%rcx 14ba8: 48 8b 45 e8 mov -0x18(%rbp),%rax 14bac: 4c 89 e2 mov %r12,%rdx 14baf: 48 89 ce mov %rcx,%rsi 14bb2: 48 89 c7 mov %rax,%rdi 14bb5: e8 e6 ef ff ff callq 13ba0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 14bba: 48 89 03 mov %rax,(%rbx) _M_leftmost() = _S_minimum(_M_root()); 14bbd: 48 8b 45 e8 mov -0x18(%rbp),%rax 14bc1: 48 89 c7 mov %rax,%rdi 14bc4: e8 67 de ff ff callq 12a30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_leftmostEv@plt> 14bc9: 48 89 c3 mov %rax,%rbx 14bcc: 48 8b 45 e8 mov -0x18(%rbp),%rax 14bd0: 48 89 c7 mov %rax,%rdi 14bd3: e8 d8 d9 ff ff callq 125b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 14bd8: 48 8b 00 mov (%rax),%rax 14bdb: 48 89 c7 mov %rax,%rdi 14bde: e8 4d e1 ff ff callq 12d30 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_minimumEPSt18_Rb_tree_node_base@plt> 14be3: 48 89 03 mov %rax,(%rbx) _M_rightmost() = _S_maximum(_M_root()); 14be6: 48 8b 45 e8 mov -0x18(%rbp),%rax 14bea: 48 89 c7 mov %rax,%rdi 14bed: e8 8e db ff ff callq 12780 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_rightmostEv@plt> 14bf2: 48 89 c3 mov %rax,%rbx 14bf5: 48 8b 45 e8 mov -0x18(%rbp),%rax 14bf9: 48 89 c7 mov %rax,%rdi 14bfc: e8 af d9 ff ff callq 125b0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv@plt> 14c01: 48 8b 00 mov (%rax),%rax 14c04: 48 89 c7 mov %rax,%rdi 14c07: e8 d4 e3 ff ff callq 12fe0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_S_maximumEPSt18_Rb_tree_node_base@plt> 14c0c: 48 89 03 mov %rax,(%rbx) _M_impl._M_node_count = __x._M_impl._M_node_count; 14c0f: 48 8b 45 e0 mov -0x20(%rbp),%rax 14c13: 48 8b 50 28 mov 0x28(%rax),%rdx 14c17: 48 8b 45 e8 mov -0x18(%rbp),%rax 14c1b: 48 89 50 28 mov %rdx,0x28(%rax) 14c1f: eb 1b jmp 14c3c <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1ERKS7_+0x110> 14c21: 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()) 14c24: 48 8b 45 e8 mov -0x18(%rbp),%rax 14c28: 48 89 c7 mov %rax,%rdi 14c2b: e8 20 e4 ff ff callq 13050 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EED1Ev@plt> 14c30: 48 89 d8 mov %rbx,%rax 14c33: 48 89 c7 mov %rax,%rdi 14c36: e8 e5 f2 ff ff callq 13f20 <_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; } } 14c3b: 90 nop 14c3c: 48 83 c4 10 add $0x10,%rsp 14c40: 5b pop %rbx 14c41: 41 5c pop %r12 14c43: 5d pop %rbp 14c44: c3 retq 14c45: 90 nop 0000000000014c46 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED1Ev>: : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 14c46: 55 push %rbp 14c47: 48 89 e5 mov %rsp,%rbp 14c4a: 48 83 ec 10 sub $0x10,%rsp 14c4e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14c52: 48 8b 45 f8 mov -0x8(%rbp),%rax 14c56: 48 89 c7 mov %rax,%rdi 14c59: e8 52 eb ff ff callq 137b0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 14c5e: c9 leaveq 14c5f: c3 retq 0000000000014c60 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 14c60: 55 push %rbp 14c61: 48 89 e5 mov %rsp,%rbp 14c64: 48 83 ec 20 sub $0x20,%rsp 14c68: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14c6c: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 14c70: eb 49 jmp 14cbb <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E+0x5b> { _M_erase(_S_right(__x)); 14c72: 48 8b 45 e0 mov -0x20(%rbp),%rax 14c76: 48 89 c7 mov %rax,%rdi 14c79: e8 32 e0 ff ff callq 12cb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 14c7e: 48 89 c2 mov %rax,%rdx 14c81: 48 8b 45 e8 mov -0x18(%rbp),%rax 14c85: 48 89 d6 mov %rdx,%rsi 14c88: 48 89 c7 mov %rax,%rdi 14c8b: e8 d0 e3 ff ff callq 13060 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> _Link_type __y = _S_left(__x); 14c90: 48 8b 45 e0 mov -0x20(%rbp),%rax 14c94: 48 89 c7 mov %rax,%rdi 14c97: e8 a4 de ff ff callq 12b40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 14c9c: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 14ca0: 48 8b 55 e0 mov -0x20(%rbp),%rdx 14ca4: 48 8b 45 e8 mov -0x18(%rbp),%rax 14ca8: 48 89 d6 mov %rdx,%rsi 14cab: 48 89 c7 mov %rax,%rdi 14cae: e8 0d dd ff ff callq 129c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt> __x = __y; 14cb3: 48 8b 45 f8 mov -0x8(%rbp),%rax 14cb7: 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) 14cbb: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 14cc0: 0f 95 c0 setne %al 14cc3: 84 c0 test %al,%al 14cc5: 75 ab jne 14c72 <_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; } } 14cc7: c9 leaveq 14cc8: c3 retq 14cc9: 90 nop 0000000000014cca <_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() 14cca: 55 push %rbp 14ccb: 48 89 e5 mov %rsp,%rbp 14cce: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 14cd2: 48 8b 45 f8 mov -0x8(%rbp),%rax 14cd6: 48 8b 40 10 mov 0x10(%rax),%rax 14cda: 5d pop %rbp 14cdb: c3 retq 0000000000014cdc <_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() 14cdc: 55 push %rbp 14cdd: 48 89 e5 mov %rsp,%rbp 14ce0: 53 push %rbx 14ce1: 48 83 ec 18 sub $0x18,%rsp 14ce5: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 14ce9: 48 8b 45 e8 mov -0x18(%rbp),%rax 14ced: 48 89 c7 mov %rax,%rdi 14cf0: e8 6b da ff ff callq 12760 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt> 14cf5: 48 8b 45 e8 mov -0x18(%rbp),%rax 14cf9: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 14d00: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d04: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 14d0b: 00 14d0c: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d10: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 14d17: 00 14d18: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d1c: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 14d23: 00 14d24: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d28: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 14d2f: 00 { _M_initialize(); } 14d30: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d34: 48 89 c7 mov %rax,%rdi 14d37: e8 a4 d6 ff ff callq 123e0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv@plt> 14d3c: eb 1a jmp 14d58 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EEC1Ev+0x7c> 14d3e: 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) 14d41: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d45: 48 89 c7 mov %rax,%rdi 14d48: e8 13 ee ff ff callq 13b60 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 14d4d: 48 89 d8 mov %rbx,%rax 14d50: 48 89 c7 mov %rax,%rdi 14d53: e8 c8 f1 ff ff callq 13f20 <_Unwind_Resume@plt> { _M_initialize(); } 14d58: 48 83 c4 18 add $0x18,%rsp 14d5c: 5b pop %rbx 14d5d: 5d pop %rbp 14d5e: c3 retq 14d5f: 90 nop 0000000000014d60 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEED1Ev>: 14d60: 55 push %rbp 14d61: 48 89 e5 mov %rsp,%rbp 14d64: 48 83 ec 10 sub $0x10,%rsp 14d68: 48 89 7d f8 mov %rdi,-0x8(%rbp) 14d6c: 48 8b 45 f8 mov -0x8(%rbp),%rax 14d70: 48 89 c7 mov %rax,%rdi 14d73: e8 78 e0 ff ff callq 12df0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED2Ev@plt> 14d78: c9 leaveq 14d79: c3 retq 0000000000014d7a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 14d7a: 55 push %rbp 14d7b: 48 89 e5 mov %rsp,%rbp 14d7e: 48 83 ec 20 sub $0x20,%rsp 14d82: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14d86: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 14d8a: eb 49 jmp 14dd5 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E+0x5b> { _M_erase(_S_right(__x)); 14d8c: 48 8b 45 e0 mov -0x20(%rbp),%rax 14d90: 48 89 c7 mov %rax,%rdi 14d93: e8 18 e5 ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 14d98: 48 89 c2 mov %rax,%rdx 14d9b: 48 8b 45 e8 mov -0x18(%rbp),%rax 14d9f: 48 89 d6 mov %rdx,%rsi 14da2: 48 89 c7 mov %rax,%rdi 14da5: e8 66 e2 ff ff callq 13010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> _Link_type __y = _S_left(__x); 14daa: 48 8b 45 e0 mov -0x20(%rbp),%rax 14dae: 48 89 c7 mov %rax,%rdi 14db1: e8 fa f2 ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 14db6: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 14dba: 48 8b 55 e0 mov -0x20(%rbp),%rdx 14dbe: 48 8b 45 e8 mov -0x18(%rbp),%rax 14dc2: 48 89 d6 mov %rdx,%rsi 14dc5: 48 89 c7 mov %rax,%rdi 14dc8: e8 03 d5 ff ff callq 122d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt> __x = __y; 14dcd: 48 8b 45 f8 mov -0x8(%rbp),%rax 14dd1: 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) 14dd5: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 14dda: 0f 95 c0 setne %al 14ddd: 84 c0 test %al,%al 14ddf: 75 ab jne 14d8c <_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; } } 14de1: c9 leaveq 14de2: c3 retq 14de3: 90 nop 0000000000014de4 <_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() 14de4: 55 push %rbp 14de5: 48 89 e5 mov %rsp,%rbp 14de8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 14dec: 48 8b 45 f8 mov -0x8(%rbp),%rax 14df0: 48 8b 40 10 mov 0x10(%rax),%rax 14df4: 5d pop %rbp 14df5: c3 retq 0000000000014df6 <_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 14df6: 55 push %rbp 14df7: 48 89 e5 mov %rsp,%rbp 14dfa: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 14dfe: 48 8b 45 f8 mov -0x8(%rbp),%rax 14e02: 5d pop %rbp 14e03: c3 retq 0000000000014e04 <_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) 14e04: 55 push %rbp 14e05: 48 89 e5 mov %rsp,%rbp 14e08: 53 push %rbx 14e09: 48 83 ec 28 sub $0x28,%rsp 14e0d: 48 89 7d e8 mov %rdi,-0x18(%rbp) 14e11: 48 89 75 e0 mov %rsi,-0x20(%rbp) 14e15: 48 89 55 d8 mov %rdx,-0x28(%rbp) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) 14e19: 48 8b 55 d8 mov -0x28(%rbp),%rdx 14e1d: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e21: 48 89 d6 mov %rdx,%rsi 14e24: 48 89 c7 mov %rax,%rdi 14e27: e8 04 da ff ff callq 12830 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS3_@plt> 14e2c: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e30: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 14e37: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e3b: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 14e42: 00 14e43: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e47: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 14e4e: 00 14e4f: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e53: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 14e5a: 00 14e5b: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e5f: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 14e66: 00 { _M_initialize(); } 14e67: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e6b: 48 89 c7 mov %rax,%rdi 14e6e: e8 1d da ff ff callq 12890 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt> 14e73: eb 1a jmp 14e8f <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1ERKS5_RKSaISt13_Rb_tree_nodeIS1_EE+0x8b> 14e75: 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) 14e78: 48 8b 45 e8 mov -0x18(%rbp),%rax 14e7c: 48 89 c7 mov %rax,%rdi 14e7f: e8 bc e1 ff ff callq 13040 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 14e84: 48 89 d8 mov %rbx,%rax 14e87: 48 89 c7 mov %rax,%rdi 14e8a: e8 91 f0 ff ff callq 13f20 <_Unwind_Resume@plt> { _M_initialize(); } 14e8f: 48 83 c4 28 add $0x28,%rsp 14e93: 5b pop %rbx 14e94: 5d pop %rbp 14e95: c3 retq 0000000000014e96 <_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 14e96: 55 push %rbp 14e97: 48 89 e5 mov %rsp,%rbp 14e9a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 14e9e: 48 8b 45 f8 mov -0x8(%rbp),%rax 14ea2: 48 8b 40 10 mov 0x10(%rax),%rax 14ea6: 5d pop %rbp 14ea7: c3 retq 0000000000014ea8 <_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>:: 14ea8: 55 push %rbp 14ea9: 48 89 e5 mov %rsp,%rbp 14eac: 53 push %rbx 14ead: 48 83 ec 38 sub $0x38,%rsp 14eb1: 48 89 7d d8 mov %rdi,-0x28(%rbp) 14eb5: 48 89 75 d0 mov %rsi,-0x30(%rbp) 14eb9: 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); 14ebd: 48 8b 55 d0 mov -0x30(%rbp),%rdx 14ec1: 48 8b 45 d8 mov -0x28(%rbp),%rax 14ec5: 48 89 d6 mov %rdx,%rsi 14ec8: 48 89 c7 mov %rax,%rdi 14ecb: e8 00 d8 ff ff callq 126d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt> 14ed0: 48 89 45 e0 mov %rax,-0x20(%rbp) __top->_M_parent = __p; 14ed4: 48 8b 45 e0 mov -0x20(%rbp),%rax 14ed8: 48 8b 55 c8 mov -0x38(%rbp),%rdx 14edc: 48 89 50 08 mov %rdx,0x8(%rax) __try { if (__x->_M_right) 14ee0: 48 8b 45 d0 mov -0x30(%rbp),%rax 14ee4: 48 8b 40 18 mov 0x18(%rax),%rax 14ee8: 48 85 c0 test %rax,%rax 14eeb: 74 2d je 14f1a <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x72> __top->_M_right = _M_copy(_S_right(__x), __top); 14eed: 48 8b 45 d0 mov -0x30(%rbp),%rax 14ef1: 48 89 c7 mov %rax,%rdi 14ef4: e8 e7 db ff ff callq 12ae0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 14ef9: 48 89 c1 mov %rax,%rcx 14efc: 48 8b 55 e0 mov -0x20(%rbp),%rdx 14f00: 48 8b 45 d8 mov -0x28(%rbp),%rax 14f04: 48 89 ce mov %rcx,%rsi 14f07: 48 89 c7 mov %rax,%rdi 14f0a: e8 91 ec ff ff callq 13ba0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 14f0f: 48 89 c2 mov %rax,%rdx 14f12: 48 8b 45 e0 mov -0x20(%rbp),%rax 14f16: 48 89 50 18 mov %rdx,0x18(%rax) __p = __top; 14f1a: 48 8b 45 e0 mov -0x20(%rbp),%rax 14f1e: 48 89 45 c8 mov %rax,-0x38(%rbp) __x = _S_left(__x); 14f22: 48 8b 45 d0 mov -0x30(%rbp),%rax 14f26: 48 89 c7 mov %rax,%rdi 14f29: e8 b2 dd ff ff callq 12ce0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt> 14f2e: 48 89 45 d0 mov %rax,-0x30(%rbp) while (__x != 0) 14f32: e9 81 00 00 00 jmpq 14fb8 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x110> { _Link_type __y = _M_clone_node(__x); 14f37: 48 8b 55 d0 mov -0x30(%rbp),%rdx 14f3b: 48 8b 45 d8 mov -0x28(%rbp),%rax 14f3f: 48 89 d6 mov %rdx,%rsi 14f42: 48 89 c7 mov %rax,%rdi 14f45: e8 86 d7 ff ff callq 126d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS1_E@plt> 14f4a: 48 89 45 e8 mov %rax,-0x18(%rbp) __p->_M_left = __y; 14f4e: 48 8b 45 c8 mov -0x38(%rbp),%rax 14f52: 48 8b 55 e8 mov -0x18(%rbp),%rdx 14f56: 48 89 50 10 mov %rdx,0x10(%rax) __y->_M_parent = __p; 14f5a: 48 8b 45 e8 mov -0x18(%rbp),%rax 14f5e: 48 8b 55 c8 mov -0x38(%rbp),%rdx 14f62: 48 89 50 08 mov %rdx,0x8(%rax) if (__x->_M_right) 14f66: 48 8b 45 d0 mov -0x30(%rbp),%rax 14f6a: 48 8b 40 18 mov 0x18(%rax),%rax 14f6e: 48 85 c0 test %rax,%rax 14f71: 74 2d je 14fa0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0xf8> __y->_M_right = _M_copy(_S_right(__x), __y); 14f73: 48 8b 45 d0 mov -0x30(%rbp),%rax 14f77: 48 89 c7 mov %rax,%rdi 14f7a: e8 61 db ff ff callq 12ae0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 14f7f: 48 89 c1 mov %rax,%rcx 14f82: 48 8b 55 e8 mov -0x18(%rbp),%rdx 14f86: 48 8b 45 d8 mov -0x28(%rbp),%rax 14f8a: 48 89 ce mov %rcx,%rsi 14f8d: 48 89 c7 mov %rax,%rdi 14f90: e8 0b ec ff ff callq 13ba0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_@plt> 14f95: 48 89 c2 mov %rax,%rdx 14f98: 48 8b 45 e8 mov -0x18(%rbp),%rax 14f9c: 48 89 50 18 mov %rdx,0x18(%rax) __p = __y; 14fa0: 48 8b 45 e8 mov -0x18(%rbp),%rax 14fa4: 48 89 45 c8 mov %rax,-0x38(%rbp) __x = _S_left(__x); 14fa8: 48 8b 45 d0 mov -0x30(%rbp),%rax 14fac: 48 89 c7 mov %rax,%rdi 14faf: e8 2c dd ff ff callq 12ce0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPKSt18_Rb_tree_node_base@plt> 14fb4: 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) 14fb8: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 14fbd: 0f 95 c0 setne %al 14fc0: 84 c0 test %al,%al 14fc2: 0f 85 6f ff ff ff jne 14f37 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_copyEPKSt13_Rb_tree_nodeIS1_EPS9_+0x8f> __catch(...) { _M_erase(__top); __throw_exception_again; } return __top; 14fc8: 48 8b 45 e0 mov -0x20(%rbp),%rax } 14fcc: 48 83 c4 38 add $0x38,%rsp 14fd0: 5b pop %rbx 14fd1: 5d pop %rbp 14fd2: c3 retq 14fd3: 48 89 c3 mov %rax,%rbx __y->_M_right = _M_copy(_S_right(__x), __y); __p = __y; __x = _S_left(__x); } } __catch(...) 14fd6: e8 65 ec ff ff callq 13c40 <__cxa_end_catch@plt> 14fdb: 48 89 d8 mov %rbx,%rax 14fde: 48 89 c7 mov %rax,%rdi 14fe1: e8 3a ef ff ff callq 13f20 <_Unwind_Resume@plt> 14fe6: 48 89 c7 mov %rax,%rdi 14fe9: e8 82 ed ff ff callq 13d70 <__cxa_begin_catch@plt> { _M_erase(__top); 14fee: 48 8b 55 e0 mov -0x20(%rbp),%rdx 14ff2: 48 8b 45 d8 mov -0x28(%rbp),%rax 14ff6: 48 89 d6 mov %rdx,%rsi 14ff9: 48 89 c7 mov %rax,%rdi 14ffc: e8 5f e0 ff ff callq 13060 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E@plt> __throw_exception_again; 15001: e8 4a d8 ff ff callq 12850 <__cxa_rethrow@plt> 0000000000015006 <_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 15006: 55 push %rbp 15007: 48 89 e5 mov %rsp,%rbp 1500a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type> (this->_M_impl._M_header._M_parent); 1500e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15012: 48 8b 40 10 mov 0x10(%rax),%rax } 15016: 5d pop %rbp 15017: c3 retq 0000000000015018 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv>: _Link_type _M_end() 15018: 55 push %rbp 15019: 48 89 e5 mov %rsp,%rbp 1501c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 15020: 48 8b 45 f8 mov -0x8(%rbp),%rax 15024: 48 83 c0 08 add $0x8,%rax 15028: 5d pop %rbp 15029: c3 retq 000000000001502a <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_M_rootEv>: _Rb_tree_impl<_Compare> _M_impl; protected: _Base_ptr& _M_root() 1502a: 55 push %rbp 1502b: 48 89 e5 mov %rsp,%rbp 1502e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 15032: 48 8b 45 f8 mov -0x8(%rbp),%rax 15036: 48 83 c0 10 add $0x10,%rax 1503a: 5d pop %rbp 1503b: c3 retq 000000000001503c <_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) 1503c: 55 push %rbp 1503d: 48 89 e5 mov %rsp,%rbp 15040: 48 83 ec 10 sub $0x10,%rsp 15044: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _Rb_tree_node_base::_S_minimum(__x); } 15048: 48 8b 45 f8 mov -0x8(%rbp),%rax 1504c: 48 89 c7 mov %rax,%rdi 1504f: e8 1c ec ff ff callq 13c70 <_ZNSt18_Rb_tree_node_base10_S_minimumEPS_@plt> 15054: c9 leaveq 15055: c3 retq 0000000000015056 <_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() 15056: 55 push %rbp 15057: 48 89 e5 mov %rsp,%rbp 1505a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 1505e: 48 8b 45 f8 mov -0x8(%rbp),%rax 15062: 48 83 c0 18 add $0x18,%rax 15066: 5d pop %rbp 15067: c3 retq 0000000000015068 <_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) 15068: 55 push %rbp 15069: 48 89 e5 mov %rsp,%rbp 1506c: 48 83 ec 10 sub $0x10,%rsp 15070: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _Rb_tree_node_base::_S_maximum(__x); } 15074: 48 8b 45 f8 mov -0x8(%rbp),%rax 15078: 48 89 c7 mov %rax,%rdi 1507b: e8 b0 ec ff ff callq 13d30 <_ZNSt18_Rb_tree_node_base10_S_maximumEPS_@plt> 15080: c9 leaveq 15081: c3 retq 0000000000015082 <_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() 15082: 55 push %rbp 15083: 48 89 e5 mov %rsp,%rbp 15086: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 1508a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1508e: 48 83 c0 20 add $0x20,%rax 15092: 5d pop %rbp 15093: c3 retq 0000000000015094 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 15094: 55 push %rbp 15095: 48 89 e5 mov %rsp,%rbp 15098: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1509c: 5d pop %rbp 1509d: c3 retq 000000000001509e <_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) 1509e: 55 push %rbp 1509f: 48 89 e5 mov %rsp,%rbp 150a2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 150a6: 48 8b 45 f8 mov -0x8(%rbp),%rax 150aa: 48 8b 40 18 mov 0x18(%rax),%rax 150ae: 5d pop %rbp 150af: c3 retq 00000000000150b0 <_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) 150b0: 55 push %rbp 150b1: 48 89 e5 mov %rsp,%rbp 150b4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 150b8: 48 8b 45 f8 mov -0x8(%rbp),%rax 150bc: 48 8b 40 10 mov 0x10(%rax),%rax 150c0: 5d pop %rbp 150c1: c3 retq 00000000000150c2 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 150c2: 55 push %rbp 150c3: 48 89 e5 mov %rsp,%rbp 150c6: 53 push %rbx 150c7: 48 83 ec 28 sub $0x28,%rsp 150cb: 48 89 7d d8 mov %rdi,-0x28(%rbp) 150cf: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 150d3: 48 8b 45 d0 mov -0x30(%rbp),%rax 150d7: 48 83 c0 20 add $0x20,%rax 150db: 48 89 c7 mov %rax,%rdi 150de: e8 6d d6 ff ff callq 12750 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt> 150e3: 48 89 c3 mov %rax,%rbx 150e6: 48 8d 45 ef lea -0x11(%rbp),%rax 150ea: 48 8b 55 d8 mov -0x28(%rbp),%rdx 150ee: 48 89 d6 mov %rdx,%rsi 150f1: 48 89 c7 mov %rax,%rdi 150f4: e8 67 d3 ff ff callq 12460 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt> 150f9: 48 8d 45 ef lea -0x11(%rbp),%rax 150fd: 48 89 de mov %rbx,%rsi 15100: 48 89 c7 mov %rax,%rdi 15103: e8 f8 e1 ff ff callq 13300 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_@plt> 15108: 48 8d 45 ef lea -0x11(%rbp),%rax 1510c: 48 89 c7 mov %rax,%rdi 1510f: e8 8c e7 ff ff callq 138a0 <_ZNSaIP11XLogHandlerED1Ev@plt> _M_put_node(__p); 15114: 48 8b 55 d0 mov -0x30(%rbp),%rdx 15118: 48 8b 45 d8 mov -0x28(%rbp),%rax 1511c: 48 89 d6 mov %rdx,%rsi 1511f: 48 89 c7 mov %rax,%rdi 15122: e8 a9 d3 ff ff callq 124d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt> } 15127: 48 83 c4 28 add $0x28,%rsp 1512b: 5b pop %rbx 1512c: 5d pop %rbp 1512d: c3 retq 1512e: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 15131: 48 8d 45 ef lea -0x11(%rbp),%rax 15135: 48 89 c7 mov %rax,%rdi 15138: e8 63 e7 ff ff callq 138a0 <_ZNSaIP11XLogHandlerED1Ev@plt> 1513d: 48 89 d8 mov %rbx,%rax 15140: 48 89 c7 mov %rax,%rdi 15143: e8 d8 ed ff ff callq 13f20 <_Unwind_Resume@plt> 0000000000015148 <_ZNSaISt13_Rb_tree_nodeISt4pairIKmPvEEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 15148: 55 push %rbp 15149: 48 89 e5 mov %rsp,%rbp 1514c: 48 83 ec 10 sub $0x10,%rsp 15150: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15154: 48 8b 45 f8 mov -0x8(%rbp),%rax 15158: 48 89 c7 mov %rax,%rdi 1515b: e8 e0 eb ff ff callq 13d40 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC2Ev@plt> 15160: c9 leaveq 15161: c3 retq 0000000000015162 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13_Rb_tree_implIS7_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 15162: 55 push %rbp 15163: 48 89 e5 mov %rsp,%rbp 15166: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 1516a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1516e: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 15175: 48 8b 45 f8 mov -0x8(%rbp),%rax 15179: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 15180: 00 this->_M_header._M_left = &this->_M_header; 15181: 48 8b 45 f8 mov -0x8(%rbp),%rax 15185: 48 8d 50 08 lea 0x8(%rax),%rdx 15189: 48 8b 45 f8 mov -0x8(%rbp),%rax 1518d: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 15191: 48 8b 45 f8 mov -0x8(%rbp),%rax 15195: 48 8d 50 08 lea 0x8(%rax),%rdx 15199: 48 8b 45 f8 mov -0x8(%rbp),%rax 1519d: 48 89 50 20 mov %rdx,0x20(%rax) } 151a1: 5d pop %rbp 151a2: c3 retq 151a3: 90 nop 00000000000151a4 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEED1Ev>: 151a4: 55 push %rbp 151a5: 48 89 e5 mov %rsp,%rbp 151a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 151ac: 5d pop %rbp 151ad: c3 retq 00000000000151ae <_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) 151ae: 55 push %rbp 151af: 48 89 e5 mov %rsp,%rbp 151b2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 151b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 151ba: 48 8b 40 18 mov 0x18(%rax),%rax 151be: 5d pop %rbp 151bf: c3 retq 00000000000151c0 <_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) 151c0: 55 push %rbp 151c1: 48 89 e5 mov %rsp,%rbp 151c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 151c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 151cc: 48 8b 40 10 mov 0x10(%rax),%rax 151d0: 5d pop %rbp 151d1: c3 retq 00000000000151d2 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 151d2: 55 push %rbp 151d3: 48 89 e5 mov %rsp,%rbp 151d6: 53 push %rbx 151d7: 48 83 ec 28 sub $0x28,%rsp 151db: 48 89 7d d8 mov %rdi,-0x28(%rbp) 151df: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 151e3: 48 8b 45 d0 mov -0x30(%rbp),%rax 151e7: 48 83 c0 20 add $0x20,%rax 151eb: 48 89 c7 mov %rax,%rdi 151ee: e8 cd e2 ff ff callq 134c0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt> 151f3: 48 89 c3 mov %rax,%rbx 151f6: 48 8d 45 ef lea -0x11(%rbp),%rax 151fa: 48 8b 55 d8 mov -0x28(%rbp),%rdx 151fe: 48 89 d6 mov %rdx,%rsi 15201: 48 89 c7 mov %rax,%rdi 15204: e8 a7 d6 ff ff callq 128b0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt> 15209: 48 8d 45 ef lea -0x11(%rbp),%rax 1520d: 48 89 de mov %rbx,%rsi 15210: 48 89 c7 mov %rax,%rdi 15213: e8 d8 e8 ff ff callq 13af0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_@plt> 15218: 48 8d 45 ef lea -0x11(%rbp),%rax 1521c: 48 89 c7 mov %rax,%rdi 1521f: e8 5c d7 ff ff callq 12980 <_ZNSaISt4pairIKmPvEED1Ev@plt> _M_put_node(__p); 15224: 48 8b 55 d0 mov -0x30(%rbp),%rdx 15228: 48 8b 45 d8 mov -0x28(%rbp),%rax 1522c: 48 89 d6 mov %rdx,%rsi 1522f: 48 89 c7 mov %rax,%rdi 15232: e8 09 d6 ff ff callq 12840 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt> } 15237: 48 83 c4 28 add $0x28,%rsp 1523b: 5b pop %rbx 1523c: 5d pop %rbp 1523d: c3 retq 1523e: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 15241: 48 8d 45 ef lea -0x11(%rbp),%rax 15245: 48 89 c7 mov %rax,%rdi 15248: e8 33 d7 ff ff callq 12980 <_ZNSaISt4pairIKmPvEED1Ev@plt> 1524d: 48 89 d8 mov %rbx,%rax 15250: 48 89 c7 mov %rax,%rdi 15253: e8 c8 ec ff ff callq 13f20 <_Unwind_Resume@plt> 0000000000015258 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC1ERKS3_>: allocator(const allocator& __a) throw() 15258: 55 push %rbp 15259: 48 89 e5 mov %rsp,%rbp 1525c: 48 83 ec 10 sub $0x10,%rsp 15260: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15264: 48 89 75 f0 mov %rsi,-0x10(%rbp) : __glibcxx_base_allocator<_Tp>(__a) { } 15268: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1526c: 48 8b 45 f8 mov -0x8(%rbp),%rax 15270: 48 89 d6 mov %rdx,%rsi 15273: 48 89 c7 mov %rax,%rdi 15276: e8 55 ee ff ff callq 140d0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2ERKS5_@plt> 1527b: c9 leaveq 1527c: c3 retq 1527d: 90 nop 000000000001527e <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 1527e: 55 push %rbp 1527f: 48 89 e5 mov %rsp,%rbp 15282: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 15286: 48 8b 45 f8 mov -0x8(%rbp),%rax 1528a: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 15291: 48 8b 45 f8 mov -0x8(%rbp),%rax 15295: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 1529c: 00 this->_M_header._M_left = &this->_M_header; 1529d: 48 8b 45 f8 mov -0x8(%rbp),%rax 152a1: 48 8d 50 08 lea 0x8(%rax),%rdx 152a5: 48 8b 45 f8 mov -0x8(%rbp),%rax 152a9: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 152ad: 48 8b 45 f8 mov -0x8(%rbp),%rax 152b1: 48 8d 50 08 lea 0x8(%rax),%rdx 152b5: 48 8b 45 f8 mov -0x8(%rbp),%rax 152b9: 48 89 50 20 mov %rdx,0x20(%rax) } 152bd: 5d pop %rbp 152be: c3 retq 152bf: 90 nop 00000000000152c0 <_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) 152c0: 55 push %rbp 152c1: 48 89 e5 mov %rsp,%rbp 152c4: 48 83 ec 20 sub $0x20,%rsp 152c8: 48 89 7d e8 mov %rdi,-0x18(%rbp) 152cc: 48 89 75 e0 mov %rsi,-0x20(%rbp) { _Link_type __tmp = _M_create_node(__x->_M_value_field); 152d0: 48 8b 45 e0 mov -0x20(%rbp),%rax 152d4: 48 8d 50 20 lea 0x20(%rax),%rdx 152d8: 48 8b 45 e8 mov -0x18(%rbp),%rax 152dc: 48 89 d6 mov %rdx,%rsi 152df: 48 89 c7 mov %rax,%rdi 152e2: e8 39 e8 ff ff callq 13b20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt> 152e7: 48 89 45 f8 mov %rax,-0x8(%rbp) __tmp->_M_color = __x->_M_color; 152eb: 48 8b 45 e0 mov -0x20(%rbp),%rax 152ef: 8b 10 mov (%rax),%edx 152f1: 48 8b 45 f8 mov -0x8(%rbp),%rax 152f5: 89 10 mov %edx,(%rax) __tmp->_M_left = 0; 152f7: 48 8b 45 f8 mov -0x8(%rbp),%rax 152fb: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 15302: 00 __tmp->_M_right = 0; 15303: 48 8b 45 f8 mov -0x8(%rbp),%rax 15307: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 1530e: 00 return __tmp; 1530f: 48 8b 45 f8 mov -0x8(%rbp),%rax } 15313: c9 leaveq 15314: c3 retq 0000000000015315 <_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) 15315: 55 push %rbp 15316: 48 89 e5 mov %rsp,%rbp 15319: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 1531d: 48 8b 45 f8 mov -0x8(%rbp),%rax 15321: 48 8b 40 18 mov 0x18(%rax),%rax 15325: 5d pop %rbp 15326: c3 retq 0000000000015327 <_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) 15327: 55 push %rbp 15328: 48 89 e5 mov %rsp,%rbp 1532b: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_left); } 1532f: 48 8b 45 f8 mov -0x8(%rbp),%rax 15333: 48 8b 40 10 mov 0x10(%rax),%rax 15337: 5d pop %rbp 15338: c3 retq 15339: 90 nop 000000000001533a <_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 1533a: 55 push %rbp 1533b: 48 89 e5 mov %rsp,%rbp 1533e: 48 83 ec 10 sub $0x10,%rsp 15342: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15346: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 1534a: 48 8b 45 f0 mov -0x10(%rbp),%rax 1534e: 48 89 c7 mov %rax,%rdi 15351: e8 5a e6 ff ff callq 139b0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE21_M_get_Node_allocatorEv@plt> 15356: 48 89 c2 mov %rax,%rdx 15359: 48 8b 45 f8 mov -0x8(%rbp),%rax 1535d: 48 89 d6 mov %rdx,%rsi 15360: 48 89 c7 mov %rax,%rdi 15363: e8 98 ec ff ff callq 14000 <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E@plt> 15368: 48 8b 45 f8 mov -0x8(%rbp),%rax 1536c: c9 leaveq 1536d: c3 retq 000000000001536e <_ZNSaIP11XLogHandlerED1Ev>: template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 1536e: 55 push %rbp 1536f: 48 89 e5 mov %rsp,%rbp 15372: 48 83 ec 10 sub $0x10,%rsp 15376: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1537a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1537e: 48 89 c7 mov %rax,%rdi 15381: e8 2a dd ff ff callq 130b0 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED2Ev@plt> 15386: c9 leaveq 15387: c3 retq 0000000000015388 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 15388: 55 push %rbp 15389: 48 89 e5 mov %rsp,%rbp 1538c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 15390: 48 8b 45 f8 mov -0x8(%rbp),%rax } 15394: 5d pop %rbp 15395: c3 retq 0000000000015396 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE7destroyEPS2_>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 15396: 55 push %rbp 15397: 48 89 e5 mov %rsp,%rbp 1539a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1539e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 153a2: 5d pop %rbp 153a3: c3 retq 00000000000153a4 <_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) 153a4: 55 push %rbp 153a5: 48 89 e5 mov %rsp,%rbp 153a8: 48 83 ec 10 sub $0x10,%rsp 153ac: 48 89 7d f8 mov %rdi,-0x8(%rbp) 153b0: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 153b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 153b8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 153bc: ba 01 00 00 00 mov $0x1,%edx 153c1: 48 89 ce mov %rcx,%rsi 153c4: 48 89 c7 mov %rax,%rdi 153c7: e8 54 e9 ff ff callq 13d20 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE10deallocateEPS4_m@plt> 153cc: c9 leaveq 153cd: c3 retq 00000000000153ce <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 153ce: 55 push %rbp 153cf: 48 89 e5 mov %rsp,%rbp 153d2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 153d6: 5d pop %rbp 153d7: c3 retq 00000000000153d8 <_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 153d8: 55 push %rbp 153d9: 48 89 e5 mov %rsp,%rbp 153dc: 48 83 ec 10 sub $0x10,%rsp 153e0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 153e4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 153e8: 48 8b 45 f0 mov -0x10(%rbp),%rax 153ec: 48 89 c7 mov %rax,%rdi 153ef: e8 5c d7 ff ff callq 12b50 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE21_M_get_Node_allocatorEv@plt> 153f4: 48 89 c2 mov %rax,%rdx 153f7: 48 8b 45 f8 mov -0x8(%rbp),%rax 153fb: 48 89 d6 mov %rdx,%rsi 153fe: 48 89 c7 mov %rax,%rdi 15401: e8 0a e8 ff ff callq 13c10 <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E@plt> 15406: 48 8b 45 f8 mov -0x8(%rbp),%rax 1540a: c9 leaveq 1540b: c3 retq 000000000001540c <_ZNSaISt4pairIKmPvEED1Ev>: 1540c: 55 push %rbp 1540d: 48 89 e5 mov %rsp,%rbp 15410: 48 83 ec 10 sub $0x10,%rsp 15414: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15418: 48 8b 45 f8 mov -0x8(%rbp),%rax 1541c: 48 89 c7 mov %rax,%rdi 1541f: e8 1c e0 ff ff callq 13440 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED2Ev@plt> 15424: c9 leaveq 15425: c3 retq 0000000000015426 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 15426: 55 push %rbp 15427: 48 89 e5 mov %rsp,%rbp 1542a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 1542e: 48 8b 45 f8 mov -0x8(%rbp),%rax } 15432: 5d pop %rbp 15433: c3 retq 0000000000015434 <_ZNSt4pairIKmPvED1Ev>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 15434: 55 push %rbp 15435: 48 89 e5 mov %rsp,%rbp 15438: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1543c: 5d pop %rbp 1543d: c3 retq 000000000001543e <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE7destroyEPS4_>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 1543e: 55 push %rbp 1543f: 48 89 e5 mov %rsp,%rbp 15442: 48 83 ec 10 sub $0x10,%rsp 15446: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1544a: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1544e: 48 8b 45 f0 mov -0x10(%rbp),%rax 15452: 48 89 c7 mov %rax,%rdi 15455: e8 66 e8 ff ff callq 13cc0 <_ZNSt4pairIKmPvED1Ev@plt> 1545a: c9 leaveq 1545b: c3 retq 000000000001545c <_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) 1545c: 55 push %rbp 1545d: 48 89 e5 mov %rsp,%rbp 15460: 48 83 ec 10 sub $0x10,%rsp 15464: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15468: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 1546c: 48 8b 45 f8 mov -0x8(%rbp),%rax 15470: 48 8b 4d f0 mov -0x10(%rbp),%rcx 15474: ba 01 00 00 00 mov $0x1,%edx 15479: 48 89 ce mov %rcx,%rsi 1547c: 48 89 c7 mov %rax,%rdi 1547f: e8 fc d5 ff ff callq 12a80 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE10deallocateEPS6_m@plt> 15484: c9 leaveq 15485: c3 retq 0000000000015486 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC1ERKS5_>: struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } new_allocator(const new_allocator&) throw() { } 15486: 55 push %rbp 15487: 48 89 e5 mov %rsp,%rbp 1548a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1548e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15492: 5d pop %rbp 15493: c3 retq 0000000000015494 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_>: #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Link_type _M_create_node(const value_type& __x) 15494: 55 push %rbp 15495: 48 89 e5 mov %rsp,%rbp 15498: 53 push %rbx 15499: 48 83 ec 28 sub $0x28,%rsp 1549d: 48 89 7d d8 mov %rdi,-0x28(%rbp) 154a1: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 154a5: 48 8b 45 d8 mov -0x28(%rbp),%rax 154a9: 48 89 c7 mov %rax,%rdi 154ac: e8 cf e6 ff ff callq 13b80 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_get_nodeEv@plt> 154b1: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 154b5: 48 8b 45 e0 mov -0x20(%rbp),%rax 154b9: 48 83 c0 20 add $0x20,%rax 154bd: 48 89 c7 mov %rax,%rdi 154c0: e8 8b d2 ff ff callq 12750 <_ZSt11__addressofIP11XLogHandlerEPT_RS2_@plt> 154c5: 48 89 c3 mov %rax,%rbx 154c8: 48 8d 45 ef lea -0x11(%rbp),%rax 154cc: 48 8b 55 d8 mov -0x28(%rbp),%rdx 154d0: 48 89 d6 mov %rdx,%rsi 154d3: 48 89 c7 mov %rax,%rdi 154d6: e8 85 cf ff ff callq 12460 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13get_allocatorEv@plt> 154db: 48 8b 55 d0 mov -0x30(%rbp),%rdx 154df: 48 8d 45 ef lea -0x11(%rbp),%rax 154e3: 48 89 de mov %rbx,%rsi 154e6: 48 89 c7 mov %rax,%rdi 154e9: e8 52 eb ff ff callq 14040 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_@plt> 154ee: 48 8d 45 ef lea -0x11(%rbp),%rax 154f2: 48 89 c7 mov %rax,%rdi 154f5: e8 a6 e3 ff ff callq 138a0 <_ZNSaIP11XLogHandlerED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 154fa: 48 8b 45 e0 mov -0x20(%rbp),%rax } 154fe: 48 83 c4 28 add $0x28,%rsp 15502: 5b pop %rbx 15503: 5d pop %rbp 15504: c3 retq 15505: 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 15508: 48 8d 45 ef lea -0x11(%rbp),%rax 1550c: 48 89 c7 mov %rax,%rdi 1550f: e8 8c e3 ff ff callq 138a0 <_ZNSaIP11XLogHandlerED1Ev@plt> 15514: 48 89 d8 mov %rbx,%rax 15517: 48 89 c7 mov %rax,%rdi 1551a: e8 51 e8 ff ff callq 13d70 <__cxa_begin_catch@plt> (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 1551f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15523: 48 8b 45 d8 mov -0x28(%rbp),%rax 15527: 48 89 d6 mov %rdx,%rsi 1552a: 48 89 c7 mov %rax,%rdi 1552d: e8 9e cf ff ff callq 124d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS1_E@plt> 15532: eb 13 jmp 15547 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_+0xb3> { _M_put_node(__tmp); 15534: 48 89 c3 mov %rax,%rbx 15537: e8 04 e7 ff ff callq 13c40 <__cxa_end_catch@plt> 1553c: 48 89 d8 mov %rbx,%rax 1553f: 48 89 c7 mov %rax,%rdi 15542: e8 d9 e9 ff ff callq 13f20 <_Unwind_Resume@plt> __throw_exception_again; 15547: e8 04 d3 ff ff callq 12850 <__cxa_rethrow@plt> 000000000001554c <_ZNSaIP11XLogHandlerEC1ISt13_Rb_tree_nodeIS0_EEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 1554c: 55 push %rbp 1554d: 48 89 e5 mov %rsp,%rbp 15550: 48 83 ec 10 sub $0x10,%rsp 15554: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15558: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1555c: 48 8b 45 f8 mov -0x8(%rbp),%rax 15560: 48 89 c7 mov %rax,%rdi 15563: e8 f8 e4 ff ff callq 13a60 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC2Ev@plt> 15568: c9 leaveq 15569: c3 retq 000000000001556a <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerED1Ev>: template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 1556a: 55 push %rbp 1556b: 48 89 e5 mov %rsp,%rbp 1556e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15572: 5d pop %rbp 15573: c3 retq 0000000000015574 <_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) 15574: 55 push %rbp 15575: 48 89 e5 mov %rsp,%rbp 15578: 48 83 ec 20 sub $0x20,%rsp 1557c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15580: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15584: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 15588: 48 8b 45 f0 mov -0x10(%rbp),%rax 1558c: 48 89 c7 mov %rax,%rdi 1558f: e8 ac d1 ff ff callq 12740 <_ZdlPv@plt> 15594: c9 leaveq 15595: c3 retq 0000000000015596 <_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 15596: 55 push %rbp 15597: 48 89 e5 mov %rsp,%rbp 1559a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 1559e: 48 8b 45 f8 mov -0x8(%rbp),%rax 155a2: 5d pop %rbp 155a3: c3 retq 00000000000155a4 <_ZNSaISt4pairIKmPvEEC1ISt13_Rb_tree_nodeIS2_EEERKSaIT_E>: 155a4: 55 push %rbp 155a5: 48 89 e5 mov %rsp,%rbp 155a8: 48 83 ec 10 sub $0x10,%rsp 155ac: 48 89 7d f8 mov %rdi,-0x8(%rbp) 155b0: 48 89 75 f0 mov %rsi,-0x10(%rbp) 155b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 155b8: 48 89 c7 mov %rax,%rdi 155bb: e8 e0 e0 ff ff callq 136a0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC2Ev@plt> 155c0: c9 leaveq 155c1: c3 retq 00000000000155c2 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 155c2: 55 push %rbp 155c3: 48 89 e5 mov %rsp,%rbp 155c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 155ca: 5d pop %rbp 155cb: c3 retq 00000000000155cc <_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) 155cc: 55 push %rbp 155cd: 48 89 e5 mov %rsp,%rbp 155d0: 48 83 ec 20 sub $0x20,%rsp 155d4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 155d8: 48 89 75 f0 mov %rsi,-0x10(%rbp) 155dc: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 155e0: 48 8b 45 f0 mov -0x10(%rbp),%rax 155e4: 48 89 c7 mov %rax,%rdi 155e7: e8 54 d1 ff ff callq 12740 <_ZdlPv@plt> 155ec: c9 leaveq 155ed: c3 retq 00000000000155ee <_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() 155ee: 55 push %rbp 155ef: 48 89 e5 mov %rsp,%rbp 155f2: 48 83 ec 10 sub $0x10,%rsp 155f6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 155fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 155fe: ba 00 00 00 00 mov $0x0,%edx 15603: be 01 00 00 00 mov $0x1,%esi 15608: 48 89 c7 mov %rax,%rdi 1560b: e8 f0 d1 ff ff callq 12800 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv@plt> 15610: c9 leaveq 15611: c3 retq 0000000000015612 <_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) 15612: 55 push %rbp 15613: 48 89 e5 mov %rsp,%rbp 15616: 48 83 ec 20 sub $0x20,%rsp 1561a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1561e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 15622: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 15626: 48 8b 45 f0 mov -0x10(%rbp),%rax 1562a: 48 89 c6 mov %rax,%rsi 1562d: bf 08 00 00 00 mov $0x8,%edi 15632: e8 49 d5 ff ff callq 12b80 <_ZnwmPv@plt> 15637: 48 85 c0 test %rax,%rax 1563a: 74 0a je 15646 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerE9constructEPS2_RKS2_+0x34> 1563c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15640: 48 8b 12 mov (%rdx),%rdx 15643: 48 89 10 mov %rdx,(%rax) 15646: c9 leaveq 15647: c3 retq 0000000000015648 <_ZN9__gnu_cxx13new_allocatorIP11XLogHandlerEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 15648: 55 push %rbp 15649: 48 89 e5 mov %rsp,%rbp 1564c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15650: 5d pop %rbp 15651: c3 retq 0000000000015652 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEEC1Ev>: 15652: 55 push %rbp 15653: 48 89 e5 mov %rsp,%rbp 15656: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1565a: 5d pop %rbp 1565b: c3 retq 000000000001565c <_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) 1565c: 55 push %rbp 1565d: 48 89 e5 mov %rsp,%rbp 15660: 48 83 ec 20 sub $0x20,%rsp 15664: 48 89 7d f8 mov %rdi,-0x8(%rbp) 15668: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1566c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 15670: 48 8b 45 f8 mov -0x8(%rbp),%rax 15674: 48 89 c7 mov %rax,%rdi 15677: e8 f4 df ff ff callq 13670 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv@plt> 1567c: 48 3b 45 f0 cmp -0x10(%rbp),%rax 15680: 0f 92 c0 setb %al 15683: 84 c0 test %al,%al 15685: 74 05 je 1568c <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 15687: e8 d4 e5 ff ff callq 13c60 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 1568c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 15690: 48 89 d0 mov %rdx,%rax 15693: 48 c1 e0 02 shl $0x2,%rax 15697: 48 01 d0 add %rdx,%rax 1569a: 48 c1 e0 03 shl $0x3,%rax 1569e: 48 89 c7 mov %rax,%rdi 156a1: e8 6a e8 ff ff callq 13f10 <_Znwm@plt> } 156a6: c9 leaveq 156a7: c3 retq 00000000000156a8 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 156a8: 55 push %rbp 156a9: 48 89 e5 mov %rsp,%rbp 156ac: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 156b0: 48 b8 66 66 66 66 66 movabs $0x666666666666666,%rax 156b7: 66 66 06 156ba: 5d pop %rbp 156bb: c3 retq 00000000000156bc <_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 156bc: 55 push %rbp 156bd: 48 89 e5 mov %rsp,%rbp 156c0: 48 83 ec 10 sub $0x10,%rsp 156c4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 156c8: 48 8b 45 f8 mov -0x8(%rbp),%rax 156cc: 48 89 c7 mov %rax,%rdi 156cf: e8 5c dc ff ff callq 13330 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EED1Ev@plt> 156d4: c9 leaveq 156d5: c3 retq 156d6: 90 nop 156d7: 90 nop 00000000000156d8 <_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[]) { 156d8: 55 push %rbp 156d9: 48 89 e5 mov %rsp,%rbp 156dc: 53 push %rbx 156dd: 48 83 ec 48 sub $0x48,%rsp 156e1: 48 89 7d c8 mov %rdi,-0x38(%rbp) 156e5: 89 75 c4 mov %esi,-0x3c(%rbp) 156e8: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_create()"; 156ec: 48 8d 05 bb ca 00 00 lea 0xcabb(%rip),%rax # 221ae <_fini+0x2f6> 156f3: 48 89 45 e0 mov %rax,-0x20(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 156f7: 48 8b 05 52 3d 21 00 mov 0x213d52(%rip),%rax # 229450 <_ZL8MOD_NAME> 156fe: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15702: 48 8d 0d b0 ca 00 00 lea 0xcab0(%rip),%rcx # 221b9 <_fini+0x301> 15709: 48 89 c6 mov %rax,%rsi 1570c: 48 8b 05 7d 28 21 00 mov 0x21287d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15713: 48 89 c7 mov %rax,%rdi 15716: b8 00 00 00 00 mov $0x0,%eax 1571b: e8 70 e2 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 15720: 48 8b 05 69 28 21 00 mov 0x212869(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15727: 48 89 c7 mov %rax,%rdi 1572a: e8 d1 d2 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> rados_t cluster; int err = rados_create(&cluster, NULL); 1572f: 48 8d 45 d0 lea -0x30(%rbp),%rax 15733: be 00 00 00 00 mov $0x0,%esi 15738: 48 89 c7 mov %rax,%rdi 1573b: e8 b0 df ff ff callq 136f0 15740: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 15743: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 15747: 79 43 jns 1578c <_Z8x_createP18enif_environment_tiPKm+0xb4> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle"); 15749: 48 8b 05 00 3d 21 00 mov 0x213d00(%rip),%rax # 229450 <_ZL8MOD_NAME> 15750: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15754: 48 8d 0d 6d ca 00 00 lea 0xca6d(%rip),%rcx # 221c8 <_fini+0x310> 1575b: 48 89 c6 mov %rax,%rsi 1575e: 48 8b 05 2b 28 21 00 mov 0x21282b(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15765: 48 89 c7 mov %rax,%rdi 15768: b8 00 00 00 00 mov $0x0,%eax 1576d: e8 7e e0 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 15772: 8b 45 ec mov -0x14(%rbp),%eax 15775: 89 c2 mov %eax,%edx 15777: f7 da neg %edx 15779: 48 8b 45 c8 mov -0x38(%rbp),%rax 1577d: 89 d6 mov %edx,%esi 1577f: 48 89 c7 mov %rax,%rdi 15782: e8 a9 e0 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 15787: e9 e2 00 00 00 jmpq 1586e <_Z8x_createP18enif_environment_tiPKm+0x196> } logger.debug(MOD_NAME, func_name, "cluster created"); 1578c: 48 8b 05 bd 3c 21 00 mov 0x213cbd(%rip),%rax # 229450 <_ZL8MOD_NAME> 15793: 48 8b 55 e0 mov -0x20(%rbp),%rdx 15797: 48 8d 0d 4a ca 00 00 lea 0xca4a(%rip),%rcx # 221e8 <_fini+0x330> 1579e: 48 89 c6 mov %rax,%rsi 157a1: 48 8b 05 e8 27 21 00 mov 0x2127e8(%rip),%rax # 227f90 <_DYNAMIC+0x240> 157a8: 48 89 c7 mov %rax,%rdi 157ab: b8 00 00 00 00 mov $0x0,%eax 157b0: e8 db e1 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 157b5: 48 8b 05 d4 27 21 00 mov 0x2127d4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 157bc: 48 89 c7 mov %rax,%rdi 157bf: e8 3c d2 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> uint64_t id = new_id(); 157c4: e8 b7 df ff ff callq 13780 <_Z6new_idv@plt> 157c9: 48 89 45 d8 mov %rax,-0x28(%rbp) map_cluster[id] = cluster; 157cd: 48 8d 45 d8 lea -0x28(%rbp),%rax 157d1: 48 89 c6 mov %rax,%rsi 157d4: 48 8b 05 dd 27 21 00 mov 0x2127dd(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 157db: 48 89 c7 mov %rax,%rdi 157de: e8 8d db ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 157e3: 48 8b 55 d0 mov -0x30(%rbp),%rdx 157e7: 48 89 10 mov %rdx,(%rax) logger.debug(MOD_NAME, func_name, "cluster added to local map: %ld", id); 157ea: 48 8b 4d d8 mov -0x28(%rbp),%rcx 157ee: 48 8b 05 5b 3c 21 00 mov 0x213c5b(%rip),%rax # 229450 <_ZL8MOD_NAME> 157f5: 48 8b 55 e0 mov -0x20(%rbp),%rdx 157f9: 49 89 c8 mov %rcx,%r8 157fc: 48 8d 0d f5 c9 00 00 lea 0xc9f5(%rip),%rcx # 221f8 <_fini+0x340> 15803: 48 89 c6 mov %rax,%rsi 15806: 48 8b 05 83 27 21 00 mov 0x212783(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1580d: 48 89 c7 mov %rax,%rdi 15810: b8 00 00 00 00 mov $0x0,%eax 15815: e8 76 e1 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 1581a: 48 8b 05 6f 27 21 00 mov 0x21276f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15821: 48 89 c7 mov %rax,%rdi 15824: e8 d7 d1 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> return enif_make_tuple2(env, 15829: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1582d: 48 8b 45 c8 mov -0x38(%rbp),%rax 15831: 48 89 d6 mov %rdx,%rsi 15834: 48 89 c7 mov %rax,%rdi 15837: e8 e4 dc ff ff callq 13520 1583c: 48 89 c3 mov %rax,%rbx 1583f: 48 8b 45 c8 mov -0x38(%rbp),%rax 15843: 48 8d 35 ce c9 00 00 lea 0xc9ce(%rip),%rsi # 22218 <_fini+0x360> 1584a: 48 89 c7 mov %rax,%rdi 1584d: e8 6e cf ff ff callq 127c0 15852: 48 89 c2 mov %rax,%rdx 15855: 48 8b 45 c8 mov -0x38(%rbp),%rax 15859: 48 89 d9 mov %rbx,%rcx 1585c: be 02 00 00 00 mov $0x2,%esi 15861: 48 89 c7 mov %rax,%rdi 15864: b8 00 00 00 00 mov $0x0,%eax 15869: e8 92 e3 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, id)); } 1586e: 48 83 c4 48 add $0x48,%rsp 15872: 5b pop %rbx 15873: 5d pop %rbp 15874: c3 retq 0000000000015875 <_Z18x_create_with_userP18enif_environment_tiPKm>: ERL_NIF_TERM x_create_with_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 15875: 55 push %rbp 15876: 48 89 e5 mov %rsp,%rbp 15879: 53 push %rbx 1587a: 48 81 ec 58 04 00 00 sub $0x458,%rsp 15881: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 15888: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1588e: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 15895: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1589c: 00 00 1589e: 48 89 45 e8 mov %rax,-0x18(%rbp) 158a2: 31 c0 xor %eax,%eax const char * func_name = "x_create_with_user()"; 158a4: 48 8d 05 70 c9 00 00 lea 0xc970(%rip),%rax # 2221b <_fini+0x363> 158ab: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 158b2: 48 8b 05 97 3b 21 00 mov 0x213b97(%rip),%rax # 229450 <_ZL8MOD_NAME> 158b9: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 158c0: 48 8d 0d f2 c8 00 00 lea 0xc8f2(%rip),%rcx # 221b9 <_fini+0x301> 158c7: 48 89 c6 mov %rax,%rsi 158ca: 48 8b 05 bf 26 21 00 mov 0x2126bf(%rip),%rax # 227f90 <_DYNAMIC+0x240> 158d1: 48 89 c7 mov %rax,%rdi 158d4: b8 00 00 00 00 mov $0x0,%eax 158d9: e8 b2 e0 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> char name[MAX_NAME_LEN]; memset(name, 0, MAX_NAME_LEN); 158de: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 158e5: ba 00 04 00 00 mov $0x400,%edx 158ea: be 00 00 00 00 mov $0x0,%esi 158ef: 48 89 c7 mov %rax,%rdi 158f2: e8 59 cb ff ff callq 12450 if (!enif_get_string(env, argv[0], name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 158f7: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 158fe: 48 8b 30 mov (%rax),%rsi 15901: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 15908: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1590f: 41 b8 01 00 00 00 mov $0x1,%r8d 15915: b9 00 04 00 00 mov $0x400,%ecx 1591a: 48 89 c7 mov %rax,%rdi 1591d: e8 ce e2 ff ff callq 13bf0 15922: 85 c0 test %eax,%eax 15924: 0f 94 c0 sete %al 15927: 84 c0 test %al,%al 15929: 74 40 je 1596b <_Z18x_create_with_userP18enif_environment_tiPKm+0xf6> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1592b: 48 8b 05 1e 3b 21 00 mov 0x213b1e(%rip),%rax # 229450 <_ZL8MOD_NAME> 15932: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 15939: 48 8d 0d f0 c8 00 00 lea 0xc8f0(%rip),%rcx # 22230 <_fini+0x378> 15940: 48 89 c6 mov %rax,%rsi 15943: 48 8b 05 46 26 21 00 mov 0x212646(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1594a: 48 89 c7 mov %rax,%rdi 1594d: b8 00 00 00 00 mov $0x0,%eax 15952: e8 99 de ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 15957: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1595e: 48 89 c7 mov %rax,%rdi 15961: e8 3a d9 ff ff callq 132a0 15966: e9 34 01 00 00 jmpq 15a9f <_Z18x_create_with_userP18enif_environment_tiPKm+0x22a> } rados_t cluster; int err = rados_create(&cluster, name); 1596b: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 15972: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 15979: 48 89 d6 mov %rdx,%rsi 1597c: 48 89 c7 mov %rax,%rdi 1597f: e8 6c dd ff ff callq 136f0 15984: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1598a: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 15991: 79 56 jns 159e9 <_Z18x_create_with_userP18enif_environment_tiPKm+0x174> { logger.error(MOD_NAME, func_name, "Unable to create cluster handle with name: %s", name); 15993: 48 8b 05 b6 3a 21 00 mov 0x213ab6(%rip),%rax # 229450 <_ZL8MOD_NAME> 1599a: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 159a1: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 159a8: 49 89 c8 mov %rcx,%r8 159ab: 48 8d 0d 96 c8 00 00 lea 0xc896(%rip),%rcx # 22248 <_fini+0x390> 159b2: 48 89 c6 mov %rax,%rsi 159b5: 48 8b 05 d4 25 21 00 mov 0x2125d4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 159bc: 48 89 c7 mov %rax,%rdi 159bf: b8 00 00 00 00 mov $0x0,%eax 159c4: e8 27 de ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 159c9: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 159cf: 89 c2 mov %eax,%edx 159d1: f7 da neg %edx 159d3: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 159da: 89 d6 mov %edx,%esi 159dc: 48 89 c7 mov %rax,%rdi 159df: e8 4c de ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 159e4: e9 b6 00 00 00 jmpq 15a9f <_Z18x_create_with_userP18enif_environment_tiPKm+0x22a> } uint64_t id = new_id(); 159e9: e8 92 dd ff ff callq 13780 <_Z6new_idv@plt> 159ee: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) map_cluster[id] = cluster; 159f5: 48 8d 85 c8 fb ff ff lea -0x438(%rbp),%rax 159fc: 48 89 c6 mov %rax,%rsi 159ff: 48 8b 05 b2 25 21 00 mov 0x2125b2(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 15a06: 48 89 c7 mov %rax,%rdi 15a09: e8 62 d9 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 15a0e: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 15a15: 48 89 10 mov %rdx,(%rax) logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 15a18: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 15a1f: 48 8b 05 2a 3a 21 00 mov 0x213a2a(%rip),%rax # 229450 <_ZL8MOD_NAME> 15a26: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 15a2d: 49 89 c8 mov %rcx,%r8 15a30: 48 8d 0d 3f c8 00 00 lea 0xc83f(%rip),%rcx # 22276 <_fini+0x3be> 15a37: 48 89 c6 mov %rax,%rsi 15a3a: 48 8b 05 4f 25 21 00 mov 0x21254f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15a41: 48 89 c7 mov %rax,%rdi 15a44: b8 00 00 00 00 mov $0x0,%eax 15a49: e8 42 df ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> return enif_make_tuple2(env, 15a4e: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 15a55: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 15a5c: 48 89 d6 mov %rdx,%rsi 15a5f: 48 89 c7 mov %rax,%rdi 15a62: e8 b9 da ff ff callq 13520 15a67: 48 89 c3 mov %rax,%rbx 15a6a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 15a71: 48 8d 35 a0 c7 00 00 lea 0xc7a0(%rip),%rsi # 22218 <_fini+0x360> 15a78: 48 89 c7 mov %rax,%rdi 15a7b: e8 40 cd ff ff callq 127c0 15a80: 48 89 c2 mov %rax,%rdx 15a83: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 15a8a: 48 89 d9 mov %rbx,%rcx 15a8d: be 02 00 00 00 mov $0x2,%esi 15a92: 48 89 c7 mov %rax,%rdi 15a95: b8 00 00 00 00 mov $0x0,%eax 15a9a: e8 61 e1 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, id)); } 15a9f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15aa3: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 15aaa: 00 00 15aac: 74 05 je 15ab3 <_Z18x_create_with_userP18enif_environment_tiPKm+0x23e> 15aae: e8 fd dd ff ff callq 138b0 <__stack_chk_fail@plt> 15ab3: 48 81 c4 58 04 00 00 add $0x458,%rsp 15aba: 5b pop %rbx 15abb: 5d pop %rbp 15abc: c3 retq 0000000000015abd <_Z16x_conf_read_fileP18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_read_file(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 15abd: 55 push %rbp 15abe: 48 89 e5 mov %rsp,%rbp 15ac1: 48 83 ec 40 sub $0x40,%rsp 15ac5: 48 89 7d d8 mov %rdi,-0x28(%rbp) 15ac9: 89 75 d4 mov %esi,-0x2c(%rbp) 15acc: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_conf_read_file()"; 15ad0: 48 8d 05 ad c7 00 00 lea 0xc7ad(%rip),%rax # 22284 <_fini+0x3cc> 15ad7: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 15adb: 48 8b 05 6e 39 21 00 mov 0x21396e(%rip),%rax # 229450 <_ZL8MOD_NAME> 15ae2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15ae6: 48 8d 0d cc c6 00 00 lea 0xc6cc(%rip),%rcx # 221b9 <_fini+0x301> 15aed: 48 89 c6 mov %rax,%rsi 15af0: 48 8b 05 99 24 21 00 mov 0x212499(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15af7: 48 89 c7 mov %rax,%rdi 15afa: b8 00 00 00 00 mov $0x0,%eax 15aff: e8 8c de ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 15b04: 48 8b 45 c8 mov -0x38(%rbp),%rax 15b08: 48 8b 08 mov (%rax),%rcx 15b0b: 48 8d 55 e0 lea -0x20(%rbp),%rdx 15b0f: 48 8b 45 d8 mov -0x28(%rbp),%rax 15b13: 48 89 ce mov %rcx,%rsi 15b16: 48 89 c7 mov %rax,%rdi 15b19: e8 72 d4 ff ff callq 12f90 15b1e: 85 c0 test %eax,%eax 15b20: 0f 94 c0 sete %al 15b23: 84 c0 test %al,%al 15b25: 74 3a je 15b61 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 15b27: 48 8b 05 22 39 21 00 mov 0x213922(%rip),%rax # 229450 <_ZL8MOD_NAME> 15b2e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15b32: 48 8d 0d f7 c6 00 00 lea 0xc6f7(%rip),%rcx # 22230 <_fini+0x378> 15b39: 48 89 c6 mov %rax,%rsi 15b3c: 48 8b 05 4d 24 21 00 mov 0x21244d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15b43: 48 89 c7 mov %rax,%rdi 15b46: b8 00 00 00 00 mov $0x0,%eax 15b4b: e8 a0 dc ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 15b50: 48 8b 45 d8 mov -0x28(%rbp),%rax 15b54: 48 89 c7 mov %rax,%rdi 15b57: e8 44 d7 ff ff callq 132a0 15b5c: e9 06 01 00 00 jmpq 15c67 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x1aa> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 15b61: 48 8b 4d e0 mov -0x20(%rbp),%rcx 15b65: 48 8b 05 e4 38 21 00 mov 0x2138e4(%rip),%rax # 229450 <_ZL8MOD_NAME> 15b6c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15b70: 49 89 c8 mov %rcx,%r8 15b73: 48 8d 0d fc c6 00 00 lea 0xc6fc(%rip),%rcx # 22276 <_fini+0x3be> 15b7a: 48 89 c6 mov %rax,%rsi 15b7d: 48 8b 05 0c 24 21 00 mov 0x21240c(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15b84: 48 89 c7 mov %rax,%rdi 15b87: b8 00 00 00 00 mov $0x0,%eax 15b8c: e8 ff dd ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 15b91: 48 8d 45 e0 lea -0x20(%rbp),%rax 15b95: 48 89 c6 mov %rax,%rsi 15b98: 48 8b 05 19 24 21 00 mov 0x212419(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 15b9f: 48 89 c7 mov %rax,%rdi 15ba2: e8 c9 d7 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 15ba7: 48 8b 00 mov (%rax),%rax 15baa: 48 89 45 f0 mov %rax,-0x10(%rbp) if (cluster == NULL) 15bae: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 15bb3: 75 3e jne 15bf3 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x136> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 15bb5: 48 8b 4d e0 mov -0x20(%rbp),%rcx 15bb9: 48 8b 05 90 38 21 00 mov 0x213890(%rip),%rax # 229450 <_ZL8MOD_NAME> 15bc0: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15bc4: 49 89 c8 mov %rcx,%r8 15bc7: 48 8d 0d c9 c6 00 00 lea 0xc6c9(%rip),%rcx # 22297 <_fini+0x3df> 15bce: 48 89 c6 mov %rax,%rsi 15bd1: 48 8b 05 b8 23 21 00 mov 0x2123b8(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15bd8: 48 89 c7 mov %rax,%rdi 15bdb: b8 00 00 00 00 mov $0x0,%eax 15be0: e8 0b dc ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 15be5: 48 8b 45 d8 mov -0x28(%rbp),%rax 15be9: 48 89 c7 mov %rax,%rdi 15bec: e8 af d6 ff ff callq 132a0 15bf1: eb 74 jmp 15c67 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x1aa> } int err = rados_conf_read_file(cluster, NULL); 15bf3: 48 8b 45 f0 mov -0x10(%rbp),%rax 15bf7: be 00 00 00 00 mov $0x0,%esi 15bfc: 48 89 c7 mov %rax,%rdi 15bff: e8 8c db ff ff callq 13790 15c04: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 15c07: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 15c0b: 79 47 jns 15c54 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x197> { logger.error(MOD_NAME, func_name, "failed to read default config file for cluster: %ld", id); 15c0d: 48 8b 4d e0 mov -0x20(%rbp),%rcx 15c11: 48 8b 05 38 38 21 00 mov 0x213838(%rip),%rax # 229450 <_ZL8MOD_NAME> 15c18: 48 8b 55 e8 mov -0x18(%rbp),%rdx 15c1c: 49 89 c8 mov %rcx,%r8 15c1f: 48 8d 0d 92 c6 00 00 lea 0xc692(%rip),%rcx # 222b8 <_fini+0x400> 15c26: 48 89 c6 mov %rax,%rsi 15c29: 48 8b 05 60 23 21 00 mov 0x212360(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15c30: 48 89 c7 mov %rax,%rdi 15c33: b8 00 00 00 00 mov $0x0,%eax 15c38: e8 b3 db ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 15c3d: 8b 45 fc mov -0x4(%rbp),%eax 15c40: 89 c2 mov %eax,%edx 15c42: f7 da neg %edx 15c44: 48 8b 45 d8 mov -0x28(%rbp),%rax 15c48: 89 d6 mov %edx,%esi 15c4a: 48 89 c7 mov %rax,%rdi 15c4d: e8 de db ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 15c52: eb 13 jmp 15c67 <_Z16x_conf_read_fileP18enif_environment_tiPKm+0x1aa> } return enif_make_atom(env, "ok"); 15c54: 48 8b 45 d8 mov -0x28(%rbp),%rax 15c58: 48 8d 35 b9 c5 00 00 lea 0xc5b9(%rip),%rsi # 22218 <_fini+0x360> 15c5f: 48 89 c7 mov %rax,%rdi 15c62: e8 59 cb ff ff callq 127c0 } 15c67: c9 leaveq 15c68: c3 retq 0000000000015c69 <_Z17x_conf_read_file2P18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_read_file2(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 15c69: 55 push %rbp 15c6a: 48 89 e5 mov %rsp,%rbp 15c6d: 48 81 ec 50 08 00 00 sub $0x850,%rsp 15c74: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 15c7b: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 15c81: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 15c88: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 15c8f: 00 00 15c91: 48 89 45 f8 mov %rax,-0x8(%rbp) 15c95: 31 c0 xor %eax,%eax const char * func_name = "x_conf_read_file2()"; 15c97: 48 8d 05 4e c6 00 00 lea 0xc64e(%rip),%rax # 222ec <_fini+0x434> 15c9e: 48 89 85 d8 f7 ff ff mov %rax,-0x828(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 15ca5: 48 8b 05 a4 37 21 00 mov 0x2137a4(%rip),%rax # 229450 <_ZL8MOD_NAME> 15cac: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15cb3: 48 8d 0d ff c4 00 00 lea 0xc4ff(%rip),%rcx # 221b9 <_fini+0x301> 15cba: 48 89 c6 mov %rax,%rsi 15cbd: 48 8b 05 cc 22 21 00 mov 0x2122cc(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15cc4: 48 89 c7 mov %rax,%rdi 15cc7: b8 00 00 00 00 mov $0x0,%eax 15ccc: e8 bf dc ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 15cd1: 48 8b 05 b8 22 21 00 mov 0x2122b8(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15cd8: 48 89 c7 mov %rax,%rdi 15cdb: e8 20 cd ff ff callq 12a00 <_ZN4XLog5flushEv@plt> uint64_t id; char conf_file[MAX_FILE_NAME_LEN]; memset(conf_file, 0, MAX_FILE_NAME_LEN); 15ce0: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 15ce7: ba 00 08 00 00 mov $0x800,%edx 15cec: be 00 00 00 00 mov $0x0,%esi 15cf1: 48 89 c7 mov %rax,%rdi 15cf4: e8 57 c7 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 15cf9: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 15d00: 48 8b 08 mov (%rax),%rcx 15d03: 48 8d 95 d0 f7 ff ff lea -0x830(%rbp),%rdx 15d0a: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15d11: 48 89 ce mov %rcx,%rsi 15d14: 48 89 c7 mov %rax,%rdi 15d17: e8 74 d2 ff ff callq 12f90 15d1c: 85 c0 test %eax,%eax 15d1e: 74 33 je 15d53 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xea> !enif_get_string(env, argv[1], conf_file, MAX_FILE_NAME_LEN, ERL_NIF_LATIN1)) 15d20: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 15d27: 48 83 c0 08 add $0x8,%rax 15d2b: 48 8b 30 mov (%rax),%rsi 15d2e: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 15d35: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15d3c: 41 b8 01 00 00 00 mov $0x1,%r8d 15d42: b9 00 08 00 00 mov $0x800,%ecx 15d47: 48 89 c7 mov %rax,%rdi 15d4a: e8 a1 de ff ff callq 13bf0 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) || 15d4f: 85 c0 test %eax,%eax 15d51: 75 07 jne 15d5a <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xf1> 15d53: b8 01 00 00 00 mov $0x1,%eax 15d58: eb 05 jmp 15d5f <_Z17x_conf_read_file2P18enif_environment_tiPKm+0xf6> 15d5a: b8 00 00 00 00 mov $0x0,%eax 15d5f: 84 c0 test %al,%al 15d61: 74 40 je 15da3 <_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"); 15d63: 48 8b 05 e6 36 21 00 mov 0x2136e6(%rip),%rax # 229450 <_ZL8MOD_NAME> 15d6a: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15d71: 48 8d 0d b8 c4 00 00 lea 0xc4b8(%rip),%rcx # 22230 <_fini+0x378> 15d78: 48 89 c6 mov %rax,%rsi 15d7b: 48 8b 05 0e 22 21 00 mov 0x21220e(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15d82: 48 89 c7 mov %rax,%rdi 15d85: b8 00 00 00 00 mov $0x0,%eax 15d8a: e8 61 da ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 15d8f: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15d96: 48 89 c7 mov %rax,%rdi 15d99: e8 02 d5 ff ff callq 132a0 15d9e: e9 e1 01 00 00 jmpq 15f84 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x31b> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 15da3: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 15daa: 48 8b 05 9f 36 21 00 mov 0x21369f(%rip),%rax # 229450 <_ZL8MOD_NAME> 15db1: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15db8: 49 89 c8 mov %rcx,%r8 15dbb: 48 8d 0d b4 c4 00 00 lea 0xc4b4(%rip),%rcx # 22276 <_fini+0x3be> 15dc2: 48 89 c6 mov %rax,%rsi 15dc5: 48 8b 05 c4 21 21 00 mov 0x2121c4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15dcc: 48 89 c7 mov %rax,%rdi 15dcf: b8 00 00 00 00 mov $0x0,%eax 15dd4: e8 b7 db ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 15dd9: 48 8b 05 b0 21 21 00 mov 0x2121b0(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15de0: 48 89 c7 mov %rax,%rdi 15de3: e8 18 cc ff ff callq 12a00 <_ZN4XLog5flushEv@plt> rados_t cluster = map_cluster[id]; 15de8: 48 8d 85 d0 f7 ff ff lea -0x830(%rbp),%rax 15def: 48 89 c6 mov %rax,%rsi 15df2: 48 8b 05 bf 21 21 00 mov 0x2121bf(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 15df9: 48 89 c7 mov %rax,%rdi 15dfc: e8 6f d5 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 15e01: 48 8b 00 mov (%rax),%rax 15e04: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (cluster == NULL) 15e0b: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 15e12: 00 15e13: 75 4a jne 15e5f <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x1f6> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 15e15: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 15e1c: 48 8b 05 2d 36 21 00 mov 0x21362d(%rip),%rax # 229450 <_ZL8MOD_NAME> 15e23: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15e2a: 49 89 c8 mov %rcx,%r8 15e2d: 48 8d 0d 63 c4 00 00 lea 0xc463(%rip),%rcx # 22297 <_fini+0x3df> 15e34: 48 89 c6 mov %rax,%rsi 15e37: 48 8b 05 52 21 21 00 mov 0x212152(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15e3e: 48 89 c7 mov %rax,%rdi 15e41: b8 00 00 00 00 mov $0x0,%eax 15e46: e8 a5 d9 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 15e4b: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15e52: 48 89 c7 mov %rax,%rdi 15e55: e8 46 d4 ff ff callq 132a0 15e5a: e9 25 01 00 00 jmpq 15f84 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x31b> } logger.debug(MOD_NAME, func_name, "cluster found: %ld", id); 15e5f: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 15e66: 48 8b 05 e3 35 21 00 mov 0x2135e3(%rip),%rax # 229450 <_ZL8MOD_NAME> 15e6d: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15e74: 49 89 c8 mov %rcx,%r8 15e77: 48 8d 0d 82 c4 00 00 lea 0xc482(%rip),%rcx # 22300 <_fini+0x448> 15e7e: 48 89 c6 mov %rax,%rsi 15e81: 48 8b 05 08 21 21 00 mov 0x212108(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15e88: 48 89 c7 mov %rax,%rdi 15e8b: b8 00 00 00 00 mov $0x0,%eax 15e90: e8 fb da ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 15e95: 48 8b 05 f4 20 21 00 mov 0x2120f4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15e9c: 48 89 c7 mov %rax,%rdi 15e9f: e8 5c cb ff ff callq 12a00 <_ZN4XLog5flushEv@plt> int err = rados_conf_read_file(cluster, conf_file); 15ea4: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 15eab: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 15eb2: 48 89 d6 mov %rdx,%rsi 15eb5: 48 89 c7 mov %rax,%rdi 15eb8: e8 d3 d8 ff ff callq 13790 15ebd: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 15ec3: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 15eca: 79 5d jns 15f29 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x2c0> { logger.error(MOD_NAME, func_name, "failed to read default config file %s for cluster: %ld", conf_file, id); 15ecc: 48 8b b5 d0 f7 ff ff mov -0x830(%rbp),%rsi 15ed3: 48 8b 05 76 35 21 00 mov 0x213576(%rip),%rax # 229450 <_ZL8MOD_NAME> 15eda: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 15ee1: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15ee8: 49 89 f1 mov %rsi,%r9 15eeb: 49 89 c8 mov %rcx,%r8 15eee: 48 8d 0d 23 c4 00 00 lea 0xc423(%rip),%rcx # 22318 <_fini+0x460> 15ef5: 48 89 c6 mov %rax,%rsi 15ef8: 48 8b 05 91 20 21 00 mov 0x212091(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15eff: 48 89 c7 mov %rax,%rdi 15f02: b8 00 00 00 00 mov $0x0,%eax 15f07: e8 e4 d8 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 15f0c: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 15f12: 89 c2 mov %eax,%edx 15f14: f7 da neg %edx 15f16: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15f1d: 89 d6 mov %edx,%esi 15f1f: 48 89 c7 mov %rax,%rdi 15f22: e8 09 d9 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 15f27: eb 5b jmp 15f84 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x31b> } logger.debug(MOD_NAME, func_name, "config file read: %ld", id); 15f29: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 15f30: 48 8b 05 19 35 21 00 mov 0x213519(%rip),%rax # 229450 <_ZL8MOD_NAME> 15f37: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15f3e: 49 89 c8 mov %rcx,%r8 15f41: 48 8d 0d 07 c4 00 00 lea 0xc407(%rip),%rcx # 2234f <_fini+0x497> 15f48: 48 89 c6 mov %rax,%rsi 15f4b: 48 8b 05 3e 20 21 00 mov 0x21203e(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15f52: 48 89 c7 mov %rax,%rdi 15f55: b8 00 00 00 00 mov $0x0,%eax 15f5a: e8 31 da ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 15f5f: 48 8b 05 2a 20 21 00 mov 0x21202a(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15f66: 48 89 c7 mov %rax,%rdi 15f69: e8 92 ca ff ff callq 12a00 <_ZN4XLog5flushEv@plt> return enif_make_atom(env, "ok"); 15f6e: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 15f75: 48 8d 35 9c c2 00 00 lea 0xc29c(%rip),%rsi # 22218 <_fini+0x360> 15f7c: 48 89 c7 mov %rax,%rdi 15f7f: e8 3c c8 ff ff callq 127c0 } 15f84: 48 8b 55 f8 mov -0x8(%rbp),%rdx 15f88: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 15f8f: 00 00 15f91: 74 05 je 15f98 <_Z17x_conf_read_file2P18enif_environment_tiPKm+0x32f> 15f93: e8 18 d9 ff ff callq 138b0 <__stack_chk_fail@plt> 15f98: c9 leaveq 15f99: c3 retq 0000000000015f9a <_Z10x_conf_setP18enif_environment_tiPKm>: ERL_NIF_TERM x_conf_set(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 15f9a: 55 push %rbp 15f9b: 48 89 e5 mov %rsp,%rbp 15f9e: 48 81 ec 50 08 00 00 sub $0x850,%rsp 15fa5: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 15fac: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 15fb2: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 15fb9: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 15fc0: 00 00 15fc2: 48 89 45 f8 mov %rax,-0x8(%rbp) 15fc6: 31 c0 xor %eax,%eax const char * func_name = "x_conf_set()"; 15fc8: 48 8d 05 96 c3 00 00 lea 0xc396(%rip),%rax # 22365 <_fini+0x4ad> 15fcf: 48 89 85 d8 f7 ff ff mov %rax,-0x828(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 15fd6: 48 8b 05 73 34 21 00 mov 0x213473(%rip),%rax # 229450 <_ZL8MOD_NAME> 15fdd: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 15fe4: 48 8d 0d ce c1 00 00 lea 0xc1ce(%rip),%rcx # 221b9 <_fini+0x301> 15feb: 48 89 c6 mov %rax,%rsi 15fee: 48 8b 05 9b 1f 21 00 mov 0x211f9b(%rip),%rax # 227f90 <_DYNAMIC+0x240> 15ff5: 48 89 c7 mov %rax,%rdi 15ff8: b8 00 00 00 00 mov $0x0,%eax 15ffd: e8 8e d9 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; char option[MAX_NAME_LEN]; memset(option, 0, MAX_NAME_LEN); 16002: 48 8d 85 f0 f7 ff ff lea -0x810(%rbp),%rax 16009: ba 00 04 00 00 mov $0x400,%edx 1600e: be 00 00 00 00 mov $0x0,%esi 16013: 48 89 c7 mov %rax,%rdi 16016: e8 35 c4 ff ff callq 12450 char value[MAX_NAME_LEN]; memset(value, 0, MAX_NAME_LEN); 1601b: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 16022: ba 00 04 00 00 mov $0x400,%edx 16027: be 00 00 00 00 mov $0x0,%esi 1602c: 48 89 c7 mov %rax,%rdi 1602f: e8 1c c4 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 16034: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1603b: 48 8b 08 mov (%rax),%rcx 1603e: 48 8d 95 d0 f7 ff ff lea -0x830(%rbp),%rdx 16045: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1604c: 48 89 ce mov %rcx,%rsi 1604f: 48 89 c7 mov %rax,%rdi 16052: e8 39 cf ff ff callq 12f90 16057: 85 c0 test %eax,%eax 16059: 74 66 je 160c1 <_Z10x_conf_setP18enif_environment_tiPKm+0x127> !enif_get_string(env, argv[1], option, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1605b: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 16062: 48 83 c0 08 add $0x8,%rax 16066: 48 8b 30 mov (%rax),%rsi 16069: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 16070: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 16077: 41 b8 01 00 00 00 mov $0x1,%r8d 1607d: b9 00 04 00 00 mov $0x400,%ecx 16082: 48 89 c7 mov %rax,%rdi 16085: e8 66 db ff ff callq 13bf0 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) || 1608a: 85 c0 test %eax,%eax 1608c: 74 33 je 160c1 <_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)) 1608e: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 16095: 48 83 c0 08 add $0x8,%rax 16099: 48 8b 30 mov (%rax),%rsi 1609c: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 160a3: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 160aa: 41 b8 01 00 00 00 mov $0x1,%r8d 160b0: b9 00 04 00 00 mov $0x400,%ecx 160b5: 48 89 c7 mov %rax,%rdi 160b8: e8 33 db ff ff callq 13bf0 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) || 160bd: 85 c0 test %eax,%eax 160bf: 75 07 jne 160c8 <_Z10x_conf_setP18enif_environment_tiPKm+0x12e> 160c1: b8 01 00 00 00 mov $0x1,%eax 160c6: eb 05 jmp 160cd <_Z10x_conf_setP18enif_environment_tiPKm+0x133> 160c8: b8 00 00 00 00 mov $0x0,%eax 160cd: 84 c0 test %al,%al 160cf: 74 40 je 16111 <_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"); 160d1: 48 8b 05 78 33 21 00 mov 0x213378(%rip),%rax # 229450 <_ZL8MOD_NAME> 160d8: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 160df: 48 8d 0d 4a c1 00 00 lea 0xc14a(%rip),%rcx # 22230 <_fini+0x378> 160e6: 48 89 c6 mov %rax,%rsi 160e9: 48 8b 05 a0 1e 21 00 mov 0x211ea0(%rip),%rax # 227f90 <_DYNAMIC+0x240> 160f0: 48 89 c7 mov %rax,%rdi 160f3: b8 00 00 00 00 mov $0x0,%eax 160f8: e8 f3 d6 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 160fd: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 16104: 48 89 c7 mov %rax,%rdi 16107: e8 94 d1 ff ff callq 132a0 1610c: e9 0c 01 00 00 jmpq 1621d <_Z10x_conf_setP18enif_environment_tiPKm+0x283> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 16111: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 16118: 48 8b 05 31 33 21 00 mov 0x213331(%rip),%rax # 229450 <_ZL8MOD_NAME> 1611f: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 16126: 49 89 c8 mov %rcx,%r8 16129: 48 8d 0d 46 c1 00 00 lea 0xc146(%rip),%rcx # 22276 <_fini+0x3be> 16130: 48 89 c6 mov %rax,%rsi 16133: 48 8b 05 56 1e 21 00 mov 0x211e56(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1613a: 48 89 c7 mov %rax,%rdi 1613d: b8 00 00 00 00 mov $0x0,%eax 16142: e8 49 d8 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 16147: 48 8d 85 d0 f7 ff ff lea -0x830(%rbp),%rax 1614e: 48 89 c6 mov %rax,%rsi 16151: 48 8b 05 60 1e 21 00 mov 0x211e60(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 16158: 48 89 c7 mov %rax,%rdi 1615b: e8 10 d2 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 16160: 48 8b 00 mov (%rax),%rax 16163: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (cluster == NULL) 1616a: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 16171: 00 16172: 75 47 jne 161bb <_Z10x_conf_setP18enif_environment_tiPKm+0x221> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 16174: 48 8b 8d d0 f7 ff ff mov -0x830(%rbp),%rcx 1617b: 48 8b 05 ce 32 21 00 mov 0x2132ce(%rip),%rax # 229450 <_ZL8MOD_NAME> 16182: 48 8b 95 d8 f7 ff ff mov -0x828(%rbp),%rdx 16189: 49 89 c8 mov %rcx,%r8 1618c: 48 8d 0d 04 c1 00 00 lea 0xc104(%rip),%rcx # 22297 <_fini+0x3df> 16193: 48 89 c6 mov %rax,%rsi 16196: 48 8b 05 f3 1d 21 00 mov 0x211df3(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1619d: 48 89 c7 mov %rax,%rdi 161a0: b8 00 00 00 00 mov $0x0,%eax 161a5: e8 46 d6 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 161aa: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 161b1: 48 89 c7 mov %rax,%rdi 161b4: e8 e7 d0 ff ff callq 132a0 161b9: eb 62 jmp 1621d <_Z10x_conf_setP18enif_environment_tiPKm+0x283> } int err = rados_conf_set(cluster, option, value); 161bb: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 161c2: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 161c9: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 161d0: 48 89 ce mov %rcx,%rsi 161d3: 48 89 c7 mov %rax,%rdi 161d6: e8 e5 cf ff ff callq 131c0 161db: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 161e1: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 161e8: 79 1d jns 16207 <_Z10x_conf_setP18enif_environment_tiPKm+0x26d> { return make_error_tuple(env, -err); 161ea: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 161f0: 89 c2 mov %eax,%edx 161f2: f7 da neg %edx 161f4: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 161fb: 89 d6 mov %edx,%esi 161fd: 48 89 c7 mov %rax,%rdi 16200: e8 2b d6 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 16205: eb 16 jmp 1621d <_Z10x_conf_setP18enif_environment_tiPKm+0x283> } return enif_make_atom(env, "ok"); 16207: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1620e: 48 8d 35 03 c0 00 00 lea 0xc003(%rip),%rsi # 22218 <_fini+0x360> 16215: 48 89 c7 mov %rax,%rdi 16218: e8 a3 c5 ff ff callq 127c0 } 1621d: 48 8b 55 f8 mov -0x8(%rbp),%rdx 16221: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 16228: 00 00 1622a: 74 05 je 16231 <_Z10x_conf_setP18enif_environment_tiPKm+0x297> 1622c: e8 7f d6 ff ff callq 138b0 <__stack_chk_fail@plt> 16231: c9 leaveq 16232: c3 retq 0000000000016233 <_Z9x_connectP18enif_environment_tiPKm>: ERL_NIF_TERM x_connect(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 16233: 55 push %rbp 16234: 48 89 e5 mov %rsp,%rbp 16237: 48 83 ec 40 sub $0x40,%rsp 1623b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1623f: 89 75 d4 mov %esi,-0x2c(%rbp) 16242: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_connect()"; 16246: 48 8d 05 25 c1 00 00 lea 0xc125(%rip),%rax # 22372 <_fini+0x4ba> 1624d: 48 89 45 e8 mov %rax,-0x18(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 16251: 48 8b 05 f8 31 21 00 mov 0x2131f8(%rip),%rax # 229450 <_ZL8MOD_NAME> 16258: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1625c: 48 8d 0d 56 bf 00 00 lea 0xbf56(%rip),%rcx # 221b9 <_fini+0x301> 16263: 48 89 c6 mov %rax,%rsi 16266: 48 8b 05 23 1d 21 00 mov 0x211d23(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1626d: 48 89 c7 mov %rax,%rdi 16270: b8 00 00 00 00 mov $0x0,%eax 16275: e8 16 d7 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1627a: 48 8b 45 c8 mov -0x38(%rbp),%rax 1627e: 48 8b 08 mov (%rax),%rcx 16281: 48 8d 55 e0 lea -0x20(%rbp),%rdx 16285: 48 8b 45 d8 mov -0x28(%rbp),%rax 16289: 48 89 ce mov %rcx,%rsi 1628c: 48 89 c7 mov %rax,%rdi 1628f: e8 fc cc ff ff callq 12f90 16294: 85 c0 test %eax,%eax 16296: 0f 94 c0 sete %al 16299: 84 c0 test %al,%al 1629b: 74 3a je 162d7 <_Z9x_connectP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1629d: 48 8b 05 ac 31 21 00 mov 0x2131ac(%rip),%rax # 229450 <_ZL8MOD_NAME> 162a4: 48 8b 55 e8 mov -0x18(%rbp),%rdx 162a8: 48 8d 0d 81 bf 00 00 lea 0xbf81(%rip),%rcx # 22230 <_fini+0x378> 162af: 48 89 c6 mov %rax,%rsi 162b2: 48 8b 05 d7 1c 21 00 mov 0x211cd7(%rip),%rax # 227f90 <_DYNAMIC+0x240> 162b9: 48 89 c7 mov %rax,%rdi 162bc: b8 00 00 00 00 mov $0x0,%eax 162c1: e8 2a d5 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 162c6: 48 8b 45 d8 mov -0x28(%rbp),%rax 162ca: 48 89 c7 mov %rax,%rdi 162cd: e8 ce cf ff ff callq 132a0 162d2: e9 16 01 00 00 jmpq 163ed <_Z9x_connectP18enif_environment_tiPKm+0x1ba> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 162d7: 48 8b 4d e0 mov -0x20(%rbp),%rcx 162db: 48 8b 05 6e 31 21 00 mov 0x21316e(%rip),%rax # 229450 <_ZL8MOD_NAME> 162e2: 48 8b 55 e8 mov -0x18(%rbp),%rdx 162e6: 49 89 c8 mov %rcx,%r8 162e9: 48 8d 0d 86 bf 00 00 lea 0xbf86(%rip),%rcx # 22276 <_fini+0x3be> 162f0: 48 89 c6 mov %rax,%rsi 162f3: 48 8b 05 96 1c 21 00 mov 0x211c96(%rip),%rax # 227f90 <_DYNAMIC+0x240> 162fa: 48 89 c7 mov %rax,%rdi 162fd: b8 00 00 00 00 mov $0x0,%eax 16302: e8 89 d6 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 16307: 48 8d 45 e0 lea -0x20(%rbp),%rax 1630b: 48 89 c6 mov %rax,%rsi 1630e: 48 8b 05 a3 1c 21 00 mov 0x211ca3(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 16315: 48 89 c7 mov %rax,%rdi 16318: e8 53 d0 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1631d: 48 8b 00 mov (%rax),%rax 16320: 48 89 45 f0 mov %rax,-0x10(%rbp) if (cluster == NULL) 16324: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 16329: 75 41 jne 1636c <_Z9x_connectP18enif_environment_tiPKm+0x139> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 1632b: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1632f: 48 8b 05 1a 31 21 00 mov 0x21311a(%rip),%rax # 229450 <_ZL8MOD_NAME> 16336: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1633a: 49 89 c8 mov %rcx,%r8 1633d: 48 8d 0d 53 bf 00 00 lea 0xbf53(%rip),%rcx # 22297 <_fini+0x3df> 16344: 48 89 c6 mov %rax,%rsi 16347: 48 8b 05 42 1c 21 00 mov 0x211c42(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1634e: 48 89 c7 mov %rax,%rdi 16351: b8 00 00 00 00 mov $0x0,%eax 16356: e8 95 d4 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1635b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1635f: 48 89 c7 mov %rax,%rdi 16362: e8 39 cf ff ff callq 132a0 16367: e9 81 00 00 00 jmpq 163ed <_Z9x_connectP18enif_environment_tiPKm+0x1ba> } int err = rados_connect(cluster); 1636c: 48 8b 45 f0 mov -0x10(%rbp),%rax 16370: 48 89 c7 mov %rax,%rdi 16373: e8 c8 c1 ff ff callq 12540 16378: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 1637b: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1637f: 79 59 jns 163da <_Z9x_connectP18enif_environment_tiPKm+0x1a7> { logger.error(MOD_NAME, func_name, "failed to connect to cluster %ld: %s", id, strerror(-err)); 16381: 8b 45 fc mov -0x4(%rbp),%eax 16384: f7 d8 neg %eax 16386: 89 c7 mov %eax,%edi 16388: e8 b3 cf ff ff callq 13340 1638d: 48 89 c1 mov %rax,%rcx 16390: 48 8b 75 e0 mov -0x20(%rbp),%rsi 16394: 48 8b 05 b5 30 21 00 mov 0x2130b5(%rip),%rax # 229450 <_ZL8MOD_NAME> 1639b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1639f: 49 89 c9 mov %rcx,%r9 163a2: 49 89 f0 mov %rsi,%r8 163a5: 48 8d 0d d4 bf 00 00 lea 0xbfd4(%rip),%rcx # 22380 <_fini+0x4c8> 163ac: 48 89 c6 mov %rax,%rsi 163af: 48 8b 05 da 1b 21 00 mov 0x211bda(%rip),%rax # 227f90 <_DYNAMIC+0x240> 163b6: 48 89 c7 mov %rax,%rdi 163b9: b8 00 00 00 00 mov $0x0,%eax 163be: e8 2d d4 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 163c3: 8b 45 fc mov -0x4(%rbp),%eax 163c6: 89 c2 mov %eax,%edx 163c8: f7 da neg %edx 163ca: 48 8b 45 d8 mov -0x28(%rbp),%rax 163ce: 89 d6 mov %edx,%esi 163d0: 48 89 c7 mov %rax,%rdi 163d3: e8 58 d4 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 163d8: eb 13 jmp 163ed <_Z9x_connectP18enif_environment_tiPKm+0x1ba> } return enif_make_atom(env, "ok"); 163da: 48 8b 45 d8 mov -0x28(%rbp),%rax 163de: 48 8d 35 33 be 00 00 lea 0xbe33(%rip),%rsi # 22218 <_fini+0x360> 163e5: 48 89 c7 mov %rax,%rdi 163e8: e8 d3 c3 ff ff callq 127c0 } 163ed: c9 leaveq 163ee: c3 retq 00000000000163ef <_Z10x_shutdownP18enif_environment_tiPKm>: ERL_NIF_TERM x_shutdown(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 163ef: 55 push %rbp 163f0: 48 89 e5 mov %rsp,%rbp 163f3: 48 83 ec 40 sub $0x40,%rsp 163f7: 48 89 7d d8 mov %rdi,-0x28(%rbp) 163fb: 89 75 d4 mov %esi,-0x2c(%rbp) 163fe: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_shutdown()"; 16402: 48 8d 05 9c bf 00 00 lea 0xbf9c(%rip),%rax # 223a5 <_fini+0x4ed> 16409: 48 89 45 f0 mov %rax,-0x10(%rbp) logger.debug(MOD_NAME, func_name, "Entered"); 1640d: 48 8b 05 3c 30 21 00 mov 0x21303c(%rip),%rax # 229450 <_ZL8MOD_NAME> 16414: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16418: 48 8d 0d 9a bd 00 00 lea 0xbd9a(%rip),%rcx # 221b9 <_fini+0x301> 1641f: 48 89 c6 mov %rax,%rsi 16422: 48 8b 05 67 1b 21 00 mov 0x211b67(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16429: 48 89 c7 mov %rax,%rdi 1642c: b8 00 00 00 00 mov $0x0,%eax 16431: e8 5a d5 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 16436: 48 8b 45 c8 mov -0x38(%rbp),%rax 1643a: 48 8b 08 mov (%rax),%rcx 1643d: 48 8d 55 e8 lea -0x18(%rbp),%rdx 16441: 48 8b 45 d8 mov -0x28(%rbp),%rax 16445: 48 89 ce mov %rcx,%rsi 16448: 48 89 c7 mov %rax,%rdi 1644b: e8 40 cb ff ff callq 12f90 16450: 85 c0 test %eax,%eax 16452: 0f 94 c0 sete %al 16455: 84 c0 test %al,%al 16457: 74 3a je 16493 <_Z10x_shutdownP18enif_environment_tiPKm+0xa4> { logger.error(MOD_NAME, func_name, "enif get params failed"); 16459: 48 8b 05 f0 2f 21 00 mov 0x212ff0(%rip),%rax # 229450 <_ZL8MOD_NAME> 16460: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16464: 48 8d 0d c5 bd 00 00 lea 0xbdc5(%rip),%rcx # 22230 <_fini+0x378> 1646b: 48 89 c6 mov %rax,%rsi 1646e: 48 8b 05 1b 1b 21 00 mov 0x211b1b(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16475: 48 89 c7 mov %rax,%rdi 16478: b8 00 00 00 00 mov $0x0,%eax 1647d: e8 6e d3 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 16482: 48 8b 45 d8 mov -0x28(%rbp),%rax 16486: 48 89 c7 mov %rax,%rdi 16489: e8 12 ce ff ff callq 132a0 1648e: e9 96 01 00 00 jmpq 16629 <_Z10x_shutdownP18enif_environment_tiPKm+0x23a> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 16493: 48 8b 4d e8 mov -0x18(%rbp),%rcx 16497: 48 8b 05 b2 2f 21 00 mov 0x212fb2(%rip),%rax # 229450 <_ZL8MOD_NAME> 1649e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 164a2: 49 89 c8 mov %rcx,%r8 164a5: 48 8d 0d ca bd 00 00 lea 0xbdca(%rip),%rcx # 22276 <_fini+0x3be> 164ac: 48 89 c6 mov %rax,%rsi 164af: 48 8b 05 da 1a 21 00 mov 0x211ada(%rip),%rax # 227f90 <_DYNAMIC+0x240> 164b6: 48 89 c7 mov %rax,%rdi 164b9: b8 00 00 00 00 mov $0x0,%eax 164be: e8 cd d4 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 164c3: 48 8b 05 c6 1a 21 00 mov 0x211ac6(%rip),%rax # 227f90 <_DYNAMIC+0x240> 164ca: 48 89 c7 mov %rax,%rdi 164cd: e8 2e c5 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> rados_t cluster = map_cluster[id]; 164d2: 48 8d 45 e8 lea -0x18(%rbp),%rax 164d6: 48 89 c6 mov %rax,%rsi 164d9: 48 8b 05 d8 1a 21 00 mov 0x211ad8(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 164e0: 48 89 c7 mov %rax,%rdi 164e3: e8 88 ce ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 164e8: 48 8b 00 mov (%rax),%rax 164eb: 48 89 45 f8 mov %rax,-0x8(%rbp) if (cluster == NULL) 164ef: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 164f4: 75 41 jne 16537 <_Z10x_shutdownP18enif_environment_tiPKm+0x148> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 164f6: 48 8b 4d e8 mov -0x18(%rbp),%rcx 164fa: 48 8b 05 4f 2f 21 00 mov 0x212f4f(%rip),%rax # 229450 <_ZL8MOD_NAME> 16501: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16505: 49 89 c8 mov %rcx,%r8 16508: 48 8d 0d 88 bd 00 00 lea 0xbd88(%rip),%rcx # 22297 <_fini+0x3df> 1650f: 48 89 c6 mov %rax,%rsi 16512: 48 8b 05 77 1a 21 00 mov 0x211a77(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16519: 48 89 c7 mov %rax,%rdi 1651c: b8 00 00 00 00 mov $0x0,%eax 16521: e8 ca d2 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 16526: 48 8b 45 d8 mov -0x28(%rbp),%rax 1652a: 48 89 c7 mov %rax,%rdi 1652d: e8 6e cd ff ff callq 132a0 16532: e9 f2 00 00 00 jmpq 16629 <_Z10x_shutdownP18enif_environment_tiPKm+0x23a> } logger.debug(MOD_NAME, func_name, "found cluster: %ld", id); 16537: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1653b: 48 8b 05 0e 2f 21 00 mov 0x212f0e(%rip),%rax # 229450 <_ZL8MOD_NAME> 16542: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16546: 49 89 c8 mov %rcx,%r8 16549: 48 8d 0d 62 be 00 00 lea 0xbe62(%rip),%rcx # 223b2 <_fini+0x4fa> 16550: 48 89 c6 mov %rax,%rsi 16553: 48 8b 05 36 1a 21 00 mov 0x211a36(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1655a: 48 89 c7 mov %rax,%rdi 1655d: b8 00 00 00 00 mov $0x0,%eax 16562: e8 29 d4 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 16567: 48 8b 05 22 1a 21 00 mov 0x211a22(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1656e: 48 89 c7 mov %rax,%rdi 16571: e8 8a c4 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> rados_shutdown(cluster); 16576: 48 8b 45 f8 mov -0x8(%rbp),%rax 1657a: 48 89 c7 mov %rax,%rdi 1657d: e8 2e c8 ff ff callq 12db0 logger.debug(MOD_NAME, func_name, "cluster shutdown: %ld", id); 16582: 48 8b 4d e8 mov -0x18(%rbp),%rcx 16586: 48 8b 05 c3 2e 21 00 mov 0x212ec3(%rip),%rax # 229450 <_ZL8MOD_NAME> 1658d: 48 8b 55 f0 mov -0x10(%rbp),%rdx 16591: 49 89 c8 mov %rcx,%r8 16594: 48 8d 0d 2a be 00 00 lea 0xbe2a(%rip),%rcx # 223c5 <_fini+0x50d> 1659b: 48 89 c6 mov %rax,%rsi 1659e: 48 8b 05 eb 19 21 00 mov 0x2119eb(%rip),%rax # 227f90 <_DYNAMIC+0x240> 165a5: 48 89 c7 mov %rax,%rdi 165a8: b8 00 00 00 00 mov $0x0,%eax 165ad: e8 de d3 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 165b2: 48 8b 05 d7 19 21 00 mov 0x2119d7(%rip),%rax # 227f90 <_DYNAMIC+0x240> 165b9: 48 89 c7 mov %rax,%rdi 165bc: e8 3f c4 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> map_cluster.erase(id); 165c1: 48 8d 45 e8 lea -0x18(%rbp),%rax 165c5: 48 89 c6 mov %rax,%rsi 165c8: 48 8b 05 e9 19 21 00 mov 0x2119e9(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 165cf: 48 89 c7 mov %rax,%rdi 165d2: e8 69 d0 ff ff callq 13640 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> logger.debug(MOD_NAME, func_name, "cluster erased: %ld", id); 165d7: 48 8b 4d e8 mov -0x18(%rbp),%rcx 165db: 48 8b 05 6e 2e 21 00 mov 0x212e6e(%rip),%rax # 229450 <_ZL8MOD_NAME> 165e2: 48 8b 55 f0 mov -0x10(%rbp),%rdx 165e6: 49 89 c8 mov %rcx,%r8 165e9: 48 8d 0d eb bd 00 00 lea 0xbdeb(%rip),%rcx # 223db <_fini+0x523> 165f0: 48 89 c6 mov %rax,%rsi 165f3: 48 8b 05 96 19 21 00 mov 0x211996(%rip),%rax # 227f90 <_DYNAMIC+0x240> 165fa: 48 89 c7 mov %rax,%rdi 165fd: b8 00 00 00 00 mov $0x0,%eax 16602: e8 89 d3 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> logger.flush(); 16607: 48 8b 05 82 19 21 00 mov 0x211982(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1660e: 48 89 c7 mov %rax,%rdi 16611: e8 ea c3 ff ff callq 12a00 <_ZN4XLog5flushEv@plt> return enif_make_atom(env, "ok"); 16616: 48 8b 45 d8 mov -0x28(%rbp),%rax 1661a: 48 8d 35 f7 bb 00 00 lea 0xbbf7(%rip),%rsi # 22218 <_fini+0x360> 16621: 48 89 c7 mov %rax,%rdi 16624: e8 97 c1 ff ff callq 127c0 } 16629: c9 leaveq 1662a: c3 retq 000000000001662b <_Z17x_get_instance_idP18enif_environment_tiPKm>: ERL_NIF_TERM x_get_instance_id(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1662b: 55 push %rbp 1662c: 48 89 e5 mov %rsp,%rbp 1662f: 53 push %rbx 16630: 48 83 ec 48 sub $0x48,%rsp 16634: 48 89 7d c8 mov %rdi,-0x38(%rbp) 16638: 89 75 c4 mov %esi,-0x3c(%rbp) 1663b: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_get_instance_id()"; 1663f: 48 8d 05 a9 bd 00 00 lea 0xbda9(%rip),%rax # 223ef <_fini+0x537> 16646: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1664a: 48 8b 45 b8 mov -0x48(%rbp),%rax 1664e: 48 8b 08 mov (%rax),%rcx 16651: 48 8d 55 d0 lea -0x30(%rbp),%rdx 16655: 48 8b 45 c8 mov -0x38(%rbp),%rax 16659: 48 89 ce mov %rcx,%rsi 1665c: 48 89 c7 mov %rax,%rdi 1665f: e8 2c c9 ff ff callq 12f90 16664: 85 c0 test %eax,%eax 16666: 0f 94 c0 sete %al 16669: 84 c0 test %al,%al 1666b: 74 3a je 166a7 <_Z17x_get_instance_idP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1666d: 48 8b 05 dc 2d 21 00 mov 0x212ddc(%rip),%rax # 229450 <_ZL8MOD_NAME> 16674: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16678: 48 8d 0d b1 bb 00 00 lea 0xbbb1(%rip),%rcx # 22230 <_fini+0x378> 1667f: 48 89 c6 mov %rax,%rsi 16682: 48 8b 05 07 19 21 00 mov 0x211907(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16689: 48 89 c7 mov %rax,%rdi 1668c: b8 00 00 00 00 mov $0x0,%eax 16691: e8 5a d1 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 16696: 48 8b 45 c8 mov -0x38(%rbp),%rax 1669a: 48 89 c7 mov %rax,%rdi 1669d: e8 fe cb ff ff callq 132a0 166a2: e9 e7 00 00 00 jmpq 1678e <_Z17x_get_instance_idP18enif_environment_tiPKm+0x163> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 166a7: 48 8b 4d d0 mov -0x30(%rbp),%rcx 166ab: 48 8b 05 9e 2d 21 00 mov 0x212d9e(%rip),%rax # 229450 <_ZL8MOD_NAME> 166b2: 48 8b 55 d8 mov -0x28(%rbp),%rdx 166b6: 49 89 c8 mov %rcx,%r8 166b9: 48 8d 0d b6 bb 00 00 lea 0xbbb6(%rip),%rcx # 22276 <_fini+0x3be> 166c0: 48 89 c6 mov %rax,%rsi 166c3: 48 8b 05 c6 18 21 00 mov 0x2118c6(%rip),%rax # 227f90 <_DYNAMIC+0x240> 166ca: 48 89 c7 mov %rax,%rdi 166cd: b8 00 00 00 00 mov $0x0,%eax 166d2: e8 b9 d2 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 166d7: 48 8d 45 d0 lea -0x30(%rbp),%rax 166db: 48 89 c6 mov %rax,%rsi 166de: 48 8b 05 d3 18 21 00 mov 0x2118d3(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 166e5: 48 89 c7 mov %rax,%rdi 166e8: e8 83 cc ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 166ed: 48 8b 00 mov (%rax),%rax 166f0: 48 89 45 e0 mov %rax,-0x20(%rbp) if (cluster == NULL) 166f4: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 166f9: 75 3e jne 16739 <_Z17x_get_instance_idP18enif_environment_tiPKm+0x10e> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 166fb: 48 8b 4d d0 mov -0x30(%rbp),%rcx 166ff: 48 8b 05 4a 2d 21 00 mov 0x212d4a(%rip),%rax # 229450 <_ZL8MOD_NAME> 16706: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1670a: 49 89 c8 mov %rcx,%r8 1670d: 48 8d 0d 83 bb 00 00 lea 0xbb83(%rip),%rcx # 22297 <_fini+0x3df> 16714: 48 89 c6 mov %rax,%rsi 16717: 48 8b 05 72 18 21 00 mov 0x211872(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1671e: 48 89 c7 mov %rax,%rdi 16721: b8 00 00 00 00 mov $0x0,%eax 16726: e8 c5 d0 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1672b: 48 8b 45 c8 mov -0x38(%rbp),%rax 1672f: 48 89 c7 mov %rax,%rdi 16732: e8 69 cb ff ff callq 132a0 16737: eb 55 jmp 1678e <_Z17x_get_instance_idP18enif_environment_tiPKm+0x163> } uint64_t inst_id = rados_get_instance_id(cluster); 16739: 48 8b 45 e0 mov -0x20(%rbp),%rax 1673d: 48 89 c7 mov %rax,%rdi 16740: e8 ab cd ff ff callq 134f0 16745: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 16749: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1674d: 48 8b 45 c8 mov -0x38(%rbp),%rax 16751: 48 89 d6 mov %rdx,%rsi 16754: 48 89 c7 mov %rax,%rdi 16757: e8 c4 cd ff ff callq 13520 1675c: 48 89 c3 mov %rax,%rbx 1675f: 48 8b 45 c8 mov -0x38(%rbp),%rax 16763: 48 8d 35 ae ba 00 00 lea 0xbaae(%rip),%rsi # 22218 <_fini+0x360> 1676a: 48 89 c7 mov %rax,%rdi 1676d: e8 4e c0 ff ff callq 127c0 16772: 48 89 c2 mov %rax,%rdx 16775: 48 8b 45 c8 mov -0x38(%rbp),%rax 16779: 48 89 d9 mov %rbx,%rcx 1677c: be 02 00 00 00 mov $0x2,%esi 16781: 48 89 c7 mov %rax,%rdi 16784: b8 00 00 00 00 mov $0x0,%eax 16789: e8 72 d4 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, inst_id)); } 1678e: 48 83 c4 48 add $0x48,%rsp 16792: 5b pop %rbx 16793: 5d pop %rbp 16794: c3 retq 0000000000016795 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci>: void scan_pool_name_list(list *pool_list, char * buf, int buf_len) { 16795: 55 push %rbp 16796: 48 89 e5 mov %rsp,%rbp 16799: 48 83 ec 30 sub $0x30,%rsp 1679d: 48 89 7d e8 mov %rdi,-0x18(%rbp) 167a1: 48 89 75 e0 mov %rsi,-0x20(%rbp) 167a5: 89 55 dc mov %edx,-0x24(%rbp) int done = 0; 167a8: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) int curr = 0; 167af: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) while (!done) 167b6: eb 79 jmp 16831 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x9c> { if ((buf[curr] == 0) && (buf[curr+1] == 0)) 167b8: 8b 45 f8 mov -0x8(%rbp),%eax 167bb: 48 98 cltq 167bd: 48 03 45 e0 add -0x20(%rbp),%rax 167c1: 0f b6 00 movzbl (%rax),%eax 167c4: 84 c0 test %al,%al 167c6: 75 1d jne 167e5 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x50> 167c8: 8b 45 f8 mov -0x8(%rbp),%eax 167cb: 48 98 cltq 167cd: 48 83 c0 01 add $0x1,%rax 167d1: 48 03 45 e0 add -0x20(%rbp),%rax 167d5: 0f b6 00 movzbl (%rax),%eax 167d8: 84 c0 test %al,%al 167da: 75 09 jne 167e5 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x50> done = 1; 167dc: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) 167e3: eb 4c jmp 16831 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x9c> else { if (buf[curr] == 0) 167e5: 8b 45 f8 mov -0x8(%rbp),%eax 167e8: 48 98 cltq 167ea: 48 03 45 e0 add -0x20(%rbp),%rax 167ee: 0f b6 00 movzbl (%rax),%eax 167f1: 84 c0 test %al,%al 167f3: 75 09 jne 167fe <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x69> curr++; 167f5: 8b 45 f8 mov -0x8(%rbp),%eax 167f8: 83 c0 01 add $0x1,%eax 167fb: 89 45 f8 mov %eax,-0x8(%rbp) pool_list->push_back(curr); 167fe: 48 8d 55 f8 lea -0x8(%rbp),%rdx 16802: 48 8b 45 e8 mov -0x18(%rbp),%rax 16806: 48 89 d6 mov %rdx,%rsi 16809: 48 89 c7 mov %rax,%rdi 1680c: e8 4f cc ff ff callq 13460 <_ZNSt4listIiSaIiEE9push_backERKi@plt> while (buf[curr] != 0) 16811: eb 09 jmp 1681c <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x87> { curr++; 16813: 8b 45 f8 mov -0x8(%rbp),%eax 16816: 83 c0 01 add $0x1,%eax 16819: 89 45 f8 mov %eax,-0x8(%rbp) if (buf[curr] == 0) curr++; pool_list->push_back(curr); while (buf[curr] != 0) 1681c: 8b 45 f8 mov -0x8(%rbp),%eax 1681f: 48 98 cltq 16821: 48 03 45 e0 add -0x20(%rbp),%rax 16825: 0f b6 00 movzbl (%rax),%eax 16828: 84 c0 test %al,%al 1682a: 0f 95 c0 setne %al 1682d: 84 c0 test %al,%al 1682f: 75 e2 jne 16813 <_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) 16831: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 16835: 0f 94 c0 sete %al 16838: 84 c0 test %al,%al 1683a: 0f 85 78 ff ff ff jne 167b8 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci+0x23> { curr++; } } } } 16840: c9 leaveq 16841: c3 retq 0000000000016842 <_Z11x_pool_listP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_list(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 16842: 55 push %rbp 16843: 48 89 e5 mov %rsp,%rbp 16846: 53 push %rbx 16847: 48 81 ec c8 00 00 00 sub $0xc8,%rsp 1684e: 48 89 bd 48 ff ff ff mov %rdi,-0xb8(%rbp) 16855: 89 b5 44 ff ff ff mov %esi,-0xbc(%rbp) 1685b: 48 89 95 38 ff ff ff mov %rdx,-0xc8(%rbp) const char * func_name = "x_pool_list()"; 16862: 48 8d 05 9a bb 00 00 lea 0xbb9a(%rip),%rax # 22403 <_fini+0x54b> 16869: 48 89 45 c0 mov %rax,-0x40(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1686d: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax 16874: 48 8b 08 mov (%rax),%rcx 16877: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1687b: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16882: 48 89 ce mov %rcx,%rsi 16885: 48 89 c7 mov %rax,%rdi 16888: e8 03 c7 ff ff callq 12f90 1688d: 85 c0 test %eax,%eax 1688f: 0f 94 c0 sete %al 16892: 84 c0 test %al,%al 16894: 74 40 je 168d6 <_Z11x_pool_listP18enif_environment_tiPKm+0x94> { logger.error(MOD_NAME, func_name, "enif get params failed"); 16896: 48 8b 05 b3 2b 21 00 mov 0x212bb3(%rip),%rax # 229450 <_ZL8MOD_NAME> 1689d: 48 8b 55 c0 mov -0x40(%rbp),%rdx 168a1: 48 8d 0d 88 b9 00 00 lea 0xb988(%rip),%rcx # 22230 <_fini+0x378> 168a8: 48 89 c6 mov %rax,%rsi 168ab: 48 8b 05 de 16 21 00 mov 0x2116de(%rip),%rax # 227f90 <_DYNAMIC+0x240> 168b2: 48 89 c7 mov %rax,%rdi 168b5: b8 00 00 00 00 mov $0x0,%eax 168ba: e8 31 cf ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 168bf: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 168c6: 48 89 c7 mov %rax,%rdi 168c9: e8 d2 c9 ff ff callq 132a0 168ce: 48 89 c3 mov %rax,%rbx 168d1: e9 ba 03 00 00 jmpq 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 168d6: 48 8b 4d b0 mov -0x50(%rbp),%rcx 168da: 48 8b 05 6f 2b 21 00 mov 0x212b6f(%rip),%rax # 229450 <_ZL8MOD_NAME> 168e1: 48 8b 55 c0 mov -0x40(%rbp),%rdx 168e5: 49 89 c8 mov %rcx,%r8 168e8: 48 8d 0d 87 b9 00 00 lea 0xb987(%rip),%rcx # 22276 <_fini+0x3be> 168ef: 48 89 c6 mov %rax,%rsi 168f2: 48 8b 05 97 16 21 00 mov 0x211697(%rip),%rax # 227f90 <_DYNAMIC+0x240> 168f9: 48 89 c7 mov %rax,%rdi 168fc: b8 00 00 00 00 mov $0x0,%eax 16901: e8 8a d0 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 16906: 48 8d 45 b0 lea -0x50(%rbp),%rax 1690a: 48 89 c6 mov %rax,%rsi 1690d: 48 8b 05 a4 16 21 00 mov 0x2116a4(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 16914: 48 89 c7 mov %rax,%rdi 16917: e8 54 ca ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1691c: 48 8b 00 mov (%rax),%rax 1691f: 48 89 45 c8 mov %rax,-0x38(%rbp) if (cluster == NULL) 16923: 48 83 7d c8 00 cmpq $0x0,-0x38(%rbp) 16928: 75 47 jne 16971 <_Z11x_pool_listP18enif_environment_tiPKm+0x12f> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 1692a: 48 8b 4d b0 mov -0x50(%rbp),%rcx 1692e: 48 8b 05 1b 2b 21 00 mov 0x212b1b(%rip),%rax # 229450 <_ZL8MOD_NAME> 16935: 48 8b 55 c0 mov -0x40(%rbp),%rdx 16939: 49 89 c8 mov %rcx,%r8 1693c: 48 8d 0d 54 b9 00 00 lea 0xb954(%rip),%rcx # 22297 <_fini+0x3df> 16943: 48 89 c6 mov %rax,%rsi 16946: 48 8b 05 43 16 21 00 mov 0x211643(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1694d: 48 89 c7 mov %rax,%rdi 16950: b8 00 00 00 00 mov $0x0,%eax 16955: e8 96 ce ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1695a: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16961: 48 89 c7 mov %rax,%rdi 16964: e8 37 c9 ff ff callq 132a0 16969: 48 89 c3 mov %rax,%rbx 1696c: e9 1f 03 00 00 jmpq 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } // Call with a null buffer to get the buffer length first. int buf_len = rados_pool_list(cluster, NULL, 0); 16971: 48 8b 45 c8 mov -0x38(%rbp),%rax 16975: ba 00 00 00 00 mov $0x0,%edx 1697a: be 00 00 00 00 mov $0x0,%esi 1697f: 48 89 c7 mov %rax,%rdi 16982: e8 89 d0 ff ff callq 13a10 16987: 89 45 e4 mov %eax,-0x1c(%rbp) if (buf_len < 0) 1698a: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 1698e: 79 20 jns 169b0 <_Z11x_pool_listP18enif_environment_tiPKm+0x16e> { return make_error_tuple(env, -buf_len); 16990: 8b 45 e4 mov -0x1c(%rbp),%eax 16993: 89 c2 mov %eax,%edx 16995: f7 da neg %edx 16997: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 1699e: 89 d6 mov %edx,%esi 169a0: 48 89 c7 mov %rax,%rdi 169a3: e8 88 ce ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 169a8: 48 89 c3 mov %rax,%rbx 169ab: e9 e0 02 00 00 jmpq 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } if (buf_len > 0) 169b0: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) 169b4: 0f 8e 82 02 00 00 jle 16c3c <_Z11x_pool_listP18enif_environment_tiPKm+0x3fa> { char * buf = (char *)malloc(buf_len + 10); 169ba: 8b 45 e4 mov -0x1c(%rbp),%eax 169bd: 83 c0 0a add $0xa,%eax 169c0: 48 98 cltq 169c2: 48 89 c7 mov %rax,%rdi 169c5: e8 d6 bf ff ff callq 129a0 169ca: 48 89 45 d0 mov %rax,-0x30(%rbp) if (buf == NULL) 169ce: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 169d3: 75 4c jne 16a21 <_Z11x_pool_listP18enif_environment_tiPKm+0x1df> { logger.error(MOD_NAME, func_name, "unable to malloc: %ld", id); 169d5: 48 8b 4d b0 mov -0x50(%rbp),%rcx 169d9: 48 8b 05 70 2a 21 00 mov 0x212a70(%rip),%rax # 229450 <_ZL8MOD_NAME> 169e0: 48 8b 55 c0 mov -0x40(%rbp),%rdx 169e4: 49 89 c8 mov %rcx,%r8 169e7: 48 8d 0d 23 ba 00 00 lea 0xba23(%rip),%rcx # 22411 <_fini+0x559> 169ee: 48 89 c6 mov %rax,%rsi 169f1: 48 8b 05 98 15 21 00 mov 0x211598(%rip),%rax # 227f90 <_DYNAMIC+0x240> 169f8: 48 89 c7 mov %rax,%rdi 169fb: b8 00 00 00 00 mov $0x0,%eax 16a00: e8 eb cd ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, ENOMEM); 16a05: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16a0c: be 0c 00 00 00 mov $0xc,%esi 16a11: 48 89 c7 mov %rax,%rdi 16a14: e8 17 ce ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 16a19: 48 89 c3 mov %rax,%rbx 16a1c: e9 6f 02 00 00 jmpq 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } int buf_len2 = rados_pool_list(cluster, buf, buf_len + 10); 16a21: 8b 45 e4 mov -0x1c(%rbp),%eax 16a24: 83 c0 0a add $0xa,%eax 16a27: 48 63 d0 movslq %eax,%rdx 16a2a: 48 8b 4d d0 mov -0x30(%rbp),%rcx 16a2e: 48 8b 45 c8 mov -0x38(%rbp),%rax 16a32: 48 89 ce mov %rcx,%rsi 16a35: 48 89 c7 mov %rax,%rdi 16a38: e8 d3 cf ff ff callq 13a10 16a3d: 89 45 e8 mov %eax,-0x18(%rbp) if (buf_len2 < 0) 16a40: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) 16a44: 79 62 jns 16aa8 <_Z11x_pool_listP18enif_environment_tiPKm+0x266> { logger.error(MOD_NAME, func_name, "failed to get pool list for %ld: %s", id, strerror(-buf_len2)); 16a46: 8b 45 e8 mov -0x18(%rbp),%eax 16a49: f7 d8 neg %eax 16a4b: 89 c7 mov %eax,%edi 16a4d: e8 ee c8 ff ff callq 13340 16a52: 48 89 c1 mov %rax,%rcx 16a55: 48 8b 75 b0 mov -0x50(%rbp),%rsi 16a59: 48 8b 05 f0 29 21 00 mov 0x2129f0(%rip),%rax # 229450 <_ZL8MOD_NAME> 16a60: 48 8b 55 c0 mov -0x40(%rbp),%rdx 16a64: 49 89 c9 mov %rcx,%r9 16a67: 49 89 f0 mov %rsi,%r8 16a6a: 48 8d 0d b7 b9 00 00 lea 0xb9b7(%rip),%rcx # 22428 <_fini+0x570> 16a71: 48 89 c6 mov %rax,%rsi 16a74: 48 8b 05 15 15 21 00 mov 0x211515(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16a7b: 48 89 c7 mov %rax,%rdi 16a7e: b8 00 00 00 00 mov $0x0,%eax 16a83: e8 68 cd ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -buf_len2); 16a88: 8b 45 e8 mov -0x18(%rbp),%eax 16a8b: 89 c2 mov %eax,%edx 16a8d: f7 da neg %edx 16a8f: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16a96: 89 d6 mov %edx,%esi 16a98: 48 89 c7 mov %rax,%rdi 16a9b: e8 90 cd ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 16aa0: 48 89 c3 mov %rax,%rbx 16aa3: e9 e8 01 00 00 jmpq 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } list pool_list; 16aa8: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16aaf: 48 89 c7 mov %rax,%rdi 16ab2: e8 69 ba ff ff callq 12520 <_ZNSt4listIiSaIiEEC1Ev@plt> scan_pool_name_list(&pool_list, buf, buf_len); 16ab7: 8b 55 e4 mov -0x1c(%rbp),%edx 16aba: 48 8b 4d d0 mov -0x30(%rbp),%rcx 16abe: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16ac5: 48 89 ce mov %rcx,%rsi 16ac8: 48 89 c7 mov %rax,%rdi 16acb: e8 50 c0 ff ff callq 12b20 <_Z19scan_pool_name_listPSt4listIiSaIiEEPci@plt> list::const_iterator it; 16ad0: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 16ad7: 48 89 c7 mov %rax,%rdi 16ada: e8 a1 c6 ff ff callq 13180 <_ZNSt20_List_const_iteratorIiEC1Ev@plt> ERL_NIF_TERM term_list = enif_make_list(env, 0); 16adf: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16ae6: be 00 00 00 00 mov $0x0,%esi 16aeb: 48 89 c7 mov %rax,%rdi 16aee: b8 00 00 00 00 mov $0x0,%eax 16af3: e8 08 ca ff ff callq 13500 16af8: 48 89 45 b8 mov %rax,-0x48(%rbp) for (it = pool_list.begin(); it != pool_list.end(); it++) 16afc: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16b03: 48 89 c7 mov %rax,%rdi 16b06: e8 15 b9 ff ff callq 12420 <_ZNSt4listIiSaIiEE5beginEv@plt> 16b0b: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) 16b12: 48 8d 95 70 ff ff ff lea -0x90(%rbp),%rdx 16b19: 48 8d 45 80 lea -0x80(%rbp),%rax 16b1d: 48 89 d6 mov %rdx,%rsi 16b20: 48 89 c7 mov %rax,%rdi 16b23: e8 18 cf ff ff callq 13a40 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt> 16b28: 48 8b 45 80 mov -0x80(%rbp),%rax 16b2c: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) 16b33: eb 6d jmp 16ba2 <_Z11x_pool_listP18enif_environment_tiPKm+0x360> { int off = *it; 16b35: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 16b3c: 48 89 c7 mov %rax,%rdi 16b3f: e8 ec c8 ff ff callq 13430 <_ZNKSt20_List_const_iteratorIiEdeEv@plt> 16b44: 8b 00 mov (%rax),%eax 16b46: 89 45 ec mov %eax,-0x14(%rbp) ERL_NIF_TERM head = enif_make_string(env, buf + off, ERL_NIF_LATIN1); 16b49: 8b 45 ec mov -0x14(%rbp),%eax 16b4c: 48 98 cltq 16b4e: 48 89 c1 mov %rax,%rcx 16b51: 48 03 4d d0 add -0x30(%rbp),%rcx 16b55: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16b5c: ba 01 00 00 00 mov $0x1,%edx 16b61: 48 89 ce mov %rcx,%rsi 16b64: 48 89 c7 mov %rax,%rdi 16b67: e8 c4 c6 ff ff callq 13230 16b6c: 48 89 45 d8 mov %rax,-0x28(%rbp) term_list = enif_make_list_cell(env, head, term_list); 16b70: 48 8b 55 b8 mov -0x48(%rbp),%rdx 16b74: 48 8b 4d d8 mov -0x28(%rbp),%rcx 16b78: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16b7f: 48 89 ce mov %rcx,%rsi 16b82: 48 89 c7 mov %rax,%rdi 16b85: e8 e6 c3 ff ff callq 12f70 16b8a: 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++) 16b8e: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 16b95: be 00 00 00 00 mov $0x0,%esi 16b9a: 48 89 c7 mov %rax,%rdi 16b9d: e8 ce c5 ff ff callq 13170 <_ZNSt20_List_const_iteratorIiEppEi@plt> 16ba2: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16ba9: 48 89 c7 mov %rax,%rdi 16bac: e8 8f ba ff ff callq 12640 <_ZNSt4listIiSaIiEE3endEv@plt> 16bb1: 48 89 45 90 mov %rax,-0x70(%rbp) 16bb5: 48 8d 55 90 lea -0x70(%rbp),%rdx 16bb9: 48 8d 45 a0 lea -0x60(%rbp),%rax 16bbd: 48 89 d6 mov %rdx,%rsi 16bc0: 48 89 c7 mov %rax,%rdi 16bc3: e8 78 ce ff ff callq 13a40 <_ZNSt20_List_const_iteratorIiEC1ERKSt14_List_iteratorIiE@plt> 16bc8: 48 8d 55 a0 lea -0x60(%rbp),%rdx 16bcc: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 16bd3: 48 89 d6 mov %rdx,%rsi 16bd6: 48 89 c7 mov %rax,%rdi 16bd9: e8 32 c6 ff ff callq 13210 <_ZNKSt20_List_const_iteratorIiEneERKS0_@plt> 16bde: 84 c0 test %al,%al 16be0: 0f 85 4f ff ff ff jne 16b35 <_Z11x_pool_listP18enif_environment_tiPKm+0x2f3> 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); 16be6: 48 8b 45 d0 mov -0x30(%rbp),%rax 16bea: 48 89 c7 mov %rax,%rdi 16bed: e8 ce c2 ff ff callq 12ec0 return enif_make_tuple2(env, 16bf2: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16bf9: 48 8d 35 18 b6 00 00 lea 0xb618(%rip),%rsi # 22218 <_fini+0x360> 16c00: 48 89 c7 mov %rax,%rdi 16c03: e8 b8 bb ff ff callq 127c0 16c08: 48 89 c2 mov %rax,%rdx 16c0b: 48 8b 4d b8 mov -0x48(%rbp),%rcx 16c0f: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16c16: be 02 00 00 00 mov $0x2,%esi 16c1b: 48 89 c7 mov %rax,%rdi 16c1e: b8 00 00 00 00 mov $0x0,%eax 16c23: e8 d8 cf ff ff callq 13c00 16c28: 48 89 c3 mov %rax,%rbx enif_make_atom(env, "ok"), term_list); 16c2b: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16c32: 48 89 c7 mov %rax,%rdi 16c35: e8 16 cd ff ff callq 13950 <_ZNSt4listIiSaIiEED1Ev@plt> 16c3a: eb 54 jmp 16c90 <_Z11x_pool_listP18enif_environment_tiPKm+0x44e> } else { return enif_make_tuple2(env, 16c3c: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16c43: be 00 00 00 00 mov $0x0,%esi 16c48: 48 89 c7 mov %rax,%rdi 16c4b: b8 00 00 00 00 mov $0x0,%eax 16c50: e8 ab c8 ff ff callq 13500 16c55: 48 89 c3 mov %rax,%rbx 16c58: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16c5f: 48 8d 35 b2 b5 00 00 lea 0xb5b2(%rip),%rsi # 22218 <_fini+0x360> 16c66: 48 89 c7 mov %rax,%rdi 16c69: e8 52 bb ff ff callq 127c0 16c6e: 48 89 c2 mov %rax,%rdx 16c71: 48 8b 85 48 ff ff ff mov -0xb8(%rbp),%rax 16c78: 48 89 d9 mov %rbx,%rcx 16c7b: be 02 00 00 00 mov $0x2,%esi 16c80: 48 89 c7 mov %rax,%rdi 16c83: b8 00 00 00 00 mov $0x0,%eax 16c88: e8 73 cf ff ff callq 13c00 16c8d: 48 89 c3 mov %rax,%rbx 16c90: 48 89 d8 mov %rbx,%rax enif_make_atom(env, "ok"), enif_make_list(env, 0)); // empty list } } 16c93: 48 81 c4 c8 00 00 00 add $0xc8,%rsp 16c9a: 5b pop %rbx 16c9b: 5d pop %rbp 16c9c: c3 retq 16c9d: 48 89 c3 mov %rax,%rbx free(buf); return enif_make_tuple2(env, enif_make_atom(env, "ok"), term_list); 16ca0: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 16ca7: 48 89 c7 mov %rax,%rdi 16caa: e8 a1 cc ff ff callq 13950 <_ZNSt4listIiSaIiEED1Ev@plt> 16caf: 48 89 d8 mov %rbx,%rax 16cb2: 48 89 c7 mov %rax,%rdi 16cb5: e8 66 d2 ff ff callq 13f20 <_Unwind_Resume@plt> 0000000000016cba <_Z14x_cluster_statP18enif_environment_tiPKm>: } } ERL_NIF_TERM x_cluster_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 16cba: 55 push %rbp 16cbb: 48 89 e5 mov %rsp,%rbp 16cbe: 48 83 ec 70 sub $0x70,%rsp 16cc2: 48 89 7d a8 mov %rdi,-0x58(%rbp) 16cc6: 89 75 a4 mov %esi,-0x5c(%rbp) 16cc9: 48 89 55 98 mov %rdx,-0x68(%rbp) const char * func_name = "x_cluster_stat()"; 16ccd: 48 8d 05 78 b7 00 00 lea 0xb778(%rip),%rax # 2244c <_fini+0x594> 16cd4: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 16cd8: 48 8b 45 98 mov -0x68(%rbp),%rax 16cdc: 48 8b 08 mov (%rax),%rcx 16cdf: 48 8d 55 d0 lea -0x30(%rbp),%rdx 16ce3: 48 8b 45 a8 mov -0x58(%rbp),%rax 16ce7: 48 89 ce mov %rcx,%rsi 16cea: 48 89 c7 mov %rax,%rdi 16ced: e8 9e c2 ff ff callq 12f90 16cf2: 85 c0 test %eax,%eax 16cf4: 0f 94 c0 sete %al 16cf7: 84 c0 test %al,%al 16cf9: 74 3a je 16d35 <_Z14x_cluster_statP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 16cfb: 48 8b 05 4e 27 21 00 mov 0x21274e(%rip),%rax # 229450 <_ZL8MOD_NAME> 16d02: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16d06: 48 8d 0d 23 b5 00 00 lea 0xb523(%rip),%rcx # 22230 <_fini+0x378> 16d0d: 48 89 c6 mov %rax,%rsi 16d10: 48 8b 05 79 12 21 00 mov 0x211279(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16d17: 48 89 c7 mov %rax,%rdi 16d1a: b8 00 00 00 00 mov $0x0,%eax 16d1f: e8 cc ca ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 16d24: 48 8b 45 a8 mov -0x58(%rbp),%rax 16d28: 48 89 c7 mov %rax,%rdi 16d2b: e8 70 c5 ff ff callq 132a0 16d30: e9 db 02 00 00 jmpq 17010 <_Z14x_cluster_statP18enif_environment_tiPKm+0x356> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 16d35: 48 8b 4d d0 mov -0x30(%rbp),%rcx 16d39: 48 8b 05 10 27 21 00 mov 0x212710(%rip),%rax # 229450 <_ZL8MOD_NAME> 16d40: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16d44: 49 89 c8 mov %rcx,%r8 16d47: 48 8d 0d 28 b5 00 00 lea 0xb528(%rip),%rcx # 22276 <_fini+0x3be> 16d4e: 48 89 c6 mov %rax,%rsi 16d51: 48 8b 05 38 12 21 00 mov 0x211238(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16d58: 48 89 c7 mov %rax,%rdi 16d5b: b8 00 00 00 00 mov $0x0,%eax 16d60: e8 2b cc ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 16d65: 48 8d 45 d0 lea -0x30(%rbp),%rax 16d69: 48 89 c6 mov %rax,%rsi 16d6c: 48 8b 05 45 12 21 00 mov 0x211245(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 16d73: 48 89 c7 mov %rax,%rdi 16d76: e8 f5 c5 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 16d7b: 48 8b 00 mov (%rax),%rax 16d7e: 48 89 45 e0 mov %rax,-0x20(%rbp) if (cluster == NULL) 16d82: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 16d87: 75 41 jne 16dca <_Z14x_cluster_statP18enif_environment_tiPKm+0x110> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 16d89: 48 8b 4d d0 mov -0x30(%rbp),%rcx 16d8d: 48 8b 05 bc 26 21 00 mov 0x2126bc(%rip),%rax # 229450 <_ZL8MOD_NAME> 16d94: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16d98: 49 89 c8 mov %rcx,%r8 16d9b: 48 8d 0d f5 b4 00 00 lea 0xb4f5(%rip),%rcx # 22297 <_fini+0x3df> 16da2: 48 89 c6 mov %rax,%rsi 16da5: 48 8b 05 e4 11 21 00 mov 0x2111e4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16dac: 48 89 c7 mov %rax,%rdi 16daf: b8 00 00 00 00 mov $0x0,%eax 16db4: e8 37 ca ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 16db9: 48 8b 45 a8 mov -0x58(%rbp),%rax 16dbd: 48 89 c7 mov %rax,%rdi 16dc0: e8 db c4 ff ff callq 132a0 16dc5: e9 46 02 00 00 jmpq 17010 <_Z14x_cluster_statP18enif_environment_tiPKm+0x356> } rados_cluster_stat_t stat; int err = rados_cluster_stat(cluster, &stat); 16dca: 48 8d 55 b0 lea -0x50(%rbp),%rdx 16dce: 48 8b 45 e0 mov -0x20(%rbp),%rax 16dd2: 48 89 d6 mov %rdx,%rsi 16dd5: 48 89 c7 mov %rax,%rdi 16dd8: e8 53 cd ff ff callq 13b30 16ddd: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 16de0: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 16de4: 79 5c jns 16e42 <_Z14x_cluster_statP18enif_environment_tiPKm+0x188> { logger.error(MOD_NAME, func_name, "failed to get stat for %ld: %s", id, strerror(-err)); 16de6: 8b 45 fc mov -0x4(%rbp),%eax 16de9: f7 d8 neg %eax 16deb: 89 c7 mov %eax,%edi 16ded: e8 4e c5 ff ff callq 13340 16df2: 48 89 c1 mov %rax,%rcx 16df5: 48 8b 75 d0 mov -0x30(%rbp),%rsi 16df9: 48 8b 05 50 26 21 00 mov 0x212650(%rip),%rax # 229450 <_ZL8MOD_NAME> 16e00: 48 8b 55 d8 mov -0x28(%rbp),%rdx 16e04: 49 89 c9 mov %rcx,%r9 16e07: 49 89 f0 mov %rsi,%r8 16e0a: 48 8d 0d 4f b6 00 00 lea 0xb64f(%rip),%rcx # 22460 <_fini+0x5a8> 16e11: 48 89 c6 mov %rax,%rsi 16e14: 48 8b 05 75 11 21 00 mov 0x211175(%rip),%rax # 227f90 <_DYNAMIC+0x240> 16e1b: 48 89 c7 mov %rax,%rdi 16e1e: b8 00 00 00 00 mov $0x0,%eax 16e23: e8 c8 c9 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 16e28: 8b 45 fc mov -0x4(%rbp),%eax 16e2b: 89 c2 mov %eax,%edx 16e2d: f7 da neg %edx 16e2f: 48 8b 45 a8 mov -0x58(%rbp),%rax 16e33: 89 d6 mov %edx,%esi 16e35: 48 89 c7 mov %rax,%rdi 16e38: e8 f3 c9 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 16e3d: e9 ce 01 00 00 jmpq 17010 <_Z14x_cluster_statP18enif_environment_tiPKm+0x356> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 16e42: 48 8b 45 a8 mov -0x58(%rbp),%rax 16e46: be 00 00 00 00 mov $0x0,%esi 16e4b: 48 89 c7 mov %rax,%rdi 16e4e: b8 00 00 00 00 mov $0x0,%eax 16e53: e8 a8 c6 ff ff callq 13500 16e58: 48 89 45 e8 mov %rax,-0x18(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, stat.num_objects); 16e5c: 48 8b 55 c8 mov -0x38(%rbp),%rdx 16e60: 48 8b 45 a8 mov -0x58(%rbp),%rax 16e64: 48 89 d6 mov %rdx,%rsi 16e67: 48 89 c7 mov %rax,%rdi 16e6a: e8 b1 c6 ff ff callq 13520 16e6f: 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); 16e73: 48 8b 45 a8 mov -0x58(%rbp),%rax 16e77: 48 8d 35 01 b6 00 00 lea 0xb601(%rip),%rsi # 2247f <_fini+0x5c7> 16e7e: 48 89 c7 mov %rax,%rdi 16e81: e8 3a b9 ff ff callq 127c0 16e86: 48 89 c2 mov %rax,%rdx 16e89: 48 8b 4d f0 mov -0x10(%rbp),%rcx 16e8d: 48 8b 45 a8 mov -0x58(%rbp),%rax 16e91: be 02 00 00 00 mov $0x2,%esi 16e96: 48 89 c7 mov %rax,%rdi 16e99: b8 00 00 00 00 mov $0x0,%eax 16e9e: e8 5d cd ff ff callq 13c00 16ea3: 48 89 c1 mov %rax,%rcx 16ea6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16eaa: 48 8b 45 a8 mov -0x58(%rbp),%rax 16eae: 48 89 ce mov %rcx,%rsi 16eb1: 48 89 c7 mov %rax,%rdi 16eb4: e8 b7 c0 ff ff callq 12f70 16eb9: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb_avail); 16ebd: 48 8b 55 c0 mov -0x40(%rbp),%rdx 16ec1: 48 8b 45 a8 mov -0x58(%rbp),%rax 16ec5: 48 89 d6 mov %rdx,%rsi 16ec8: 48 89 c7 mov %rax,%rdi 16ecb: e8 50 c6 ff ff callq 13520 16ed0: 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); 16ed4: 48 8b 45 a8 mov -0x58(%rbp),%rax 16ed8: 48 8d 35 ac b5 00 00 lea 0xb5ac(%rip),%rsi # 2248b <_fini+0x5d3> 16edf: 48 89 c7 mov %rax,%rdi 16ee2: e8 d9 b8 ff ff callq 127c0 16ee7: 48 89 c2 mov %rax,%rdx 16eea: 48 8b 4d f0 mov -0x10(%rbp),%rcx 16eee: 48 8b 45 a8 mov -0x58(%rbp),%rax 16ef2: be 02 00 00 00 mov $0x2,%esi 16ef7: 48 89 c7 mov %rax,%rdi 16efa: b8 00 00 00 00 mov $0x0,%eax 16eff: e8 fc cc ff ff callq 13c00 16f04: 48 89 c1 mov %rax,%rcx 16f07: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16f0b: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f0f: 48 89 ce mov %rcx,%rsi 16f12: 48 89 c7 mov %rax,%rdi 16f15: e8 56 c0 ff ff callq 12f70 16f1a: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb_used); 16f1e: 48 8b 55 b8 mov -0x48(%rbp),%rdx 16f22: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f26: 48 89 d6 mov %rdx,%rsi 16f29: 48 89 c7 mov %rax,%rdi 16f2c: e8 ef c5 ff ff callq 13520 16f31: 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); 16f35: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f39: 48 8d 35 54 b5 00 00 lea 0xb554(%rip),%rsi # 22494 <_fini+0x5dc> 16f40: 48 89 c7 mov %rax,%rdi 16f43: e8 78 b8 ff ff callq 127c0 16f48: 48 89 c2 mov %rax,%rdx 16f4b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 16f4f: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f53: be 02 00 00 00 mov $0x2,%esi 16f58: 48 89 c7 mov %rax,%rdi 16f5b: b8 00 00 00 00 mov $0x0,%eax 16f60: e8 9b cc ff ff callq 13c00 16f65: 48 89 c1 mov %rax,%rcx 16f68: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16f6c: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f70: 48 89 ce mov %rcx,%rsi 16f73: 48 89 c7 mov %rax,%rdi 16f76: e8 f5 bf ff ff callq 12f70 16f7b: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.kb); 16f7f: 48 8b 55 b0 mov -0x50(%rbp),%rdx 16f83: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f87: 48 89 d6 mov %rdx,%rsi 16f8a: 48 89 c7 mov %rax,%rdi 16f8d: e8 8e c5 ff ff callq 13520 16f92: 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); 16f96: 48 8b 45 a8 mov -0x58(%rbp),%rax 16f9a: 48 8d 35 fb b4 00 00 lea 0xb4fb(%rip),%rsi # 2249c <_fini+0x5e4> 16fa1: 48 89 c7 mov %rax,%rdi 16fa4: e8 17 b8 ff ff callq 127c0 16fa9: 48 89 c2 mov %rax,%rdx 16fac: 48 8b 4d f0 mov -0x10(%rbp),%rcx 16fb0: 48 8b 45 a8 mov -0x58(%rbp),%rax 16fb4: be 02 00 00 00 mov $0x2,%esi 16fb9: 48 89 c7 mov %rax,%rdi 16fbc: b8 00 00 00 00 mov $0x0,%eax 16fc1: e8 3a cc ff ff callq 13c00 16fc6: 48 89 c1 mov %rax,%rcx 16fc9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 16fcd: 48 8b 45 a8 mov -0x58(%rbp),%rax 16fd1: 48 89 ce mov %rcx,%rsi 16fd4: 48 89 c7 mov %rax,%rdi 16fd7: e8 94 bf ff ff callq 12f70 16fdc: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 16fe0: 48 8b 45 a8 mov -0x58(%rbp),%rax 16fe4: 48 8d 35 2d b2 00 00 lea 0xb22d(%rip),%rsi # 22218 <_fini+0x360> 16feb: 48 89 c7 mov %rax,%rdi 16fee: e8 cd b7 ff ff callq 127c0 16ff3: 48 89 c2 mov %rax,%rdx 16ff6: 48 8b 4d e8 mov -0x18(%rbp),%rcx 16ffa: 48 8b 45 a8 mov -0x58(%rbp),%rax 16ffe: be 02 00 00 00 mov $0x2,%esi 17003: 48 89 c7 mov %rax,%rdi 17006: b8 00 00 00 00 mov $0x0,%eax 1700b: e8 f0 cb ff ff callq 13c00 enif_make_atom(env, "ok"), term_list); } 17010: c9 leaveq 17011: c3 retq 0000000000017012 <_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> 17012: 55 push %rbp 17013: 48 89 e5 mov %rsp,%rbp 17016: 48 83 ec 10 sub $0x10,%rsp 1701a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1701e: 48 8b 45 f8 mov -0x8(%rbp),%rax 17022: 48 89 c7 mov %rax,%rdi 17025: e8 26 cf ff ff callq 13f50 <_ZNSt10_List_baseIiSaIiEED2Ev@plt> 1702a: c9 leaveq 1702b: c3 retq 000000000001702c <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_>: * is created using default values, which is then returned. * * Lookup requires logarithmic time. */ mapped_type& operator[](const key_type& __k) 1702c: 55 push %rbp 1702d: 48 89 e5 mov %rsp,%rbp 17030: 53 push %rbx 17031: 48 83 ec 58 sub $0x58,%rsp 17035: 48 89 7d a8 mov %rdi,-0x58(%rbp) 17039: 48 89 75 a0 mov %rsi,-0x60(%rbp) { // concept requirements __glibcxx_function_requires(_DefaultConstructibleConcept) iterator __i = lower_bound(__k); 1703d: 48 8b 55 a0 mov -0x60(%rbp),%rdx 17041: 48 8b 45 a8 mov -0x58(%rbp),%rax 17045: 48 89 d6 mov %rdx,%rsi 17048: 48 89 c7 mov %rax,%rdi 1704b: e8 d0 cd ff ff callq 13e20 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE11lower_boundERS4_@plt> 17050: 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)) 17054: 48 8b 45 a8 mov -0x58(%rbp),%rax 17058: 48 89 c7 mov %rax,%rdi 1705b: e8 90 c5 ff ff callq 135f0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE3endEv@plt> 17060: 48 89 45 d0 mov %rax,-0x30(%rbp) 17064: 48 8d 55 d0 lea -0x30(%rbp),%rdx 17068: 48 8d 45 c0 lea -0x40(%rbp),%rax 1706c: 48 89 d6 mov %rdx,%rsi 1706f: 48 89 c7 mov %rax,%rdi 17072: e8 89 c1 ff ff callq 13200 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt> 17077: 84 c0 test %al,%al 17079: 75 35 jne 170b0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x84> 1707b: 48 8d 45 c0 lea -0x40(%rbp),%rax 1707f: 48 89 c7 mov %rax,%rdi 17082: e8 99 c0 ff ff callq 13120 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt> 17087: 48 89 c3 mov %rax,%rbx 1708a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1708e: 48 89 c7 mov %rax,%rdi 17091: e8 8a be ff ff callq 12f20 <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv@plt> 17096: 48 8b 4d a0 mov -0x60(%rbp),%rcx 1709a: 48 8d 45 ef lea -0x11(%rbp),%rax 1709e: 48 89 da mov %rbx,%rdx 170a1: 48 89 ce mov %rcx,%rsi 170a4: 48 89 c7 mov %rax,%rdi 170a7: e8 d4 be ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 170ac: 84 c0 test %al,%al 170ae: 74 07 je 170b7 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x8b> 170b0: b8 01 00 00 00 mov $0x1,%eax 170b5: eb 05 jmp 170bc <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0x90> 170b7: b8 00 00 00 00 mov $0x0,%eax 170bc: 84 c0 test %al,%al 170be: 74 3a je 170fa <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_+0xce> __i = insert(__i, value_type(__k, mapped_type())); 170c0: 48 c7 45 e0 00 00 00 movq $0x0,-0x20(%rbp) 170c7: 00 170c8: 48 8d 55 e0 lea -0x20(%rbp),%rdx 170cc: 48 8b 4d a0 mov -0x60(%rbp),%rcx 170d0: 48 8d 45 b0 lea -0x50(%rbp),%rax 170d4: 48 89 ce mov %rcx,%rsi 170d7: 48 89 c7 mov %rax,%rdi 170da: e8 c1 bc ff ff callq 12da0 <_ZNSt4pairIKmPvEC1ERS0_RKS1_@plt> 170df: 48 8d 55 b0 lea -0x50(%rbp),%rdx 170e3: 48 8b 4d c0 mov -0x40(%rbp),%rcx 170e7: 48 8b 45 a8 mov -0x58(%rbp),%rax 170eb: 48 89 ce mov %rcx,%rsi 170ee: 48 89 c7 mov %rax,%rdi 170f1: e8 fa b2 ff ff callq 123f0 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE6insertESt17_Rb_tree_iteratorIS5_ERKS5_@plt> 170f6: 48 89 45 c0 mov %rax,-0x40(%rbp) return (*__i).second; 170fa: 48 8d 45 c0 lea -0x40(%rbp),%rax 170fe: 48 89 c7 mov %rax,%rdi 17101: e8 1a c0 ff ff callq 13120 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv@plt> 17106: 48 83 c0 08 add $0x8,%rax } 1710a: 48 83 c4 58 add $0x58,%rsp 1710e: 5b pop %rbx 1710f: 5d pop %rbp 17110: c3 retq 17111: 90 nop 0000000000017112 <_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) 17112: 55 push %rbp 17113: 48 89 e5 mov %rsp,%rbp 17116: 48 83 ec 10 sub $0x10,%rsp 1711a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1711e: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.erase(__x); } 17122: 48 8b 45 f8 mov -0x8(%rbp),%rax 17126: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1712a: 48 89 d6 mov %rdx,%rsi 1712d: 48 89 c7 mov %rax,%rdi 17130: e8 ab bc ff ff callq 12de0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_@plt> 17135: c9 leaveq 17136: c3 retq 17137: 90 nop 0000000000017138 <_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) 17138: 55 push %rbp 17139: 48 89 e5 mov %rsp,%rbp 1713c: 48 83 ec 10 sub $0x10,%rsp 17140: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17144: 48 89 75 f0 mov %rsi,-0x10(%rbp) { this->_M_insert(end(), __x); } 17148: 48 8b 45 f8 mov -0x8(%rbp),%rax 1714c: 48 89 c7 mov %rax,%rdi 1714f: e8 ec b4 ff ff callq 12640 <_ZNSt4listIiSaIiEE3endEv@plt> 17154: 48 89 c1 mov %rax,%rcx 17157: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1715b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1715f: 48 89 ce mov %rcx,%rsi 17162: 48 89 c7 mov %rax,%rdi 17165: e8 16 b7 ff ff callq 12880 <_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi@plt> 1716a: c9 leaveq 1716b: c3 retq 000000000001716c <_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() 1716c: 55 push %rbp 1716d: 48 89 e5 mov %rsp,%rbp 17170: 48 83 ec 10 sub $0x10,%rsp 17174: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Base() { } 17178: 48 8b 45 f8 mov -0x8(%rbp),%rax 1717c: 48 89 c7 mov %rax,%rdi 1717f: e8 ac ba ff ff callq 12c30 <_ZNSt10_List_baseIiSaIiEEC2Ev@plt> 17184: c9 leaveq 17185: c3 retq 0000000000017186 <_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 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) 17192: 48 8b 45 f8 mov -0x8(%rbp),%rax 17196: 48 89 c7 mov %rax,%rdi 17199: e8 d2 cd ff ff callq 13f70 <_ZNSaISt10_List_nodeIiEED2Ev@plt> 1719e: c9 leaveq 1719f: c3 retq 00000000000171a0 <_ZNSt10_List_baseIiSaIiEED1Ev>: __x._M_impl._M_node); } #endif // This is what actually destroys the list. ~_List_base() 171a0: 55 push %rbp 171a1: 48 89 e5 mov %rsp,%rbp 171a4: 53 push %rbx 171a5: 48 83 ec 18 sub $0x18,%rsp 171a9: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_clear(); } 171ad: 48 8b 45 e8 mov -0x18(%rbp),%rax 171b1: 48 89 c7 mov %rax,%rdi 171b4: e8 b7 b6 ff ff callq 12870 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv@plt> 171b9: 48 8b 45 e8 mov -0x18(%rbp),%rax 171bd: 48 89 c7 mov %rax,%rdi 171c0: e8 5b b6 ff ff callq 12820 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 171c5: 48 83 c4 18 add $0x18,%rsp 171c9: 5b pop %rbx 171ca: 5d pop %rbp 171cb: c3 retq 171cc: 48 89 c3 mov %rax,%rbx 171cf: 48 8b 45 e8 mov -0x18(%rbp),%rax 171d3: 48 89 c7 mov %rax,%rdi 171d6: e8 45 b6 ff ff callq 12820 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 171db: 48 89 d8 mov %rbx,%rax 171de: 48 89 c7 mov %rax,%rdi 171e1: e8 3a cd ff ff callq 13f20 <_Unwind_Resume@plt> 00000000000171e6 <_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() 171e6: 55 push %rbp 171e7: 48 89 e5 mov %rsp,%rbp 171ea: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_node() { } 171ee: 48 8b 45 f8 mov -0x8(%rbp),%rax 171f2: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 171f9: 5d pop %rbp 171fa: c3 retq 171fb: 90 nop 00000000000171fc <_ZNSt4listIiSaIiEE5beginEv>: /** * Returns a read/write iterator that points to the first element in the * %list. Iteration is done in ordinary element order. */ iterator begin() 171fc: 55 push %rbp 171fd: 48 89 e5 mov %rsp,%rbp 17200: 48 83 ec 20 sub $0x20,%rsp 17204: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_node._M_next); } 17208: 48 8b 45 e8 mov -0x18(%rbp),%rax 1720c: 48 8b 10 mov (%rax),%rdx 1720f: 48 8d 45 f0 lea -0x10(%rbp),%rax 17213: 48 89 d6 mov %rdx,%rsi 17216: 48 89 c7 mov %rax,%rdi 17219: e8 82 c5 ff ff callq 137a0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt> 1721e: 48 8b 45 f0 mov -0x10(%rbp),%rax 17222: c9 leaveq 17223: c3 retq 0000000000017224 <_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) 17224: 55 push %rbp 17225: 48 89 e5 mov %rsp,%rbp 17228: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1722c: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x._M_node) { } 17230: 48 8b 45 f0 mov -0x10(%rbp),%rax 17234: 48 8b 10 mov (%rax),%rdx 17237: 48 8b 45 f8 mov -0x8(%rbp),%rax 1723b: 48 89 10 mov %rdx,(%rax) 1723e: 5d pop %rbp 1723f: c3 retq 0000000000017240 <_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() 17240: 55 push %rbp 17241: 48 89 e5 mov %rsp,%rbp 17244: 48 83 ec 20 sub $0x20,%rsp 17248: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(&this->_M_impl._M_node); } 1724c: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17250: 48 8d 45 f0 lea -0x10(%rbp),%rax 17254: 48 89 d6 mov %rdx,%rsi 17257: 48 89 c7 mov %rax,%rdi 1725a: e8 41 c5 ff ff callq 137a0 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE@plt> 1725f: 48 8b 45 f0 mov -0x10(%rbp),%rax 17263: c9 leaveq 17264: c3 retq 17265: 90 nop 0000000000017266 <_ZNKSt20_List_const_iteratorIiEneERKS0_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 17266: 55 push %rbp 17267: 48 89 e5 mov %rsp,%rbp 1726a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1726e: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 17272: 48 8b 45 f8 mov -0x8(%rbp),%rax 17276: 48 8b 10 mov (%rax),%rdx 17279: 48 8b 45 f0 mov -0x10(%rbp),%rax 1727d: 48 8b 00 mov (%rax),%rax 17280: 48 39 c2 cmp %rax,%rdx 17283: 0f 95 c0 setne %al 17286: 5d pop %rbp 17287: c3 retq 0000000000017288 <_ZNSt20_List_const_iteratorIiEppEi>: _M_node = _M_node->_M_next; return *this; } _Self operator++(int) 17288: 55 push %rbp 17289: 48 89 e5 mov %rsp,%rbp 1728c: 48 89 7d e8 mov %rdi,-0x18(%rbp) 17290: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 17293: 48 8b 45 e8 mov -0x18(%rbp),%rax 17297: 48 8b 00 mov (%rax),%rax 1729a: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _M_node->_M_next; 1729e: 48 8b 45 e8 mov -0x18(%rbp),%rax 172a2: 48 8b 00 mov (%rax),%rax 172a5: 48 8b 10 mov (%rax),%rdx 172a8: 48 8b 45 e8 mov -0x18(%rbp),%rax 172ac: 48 89 10 mov %rdx,(%rax) return __tmp; 172af: 48 8b 45 f0 mov -0x10(%rbp),%rax } 172b3: 5d pop %rbp 172b4: c3 retq 172b5: 90 nop 00000000000172b6 <_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 172b6: 55 push %rbp 172b7: 48 89 e5 mov %rsp,%rbp 172ba: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Node*>(_M_node)->_M_data; } 172be: 48 8b 45 f8 mov -0x8(%rbp),%rax 172c2: 48 8b 00 mov (%rax),%rax 172c5: 48 83 c0 10 add $0x10,%rax 172c9: 5d pop %rbp 172ca: c3 retq 172cb: 90 nop 00000000000172cc <_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) 172cc: 55 push %rbp 172cd: 48 89 e5 mov %rsp,%rbp 172d0: 48 83 ec 10 sub $0x10,%rsp 172d4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 172d8: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.lower_bound(__x); } 172dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 172e0: 48 8b 55 f0 mov -0x10(%rbp),%rdx 172e4: 48 89 d6 mov %rdx,%rsi 172e7: 48 89 c7 mov %rax,%rdi 172ea: e8 d1 c0 ff ff callq 133c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_@plt> 172ef: c9 leaveq 172f0: c3 retq 172f1: 90 nop 00000000000172f2 <_ZNKSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE8key_compEv>: /** * Returns the key comparison object out of which the %map was * constructed. */ key_compare key_comp() const 172f2: 55 push %rbp 172f3: 48 89 e5 mov %rsp,%rbp 172f6: 53 push %rbx 172f7: 48 83 ec 18 sub $0x18,%rsp 172fb: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _M_t.key_comp(); } 172ff: 48 8b 45 e8 mov -0x18(%rbp),%rax 17303: 48 89 c7 mov %rax,%rdi 17306: e8 05 ca ff ff callq 13d10 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv@plt> 1730b: 89 d8 mov %ebx,%eax 1730d: 48 83 c4 18 add $0x18,%rsp 17311: 5b pop %rbx 17312: 5d pop %rbp 17313: c3 retq 0000000000017314 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEdeEv>: explicit _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } reference operator*() const 17314: 55 push %rbp 17315: 48 89 e5 mov %rsp,%rbp 17318: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 1731c: 48 8b 45 f8 mov -0x8(%rbp),%rax 17320: 48 8b 00 mov (%rax),%rax 17323: 48 83 c0 20 add $0x20,%rax 17327: 5d pop %rbp 17328: c3 retq 17329: 90 nop 000000000001732a <_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 1732a: 55 push %rbp 1732b: 48 89 e5 mov %rsp,%rbp 1732e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17332: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17336: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 1733a: 48 8b 45 f0 mov -0x10(%rbp),%rax 1733e: 48 8b 10 mov (%rax),%rdx 17341: 48 8b 45 e8 mov -0x18(%rbp),%rax 17345: 48 8b 00 mov (%rax),%rax 17348: 48 39 c2 cmp %rax,%rdx 1734b: 0f 92 c0 setb %al 1734e: 5d pop %rbp 1734f: c3 retq 0000000000017350 <_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() 17350: 55 push %rbp 17351: 48 89 e5 mov %rsp,%rbp 17354: 48 83 ec 10 sub $0x10,%rsp 17358: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 1735c: 48 8b 45 f8 mov -0x8(%rbp),%rax 17360: 48 89 c7 mov %rax,%rdi 17363: e8 d8 b0 ff ff callq 12440 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt> 17368: c9 leaveq 17369: c3 retq 000000000001736a <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 1736a: 55 push %rbp 1736b: 48 89 e5 mov %rsp,%rbp 1736e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17372: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 17376: 48 8b 45 f8 mov -0x8(%rbp),%rax 1737a: 48 8b 10 mov (%rax),%rdx 1737d: 48 8b 45 f0 mov -0x10(%rbp),%rax 17381: 48 8b 00 mov (%rax),%rax 17384: 48 39 c2 cmp %rax,%rdx 17387: 0f 94 c0 sete %al 1738a: 5d pop %rbp 1738b: c3 retq 000000000001738c <_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) 1738c: 55 push %rbp 1738d: 48 89 e5 mov %rsp,%rbp 17390: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17394: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17398: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 1739c: 48 8b 45 f0 mov -0x10(%rbp),%rax 173a0: 48 8b 10 mov (%rax),%rdx 173a3: 48 8b 45 f8 mov -0x8(%rbp),%rax 173a7: 48 89 10 mov %rdx,(%rax) 173aa: 48 8b 45 e8 mov -0x18(%rbp),%rax 173ae: 48 8b 10 mov (%rax),%rdx 173b1: 48 8b 45 f8 mov -0x8(%rbp),%rax 173b5: 48 89 50 08 mov %rdx,0x8(%rax) 173b9: 5d pop %rbp 173ba: c3 retq 173bb: 90 nop 00000000000173bc <_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) 173bc: 55 push %rbp 173bd: 48 89 e5 mov %rsp,%rbp 173c0: 48 83 ec 30 sub $0x30,%rsp 173c4: 48 89 7d e8 mov %rdi,-0x18(%rbp) 173c8: 48 89 75 e0 mov %rsi,-0x20(%rbp) 173cc: 48 89 55 d8 mov %rdx,-0x28(%rbp) #endif { return _M_t._M_insert_unique_(__position, __x); } 173d0: 48 8d 55 e0 lea -0x20(%rbp),%rdx 173d4: 48 8d 45 f0 lea -0x10(%rbp),%rax 173d8: 48 89 d6 mov %rdx,%rsi 173db: 48 89 c7 mov %rax,%rdi 173de: e8 ed ba ff ff callq 12ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 173e3: 48 8b 45 e8 mov -0x18(%rbp),%rax 173e7: 48 8b 55 d8 mov -0x28(%rbp),%rdx 173eb: 48 8b 4d f0 mov -0x10(%rbp),%rcx 173ef: 48 89 ce mov %rcx,%rsi 173f2: 48 89 c7 mov %rax,%rdi 173f5: e8 d6 b5 ff ff callq 129d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_@plt> 173fa: c9 leaveq 173fb: c3 retq 00000000000173fc <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseERS1_>: } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 173fc: 55 push %rbp 173fd: 48 89 e5 mov %rsp,%rbp 17400: 48 83 ec 40 sub $0x40,%rsp 17404: 48 89 7d d8 mov %rdi,-0x28(%rbp) 17408: 48 89 75 d0 mov %rsi,-0x30(%rbp) erase(const _Key& __x) { pair __p = equal_range(__x); 1740c: 48 8b 55 d0 mov -0x30(%rbp),%rdx 17410: 48 8b 45 d8 mov -0x28(%rbp),%rax 17414: 48 89 d6 mov %rdx,%rsi 17417: 48 89 c7 mov %rax,%rdi 1741a: e8 11 b5 ff ff callq 12930 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_@plt> 1741f: 48 89 c1 mov %rax,%rcx 17422: 48 89 d0 mov %rdx,%rax 17425: 48 89 4d c0 mov %rcx,-0x40(%rbp) 17429: 48 89 45 c8 mov %rax,-0x38(%rbp) 1742d: 48 8b 45 c0 mov -0x40(%rbp),%rax 17431: 48 89 45 e0 mov %rax,-0x20(%rbp) 17435: 48 8b 45 c8 mov -0x38(%rbp),%rax 17439: 48 89 45 e8 mov %rax,-0x18(%rbp) const size_type __old_size = size(); 1743d: 48 8b 45 d8 mov -0x28(%rbp),%rax 17441: 48 89 c7 mov %rax,%rdi 17444: e8 17 cb ff ff callq 13f60 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 17449: 48 89 45 f8 mov %rax,-0x8(%rbp) erase(__p.first, __p.second); 1744d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17451: 48 8b 4d e0 mov -0x20(%rbp),%rcx 17455: 48 8b 45 d8 mov -0x28(%rbp),%rax 17459: 48 89 ce mov %rcx,%rsi 1745c: 48 89 c7 mov %rax,%rdi 1745f: e8 bc b4 ff ff callq 12920 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt17_Rb_tree_iteratorIS3_ESB_@plt> return __old_size - size(); 17464: 48 8b 45 d8 mov -0x28(%rbp),%rax 17468: 48 89 c7 mov %rax,%rdi 1746b: e8 f0 ca ff ff callq 13f60 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 17470: 48 8b 55 f8 mov -0x8(%rbp),%rdx 17474: 48 89 d1 mov %rdx,%rcx 17477: 48 29 c1 sub %rax,%rcx 1747a: 48 89 c8 mov %rcx,%rax } 1747d: c9 leaveq 1747e: c3 retq 1747f: 90 nop 0000000000017480 <_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) 17480: 55 push %rbp 17481: 48 89 e5 mov %rsp,%rbp 17484: 48 83 ec 30 sub $0x30,%rsp 17488: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1748c: 48 89 75 e0 mov %rsi,-0x20(%rbp) 17490: 48 89 55 d8 mov %rdx,-0x28(%rbp) { _Node* __tmp = _M_create_node(__x); 17494: 48 8b 55 d8 mov -0x28(%rbp),%rdx 17498: 48 8b 45 e8 mov -0x18(%rbp),%rax 1749c: 48 89 d6 mov %rdx,%rsi 1749f: 48 89 c7 mov %rax,%rdi 174a2: e8 c9 cb ff ff callq 14070 <_ZNSt4listIiSaIiEE14_M_create_nodeERKi@plt> 174a7: 48 89 45 f8 mov %rax,-0x8(%rbp) __tmp->_M_hook(__position._M_node); 174ab: 48 8b 55 e0 mov -0x20(%rbp),%rdx 174af: 48 8b 45 f8 mov -0x8(%rbp),%rax 174b3: 48 89 d6 mov %rdx,%rsi 174b6: 48 89 c7 mov %rax,%rdi 174b9: e8 e2 c0 ff ff callq 135a0 <_ZNSt8__detail15_List_node_base7_M_hookEPS0_@plt> } 174be: c9 leaveq 174bf: c3 retq 00000000000174c0 <_ZNSt10_List_baseIiSaIiEEC1Ev>: allocator_type get_allocator() const { return allocator_type(_M_get_Node_allocator()); } _List_base() 174c0: 55 push %rbp 174c1: 48 89 e5 mov %rsp,%rbp 174c4: 53 push %rbx 174c5: 48 83 ec 18 sub $0x18,%rsp 174c9: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _M_impl() 174cd: 48 8b 45 e8 mov -0x18(%rbp),%rax 174d1: 48 89 c7 mov %rax,%rdi 174d4: e8 57 c7 ff ff callq 13c30 <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev@plt> { _M_init(); } 174d9: 48 8b 45 e8 mov -0x18(%rbp),%rax 174dd: 48 89 c7 mov %rax,%rdi 174e0: e8 db b3 ff ff callq 128c0 <_ZNSt10_List_baseIiSaIiEE7_M_initEv@plt> 174e5: eb 1a jmp 17501 <_ZNSt10_List_baseIiSaIiEEC1Ev+0x41> 174e7: 48 89 c3 mov %rax,%rbx allocator_type get_allocator() const { return allocator_type(_M_get_Node_allocator()); } _List_base() : _M_impl() 174ea: 48 8b 45 e8 mov -0x18(%rbp),%rax 174ee: 48 89 c7 mov %rax,%rdi 174f1: e8 2a b3 ff ff callq 12820 <_ZNSt10_List_baseIiSaIiEE10_List_implD1Ev@plt> 174f6: 48 89 d8 mov %rbx,%rax 174f9: 48 89 c7 mov %rax,%rdi 174fc: e8 1f ca ff ff callq 13f20 <_Unwind_Resume@plt> { _M_init(); } 17501: 48 83 c4 18 add $0x18,%rsp 17505: 5b pop %rbx 17506: 5d pop %rbp 17507: c3 retq 0000000000017508 <_ZNSaISt10_List_nodeIiEED1Ev>: ~allocator() throw() { } 17508: 55 push %rbp 17509: 48 89 e5 mov %rsp,%rbp 1750c: 48 83 ec 10 sub $0x10,%rsp 17510: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17514: 48 8b 45 f8 mov -0x8(%rbp),%rax 17518: 48 89 c7 mov %rax,%rdi 1751b: e8 30 b8 ff ff callq 12d50 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED2Ev@plt> 17520: c9 leaveq 17521: c3 retq 0000000000017522 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv>: { _GLIBCXX_BEGIN_NAMESPACE_CONTAINER template void _List_base<_Tp, _Alloc>:: 17522: 55 push %rbp 17523: 48 89 e5 mov %rsp,%rbp 17526: 53 push %rbx 17527: 48 83 ec 38 sub $0x38,%rsp 1752b: 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); 1752f: 48 8b 45 c8 mov -0x38(%rbp),%rax 17533: 48 8b 00 mov (%rax),%rax 17536: 48 89 45 d8 mov %rax,-0x28(%rbp) while (__cur != &this->_M_impl._M_node) 1753a: eb 67 jmp 175a3 <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0x81> { _Node* __tmp = __cur; 1753c: 48 8b 45 d8 mov -0x28(%rbp),%rax 17540: 48 89 45 e0 mov %rax,-0x20(%rbp) __cur = static_cast<_Node*>(__cur->_M_next); 17544: 48 8b 45 d8 mov -0x28(%rbp),%rax 17548: 48 8b 00 mov (%rax),%rax 1754b: 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)); 1754f: 48 8b 45 e0 mov -0x20(%rbp),%rax 17553: 48 83 c0 10 add $0x10,%rax 17557: 48 89 c7 mov %rax,%rdi 1755a: e8 c1 be ff ff callq 13420 <_ZSt11__addressofIiEPT_RS0_@plt> 1755f: 48 89 c3 mov %rax,%rbx 17562: 48 8d 45 ef lea -0x11(%rbp),%rax 17566: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1756a: 48 89 d6 mov %rdx,%rsi 1756d: 48 89 c7 mov %rax,%rdi 17570: e8 6b b2 ff ff callq 127e0 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt> 17575: 48 8d 45 ef lea -0x11(%rbp),%rax 17579: 48 89 de mov %rbx,%rsi 1757c: 48 89 c7 mov %rax,%rdi 1757f: e8 4c c3 ff ff callq 138d0 <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi@plt> 17584: 48 8d 45 ef lea -0x11(%rbp),%rax 17588: 48 89 c7 mov %rax,%rdi 1758b: e8 f0 c8 ff ff callq 13e80 <_ZNSaIiED1Ev@plt> #endif _M_put_node(__tmp); 17590: 48 8b 55 e0 mov -0x20(%rbp),%rdx 17594: 48 8b 45 c8 mov -0x38(%rbp),%rax 17598: 48 89 d6 mov %rdx,%rsi 1759b: 48 89 c7 mov %rax,%rdi 1759e: e8 fd b8 ff ff callq 12ea0 <_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) 175a3: 48 8b 45 c8 mov -0x38(%rbp),%rax 175a7: 48 3b 45 d8 cmp -0x28(%rbp),%rax 175ab: 0f 95 c0 setne %al 175ae: 84 c0 test %al,%al 175b0: 75 8a jne 1753c <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0x1a> #else _M_get_Tp_allocator().destroy(std::__addressof(__tmp->_M_data)); #endif _M_put_node(__tmp); } } 175b2: eb 1a jmp 175ce <_ZNSt10_List_baseIiSaIiEE8_M_clearEv+0xac> 175b4: 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)); 175b7: 48 8d 45 ef lea -0x11(%rbp),%rax 175bb: 48 89 c7 mov %rax,%rdi 175be: e8 bd c8 ff ff callq 13e80 <_ZNSaIiED1Ev@plt> 175c3: 48 89 d8 mov %rbx,%rax 175c6: 48 89 c7 mov %rax,%rdi 175c9: e8 52 c9 ff ff callq 13f20 <_Unwind_Resume@plt> #endif _M_put_node(__tmp); } } 175ce: 48 83 c4 38 add $0x38,%rsp 175d2: 5b pop %rbx 175d3: 5d pop %rbp 175d4: c3 retq 175d5: 90 nop 00000000000175d6 <_ZNSt14_List_iteratorIiEC1EPNSt8__detail15_List_node_baseE>: _List_iterator() : _M_node() { } explicit _List_iterator(__detail::_List_node_base* __x) 175d6: 55 push %rbp 175d7: 48 89 e5 mov %rsp,%rbp 175da: 48 89 7d f8 mov %rdi,-0x8(%rbp) 175de: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 175e2: 48 8b 45 f8 mov -0x8(%rbp),%rax 175e6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 175ea: 48 89 10 mov %rdx,(%rax) 175ed: 5d pop %rbp 175ee: c3 retq 175ef: 90 nop 00000000000175f0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11lower_boundERS1_>: size_type count(const key_type& __k) const; iterator lower_bound(const key_type& __k) 175f0: 55 push %rbp 175f1: 48 89 e5 mov %rsp,%rbp 175f4: 53 push %rbx 175f5: 48 83 ec 18 sub $0x18,%rsp 175f9: 48 89 7d e8 mov %rdi,-0x18(%rbp) 175fd: 48 89 75 e0 mov %rsi,-0x20(%rbp) { return _M_lower_bound(_M_begin(), _M_end(), __k); } 17601: 48 8b 45 e8 mov -0x18(%rbp),%rax 17605: 48 89 c7 mov %rax,%rdi 17608: e8 f3 c8 ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 1760d: 48 89 c3 mov %rax,%rbx 17610: 48 8b 45 e8 mov -0x18(%rbp),%rax 17614: 48 89 c7 mov %rax,%rdi 17617: e8 44 b9 ff ff callq 12f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 1761c: 48 89 c6 mov %rax,%rsi 1761f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 17623: 48 8b 45 e8 mov -0x18(%rbp),%rax 17627: 48 89 d1 mov %rdx,%rcx 1762a: 48 89 da mov %rbx,%rdx 1762d: 48 89 c7 mov %rax,%rdi 17630: e8 db b2 ff ff callq 12910 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 17635: 48 83 c4 18 add $0x18,%rsp 17639: 5b pop %rbx 1763a: 5d pop %rbp 1763b: c3 retq 000000000001763c <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8key_compEv>: _Rb_tree& operator=(const _Rb_tree& __x); // Accessors. _Compare key_comp() const 1763c: 55 push %rbp 1763d: 48 89 e5 mov %rsp,%rbp 17640: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_key_compare; } 17644: 5d pop %rbp 17645: c3 retq 0000000000017646 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv>: return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() 17646: 55 push %rbp 17647: 48 89 e5 mov %rsp,%rbp 1764a: 48 83 ec 20 sub $0x20,%rsp 1764e: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 17652: 48 8b 45 e8 mov -0x18(%rbp),%rax 17656: 48 8d 50 08 lea 0x8(%rax),%rdx 1765a: 48 8d 45 f0 lea -0x10(%rbp),%rax 1765e: 48 89 d6 mov %rdx,%rsi 17661: 48 89 c7 mov %rax,%rdi 17664: e8 a7 bd ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 17669: 48 8b 45 f0 mov -0x10(%rbp),%rax 1766d: c9 leaveq 1766e: c3 retq 1766f: 90 nop 0000000000017670 <_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) 17670: 55 push %rbp 17671: 48 89 e5 mov %rsp,%rbp 17674: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17678: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 1767c: 48 8b 45 f0 mov -0x10(%rbp),%rax 17680: 48 8b 10 mov (%rax),%rdx 17683: 48 8b 45 f8 mov -0x8(%rbp),%rax 17687: 48 89 10 mov %rdx,(%rax) 1768a: 5d pop %rbp 1768b: c3 retq 000000000001768c <_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>:: 1768c: 55 push %rbp 1768d: 48 89 e5 mov %rsp,%rbp 17690: 53 push %rbx 17691: 48 83 ec 78 sub $0x78,%rsp 17695: 48 89 7d a8 mov %rdi,-0x58(%rbp) 17699: 48 89 75 a0 mov %rsi,-0x60(%rbp) 1769d: 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()) 176a1: 48 8b 5d a0 mov -0x60(%rbp),%rbx 176a5: 48 8b 45 a8 mov -0x58(%rbp),%rax 176a9: 48 89 c7 mov %rax,%rdi 176ac: e8 4f c8 ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 176b1: 48 39 c3 cmp %rax,%rbx 176b4: 0f 94 c0 sete %al 176b7: 84 c0 test %al,%al 176b9: 0f 84 c8 00 00 00 je 17787 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0xfb> { if (size() > 0 176bf: 48 8b 45 a8 mov -0x58(%rbp),%rax 176c3: 48 89 c7 mov %rax,%rdi 176c6: e8 95 c8 ff ff callq 13f60 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv@plt> 176cb: 48 85 c0 test %rax,%rax 176ce: 74 4d je 1771d <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x91> 176d0: 48 8b 55 98 mov -0x68(%rbp),%rdx 176d4: 48 8d 45 eb lea -0x15(%rbp),%rax 176d8: 48 89 d6 mov %rdx,%rsi 176db: 48 89 c7 mov %rax,%rdi 176de: e8 6d be ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 176e3: 48 89 c3 mov %rax,%rbx 176e6: 48 8b 45 a8 mov -0x58(%rbp),%rax 176ea: 48 89 c7 mov %rax,%rdi 176ed: e8 3e c8 ff ff callq 13f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 176f2: 48 8b 00 mov (%rax),%rax 176f5: 48 89 c7 mov %rax,%rdi 176f8: e8 83 bd ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 176fd: 48 89 c1 mov %rax,%rcx 17700: 48 8b 45 a8 mov -0x58(%rbp),%rax 17704: 48 89 da mov %rbx,%rdx 17707: 48 89 ce mov %rcx,%rsi 1770a: 48 89 c7 mov %rax,%rdi 1770d: e8 6e b8 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17712: 84 c0 test %al,%al 17714: 74 07 je 1771d <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x91> 17716: b8 01 00 00 00 mov $0x1,%eax 1771b: eb 05 jmp 17722 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x96> 1771d: b8 00 00 00 00 mov $0x0,%eax 17722: 84 c0 test %al,%al 17724: 74 29 je 1774f <_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)); 17726: 48 8b 45 a8 mov -0x58(%rbp),%rax 1772a: 48 89 c7 mov %rax,%rdi 1772d: e8 fe c7 ff ff callq 13f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 17732: 48 8b 10 mov (%rax),%rdx 17735: 48 8b 4d 98 mov -0x68(%rbp),%rcx 17739: 48 8b 45 a8 mov -0x58(%rbp),%rax 1773d: be 00 00 00 00 mov $0x0,%esi 17742: 48 89 c7 mov %rax,%rdi 17745: e8 26 c7 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 1774a: e9 03 03 00 00 jmpq 17a52 <_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; 1774f: 48 8b 55 98 mov -0x68(%rbp),%rdx 17753: 48 8b 45 a8 mov -0x58(%rbp),%rax 17757: 48 89 d6 mov %rdx,%rsi 1775a: 48 89 c7 mov %rax,%rdi 1775d: e8 6e b3 ff ff callq 12ad0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 17762: 48 89 c1 mov %rax,%rcx 17765: 89 d0 mov %edx,%eax 17767: 48 89 4d 80 mov %rcx,-0x80(%rbp) 1776b: 89 45 88 mov %eax,-0x78(%rbp) 1776e: 48 8b 45 80 mov -0x80(%rbp),%rax 17772: 48 89 45 b0 mov %rax,-0x50(%rbp) 17776: 48 8b 45 88 mov -0x78(%rbp),%rax 1777a: 48 89 45 b8 mov %rax,-0x48(%rbp) 1777e: 48 8b 45 b0 mov -0x50(%rbp),%rax 17782: e9 cb 02 00 00 jmpq 17a52 <_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), 17787: 48 8b 45 a0 mov -0x60(%rbp),%rax 1778b: 48 89 c7 mov %rax,%rdi 1778e: e8 ed bc ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 17793: 48 89 c3 mov %rax,%rbx 17796: 48 8b 55 98 mov -0x68(%rbp),%rdx 1779a: 48 8d 45 ec lea -0x14(%rbp),%rax 1779e: 48 89 d6 mov %rdx,%rsi 177a1: 48 89 c7 mov %rax,%rdi 177a4: e8 a7 bd ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 177a9: 48 89 c1 mov %rax,%rcx 177ac: 48 8b 45 a8 mov -0x58(%rbp),%rax 177b0: 48 89 da mov %rbx,%rdx 177b3: 48 89 ce mov %rcx,%rsi 177b6: 48 89 c7 mov %rax,%rdi 177b9: e8 c2 b7 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 177be: 84 c0 test %al,%al 177c0: 0f 84 2d 01 00 00 je 178f3 <_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; 177c6: 48 8b 45 a0 mov -0x60(%rbp),%rax 177ca: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_leftmost()) // begin() 177ce: 48 8b 5d a0 mov -0x60(%rbp),%rbx 177d2: 48 8b 45 a8 mov -0x58(%rbp),%rax 177d6: 48 89 c7 mov %rax,%rdi 177d9: e8 f2 b7 ff ff callq 12fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 177de: 48 8b 00 mov (%rax),%rax 177e1: 48 39 c3 cmp %rax,%rbx 177e4: 0f 94 c0 sete %al 177e7: 84 c0 test %al,%al 177e9: 74 39 je 17824 <_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)); 177eb: 48 8b 45 a8 mov -0x58(%rbp),%rax 177ef: 48 89 c7 mov %rax,%rdi 177f2: e8 d9 b7 ff ff callq 12fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 177f7: 48 8b 18 mov (%rax),%rbx 177fa: 48 8b 45 a8 mov -0x58(%rbp),%rax 177fe: 48 89 c7 mov %rax,%rdi 17801: e8 ca b7 ff ff callq 12fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 17806: 48 8b 30 mov (%rax),%rsi 17809: 48 8b 55 98 mov -0x68(%rbp),%rdx 1780d: 48 8b 45 a8 mov -0x58(%rbp),%rax 17811: 48 89 d1 mov %rdx,%rcx 17814: 48 89 da mov %rbx,%rdx 17817: 48 89 c7 mov %rax,%rdi 1781a: e8 51 c6 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 1781f: e9 2e 02 00 00 jmpq 17a52 <_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), 17824: 48 8b 55 98 mov -0x68(%rbp),%rdx 17828: 48 8d 45 ed lea -0x13(%rbp),%rax 1782c: 48 89 d6 mov %rdx,%rsi 1782f: 48 89 c7 mov %rax,%rdi 17832: e8 19 bd ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 17837: 48 89 c3 mov %rax,%rbx 1783a: 48 8d 45 e0 lea -0x20(%rbp),%rax 1783e: 48 89 c7 mov %rax,%rdi 17841: e8 3a ae ff ff callq 12680 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv@plt> 17846: 48 8b 00 mov (%rax),%rax 17849: 48 89 c7 mov %rax,%rdi 1784c: e8 2f bc ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 17851: 48 89 c1 mov %rax,%rcx 17854: 48 8b 45 a8 mov -0x58(%rbp),%rax 17858: 48 89 da mov %rbx,%rdx 1785b: 48 89 ce mov %rcx,%rsi 1785e: 48 89 c7 mov %rax,%rdi 17861: e8 1a b7 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17866: 84 c0 test %al,%al 17868: 74 51 je 178bb <_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) 1786a: 48 8b 45 e0 mov -0x20(%rbp),%rax 1786e: 48 89 c7 mov %rax,%rdi 17871: e8 2a ad ff ff callq 125a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 17876: 48 85 c0 test %rax,%rax 17879: 0f 94 c0 sete %al 1787c: 84 c0 test %al,%al 1787e: 74 1e je 1789e <_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)); 17880: 48 8b 55 e0 mov -0x20(%rbp),%rdx 17884: 48 8b 4d 98 mov -0x68(%rbp),%rcx 17888: 48 8b 45 a8 mov -0x58(%rbp),%rax 1788c: be 00 00 00 00 mov $0x0,%esi 17891: 48 89 c7 mov %rax,%rdi 17894: e8 d7 c5 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 17899: e9 b4 01 00 00 jmpq 17a52 <_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)); 1789e: 48 8b 55 a0 mov -0x60(%rbp),%rdx 178a2: 48 8b 75 a0 mov -0x60(%rbp),%rsi 178a6: 48 8b 4d 98 mov -0x68(%rbp),%rcx 178aa: 48 8b 45 a8 mov -0x58(%rbp),%rax 178ae: 48 89 c7 mov %rax,%rdi 178b1: e8 ba c5 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 178b6: e9 97 01 00 00 jmpq 17a52 <_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; 178bb: 48 8b 55 98 mov -0x68(%rbp),%rdx 178bf: 48 8b 45 a8 mov -0x58(%rbp),%rax 178c3: 48 89 d6 mov %rdx,%rsi 178c6: 48 89 c7 mov %rax,%rdi 178c9: e8 02 b2 ff ff callq 12ad0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 178ce: 48 89 c1 mov %rax,%rcx 178d1: 89 d0 mov %edx,%eax 178d3: 48 89 4d 80 mov %rcx,-0x80(%rbp) 178d7: 89 45 88 mov %eax,-0x78(%rbp) 178da: 48 8b 45 80 mov -0x80(%rbp),%rax 178de: 48 89 45 c0 mov %rax,-0x40(%rbp) 178e2: 48 8b 45 88 mov -0x78(%rbp),%rax 178e6: 48 89 45 c8 mov %rax,-0x38(%rbp) 178ea: 48 8b 45 c0 mov -0x40(%rbp),%rax 178ee: e9 5f 01 00 00 jmpq 17a52 <_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), 178f3: 48 8b 55 98 mov -0x68(%rbp),%rdx 178f7: 48 8d 45 ee lea -0x12(%rbp),%rax 178fb: 48 89 d6 mov %rdx,%rsi 178fe: 48 89 c7 mov %rax,%rdi 17901: e8 4a bc ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 17906: 48 89 c3 mov %rax,%rbx 17909: 48 8b 45 a0 mov -0x60(%rbp),%rax 1790d: 48 89 c7 mov %rax,%rdi 17910: e8 6b bb ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 17915: 48 89 c1 mov %rax,%rcx 17918: 48 8b 45 a8 mov -0x58(%rbp),%rax 1791c: 48 89 da mov %rbx,%rdx 1791f: 48 89 ce mov %rcx,%rsi 17922: 48 89 c7 mov %rax,%rdi 17925: e8 56 b6 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 1792a: 84 c0 test %al,%al 1792c: 0f 84 14 01 00 00 je 17a46 <_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; 17932: 48 8b 45 a0 mov -0x60(%rbp),%rax 17936: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_rightmost()) 1793a: 48 8b 5d a0 mov -0x60(%rbp),%rbx 1793e: 48 8b 45 a8 mov -0x58(%rbp),%rax 17942: 48 89 c7 mov %rax,%rdi 17945: e8 e6 c5 ff ff callq 13f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 1794a: 48 8b 00 mov (%rax),%rax 1794d: 48 39 c3 cmp %rax,%rbx 17950: 0f 94 c0 sete %al 17953: 84 c0 test %al,%al 17955: 74 29 je 17980 <_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)); 17957: 48 8b 45 a8 mov -0x58(%rbp),%rax 1795b: 48 89 c7 mov %rax,%rdi 1795e: e8 cd c5 ff ff callq 13f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 17963: 48 8b 10 mov (%rax),%rdx 17966: 48 8b 4d 98 mov -0x68(%rbp),%rcx 1796a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1796e: be 00 00 00 00 mov $0x0,%esi 17973: 48 89 c7 mov %rax,%rdi 17976: e8 f5 c4 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 1797b: e9 d2 00 00 00 jmpq 17a52 <_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), 17980: 48 8d 45 e0 lea -0x20(%rbp),%rax 17984: 48 89 c7 mov %rax,%rdi 17987: e8 24 c3 ff ff callq 13cb0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv@plt> 1798c: 48 8b 00 mov (%rax),%rax 1798f: 48 89 c7 mov %rax,%rdi 17992: e8 e9 ba ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 17997: 48 89 c3 mov %rax,%rbx 1799a: 48 8b 55 98 mov -0x68(%rbp),%rdx 1799e: 48 8d 45 ef lea -0x11(%rbp),%rax 179a2: 48 89 d6 mov %rdx,%rsi 179a5: 48 89 c7 mov %rax,%rdi 179a8: e8 a3 bb ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 179ad: 48 89 c1 mov %rax,%rcx 179b0: 48 8b 45 a8 mov -0x58(%rbp),%rax 179b4: 48 89 da mov %rbx,%rdx 179b7: 48 89 ce mov %rcx,%rsi 179ba: 48 89 c7 mov %rax,%rdi 179bd: e8 be b5 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 179c2: 84 c0 test %al,%al 179c4: 74 4b je 17a11 <_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) 179c6: 48 8b 45 a0 mov -0x60(%rbp),%rax 179ca: 48 89 c7 mov %rax,%rdi 179cd: e8 ce ab ff ff callq 125a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 179d2: 48 85 c0 test %rax,%rax 179d5: 0f 94 c0 sete %al 179d8: 84 c0 test %al,%al 179da: 74 1b je 179f7 <_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)); 179dc: 48 8b 55 a0 mov -0x60(%rbp),%rdx 179e0: 48 8b 4d 98 mov -0x68(%rbp),%rcx 179e4: 48 8b 45 a8 mov -0x58(%rbp),%rax 179e8: be 00 00 00 00 mov $0x0,%esi 179ed: 48 89 c7 mov %rax,%rdi 179f0: e8 7b c4 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 179f5: eb 5b jmp 17a52 <_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)); 179f7: 48 8b 55 e0 mov -0x20(%rbp),%rdx 179fb: 48 8b 75 e0 mov -0x20(%rbp),%rsi 179ff: 48 8b 4d 98 mov -0x68(%rbp),%rcx 17a03: 48 8b 45 a8 mov -0x58(%rbp),%rax 17a07: 48 89 c7 mov %rax,%rdi 17a0a: e8 61 c4 ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 17a0f: eb 41 jmp 17a52 <_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; 17a11: 48 8b 55 98 mov -0x68(%rbp),%rdx 17a15: 48 8b 45 a8 mov -0x58(%rbp),%rax 17a19: 48 89 d6 mov %rdx,%rsi 17a1c: 48 89 c7 mov %rax,%rdi 17a1f: e8 ac b0 ff ff callq 12ad0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_@plt> 17a24: 48 89 c1 mov %rax,%rcx 17a27: 89 d0 mov %edx,%eax 17a29: 48 89 4d 80 mov %rcx,-0x80(%rbp) 17a2d: 89 45 88 mov %eax,-0x78(%rbp) 17a30: 48 8b 45 80 mov -0x80(%rbp),%rax 17a34: 48 89 45 d0 mov %rax,-0x30(%rbp) 17a38: 48 8b 45 88 mov -0x78(%rbp),%rax 17a3c: 48 89 45 d8 mov %rax,-0x28(%rbp) 17a40: 48 8b 45 d0 mov -0x30(%rbp),%rax 17a44: eb 0c jmp 17a52 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS3_ERKS3_+0x3c6> } else // Equivalent keys. return __position._M_const_cast(); 17a46: 48 8d 45 a0 lea -0x60(%rbp),%rax 17a4a: 48 89 c7 mov %rax,%rdi 17a4d: e8 2e c2 ff ff callq 13c80 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEE13_M_const_castEv@plt> } 17a52: 48 83 c4 78 add $0x78,%rsp 17a56: 5b pop %rbx 17a57: 5d pop %rbp 17a58: c3 retq 17a59: 90 nop 0000000000017a5a <_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>:: 17a5a: 55 push %rbp 17a5b: 48 89 e5 mov %rsp,%rbp 17a5e: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 17a65: 48 89 bd 68 ff ff ff mov %rdi,-0x98(%rbp) 17a6c: 48 89 b5 60 ff ff ff mov %rsi,-0xa0(%rbp) equal_range(const _Key& __k) { _Link_type __x = _M_begin(); 17a73: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17a7a: 48 89 c7 mov %rax,%rdi 17a7d: e8 de b4 ff ff callq 12f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 17a82: 48 89 45 e0 mov %rax,-0x20(%rbp) _Link_type __y = _M_end(); 17a86: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17a8d: 48 89 c7 mov %rax,%rdi 17a90: e8 6b c4 ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 17a95: 48 89 45 e8 mov %rax,-0x18(%rbp) while (__x != 0) 17a99: e9 38 01 00 00 jmpq 17bd6 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> { if (_M_impl._M_key_compare(_S_key(__x), __k)) 17a9e: 48 8b 45 e0 mov -0x20(%rbp),%rax 17aa2: 48 89 c7 mov %rax,%rdi 17aa5: e8 f6 ab ff ff callq 126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 17aaa: 48 89 c1 mov %rax,%rcx 17aad: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17ab4: 48 8b 95 60 ff ff ff mov -0xa0(%rbp),%rdx 17abb: 48 89 ce mov %rcx,%rsi 17abe: 48 89 c7 mov %rax,%rdi 17ac1: e8 ba b4 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17ac6: 84 c0 test %al,%al 17ac8: 74 15 je 17adf <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x85> __x = _S_right(__x); 17aca: 48 8b 45 e0 mov -0x20(%rbp),%rax 17ace: 48 89 c7 mov %rax,%rdi 17ad1: e8 da b7 ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 17ad6: 48 89 45 e0 mov %rax,-0x20(%rbp) 17ada: e9 f7 00 00 00 jmpq 17bd6 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> else if (_M_impl._M_key_compare(__k, _S_key(__x))) 17adf: 48 8b 45 e0 mov -0x20(%rbp),%rax 17ae3: 48 89 c7 mov %rax,%rdi 17ae6: e8 b5 ab ff ff callq 126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 17aeb: 48 89 c2 mov %rax,%rdx 17aee: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17af5: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 17afc: 48 89 ce mov %rcx,%rsi 17aff: 48 89 c7 mov %rax,%rdi 17b02: e8 79 b4 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17b07: 84 c0 test %al,%al 17b09: 74 1d je 17b28 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0xce> __y = __x, __x = _S_left(__x); 17b0b: 48 8b 45 e0 mov -0x20(%rbp),%rax 17b0f: 48 89 45 e8 mov %rax,-0x18(%rbp) 17b13: 48 8b 45 e0 mov -0x20(%rbp),%rax 17b17: 48 89 c7 mov %rax,%rdi 17b1a: e8 91 c5 ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 17b1f: 48 89 45 e0 mov %rax,-0x20(%rbp) 17b23: e9 ae 00 00 00 jmpq 17bd6 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11equal_rangeERS1_+0x17c> else { _Link_type __xu(__x), __yu(__y); 17b28: 48 8b 45 e0 mov -0x20(%rbp),%rax 17b2c: 48 89 45 f0 mov %rax,-0x10(%rbp) 17b30: 48 8b 45 e8 mov -0x18(%rbp),%rax 17b34: 48 89 45 f8 mov %rax,-0x8(%rbp) __y = __x, __x = _S_left(__x); 17b38: 48 8b 45 e0 mov -0x20(%rbp),%rax 17b3c: 48 89 45 e8 mov %rax,-0x18(%rbp) 17b40: 48 8b 45 e0 mov -0x20(%rbp),%rax 17b44: 48 89 c7 mov %rax,%rdi 17b47: e8 64 c5 ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 17b4c: 48 89 45 e0 mov %rax,-0x20(%rbp) __xu = _S_right(__xu); 17b50: 48 8b 45 f0 mov -0x10(%rbp),%rax 17b54: 48 89 c7 mov %rax,%rdi 17b57: e8 54 b7 ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 17b5c: 48 89 45 f0 mov %rax,-0x10(%rbp) return pair(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); 17b60: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 17b67: 48 8b 55 f8 mov -0x8(%rbp),%rdx 17b6b: 48 8b 75 f0 mov -0x10(%rbp),%rsi 17b6f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17b76: 48 89 c7 mov %rax,%rdi 17b79: e8 52 be ff ff callq 139d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 17b7e: 48 89 45 b0 mov %rax,-0x50(%rbp) 17b82: 48 8b 8d 60 ff ff ff mov -0xa0(%rbp),%rcx 17b89: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17b8d: 48 8b 75 e0 mov -0x20(%rbp),%rsi 17b91: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 17b98: 48 89 c7 mov %rax,%rdi 17b9b: e8 70 ad ff ff callq 12910 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_@plt> 17ba0: 48 89 45 a0 mov %rax,-0x60(%rbp) 17ba4: 48 8d 55 b0 lea -0x50(%rbp),%rdx 17ba8: 48 8d 4d a0 lea -0x60(%rbp),%rcx 17bac: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 17bb3: 48 89 ce mov %rcx,%rsi 17bb6: 48 89 c7 mov %rax,%rdi 17bb9: e8 c2 c1 ff ff callq 13d80 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt> 17bbe: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 17bc5: 48 89 45 90 mov %rax,-0x70(%rbp) 17bc9: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 17bd0: 48 89 45 98 mov %rax,-0x68(%rbp) 17bd4: eb 5d jmp 17c33 <_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) 17bd6: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 17bdb: 0f 95 c0 setne %al 17bde: 84 c0 test %al,%al 17be0: 0f 85 b8 fe ff ff jne 17a9e <_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)); 17be6: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17bea: 48 8d 45 d0 lea -0x30(%rbp),%rax 17bee: 48 89 d6 mov %rdx,%rsi 17bf1: 48 89 c7 mov %rax,%rdi 17bf4: e8 17 b8 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 17bf9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 17bfd: 48 8d 45 c0 lea -0x40(%rbp),%rax 17c01: 48 89 d6 mov %rdx,%rsi 17c04: 48 89 c7 mov %rax,%rdi 17c07: e8 04 b8 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 17c0c: 48 8d 55 d0 lea -0x30(%rbp),%rdx 17c10: 48 8d 4d c0 lea -0x40(%rbp),%rcx 17c14: 48 8d 45 80 lea -0x80(%rbp),%rax 17c18: 48 89 ce mov %rcx,%rsi 17c1b: 48 89 c7 mov %rax,%rdi 17c1e: e8 5d c1 ff ff callq 13d80 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEES4_EC1ERKS4_S7_@plt> 17c23: 48 8b 45 80 mov -0x80(%rbp),%rax 17c27: 48 89 45 90 mov %rax,-0x70(%rbp) 17c2b: 48 8b 45 88 mov -0x78(%rbp),%rax 17c2f: 48 89 45 98 mov %rax,-0x68(%rbp) 17c33: 48 8b 45 90 mov -0x70(%rbp),%rax 17c37: 48 8b 55 98 mov -0x68(%rbp),%rdx } 17c3b: c9 leaveq 17c3c: c3 retq 17c3d: 90 nop 0000000000017c3e <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE4sizeEv>: bool empty() const { return _M_impl._M_node_count == 0; } size_type size() const 17c3e: 55 push %rbp 17c3f: 48 89 e5 mov %rsp,%rbp 17c42: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_node_count; } 17c46: 48 8b 45 f8 mov -0x8(%rbp),%rax 17c4a: 48 8b 40 28 mov 0x28(%rax),%rax 17c4e: 5d pop %rbp 17c4f: c3 retq 0000000000017c50 <_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) 17c50: 55 push %rbp 17c51: 48 89 e5 mov %rsp,%rbp 17c54: 48 83 ec 40 sub $0x40,%rsp 17c58: 48 89 7d d8 mov %rdi,-0x28(%rbp) 17c5c: 48 89 75 d0 mov %rsi,-0x30(%rbp) 17c60: 48 89 55 c0 mov %rdx,-0x40(%rbp) { _M_erase_aux(__first, __last); } 17c64: 48 8d 55 c0 lea -0x40(%rbp),%rdx 17c68: 48 8d 45 f0 lea -0x10(%rbp),%rax 17c6c: 48 89 d6 mov %rdx,%rsi 17c6f: 48 89 c7 mov %rax,%rdi 17c72: e8 59 b2 ff ff callq 12ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 17c77: 48 8d 55 d0 lea -0x30(%rbp),%rdx 17c7b: 48 8d 45 e0 lea -0x20(%rbp),%rax 17c7f: 48 89 d6 mov %rdx,%rsi 17c82: 48 89 c7 mov %rax,%rdi 17c85: e8 46 b2 ff ff callq 12ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 17c8a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 17c8e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 17c92: 48 8b 45 d8 mov -0x28(%rbp),%rax 17c96: 48 89 ce mov %rcx,%rsi 17c99: 48 89 c7 mov %rax,%rdi 17c9c: e8 9f be ff ff callq 13b40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_@plt> 17ca1: c9 leaveq 17ca2: c3 retq 17ca3: 90 nop 0000000000017ca4 <_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) 17ca4: 55 push %rbp 17ca5: 48 89 e5 mov %rsp,%rbp 17ca8: 53 push %rbx 17ca9: 48 83 ec 28 sub $0x28,%rsp 17cad: 48 89 7d d8 mov %rdi,-0x28(%rbp) 17cb1: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Node* __p = this->_M_get_node(); 17cb5: 48 8b 45 d8 mov -0x28(%rbp),%rax 17cb9: 48 89 c7 mov %rax,%rdi 17cbc: e8 5f ba ff ff callq 13720 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv@plt> 17cc1: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { _M_get_Tp_allocator().construct 17cc5: 48 8b 45 e0 mov -0x20(%rbp),%rax 17cc9: 48 83 c0 10 add $0x10,%rax 17ccd: 48 89 c7 mov %rax,%rdi 17cd0: e8 4b b7 ff ff callq 13420 <_ZSt11__addressofIiEPT_RS0_@plt> 17cd5: 48 89 c3 mov %rax,%rbx 17cd8: 48 8b 55 d8 mov -0x28(%rbp),%rdx 17cdc: 48 8d 45 ef lea -0x11(%rbp),%rax 17ce0: 48 89 d6 mov %rdx,%rsi 17ce3: 48 89 c7 mov %rax,%rdi 17ce6: e8 f5 aa ff ff callq 127e0 <_ZNKSt10_List_baseIiSaIiEE19_M_get_Tp_allocatorEv@plt> 17ceb: 48 8b 55 d0 mov -0x30(%rbp),%rdx 17cef: 48 8d 45 ef lea -0x11(%rbp),%rax 17cf3: 48 89 de mov %rbx,%rsi 17cf6: 48 89 c7 mov %rax,%rdi 17cf9: e8 d2 c0 ff ff callq 13dd0 <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi@plt> 17cfe: 48 8d 45 ef lea -0x11(%rbp),%rax 17d02: 48 89 c7 mov %rax,%rdi 17d05: e8 76 c1 ff ff callq 13e80 <_ZNSaIiED1Ev@plt> __catch(...) { _M_put_node(__p); __throw_exception_again; } return __p; 17d0a: 48 8b 45 e0 mov -0x20(%rbp),%rax } 17d0e: 48 83 c4 28 add $0x28,%rsp 17d12: 5b pop %rbx 17d13: 5d pop %rbp 17d14: c3 retq 17d15: 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 17d18: 48 8d 45 ef lea -0x11(%rbp),%rax 17d1c: 48 89 c7 mov %rax,%rdi 17d1f: e8 5c c1 ff ff callq 13e80 <_ZNSaIiED1Ev@plt> 17d24: 48 89 d8 mov %rbx,%rax 17d27: eb 13 jmp 17d3c <_ZNSt4listIiSaIiEE14_M_create_nodeERKi+0x98> 17d29: 48 89 c3 mov %rax,%rbx (std::__addressof(__p->_M_data), __x); } __catch(...) 17d2c: e8 0f bf ff ff callq 13c40 <__cxa_end_catch@plt> 17d31: 48 89 d8 mov %rbx,%rax 17d34: 48 89 c7 mov %rax,%rdi 17d37: e8 e4 c1 ff ff callq 13f20 <_Unwind_Resume@plt> 17d3c: 48 89 c7 mov %rax,%rdi 17d3f: e8 2c c0 ff ff callq 13d70 <__cxa_begin_catch@plt> { _M_put_node(__p); 17d44: 48 8b 45 d8 mov -0x28(%rbp),%rax 17d48: 48 8b 55 e0 mov -0x20(%rbp),%rdx 17d4c: 48 89 d6 mov %rdx,%rsi 17d4f: 48 89 c7 mov %rax,%rdi 17d52: e8 49 b1 ff ff callq 12ea0 <_ZNSt10_List_baseIiSaIiEE11_M_put_nodeEPSt10_List_nodeIiE@plt> __throw_exception_again; 17d57: e8 f4 aa ff ff callq 12850 <__cxa_rethrow@plt> 0000000000017d5c <_ZNSt10_List_baseIiSaIiEE10_List_implC1Ev>: struct _List_impl : public _Node_alloc_type { __detail::_List_node_base _M_node; _List_impl() 17d5c: 55 push %rbp 17d5d: 48 89 e5 mov %rsp,%rbp 17d60: 48 83 ec 10 sub $0x10,%rsp 17d64: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Node_alloc_type(), _M_node() 17d68: 48 8b 45 f8 mov -0x8(%rbp),%rax 17d6c: 48 89 c7 mov %rax,%rdi 17d6f: e8 6c c2 ff ff callq 13fe0 <_ZNSaISt10_List_nodeIiEEC2Ev@plt> 17d74: 48 8b 45 f8 mov -0x8(%rbp),%rax 17d78: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 17d7f: 48 8b 45 f8 mov -0x8(%rbp),%rax 17d83: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) 17d8a: 00 { } 17d8b: c9 leaveq 17d8c: c3 retq 17d8d: 90 nop 0000000000017d8e <_ZNSt10_List_baseIiSaIiEE7_M_initEv>: void _M_clear(); void _M_init() 17d8e: 55 push %rbp 17d8f: 48 89 e5 mov %rsp,%rbp 17d92: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_impl._M_node._M_next = &this->_M_impl._M_node; 17d96: 48 8b 55 f8 mov -0x8(%rbp),%rdx 17d9a: 48 8b 45 f8 mov -0x8(%rbp),%rax 17d9e: 48 89 10 mov %rdx,(%rax) this->_M_impl._M_node._M_prev = &this->_M_impl._M_node; 17da1: 48 8b 55 f8 mov -0x8(%rbp),%rdx 17da5: 48 8b 45 f8 mov -0x8(%rbp),%rax 17da9: 48 89 50 08 mov %rdx,0x8(%rax) } 17dad: 5d pop %rbp 17dae: c3 retq 17daf: 90 nop 0000000000017db0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 17db0: 55 push %rbp 17db1: 48 89 e5 mov %rsp,%rbp 17db4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17db8: 5d pop %rbp 17db9: c3 retq 0000000000017dba <_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 17dba: 55 push %rbp 17dbb: 48 89 e5 mov %rsp,%rbp 17dbe: 48 83 ec 10 sub $0x10,%rsp 17dc2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17dc6: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _Tp_alloc_type(_M_get_Node_allocator()); } 17dca: 48 8b 45 f0 mov -0x10(%rbp),%rax 17dce: 48 89 c7 mov %rax,%rdi 17dd1: e8 aa b5 ff ff callq 13380 <_ZNKSt10_List_baseIiSaIiEE21_M_get_Node_allocatorEv@plt> 17dd6: 48 89 c2 mov %rax,%rdx 17dd9: 48 8b 45 f8 mov -0x8(%rbp),%rax 17ddd: 48 89 d6 mov %rdx,%rsi 17de0: 48 89 c7 mov %rax,%rdi 17de3: e8 78 ac ff ff callq 12a60 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E@plt> 17de8: 48 8b 45 f8 mov -0x8(%rbp),%rax 17dec: c9 leaveq 17ded: c3 retq 0000000000017dee <_ZNSaIiED1Ev>: 17dee: 55 push %rbp 17def: 48 89 e5 mov %rsp,%rbp 17df2: 48 83 ec 10 sub $0x10,%rsp 17df6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17dfa: 48 8b 45 f8 mov -0x8(%rbp),%rax 17dfe: 48 89 c7 mov %rax,%rdi 17e01: e8 6a ac ff ff callq 12a70 <_ZN9__gnu_cxx13new_allocatorIiED2Ev@plt> 17e06: c9 leaveq 17e07: c3 retq 0000000000017e08 <_ZSt11__addressofIiEPT_RS0_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 17e08: 55 push %rbp 17e09: 48 89 e5 mov %rsp,%rbp 17e0c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 17e10: 48 8b 45 f8 mov -0x8(%rbp),%rax } 17e14: 5d pop %rbp 17e15: c3 retq 0000000000017e16 <_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 17e16: 55 push %rbp 17e17: 48 89 e5 mov %rsp,%rbp 17e1a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17e1e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 17e22: 5d pop %rbp 17e23: c3 retq 0000000000017e24 <_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) 17e24: 55 push %rbp 17e25: 48 89 e5 mov %rsp,%rbp 17e28: 48 83 ec 10 sub $0x10,%rsp 17e2c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17e30: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_alloc_type::deallocate(__p, 1); } 17e34: 48 8b 45 f8 mov -0x8(%rbp),%rax 17e38: 48 8b 4d f0 mov -0x10(%rbp),%rcx 17e3c: ba 01 00 00 00 mov $0x1,%edx 17e41: 48 89 ce mov %rcx,%rsi 17e44: 48 89 c7 mov %rax,%rdi 17e47: e8 e4 a8 ff ff callq 12730 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_m@plt> 17e4c: c9 leaveq 17e4d: c3 retq 0000000000017e4e <_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() 17e4e: 55 push %rbp 17e4f: 48 89 e5 mov %rsp,%rbp 17e52: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 17e56: 48 8b 45 f8 mov -0x8(%rbp),%rax 17e5a: 48 83 c0 08 add $0x8,%rax 17e5e: 5d pop %rbp 17e5f: c3 retq 0000000000017e60 <_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>:: 17e60: 55 push %rbp 17e61: 48 89 e5 mov %rsp,%rbp 17e64: 48 83 ec 30 sub $0x30,%rsp 17e68: 48 89 7d e8 mov %rdi,-0x18(%rbp) 17e6c: 48 89 75 e0 mov %rsi,-0x20(%rbp) 17e70: 48 89 55 d8 mov %rdx,-0x28(%rbp) 17e74: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 17e78: eb 53 jmp 17ecd <_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)) 17e7a: 48 8b 45 e0 mov -0x20(%rbp),%rax 17e7e: 48 89 c7 mov %rax,%rdi 17e81: e8 1a a8 ff ff callq 126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 17e86: 48 89 c1 mov %rax,%rcx 17e89: 48 8b 45 e8 mov -0x18(%rbp),%rax 17e8d: 48 8b 55 d0 mov -0x30(%rbp),%rdx 17e91: 48 89 ce mov %rcx,%rsi 17e94: 48 89 c7 mov %rax,%rdi 17e97: e8 e4 b0 ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17e9c: 83 f0 01 xor $0x1,%eax 17e9f: 84 c0 test %al,%al 17ea1: 74 1a je 17ebd <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x5d> __y = __x, __x = _S_left(__x); 17ea3: 48 8b 45 e0 mov -0x20(%rbp),%rax 17ea7: 48 89 45 d8 mov %rax,-0x28(%rbp) 17eab: 48 8b 45 e0 mov -0x20(%rbp),%rax 17eaf: 48 89 c7 mov %rax,%rdi 17eb2: e8 f9 c1 ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 17eb7: 48 89 45 e0 mov %rax,-0x20(%rbp) 17ebb: eb 10 jmp 17ecd <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6d> else __x = _S_right(__x); 17ebd: 48 8b 45 e0 mov -0x20(%rbp),%rax 17ec1: 48 89 c7 mov %rax,%rdi 17ec4: e8 e7 b3 ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 17ec9: 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) 17ecd: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 17ed2: 0f 95 c0 setne %al 17ed5: 84 c0 test %al,%al 17ed7: 75 a1 jne 17e7a <_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); 17ed9: 48 8b 55 d8 mov -0x28(%rbp),%rdx 17edd: 48 8d 45 f0 lea -0x10(%rbp),%rax 17ee1: 48 89 d6 mov %rdx,%rsi 17ee4: 48 89 c7 mov %rax,%rdi 17ee7: e8 24 b5 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 17eec: 48 8b 45 f0 mov -0x10(%rbp),%rax } 17ef0: c9 leaveq 17ef1: c3 retq 0000000000017ef2 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 17ef2: 55 push %rbp 17ef3: 48 89 e5 mov %rsp,%rbp 17ef6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17efa: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 17efe: 48 8b 45 f8 mov -0x8(%rbp),%rax 17f02: 48 8b 55 f0 mov -0x10(%rbp),%rdx 17f06: 48 89 10 mov %rdx,(%rax) 17f09: 5d pop %rbp 17f0a: c3 retq 17f0b: 90 nop 0000000000017f0c <_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() 17f0c: 55 push %rbp 17f0d: 48 89 e5 mov %rsp,%rbp 17f10: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 17f14: 48 8b 45 f8 mov -0x8(%rbp),%rax 17f18: 48 83 c0 20 add $0x20,%rax 17f1c: 5d pop %rbp 17f1d: c3 retq 0000000000017f1e <_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) 17f1e: 55 push %rbp 17f1f: 48 89 e5 mov %rsp,%rbp 17f22: 48 83 ec 20 sub $0x20,%rsp 17f26: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 17f2a: 48 8b 45 e8 mov -0x18(%rbp),%rax 17f2e: 48 89 c7 mov %rax,%rdi 17f31: e8 3a ba ff ff callq 13970 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 17f36: 48 89 c2 mov %rax,%rdx 17f39: 48 8d 45 ff lea -0x1(%rbp),%rax 17f3d: 48 89 d6 mov %rdx,%rsi 17f40: 48 89 c7 mov %rax,%rdi 17f43: e8 08 b6 ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 17f48: c9 leaveq 17f49: c3 retq 0000000000017f4a <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_>: typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const 17f4a: 55 push %rbp 17f4b: 48 89 e5 mov %rsp,%rbp 17f4e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 17f52: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x.first; } 17f56: 48 8b 45 f0 mov -0x10(%rbp),%rax 17f5a: 5d pop %rbp 17f5b: c3 retq 0000000000017f5c <_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>:: 17f5c: 55 push %rbp 17f5d: 48 89 e5 mov %rsp,%rbp 17f60: 53 push %rbx 17f61: 48 83 ec 48 sub $0x48,%rsp 17f65: 48 89 7d c8 mov %rdi,-0x38(%rbp) 17f69: 48 89 75 c0 mov %rsi,-0x40(%rbp) 17f6d: 48 89 55 b8 mov %rdx,-0x48(%rbp) 17f71: 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))); 17f75: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 17f7a: 75 4d jne 17fc9 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x6d> 17f7c: 48 8b 45 c8 mov -0x38(%rbp),%rax 17f80: 48 89 c7 mov %rax,%rdi 17f83: e8 78 bf ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 17f88: 48 3b 45 b8 cmp -0x48(%rbp),%rax 17f8c: 74 3b je 17fc9 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x6d> 17f8e: 48 8b 45 b8 mov -0x48(%rbp),%rax 17f92: 48 89 c7 mov %rax,%rdi 17f95: e8 e6 b4 ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 17f9a: 48 89 c3 mov %rax,%rbx 17f9d: 48 8b 55 b0 mov -0x50(%rbp),%rdx 17fa1: 48 8d 45 ee lea -0x12(%rbp),%rax 17fa5: 48 89 d6 mov %rdx,%rsi 17fa8: 48 89 c7 mov %rax,%rdi 17fab: e8 a0 b5 ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 17fb0: 48 89 c1 mov %rax,%rcx 17fb3: 48 8b 45 c8 mov -0x38(%rbp),%rax 17fb7: 48 89 da mov %rbx,%rdx 17fba: 48 89 ce mov %rcx,%rsi 17fbd: 48 89 c7 mov %rax,%rdi 17fc0: e8 bb af ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 17fc5: 84 c0 test %al,%al 17fc7: 74 07 je 17fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x74> 17fc9: b8 01 00 00 00 mov $0x1,%eax 17fce: eb 05 jmp 17fd5 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_+0x79> 17fd0: b8 00 00 00 00 mov $0x0,%eax 17fd5: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 17fd8: 48 8b 55 b0 mov -0x50(%rbp),%rdx 17fdc: 48 8b 45 c8 mov -0x38(%rbp),%rax 17fe0: 48 89 d6 mov %rdx,%rsi 17fe3: 48 89 c7 mov %rax,%rdi 17fe6: e8 55 bf ff ff callq 13f40 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_@plt> 17feb: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 17fef: 48 8b 45 c8 mov -0x38(%rbp),%rax 17ff3: 48 8d 48 08 lea 0x8(%rax),%rcx 17ff7: 0f b6 45 ef movzbl -0x11(%rbp),%eax 17ffb: 48 8b 55 b8 mov -0x48(%rbp),%rdx 17fff: 48 8b 75 e0 mov -0x20(%rbp),%rsi 18003: 89 c7 mov %eax,%edi 18005: e8 36 b8 ff ff callq 13840 <_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; 1800a: 48 8b 45 c8 mov -0x38(%rbp),%rax 1800e: 48 8b 40 28 mov 0x28(%rax),%rax 18012: 48 8d 50 01 lea 0x1(%rax),%rdx 18016: 48 8b 45 c8 mov -0x38(%rbp),%rax 1801a: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 1801e: 48 8b 55 e0 mov -0x20(%rbp),%rdx 18022: 48 8d 45 d0 lea -0x30(%rbp),%rax 18026: 48 89 d6 mov %rdx,%rsi 18029: 48 89 c7 mov %rax,%rdi 1802c: e8 df b3 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 18031: 48 8b 45 d0 mov -0x30(%rbp),%rax } 18035: 48 83 c4 48 add $0x48,%rsp 18039: 5b pop %rbx 1803a: 5d pop %rbp 1803b: c3 retq 000000000001803c <_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>:: 1803c: 55 push %rbp 1803d: 48 89 e5 mov %rsp,%rbp 18040: 53 push %rbx 18041: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 18048: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 1804f: 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(); 18056: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1805d: 48 89 c7 mov %rax,%rdi 18060: e8 fb ae ff ff callq 12f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 18065: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 18069: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 18070: 48 89 c7 mov %rax,%rdi 18073: e8 88 be ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 18078: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 1807c: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 18080: eb 6c jmp 180ee <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xb2> { __y = __x; 18082: 48 8b 45 d8 mov -0x28(%rbp),%rax 18086: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 1808a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1808e: 48 89 c7 mov %rax,%rdi 18091: e8 0a a6 ff ff callq 126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 18096: 48 89 c3 mov %rax,%rbx 18099: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 180a0: 48 8d 45 ea lea -0x16(%rbp),%rax 180a4: 48 89 d6 mov %rdx,%rsi 180a7: 48 89 c7 mov %rax,%rdi 180aa: e8 a1 b4 ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 180af: 48 89 c1 mov %rax,%rcx 180b2: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 180b9: 48 89 da mov %rbx,%rdx 180bc: 48 89 ce mov %rcx,%rsi 180bf: 48 89 c7 mov %rax,%rdi 180c2: e8 b9 ae ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 180c7: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 180ca: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 180ce: 74 0e je 180de <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xa2> 180d0: 48 8b 45 d8 mov -0x28(%rbp),%rax 180d4: 48 89 c7 mov %rax,%rdi 180d7: e8 d4 bf ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 180dc: eb 0c jmp 180ea <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0xae> 180de: 48 8b 45 d8 mov -0x28(%rbp),%rax 180e2: 48 89 c7 mov %rax,%rdi 180e5: e8 c6 b1 ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 180ea: 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) 180ee: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 180f3: 0f 95 c0 setne %al 180f6: 84 c0 test %al,%al 180f8: 75 88 jne 18082 <_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); 180fa: 48 8b 55 e0 mov -0x20(%rbp),%rdx 180fe: 48 8d 45 a0 lea -0x60(%rbp),%rax 18102: 48 89 d6 mov %rdx,%rsi 18105: 48 89 c7 mov %rax,%rdi 18108: e8 03 b3 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> if (__comp) 1810d: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 18111: 0f 84 91 00 00 00 je 181a8 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x16c> { if (__j == begin()) 18117: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1811e: 48 89 c7 mov %rax,%rdi 18121: e8 9a ae ff ff callq 12fc0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt> 18126: 48 89 45 b0 mov %rax,-0x50(%rbp) 1812a: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1812e: 48 8d 45 a0 lea -0x60(%rbp),%rax 18132: 48 89 d6 mov %rdx,%rsi 18135: 48 89 c7 mov %rax,%rdi 18138: e8 c3 b0 ff ff callq 13200 <_ZNKSt17_Rb_tree_iteratorISt4pairIKmPvEEeqERKS4_@plt> 1813d: 84 c0 test %al,%al 1813f: 74 5b je 1819c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 18141: c6 45 eb 01 movb $0x1,-0x15(%rbp) 18145: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 1814c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 18150: 48 8b 75 d8 mov -0x28(%rbp),%rsi 18154: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1815b: 48 89 c7 mov %rax,%rdi 1815e: e8 0d bd ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 18163: 48 89 45 c0 mov %rax,-0x40(%rbp) 18167: 48 8d 55 eb lea -0x15(%rbp),%rdx 1816b: 48 8d 4d c0 lea -0x40(%rbp),%rcx 1816f: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 18176: 48 89 ce mov %rcx,%rsi 18179: 48 89 c7 mov %rax,%rdi 1817c: e8 0f b0 ff ff callq 13190 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 18181: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 18188: 48 89 45 90 mov %rax,-0x70(%rbp) 1818c: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 18193: 48 89 45 98 mov %rax,-0x68(%rbp) 18197: e9 d0 00 00 00 jmpq 1826c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x230> else --__j; 1819c: 48 8d 45 a0 lea -0x60(%rbp),%rax 181a0: 48 89 c7 mov %rax,%rdi 181a3: e8 08 b3 ff ff callq 134b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 181a8: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 181af: 48 8d 45 ec lea -0x14(%rbp),%rax 181b3: 48 89 d6 mov %rdx,%rsi 181b6: 48 89 c7 mov %rax,%rdi 181b9: e8 92 b3 ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 181be: 48 89 c3 mov %rax,%rbx 181c1: 48 8b 45 a0 mov -0x60(%rbp),%rax 181c5: 48 89 c7 mov %rax,%rdi 181c8: e8 b3 b2 ff ff callq 13480 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 181cd: 48 89 c1 mov %rax,%rcx 181d0: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 181d7: 48 89 da mov %rbx,%rdx 181da: 48 89 ce mov %rcx,%rsi 181dd: 48 89 c7 mov %rax,%rdi 181e0: e8 9b ad ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 181e5: 84 c0 test %al,%al 181e7: 74 58 je 18241 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 181e9: c6 45 ed 01 movb $0x1,-0x13(%rbp) 181ed: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 181f4: 48 8b 55 e0 mov -0x20(%rbp),%rdx 181f8: 48 8b 75 d8 mov -0x28(%rbp),%rsi 181fc: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 18203: 48 89 c7 mov %rax,%rdi 18206: e8 65 bc ff ff callq 13e70 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_@plt> 1820b: 48 89 45 d0 mov %rax,-0x30(%rbp) 1820f: 48 8d 55 ed lea -0x13(%rbp),%rdx 18213: 48 8d 4d d0 lea -0x30(%rbp),%rcx 18217: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 1821e: 48 89 ce mov %rcx,%rsi 18221: 48 89 c7 mov %rax,%rdi 18224: e8 67 af ff ff callq 13190 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 18229: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 18230: 48 89 45 90 mov %rax,-0x70(%rbp) 18234: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 1823b: 48 89 45 98 mov %rax,-0x68(%rbp) 1823f: eb 2b jmp 1826c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE16_M_insert_uniqueERKS3_+0x230> return pair(__j, false); 18241: c6 45 ee 00 movb $0x0,-0x12(%rbp) 18245: 48 8d 55 ee lea -0x12(%rbp),%rdx 18249: 48 8d 4d a0 lea -0x60(%rbp),%rcx 1824d: 48 8d 45 80 lea -0x80(%rbp),%rax 18251: 48 89 ce mov %rcx,%rsi 18254: 48 89 c7 mov %rax,%rdi 18257: e8 34 af ff ff callq 13190 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKmPvEEbEC1ERKS4_RKb@plt> 1825c: 48 8b 45 80 mov -0x80(%rbp),%rax 18260: 48 89 45 90 mov %rax,-0x70(%rbp) 18264: 48 8b 45 88 mov -0x78(%rbp),%rax 18268: 48 89 45 98 mov %rax,-0x68(%rbp) 1826c: 48 8b 45 90 mov -0x70(%rbp),%rax 18270: 8b 55 98 mov -0x68(%rbp),%edx } 18273: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 1827a: 5b pop %rbx 1827b: 5d pop %rbp 1827c: c3 retq 1827d: 90 nop 000000000001827e <_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() 1827e: 55 push %rbp 1827f: 48 89 e5 mov %rsp,%rbp 18282: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 18286: 48 8b 45 f8 mov -0x8(%rbp),%rax 1828a: 48 83 c0 18 add $0x18,%rax 1828e: 5d pop %rbp 1828f: c3 retq 0000000000018290 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 18290: 55 push %rbp 18291: 48 89 e5 mov %rsp,%rbp 18294: 48 83 ec 10 sub $0x10,%rsp 18298: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 1829c: 48 8b 45 f8 mov -0x8(%rbp),%rax 182a0: 48 8b 00 mov (%rax),%rax 182a3: 48 89 c7 mov %rax,%rdi 182a6: e8 f5 a1 ff ff callq 124a0 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt> 182ab: 48 8b 55 f8 mov -0x8(%rbp),%rdx 182af: 48 89 02 mov %rax,(%rdx) return *this; 182b2: 48 8b 45 f8 mov -0x8(%rbp),%rax } 182b6: c9 leaveq 182b7: c3 retq 00000000000182b8 <_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) 182b8: 55 push %rbp 182b9: 48 89 e5 mov %rsp,%rbp 182bc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 182c0: 48 8b 45 f8 mov -0x8(%rbp),%rax 182c4: 48 8b 40 18 mov 0x18(%rax),%rax 182c8: 5d pop %rbp 182c9: c3 retq 00000000000182ca <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEv>: operator->() const { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } _Self& operator++() 182ca: 55 push %rbp 182cb: 48 89 e5 mov %rsp,%rbp 182ce: 48 83 ec 10 sub $0x10,%rsp 182d2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_increment(_M_node); 182d6: 48 8b 45 f8 mov -0x8(%rbp),%rax 182da: 48 8b 00 mov (%rax),%rax 182dd: 48 89 c7 mov %rax,%rdi 182e0: e8 5b af ff ff callq 13240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 182e5: 48 8b 55 f8 mov -0x8(%rbp),%rdx 182e9: 48 89 02 mov %rax,(%rdx) return *this; 182ec: 48 8b 45 f8 mov -0x8(%rbp),%rax } 182f0: c9 leaveq 182f1: c3 retq 00000000000182f2 <_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 182f2: 55 push %rbp 182f3: 48 89 e5 mov %rsp,%rbp 182f6: 48 83 ec 20 sub $0x20,%rsp 182fa: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast (const_cast(_M_node))); } 182fe: 48 8b 45 e8 mov -0x18(%rbp),%rax 18302: 48 8b 10 mov (%rax),%rdx 18305: 48 8d 45 f0 lea -0x10(%rbp),%rax 18309: 48 89 d6 mov %rdx,%rsi 1830c: 48 89 c7 mov %rax,%rdi 1830f: e8 fc b0 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 18314: 48 8b 45 f0 mov -0x10(%rbp),%rax 18318: c9 leaveq 18319: c3 retq 000000000001831a <_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) 1831a: 55 push %rbp 1831b: 48 89 e5 mov %rsp,%rbp 1831e: 48 83 ec 20 sub $0x20,%rsp 18322: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 18326: 48 8b 45 e8 mov -0x18(%rbp),%rax 1832a: 48 89 c7 mov %rax,%rdi 1832d: e8 ce ac ff ff callq 13000 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_valueEPKSt13_Rb_tree_nodeIS3_E@plt> 18332: 48 89 c2 mov %rax,%rdx 18335: 48 8d 45 ff lea -0x1(%rbp),%rax 18339: 48 89 d6 mov %rdx,%rsi 1833c: 48 89 c7 mov %rax,%rdi 1833f: e8 0c b2 ff ff callq 13550 <_ZNKSt10_Select1stISt4pairIKmPvEEclERKS3_@plt> 18344: c9 leaveq 18345: c3 retq 0000000000018346 <_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>:: 18346: 55 push %rbp 18347: 48 89 e5 mov %rsp,%rbp 1834a: 48 83 ec 30 sub $0x30,%rsp 1834e: 48 89 7d e8 mov %rdi,-0x18(%rbp) 18352: 48 89 75 e0 mov %rsi,-0x20(%rbp) 18356: 48 89 55 d8 mov %rdx,-0x28(%rbp) 1835a: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 1835e: eb 50 jmp 183b0 <_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))) 18360: 48 8b 45 e0 mov -0x20(%rbp),%rax 18364: 48 89 c7 mov %rax,%rdi 18367: e8 34 a3 ff ff callq 126a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E@plt> 1836c: 48 89 c2 mov %rax,%rdx 1836f: 48 8b 45 e8 mov -0x18(%rbp),%rax 18373: 48 8b 4d d0 mov -0x30(%rbp),%rcx 18377: 48 89 ce mov %rcx,%rsi 1837a: 48 89 c7 mov %rax,%rdi 1837d: e8 fe ab ff ff callq 12f80 <_ZNKSt4lessImEclERKmS2_@plt> 18382: 84 c0 test %al,%al 18384: 74 1a je 183a0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x5a> __y = __x, __x = _S_left(__x); 18386: 48 8b 45 e0 mov -0x20(%rbp),%rax 1838a: 48 89 45 d8 mov %rax,-0x28(%rbp) 1838e: 48 8b 45 e0 mov -0x20(%rbp),%rax 18392: 48 89 c7 mov %rax,%rdi 18395: e8 16 bd ff ff callq 140b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 1839a: 48 89 45 e0 mov %rax,-0x20(%rbp) 1839e: eb 10 jmp 183b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS3_ESC_RS1_+0x6a> else __x = _S_right(__x); 183a0: 48 8b 45 e0 mov -0x20(%rbp),%rax 183a4: 48 89 c7 mov %rax,%rdi 183a7: e8 04 af ff ff callq 132b0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 183ac: 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) 183b0: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 183b5: 0f 95 c0 setne %al 183b8: 84 c0 test %al,%al 183ba: 75 a4 jne 18360 <_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); 183bc: 48 8b 55 d8 mov -0x28(%rbp),%rdx 183c0: 48 8d 45 f0 lea -0x10(%rbp),%rax 183c4: 48 89 d6 mov %rdx,%rsi 183c7: 48 89 c7 mov %rax,%rdi 183ca: e8 41 b0 ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 183cf: 48 8b 45 f0 mov -0x10(%rbp),%rax } 183d3: c9 leaveq 183d4: c3 retq 183d5: 90 nop 00000000000183d6 <_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) 183d6: 55 push %rbp 183d7: 48 89 e5 mov %rsp,%rbp 183da: 48 89 7d f8 mov %rdi,-0x8(%rbp) 183de: 48 89 75 f0 mov %rsi,-0x10(%rbp) 183e2: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 183e6: 48 8b 45 f8 mov -0x8(%rbp),%rax 183ea: 48 8b 55 f0 mov -0x10(%rbp),%rdx 183ee: 48 8b 12 mov (%rdx),%rdx 183f1: 48 89 10 mov %rdx,(%rax) 183f4: 48 8b 45 f8 mov -0x8(%rbp),%rax 183f8: 48 8b 55 e8 mov -0x18(%rbp),%rdx 183fc: 48 8b 12 mov (%rdx),%rdx 183ff: 48 89 50 08 mov %rdx,0x8(%rax) 18403: 5d pop %rbp 18404: c3 retq 18405: 90 nop 0000000000018406 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 18406: 55 push %rbp 18407: 48 89 e5 mov %rsp,%rbp 1840a: 48 83 ec 60 sub $0x60,%rsp 1840e: 48 89 7d b8 mov %rdi,-0x48(%rbp) 18412: 48 89 75 b0 mov %rsi,-0x50(%rbp) 18416: 48 89 55 a0 mov %rdx,-0x60(%rbp) _M_erase_aux(const_iterator __first, const_iterator __last) { if (__first == begin() && __last == end()) 1841a: 48 8b 45 b8 mov -0x48(%rbp),%rax 1841e: 48 89 c7 mov %rax,%rdi 18421: e8 9a ab ff ff callq 12fc0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv@plt> 18426: 48 89 45 e0 mov %rax,-0x20(%rbp) 1842a: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1842e: 48 8d 45 f0 lea -0x10(%rbp),%rax 18432: 48 89 d6 mov %rdx,%rsi 18435: 48 89 c7 mov %rax,%rdi 18438: e8 93 aa ff ff callq 12ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 1843d: 48 8d 55 f0 lea -0x10(%rbp),%rdx 18441: 48 8d 45 b0 lea -0x50(%rbp),%rax 18445: 48 89 d6 mov %rdx,%rsi 18448: 48 89 c7 mov %rax,%rdi 1844b: e8 00 b4 ff ff callq 13850 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt> 18450: 84 c0 test %al,%al 18452: 74 41 je 18495 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x8f> 18454: 48 8b 45 b8 mov -0x48(%rbp),%rax 18458: 48 89 c7 mov %rax,%rdi 1845b: e8 e0 9f ff ff callq 12440 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE3endEv@plt> 18460: 48 89 45 c0 mov %rax,-0x40(%rbp) 18464: 48 8d 55 c0 lea -0x40(%rbp),%rdx 18468: 48 8d 45 d0 lea -0x30(%rbp),%rax 1846c: 48 89 d6 mov %rdx,%rsi 1846f: 48 89 c7 mov %rax,%rdi 18472: e8 59 aa ff ff callq 12ed0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEC1ERKSt17_Rb_tree_iteratorIS3_E@plt> 18477: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1847b: 48 8d 45 a0 lea -0x60(%rbp),%rax 1847f: 48 89 d6 mov %rdx,%rsi 18482: 48 89 c7 mov %rax,%rdi 18485: e8 c6 b3 ff ff callq 13850 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_@plt> 1848a: 84 c0 test %al,%al 1848c: 74 07 je 18495 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x8f> 1848e: b8 01 00 00 00 mov $0x1,%eax 18493: eb 05 jmp 1849a <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0x94> 18495: b8 00 00 00 00 mov $0x0,%eax 1849a: 84 c0 test %al,%al 1849c: 74 31 je 184cf <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xc9> clear(); 1849e: 48 8b 45 b8 mov -0x48(%rbp),%rax 184a2: 48 89 c7 mov %rax,%rdi 184a5: e8 86 aa ff ff callq 12f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv@plt> 184aa: eb 3a jmp 184e6 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xe0> else while (__first != __last) erase(__first++); 184ac: 48 8d 45 b0 lea -0x50(%rbp),%rax 184b0: be 00 00 00 00 mov $0x0,%esi 184b5: 48 89 c7 mov %rax,%rdi 184b8: e8 d3 a6 ff ff callq 12b90 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi@plt> 184bd: 48 89 c2 mov %rax,%rdx 184c0: 48 8b 45 b8 mov -0x48(%rbp),%rax 184c4: 48 89 d6 mov %rdx,%rsi 184c7: 48 89 c7 mov %rax,%rdi 184ca: e8 f1 b8 ff ff callq 13dc0 <_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) 184cf: 48 8d 55 a0 lea -0x60(%rbp),%rdx 184d3: 48 8d 45 b0 lea -0x50(%rbp),%rax 184d7: 48 89 d6 mov %rdx,%rsi 184da: 48 89 c7 mov %rax,%rdi 184dd: e8 8e b0 ff ff callq 13570 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_@plt> 184e2: 84 c0 test %al,%al 184e4: 75 c6 jne 184ac <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_ESB_+0xa6> erase(__first++); } 184e6: c9 leaveq 184e7: c3 retq 00000000000184e8 <_ZNSt10_List_baseIiSaIiEE11_M_get_nodeEv>: }; _List_impl _M_impl; _List_node<_Tp>* _M_get_node() 184e8: 55 push %rbp 184e9: 48 89 e5 mov %rsp,%rbp 184ec: 48 83 ec 10 sub $0x10,%rsp 184f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_alloc_type::allocate(1); } 184f4: 48 8b 45 f8 mov -0x8(%rbp),%rax 184f8: ba 00 00 00 00 mov $0x0,%edx 184fd: be 01 00 00 00 mov $0x1,%esi 18502: 48 89 c7 mov %rax,%rdi 18505: e8 96 ba ff ff callq 13fa0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv@plt> 1850a: c9 leaveq 1850b: c3 retq 000000000001850c <_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) 1850c: 55 push %rbp 1850d: 48 89 e5 mov %rsp,%rbp 18510: 48 83 ec 20 sub $0x20,%rsp 18514: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18518: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1851c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 18520: 48 8b 45 f0 mov -0x10(%rbp),%rax 18524: 48 89 c6 mov %rax,%rsi 18527: bf 04 00 00 00 mov $0x4,%edi 1852c: e8 4f a6 ff ff callq 12b80 <_ZnwmPv@plt> 18531: 48 85 c0 test %rax,%rax 18534: 74 08 je 1853e <_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi+0x32> 18536: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1853a: 8b 12 mov (%rdx),%edx 1853c: 89 10 mov %edx,(%rax) 1853e: c9 leaveq 1853f: c3 retq 0000000000018540 <_ZNSaISt10_List_nodeIiEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 18540: 55 push %rbp 18541: 48 89 e5 mov %rsp,%rbp 18544: 48 83 ec 10 sub $0x10,%rsp 18548: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1854c: 48 8b 45 f8 mov -0x8(%rbp),%rax 18550: 48 89 c7 mov %rax,%rdi 18553: e8 98 ab ff ff callq 130f0 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC2Ev@plt> 18558: c9 leaveq 18559: c3 retq 000000000001855a <_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 1855a: 55 push %rbp 1855b: 48 89 e5 mov %rsp,%rbp 1855e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 18562: 48 8b 45 f8 mov -0x8(%rbp),%rax 18566: 5d pop %rbp 18567: c3 retq 0000000000018568 <_ZNSaIiEC1ISt10_List_nodeIiEEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 18568: 55 push %rbp 18569: 48 89 e5 mov %rsp,%rbp 1856c: 48 83 ec 10 sub $0x10,%rsp 18570: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18574: 48 89 75 f0 mov %rsi,-0x10(%rbp) 18578: 48 8b 45 f8 mov -0x8(%rbp),%rax 1857c: 48 89 c7 mov %rax,%rdi 1857f: e8 8c bb ff ff callq 14110 <_ZN9__gnu_cxx13new_allocatorIiEC2Ev@plt> 18584: c9 leaveq 18585: c3 retq 0000000000018586 <_ZN9__gnu_cxx13new_allocatorIiED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 18586: 55 push %rbp 18587: 48 89 e5 mov %rsp,%rbp 1858a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1858e: 5d pop %rbp 1858f: c3 retq 0000000000018590 <_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) 18590: 55 push %rbp 18591: 48 89 e5 mov %rsp,%rbp 18594: 48 83 ec 20 sub $0x20,%rsp 18598: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1859c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 185a0: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 185a4: 48 8b 45 f0 mov -0x10(%rbp),%rax 185a8: 48 89 c7 mov %rax,%rdi 185ab: e8 90 a1 ff ff callq 12740 <_ZdlPv@plt> 185b0: c9 leaveq 185b1: c3 retq 00000000000185b2 <_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) 185b2: 55 push %rbp 185b3: 48 89 e5 mov %rsp,%rbp 185b6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 185ba: 48 8b 45 f8 mov -0x8(%rbp),%rax 185be: 48 83 c0 20 add $0x20,%rax 185c2: 5d pop %rbp 185c3: c3 retq 00000000000185c4 <_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) 185c4: 55 push %rbp 185c5: 48 89 e5 mov %rsp,%rbp 185c8: 53 push %rbx 185c9: 48 83 ec 28 sub $0x28,%rsp 185cd: 48 89 7d d8 mov %rdi,-0x28(%rbp) 185d1: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 185d5: 48 8b 45 d8 mov -0x28(%rbp),%rax 185d9: 48 89 c7 mov %rax,%rdi 185dc: e8 8f ae ff ff callq 13470 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_get_nodeEv@plt> 185e1: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 185e5: 48 8b 45 e0 mov -0x20(%rbp),%rax 185e9: 48 83 c0 20 add $0x20,%rax 185ed: 48 89 c7 mov %rax,%rdi 185f0: e8 cb ae ff ff callq 134c0 <_ZSt11__addressofISt4pairIKmPvEEPT_RS4_@plt> 185f5: 48 89 c3 mov %rax,%rbx 185f8: 48 8d 45 ef lea -0x11(%rbp),%rax 185fc: 48 8b 55 d8 mov -0x28(%rbp),%rdx 18600: 48 89 d6 mov %rdx,%rsi 18603: 48 89 c7 mov %rax,%rdi 18606: e8 a5 a2 ff ff callq 128b0 <_ZNKSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE13get_allocatorEv@plt> 1860b: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1860f: 48 8d 45 ef lea -0x11(%rbp),%rax 18613: 48 89 de mov %rbx,%rsi 18616: 48 89 c7 mov %rax,%rdi 18619: e8 82 a9 ff ff callq 12fa0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_@plt> 1861e: 48 8d 45 ef lea -0x11(%rbp),%rax 18622: 48 89 c7 mov %rax,%rdi 18625: e8 56 a3 ff ff callq 12980 <_ZNSaISt4pairIKmPvEED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 1862a: 48 8b 45 e0 mov -0x20(%rbp),%rax } 1862e: 48 83 c4 28 add $0x28,%rsp 18632: 5b pop %rbx 18633: 5d pop %rbp 18634: c3 retq 18635: 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 18638: 48 8d 45 ef lea -0x11(%rbp),%rax 1863c: 48 89 c7 mov %rax,%rdi 1863f: e8 3c a3 ff ff callq 12980 <_ZNSaISt4pairIKmPvEED1Ev@plt> 18644: 48 89 d8 mov %rbx,%rax 18647: eb 13 jmp 1865c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE14_M_create_nodeERKS3_+0x98> 18649: 48 89 c3 mov %rax,%rbx (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 1864c: e8 ef b5 ff ff callq 13c40 <__cxa_end_catch@plt> 18651: 48 89 d8 mov %rbx,%rax 18654: 48 89 c7 mov %rax,%rdi 18657: e8 c4 b8 ff ff callq 13f20 <_Unwind_Resume@plt> 1865c: 48 89 c7 mov %rax,%rdi 1865f: e8 0c b7 ff ff callq 13d70 <__cxa_begin_catch@plt> { _M_put_node(__tmp); 18664: 48 8b 55 e0 mov -0x20(%rbp),%rdx 18668: 48 8b 45 d8 mov -0x28(%rbp),%rax 1866c: 48 89 d6 mov %rdx,%rsi 1866f: 48 89 c7 mov %rax,%rdi 18672: e8 c9 a1 ff ff callq 12840 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E@plt> __throw_exception_again; 18677: e8 d4 a1 ff ff callq 12850 <__cxa_rethrow@plt> 000000000001867c <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 1867c: 55 push %rbp 1867d: 48 89 e5 mov %rsp,%rbp 18680: 48 83 ec 20 sub $0x20,%rsp 18684: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 18688: 48 8b 45 e8 mov -0x18(%rbp),%rax 1868c: 48 8b 50 18 mov 0x18(%rax),%rdx 18690: 48 8d 45 f0 lea -0x10(%rbp),%rax 18694: 48 89 d6 mov %rdx,%rsi 18697: 48 89 c7 mov %rax,%rdi 1869a: e8 71 ad ff ff callq 13410 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEC1EPSt13_Rb_tree_nodeIS3_E@plt> 1869f: 48 8b 45 f0 mov -0x10(%rbp),%rax } 186a3: c9 leaveq 186a4: c3 retq 186a5: 90 nop 00000000000186a6 <_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) 186a6: 55 push %rbp 186a7: 48 89 e5 mov %rsp,%rbp 186aa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 186ae: 48 89 75 f0 mov %rsi,-0x10(%rbp) 186b2: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 186b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 186ba: 48 8b 55 f0 mov -0x10(%rbp),%rdx 186be: 48 8b 12 mov (%rdx),%rdx 186c1: 48 89 10 mov %rdx,(%rax) 186c4: 48 8b 45 e8 mov -0x18(%rbp),%rax 186c8: 0f b6 10 movzbl (%rax),%edx 186cb: 48 8b 45 f8 mov -0x8(%rbp),%rax 186cf: 88 50 08 mov %dl,0x8(%rax) 186d2: 5d pop %rbp 186d3: c3 retq 00000000000186d4 <_ZNSt17_Rb_tree_iteratorISt4pairIKmPvEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 186d4: 55 push %rbp 186d5: 48 89 e5 mov %rsp,%rbp 186d8: 48 83 ec 10 sub $0x10,%rsp 186dc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 186e0: 48 8b 45 f8 mov -0x8(%rbp),%rax 186e4: 48 8b 00 mov (%rax),%rax 186e7: 48 89 c7 mov %rax,%rdi 186ea: e8 61 a3 ff ff callq 12a50 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 186ef: 48 8b 55 f8 mov -0x8(%rbp),%rdx 186f3: 48 89 02 mov %rax,(%rdx) return *this; 186f6: 48 8b 45 f8 mov -0x8(%rbp),%rax } 186fa: c9 leaveq 186fb: c3 retq 00000000000186fc <_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) 186fc: 55 push %rbp 186fd: 48 89 e5 mov %rsp,%rbp 18700: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 18704: 48 8b 45 f8 mov -0x8(%rbp),%rax 18708: 48 83 c0 20 add $0x20,%rax 1870c: 5d pop %rbp 1870d: c3 retq 000000000001870e <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEeqERKS4_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 1870e: 55 push %rbp 1870f: 48 89 e5 mov %rsp,%rbp 18712: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18716: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 1871a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1871e: 48 8b 10 mov (%rax),%rdx 18721: 48 8b 45 f0 mov -0x10(%rbp),%rax 18725: 48 8b 00 mov (%rax),%rax 18728: 48 39 c2 cmp %rax,%rdx 1872b: 0f 94 c0 sete %al 1872e: 5d pop %rbp 1872f: c3 retq 0000000000018730 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5clearEv>: #endif void erase(const key_type* __first, const key_type* __last); void clear() 18730: 55 push %rbp 18731: 48 89 e5 mov %rsp,%rbp 18734: 53 push %rbx 18735: 48 83 ec 18 sub $0x18,%rsp 18739: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); 1873d: 48 8b 45 e8 mov -0x18(%rbp),%rax 18741: 48 89 c7 mov %rax,%rdi 18744: e8 17 a8 ff ff callq 12f60 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_beginEv@plt> 18749: 48 89 c2 mov %rax,%rdx 1874c: 48 8b 45 e8 mov -0x18(%rbp),%rax 18750: 48 89 d6 mov %rdx,%rsi 18753: 48 89 c7 mov %rax,%rdi 18756: e8 b5 a8 ff ff callq 13010 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E@plt> _M_leftmost() = _M_end(); 1875b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1875f: 48 89 c7 mov %rax,%rdi 18762: e8 69 a8 ff ff callq 12fd0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE11_M_leftmostEv@plt> 18767: 48 89 c3 mov %rax,%rbx 1876a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1876e: 48 89 c7 mov %rax,%rdi 18771: e8 8a b7 ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 18776: 48 89 03 mov %rax,(%rbx) _M_root() = 0; 18779: 48 8b 45 e8 mov -0x18(%rbp),%rax 1877d: 48 89 c7 mov %rax,%rdi 18780: e8 3b b9 ff ff callq 140c0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv@plt> 18785: 48 c7 00 00 00 00 00 movq $0x0,(%rax) _M_rightmost() = _M_end(); 1878c: 48 8b 45 e8 mov -0x18(%rbp),%rax 18790: 48 89 c7 mov %rax,%rdi 18793: e8 98 b7 ff ff callq 13f30 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_rightmostEv@plt> 18798: 48 89 c3 mov %rax,%rbx 1879b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1879f: 48 89 c7 mov %rax,%rdi 187a2: e8 59 b7 ff ff callq 13f00 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE6_M_endEv@plt> 187a7: 48 89 03 mov %rax,(%rbx) _M_impl._M_node_count = 0; 187aa: 48 8b 45 e8 mov -0x18(%rbp),%rax 187ae: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 187b5: 00 } 187b6: 48 83 c4 18 add $0x18,%rsp 187ba: 5b pop %rbx 187bb: 5d pop %rbp 187bc: c3 retq 187bd: 90 nop 00000000000187be <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKmPvEEneERKS4_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 187be: 55 push %rbp 187bf: 48 89 e5 mov %rsp,%rbp 187c2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 187c6: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 187ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 187ce: 48 8b 10 mov (%rax),%rdx 187d1: 48 8b 45 f0 mov -0x10(%rbp),%rax 187d5: 48 8b 00 mov (%rax),%rax 187d8: 48 39 c2 cmp %rax,%rdx 187db: 0f 95 c0 setne %al 187de: 5d pop %rbp 187df: c3 retq 00000000000187e0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKmPvEEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 187e0: 55 push %rbp 187e1: 48 89 e5 mov %rsp,%rbp 187e4: 48 83 ec 20 sub $0x20,%rsp 187e8: 48 89 7d e8 mov %rdi,-0x18(%rbp) 187ec: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 187ef: 48 8b 45 e8 mov -0x18(%rbp),%rax 187f3: 48 8b 00 mov (%rax),%rax 187f6: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 187fa: 48 8b 45 e8 mov -0x18(%rbp),%rax 187fe: 48 8b 00 mov (%rax),%rax 18801: 48 89 c7 mov %rax,%rdi 18804: e8 37 aa ff ff callq 13240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 18809: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1880d: 48 89 02 mov %rax,(%rdx) return __tmp; 18810: 48 8b 45 f0 mov -0x10(%rbp),%rax } 18814: c9 leaveq 18815: c3 retq 0000000000018816 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE5eraseESt23_Rb_tree_const_iteratorIS3_E>: void erase(iterator __position) { _M_erase_aux(__position); } void erase(const_iterator __position) 18816: 55 push %rbp 18817: 48 89 e5 mov %rsp,%rbp 1881a: 48 83 ec 10 sub $0x10,%rsp 1881e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18822: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_erase_aux(__position); } 18826: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1882a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1882e: 48 89 d6 mov %rdx,%rsi 18831: 48 89 c7 mov %rax,%rdi 18834: e8 97 aa ff ff callq 132d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E@plt> 18839: c9 leaveq 1883a: c3 retq 1883b: 90 nop 000000000001883c <_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) 1883c: 55 push %rbp 1883d: 48 89 e5 mov %rsp,%rbp 18840: 48 83 ec 20 sub $0x20,%rsp 18844: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18848: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1884c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 18850: 48 8b 45 f8 mov -0x8(%rbp),%rax 18854: 48 89 c7 mov %rax,%rdi 18857: e8 44 a0 ff ff callq 128a0 <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv@plt> 1885c: 48 3b 45 f0 cmp -0x10(%rbp),%rax 18860: 0f 92 c0 setb %al 18863: 84 c0 test %al,%al 18865: 74 05 je 1886c <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 18867: e8 f4 b3 ff ff callq 13c60 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 1886c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 18870: 48 89 d0 mov %rdx,%rax 18873: 48 01 c0 add %rax,%rax 18876: 48 01 d0 add %rdx,%rax 18879: 48 c1 e0 03 shl $0x3,%rax 1887d: 48 89 c7 mov %rax,%rdi 18880: e8 8b b6 ff ff callq 13f10 <_Znwm@plt> } 18885: c9 leaveq 18886: c3 retq 18887: 90 nop 0000000000018888 <_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 18888: 55 push %rbp 18889: 48 89 e5 mov %rsp,%rbp 1888c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18890: 5d pop %rbp 18891: c3 retq 0000000000018892 <_ZN9__gnu_cxx13new_allocatorIiEC1Ev>: 18892: 55 push %rbp 18893: 48 89 e5 mov %rsp,%rbp 18896: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1889a: 5d pop %rbp 1889b: c3 retq 000000000001889c <_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() 1889c: 55 push %rbp 1889d: 48 89 e5 mov %rsp,%rbp 188a0: 48 83 ec 10 sub $0x10,%rsp 188a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 188a8: 48 8b 45 f8 mov -0x8(%rbp),%rax 188ac: ba 00 00 00 00 mov $0x0,%edx 188b1: be 01 00 00 00 mov $0x1,%esi 188b6: 48 89 c7 mov %rax,%rdi 188b9: e8 12 ae ff ff callq 136d0 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv@plt> 188be: c9 leaveq 188bf: c3 retq 00000000000188c0 <_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) 188c0: 55 push %rbp 188c1: 48 89 e5 mov %rsp,%rbp 188c4: 48 83 ec 20 sub $0x20,%rsp 188c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 188cc: 48 89 75 f0 mov %rsi,-0x10(%rbp) 188d0: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::new((void *)__p) _Tp(__val); } 188d4: 48 8b 45 f0 mov -0x10(%rbp),%rax 188d8: 48 89 c6 mov %rax,%rsi 188db: bf 10 00 00 00 mov $0x10,%edi 188e0: e8 9b a2 ff ff callq 12b80 <_ZnwmPv@plt> 188e5: 48 85 c0 test %rax,%rax 188e8: 74 12 je 188fc <_ZN9__gnu_cxx13new_allocatorISt4pairIKmPvEE9constructEPS4_RKS4_+0x3c> 188ea: 48 8b 55 e8 mov -0x18(%rbp),%rdx 188ee: 48 8b 0a mov (%rdx),%rcx 188f1: 48 89 08 mov %rcx,(%rax) 188f4: 48 8b 52 08 mov 0x8(%rdx),%rdx 188f8: 48 89 50 08 mov %rdx,0x8(%rax) 188fc: c9 leaveq 188fd: c3 retq 00000000000188fe <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE7_M_rootEv>: _Rb_tree_impl<_Compare> _M_impl; protected: _Base_ptr& _M_root() 188fe: 55 push %rbp 188ff: 48 89 e5 mov %rsp,%rbp 18902: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_parent; } 18906: 48 8b 45 f8 mov -0x8(%rbp),%rax 1890a: 48 83 c0 10 add $0x10,%rax 1890e: 5d pop %rbp 1890f: c3 retq 0000000000018910 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS3_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 18910: 55 push %rbp 18911: 48 89 e5 mov %rsp,%rbp 18914: 48 83 ec 20 sub $0x20,%rsp 18918: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1891c: 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)); 18920: 48 8b 45 e8 mov -0x18(%rbp),%rax 18924: 48 8d 50 08 lea 0x8(%rax),%rdx 18928: 48 8b 45 e0 mov -0x20(%rbp),%rax 1892c: 48 89 d6 mov %rdx,%rsi 1892f: 48 89 c7 mov %rax,%rdi 18932: e8 b9 af ff ff callq 138f0 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt> 18937: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__y); 1893b: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1893f: 48 8b 45 e8 mov -0x18(%rbp),%rax 18943: 48 89 d6 mov %rdx,%rsi 18946: 48 89 c7 mov %rax,%rdi 18949: e8 82 99 ff ff callq 122d0 <_ZNSt8_Rb_treeImSt4pairIKmPvESt10_Select1stIS3_ESt4lessImESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E@plt> --_M_impl._M_node_count; 1894e: 48 8b 45 e8 mov -0x18(%rbp),%rax 18952: 48 8b 40 28 mov 0x28(%rax),%rax 18956: 48 8d 50 ff lea -0x1(%rax),%rdx 1895a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1895e: 48 89 50 28 mov %rdx,0x28(%rax) } 18962: c9 leaveq 18963: c3 retq 0000000000018964 <_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIiEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 18964: 55 push %rbp 18965: 48 89 e5 mov %rsp,%rbp 18968: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 1896c: 48 b8 aa aa aa aa aa movabs $0xaaaaaaaaaaaaaaa,%rax 18973: aa aa 0a 18976: 5d pop %rbp 18977: c3 retq 0000000000018978 <_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) 18978: 55 push %rbp 18979: 48 89 e5 mov %rsp,%rbp 1897c: 48 83 ec 20 sub $0x20,%rsp 18980: 48 89 7d f8 mov %rdi,-0x8(%rbp) 18984: 48 89 75 f0 mov %rsi,-0x10(%rbp) 18988: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 1898c: 48 8b 45 f8 mov -0x8(%rbp),%rax 18990: 48 89 c7 mov %rax,%rdi 18993: e8 b8 b2 ff ff callq 13c50 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv@plt> 18998: 48 3b 45 f0 cmp -0x10(%rbp),%rax 1899c: 0f 92 c0 setb %al 1899f: 84 c0 test %al,%al 189a1: 74 05 je 189a8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 189a3: e8 b8 b2 ff ff callq 13c60 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 189a8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 189ac: 48 89 d0 mov %rdx,%rax 189af: 48 01 c0 add %rax,%rax 189b2: 48 01 d0 add %rdx,%rax 189b5: 48 c1 e0 04 shl $0x4,%rax 189b9: 48 89 c7 mov %rax,%rdi 189bc: e8 4f b5 ff ff callq 13f10 <_Znwm@plt> } 189c1: c9 leaveq 189c2: c3 retq 189c3: 90 nop 00000000000189c4 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmPvEEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 189c4: 55 push %rbp 189c5: 48 89 e5 mov %rsp,%rbp 189c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 189cc: 48 b8 55 55 55 55 55 movabs $0x555555555555555,%rax 189d3: 55 55 05 189d6: 5d pop %rbp 189d7: c3 retq 00000000000189d8 <_Z13x_pool_lookupP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_pool_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 189d8: 55 push %rbp 189d9: 48 89 e5 mov %rsp,%rbp 189dc: 53 push %rbx 189dd: 48 81 ec 58 04 00 00 sub $0x458,%rsp 189e4: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 189eb: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 189f1: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 189f8: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 189ff: 00 00 18a01: 48 89 45 e8 mov %rax,-0x18(%rbp) 18a05: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 18a07: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 18a0e: 48 8b 08 mov (%rax),%rcx 18a11: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 18a18: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18a1f: 48 89 ce mov %rcx,%rsi 18a22: 48 89 c7 mov %rax,%rdi 18a25: e8 66 a5 ff ff callq 12f90 18a2a: 85 c0 test %eax,%eax 18a2c: 74 33 je 18a61 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x89> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 18a2e: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 18a35: 48 83 c0 08 add $0x8,%rax 18a39: 48 8b 30 mov (%rax),%rsi 18a3c: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 18a43: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18a4a: 41 b8 01 00 00 00 mov $0x1,%r8d 18a50: b9 00 04 00 00 mov $0x400,%ecx 18a55: 48 89 c7 mov %rax,%rdi 18a58: e8 93 b1 ff ff callq 13bf0 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) || 18a5d: 85 c0 test %eax,%eax 18a5f: 75 07 jne 18a68 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x90> 18a61: b8 01 00 00 00 mov $0x1,%eax 18a66: eb 05 jmp 18a6d <_Z13x_pool_lookupP18enif_environment_tiPKm+0x95> 18a68: b8 00 00 00 00 mov $0x0,%eax 18a6d: 84 c0 test %al,%al 18a6f: 74 14 je 18a85 <_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); 18a71: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18a78: 48 89 c7 mov %rax,%rdi 18a7b: e8 20 a8 ff ff callq 132a0 18a80: e9 da 00 00 00 jmpq 18b5f <_Z13x_pool_lookupP18enif_environment_tiPKm+0x187> } rados_t cluster = map_cluster[id]; 18a85: 48 8d 85 c8 fb ff ff lea -0x438(%rbp),%rax 18a8c: 48 89 c6 mov %rax,%rsi 18a8f: 48 8b 05 22 f5 20 00 mov 0x20f522(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 18a96: 48 89 c7 mov %rax,%rdi 18a99: e8 d2 a8 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 18a9e: 48 8b 00 mov (%rax),%rax 18aa1: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (cluster == NULL) 18aa8: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 18aaf: 00 18ab0: 75 14 jne 18ac6 <_Z13x_pool_lookupP18enif_environment_tiPKm+0xee> { return enif_make_badarg(env); 18ab2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18ab9: 48 89 c7 mov %rax,%rdi 18abc: e8 df a7 ff ff callq 132a0 18ac1: e9 99 00 00 00 jmpq 18b5f <_Z13x_pool_lookupP18enif_environment_tiPKm+0x187> } int64_t err = rados_pool_lookup(cluster, pool_name); 18ac6: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 18acd: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 18ad4: 48 89 d6 mov %rdx,%rsi 18ad7: 48 89 c7 mov %rax,%rdi 18ada: e8 11 a4 ff ff callq 12ef0 18adf: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) if (err < 0) 18ae6: 48 83 bd d8 fb ff ff cmpq $0x0,-0x428(%rbp) 18aed: 00 18aee: 79 1e jns 18b0e <_Z13x_pool_lookupP18enif_environment_tiPKm+0x136> { return make_error_tuple(env, -err); 18af0: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 18af7: f7 d8 neg %eax 18af9: 89 c2 mov %eax,%edx 18afb: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18b02: 89 d6 mov %edx,%esi 18b04: 48 89 c7 mov %rax,%rdi 18b07: e8 24 ad ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 18b0c: eb 51 jmp 18b5f <_Z13x_pool_lookupP18enif_environment_tiPKm+0x187> } return enif_make_tuple2(env, 18b0e: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 18b15: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18b1c: 48 89 d6 mov %rdx,%rsi 18b1f: 48 89 c7 mov %rax,%rdi 18b22: e8 19 b3 ff ff callq 13e40 18b27: 48 89 c3 mov %rax,%rbx 18b2a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18b31: 48 8d 35 67 99 00 00 lea 0x9967(%rip),%rsi # 2249f <_fini+0x5e7> 18b38: 48 89 c7 mov %rax,%rdi 18b3b: e8 80 9c ff ff callq 127c0 18b40: 48 89 c2 mov %rax,%rdx 18b43: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18b4a: 48 89 d9 mov %rbx,%rcx 18b4d: be 02 00 00 00 mov $0x2,%esi 18b52: 48 89 c7 mov %rax,%rdi 18b55: b8 00 00 00 00 mov $0x0,%eax 18b5a: e8 a1 b0 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_int64(env, err)); // Pool ID } 18b5f: 48 8b 55 e8 mov -0x18(%rbp),%rdx 18b63: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 18b6a: 00 00 18b6c: 74 05 je 18b73 <_Z13x_pool_lookupP18enif_environment_tiPKm+0x19b> 18b6e: e8 3d ad ff ff callq 138b0 <__stack_chk_fail@plt> 18b73: 48 81 c4 58 04 00 00 add $0x458,%rsp 18b7a: 5b pop %rbx 18b7b: 5d pop %rbp 18b7c: c3 retq 0000000000018b7d <_Z13x_pool_createP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18b7d: 55 push %rbp 18b7e: 48 89 e5 mov %rsp,%rbp 18b81: 48 81 ec 50 04 00 00 sub $0x450,%rsp 18b88: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 18b8f: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 18b95: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 18b9c: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 18ba3: 00 00 18ba5: 48 89 45 f8 mov %rax,-0x8(%rbp) 18ba9: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 18bab: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18bb2: 48 8b 08 mov (%rax),%rcx 18bb5: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 18bbc: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18bc3: 48 89 ce mov %rcx,%rsi 18bc6: 48 89 c7 mov %rax,%rdi 18bc9: e8 c2 a3 ff ff callq 12f90 18bce: 85 c0 test %eax,%eax 18bd0: 74 33 je 18c05 <_Z13x_pool_createP18enif_environment_tiPKm+0x88> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 18bd2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18bd9: 48 83 c0 08 add $0x8,%rax 18bdd: 48 8b 30 mov (%rax),%rsi 18be0: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18be7: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18bee: 41 b8 01 00 00 00 mov $0x1,%r8d 18bf4: b9 00 04 00 00 mov $0x400,%ecx 18bf9: 48 89 c7 mov %rax,%rdi 18bfc: e8 ef af ff ff callq 13bf0 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) || 18c01: 85 c0 test %eax,%eax 18c03: 75 07 jne 18c0c <_Z13x_pool_createP18enif_environment_tiPKm+0x8f> 18c05: b8 01 00 00 00 mov $0x1,%eax 18c0a: eb 05 jmp 18c11 <_Z13x_pool_createP18enif_environment_tiPKm+0x94> 18c0c: b8 00 00 00 00 mov $0x0,%eax 18c11: 84 c0 test %al,%al 18c13: 74 14 je 18c29 <_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); 18c15: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18c1c: 48 89 c7 mov %rax,%rdi 18c1f: e8 7c a6 ff ff callq 132a0 18c24: e9 99 00 00 00 jmpq 18cc2 <_Z13x_pool_createP18enif_environment_tiPKm+0x145> } rados_t cluster = map_cluster[id]; 18c29: 48 8d 85 d8 fb ff ff lea -0x428(%rbp),%rax 18c30: 48 89 c6 mov %rax,%rsi 18c33: 48 8b 05 7e f3 20 00 mov 0x20f37e(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 18c3a: 48 89 c7 mov %rax,%rdi 18c3d: e8 2e a7 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 18c42: 48 8b 00 mov (%rax),%rax 18c45: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 18c4c: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 18c53: 00 18c54: 75 11 jne 18c67 <_Z13x_pool_createP18enif_environment_tiPKm+0xea> { return enif_make_badarg(env); 18c56: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18c5d: 48 89 c7 mov %rax,%rdi 18c60: e8 3b a6 ff ff callq 132a0 18c65: eb 5b jmp 18cc2 <_Z13x_pool_createP18enif_environment_tiPKm+0x145> } int err = rados_pool_create(cluster, pool_name); 18c67: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18c6e: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 18c75: 48 89 d6 mov %rdx,%rsi 18c78: 48 89 c7 mov %rax,%rdi 18c7b: e8 90 a9 ff ff callq 13610 18c80: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 18c86: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 18c8d: 79 1d jns 18cac <_Z13x_pool_createP18enif_environment_tiPKm+0x12f> { return make_error_tuple(env, -err); 18c8f: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 18c95: 89 c2 mov %eax,%edx 18c97: f7 da neg %edx 18c99: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18ca0: 89 d6 mov %edx,%esi 18ca2: 48 89 c7 mov %rax,%rdi 18ca5: e8 86 ab ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 18caa: eb 16 jmp 18cc2 <_Z13x_pool_createP18enif_environment_tiPKm+0x145> } return enif_make_atom(env, "ok"); 18cac: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18cb3: 48 8d 35 e5 97 00 00 lea 0x97e5(%rip),%rsi # 2249f <_fini+0x5e7> 18cba: 48 89 c7 mov %rax,%rdi 18cbd: e8 fe 9a ff ff callq 127c0 } 18cc2: 48 8b 55 f8 mov -0x8(%rbp),%rdx 18cc6: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 18ccd: 00 00 18ccf: 74 05 je 18cd6 <_Z13x_pool_createP18enif_environment_tiPKm+0x159> 18cd1: e8 da ab ff ff callq 138b0 <__stack_chk_fail@plt> 18cd6: c9 leaveq 18cd7: c3 retq 0000000000018cd8 <_Z22x_pool_create_for_userP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_create_for_user(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18cd8: 55 push %rbp 18cd9: 48 89 e5 mov %rsp,%rbp 18cdc: 48 81 ec 50 04 00 00 sub $0x450,%rsp 18ce3: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 18cea: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 18cf0: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 18cf7: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 18cfe: 00 00 18d00: 48 89 45 f8 mov %rax,-0x8(%rbp) 18d04: 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) || 18d06: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18d0d: 48 8b 08 mov (%rax),%rcx 18d10: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 18d17: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18d1e: 48 89 ce mov %rcx,%rsi 18d21: 48 89 c7 mov %rax,%rdi 18d24: e8 67 a2 ff ff callq 12f90 18d29: 85 c0 test %eax,%eax 18d2b: 74 5e je 18d8b <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xb3> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1) || 18d2d: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18d34: 48 83 c0 08 add $0x8,%rax 18d38: 48 8b 30 mov (%rax),%rsi 18d3b: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18d42: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18d49: 41 b8 01 00 00 00 mov $0x1,%r8d 18d4f: b9 00 04 00 00 mov $0x400,%ecx 18d54: 48 89 c7 mov %rax,%rdi 18d57: e8 94 ae ff ff callq 13bf0 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) || 18d5c: 85 c0 test %eax,%eax 18d5e: 74 2b je 18d8b <_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)) 18d60: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18d67: 48 83 c0 10 add $0x10,%rax 18d6b: 48 8b 08 mov (%rax),%rcx 18d6e: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 18d75: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18d7c: 48 89 ce mov %rcx,%rsi 18d7f: 48 89 c7 mov %rax,%rdi 18d82: e8 09 a2 ff ff callq 12f90 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) || 18d87: 85 c0 test %eax,%eax 18d89: 75 07 jne 18d92 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xba> 18d8b: b8 01 00 00 00 mov $0x1,%eax 18d90: eb 05 jmp 18d97 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0xbf> 18d92: b8 00 00 00 00 mov $0x0,%eax 18d97: 84 c0 test %al,%al 18d99: 74 14 je 18daf <_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); 18d9b: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18da2: 48 89 c7 mov %rax,%rdi 18da5: e8 f6 a4 ff ff callq 132a0 18daa: e9 a0 00 00 00 jmpq 18e4f <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x177> } rados_t cluster = map_cluster[id]; 18daf: 48 8d 85 d0 fb ff ff lea -0x430(%rbp),%rax 18db6: 48 89 c6 mov %rax,%rsi 18db9: 48 8b 05 f8 f1 20 00 mov 0x20f1f8(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 18dc0: 48 89 c7 mov %rax,%rdi 18dc3: e8 a8 a5 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 18dc8: 48 8b 00 mov (%rax),%rax 18dcb: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 18dd2: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 18dd9: 00 18dda: 75 11 jne 18ded <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x115> { return enif_make_badarg(env); 18ddc: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18de3: 48 89 c7 mov %rax,%rdi 18de6: e8 b5 a4 ff ff callq 132a0 18deb: eb 62 jmp 18e4f <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x177> } int err = rados_pool_create_with_auid(cluster, pool_name, uid); 18ded: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 18df4: 48 8d 8d f0 fb ff ff lea -0x410(%rbp),%rcx 18dfb: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 18e02: 48 89 ce mov %rcx,%rsi 18e05: 48 89 c7 mov %rax,%rdi 18e08: e8 43 af ff ff callq 13d50 18e0d: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 18e13: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 18e1a: 79 1d jns 18e39 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x161> { return make_error_tuple(env, -err); 18e1c: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 18e22: 89 c2 mov %eax,%edx 18e24: f7 da neg %edx 18e26: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18e2d: 89 d6 mov %edx,%esi 18e2f: 48 89 c7 mov %rax,%rdi 18e32: e8 f9 a9 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 18e37: eb 16 jmp 18e4f <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x177> } return enif_make_atom(env, "ok"); 18e39: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18e40: 48 8d 35 58 96 00 00 lea 0x9658(%rip),%rsi # 2249f <_fini+0x5e7> 18e47: 48 89 c7 mov %rax,%rdi 18e4a: e8 71 99 ff ff callq 127c0 } 18e4f: 48 8b 55 f8 mov -0x8(%rbp),%rdx 18e53: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 18e5a: 00 00 18e5c: 74 05 je 18e63 <_Z22x_pool_create_for_userP18enif_environment_tiPKm+0x18b> 18e5e: e8 4d aa ff ff callq 138b0 <__stack_chk_fail@plt> 18e63: c9 leaveq 18e64: c3 retq 0000000000018e65 <_Z13x_pool_deleteP18enif_environment_tiPKm>: ERL_NIF_TERM x_pool_delete(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 18e65: 55 push %rbp 18e66: 48 89 e5 mov %rsp,%rbp 18e69: 48 81 ec 50 04 00 00 sub $0x450,%rsp 18e70: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 18e77: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 18e7d: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 18e84: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 18e8b: 00 00 18e8d: 48 89 45 f8 mov %rax,-0x8(%rbp) 18e91: 31 c0 xor %eax,%eax uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 18e93: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18e9a: 48 8b 08 mov (%rax),%rcx 18e9d: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 18ea4: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18eab: 48 89 ce mov %rcx,%rsi 18eae: 48 89 c7 mov %rax,%rdi 18eb1: e8 da a0 ff ff callq 12f90 18eb6: 85 c0 test %eax,%eax 18eb8: 74 33 je 18eed <_Z13x_pool_deleteP18enif_environment_tiPKm+0x88> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 18eba: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 18ec1: 48 83 c0 08 add $0x8,%rax 18ec5: 48 8b 30 mov (%rax),%rsi 18ec8: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18ecf: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18ed6: 41 b8 01 00 00 00 mov $0x1,%r8d 18edc: b9 00 04 00 00 mov $0x400,%ecx 18ee1: 48 89 c7 mov %rax,%rdi 18ee4: e8 07 ad ff ff callq 13bf0 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) || 18ee9: 85 c0 test %eax,%eax 18eeb: 75 07 jne 18ef4 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x8f> 18eed: b8 01 00 00 00 mov $0x1,%eax 18ef2: eb 05 jmp 18ef9 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x94> 18ef4: b8 00 00 00 00 mov $0x0,%eax 18ef9: 84 c0 test %al,%al 18efb: 74 14 je 18f11 <_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); 18efd: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18f04: 48 89 c7 mov %rax,%rdi 18f07: e8 94 a3 ff ff callq 132a0 18f0c: e9 99 00 00 00 jmpq 18faa <_Z13x_pool_deleteP18enif_environment_tiPKm+0x145> } rados_t cluster = map_cluster[id]; 18f11: 48 8d 85 d8 fb ff ff lea -0x428(%rbp),%rax 18f18: 48 89 c6 mov %rax,%rsi 18f1b: 48 8b 05 96 f0 20 00 mov 0x20f096(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 18f22: 48 89 c7 mov %rax,%rdi 18f25: e8 46 a4 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 18f2a: 48 8b 00 mov (%rax),%rax 18f2d: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (cluster == NULL) 18f34: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 18f3b: 00 18f3c: 75 11 jne 18f4f <_Z13x_pool_deleteP18enif_environment_tiPKm+0xea> { return enif_make_badarg(env); 18f3e: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18f45: 48 89 c7 mov %rax,%rdi 18f48: e8 53 a3 ff ff callq 132a0 18f4d: eb 5b jmp 18faa <_Z13x_pool_deleteP18enif_environment_tiPKm+0x145> } int err = rados_pool_delete(cluster, pool_name); 18f4f: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 18f56: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 18f5d: 48 89 d6 mov %rdx,%rsi 18f60: 48 89 c7 mov %rax,%rdi 18f63: e8 a8 a5 ff ff callq 13510 18f68: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 18f6e: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 18f75: 79 1d jns 18f94 <_Z13x_pool_deleteP18enif_environment_tiPKm+0x12f> { return make_error_tuple(env, -err); 18f77: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 18f7d: 89 c2 mov %eax,%edx 18f7f: f7 da neg %edx 18f81: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18f88: 89 d6 mov %edx,%esi 18f8a: 48 89 c7 mov %rax,%rdi 18f8d: e8 9e a8 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 18f92: eb 16 jmp 18faa <_Z13x_pool_deleteP18enif_environment_tiPKm+0x145> } return enif_make_atom(env, "ok"); 18f94: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 18f9b: 48 8d 35 fd 94 00 00 lea 0x94fd(%rip),%rsi # 2249f <_fini+0x5e7> 18fa2: 48 89 c7 mov %rax,%rdi 18fa5: e8 16 98 ff ff callq 127c0 } 18faa: 48 8b 55 f8 mov -0x8(%rbp),%rdx 18fae: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 18fb5: 00 00 18fb7: 74 05 je 18fbe <_Z13x_pool_deleteP18enif_environment_tiPKm+0x159> 18fb9: e8 f2 a8 ff ff callq 138b0 <__stack_chk_fail@plt> 18fbe: c9 leaveq 18fbf: c3 retq 0000000000018fc0 <_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[]) { 18fc0: 55 push %rbp 18fc1: 48 89 e5 mov %rsp,%rbp 18fc4: 53 push %rbx 18fc5: 48 81 ec 68 04 00 00 sub $0x468,%rsp 18fcc: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 18fd3: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 18fd9: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 18fe0: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 18fe7: 00 00 18fe9: 48 89 45 e8 mov %rax,-0x18(%rbp) 18fed: 31 c0 xor %eax,%eax const char * func_name = "x_ioctx_create()"; 18fef: 48 8d 05 bb 94 00 00 lea 0x94bb(%rip),%rax # 224b1 <_fini+0x5f9> 18ff6: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 18ffd: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19004: 48 8b 08 mov (%rax),%rcx 19007: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1900e: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19015: 48 89 ce mov %rcx,%rsi 19018: 48 89 c7 mov %rax,%rdi 1901b: e8 70 9f ff ff callq 12f90 19020: 85 c0 test %eax,%eax 19022: 74 33 je 19057 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x97> !enif_get_string(env, argv[1], pool_name, MAX_NAME_LEN, ERL_NIF_LATIN1)) 19024: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1902b: 48 83 c0 08 add $0x8,%rax 1902f: 48 8b 30 mov (%rax),%rsi 19032: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 19039: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19040: 41 b8 01 00 00 00 mov $0x1,%r8d 19046: b9 00 04 00 00 mov $0x400,%ecx 1904b: 48 89 c7 mov %rax,%rdi 1904e: e8 9d ab ff ff callq 13bf0 { const char * func_name = "x_ioctx_create()"; uint64_t id; char pool_name[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 19053: 85 c0 test %eax,%eax 19055: 75 07 jne 1905e <_Z14x_ioctx_createP18enif_environment_tiPKm+0x9e> 19057: b8 01 00 00 00 mov $0x1,%eax 1905c: eb 05 jmp 19063 <_Z14x_ioctx_createP18enif_environment_tiPKm+0xa3> 1905e: b8 00 00 00 00 mov $0x0,%eax 19063: 84 c0 test %al,%al 19065: 74 40 je 190a7 <_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"); 19067: 48 8b 05 ea 03 21 00 mov 0x2103ea(%rip),%rax # 229458 <_ZL8MOD_NAME> 1906e: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19075: 48 8d 0d 46 94 00 00 lea 0x9446(%rip),%rcx # 224c2 <_fini+0x60a> 1907c: 48 89 c6 mov %rax,%rsi 1907f: 48 8b 05 0a ef 20 00 mov 0x20ef0a(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19086: 48 89 c7 mov %rax,%rdi 19089: b8 00 00 00 00 mov $0x0,%eax 1908e: e8 5d a7 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19093: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1909a: 48 89 c7 mov %rax,%rdi 1909d: e8 fe a1 ff ff callq 132a0 190a2: e9 07 02 00 00 jmpq 192ae <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2ee> } logger.debug(MOD_NAME, func_name, "cluster : %ld", id); 190a7: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 190ae: 48 8b 05 a3 03 21 00 mov 0x2103a3(%rip),%rax # 229458 <_ZL8MOD_NAME> 190b5: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 190bc: 49 89 c8 mov %rcx,%r8 190bf: 48 8d 0d 13 94 00 00 lea 0x9413(%rip),%rcx # 224d9 <_fini+0x621> 190c6: 48 89 c6 mov %rax,%rsi 190c9: 48 8b 05 c0 ee 20 00 mov 0x20eec0(%rip),%rax # 227f90 <_DYNAMIC+0x240> 190d0: 48 89 c7 mov %rax,%rdi 190d3: b8 00 00 00 00 mov $0x0,%eax 190d8: e8 b3 a8 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_t cluster = map_cluster[id]; 190dd: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 190e4: 48 89 c6 mov %rax,%rsi 190e7: 48 8b 05 ca ee 20 00 mov 0x20eeca(%rip),%rax # 227fb8 <_DYNAMIC+0x268> 190ee: 48 89 c7 mov %rax,%rdi 190f1: e8 7a a2 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 190f6: 48 8b 00 mov (%rax),%rax 190f9: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (cluster == NULL) 19100: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 19107: 00 19108: 75 4a jne 19154 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x194> { logger.error(MOD_NAME, func_name, "cluster non-existing : %ld", id); 1910a: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 19111: 48 8b 05 40 03 21 00 mov 0x210340(%rip),%rax # 229458 <_ZL8MOD_NAME> 19118: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1911f: 49 89 c8 mov %rcx,%r8 19122: 48 8d 0d be 93 00 00 lea 0x93be(%rip),%rcx # 224e7 <_fini+0x62f> 19129: 48 89 c6 mov %rax,%rsi 1912c: 48 8b 05 5d ee 20 00 mov 0x20ee5d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19133: 48 89 c7 mov %rax,%rdi 19136: b8 00 00 00 00 mov $0x0,%eax 1913b: e8 b0 a6 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19140: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19147: 48 89 c7 mov %rax,%rdi 1914a: e8 51 a1 ff ff callq 132a0 1914f: e9 5a 01 00 00 jmpq 192ae <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2ee> } rados_ioctx_t io; int err = rados_ioctx_create(cluster, pool_name, &io); 19154: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1915b: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 19162: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 19169: 48 89 ce mov %rcx,%rsi 1916c: 48 89 c7 mov %rax,%rdi 1916f: e8 2c 9f ff ff callq 130a0 19174: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1917a: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 19181: 79 6b jns 191ee <_Z14x_ioctx_createP18enif_environment_tiPKm+0x22e> { logger.error(MOD_NAME, func_name, "failed to create ioctx to cluster %ld: %s", id, strerror(-err)); 19183: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19189: f7 d8 neg %eax 1918b: 89 c7 mov %eax,%edi 1918d: e8 ae a1 ff ff callq 13340 19192: 48 89 c1 mov %rax,%rcx 19195: 48 8b b5 b0 fb ff ff mov -0x450(%rbp),%rsi 1919c: 48 8b 05 b5 02 21 00 mov 0x2102b5(%rip),%rax # 229458 <_ZL8MOD_NAME> 191a3: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 191aa: 49 89 c9 mov %rcx,%r9 191ad: 49 89 f0 mov %rsi,%r8 191b0: 48 8d 0d 51 93 00 00 lea 0x9351(%rip),%rcx # 22508 <_fini+0x650> 191b7: 48 89 c6 mov %rax,%rsi 191ba: 48 8b 05 cf ed 20 00 mov 0x20edcf(%rip),%rax # 227f90 <_DYNAMIC+0x240> 191c1: 48 89 c7 mov %rax,%rdi 191c4: b8 00 00 00 00 mov $0x0,%eax 191c9: e8 22 a6 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 191ce: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 191d4: 89 c2 mov %eax,%edx 191d6: f7 da neg %edx 191d8: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 191df: 89 d6 mov %edx,%esi 191e1: 48 89 c7 mov %rax,%rdi 191e4: e8 47 a6 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 191e9: e9 c0 00 00 00 jmpq 192ae <_Z14x_ioctx_createP18enif_environment_tiPKm+0x2ee> } uint64_t io_id = new_id(); 191ee: e8 8d a5 ff ff callq 13780 <_Z6new_idv@plt> 191f3: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) map_ioctx[io_id] = io; 191fa: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 19201: 48 89 c6 mov %rax,%rsi 19204: 48 8b 05 75 ed 20 00 mov 0x20ed75(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1920b: 48 89 c7 mov %rax,%rdi 1920e: e8 5d a1 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 19213: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1921a: 48 89 10 mov %rdx,(%rax) logger.debug(MOD_NAME, func_name, "cluster=%ld, ioctx=%ld", id, io_id); 1921d: 48 8b b5 c0 fb ff ff mov -0x440(%rbp),%rsi 19224: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1922b: 48 8b 05 26 02 21 00 mov 0x210226(%rip),%rax # 229458 <_ZL8MOD_NAME> 19232: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19239: 49 89 f1 mov %rsi,%r9 1923c: 49 89 c8 mov %rcx,%r8 1923f: 48 8d 0d ec 92 00 00 lea 0x92ec(%rip),%rcx # 22532 <_fini+0x67a> 19246: 48 89 c6 mov %rax,%rsi 19249: 48 8b 05 40 ed 20 00 mov 0x20ed40(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19250: 48 89 c7 mov %rax,%rdi 19253: b8 00 00 00 00 mov $0x0,%eax 19258: e8 33 a7 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> return enif_make_tuple2(env, 1925d: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 19264: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1926b: 48 89 d6 mov %rdx,%rsi 1926e: 48 89 c7 mov %rax,%rdi 19271: e8 aa a2 ff ff callq 13520 19276: 48 89 c3 mov %rax,%rbx 19279: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19280: 48 8d 35 c2 92 00 00 lea 0x92c2(%rip),%rsi # 22549 <_fini+0x691> 19287: 48 89 c7 mov %rax,%rdi 1928a: e8 31 95 ff ff callq 127c0 1928f: 48 89 c2 mov %rax,%rdx 19292: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19299: 48 89 d9 mov %rbx,%rcx 1929c: be 02 00 00 00 mov $0x2,%esi 192a1: 48 89 c7 mov %rax,%rdi 192a4: b8 00 00 00 00 mov $0x0,%eax 192a9: e8 52 a9 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, io_id)); } 192ae: 48 8b 55 e8 mov -0x18(%rbp),%rdx 192b2: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 192b9: 00 00 192bb: 74 05 je 192c2 <_Z14x_ioctx_createP18enif_environment_tiPKm+0x302> 192bd: e8 ee a5 ff ff callq 138b0 <__stack_chk_fail@plt> 192c2: 48 81 c4 68 04 00 00 add $0x468,%rsp 192c9: 5b pop %rbx 192ca: 5d pop %rbp 192cb: c3 retq 00000000000192cc <_Z15x_ioctx_destroyP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_destroy(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 192cc: 55 push %rbp 192cd: 48 89 e5 mov %rsp,%rbp 192d0: 48 83 ec 40 sub $0x40,%rsp 192d4: 48 89 7d d8 mov %rdi,-0x28(%rbp) 192d8: 89 75 d4 mov %esi,-0x2c(%rbp) 192db: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_ioctx_destroy()"; 192df: 48 8d 05 66 92 00 00 lea 0x9266(%rip),%rax # 2254c <_fini+0x694> 192e6: 48 89 45 f0 mov %rax,-0x10(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 192ea: 48 8b 45 c8 mov -0x38(%rbp),%rax 192ee: 48 8b 08 mov (%rax),%rcx 192f1: 48 8d 55 e8 lea -0x18(%rbp),%rdx 192f5: 48 8b 45 d8 mov -0x28(%rbp),%rax 192f9: 48 89 ce mov %rcx,%rsi 192fc: 48 89 c7 mov %rax,%rdi 192ff: e8 8c 9c ff ff callq 12f90 19304: 85 c0 test %eax,%eax 19306: 0f 94 c0 sete %al 19309: 84 c0 test %al,%al 1930b: 74 3a je 19347 <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1930d: 48 8b 05 44 01 21 00 mov 0x210144(%rip),%rax # 229458 <_ZL8MOD_NAME> 19314: 48 8b 55 f0 mov -0x10(%rbp),%rdx 19318: 48 8d 0d a3 91 00 00 lea 0x91a3(%rip),%rcx # 224c2 <_fini+0x60a> 1931f: 48 89 c6 mov %rax,%rsi 19322: 48 8b 05 67 ec 20 00 mov 0x20ec67(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19329: 48 89 c7 mov %rax,%rdi 1932c: b8 00 00 00 00 mov $0x0,%eax 19331: e8 ba a4 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19336: 48 8b 45 d8 mov -0x28(%rbp),%rax 1933a: 48 89 c7 mov %rax,%rdi 1933d: e8 5e 9f ff ff callq 132a0 19342: e9 d3 00 00 00 jmpq 1941a <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x14e> } rados_ioctx_t io = map_ioctx[id]; 19347: 48 8d 45 e8 lea -0x18(%rbp),%rax 1934b: 48 89 c6 mov %rax,%rsi 1934e: 48 8b 05 2b ec 20 00 mov 0x20ec2b(%rip),%rax # 227f80 <_DYNAMIC+0x230> 19355: 48 89 c7 mov %rax,%rdi 19358: e8 13 a0 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1935d: 48 8b 00 mov (%rax),%rax 19360: 48 89 45 f8 mov %rax,-0x8(%rbp) if (io == NULL) 19364: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 19369: 75 3e jne 193a9 <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0xdd> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1936b: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1936f: 48 8b 05 e2 00 21 00 mov 0x2100e2(%rip),%rax # 229458 <_ZL8MOD_NAME> 19376: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1937a: 49 89 c8 mov %rcx,%r8 1937d: 48 8d 0d da 91 00 00 lea 0x91da(%rip),%rcx # 2255e <_fini+0x6a6> 19384: 48 89 c6 mov %rax,%rsi 19387: 48 8b 05 02 ec 20 00 mov 0x20ec02(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1938e: 48 89 c7 mov %rax,%rdi 19391: b8 00 00 00 00 mov $0x0,%eax 19396: e8 55 a4 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1939b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1939f: 48 89 c7 mov %rax,%rdi 193a2: e8 f9 9e ff ff callq 132a0 193a7: eb 71 jmp 1941a <_Z15x_ioctx_destroyP18enif_environment_tiPKm+0x14e> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 193a9: 48 8b 4d e8 mov -0x18(%rbp),%rcx 193ad: 48 8b 05 a4 00 21 00 mov 0x2100a4(%rip),%rax # 229458 <_ZL8MOD_NAME> 193b4: 48 8b 55 f0 mov -0x10(%rbp),%rdx 193b8: 49 89 c8 mov %rcx,%r8 193bb: 48 8d 0d b5 91 00 00 lea 0x91b5(%rip),%rcx # 22577 <_fini+0x6bf> 193c2: 48 89 c6 mov %rax,%rsi 193c5: 48 8b 05 c4 eb 20 00 mov 0x20ebc4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 193cc: 48 89 c7 mov %rax,%rdi 193cf: b8 00 00 00 00 mov $0x0,%eax 193d4: e8 b7 a5 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> // Flush first to make sure that any writes are completed. rados_aio_flush(io); 193d9: 48 8b 45 f8 mov -0x8(%rbp),%rax 193dd: 48 89 c7 mov %rax,%rdi 193e0: e8 2b 99 ff ff callq 12d10 rados_ioctx_destroy(io); 193e5: 48 8b 45 f8 mov -0x8(%rbp),%rax 193e9: 48 89 c7 mov %rax,%rdi 193ec: e8 3f 90 ff ff callq 12430 map_ioctx.erase(id); 193f1: 48 8d 45 e8 lea -0x18(%rbp),%rax 193f5: 48 89 c6 mov %rax,%rsi 193f8: 48 8b 05 81 eb 20 00 mov 0x20eb81(%rip),%rax # 227f80 <_DYNAMIC+0x230> 193ff: 48 89 c7 mov %rax,%rdi 19402: e8 39 a2 ff ff callq 13640 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> return enif_make_atom(env, "ok"); 19407: 48 8b 45 d8 mov -0x28(%rbp),%rax 1940b: 48 8d 35 37 91 00 00 lea 0x9137(%rip),%rsi # 22549 <_fini+0x691> 19412: 48 89 c7 mov %rax,%rdi 19415: e8 a6 93 ff ff callq 127c0 } 1941a: c9 leaveq 1941b: c3 retq 000000000001941c <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_set_auid(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1941c: 55 push %rbp 1941d: 48 89 e5 mov %rsp,%rbp 19420: 48 83 ec 50 sub $0x50,%rsp 19424: 48 89 7d c8 mov %rdi,-0x38(%rbp) 19428: 89 75 c4 mov %esi,-0x3c(%rbp) 1942b: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_ioctx_pool_set_auid()"; 1942f: 48 8d 05 4d 91 00 00 lea 0x914d(%rip),%rax # 22583 <_fini+0x6cb> 19436: 48 89 45 e8 mov %rax,-0x18(%rbp) uint64_t id; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 1943a: 48 8b 45 b8 mov -0x48(%rbp),%rax 1943e: 48 8b 08 mov (%rax),%rcx 19441: 48 8d 55 d8 lea -0x28(%rbp),%rdx 19445: 48 8b 45 c8 mov -0x38(%rbp),%rax 19449: 48 89 ce mov %rcx,%rsi 1944c: 48 89 c7 mov %rax,%rdi 1944f: e8 3c 9b ff ff callq 12f90 19454: 85 c0 test %eax,%eax 19456: 74 22 je 1947a <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x5e> !enif_get_uint64(env, argv[1], &uid)) 19458: 48 8b 45 b8 mov -0x48(%rbp),%rax 1945c: 48 83 c0 08 add $0x8,%rax 19460: 48 8b 08 mov (%rax),%rcx 19463: 48 8d 55 e0 lea -0x20(%rbp),%rdx 19467: 48 8b 45 c8 mov -0x38(%rbp),%rax 1946b: 48 89 ce mov %rcx,%rsi 1946e: 48 89 c7 mov %rax,%rdi 19471: e8 1a 9b ff ff callq 12f90 { const char * func_name = "x_ioctx_pool_set_auid()"; uint64_t id; uint64_t uid; if (!enif_get_uint64(env, argv[0], &id) || 19476: 85 c0 test %eax,%eax 19478: 75 07 jne 19481 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x65> 1947a: b8 01 00 00 00 mov $0x1,%eax 1947f: eb 05 jmp 19486 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x6a> 19481: b8 00 00 00 00 mov $0x0,%eax 19486: 84 c0 test %al,%al 19488: 74 3a je 194c4 <_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"); 1948a: 48 8b 05 c7 ff 20 00 mov 0x20ffc7(%rip),%rax # 229458 <_ZL8MOD_NAME> 19491: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19495: 48 8d 0d 26 90 00 00 lea 0x9026(%rip),%rcx # 224c2 <_fini+0x60a> 1949c: 48 89 c6 mov %rax,%rsi 1949f: 48 8b 05 ea ea 20 00 mov 0x20eaea(%rip),%rax # 227f90 <_DYNAMIC+0x240> 194a6: 48 89 c7 mov %rax,%rdi 194a9: b8 00 00 00 00 mov $0x0,%eax 194ae: e8 3d a3 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 194b3: 48 8b 45 c8 mov -0x38(%rbp),%rax 194b7: 48 89 c7 mov %rax,%rdi 194ba: e8 e1 9d ff ff callq 132a0 194bf: e9 1d 01 00 00 jmpq 195e1 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1c5> } rados_ioctx_t io = map_ioctx[id]; 194c4: 48 8d 45 d8 lea -0x28(%rbp),%rax 194c8: 48 89 c6 mov %rax,%rsi 194cb: 48 8b 05 ae ea 20 00 mov 0x20eaae(%rip),%rax # 227f80 <_DYNAMIC+0x230> 194d2: 48 89 c7 mov %rax,%rdi 194d5: e8 96 9e ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 194da: 48 8b 00 mov (%rax),%rax 194dd: 48 89 45 f0 mov %rax,-0x10(%rbp) if (io == NULL) 194e1: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 194e6: 75 41 jne 19529 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x10d> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 194e8: 48 8b 4d d8 mov -0x28(%rbp),%rcx 194ec: 48 8b 05 65 ff 20 00 mov 0x20ff65(%rip),%rax # 229458 <_ZL8MOD_NAME> 194f3: 48 8b 55 e8 mov -0x18(%rbp),%rdx 194f7: 49 89 c8 mov %rcx,%r8 194fa: 48 8d 0d 5d 90 00 00 lea 0x905d(%rip),%rcx # 2255e <_fini+0x6a6> 19501: 48 89 c6 mov %rax,%rsi 19504: 48 8b 05 85 ea 20 00 mov 0x20ea85(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1950b: 48 89 c7 mov %rax,%rdi 1950e: b8 00 00 00 00 mov $0x0,%eax 19513: e8 d8 a2 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19518: 48 8b 45 c8 mov -0x38(%rbp),%rax 1951c: 48 89 c7 mov %rax,%rdi 1951f: e8 7c 9d ff ff callq 132a0 19524: e9 b8 00 00 00 jmpq 195e1 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1c5> } logger.debug(MOD_NAME, func_name, "ioctx : %ld, uid : %ld", id, uid); 19529: 48 8b 75 e0 mov -0x20(%rbp),%rsi 1952d: 48 8b 4d d8 mov -0x28(%rbp),%rcx 19531: 48 8b 05 20 ff 20 00 mov 0x20ff20(%rip),%rax # 229458 <_ZL8MOD_NAME> 19538: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1953c: 49 89 f1 mov %rsi,%r9 1953f: 49 89 c8 mov %rcx,%r8 19542: 48 8d 0d 52 90 00 00 lea 0x9052(%rip),%rcx # 2259b <_fini+0x6e3> 19549: 48 89 c6 mov %rax,%rsi 1954c: 48 8b 05 3d ea 20 00 mov 0x20ea3d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19553: 48 89 c7 mov %rax,%rdi 19556: b8 00 00 00 00 mov $0x0,%eax 1955b: e8 30 a4 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_ioctx_pool_set_auid(io, uid); 19560: 48 8b 55 e0 mov -0x20(%rbp),%rdx 19564: 48 8b 45 f0 mov -0x10(%rbp),%rax 19568: 48 89 d6 mov %rdx,%rsi 1956b: 48 89 c7 mov %rax,%rdi 1956e: e8 dd 98 ff ff callq 12e50 19573: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 19576: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1957a: 79 52 jns 195ce <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1b2> { logger.error(MOD_NAME, func_name, "set auid failed: %s", strerror(-err)); 1957c: 8b 45 fc mov -0x4(%rbp),%eax 1957f: f7 d8 neg %eax 19581: 89 c7 mov %eax,%edi 19583: e8 b8 9d ff ff callq 13340 19588: 48 89 c1 mov %rax,%rcx 1958b: 48 8b 05 c6 fe 20 00 mov 0x20fec6(%rip),%rax # 229458 <_ZL8MOD_NAME> 19592: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19596: 49 89 c8 mov %rcx,%r8 19599: 48 8d 0d 12 90 00 00 lea 0x9012(%rip),%rcx # 225b2 <_fini+0x6fa> 195a0: 48 89 c6 mov %rax,%rsi 195a3: 48 8b 05 e6 e9 20 00 mov 0x20e9e6(%rip),%rax # 227f90 <_DYNAMIC+0x240> 195aa: 48 89 c7 mov %rax,%rdi 195ad: b8 00 00 00 00 mov $0x0,%eax 195b2: e8 39 a2 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 195b7: 8b 45 fc mov -0x4(%rbp),%eax 195ba: 89 c2 mov %eax,%edx 195bc: f7 da neg %edx 195be: 48 8b 45 c8 mov -0x38(%rbp),%rax 195c2: 89 d6 mov %edx,%esi 195c4: 48 89 c7 mov %rax,%rdi 195c7: e8 64 a2 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 195cc: eb 13 jmp 195e1 <_Z21x_ioctx_pool_set_auidP18enif_environment_tiPKm+0x1c5> } return enif_make_atom(env, "ok"); 195ce: 48 8b 45 c8 mov -0x38(%rbp),%rax 195d2: 48 8d 35 70 8f 00 00 lea 0x8f70(%rip),%rsi # 22549 <_fini+0x691> 195d9: 48 89 c7 mov %rax,%rdi 195dc: e8 df 91 ff ff callq 127c0 } 195e1: c9 leaveq 195e2: c3 retq 00000000000195e3 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_get_auid(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 195e3: 55 push %rbp 195e4: 48 89 e5 mov %rsp,%rbp 195e7: 53 push %rbx 195e8: 48 83 ec 58 sub $0x58,%rsp 195ec: 48 89 7d b8 mov %rdi,-0x48(%rbp) 195f0: 89 75 b4 mov %esi,-0x4c(%rbp) 195f3: 48 89 55 a8 mov %rdx,-0x58(%rbp) const char * func_name = "x_ioctx_pool_get_auid()"; 195f7: 48 8d 05 c8 8f 00 00 lea 0x8fc8(%rip),%rax # 225c6 <_fini+0x70e> 195fe: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 19602: 48 8b 45 a8 mov -0x58(%rbp),%rax 19606: 48 8b 08 mov (%rax),%rcx 19609: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1960d: 48 8b 45 b8 mov -0x48(%rbp),%rax 19611: 48 89 ce mov %rcx,%rsi 19614: 48 89 c7 mov %rax,%rdi 19617: e8 74 99 ff ff callq 12f90 1961c: 85 c0 test %eax,%eax 1961e: 0f 94 c0 sete %al 19621: 84 c0 test %al,%al 19623: 74 3a je 1965f <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 19625: 48 8b 05 2c fe 20 00 mov 0x20fe2c(%rip),%rax # 229458 <_ZL8MOD_NAME> 1962c: 48 8b 55 d8 mov -0x28(%rbp),%rdx 19630: 48 8d 0d 8b 8e 00 00 lea 0x8e8b(%rip),%rcx # 224c2 <_fini+0x60a> 19637: 48 89 c6 mov %rax,%rsi 1963a: 48 8b 05 4f e9 20 00 mov 0x20e94f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19641: 48 89 c7 mov %rax,%rdi 19644: b8 00 00 00 00 mov $0x0,%eax 19649: e8 a2 a1 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1964e: 48 8b 45 b8 mov -0x48(%rbp),%rax 19652: 48 89 c7 mov %rax,%rdi 19655: e8 46 9c ff ff callq 132a0 1965a: e9 48 01 00 00 jmpq 197a7 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1c4> } rados_ioctx_t io = map_ioctx[id]; 1965f: 48 8d 45 c8 lea -0x38(%rbp),%rax 19663: 48 89 c6 mov %rax,%rsi 19666: 48 8b 05 13 e9 20 00 mov 0x20e913(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1966d: 48 89 c7 mov %rax,%rdi 19670: e8 fb 9c ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 19675: 48 8b 00 mov (%rax),%rax 19678: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1967c: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 19681: 75 41 jne 196c4 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0xe1> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 19683: 48 8b 4d c8 mov -0x38(%rbp),%rcx 19687: 48 8b 05 ca fd 20 00 mov 0x20fdca(%rip),%rax # 229458 <_ZL8MOD_NAME> 1968e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 19692: 49 89 c8 mov %rcx,%r8 19695: 48 8d 0d c2 8e 00 00 lea 0x8ec2(%rip),%rcx # 2255e <_fini+0x6a6> 1969c: 48 89 c6 mov %rax,%rsi 1969f: 48 8b 05 ea e8 20 00 mov 0x20e8ea(%rip),%rax # 227f90 <_DYNAMIC+0x240> 196a6: 48 89 c7 mov %rax,%rdi 196a9: b8 00 00 00 00 mov $0x0,%eax 196ae: e8 3d a1 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 196b3: 48 8b 45 b8 mov -0x48(%rbp),%rax 196b7: 48 89 c7 mov %rax,%rdi 196ba: e8 e1 9b ff ff callq 132a0 196bf: e9 e3 00 00 00 jmpq 197a7 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1c4> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 196c4: 48 8b 4d c8 mov -0x38(%rbp),%rcx 196c8: 48 8b 05 89 fd 20 00 mov 0x20fd89(%rip),%rax # 229458 <_ZL8MOD_NAME> 196cf: 48 8b 55 d8 mov -0x28(%rbp),%rdx 196d3: 49 89 c8 mov %rcx,%r8 196d6: 48 8d 0d 9a 8e 00 00 lea 0x8e9a(%rip),%rcx # 22577 <_fini+0x6bf> 196dd: 48 89 c6 mov %rax,%rsi 196e0: 48 8b 05 a9 e8 20 00 mov 0x20e8a9(%rip),%rax # 227f90 <_DYNAMIC+0x240> 196e7: 48 89 c7 mov %rax,%rdi 196ea: b8 00 00 00 00 mov $0x0,%eax 196ef: e8 9c a2 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t uid; int err = rados_ioctx_pool_get_auid(io, &uid); 196f4: 48 8d 55 d0 lea -0x30(%rbp),%rdx 196f8: 48 8b 45 e0 mov -0x20(%rbp),%rax 196fc: 48 89 d6 mov %rdx,%rsi 196ff: 48 89 c7 mov %rax,%rdi 19702: e8 29 8c ff ff callq 12330 19707: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1970a: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1970e: 79 52 jns 19762 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x17f> { logger.error(MOD_NAME, func_name, "get auid failed: %s", strerror(-err)); 19710: 8b 45 ec mov -0x14(%rbp),%eax 19713: f7 d8 neg %eax 19715: 89 c7 mov %eax,%edi 19717: e8 24 9c ff ff callq 13340 1971c: 48 89 c1 mov %rax,%rcx 1971f: 48 8b 05 32 fd 20 00 mov 0x20fd32(%rip),%rax # 229458 <_ZL8MOD_NAME> 19726: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1972a: 49 89 c8 mov %rcx,%r8 1972d: 48 8d 0d aa 8e 00 00 lea 0x8eaa(%rip),%rcx # 225de <_fini+0x726> 19734: 48 89 c6 mov %rax,%rsi 19737: 48 8b 05 52 e8 20 00 mov 0x20e852(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1973e: 48 89 c7 mov %rax,%rdi 19741: b8 00 00 00 00 mov $0x0,%eax 19746: e8 a5 a0 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1974b: 8b 45 ec mov -0x14(%rbp),%eax 1974e: 89 c2 mov %eax,%edx 19750: f7 da neg %edx 19752: 48 8b 45 b8 mov -0x48(%rbp),%rax 19756: 89 d6 mov %edx,%esi 19758: 48 89 c7 mov %rax,%rdi 1975b: e8 d0 a0 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 19760: eb 45 jmp 197a7 <_Z21x_ioctx_pool_get_auidP18enif_environment_tiPKm+0x1c4> } return enif_make_tuple2(env, 19762: 48 8b 55 d0 mov -0x30(%rbp),%rdx 19766: 48 8b 45 b8 mov -0x48(%rbp),%rax 1976a: 48 89 d6 mov %rdx,%rsi 1976d: 48 89 c7 mov %rax,%rdi 19770: e8 ab 9d ff ff callq 13520 19775: 48 89 c3 mov %rax,%rbx 19778: 48 8b 45 b8 mov -0x48(%rbp),%rax 1977c: 48 8d 35 c6 8d 00 00 lea 0x8dc6(%rip),%rsi # 22549 <_fini+0x691> 19783: 48 89 c7 mov %rax,%rdi 19786: e8 35 90 ff ff callq 127c0 1978b: 48 89 c2 mov %rax,%rdx 1978e: 48 8b 45 b8 mov -0x48(%rbp),%rax 19792: 48 89 d9 mov %rbx,%rcx 19795: be 02 00 00 00 mov $0x2,%esi 1979a: 48 89 c7 mov %rax,%rdi 1979d: b8 00 00 00 00 mov $0x0,%eax 197a2: e8 59 a4 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, uid)); } 197a7: 48 83 c4 58 add $0x58,%rsp 197ab: 5b pop %rbx 197ac: 5d pop %rbp 197ad: c3 retq 00000000000197ae <_Z14x_ioctx_get_idP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_get_id(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 197ae: 55 push %rbp 197af: 48 89 e5 mov %rsp,%rbp 197b2: 53 push %rbx 197b3: 48 83 ec 48 sub $0x48,%rsp 197b7: 48 89 7d c8 mov %rdi,-0x38(%rbp) 197bb: 89 75 c4 mov %esi,-0x3c(%rbp) 197be: 48 89 55 b8 mov %rdx,-0x48(%rbp) const char * func_name = "x_ioctx_get_id()"; 197c2: 48 8d 05 29 8e 00 00 lea 0x8e29(%rip),%rax # 225f2 <_fini+0x73a> 197c9: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 197cd: 48 8b 45 b8 mov -0x48(%rbp),%rax 197d1: 48 8b 08 mov (%rax),%rcx 197d4: 48 8d 55 d0 lea -0x30(%rbp),%rdx 197d8: 48 8b 45 c8 mov -0x38(%rbp),%rax 197dc: 48 89 ce mov %rcx,%rsi 197df: 48 89 c7 mov %rax,%rdi 197e2: e8 a9 97 ff ff callq 12f90 197e7: 85 c0 test %eax,%eax 197e9: 0f 94 c0 sete %al 197ec: 84 c0 test %al,%al 197ee: 74 3a je 1982a <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 197f0: 48 8b 05 61 fc 20 00 mov 0x20fc61(%rip),%rax # 229458 <_ZL8MOD_NAME> 197f7: 48 8b 55 d8 mov -0x28(%rbp),%rdx 197fb: 48 8d 0d c0 8c 00 00 lea 0x8cc0(%rip),%rcx # 224c2 <_fini+0x60a> 19802: 48 89 c6 mov %rax,%rsi 19805: 48 8b 05 84 e7 20 00 mov 0x20e784(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1980c: 48 89 c7 mov %rax,%rdi 1980f: b8 00 00 00 00 mov $0x0,%eax 19814: e8 d7 9f ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19819: 48 8b 45 c8 mov -0x38(%rbp),%rax 1981d: 48 89 c7 mov %rax,%rdi 19820: e8 7b 9a ff ff callq 132a0 19825: e9 ea 00 00 00 jmpq 19914 <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x166> } rados_ioctx_t io = map_ioctx[id]; 1982a: 48 8d 45 d0 lea -0x30(%rbp),%rax 1982e: 48 89 c6 mov %rax,%rsi 19831: 48 8b 05 48 e7 20 00 mov 0x20e748(%rip),%rax # 227f80 <_DYNAMIC+0x230> 19838: 48 89 c7 mov %rax,%rdi 1983b: e8 30 9b ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 19840: 48 8b 00 mov (%rax),%rax 19843: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 19847: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1984c: 75 41 jne 1988f <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0xe1> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1984e: 48 8b 4d d0 mov -0x30(%rbp),%rcx 19852: 48 8b 05 ff fb 20 00 mov 0x20fbff(%rip),%rax # 229458 <_ZL8MOD_NAME> 19859: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1985d: 49 89 c8 mov %rcx,%r8 19860: 48 8d 0d f7 8c 00 00 lea 0x8cf7(%rip),%rcx # 2255e <_fini+0x6a6> 19867: 48 89 c6 mov %rax,%rsi 1986a: 48 8b 05 1f e7 20 00 mov 0x20e71f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19871: 48 89 c7 mov %rax,%rdi 19874: b8 00 00 00 00 mov $0x0,%eax 19879: e8 72 9f ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1987e: 48 8b 45 c8 mov -0x38(%rbp),%rax 19882: 48 89 c7 mov %rax,%rdi 19885: e8 16 9a ff ff callq 132a0 1988a: e9 85 00 00 00 jmpq 19914 <_Z14x_ioctx_get_idP18enif_environment_tiPKm+0x166> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 1988f: 48 8b 4d d0 mov -0x30(%rbp),%rcx 19893: 48 8b 05 be fb 20 00 mov 0x20fbbe(%rip),%rax # 229458 <_ZL8MOD_NAME> 1989a: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1989e: 49 89 c8 mov %rcx,%r8 198a1: 48 8d 0d cf 8c 00 00 lea 0x8ccf(%rip),%rcx # 22577 <_fini+0x6bf> 198a8: 48 89 c6 mov %rax,%rsi 198ab: 48 8b 05 de e6 20 00 mov 0x20e6de(%rip),%rax # 227f90 <_DYNAMIC+0x240> 198b2: 48 89 c7 mov %rax,%rdi 198b5: b8 00 00 00 00 mov $0x0,%eax 198ba: e8 d1 a0 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t uid = rados_ioctx_get_id(io); 198bf: 48 8b 45 e0 mov -0x20(%rbp),%rax 198c3: 48 89 c7 mov %rax,%rdi 198c6: e8 95 a0 ff ff callq 13960 198cb: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 198cf: 48 8b 55 e8 mov -0x18(%rbp),%rdx 198d3: 48 8b 45 c8 mov -0x38(%rbp),%rax 198d7: 48 89 d6 mov %rdx,%rsi 198da: 48 89 c7 mov %rax,%rdi 198dd: e8 3e 9c ff ff callq 13520 198e2: 48 89 c3 mov %rax,%rbx 198e5: 48 8b 45 c8 mov -0x38(%rbp),%rax 198e9: 48 8d 35 59 8c 00 00 lea 0x8c59(%rip),%rsi # 22549 <_fini+0x691> 198f0: 48 89 c7 mov %rax,%rdi 198f3: e8 c8 8e ff ff callq 127c0 198f8: 48 89 c2 mov %rax,%rdx 198fb: 48 8b 45 c8 mov -0x38(%rbp),%rax 198ff: 48 89 d9 mov %rbx,%rcx 19902: be 02 00 00 00 mov $0x2,%esi 19907: 48 89 c7 mov %rax,%rdi 1990a: b8 00 00 00 00 mov $0x0,%eax 1990f: e8 ec a2 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, uid)); } 19914: 48 83 c4 48 add $0x48,%rsp 19918: 5b pop %rbx 19919: 5d pop %rbp 1991a: c3 retq 000000000001991b <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_get_pool_name(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1991b: 55 push %rbp 1991c: 48 89 e5 mov %rsp,%rbp 1991f: 53 push %rbx 19920: 48 81 ec 58 04 00 00 sub $0x458,%rsp 19927: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1992e: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 19934: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1993b: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 19942: 00 00 19944: 48 89 45 e8 mov %rax,-0x18(%rbp) 19948: 31 c0 xor %eax,%eax const char * func_name = "x_ioctx_get_pool_name()"; 1994a: 48 8d 05 b2 8c 00 00 lea 0x8cb2(%rip),%rax # 22603 <_fini+0x74b> 19951: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 19958: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1995f: 48 8b 08 mov (%rax),%rcx 19962: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 19969: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19970: 48 89 ce mov %rcx,%rsi 19973: 48 89 c7 mov %rax,%rdi 19976: e8 15 96 ff ff callq 12f90 1997b: 85 c0 test %eax,%eax 1997d: 0f 94 c0 sete %al 19980: 84 c0 test %al,%al 19982: 74 40 je 199c4 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0xa9> { logger.error(MOD_NAME, func_name, "enif get params failed"); 19984: 48 8b 05 cd fa 20 00 mov 0x20facd(%rip),%rax # 229458 <_ZL8MOD_NAME> 1998b: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19992: 48 8d 0d 29 8b 00 00 lea 0x8b29(%rip),%rcx # 224c2 <_fini+0x60a> 19999: 48 89 c6 mov %rax,%rsi 1999c: 48 8b 05 ed e5 20 00 mov 0x20e5ed(%rip),%rax # 227f90 <_DYNAMIC+0x240> 199a3: 48 89 c7 mov %rax,%rdi 199a6: b8 00 00 00 00 mov $0x0,%eax 199ab: e8 40 9e ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 199b0: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 199b7: 48 89 c7 mov %rax,%rdi 199ba: e8 e1 98 ff ff callq 132a0 199bf: e9 a7 01 00 00 jmpq 19b6b <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x250> } rados_ioctx_t io = map_ioctx[id]; 199c4: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 199cb: 48 89 c6 mov %rax,%rsi 199ce: 48 8b 05 ab e5 20 00 mov 0x20e5ab(%rip),%rax # 227f80 <_DYNAMIC+0x230> 199d5: 48 89 c7 mov %rax,%rdi 199d8: e8 93 99 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 199dd: 48 8b 00 mov (%rax),%rax 199e0: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 199e7: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 199ee: 00 199ef: 75 4a jne 19a3b <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x120> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 199f1: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 199f8: 48 8b 05 59 fa 20 00 mov 0x20fa59(%rip),%rax # 229458 <_ZL8MOD_NAME> 199ff: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19a06: 49 89 c8 mov %rcx,%r8 19a09: 48 8d 0d 4e 8b 00 00 lea 0x8b4e(%rip),%rcx # 2255e <_fini+0x6a6> 19a10: 48 89 c6 mov %rax,%rsi 19a13: 48 8b 05 76 e5 20 00 mov 0x20e576(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19a1a: 48 89 c7 mov %rax,%rdi 19a1d: b8 00 00 00 00 mov $0x0,%eax 19a22: e8 c9 9d ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19a27: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19a2e: 48 89 c7 mov %rax,%rdi 19a31: e8 6a 98 ff ff callq 132a0 19a36: e9 30 01 00 00 jmpq 19b6b <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x250> } logger.debug(MOD_NAME, func_name, "ioctx : %ld", id); 19a3b: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 19a42: 48 8b 05 0f fa 20 00 mov 0x20fa0f(%rip),%rax # 229458 <_ZL8MOD_NAME> 19a49: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19a50: 49 89 c8 mov %rcx,%r8 19a53: 48 8d 0d 1d 8b 00 00 lea 0x8b1d(%rip),%rcx # 22577 <_fini+0x6bf> 19a5a: 48 89 c6 mov %rax,%rsi 19a5d: 48 8b 05 2c e5 20 00 mov 0x20e52c(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19a64: 48 89 c7 mov %rax,%rdi 19a67: b8 00 00 00 00 mov $0x0,%eax 19a6c: e8 1f 9f ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> char pool_name[MAX_NAME_LEN]; memset(pool_name, 0, MAX_NAME_LEN); 19a71: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 19a78: ba 00 04 00 00 mov $0x400,%edx 19a7d: be 00 00 00 00 mov $0x0,%esi 19a82: 48 89 c7 mov %rax,%rdi 19a85: e8 c6 89 ff ff callq 12450 int err = rados_ioctx_get_pool_name(io, pool_name, MAX_NAME_LEN - 1); 19a8a: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 19a91: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 19a98: ba ff 03 00 00 mov $0x3ff,%edx 19a9d: 48 89 ce mov %rcx,%rsi 19aa0: 48 89 c7 mov %rax,%rdi 19aa3: e8 e8 a4 ff ff callq 13f90 19aa8: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 19aae: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 19ab5: 79 5e jns 19b15 <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x1fa> { logger.error(MOD_NAME, func_name, "get pool name failed: %s", strerror(-err)); 19ab7: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19abd: f7 d8 neg %eax 19abf: 89 c7 mov %eax,%edi 19ac1: e8 7a 98 ff ff callq 13340 19ac6: 48 89 c1 mov %rax,%rcx 19ac9: 48 8b 05 88 f9 20 00 mov 0x20f988(%rip),%rax # 229458 <_ZL8MOD_NAME> 19ad0: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19ad7: 49 89 c8 mov %rcx,%r8 19ada: 48 8d 0d 3a 8b 00 00 lea 0x8b3a(%rip),%rcx # 2261b <_fini+0x763> 19ae1: 48 89 c6 mov %rax,%rsi 19ae4: 48 8b 05 a5 e4 20 00 mov 0x20e4a5(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19aeb: 48 89 c7 mov %rax,%rdi 19aee: b8 00 00 00 00 mov $0x0,%eax 19af3: e8 f8 9c ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 19af8: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19afe: 89 c2 mov %eax,%edx 19b00: f7 da neg %edx 19b02: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19b09: 89 d6 mov %edx,%esi 19b0b: 48 89 c7 mov %rax,%rdi 19b0e: e8 1d 9d ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 19b13: eb 56 jmp 19b6b <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x250> } // TODO: check return length of the pool name buffer return enif_make_tuple2(env, 19b15: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 19b1c: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19b23: ba 01 00 00 00 mov $0x1,%edx 19b28: 48 89 ce mov %rcx,%rsi 19b2b: 48 89 c7 mov %rax,%rdi 19b2e: e8 fd 96 ff ff callq 13230 19b33: 48 89 c3 mov %rax,%rbx 19b36: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19b3d: 48 8d 35 05 8a 00 00 lea 0x8a05(%rip),%rsi # 22549 <_fini+0x691> 19b44: 48 89 c7 mov %rax,%rdi 19b47: e8 74 8c ff ff callq 127c0 19b4c: 48 89 c2 mov %rax,%rdx 19b4f: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 19b56: 48 89 d9 mov %rbx,%rcx 19b59: be 02 00 00 00 mov $0x2,%esi 19b5e: 48 89 c7 mov %rax,%rdi 19b61: b8 00 00 00 00 mov $0x0,%eax 19b66: e8 95 a0 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_string(env, pool_name, ERL_NIF_LATIN1)); } 19b6b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19b6f: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 19b76: 00 00 19b78: 74 05 je 19b7f <_Z21x_ioctx_get_pool_nameP18enif_environment_tiPKm+0x264> 19b7a: e8 31 9d ff ff callq 138b0 <__stack_chk_fail@plt> 19b7f: 48 81 c4 58 04 00 00 add $0x458,%rsp 19b86: 5b pop %rbx 19b87: 5d pop %rbp 19b88: c3 retq 0000000000019b89 <_Z7x_writeP18enif_environment_tiPKm>: // Erlang: write(IoCtx, Oid, Data, Offset) ERL_NIF_TERM x_write(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 19b89: 55 push %rbp 19b8a: 48 89 e5 mov %rsp,%rbp 19b8d: 53 push %rbx 19b8e: 48 81 ec 98 04 00 00 sub $0x498,%rsp 19b95: 48 89 bd 88 fb ff ff mov %rdi,-0x478(%rbp) 19b9c: 89 b5 84 fb ff ff mov %esi,-0x47c(%rbp) 19ba2: 48 89 95 78 fb ff ff mov %rdx,-0x488(%rbp) 19ba9: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 19bb0: 00 00 19bb2: 48 89 45 e8 mov %rax,-0x18(%rbp) 19bb6: 31 c0 xor %eax,%eax const char * func_name = "x_write()"; 19bb8: 48 8d 05 75 8a 00 00 lea 0x8a75(%rip),%rax # 22634 <_fini+0x77c> 19bbf: 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); 19bc6: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 19bcd: ba 00 04 00 00 mov $0x400,%edx 19bd2: be 00 00 00 00 mov $0x0,%esi 19bd7: 48 89 c7 mov %rax,%rdi 19bda: e8 71 88 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 19bdf: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 19be6: 48 8b 08 mov (%rax),%rcx 19be9: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 19bf0: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19bf7: 48 89 ce mov %rcx,%rsi 19bfa: 48 89 c7 mov %rax,%rdi 19bfd: e8 8e 93 ff ff callq 12f90 19c02: 85 c0 test %eax,%eax 19c04: 0f 84 82 00 00 00 je 19c8c <_Z7x_writeP18enif_environment_tiPKm+0x103> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 19c0a: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 19c11: 48 83 c0 08 add $0x8,%rax 19c15: 48 8b 30 mov (%rax),%rsi 19c18: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 19c1f: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19c26: 41 b8 01 00 00 00 mov $0x1,%r8d 19c2c: b9 00 04 00 00 mov $0x400,%ecx 19c31: 48 89 c7 mov %rax,%rdi 19c34: e8 b7 9f ff ff callq 13bf0 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) || 19c39: 85 c0 test %eax,%eax 19c3b: 74 4f je 19c8c <_Z7x_writeP18enif_environment_tiPKm+0x103> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2]) || 19c3d: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 19c44: 48 83 c0 10 add $0x10,%rax 19c48: 48 8b 10 mov (%rax),%rdx 19c4b: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19c52: 48 89 d6 mov %rdx,%rsi 19c55: 48 89 c7 mov %rax,%rdi 19c58: e8 63 9f ff ff callq 13bc0 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) || 19c5d: 85 c0 test %eax,%eax 19c5f: 74 2b je 19c8c <_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)) 19c61: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 19c68: 48 83 c0 18 add $0x18,%rax 19c6c: 48 8b 08 mov (%rax),%rcx 19c6f: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 19c76: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19c7d: 48 89 ce mov %rcx,%rsi 19c80: 48 89 c7 mov %rax,%rdi 19c83: e8 08 93 ff ff callq 12f90 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) || 19c88: 85 c0 test %eax,%eax 19c8a: 75 07 jne 19c93 <_Z7x_writeP18enif_environment_tiPKm+0x10a> 19c8c: b8 01 00 00 00 mov $0x1,%eax 19c91: eb 05 jmp 19c98 <_Z7x_writeP18enif_environment_tiPKm+0x10f> 19c93: b8 00 00 00 00 mov $0x0,%eax 19c98: 84 c0 test %al,%al 19c9a: 74 40 je 19cdc <_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"); 19c9c: 48 8b 05 b5 f7 20 00 mov 0x20f7b5(%rip),%rax # 229458 <_ZL8MOD_NAME> 19ca3: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19caa: 48 8d 0d 11 88 00 00 lea 0x8811(%rip),%rcx # 224c2 <_fini+0x60a> 19cb1: 48 89 c6 mov %rax,%rsi 19cb4: 48 8b 05 d5 e2 20 00 mov 0x20e2d5(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19cbb: 48 89 c7 mov %rax,%rdi 19cbe: b8 00 00 00 00 mov $0x0,%eax 19cc3: e8 28 9b ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19cc8: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19ccf: 48 89 c7 mov %rax,%rdi 19cd2: e8 c9 95 ff ff callq 132a0 19cd7: e9 fd 01 00 00 jmpq 19ed9 <_Z7x_writeP18enif_environment_tiPKm+0x350> } rados_ioctx_t io = map_ioctx[id]; 19cdc: 48 8d 85 b8 fb ff ff lea -0x448(%rbp),%rax 19ce3: 48 89 c6 mov %rax,%rsi 19ce6: 48 8b 05 93 e2 20 00 mov 0x20e293(%rip),%rax # 227f80 <_DYNAMIC+0x230> 19ced: 48 89 c7 mov %rax,%rdi 19cf0: e8 7b 96 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 19cf5: 48 8b 00 mov (%rax),%rax 19cf8: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 19cff: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 19d06: 00 19d07: 75 4a jne 19d53 <_Z7x_writeP18enif_environment_tiPKm+0x1ca> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 19d09: 48 8b 8d b8 fb ff ff mov -0x448(%rbp),%rcx 19d10: 48 8b 05 41 f7 20 00 mov 0x20f741(%rip),%rax # 229458 <_ZL8MOD_NAME> 19d17: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19d1e: 49 89 c8 mov %rcx,%r8 19d21: 48 8d 0d 36 88 00 00 lea 0x8836(%rip),%rcx # 2255e <_fini+0x6a6> 19d28: 48 89 c6 mov %rax,%rsi 19d2b: 48 8b 05 5e e2 20 00 mov 0x20e25e(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19d32: 48 89 c7 mov %rax,%rdi 19d35: b8 00 00 00 00 mov $0x0,%eax 19d3a: e8 b1 9a ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 19d3f: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19d46: 48 89 c7 mov %rax,%rdi 19d49: e8 52 95 ff ff callq 132a0 19d4e: e9 86 01 00 00 jmpq 19ed9 <_Z7x_writeP18enif_environment_tiPKm+0x350> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 19d53: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 19d5a: 48 83 c0 10 add $0x10,%rax 19d5e: 48 8b 08 mov (%rax),%rcx 19d61: 48 8d 95 90 fb ff ff lea -0x470(%rbp),%rdx 19d68: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19d6f: 48 89 ce mov %rcx,%rsi 19d72: 48 89 c7 mov %rax,%rdi 19d75: e8 66 97 ff ff callq 134e0 logger.debug(MOD_NAME, func_name, "id=%ld, oid=%s, len=%d, offset=%ld", id, oid, ibin.size, offset); 19d7a: 48 8b b5 c0 fb ff ff mov -0x440(%rbp),%rsi 19d81: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 19d88: 48 8b bd b8 fb ff ff mov -0x448(%rbp),%rdi 19d8f: 48 8b 05 c2 f6 20 00 mov 0x20f6c2(%rip),%rax # 229458 <_ZL8MOD_NAME> 19d96: 4c 8d 85 e0 fb ff ff lea -0x420(%rbp),%r8 19d9d: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19da4: 48 89 74 24 08 mov %rsi,0x8(%rsp) 19da9: 48 89 0c 24 mov %rcx,(%rsp) 19dad: 4d 89 c1 mov %r8,%r9 19db0: 49 89 f8 mov %rdi,%r8 19db3: 48 8d 0d 86 88 00 00 lea 0x8886(%rip),%rcx # 22640 <_fini+0x788> 19dba: 48 89 c6 mov %rax,%rsi 19dbd: 48 8b 05 cc e1 20 00 mov 0x20e1cc(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19dc4: 48 89 c7 mov %rax,%rdi 19dc7: b8 00 00 00 00 mov $0x0,%eax 19dcc: e8 bf 9b ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_write(io, oid, (const char*)ibin.data, ibin.size, offset); 19dd1: 48 8b bd c0 fb ff ff mov -0x440(%rbp),%rdi 19dd8: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 19ddf: 48 8b 95 98 fb ff ff mov -0x468(%rbp),%rdx 19de6: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 19ded: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 19df4: 49 89 f8 mov %rdi,%r8 19df7: 48 89 c7 mov %rax,%rdi 19dfa: e8 a1 96 ff ff callq 134a0 19dff: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 19e05: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 19e0c: 79 6d jns 19e7b <_Z7x_writeP18enif_environment_tiPKm+0x2f2> { logger.error(MOD_NAME, func_name, "write failed: %s", strerror(-err)); 19e0e: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19e14: f7 d8 neg %eax 19e16: 89 c7 mov %eax,%edi 19e18: e8 23 95 ff ff callq 13340 19e1d: 48 89 c1 mov %rax,%rcx 19e20: 48 8b 05 31 f6 20 00 mov 0x20f631(%rip),%rax # 229458 <_ZL8MOD_NAME> 19e27: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 19e2e: 49 89 c8 mov %rcx,%r8 19e31: 48 8d 0d 2b 88 00 00 lea 0x882b(%rip),%rcx # 22663 <_fini+0x7ab> 19e38: 48 89 c6 mov %rax,%rsi 19e3b: 48 8b 05 4e e1 20 00 mov 0x20e14e(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19e42: 48 89 c7 mov %rax,%rdi 19e45: b8 00 00 00 00 mov $0x0,%eax 19e4a: e8 a1 99 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> enif_release_binary(&ibin); 19e4f: 48 8d 85 90 fb ff ff lea -0x470(%rbp),%rax 19e56: 48 89 c7 mov %rax,%rdi 19e59: e8 32 8c ff ff callq 12a90 return make_error_tuple(env, -err); 19e5e: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 19e64: 89 c2 mov %eax,%edx 19e66: f7 da neg %edx 19e68: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19e6f: 89 d6 mov %edx,%esi 19e71: 48 89 c7 mov %rax,%rdi 19e74: e8 b7 99 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 19e79: eb 5e jmp 19ed9 <_Z7x_writeP18enif_environment_tiPKm+0x350> } enif_release_binary(&ibin); 19e7b: 48 8d 85 90 fb ff ff lea -0x470(%rbp),%rax 19e82: 48 89 c7 mov %rax,%rdi 19e85: e8 06 8c ff ff callq 12a90 return enif_make_tuple2(env, 19e8a: 8b 95 dc fb ff ff mov -0x424(%rbp),%edx 19e90: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19e97: 89 d6 mov %edx,%esi 19e99: 48 89 c7 mov %rax,%rdi 19e9c: e8 5f 9e ff ff callq 13d00 19ea1: 48 89 c3 mov %rax,%rbx 19ea4: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19eab: 48 8d 35 97 86 00 00 lea 0x8697(%rip),%rsi # 22549 <_fini+0x691> 19eb2: 48 89 c7 mov %rax,%rdi 19eb5: e8 06 89 ff ff callq 127c0 19eba: 48 89 c2 mov %rax,%rdx 19ebd: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 19ec4: 48 89 d9 mov %rbx,%rcx 19ec7: be 02 00 00 00 mov $0x2,%esi 19ecc: 48 89 c7 mov %rax,%rdi 19ecf: b8 00 00 00 00 mov $0x0,%eax 19ed4: e8 27 9d ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_int(env, err)); // Number of bytes written } 19ed9: 48 8b 55 e8 mov -0x18(%rbp),%rdx 19edd: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 19ee4: 00 00 19ee6: 74 05 je 19eed <_Z7x_writeP18enif_environment_tiPKm+0x364> 19ee8: e8 c3 99 ff ff callq 138b0 <__stack_chk_fail@plt> 19eed: 48 81 c4 98 04 00 00 add $0x498,%rsp 19ef4: 5b pop %rbx 19ef5: 5d pop %rbp 19ef6: c3 retq 0000000000019ef7 <_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[]) { 19ef7: 55 push %rbp 19ef8: 48 89 e5 mov %rsp,%rbp 19efb: 48 81 ec 70 04 00 00 sub $0x470,%rsp 19f02: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 19f09: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 19f0f: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 19f16: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 19f1d: 00 00 19f1f: 48 89 45 f8 mov %rax,-0x8(%rbp) 19f23: 31 c0 xor %eax,%eax const char * func_name = "x_write_full()"; 19f25: 48 8d 05 48 87 00 00 lea 0x8748(%rip),%rax # 22674 <_fini+0x7bc> 19f2c: 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); 19f33: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 19f3a: ba 00 04 00 00 mov $0x400,%edx 19f3f: be 00 00 00 00 mov $0x0,%esi 19f44: 48 89 c7 mov %rax,%rdi 19f47: e8 04 85 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 19f4c: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19f53: 48 8b 08 mov (%rax),%rcx 19f56: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 19f5d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19f64: 48 89 ce mov %rcx,%rsi 19f67: 48 89 c7 mov %rax,%rdi 19f6a: e8 21 90 ff ff callq 12f90 19f6f: 85 c0 test %eax,%eax 19f71: 74 57 je 19fca <_Z12x_write_fullP18enif_environment_tiPKm+0xd3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 19f73: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19f7a: 48 83 c0 08 add $0x8,%rax 19f7e: 48 8b 30 mov (%rax),%rsi 19f81: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 19f88: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19f8f: 41 b8 01 00 00 00 mov $0x1,%r8d 19f95: b9 00 04 00 00 mov $0x400,%ecx 19f9a: 48 89 c7 mov %rax,%rdi 19f9d: e8 4e 9c ff ff callq 13bf0 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) || 19fa2: 85 c0 test %eax,%eax 19fa4: 74 24 je 19fca <_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])) 19fa6: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 19fad: 48 83 c0 10 add $0x10,%rax 19fb1: 48 8b 10 mov (%rax),%rdx 19fb4: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 19fbb: 48 89 d6 mov %rdx,%rsi 19fbe: 48 89 c7 mov %rax,%rdi 19fc1: e8 fa 9b ff ff callq 13bc0 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) || 19fc6: 85 c0 test %eax,%eax 19fc8: 75 07 jne 19fd1 <_Z12x_write_fullP18enif_environment_tiPKm+0xda> 19fca: b8 01 00 00 00 mov $0x1,%eax 19fcf: eb 05 jmp 19fd6 <_Z12x_write_fullP18enif_environment_tiPKm+0xdf> 19fd1: b8 00 00 00 00 mov $0x0,%eax 19fd6: 84 c0 test %al,%al 19fd8: 74 40 je 1a01a <_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"); 19fda: 48 8b 05 77 f4 20 00 mov 0x20f477(%rip),%rax # 229458 <_ZL8MOD_NAME> 19fe1: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 19fe8: 48 8d 0d d3 84 00 00 lea 0x84d3(%rip),%rcx # 224c2 <_fini+0x60a> 19fef: 48 89 c6 mov %rax,%rsi 19ff2: 48 8b 05 97 df 20 00 mov 0x20df97(%rip),%rax # 227f90 <_DYNAMIC+0x240> 19ff9: 48 89 c7 mov %rax,%rdi 19ffc: b8 00 00 00 00 mov $0x0,%eax 1a001: e8 ea 97 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a006: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a00d: 48 89 c7 mov %rax,%rdi 1a010: e8 8b 92 ff ff callq 132a0 1a015: e9 22 01 00 00 jmpq 1a13c <_Z12x_write_fullP18enif_environment_tiPKm+0x245> } rados_ioctx_t io = map_ioctx[id]; 1a01a: 48 8d 85 d0 fb ff ff lea -0x430(%rbp),%rax 1a021: 48 89 c6 mov %rax,%rsi 1a024: 48 8b 05 55 df 20 00 mov 0x20df55(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1a02b: 48 89 c7 mov %rax,%rdi 1a02e: e8 3d 93 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1a033: 48 8b 00 mov (%rax),%rax 1a036: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1a03d: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1a044: 00 1a045: 75 4a jne 1a091 <_Z12x_write_fullP18enif_environment_tiPKm+0x19a> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a047: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1a04e: 48 8b 05 03 f4 20 00 mov 0x20f403(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a055: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a05c: 49 89 c8 mov %rcx,%r8 1a05f: 48 8d 0d f8 84 00 00 lea 0x84f8(%rip),%rcx # 2255e <_fini+0x6a6> 1a066: 48 89 c6 mov %rax,%rsi 1a069: 48 8b 05 20 df 20 00 mov 0x20df20(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a070: 48 89 c7 mov %rax,%rdi 1a073: b8 00 00 00 00 mov $0x0,%eax 1a078: e8 73 97 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a07d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a084: 48 89 c7 mov %rax,%rdi 1a087: e8 14 92 ff ff callq 132a0 1a08c: e9 ab 00 00 00 jmpq 1a13c <_Z12x_write_fullP18enif_environment_tiPKm+0x245> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 1a091: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a098: 48 83 c0 10 add $0x10,%rax 1a09c: 48 8b 08 mov (%rax),%rcx 1a09f: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1a0a6: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a0ad: 48 89 ce mov %rcx,%rsi 1a0b0: 48 89 c7 mov %rax,%rdi 1a0b3: e8 28 94 ff ff callq 134e0 int err = rados_write_full(io, oid, (const char*)ibin.data, ibin.size); 1a0b8: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1a0bf: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a0c6: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1a0cd: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1a0d4: 48 89 c7 mov %rax,%rdi 1a0d7: e8 04 84 ff ff callq 124e0 1a0dc: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1a0e2: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1a0e9: 79 2c jns 1a117 <_Z12x_write_fullP18enif_environment_tiPKm+0x220> { enif_release_binary(&ibin); 1a0eb: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1a0f2: 48 89 c7 mov %rax,%rdi 1a0f5: e8 96 89 ff ff callq 12a90 return make_error_tuple(env, -err); 1a0fa: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1a100: 89 c2 mov %eax,%edx 1a102: f7 da neg %edx 1a104: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a10b: 89 d6 mov %edx,%esi 1a10d: 48 89 c7 mov %rax,%rdi 1a110: e8 1b 97 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a115: eb 25 jmp 1a13c <_Z12x_write_fullP18enif_environment_tiPKm+0x245> } enif_release_binary(&ibin); 1a117: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1a11e: 48 89 c7 mov %rax,%rdi 1a121: e8 6a 89 ff ff callq 12a90 return enif_make_atom(env, "ok"); 1a126: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a12d: 48 8d 35 15 84 00 00 lea 0x8415(%rip),%rsi # 22549 <_fini+0x691> 1a134: 48 89 c7 mov %rax,%rdi 1a137: e8 84 86 ff ff callq 127c0 } 1a13c: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1a140: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1a147: 00 00 1a149: 74 05 je 1a150 <_Z12x_write_fullP18enif_environment_tiPKm+0x259> 1a14b: e8 60 97 ff ff callq 138b0 <__stack_chk_fail@plt> 1a150: c9 leaveq 1a151: c3 retq 000000000001a152 <_Z8x_appendP18enif_environment_tiPKm>: // Erlang: append(IoCtx, Oid, Data) ERL_NIF_TERM x_append(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a152: 55 push %rbp 1a153: 48 89 e5 mov %rsp,%rbp 1a156: 53 push %rbx 1a157: 48 81 ec 78 04 00 00 sub $0x478,%rsp 1a15e: 48 89 bd 98 fb ff ff mov %rdi,-0x468(%rbp) 1a165: 89 b5 94 fb ff ff mov %esi,-0x46c(%rbp) 1a16b: 48 89 95 88 fb ff ff mov %rdx,-0x478(%rbp) 1a172: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a179: 00 00 1a17b: 48 89 45 e8 mov %rax,-0x18(%rbp) 1a17f: 31 c0 xor %eax,%eax const char * func_name = "x_append()"; 1a181: 48 8d 05 fb 84 00 00 lea 0x84fb(%rip),%rax # 22683 <_fini+0x7cb> 1a188: 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); 1a18f: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1a196: ba 00 04 00 00 mov $0x400,%edx 1a19b: be 00 00 00 00 mov $0x0,%esi 1a1a0: 48 89 c7 mov %rax,%rdi 1a1a3: e8 a8 82 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1a1a8: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a1af: 48 8b 08 mov (%rax),%rcx 1a1b2: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1a1b9: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a1c0: 48 89 ce mov %rcx,%rsi 1a1c3: 48 89 c7 mov %rax,%rdi 1a1c6: e8 c5 8d ff ff callq 12f90 1a1cb: 85 c0 test %eax,%eax 1a1cd: 74 57 je 1a226 <_Z8x_appendP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1a1cf: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a1d6: 48 83 c0 08 add $0x8,%rax 1a1da: 48 8b 30 mov (%rax),%rsi 1a1dd: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1a1e4: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a1eb: 41 b8 01 00 00 00 mov $0x1,%r8d 1a1f1: b9 00 04 00 00 mov $0x400,%ecx 1a1f6: 48 89 c7 mov %rax,%rdi 1a1f9: e8 f2 99 ff ff callq 13bf0 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) || 1a1fe: 85 c0 test %eax,%eax 1a200: 74 24 je 1a226 <_Z8x_appendP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || !enif_is_binary(env, argv[2])) 1a202: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a209: 48 83 c0 10 add $0x10,%rax 1a20d: 48 8b 10 mov (%rax),%rdx 1a210: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a217: 48 89 d6 mov %rdx,%rsi 1a21a: 48 89 c7 mov %rax,%rdi 1a21d: e8 9e 99 ff ff callq 13bc0 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) || 1a222: 85 c0 test %eax,%eax 1a224: 75 07 jne 1a22d <_Z8x_appendP18enif_environment_tiPKm+0xdb> 1a226: b8 01 00 00 00 mov $0x1,%eax 1a22b: eb 05 jmp 1a232 <_Z8x_appendP18enif_environment_tiPKm+0xe0> 1a22d: b8 00 00 00 00 mov $0x0,%eax 1a232: 84 c0 test %al,%al 1a234: 74 40 je 1a276 <_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"); 1a236: 48 8b 05 1b f2 20 00 mov 0x20f21b(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a23d: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a244: 48 8d 0d 77 82 00 00 lea 0x8277(%rip),%rcx # 224c2 <_fini+0x60a> 1a24b: 48 89 c6 mov %rax,%rsi 1a24e: 48 8b 05 3b dd 20 00 mov 0x20dd3b(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a255: 48 89 c7 mov %rax,%rdi 1a258: b8 00 00 00 00 mov $0x0,%eax 1a25d: e8 8e 95 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a262: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a269: 48 89 c7 mov %rax,%rdi 1a26c: e8 2f 90 ff ff callq 132a0 1a271: e9 5b 01 00 00 jmpq 1a3d1 <_Z8x_appendP18enif_environment_tiPKm+0x27f> } rados_ioctx_t io = map_ioctx[id]; 1a276: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 1a27d: 48 89 c6 mov %rax,%rsi 1a280: 48 8b 05 f9 dc 20 00 mov 0x20dcf9(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1a287: 48 89 c7 mov %rax,%rdi 1a28a: e8 e1 90 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1a28f: 48 8b 00 mov (%rax),%rax 1a292: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1a299: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1a2a0: 00 1a2a1: 75 4a jne 1a2ed <_Z8x_appendP18enif_environment_tiPKm+0x19b> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a2a3: 48 8b 8d c0 fb ff ff mov -0x440(%rbp),%rcx 1a2aa: 48 8b 05 a7 f1 20 00 mov 0x20f1a7(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a2b1: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a2b8: 49 89 c8 mov %rcx,%r8 1a2bb: 48 8d 0d 9c 82 00 00 lea 0x829c(%rip),%rcx # 2255e <_fini+0x6a6> 1a2c2: 48 89 c6 mov %rax,%rsi 1a2c5: 48 8b 05 c4 dc 20 00 mov 0x20dcc4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a2cc: 48 89 c7 mov %rax,%rdi 1a2cf: b8 00 00 00 00 mov $0x0,%eax 1a2d4: e8 17 95 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a2d9: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a2e0: 48 89 c7 mov %rax,%rdi 1a2e3: e8 b8 8f ff ff callq 132a0 1a2e8: e9 e4 00 00 00 jmpq 1a3d1 <_Z8x_appendP18enif_environment_tiPKm+0x27f> } ErlNifBinary ibin; enif_inspect_binary(env, argv[2], &ibin); 1a2ed: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a2f4: 48 83 c0 10 add $0x10,%rax 1a2f8: 48 8b 08 mov (%rax),%rcx 1a2fb: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1a302: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a309: 48 89 ce mov %rcx,%rsi 1a30c: 48 89 c7 mov %rax,%rdi 1a30f: e8 cc 91 ff ff callq 134e0 int err = rados_append(io, oid, (const char*)ibin.data, ibin.size); 1a314: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1a31b: 48 8b 95 a8 fb ff ff mov -0x458(%rbp),%rdx 1a322: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 1a329: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1a330: 48 89 c7 mov %rax,%rdi 1a333: e8 38 97 ff ff callq 13a70 1a338: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1a33e: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1a345: 79 2c jns 1a373 <_Z8x_appendP18enif_environment_tiPKm+0x221> { enif_release_binary(&ibin); 1a347: 48 8d 85 a0 fb ff ff lea -0x460(%rbp),%rax 1a34e: 48 89 c7 mov %rax,%rdi 1a351: e8 3a 87 ff ff callq 12a90 return make_error_tuple(env, -err); 1a356: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a35c: 89 c2 mov %eax,%edx 1a35e: f7 da neg %edx 1a360: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a367: 89 d6 mov %edx,%esi 1a369: 48 89 c7 mov %rax,%rdi 1a36c: e8 bf 94 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a371: eb 5e jmp 1a3d1 <_Z8x_appendP18enif_environment_tiPKm+0x27f> } enif_release_binary(&ibin); 1a373: 48 8d 85 a0 fb ff ff lea -0x460(%rbp),%rax 1a37a: 48 89 c7 mov %rax,%rdi 1a37d: e8 0e 87 ff ff callq 12a90 return enif_make_tuple2(env, 1a382: 8b 95 dc fb ff ff mov -0x424(%rbp),%edx 1a388: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a38f: 89 d6 mov %edx,%esi 1a391: 48 89 c7 mov %rax,%rdi 1a394: e8 67 99 ff ff callq 13d00 1a399: 48 89 c3 mov %rax,%rbx 1a39c: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a3a3: 48 8d 35 9f 81 00 00 lea 0x819f(%rip),%rsi # 22549 <_fini+0x691> 1a3aa: 48 89 c7 mov %rax,%rdi 1a3ad: e8 0e 84 ff ff callq 127c0 1a3b2: 48 89 c2 mov %rax,%rdx 1a3b5: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1a3bc: 48 89 d9 mov %rbx,%rcx 1a3bf: be 02 00 00 00 mov $0x2,%esi 1a3c4: 48 89 c7 mov %rax,%rdi 1a3c7: b8 00 00 00 00 mov $0x0,%eax 1a3cc: e8 2f 98 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_int(env, err)); // Number of bytes appended } 1a3d1: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1a3d5: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1a3dc: 00 00 1a3de: 74 05 je 1a3e5 <_Z8x_appendP18enif_environment_tiPKm+0x293> 1a3e0: e8 cb 94 ff ff callq 138b0 <__stack_chk_fail@plt> 1a3e5: 48 81 c4 78 04 00 00 add $0x478,%rsp 1a3ec: 5b pop %rbx 1a3ed: 5d pop %rbp 1a3ee: c3 retq 000000000001a3ef <_Z6x_readP18enif_environment_tiPKm>: // Erlang: read(IoCtx, Oid, Len, Offset) ERL_NIF_TERM x_read(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a3ef: 55 push %rbp 1a3f0: 48 89 e5 mov %rsp,%rbp 1a3f3: 53 push %rbx 1a3f4: 48 81 ec a8 04 00 00 sub $0x4a8,%rsp 1a3fb: 48 89 bd 78 fb ff ff mov %rdi,-0x488(%rbp) 1a402: 89 b5 74 fb ff ff mov %esi,-0x48c(%rbp) 1a408: 48 89 95 68 fb ff ff mov %rdx,-0x498(%rbp) 1a40f: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a416: 00 00 1a418: 48 89 45 e8 mov %rax,-0x18(%rbp) 1a41c: 31 c0 xor %eax,%eax const char * func_name = "x_read()"; 1a41e: 48 8d 05 69 82 00 00 lea 0x8269(%rip),%rax # 2268e <_fini+0x7d6> 1a425: 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); 1a42c: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1a433: ba 00 04 00 00 mov $0x400,%edx 1a438: be 00 00 00 00 mov $0x0,%esi 1a43d: 48 89 c7 mov %rax,%rdi 1a440: e8 0b 80 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1a445: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1a44c: 48 8b 08 mov (%rax),%rcx 1a44f: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1a456: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a45d: 48 89 ce mov %rcx,%rsi 1a460: 48 89 c7 mov %rax,%rdi 1a463: e8 28 8b ff ff callq 12f90 1a468: 85 c0 test %eax,%eax 1a46a: 0f 84 89 00 00 00 je 1a4f9 <_Z6x_readP18enif_environment_tiPKm+0x10a> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1a470: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1a477: 48 83 c0 08 add $0x8,%rax 1a47b: 48 8b 30 mov (%rax),%rsi 1a47e: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1a485: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a48c: 41 b8 01 00 00 00 mov $0x1,%r8d 1a492: b9 00 04 00 00 mov $0x400,%ecx 1a497: 48 89 c7 mov %rax,%rdi 1a49a: e8 51 97 ff ff callq 13bf0 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) || 1a49f: 85 c0 test %eax,%eax 1a4a1: 74 56 je 1a4f9 <_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) || 1a4a3: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1a4aa: 48 83 c0 10 add $0x10,%rax 1a4ae: 48 8b 08 mov (%rax),%rcx 1a4b1: 48 8d 95 a8 fb ff ff lea -0x458(%rbp),%rdx 1a4b8: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a4bf: 48 89 ce mov %rcx,%rsi 1a4c2: 48 89 c7 mov %rax,%rdi 1a4c5: e8 86 8d ff ff callq 13250 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) || 1a4ca: 85 c0 test %eax,%eax 1a4cc: 74 2b je 1a4f9 <_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)) 1a4ce: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1a4d5: 48 83 c0 18 add $0x18,%rax 1a4d9: 48 8b 08 mov (%rax),%rcx 1a4dc: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1a4e3: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a4ea: 48 89 ce mov %rcx,%rsi 1a4ed: 48 89 c7 mov %rax,%rdi 1a4f0: e8 9b 8a ff ff callq 12f90 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) || 1a4f5: 85 c0 test %eax,%eax 1a4f7: 75 07 jne 1a500 <_Z6x_readP18enif_environment_tiPKm+0x111> 1a4f9: b8 01 00 00 00 mov $0x1,%eax 1a4fe: eb 05 jmp 1a505 <_Z6x_readP18enif_environment_tiPKm+0x116> 1a500: b8 00 00 00 00 mov $0x0,%eax 1a505: 84 c0 test %al,%al 1a507: 74 40 je 1a549 <_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"); 1a509: 48 8b 05 48 ef 20 00 mov 0x20ef48(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a510: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a517: 48 8d 0d a4 7f 00 00 lea 0x7fa4(%rip),%rcx # 224c2 <_fini+0x60a> 1a51e: 48 89 c6 mov %rax,%rsi 1a521: 48 8b 05 68 da 20 00 mov 0x20da68(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a528: 48 89 c7 mov %rax,%rdi 1a52b: b8 00 00 00 00 mov $0x0,%eax 1a530: e8 bb 92 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a535: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a53c: 48 89 c7 mov %rax,%rdi 1a53f: e8 5c 8d ff ff callq 132a0 1a544: e9 15 03 00 00 jmpq 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } rados_ioctx_t io = map_ioctx[id]; 1a549: 48 8d 85 a0 fb ff ff lea -0x460(%rbp),%rax 1a550: 48 89 c6 mov %rax,%rsi 1a553: 48 8b 05 26 da 20 00 mov 0x20da26(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1a55a: 48 89 c7 mov %rax,%rdi 1a55d: e8 0e 8e ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1a562: 48 8b 00 mov (%rax),%rax 1a565: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) if (io == NULL) 1a56c: 48 83 bd c0 fb ff ff cmpq $0x0,-0x440(%rbp) 1a573: 00 1a574: 75 4a jne 1a5c0 <_Z6x_readP18enif_environment_tiPKm+0x1d1> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a576: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1a57d: 48 8b 05 d4 ee 20 00 mov 0x20eed4(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a584: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a58b: 49 89 c8 mov %rcx,%r8 1a58e: 48 8d 0d c9 7f 00 00 lea 0x7fc9(%rip),%rcx # 2255e <_fini+0x6a6> 1a595: 48 89 c6 mov %rax,%rsi 1a598: 48 8b 05 f1 d9 20 00 mov 0x20d9f1(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a59f: 48 89 c7 mov %rax,%rdi 1a5a2: b8 00 00 00 00 mov $0x0,%eax 1a5a7: e8 44 92 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a5ac: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a5b3: 48 89 c7 mov %rax,%rdi 1a5b6: e8 e5 8c ff ff callq 132a0 1a5bb: e9 9e 02 00 00 jmpq 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s, len=%ld, offset=%ld", id, oid, len, offset); 1a5c0: 48 8b b5 b0 fb ff ff mov -0x450(%rbp),%rsi 1a5c7: 48 8b 8d a8 fb ff ff mov -0x458(%rbp),%rcx 1a5ce: 48 8b bd a0 fb ff ff mov -0x460(%rbp),%rdi 1a5d5: 48 8b 05 7c ee 20 00 mov 0x20ee7c(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a5dc: 4c 8d 85 e0 fb ff ff lea -0x420(%rbp),%r8 1a5e3: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a5ea: 48 89 74 24 08 mov %rsi,0x8(%rsp) 1a5ef: 48 89 0c 24 mov %rcx,(%rsp) 1a5f3: 4d 89 c1 mov %r8,%r9 1a5f6: 49 89 f8 mov %rdi,%r8 1a5f9: 48 8d 0d 98 80 00 00 lea 0x8098(%rip),%rcx # 22698 <_fini+0x7e0> 1a600: 48 89 c6 mov %rax,%rsi 1a603: 48 8b 05 86 d9 20 00 mov 0x20d986(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a60a: 48 89 c7 mov %rax,%rdi 1a60d: b8 00 00 00 00 mov $0x0,%eax 1a612: e8 79 93 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> char * buf = (char *)malloc(len); 1a617: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a61e: 48 89 c7 mov %rax,%rdi 1a621: e8 7a 83 ff ff callq 129a0 1a626: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) if (!buf) 1a62d: 48 83 bd c8 fb ff ff cmpq $0x0,-0x438(%rbp) 1a634: 00 1a635: 75 4f jne 1a686 <_Z6x_readP18enif_environment_tiPKm+0x297> { logger.error(MOD_NAME, func_name, "unable to malloc for %ld", id); 1a637: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1a63e: 48 8b 05 13 ee 20 00 mov 0x20ee13(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a645: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a64c: 49 89 c8 mov %rcx,%r8 1a64f: 48 8d 0d 66 80 00 00 lea 0x8066(%rip),%rcx # 226bc <_fini+0x804> 1a656: 48 89 c6 mov %rax,%rsi 1a659: 48 8b 05 30 d9 20 00 mov 0x20d930(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a660: 48 89 c7 mov %rax,%rdi 1a663: b8 00 00 00 00 mov $0x0,%eax 1a668: e8 83 91 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, ENOMEM); 1a66d: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a674: be 0c 00 00 00 mov $0xc,%esi 1a679: 48 89 c7 mov %rax,%rdi 1a67c: e8 af 91 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a681: e9 d8 01 00 00 jmpq 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } int err = rados_read(io, oid, buf, len, offset); 1a686: 48 8b bd b0 fb ff ff mov -0x450(%rbp),%rdi 1a68d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1a694: 48 89 c1 mov %rax,%rcx 1a697: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1a69e: 48 8d b5 e0 fb ff ff lea -0x420(%rbp),%rsi 1a6a5: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1a6ac: 49 89 f8 mov %rdi,%r8 1a6af: 48 89 c7 mov %rax,%rdi 1a6b2: e8 99 7c ff ff callq 12350 1a6b7: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1a6bd: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1a6c4: 79 7a jns 1a740 <_Z6x_readP18enif_environment_tiPKm+0x351> { free(buf); 1a6c6: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a6cd: 48 89 c7 mov %rax,%rdi 1a6d0: e8 eb 87 ff ff callq 12ec0 logger.error(MOD_NAME, func_name, "read failed %ld: %s", id, strerror(-err)); 1a6d5: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a6db: f7 d8 neg %eax 1a6dd: 89 c7 mov %eax,%edi 1a6df: e8 5c 8c ff ff callq 13340 1a6e4: 48 89 c1 mov %rax,%rcx 1a6e7: 48 8b b5 a0 fb ff ff mov -0x460(%rbp),%rsi 1a6ee: 48 8b 05 63 ed 20 00 mov 0x20ed63(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a6f5: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1a6fc: 49 89 c9 mov %rcx,%r9 1a6ff: 49 89 f0 mov %rsi,%r8 1a702: 48 8d 0d cc 7f 00 00 lea 0x7fcc(%rip),%rcx # 226d5 <_fini+0x81d> 1a709: 48 89 c6 mov %rax,%rsi 1a70c: 48 8b 05 7d d8 20 00 mov 0x20d87d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a713: 48 89 c7 mov %rax,%rdi 1a716: b8 00 00 00 00 mov $0x0,%eax 1a71b: e8 d0 90 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1a720: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a726: 89 c2 mov %eax,%edx 1a728: f7 da neg %edx 1a72a: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a731: 89 d6 mov %edx,%esi 1a733: 48 89 c7 mov %rax,%rdi 1a736: e8 f5 90 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a73b: e9 1e 01 00 00 jmpq 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } if (err > 0) 1a740: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1a747: 0f 8e ec 00 00 00 jle 1a839 <_Z6x_readP18enif_environment_tiPKm+0x44a> { ErlNifBinary obin; if (!enif_alloc_binary(err, &obin)) 1a74d: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a753: 48 98 cltq 1a755: 48 8d 95 80 fb ff ff lea -0x480(%rbp),%rdx 1a75c: 48 89 d6 mov %rdx,%rsi 1a75f: 48 89 c7 mov %rax,%rdi 1a762: e8 d9 91 ff ff callq 13940 1a767: 85 c0 test %eax,%eax 1a769: 0f 94 c0 sete %al 1a76c: 84 c0 test %al,%al 1a76e: 74 28 je 1a798 <_Z6x_readP18enif_environment_tiPKm+0x3a9> { free(buf); 1a770: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a777: 48 89 c7 mov %rax,%rdi 1a77a: e8 41 87 ff ff callq 12ec0 return make_error_tuple(env, ENOMEM); 1a77f: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a786: be 0c 00 00 00 mov $0xc,%esi 1a78b: 48 89 c7 mov %rax,%rdi 1a78e: e8 9d 90 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1a793: e9 c6 00 00 00 jmpq 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } memcpy(obin.data, buf, err); 1a798: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1a79e: 48 63 d0 movslq %eax,%rdx 1a7a1: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax 1a7a8: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1a7af: 48 89 ce mov %rcx,%rsi 1a7b2: 48 89 c7 mov %rax,%rdi 1a7b5: e8 96 98 ff ff callq 14050 free(buf); 1a7ba: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a7c1: 48 89 c7 mov %rax,%rdi 1a7c4: e8 f7 86 ff ff callq 12ec0 ERL_NIF_TERM ret = enif_make_tuple2(env, 1a7c9: 48 8d 95 80 fb ff ff lea -0x480(%rbp),%rdx 1a7d0: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a7d7: 48 89 d6 mov %rdx,%rsi 1a7da: 48 89 c7 mov %rax,%rdi 1a7dd: e8 4e 86 ff ff callq 12e30 1a7e2: 48 89 c3 mov %rax,%rbx 1a7e5: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a7ec: 48 8d 35 56 7d 00 00 lea 0x7d56(%rip),%rsi # 22549 <_fini+0x691> 1a7f3: 48 89 c7 mov %rax,%rdi 1a7f6: e8 c5 7f ff ff callq 127c0 1a7fb: 48 89 c2 mov %rax,%rdx 1a7fe: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a805: 48 89 d9 mov %rbx,%rcx 1a808: be 02 00 00 00 mov $0x2,%esi 1a80d: 48 89 c7 mov %rax,%rdi 1a810: b8 00 00 00 00 mov $0x0,%eax 1a815: e8 e6 93 ff ff callq 13c00 1a81a: 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); 1a821: 48 8d 85 80 fb ff ff lea -0x480(%rbp),%rax 1a828: 48 89 c7 mov %rax,%rdi 1a82b: e8 60 82 ff ff callq 12a90 return ret; 1a830: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1a837: eb 25 jmp 1a85e <_Z6x_readP18enif_environment_tiPKm+0x46f> } else { free(buf); 1a839: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a840: 48 89 c7 mov %rax,%rdi 1a843: e8 78 86 ff ff callq 12ec0 return enif_make_atom(env, "eof"); 1a848: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1a84f: 48 8d 35 93 7e 00 00 lea 0x7e93(%rip),%rsi # 226e9 <_fini+0x831> 1a856: 48 89 c7 mov %rax,%rdi 1a859: e8 62 7f ff ff callq 127c0 } } 1a85e: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1a862: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1a869: 00 00 1a86b: 74 05 je 1a872 <_Z6x_readP18enif_environment_tiPKm+0x483> 1a86d: e8 3e 90 ff ff callq 138b0 <__stack_chk_fail@plt> 1a872: 48 81 c4 a8 04 00 00 add $0x4a8,%rsp 1a879: 5b pop %rbx 1a87a: 5d pop %rbp 1a87b: c3 retq 000000000001a87c <_Z8x_removeP18enif_environment_tiPKm>: ERL_NIF_TERM x_remove(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1a87c: 55 push %rbp 1a87d: 48 89 e5 mov %rsp,%rbp 1a880: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1a887: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1a88e: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1a894: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1a89b: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1a8a2: 00 00 1a8a4: 48 89 45 f8 mov %rax,-0x8(%rbp) 1a8a8: 31 c0 xor %eax,%eax const char * func_name = "x_remove()"; 1a8aa: 48 8d 05 3c 7e 00 00 lea 0x7e3c(%rip),%rax # 226ed <_fini+0x835> 1a8b1: 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) || 1a8b8: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a8bf: 48 8b 08 mov (%rax),%rcx 1a8c2: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 1a8c9: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a8d0: 48 89 ce mov %rcx,%rsi 1a8d3: 48 89 c7 mov %rax,%rdi 1a8d6: e8 b5 86 ff ff callq 12f90 1a8db: 85 c0 test %eax,%eax 1a8dd: 74 33 je 1a912 <_Z8x_removeP18enif_environment_tiPKm+0x96> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1a8df: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1a8e6: 48 83 c0 08 add $0x8,%rax 1a8ea: 48 8b 30 mov (%rax),%rsi 1a8ed: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1a8f4: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a8fb: 41 b8 01 00 00 00 mov $0x1,%r8d 1a901: b9 00 04 00 00 mov $0x400,%ecx 1a906: 48 89 c7 mov %rax,%rdi 1a909: e8 e2 92 ff ff callq 13bf0 { const char * func_name = "x_remove()"; uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1a90e: 85 c0 test %eax,%eax 1a910: 75 07 jne 1a919 <_Z8x_removeP18enif_environment_tiPKm+0x9d> 1a912: b8 01 00 00 00 mov $0x1,%eax 1a917: eb 05 jmp 1a91e <_Z8x_removeP18enif_environment_tiPKm+0xa2> 1a919: b8 00 00 00 00 mov $0x0,%eax 1a91e: 84 c0 test %al,%al 1a920: 74 40 je 1a962 <_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"); 1a922: 48 8b 05 2f eb 20 00 mov 0x20eb2f(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a929: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a930: 48 8d 0d 8b 7b 00 00 lea 0x7b8b(%rip),%rcx # 224c2 <_fini+0x60a> 1a937: 48 89 c6 mov %rax,%rsi 1a93a: 48 8b 05 4f d6 20 00 mov 0x20d64f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a941: 48 89 c7 mov %rax,%rdi 1a944: b8 00 00 00 00 mov $0x0,%eax 1a949: e8 a2 8e ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a94e: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a955: 48 89 c7 mov %rax,%rdi 1a958: e8 43 89 ff ff callq 132a0 1a95d: e9 52 01 00 00 jmpq 1aab4 <_Z8x_removeP18enif_environment_tiPKm+0x238> } rados_ioctx_t io = map_ioctx[id]; 1a962: 48 8d 85 d0 fb ff ff lea -0x430(%rbp),%rax 1a969: 48 89 c6 mov %rax,%rsi 1a96c: 48 8b 05 0d d6 20 00 mov 0x20d60d(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1a973: 48 89 c7 mov %rax,%rdi 1a976: e8 f5 89 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1a97b: 48 8b 00 mov (%rax),%rax 1a97e: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1a985: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1a98c: 00 1a98d: 75 4a jne 1a9d9 <_Z8x_removeP18enif_environment_tiPKm+0x15d> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1a98f: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1a996: 48 8b 05 bb ea 20 00 mov 0x20eabb(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a99d: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a9a4: 49 89 c8 mov %rcx,%r8 1a9a7: 48 8d 0d b0 7b 00 00 lea 0x7bb0(%rip),%rcx # 2255e <_fini+0x6a6> 1a9ae: 48 89 c6 mov %rax,%rsi 1a9b1: 48 8b 05 d8 d5 20 00 mov 0x20d5d8(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1a9b8: 48 89 c7 mov %rax,%rdi 1a9bb: b8 00 00 00 00 mov $0x0,%eax 1a9c0: e8 2b 8e ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1a9c5: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1a9cc: 48 89 c7 mov %rax,%rdi 1a9cf: e8 cc 88 ff ff callq 132a0 1a9d4: e9 db 00 00 00 jmpq 1aab4 <_Z8x_removeP18enif_environment_tiPKm+0x238> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s", id, oid); 1a9d9: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1a9e0: 48 8b 05 71 ea 20 00 mov 0x20ea71(%rip),%rax # 229458 <_ZL8MOD_NAME> 1a9e7: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1a9ee: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1a9f5: 49 89 f1 mov %rsi,%r9 1a9f8: 49 89 c8 mov %rcx,%r8 1a9fb: 48 8d 0d f6 7c 00 00 lea 0x7cf6(%rip),%rcx # 226f8 <_fini+0x840> 1aa02: 48 89 c6 mov %rax,%rsi 1aa05: 48 8b 05 84 d5 20 00 mov 0x20d584(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1aa0c: 48 89 c7 mov %rax,%rdi 1aa0f: b8 00 00 00 00 mov $0x0,%eax 1aa14: e8 77 8f ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_remove(io, oid); 1aa19: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1aa20: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1aa27: 48 89 d6 mov %rdx,%rsi 1aa2a: 48 89 c7 mov %rax,%rdi 1aa2d: e8 8e 82 ff ff callq 12cc0 1aa32: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1aa38: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1aa3f: 79 5d jns 1aa9e <_Z8x_removeP18enif_environment_tiPKm+0x222> { logger.error(MOD_NAME, func_name, "failed to remove: io=%ld, oid=%s", id, oid); 1aa41: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1aa48: 48 8b 05 09 ea 20 00 mov 0x20ea09(%rip),%rax # 229458 <_ZL8MOD_NAME> 1aa4f: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1aa56: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1aa5d: 49 89 f1 mov %rsi,%r9 1aa60: 49 89 c8 mov %rcx,%r8 1aa63: 48 8d 0d 9e 7c 00 00 lea 0x7c9e(%rip),%rcx # 22708 <_fini+0x850> 1aa6a: 48 89 c6 mov %rax,%rsi 1aa6d: 48 8b 05 1c d5 20 00 mov 0x20d51c(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1aa74: 48 89 c7 mov %rax,%rdi 1aa77: b8 00 00 00 00 mov $0x0,%eax 1aa7c: e8 6f 8d ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1aa81: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1aa87: 89 c2 mov %eax,%edx 1aa89: f7 da neg %edx 1aa8b: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1aa92: 89 d6 mov %edx,%esi 1aa94: 48 89 c7 mov %rax,%rdi 1aa97: e8 94 8d ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1aa9c: eb 16 jmp 1aab4 <_Z8x_removeP18enif_environment_tiPKm+0x238> } return enif_make_atom(env, "ok"); 1aa9e: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1aaa5: 48 8d 35 9d 7a 00 00 lea 0x7a9d(%rip),%rsi # 22549 <_fini+0x691> 1aaac: 48 89 c7 mov %rax,%rdi 1aaaf: e8 0c 7d ff ff callq 127c0 } 1aab4: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1aab8: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1aabf: 00 00 1aac1: 74 05 je 1aac8 <_Z8x_removeP18enif_environment_tiPKm+0x24c> 1aac3: e8 e8 8d ff ff callq 138b0 <__stack_chk_fail@plt> 1aac8: c9 leaveq 1aac9: c3 retq 000000000001aaca <_Z7x_truncP18enif_environment_tiPKm>: ERL_NIF_TERM x_trunc(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1aaca: 55 push %rbp 1aacb: 48 89 e5 mov %rsp,%rbp 1aace: 48 81 ec 70 04 00 00 sub $0x470,%rsp 1aad5: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1aadc: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1aae2: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1aae9: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1aaf0: 00 00 1aaf2: 48 89 45 f8 mov %rax,-0x8(%rbp) 1aaf6: 31 c0 xor %eax,%eax const char * func_name = "x_trunc()"; 1aaf8: 48 8d 05 2a 7c 00 00 lea 0x7c2a(%rip),%rax # 22729 <_fini+0x871> 1aaff: 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) || 1ab06: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ab0d: 48 8b 08 mov (%rax),%rcx 1ab10: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1ab17: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ab1e: 48 89 ce mov %rcx,%rsi 1ab21: 48 89 c7 mov %rax,%rdi 1ab24: e8 67 84 ff ff callq 12f90 1ab29: 85 c0 test %eax,%eax 1ab2b: 74 5e je 1ab8b <_Z7x_truncP18enif_environment_tiPKm+0xc1> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1ab2d: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ab34: 48 83 c0 08 add $0x8,%rax 1ab38: 48 8b 30 mov (%rax),%rsi 1ab3b: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1ab42: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ab49: 41 b8 01 00 00 00 mov $0x1,%r8d 1ab4f: b9 00 04 00 00 mov $0x400,%ecx 1ab54: 48 89 c7 mov %rax,%rdi 1ab57: e8 94 90 ff ff callq 13bf0 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) || 1ab5c: 85 c0 test %eax,%eax 1ab5e: 74 2b je 1ab8b <_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)) 1ab60: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1ab67: 48 83 c0 10 add $0x10,%rax 1ab6b: 48 8b 08 mov (%rax),%rcx 1ab6e: 48 8d 95 d0 fb ff ff lea -0x430(%rbp),%rdx 1ab75: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ab7c: 48 89 ce mov %rcx,%rsi 1ab7f: 48 89 c7 mov %rax,%rdi 1ab82: e8 09 84 ff ff callq 12f90 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) || 1ab87: 85 c0 test %eax,%eax 1ab89: 75 07 jne 1ab92 <_Z7x_truncP18enif_environment_tiPKm+0xc8> 1ab8b: b8 01 00 00 00 mov $0x1,%eax 1ab90: eb 05 jmp 1ab97 <_Z7x_truncP18enif_environment_tiPKm+0xcd> 1ab92: b8 00 00 00 00 mov $0x0,%eax 1ab97: 84 c0 test %al,%al 1ab99: 74 40 je 1abdb <_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"); 1ab9b: 48 8b 05 b6 e8 20 00 mov 0x20e8b6(%rip),%rax # 229458 <_ZL8MOD_NAME> 1aba2: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1aba9: 48 8d 0d 12 79 00 00 lea 0x7912(%rip),%rcx # 224c2 <_fini+0x60a> 1abb0: 48 89 c6 mov %rax,%rsi 1abb3: 48 8b 05 d6 d3 20 00 mov 0x20d3d6(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1abba: 48 89 c7 mov %rax,%rdi 1abbd: b8 00 00 00 00 mov $0x0,%eax 1abc2: e8 29 8c ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1abc7: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1abce: 48 89 c7 mov %rax,%rdi 1abd1: e8 ca 86 ff ff callq 132a0 1abd6: e9 6f 01 00 00 jmpq 1ad4a <_Z7x_truncP18enif_environment_tiPKm+0x280> } rados_ioctx_t io = map_ioctx[id]; 1abdb: 48 8d 85 c8 fb ff ff lea -0x438(%rbp),%rax 1abe2: 48 89 c6 mov %rax,%rsi 1abe5: 48 8b 05 94 d3 20 00 mov 0x20d394(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1abec: 48 89 c7 mov %rax,%rdi 1abef: e8 7c 87 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1abf4: 48 8b 00 mov (%rax),%rax 1abf7: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1abfe: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1ac05: 00 1ac06: 75 4a jne 1ac52 <_Z7x_truncP18enif_environment_tiPKm+0x188> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1ac08: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1ac0f: 48 8b 05 42 e8 20 00 mov 0x20e842(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ac16: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1ac1d: 49 89 c8 mov %rcx,%r8 1ac20: 48 8d 0d 37 79 00 00 lea 0x7937(%rip),%rcx # 2255e <_fini+0x6a6> 1ac27: 48 89 c6 mov %rax,%rsi 1ac2a: 48 8b 05 5f d3 20 00 mov 0x20d35f(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ac31: 48 89 c7 mov %rax,%rdi 1ac34: b8 00 00 00 00 mov $0x0,%eax 1ac39: e8 b2 8b ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1ac3e: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ac45: 48 89 c7 mov %rax,%rdi 1ac48: e8 53 86 ff ff callq 132a0 1ac4d: e9 f8 00 00 00 jmpq 1ad4a <_Z7x_truncP18enif_environment_tiPKm+0x280> } logger.debug(MOD_NAME, func_name, "io=%ld, oid=%s, size=%ld", id, oid, size); 1ac52: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1ac59: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1ac60: 48 8b 05 f1 e7 20 00 mov 0x20e7f1(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ac67: 48 8d bd f0 fb ff ff lea -0x410(%rbp),%rdi 1ac6e: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1ac75: 48 89 0c 24 mov %rcx,(%rsp) 1ac79: 49 89 f9 mov %rdi,%r9 1ac7c: 49 89 f0 mov %rsi,%r8 1ac7f: 48 8d 0d ad 7a 00 00 lea 0x7aad(%rip),%rcx # 22733 <_fini+0x87b> 1ac86: 48 89 c6 mov %rax,%rsi 1ac89: 48 8b 05 00 d3 20 00 mov 0x20d300(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ac90: 48 89 c7 mov %rax,%rdi 1ac93: b8 00 00 00 00 mov $0x0,%eax 1ac98: e8 f3 8c ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> int err = rados_trunc(io, oid, size); 1ac9d: 48 8b 95 d0 fb ff ff mov -0x430(%rbp),%rdx 1aca4: 48 8d 8d f0 fb ff ff lea -0x410(%rbp),%rcx 1acab: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1acb2: 48 89 ce mov %rcx,%rsi 1acb5: 48 89 c7 mov %rax,%rdi 1acb8: e8 43 8d ff ff callq 13a00 1acbd: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1acc3: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1acca: 79 68 jns 1ad34 <_Z7x_truncP18enif_environment_tiPKm+0x26a> { logger.error(MOD_NAME, func_name, "failed to truncate : io=%ld, oid=%s, size=%ld", id, oid, size); 1accc: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1acd3: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1acda: 48 8b 05 77 e7 20 00 mov 0x20e777(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ace1: 48 8d bd f0 fb ff ff lea -0x410(%rbp),%rdi 1ace8: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1acef: 48 89 0c 24 mov %rcx,(%rsp) 1acf3: 49 89 f9 mov %rdi,%r9 1acf6: 49 89 f0 mov %rsi,%r8 1acf9: 48 8d 0d 50 7a 00 00 lea 0x7a50(%rip),%rcx # 22750 <_fini+0x898> 1ad00: 48 89 c6 mov %rax,%rsi 1ad03: 48 8b 05 86 d2 20 00 mov 0x20d286(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ad0a: 48 89 c7 mov %rax,%rdi 1ad0d: b8 00 00 00 00 mov $0x0,%eax 1ad12: e8 d9 8a ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1ad17: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1ad1d: 89 c2 mov %eax,%edx 1ad1f: f7 da neg %edx 1ad21: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ad28: 89 d6 mov %edx,%esi 1ad2a: 48 89 c7 mov %rax,%rdi 1ad2d: e8 fe 8a ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1ad32: eb 16 jmp 1ad4a <_Z7x_truncP18enif_environment_tiPKm+0x280> } return enif_make_atom(env, "ok"); 1ad34: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ad3b: 48 8d 35 07 78 00 00 lea 0x7807(%rip),%rsi # 22549 <_fini+0x691> 1ad42: 48 89 c7 mov %rax,%rdi 1ad45: e8 76 7a ff ff callq 127c0 } 1ad4a: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1ad4e: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ad55: 00 00 1ad57: 74 05 je 1ad5e <_Z7x_truncP18enif_environment_tiPKm+0x294> 1ad59: e8 52 8b ff ff callq 138b0 <__stack_chk_fail@plt> 1ad5e: c9 leaveq 1ad5f: c3 retq 000000000001ad60 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_pool_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1ad60: 55 push %rbp 1ad61: 48 89 e5 mov %rsp,%rbp 1ad64: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 1ad6b: 48 89 bd 68 ff ff ff mov %rdi,-0x98(%rbp) 1ad72: 89 b5 64 ff ff ff mov %esi,-0x9c(%rbp) 1ad78: 48 89 95 58 ff ff ff mov %rdx,-0xa8(%rbp) const char * func_name = "x_ioctx_pool_stat()"; 1ad7f: 48 8d 05 f8 79 00 00 lea 0x79f8(%rip),%rax # 2277e <_fini+0x8c6> 1ad86: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1ad8a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1ad91: 48 8b 08 mov (%rax),%rcx 1ad94: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1ad98: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ad9f: 48 89 ce mov %rcx,%rsi 1ada2: 48 89 c7 mov %rax,%rdi 1ada5: e8 e6 81 ff ff callq 12f90 1adaa: 85 c0 test %eax,%eax 1adac: 0f 94 c0 sete %al 1adaf: 84 c0 test %al,%al 1adb1: 74 3d je 1adf0 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x90> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1adb3: 48 8b 05 9e e6 20 00 mov 0x20e69e(%rip),%rax # 229458 <_ZL8MOD_NAME> 1adba: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1adbe: 48 8d 0d fd 76 00 00 lea 0x76fd(%rip),%rcx # 224c2 <_fini+0x60a> 1adc5: 48 89 c6 mov %rax,%rsi 1adc8: 48 8b 05 c1 d1 20 00 mov 0x20d1c1(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1adcf: 48 89 c7 mov %rax,%rdi 1add2: b8 00 00 00 00 mov $0x0,%eax 1add7: e8 14 8a ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1addc: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ade3: 48 89 c7 mov %rax,%rdi 1ade6: e8 b5 84 ff ff callq 132a0 1adeb: e9 5b 06 00 00 jmpq 1b44b <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6eb> } rados_ioctx_t io = map_ioctx[id]; 1adf0: 48 8d 45 d0 lea -0x30(%rbp),%rax 1adf4: 48 89 c6 mov %rax,%rsi 1adf7: 48 8b 05 82 d1 20 00 mov 0x20d182(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1adfe: 48 89 c7 mov %rax,%rdi 1ae01: e8 6a 85 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1ae06: 48 8b 00 mov (%rax),%rax 1ae09: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1ae0d: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1ae12: 75 44 jne 1ae58 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0xf8> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1ae14: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1ae18: 48 8b 05 39 e6 20 00 mov 0x20e639(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ae1f: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1ae23: 49 89 c8 mov %rcx,%r8 1ae26: 48 8d 0d 31 77 00 00 lea 0x7731(%rip),%rcx # 2255e <_fini+0x6a6> 1ae2d: 48 89 c6 mov %rax,%rsi 1ae30: 48 8b 05 59 d1 20 00 mov 0x20d159(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ae37: 48 89 c7 mov %rax,%rdi 1ae3a: b8 00 00 00 00 mov $0x0,%eax 1ae3f: e8 ac 89 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1ae44: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1ae4b: 48 89 c7 mov %rax,%rdi 1ae4e: e8 4d 84 ff ff callq 132a0 1ae53: e9 f3 05 00 00 jmpq 1b44b <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6eb> } rados_pool_stat_t stat; int err = rados_ioctx_pool_stat(io, &stat); 1ae58: 48 8d 95 70 ff ff ff lea -0x90(%rbp),%rdx 1ae5f: 48 8b 45 e0 mov -0x20(%rbp),%rax 1ae63: 48 89 d6 mov %rdx,%rsi 1ae66: 48 89 c7 mov %rax,%rdi 1ae69: e8 c2 8a ff ff callq 13930 1ae6e: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 1ae71: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1ae75: 79 5f jns 1aed6 <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x176> { logger.error(MOD_NAME, func_name, "unable to read pool stat for %ld: %s", id, strerror(-err)); 1ae77: 8b 45 fc mov -0x4(%rbp),%eax 1ae7a: f7 d8 neg %eax 1ae7c: 89 c7 mov %eax,%edi 1ae7e: e8 bd 84 ff ff callq 13340 1ae83: 48 89 c1 mov %rax,%rcx 1ae86: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1ae8a: 48 8b 05 c7 e5 20 00 mov 0x20e5c7(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ae91: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1ae95: 49 89 c9 mov %rcx,%r9 1ae98: 49 89 f0 mov %rsi,%r8 1ae9b: 48 8d 0d f6 78 00 00 lea 0x78f6(%rip),%rcx # 22798 <_fini+0x8e0> 1aea2: 48 89 c6 mov %rax,%rsi 1aea5: 48 8b 05 e4 d0 20 00 mov 0x20d0e4(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1aeac: 48 89 c7 mov %rax,%rdi 1aeaf: b8 00 00 00 00 mov $0x0,%eax 1aeb4: e8 37 89 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1aeb9: 8b 45 fc mov -0x4(%rbp),%eax 1aebc: 89 c2 mov %eax,%edx 1aebe: f7 da neg %edx 1aec0: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1aec7: 89 d6 mov %edx,%esi 1aec9: 48 89 c7 mov %rax,%rdi 1aecc: e8 5f 89 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1aed1: e9 75 05 00 00 jmpq 1b44b <_Z17x_ioctx_pool_statP18enif_environment_tiPKm+0x6eb> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1aed6: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1aedd: be 00 00 00 00 mov $0x0,%esi 1aee2: 48 89 c7 mov %rax,%rdi 1aee5: b8 00 00 00 00 mov $0x0,%eax 1aeea: e8 11 86 ff ff callq 13500 1aeef: 48 89 45 e8 mov %rax,-0x18(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, stat.num_wr_kb); 1aef3: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1aef7: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1aefe: 48 89 d6 mov %rdx,%rsi 1af01: 48 89 c7 mov %rax,%rdi 1af04: e8 17 86 ff ff callq 13520 1af09: 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); 1af0d: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af14: 48 8d 35 a2 78 00 00 lea 0x78a2(%rip),%rsi # 227bd <_fini+0x905> 1af1b: 48 89 c7 mov %rax,%rdi 1af1e: e8 9d 78 ff ff callq 127c0 1af23: 48 89 c2 mov %rax,%rdx 1af26: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1af2a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af31: be 02 00 00 00 mov $0x2,%esi 1af36: 48 89 c7 mov %rax,%rdi 1af39: b8 00 00 00 00 mov $0x0,%eax 1af3e: e8 bd 8c ff ff callq 13c00 1af43: 48 89 c1 mov %rax,%rcx 1af46: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1af4a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af51: 48 89 ce mov %rcx,%rsi 1af54: 48 89 c7 mov %rax,%rdi 1af57: e8 14 80 ff ff callq 12f70 1af5c: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_wr); 1af60: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1af64: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af6b: 48 89 d6 mov %rdx,%rsi 1af6e: 48 89 c7 mov %rax,%rdi 1af71: e8 aa 85 ff ff callq 13520 1af76: 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); 1af7a: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af81: 48 8d 35 3f 78 00 00 lea 0x783f(%rip),%rsi # 227c7 <_fini+0x90f> 1af88: 48 89 c7 mov %rax,%rdi 1af8b: e8 30 78 ff ff callq 127c0 1af90: 48 89 c2 mov %rax,%rdx 1af93: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1af97: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1af9e: be 02 00 00 00 mov $0x2,%esi 1afa3: 48 89 c7 mov %rax,%rdi 1afa6: b8 00 00 00 00 mov $0x0,%eax 1afab: e8 50 8c ff ff callq 13c00 1afb0: 48 89 c1 mov %rax,%rcx 1afb3: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1afb7: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1afbe: 48 89 ce mov %rcx,%rsi 1afc1: 48 89 c7 mov %rax,%rdi 1afc4: e8 a7 7f ff ff callq 12f70 1afc9: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_rd_kb); 1afcd: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1afd1: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1afd8: 48 89 d6 mov %rdx,%rsi 1afdb: 48 89 c7 mov %rax,%rdi 1afde: e8 3d 85 ff ff callq 13520 1afe3: 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); 1afe7: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1afee: 48 8d 35 d9 77 00 00 lea 0x77d9(%rip),%rsi # 227ce <_fini+0x916> 1aff5: 48 89 c7 mov %rax,%rdi 1aff8: e8 c3 77 ff ff callq 127c0 1affd: 48 89 c2 mov %rax,%rdx 1b000: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b004: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b00b: be 02 00 00 00 mov $0x2,%esi 1b010: 48 89 c7 mov %rax,%rdi 1b013: b8 00 00 00 00 mov $0x0,%eax 1b018: e8 e3 8b ff ff callq 13c00 1b01d: 48 89 c1 mov %rax,%rcx 1b020: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b024: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b02b: 48 89 ce mov %rcx,%rsi 1b02e: 48 89 c7 mov %rax,%rdi 1b031: e8 3a 7f ff ff callq 12f70 1b036: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_rd); 1b03a: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1b03e: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b045: 48 89 d6 mov %rdx,%rsi 1b048: 48 89 c7 mov %rax,%rdi 1b04b: e8 d0 84 ff ff callq 13520 1b050: 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); 1b054: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b05b: 48 8d 35 76 77 00 00 lea 0x7776(%rip),%rsi # 227d8 <_fini+0x920> 1b062: 48 89 c7 mov %rax,%rdi 1b065: e8 56 77 ff ff callq 127c0 1b06a: 48 89 c2 mov %rax,%rdx 1b06d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b071: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b078: be 02 00 00 00 mov $0x2,%esi 1b07d: 48 89 c7 mov %rax,%rdi 1b080: b8 00 00 00 00 mov $0x0,%eax 1b085: e8 76 8b ff ff callq 13c00 1b08a: 48 89 c1 mov %rax,%rcx 1b08d: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b091: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b098: 48 89 ce mov %rcx,%rsi 1b09b: 48 89 c7 mov %rax,%rdi 1b09e: e8 cd 7e ff ff callq 12f70 1b0a3: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_degraded); 1b0a7: 48 8b 55 a8 mov -0x58(%rbp),%rdx 1b0ab: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b0b2: 48 89 d6 mov %rdx,%rsi 1b0b5: 48 89 c7 mov %rax,%rdi 1b0b8: e8 63 84 ff ff callq 13520 1b0bd: 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); 1b0c1: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b0c8: 48 8d 35 10 77 00 00 lea 0x7710(%rip),%rsi # 227df <_fini+0x927> 1b0cf: 48 89 c7 mov %rax,%rdi 1b0d2: e8 e9 76 ff ff callq 127c0 1b0d7: 48 89 c2 mov %rax,%rdx 1b0da: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b0de: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b0e5: be 02 00 00 00 mov $0x2,%esi 1b0ea: 48 89 c7 mov %rax,%rdi 1b0ed: b8 00 00 00 00 mov $0x0,%eax 1b0f2: e8 09 8b ff ff callq 13c00 1b0f7: 48 89 c1 mov %rax,%rcx 1b0fa: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b0fe: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b105: 48 89 ce mov %rcx,%rsi 1b108: 48 89 c7 mov %rax,%rdi 1b10b: e8 60 7e ff ff callq 12f70 1b110: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_unfound); 1b114: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1b118: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b11f: 48 89 d6 mov %rdx,%rsi 1b122: 48 89 c7 mov %rax,%rdi 1b125: e8 f6 83 ff ff callq 13520 1b12a: 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); 1b12e: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b135: 48 8d 35 b8 76 00 00 lea 0x76b8(%rip),%rsi # 227f4 <_fini+0x93c> 1b13c: 48 89 c7 mov %rax,%rdi 1b13f: e8 7c 76 ff ff callq 127c0 1b144: 48 89 c2 mov %rax,%rdx 1b147: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b14b: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b152: be 02 00 00 00 mov $0x2,%esi 1b157: 48 89 c7 mov %rax,%rdi 1b15a: b8 00 00 00 00 mov $0x0,%eax 1b15f: e8 9c 8a ff ff callq 13c00 1b164: 48 89 c1 mov %rax,%rcx 1b167: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b16b: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b172: 48 89 ce mov %rcx,%rsi 1b175: 48 89 c7 mov %rax,%rdi 1b178: e8 f3 7d ff ff callq 12f70 1b17d: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects_missing_on_primary); 1b181: 48 8b 55 98 mov -0x68(%rbp),%rdx 1b185: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b18c: 48 89 d6 mov %rdx,%rsi 1b18f: 48 89 c7 mov %rax,%rdi 1b192: e8 89 83 ff ff callq 13520 1b197: 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); 1b19b: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b1a2: 48 8d 35 5f 76 00 00 lea 0x765f(%rip),%rsi # 22808 <_fini+0x950> 1b1a9: 48 89 c7 mov %rax,%rdi 1b1ac: e8 0f 76 ff ff callq 127c0 1b1b1: 48 89 c2 mov %rax,%rdx 1b1b4: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b1b8: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b1bf: be 02 00 00 00 mov $0x2,%esi 1b1c4: 48 89 c7 mov %rax,%rdi 1b1c7: b8 00 00 00 00 mov $0x0,%eax 1b1cc: e8 2f 8a ff ff callq 13c00 1b1d1: 48 89 c1 mov %rax,%rcx 1b1d4: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b1d8: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b1df: 48 89 ce mov %rcx,%rsi 1b1e2: 48 89 c7 mov %rax,%rdi 1b1e5: e8 86 7d ff ff callq 12f70 1b1ea: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_object_copies); 1b1ee: 48 8b 55 90 mov -0x70(%rbp),%rdx 1b1f2: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b1f9: 48 89 d6 mov %rdx,%rsi 1b1fc: 48 89 c7 mov %rax,%rdi 1b1ff: e8 1c 83 ff ff callq 13520 1b204: 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); 1b208: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b20f: 48 8d 35 11 76 00 00 lea 0x7611(%rip),%rsi # 22827 <_fini+0x96f> 1b216: 48 89 c7 mov %rax,%rdi 1b219: e8 a2 75 ff ff callq 127c0 1b21e: 48 89 c2 mov %rax,%rdx 1b221: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b225: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b22c: be 02 00 00 00 mov $0x2,%esi 1b231: 48 89 c7 mov %rax,%rdi 1b234: b8 00 00 00 00 mov $0x0,%eax 1b239: e8 c2 89 ff ff callq 13c00 1b23e: 48 89 c1 mov %rax,%rcx 1b241: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b245: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b24c: 48 89 ce mov %rcx,%rsi 1b24f: 48 89 c7 mov %rax,%rdi 1b252: e8 19 7d ff ff callq 12f70 1b257: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_object_clones); 1b25b: 48 8b 55 88 mov -0x78(%rbp),%rdx 1b25f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b266: 48 89 d6 mov %rdx,%rsi 1b269: 48 89 c7 mov %rax,%rdi 1b26c: e8 af 82 ff ff callq 13520 1b271: 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); 1b275: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b27c: 48 8d 35 b6 75 00 00 lea 0x75b6(%rip),%rsi # 22839 <_fini+0x981> 1b283: 48 89 c7 mov %rax,%rdi 1b286: e8 35 75 ff ff callq 127c0 1b28b: 48 89 c2 mov %rax,%rdx 1b28e: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b292: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b299: be 02 00 00 00 mov $0x2,%esi 1b29e: 48 89 c7 mov %rax,%rdi 1b2a1: b8 00 00 00 00 mov $0x0,%eax 1b2a6: e8 55 89 ff ff callq 13c00 1b2ab: 48 89 c1 mov %rax,%rcx 1b2ae: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b2b2: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b2b9: 48 89 ce mov %rcx,%rsi 1b2bc: 48 89 c7 mov %rax,%rdi 1b2bf: e8 ac 7c ff ff callq 12f70 1b2c4: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_objects); 1b2c8: 48 8b 55 80 mov -0x80(%rbp),%rdx 1b2cc: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b2d3: 48 89 d6 mov %rdx,%rsi 1b2d6: 48 89 c7 mov %rax,%rdi 1b2d9: e8 42 82 ff ff callq 13520 1b2de: 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); 1b2e2: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b2e9: 48 8d 35 5b 75 00 00 lea 0x755b(%rip),%rsi # 2284b <_fini+0x993> 1b2f0: 48 89 c7 mov %rax,%rdi 1b2f3: e8 c8 74 ff ff callq 127c0 1b2f8: 48 89 c2 mov %rax,%rdx 1b2fb: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b2ff: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b306: be 02 00 00 00 mov $0x2,%esi 1b30b: 48 89 c7 mov %rax,%rdi 1b30e: b8 00 00 00 00 mov $0x0,%eax 1b313: e8 e8 88 ff ff callq 13c00 1b318: 48 89 c1 mov %rax,%rcx 1b31b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b31f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b326: 48 89 ce mov %rcx,%rsi 1b329: 48 89 c7 mov %rax,%rdi 1b32c: e8 3f 7c ff ff callq 12f70 1b331: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_kb); 1b335: 48 8b 95 78 ff ff ff mov -0x88(%rbp),%rdx 1b33c: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b343: 48 89 d6 mov %rdx,%rsi 1b346: 48 89 c7 mov %rax,%rdi 1b349: e8 d2 81 ff ff callq 13520 1b34e: 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); 1b352: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b359: 48 8d 35 f7 74 00 00 lea 0x74f7(%rip),%rsi # 22857 <_fini+0x99f> 1b360: 48 89 c7 mov %rax,%rdi 1b363: e8 58 74 ff ff callq 127c0 1b368: 48 89 c2 mov %rax,%rdx 1b36b: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b36f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b376: be 02 00 00 00 mov $0x2,%esi 1b37b: 48 89 c7 mov %rax,%rdi 1b37e: b8 00 00 00 00 mov $0x0,%eax 1b383: e8 78 88 ff ff callq 13c00 1b388: 48 89 c1 mov %rax,%rcx 1b38b: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b38f: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b396: 48 89 ce mov %rcx,%rsi 1b399: 48 89 c7 mov %rax,%rdi 1b39c: e8 cf 7b ff ff callq 12f70 1b3a1: 48 89 45 e8 mov %rax,-0x18(%rbp) t = enif_make_uint64(env, stat.num_bytes); 1b3a5: 48 8b 95 70 ff ff ff mov -0x90(%rbp),%rdx 1b3ac: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b3b3: 48 89 d6 mov %rdx,%rsi 1b3b6: 48 89 c7 mov %rax,%rdi 1b3b9: e8 62 81 ff ff callq 13520 1b3be: 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); 1b3c2: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b3c9: 48 8d 35 8e 74 00 00 lea 0x748e(%rip),%rsi # 2285e <_fini+0x9a6> 1b3d0: 48 89 c7 mov %rax,%rdi 1b3d3: e8 e8 73 ff ff callq 127c0 1b3d8: 48 89 c2 mov %rax,%rdx 1b3db: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1b3df: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b3e6: be 02 00 00 00 mov $0x2,%esi 1b3eb: 48 89 c7 mov %rax,%rdi 1b3ee: b8 00 00 00 00 mov $0x0,%eax 1b3f3: e8 08 88 ff ff callq 13c00 1b3f8: 48 89 c1 mov %rax,%rcx 1b3fb: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1b3ff: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b406: 48 89 ce mov %rcx,%rsi 1b409: 48 89 c7 mov %rax,%rdi 1b40c: e8 5f 7b ff ff callq 12f70 1b411: 48 89 45 e8 mov %rax,-0x18(%rbp) return enif_make_tuple2(env, 1b415: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b41c: 48 8d 35 26 71 00 00 lea 0x7126(%rip),%rsi # 22549 <_fini+0x691> 1b423: 48 89 c7 mov %rax,%rdi 1b426: e8 95 73 ff ff callq 127c0 1b42b: 48 89 c2 mov %rax,%rdx 1b42e: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1b432: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1b439: be 02 00 00 00 mov $0x2,%esi 1b43e: 48 89 c7 mov %rax,%rdi 1b441: b8 00 00 00 00 mov $0x0,%eax 1b446: e8 b5 87 ff ff callq 13c00 enif_make_atom(env, "ok"), term_list); } 1b44b: c9 leaveq 1b44c: c3 retq 000000000001b44d <_Z6x_statP18enif_environment_tiPKm>: ERL_NIF_TERM x_stat(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b44d: 55 push %rbp 1b44e: 48 89 e5 mov %rsp,%rbp 1b451: 48 81 ec 70 04 00 00 sub $0x470,%rsp 1b458: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 1b45f: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 1b465: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 1b46c: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1b473: 00 00 1b475: 48 89 45 f8 mov %rax,-0x8(%rbp) 1b479: 31 c0 xor %eax,%eax const char * func_name = "x_stat()"; 1b47b: 48 8d 05 e6 73 00 00 lea 0x73e6(%rip),%rax # 22868 <_fini+0x9b0> 1b482: 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); 1b489: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1b490: ba 00 04 00 00 mov $0x400,%edx 1b495: be 00 00 00 00 mov $0x0,%esi 1b49a: 48 89 c7 mov %rax,%rdi 1b49d: e8 ae 6f ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1b4a2: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1b4a9: 48 8b 08 mov (%rax),%rcx 1b4ac: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1b4b3: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b4ba: 48 89 ce mov %rcx,%rsi 1b4bd: 48 89 c7 mov %rax,%rdi 1b4c0: e8 cb 7a ff ff callq 12f90 1b4c5: 85 c0 test %eax,%eax 1b4c7: 74 33 je 1b4fc <_Z6x_statP18enif_environment_tiPKm+0xaf> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1b4c9: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1b4d0: 48 83 c0 08 add $0x8,%rax 1b4d4: 48 8b 30 mov (%rax),%rsi 1b4d7: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1b4de: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b4e5: 41 b8 01 00 00 00 mov $0x1,%r8d 1b4eb: b9 00 04 00 00 mov $0x400,%ecx 1b4f0: 48 89 c7 mov %rax,%rdi 1b4f3: e8 f8 86 ff ff callq 13bf0 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) || 1b4f8: 85 c0 test %eax,%eax 1b4fa: 75 07 jne 1b503 <_Z6x_statP18enif_environment_tiPKm+0xb6> 1b4fc: b8 01 00 00 00 mov $0x1,%eax 1b501: eb 05 jmp 1b508 <_Z6x_statP18enif_environment_tiPKm+0xbb> 1b503: b8 00 00 00 00 mov $0x0,%eax 1b508: 84 c0 test %al,%al 1b50a: 74 40 je 1b54c <_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"); 1b50c: 48 8b 05 45 df 20 00 mov 0x20df45(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b513: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1b51a: 48 8d 0d a1 6f 00 00 lea 0x6fa1(%rip),%rcx # 224c2 <_fini+0x60a> 1b521: 48 89 c6 mov %rax,%rsi 1b524: 48 8b 05 65 ca 20 00 mov 0x20ca65(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b52b: 48 89 c7 mov %rax,%rdi 1b52e: b8 00 00 00 00 mov $0x0,%eax 1b533: e8 b8 82 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b538: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b53f: 48 89 c7 mov %rax,%rdi 1b542: e8 59 7d ff ff callq 132a0 1b547: e9 a9 02 00 00 jmpq 1b7f5 <_Z6x_statP18enif_environment_tiPKm+0x3a8> } rados_ioctx_t io = map_ioctx[id]; 1b54c: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1b553: 48 89 c6 mov %rax,%rsi 1b556: 48 8b 05 23 ca 20 00 mov 0x20ca23(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1b55d: 48 89 c7 mov %rax,%rdi 1b560: e8 0b 7e ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1b565: 48 8b 00 mov (%rax),%rax 1b568: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1b56f: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1b576: 00 1b577: 75 4a jne 1b5c3 <_Z6x_statP18enif_environment_tiPKm+0x176> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1b579: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1b580: 48 8b 05 d1 de 20 00 mov 0x20ded1(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b587: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1b58e: 49 89 c8 mov %rcx,%r8 1b591: 48 8d 0d c6 6f 00 00 lea 0x6fc6(%rip),%rcx # 2255e <_fini+0x6a6> 1b598: 48 89 c6 mov %rax,%rsi 1b59b: 48 8b 05 ee c9 20 00 mov 0x20c9ee(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b5a2: 48 89 c7 mov %rax,%rdi 1b5a5: b8 00 00 00 00 mov $0x0,%eax 1b5aa: e8 41 82 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b5af: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b5b6: 48 89 c7 mov %rax,%rdi 1b5b9: e8 e2 7c ff ff callq 132a0 1b5be: e9 32 02 00 00 jmpq 1b7f5 <_Z6x_statP18enif_environment_tiPKm+0x3a8> } logger.debug(MOD_NAME, func_name, "ioctx=%ld, oid=%s", id, oid); 1b5c3: 48 8b 8d b0 fb ff ff mov -0x450(%rbp),%rcx 1b5ca: 48 8b 05 87 de 20 00 mov 0x20de87(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b5d1: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1b5d8: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1b5df: 49 89 f1 mov %rsi,%r9 1b5e2: 49 89 c8 mov %rcx,%r8 1b5e5: 48 8d 0d 85 72 00 00 lea 0x7285(%rip),%rcx # 22871 <_fini+0x9b9> 1b5ec: 48 89 c6 mov %rax,%rsi 1b5ef: 48 8b 05 9a c9 20 00 mov 0x20c99a(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b5f6: 48 89 c7 mov %rax,%rdi 1b5f9: b8 00 00 00 00 mov $0x0,%eax 1b5fe: e8 8d 83 ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> uint64_t size; time_t mtime; int err = rados_stat(io, oid, &size, &mtime); 1b603: 48 8d 8d c0 fb ff ff lea -0x440(%rbp),%rcx 1b60a: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1b611: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1b618: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1b61f: 48 89 c7 mov %rax,%rdi 1b622: e8 a9 81 ff ff callq 137d0 1b627: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1b62d: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1b634: 79 6b jns 1b6a1 <_Z6x_statP18enif_environment_tiPKm+0x254> { logger.error(MOD_NAME, func_name, "unable to read object stat for %s: %s", oid, strerror(-err)); 1b636: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1b63c: f7 d8 neg %eax 1b63e: 89 c7 mov %eax,%edi 1b640: e8 fb 7c ff ff callq 13340 1b645: 48 89 c1 mov %rax,%rcx 1b648: 48 8b 05 09 de 20 00 mov 0x20de09(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b64f: 48 8d b5 f0 fb ff ff lea -0x410(%rbp),%rsi 1b656: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1b65d: 49 89 c9 mov %rcx,%r9 1b660: 49 89 f0 mov %rsi,%r8 1b663: 48 8d 0d 1e 72 00 00 lea 0x721e(%rip),%rcx # 22888 <_fini+0x9d0> 1b66a: 48 89 c6 mov %rax,%rsi 1b66d: 48 8b 05 1c c9 20 00 mov 0x20c91c(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b674: 48 89 c7 mov %rax,%rdi 1b677: b8 00 00 00 00 mov $0x0,%eax 1b67c: e8 6f 81 ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1b681: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1b687: 89 c2 mov %eax,%edx 1b689: f7 da neg %edx 1b68b: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b692: 89 d6 mov %edx,%esi 1b694: 48 89 c7 mov %rax,%rdi 1b697: e8 94 81 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b69c: e9 54 01 00 00 jmpq 1b7f5 <_Z6x_statP18enif_environment_tiPKm+0x3a8> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1b6a1: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b6a8: be 00 00 00 00 mov $0x0,%esi 1b6ad: 48 89 c7 mov %rax,%rdi 1b6b0: b8 00 00 00 00 mov $0x0,%eax 1b6b5: e8 46 7e ff ff callq 13500 1b6ba: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) ERL_NIF_TERM t = enif_make_uint64(env, mtime); 1b6c1: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1b6c8: 48 89 c2 mov %rax,%rdx 1b6cb: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b6d2: 48 89 d6 mov %rdx,%rsi 1b6d5: 48 89 c7 mov %rax,%rdi 1b6d8: e8 43 7e ff ff callq 13520 1b6dd: 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); 1b6e4: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b6eb: 48 8d 35 bc 71 00 00 lea 0x71bc(%rip),%rsi # 228ae <_fini+0x9f6> 1b6f2: 48 89 c7 mov %rax,%rdi 1b6f5: e8 c6 70 ff ff callq 127c0 1b6fa: 48 89 c2 mov %rax,%rdx 1b6fd: 48 8b 8d e0 fb ff ff mov -0x420(%rbp),%rcx 1b704: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b70b: be 02 00 00 00 mov $0x2,%esi 1b710: 48 89 c7 mov %rax,%rdi 1b713: b8 00 00 00 00 mov $0x0,%eax 1b718: e8 e3 84 ff ff callq 13c00 1b71d: 48 89 c1 mov %rax,%rcx 1b720: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b727: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b72e: 48 89 ce mov %rcx,%rsi 1b731: 48 89 c7 mov %rax,%rdi 1b734: e8 37 78 ff ff callq 12f70 1b739: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) t = enif_make_uint64(env, size); 1b740: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1b747: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b74e: 48 89 d6 mov %rdx,%rsi 1b751: 48 89 c7 mov %rax,%rdi 1b754: e8 c7 7d ff ff callq 13520 1b759: 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); 1b760: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b767: 48 8d 35 46 71 00 00 lea 0x7146(%rip),%rsi # 228b4 <_fini+0x9fc> 1b76e: 48 89 c7 mov %rax,%rdi 1b771: e8 4a 70 ff ff callq 127c0 1b776: 48 89 c2 mov %rax,%rdx 1b779: 48 8b 8d e0 fb ff ff mov -0x420(%rbp),%rcx 1b780: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b787: be 02 00 00 00 mov $0x2,%esi 1b78c: 48 89 c7 mov %rax,%rdi 1b78f: b8 00 00 00 00 mov $0x0,%eax 1b794: e8 67 84 ff ff callq 13c00 1b799: 48 89 c1 mov %rax,%rcx 1b79c: 48 8b 95 d8 fb ff ff mov -0x428(%rbp),%rdx 1b7a3: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b7aa: 48 89 ce mov %rcx,%rsi 1b7ad: 48 89 c7 mov %rax,%rdi 1b7b0: e8 bb 77 ff ff callq 12f70 1b7b5: 48 89 85 d8 fb ff ff mov %rax,-0x428(%rbp) return enif_make_tuple2(env, 1b7bc: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b7c3: 48 8d 35 7f 6d 00 00 lea 0x6d7f(%rip),%rsi # 22549 <_fini+0x691> 1b7ca: 48 89 c7 mov %rax,%rdi 1b7cd: e8 ee 6f ff ff callq 127c0 1b7d2: 48 89 c2 mov %rax,%rdx 1b7d5: 48 8b 8d d8 fb ff ff mov -0x428(%rbp),%rcx 1b7dc: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1b7e3: be 02 00 00 00 mov $0x2,%esi 1b7e8: 48 89 c7 mov %rax,%rdi 1b7eb: b8 00 00 00 00 mov $0x0,%eax 1b7f0: e8 0b 84 ff ff callq 13c00 enif_make_atom(env, "ok"), term_list); } 1b7f5: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1b7f9: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1b800: 00 00 1b802: 74 05 je 1b809 <_Z6x_statP18enif_environment_tiPKm+0x3bc> 1b804: e8 a7 80 ff ff callq 138b0 <__stack_chk_fail@plt> 1b809: c9 leaveq 1b80a: c3 retq 000000000001b80b <_Z19x_objects_list_openP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_open(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b80b: 55 push %rbp 1b80c: 48 89 e5 mov %rsp,%rbp 1b80f: 53 push %rbx 1b810: 48 83 ec 58 sub $0x58,%rsp 1b814: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1b818: 89 75 b4 mov %esi,-0x4c(%rbp) 1b81b: 48 89 55 a8 mov %rdx,-0x58(%rbp) const char * func_name = "x_objects_list_open()"; 1b81f: 48 8d 05 93 70 00 00 lea 0x7093(%rip),%rax # 228b9 <_fini+0xa01> 1b826: 48 89 45 d8 mov %rax,-0x28(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1b82a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1b82e: 48 8b 08 mov (%rax),%rcx 1b831: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1b835: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b839: 48 89 ce mov %rcx,%rsi 1b83c: 48 89 c7 mov %rax,%rdi 1b83f: e8 4c 77 ff ff callq 12f90 1b844: 85 c0 test %eax,%eax 1b846: 0f 94 c0 sete %al 1b849: 84 c0 test %al,%al 1b84b: 74 3a je 1b887 <_Z19x_objects_list_openP18enif_environment_tiPKm+0x7c> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1b84d: 48 8b 05 04 dc 20 00 mov 0x20dc04(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b854: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1b858: 48 8d 0d 63 6c 00 00 lea 0x6c63(%rip),%rcx # 224c2 <_fini+0x60a> 1b85f: 48 89 c6 mov %rax,%rsi 1b862: 48 8b 05 27 c7 20 00 mov 0x20c727(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b869: 48 89 c7 mov %rax,%rdi 1b86c: b8 00 00 00 00 mov $0x0,%eax 1b871: e8 7a 7f ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b876: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b87a: 48 89 c7 mov %rax,%rdi 1b87d: e8 1e 7a ff ff callq 132a0 1b882: e9 03 01 00 00 jmpq 1b98a <_Z19x_objects_list_openP18enif_environment_tiPKm+0x17f> } rados_ioctx_t io = map_ioctx[id]; 1b887: 48 8d 45 c0 lea -0x40(%rbp),%rax 1b88b: 48 89 c6 mov %rax,%rsi 1b88e: 48 8b 05 eb c6 20 00 mov 0x20c6eb(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1b895: 48 89 c7 mov %rax,%rdi 1b898: e8 d3 7a ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1b89d: 48 8b 00 mov (%rax),%rax 1b8a0: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1b8a4: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1b8a9: 75 41 jne 1b8ec <_Z19x_objects_list_openP18enif_environment_tiPKm+0xe1> { logger.error(MOD_NAME, func_name, "ioctx non-existing : %ld", id); 1b8ab: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1b8af: 48 8b 05 a2 db 20 00 mov 0x20dba2(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b8b6: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1b8ba: 49 89 c8 mov %rcx,%r8 1b8bd: 48 8d 0d 9a 6c 00 00 lea 0x6c9a(%rip),%rcx # 2255e <_fini+0x6a6> 1b8c4: 48 89 c6 mov %rax,%rsi 1b8c7: 48 8b 05 c2 c6 20 00 mov 0x20c6c2(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b8ce: 48 89 c7 mov %rax,%rdi 1b8d1: b8 00 00 00 00 mov $0x0,%eax 1b8d6: e8 15 7f ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b8db: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b8df: 48 89 c7 mov %rax,%rdi 1b8e2: e8 b9 79 ff ff callq 132a0 1b8e7: e9 9e 00 00 00 jmpq 1b98a <_Z19x_objects_list_openP18enif_environment_tiPKm+0x17f> } rados_list_ctx_t ctx; int err = rados_objects_list_open(io, &ctx); 1b8ec: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1b8f0: 48 8b 45 e0 mov -0x20(%rbp),%rax 1b8f4: 48 89 d6 mov %rdx,%rsi 1b8f7: 48 89 c7 mov %rax,%rdi 1b8fa: e8 21 7d ff ff callq 13620 1b8ff: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1b902: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1b906: 79 17 jns 1b91f <_Z19x_objects_list_openP18enif_environment_tiPKm+0x114> { return make_error_tuple(env, -err); 1b908: 8b 45 ec mov -0x14(%rbp),%eax 1b90b: 89 c2 mov %eax,%edx 1b90d: f7 da neg %edx 1b90f: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b913: 89 d6 mov %edx,%esi 1b915: 48 89 c7 mov %rax,%rdi 1b918: e8 13 7f ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1b91d: eb 6b jmp 1b98a <_Z19x_objects_list_openP18enif_environment_tiPKm+0x17f> } uint64_t listid = new_id(); 1b91f: e8 5c 7e ff ff callq 13780 <_Z6new_idv@plt> 1b924: 48 89 45 d0 mov %rax,-0x30(%rbp) map_list_ctx[listid] = ctx; 1b928: 48 8d 45 d0 lea -0x30(%rbp),%rax 1b92c: 48 89 c6 mov %rax,%rsi 1b92f: 48 8b 05 0a c6 20 00 mov 0x20c60a(%rip),%rax # 227f40 <_DYNAMIC+0x1f0> 1b936: 48 89 c7 mov %rax,%rdi 1b939: e8 32 7a ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1b93e: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1b942: 48 89 10 mov %rdx,(%rax) return enif_make_tuple2(env, 1b945: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1b949: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b94d: 48 89 d6 mov %rdx,%rsi 1b950: 48 89 c7 mov %rax,%rdi 1b953: e8 c8 7b ff ff callq 13520 1b958: 48 89 c3 mov %rax,%rbx 1b95b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b95f: 48 8d 35 e3 6b 00 00 lea 0x6be3(%rip),%rsi # 22549 <_fini+0x691> 1b966: 48 89 c7 mov %rax,%rdi 1b969: e8 52 6e ff ff callq 127c0 1b96e: 48 89 c2 mov %rax,%rdx 1b971: 48 8b 45 b8 mov -0x48(%rbp),%rax 1b975: 48 89 d9 mov %rbx,%rcx 1b978: be 02 00 00 00 mov $0x2,%esi 1b97d: 48 89 c7 mov %rax,%rdi 1b980: b8 00 00 00 00 mov $0x0,%eax 1b985: e8 76 82 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, listid)); } 1b98a: 48 83 c4 58 add $0x58,%rsp 1b98e: 5b pop %rbx 1b98f: 5d pop %rbp 1b990: c3 retq 000000000001b991 <_Z19x_objects_list_nextP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_next(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1b991: 55 push %rbp 1b992: 48 89 e5 mov %rsp,%rbp 1b995: 48 83 ec 70 sub $0x70,%rsp 1b999: 48 89 7d a8 mov %rdi,-0x58(%rbp) 1b99d: 89 75 a4 mov %esi,-0x5c(%rbp) 1b9a0: 48 89 55 98 mov %rdx,-0x68(%rbp) const char * func_name = "x_objects_list_next()"; 1b9a4: 48 8d 05 24 6f 00 00 lea 0x6f24(%rip),%rax # 228cf <_fini+0xa17> 1b9ab: 48 89 45 e0 mov %rax,-0x20(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1b9af: 48 8b 45 98 mov -0x68(%rbp),%rax 1b9b3: 48 8b 08 mov (%rax),%rcx 1b9b6: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1b9ba: 48 8b 45 a8 mov -0x58(%rbp),%rax 1b9be: 48 89 ce mov %rcx,%rsi 1b9c1: 48 89 c7 mov %rax,%rdi 1b9c4: e8 c7 75 ff ff callq 12f90 1b9c9: 85 c0 test %eax,%eax 1b9cb: 0f 94 c0 sete %al 1b9ce: 84 c0 test %al,%al 1b9d0: 74 3a je 1ba0c <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1b9d2: 48 8b 05 7f da 20 00 mov 0x20da7f(%rip),%rax # 229458 <_ZL8MOD_NAME> 1b9d9: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1b9dd: 48 8d 0d de 6a 00 00 lea 0x6ade(%rip),%rcx # 224c2 <_fini+0x60a> 1b9e4: 48 89 c6 mov %rax,%rsi 1b9e7: 48 8b 05 a2 c5 20 00 mov 0x20c5a2(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1b9ee: 48 89 c7 mov %rax,%rdi 1b9f1: b8 00 00 00 00 mov $0x0,%eax 1b9f6: e8 f5 7d ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1b9fb: 48 8b 45 a8 mov -0x58(%rbp),%rax 1b9ff: 48 89 c7 mov %rax,%rdi 1ba02: e8 99 78 ff ff callq 132a0 1ba07: e9 54 02 00 00 jmpq 1bc60 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2cf> } rados_list_ctx_t ctx = map_list_ctx[id]; 1ba0c: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ba10: 48 89 c6 mov %rax,%rsi 1ba13: 48 8b 05 26 c5 20 00 mov 0x20c526(%rip),%rax # 227f40 <_DYNAMIC+0x1f0> 1ba1a: 48 89 c7 mov %rax,%rdi 1ba1d: e8 4e 79 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1ba22: 48 8b 00 mov (%rax),%rax 1ba25: 48 89 45 e8 mov %rax,-0x18(%rbp) if (ctx == NULL) 1ba29: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 1ba2e: 75 41 jne 1ba71 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0xe0> { logger.error(MOD_NAME, func_name, "ioctx object list : %ld", id); 1ba30: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1ba34: 48 8b 05 1d da 20 00 mov 0x20da1d(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ba3b: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1ba3f: 49 89 c8 mov %rcx,%r8 1ba42: 48 8d 0d 9c 6e 00 00 lea 0x6e9c(%rip),%rcx # 228e5 <_fini+0xa2d> 1ba49: 48 89 c6 mov %rax,%rsi 1ba4c: 48 8b 05 3d c5 20 00 mov 0x20c53d(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ba53: 48 89 c7 mov %rax,%rdi 1ba56: b8 00 00 00 00 mov $0x0,%eax 1ba5b: e8 90 7d ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1ba60: 48 8b 45 a8 mov -0x58(%rbp),%rax 1ba64: 48 89 c7 mov %rax,%rdi 1ba67: e8 34 78 ff ff callq 132a0 1ba6c: e9 ef 01 00 00 jmpq 1bc60 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2cf> } logger.debug(MOD_NAME, func_name, "list id: %ld", id); 1ba71: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1ba75: 48 8b 05 dc d9 20 00 mov 0x20d9dc(%rip),%rax # 229458 <_ZL8MOD_NAME> 1ba7c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1ba80: 49 89 c8 mov %rcx,%r8 1ba83: 48 8d 0d 73 6e 00 00 lea 0x6e73(%rip),%rcx # 228fd <_fini+0xa45> 1ba8a: 48 89 c6 mov %rax,%rsi 1ba8d: 48 8b 05 fc c4 20 00 mov 0x20c4fc(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1ba94: 48 89 c7 mov %rax,%rdi 1ba97: b8 00 00 00 00 mov $0x0,%eax 1ba9c: e8 ef 7e ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> const char * entry[1]; const char * key[1]; int err = rados_objects_list_next(ctx, entry, key); 1baa1: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1baa5: 48 8d 4d b0 lea -0x50(%rbp),%rcx 1baa9: 48 8b 45 e8 mov -0x18(%rbp),%rax 1baad: 48 89 ce mov %rcx,%rsi 1bab0: 48 89 c7 mov %rax,%rdi 1bab3: e8 98 83 ff ff callq 13e50 1bab8: 89 45 fc mov %eax,-0x4(%rbp) if ((err < 0) && (err != -ENOENT)) 1babb: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1babf: 79 62 jns 1bb23 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x192> 1bac1: 83 7d fc fe cmpl $0xfffffffe,-0x4(%rbp) 1bac5: 74 5c je 1bb23 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x192> { logger.error(MOD_NAME, func_name, "unable to get next object in list for %ld: %s", id, strerror(-err)); 1bac7: 8b 45 fc mov -0x4(%rbp),%eax 1baca: f7 d8 neg %eax 1bacc: 89 c7 mov %eax,%edi 1bace: e8 6d 78 ff ff callq 13340 1bad3: 48 89 c1 mov %rax,%rcx 1bad6: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1bada: 48 8b 05 77 d9 20 00 mov 0x20d977(%rip),%rax # 229458 <_ZL8MOD_NAME> 1bae1: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1bae5: 49 89 c9 mov %rcx,%r9 1bae8: 49 89 f0 mov %rsi,%r8 1baeb: 48 8d 0d 1e 6e 00 00 lea 0x6e1e(%rip),%rcx # 22910 <_fini+0xa58> 1baf2: 48 89 c6 mov %rax,%rsi 1baf5: 48 8b 05 94 c4 20 00 mov 0x20c494(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1bafc: 48 89 c7 mov %rax,%rdi 1baff: b8 00 00 00 00 mov $0x0,%eax 1bb04: e8 e7 7c ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return make_error_tuple(env, -err); 1bb09: 8b 45 fc mov -0x4(%rbp),%eax 1bb0c: 89 c2 mov %eax,%edx 1bb0e: f7 da neg %edx 1bb10: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb14: 89 d6 mov %edx,%esi 1bb16: 48 89 c7 mov %rax,%rdi 1bb19: e8 12 7d ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1bb1e: e9 3d 01 00 00 jmpq 1bc60 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2cf> } if (err == -ENOENT) 1bb23: 83 7d fc fe cmpl $0xfffffffe,-0x4(%rbp) 1bb27: 75 18 jne 1bb41 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x1b0> { return enif_make_atom(env, "end"); 1bb29: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb2d: 48 8d 35 0a 6e 00 00 lea 0x6e0a(%rip),%rsi # 2293e <_fini+0xa86> 1bb34: 48 89 c7 mov %rax,%rdi 1bb37: e8 84 6c ff ff callq 127c0 1bb3c: e9 1f 01 00 00 jmpq 1bc60 <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x2cf> } ERL_NIF_TERM term_list = enif_make_list(env, 0); 1bb41: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb45: be 00 00 00 00 mov $0x0,%esi 1bb4a: 48 89 c7 mov %rax,%rdi 1bb4d: b8 00 00 00 00 mov $0x0,%eax 1bb52: e8 a9 79 ff ff callq 13500 1bb57: 48 89 45 d8 mov %rax,-0x28(%rbp) ERL_NIF_TERM t; if (key[0] != NULL) 1bb5b: 48 8b 45 c0 mov -0x40(%rbp),%rax 1bb5f: 48 85 c0 test %rax,%rax 1bb62: 74 66 je 1bbca <_Z19x_objects_list_nextP18enif_environment_tiPKm+0x239> { t = enif_make_string(env, key[0], ERL_NIF_LATIN1); 1bb64: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1bb68: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb6c: ba 01 00 00 00 mov $0x1,%edx 1bb71: 48 89 ce mov %rcx,%rsi 1bb74: 48 89 c7 mov %rax,%rdi 1bb77: e8 b4 76 ff ff callq 13230 1bb7c: 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); 1bb80: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb84: 48 8d 35 b7 6d 00 00 lea 0x6db7(%rip),%rsi # 22942 <_fini+0xa8a> 1bb8b: 48 89 c7 mov %rax,%rdi 1bb8e: e8 2d 6c ff ff callq 127c0 1bb93: 48 89 c2 mov %rax,%rdx 1bb96: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bb9a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bb9e: be 02 00 00 00 mov $0x2,%esi 1bba3: 48 89 c7 mov %rax,%rdi 1bba6: b8 00 00 00 00 mov $0x0,%eax 1bbab: e8 50 80 ff ff callq 13c00 1bbb0: 48 89 c1 mov %rax,%rcx 1bbb3: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1bbb7: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bbbb: 48 89 ce mov %rcx,%rsi 1bbbe: 48 89 c7 mov %rax,%rdi 1bbc1: e8 aa 73 ff ff callq 12f70 1bbc6: 48 89 45 d8 mov %rax,-0x28(%rbp) } t = enif_make_string(env, entry[0], ERL_NIF_LATIN1); 1bbca: 48 8b 4d b0 mov -0x50(%rbp),%rcx 1bbce: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bbd2: ba 01 00 00 00 mov $0x1,%edx 1bbd7: 48 89 ce mov %rcx,%rsi 1bbda: 48 89 c7 mov %rax,%rdi 1bbdd: e8 4e 76 ff ff callq 13230 1bbe2: 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); 1bbe6: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bbea: 48 8d 35 55 6d 00 00 lea 0x6d55(%rip),%rsi # 22946 <_fini+0xa8e> 1bbf1: 48 89 c7 mov %rax,%rdi 1bbf4: e8 c7 6b ff ff callq 127c0 1bbf9: 48 89 c2 mov %rax,%rdx 1bbfc: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1bc00: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bc04: be 02 00 00 00 mov $0x2,%esi 1bc09: 48 89 c7 mov %rax,%rdi 1bc0c: b8 00 00 00 00 mov $0x0,%eax 1bc11: e8 ea 7f ff ff callq 13c00 1bc16: 48 89 c1 mov %rax,%rcx 1bc19: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1bc1d: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bc21: 48 89 ce mov %rcx,%rsi 1bc24: 48 89 c7 mov %rax,%rdi 1bc27: e8 44 73 ff ff callq 12f70 1bc2c: 48 89 45 d8 mov %rax,-0x28(%rbp) return enif_make_tuple2(env, 1bc30: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bc34: 48 8d 35 0e 69 00 00 lea 0x690e(%rip),%rsi # 22549 <_fini+0x691> 1bc3b: 48 89 c7 mov %rax,%rdi 1bc3e: e8 7d 6b ff ff callq 127c0 1bc43: 48 89 c2 mov %rax,%rdx 1bc46: 48 8b 4d d8 mov -0x28(%rbp),%rcx 1bc4a: 48 8b 45 a8 mov -0x58(%rbp),%rax 1bc4e: be 02 00 00 00 mov $0x2,%esi 1bc53: 48 89 c7 mov %rax,%rdi 1bc56: b8 00 00 00 00 mov $0x0,%eax 1bc5b: e8 a0 7f ff ff callq 13c00 enif_make_atom(env, "ok"), term_list); } 1bc60: c9 leaveq 1bc61: c3 retq 000000000001bc62 <_Z20x_objects_list_closeP18enif_environment_tiPKm>: ERL_NIF_TERM x_objects_list_close(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1bc62: 55 push %rbp 1bc63: 48 89 e5 mov %rsp,%rbp 1bc66: 48 83 ec 40 sub $0x40,%rsp 1bc6a: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1bc6e: 89 75 d4 mov %esi,-0x2c(%rbp) 1bc71: 48 89 55 c8 mov %rdx,-0x38(%rbp) const char * func_name = "x_objects_list_close()"; 1bc75: 48 8d 05 d0 6c 00 00 lea 0x6cd0(%rip),%rax # 2294c <_fini+0xa94> 1bc7c: 48 89 45 f0 mov %rax,-0x10(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1bc80: 48 8b 45 c8 mov -0x38(%rbp),%rax 1bc84: 48 8b 08 mov (%rax),%rcx 1bc87: 48 8d 55 e8 lea -0x18(%rbp),%rdx 1bc8b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bc8f: 48 89 ce mov %rcx,%rsi 1bc92: 48 89 c7 mov %rax,%rdi 1bc95: e8 f6 72 ff ff callq 12f90 1bc9a: 85 c0 test %eax,%eax 1bc9c: 0f 94 c0 sete %al 1bc9f: 84 c0 test %al,%al 1bca1: 74 3a je 1bcdd <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x7b> { logger.error(MOD_NAME, func_name, "enif get params failed"); 1bca3: 48 8b 05 ae d7 20 00 mov 0x20d7ae(%rip),%rax # 229458 <_ZL8MOD_NAME> 1bcaa: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1bcae: 48 8d 0d 0d 68 00 00 lea 0x680d(%rip),%rcx # 224c2 <_fini+0x60a> 1bcb5: 48 89 c6 mov %rax,%rsi 1bcb8: 48 8b 05 d1 c2 20 00 mov 0x20c2d1(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1bcbf: 48 89 c7 mov %rax,%rdi 1bcc2: b8 00 00 00 00 mov $0x0,%eax 1bcc7: e8 24 7b ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1bccc: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bcd0: 48 89 c7 mov %rax,%rdi 1bcd3: e8 c8 75 ff ff callq 132a0 1bcd8: e9 c7 00 00 00 jmpq 1bda4 <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x142> } rados_list_ctx_t ctx = map_list_ctx[id]; 1bcdd: 48 8d 45 e8 lea -0x18(%rbp),%rax 1bce1: 48 89 c6 mov %rax,%rsi 1bce4: 48 8b 05 55 c2 20 00 mov 0x20c255(%rip),%rax # 227f40 <_DYNAMIC+0x1f0> 1bceb: 48 89 c7 mov %rax,%rdi 1bcee: e8 7d 76 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1bcf3: 48 8b 00 mov (%rax),%rax 1bcf6: 48 89 45 f8 mov %rax,-0x8(%rbp) if (ctx == NULL) 1bcfa: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 1bcff: 75 3e jne 1bd3f <_Z20x_objects_list_closeP18enif_environment_tiPKm+0xdd> { logger.error(MOD_NAME, func_name, "ioctx object list : %ld", id); 1bd01: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1bd05: 48 8b 05 4c d7 20 00 mov 0x20d74c(%rip),%rax # 229458 <_ZL8MOD_NAME> 1bd0c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1bd10: 49 89 c8 mov %rcx,%r8 1bd13: 48 8d 0d cb 6b 00 00 lea 0x6bcb(%rip),%rcx # 228e5 <_fini+0xa2d> 1bd1a: 48 89 c6 mov %rax,%rsi 1bd1d: 48 8b 05 6c c2 20 00 mov 0x20c26c(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1bd24: 48 89 c7 mov %rax,%rdi 1bd27: b8 00 00 00 00 mov $0x0,%eax 1bd2c: e8 bf 7a ff ff callq 137f0 <_ZN4XLog5errorEPKcS1_S1_z@plt> return enif_make_badarg(env); 1bd31: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bd35: 48 89 c7 mov %rax,%rdi 1bd38: e8 63 75 ff ff callq 132a0 1bd3d: eb 65 jmp 1bda4 <_Z20x_objects_list_closeP18enif_environment_tiPKm+0x142> } logger.debug(MOD_NAME, func_name, "list id: %ld", id); 1bd3f: 48 8b 4d e8 mov -0x18(%rbp),%rcx 1bd43: 48 8b 05 0e d7 20 00 mov 0x20d70e(%rip),%rax # 229458 <_ZL8MOD_NAME> 1bd4a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1bd4e: 49 89 c8 mov %rcx,%r8 1bd51: 48 8d 0d a5 6b 00 00 lea 0x6ba5(%rip),%rcx # 228fd <_fini+0xa45> 1bd58: 48 89 c6 mov %rax,%rsi 1bd5b: 48 8b 05 2e c2 20 00 mov 0x20c22e(%rip),%rax # 227f90 <_DYNAMIC+0x240> 1bd62: 48 89 c7 mov %rax,%rdi 1bd65: b8 00 00 00 00 mov $0x0,%eax 1bd6a: e8 21 7c ff ff callq 13990 <_ZN4XLog5debugEPKcS1_S1_z@plt> rados_objects_list_close(ctx); 1bd6f: 48 8b 45 f8 mov -0x8(%rbp),%rax 1bd73: 48 89 c7 mov %rax,%rdi 1bd76: e8 75 76 ff ff callq 133f0 map_list_ctx.erase(id); 1bd7b: 48 8d 45 e8 lea -0x18(%rbp),%rax 1bd7f: 48 89 c6 mov %rax,%rsi 1bd82: 48 8b 05 b7 c1 20 00 mov 0x20c1b7(%rip),%rax # 227f40 <_DYNAMIC+0x1f0> 1bd89: 48 89 c7 mov %rax,%rdi 1bd8c: e8 af 78 ff ff callq 13640 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> return enif_make_atom(env, "ok"); 1bd91: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bd95: 48 8d 35 ad 67 00 00 lea 0x67ad(%rip),%rsi # 22549 <_fini+0x691> 1bd9c: 48 89 c7 mov %rax,%rdi 1bd9f: e8 1c 6a ff ff callq 127c0 } 1bda4: c9 leaveq 1bda5: c3 retq 1bda6: 90 nop 1bda7: 90 nop 000000000001bda8 <_Z11x_aio_flushP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_aio_flush(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1bda8: 55 push %rbp 1bda9: 48 89 e5 mov %rsp,%rbp 1bdac: 48 83 ec 40 sub $0x40,%rsp 1bdb0: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1bdb4: 89 75 d4 mov %esi,-0x2c(%rbp) 1bdb7: 48 89 55 c8 mov %rdx,-0x38(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1bdbb: 48 8b 45 c8 mov -0x38(%rbp),%rax 1bdbf: 48 8b 08 mov (%rax),%rcx 1bdc2: 48 8d 55 e8 lea -0x18(%rbp),%rdx 1bdc6: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bdca: 48 89 ce mov %rcx,%rsi 1bdcd: 48 89 c7 mov %rax,%rdi 1bdd0: e8 bb 71 ff ff callq 12f90 1bdd5: 85 c0 test %eax,%eax 1bdd7: 0f 94 c0 sete %al 1bdda: 84 c0 test %al,%al 1bddc: 74 0e je 1bdec <_Z11x_aio_flushP18enif_environment_tiPKm+0x44> { return enif_make_badarg(env); 1bdde: 48 8b 45 d8 mov -0x28(%rbp),%rax 1bde2: 48 89 c7 mov %rax,%rdi 1bde5: e8 b6 74 ff ff callq 132a0 1bdea: eb 71 jmp 1be5d <_Z11x_aio_flushP18enif_environment_tiPKm+0xb5> } rados_ioctx_t io = map_ioctx[id]; 1bdec: 48 8d 45 e8 lea -0x18(%rbp),%rax 1bdf0: 48 89 c6 mov %rax,%rsi 1bdf3: 48 8b 05 86 c1 20 00 mov 0x20c186(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1bdfa: 48 89 c7 mov %rax,%rdi 1bdfd: e8 6e 75 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1be02: 48 8b 00 mov (%rax),%rax 1be05: 48 89 45 f0 mov %rax,-0x10(%rbp) if (io == NULL) 1be09: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 1be0e: 75 0e jne 1be1e <_Z11x_aio_flushP18enif_environment_tiPKm+0x76> { return enif_make_badarg(env); 1be10: 48 8b 45 d8 mov -0x28(%rbp),%rax 1be14: 48 89 c7 mov %rax,%rdi 1be17: e8 84 74 ff ff callq 132a0 1be1c: eb 3f jmp 1be5d <_Z11x_aio_flushP18enif_environment_tiPKm+0xb5> } int err = rados_aio_flush(io); 1be1e: 48 8b 45 f0 mov -0x10(%rbp),%rax 1be22: 48 89 c7 mov %rax,%rdi 1be25: e8 e6 6e ff ff callq 12d10 1be2a: 89 45 fc mov %eax,-0x4(%rbp) if (err < 0) 1be2d: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1be31: 79 17 jns 1be4a <_Z11x_aio_flushP18enif_environment_tiPKm+0xa2> { return make_error_tuple(env, -err); 1be33: 8b 45 fc mov -0x4(%rbp),%eax 1be36: 89 c2 mov %eax,%edx 1be38: f7 da neg %edx 1be3a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1be3e: 89 d6 mov %edx,%esi 1be40: 48 89 c7 mov %rax,%rdi 1be43: e8 e8 79 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1be48: eb 13 jmp 1be5d <_Z11x_aio_flushP18enif_environment_tiPKm+0xb5> } return enif_make_atom(env, "ok"); 1be4a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1be4e: 48 8d 35 0e 6b 00 00 lea 0x6b0e(%rip),%rsi # 22963 <_fini+0xaab> 1be55: 48 89 c7 mov %rax,%rdi 1be58: e8 63 69 ff ff callq 127c0 } 1be5d: c9 leaveq 1be5e: c3 retq 1be5f: 90 nop 000000000001be60 <_Z10x_getxattrP18enif_environment_tiPKm>: #include "rados_nif.h" ERL_NIF_TERM x_getxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1be60: 55 push %rbp 1be61: 48 89 e5 mov %rsp,%rbp 1be64: 53 push %rbx 1be65: 48 81 ec 78 18 00 00 sub $0x1878,%rsp 1be6c: 48 89 bd 98 e7 ff ff mov %rdi,-0x1868(%rbp) 1be73: 89 b5 94 e7 ff ff mov %esi,-0x186c(%rbp) 1be79: 48 89 95 88 e7 ff ff mov %rdx,-0x1878(%rbp) 1be80: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1be87: 00 00 1be89: 48 89 45 e8 mov %rax,-0x18(%rbp) 1be8d: 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) || 1be8f: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1be96: 48 8b 08 mov (%rax),%rcx 1be99: 48 8d 95 c8 e7 ff ff lea -0x1838(%rbp),%rdx 1bea0: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bea7: 48 89 ce mov %rcx,%rsi 1beaa: 48 89 c7 mov %rax,%rdi 1bead: e8 de 70 ff ff callq 12f90 1beb2: 85 c0 test %eax,%eax 1beb4: 74 66 je 1bf1c <_Z10x_getxattrP18enif_environment_tiPKm+0xbc> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1beb6: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1bebd: 48 83 c0 08 add $0x8,%rax 1bec1: 48 8b 30 mov (%rax),%rsi 1bec4: 48 8d 95 e0 f7 ff ff lea -0x820(%rbp),%rdx 1becb: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bed2: 41 b8 01 00 00 00 mov $0x1,%r8d 1bed8: b9 00 04 00 00 mov $0x400,%ecx 1bedd: 48 89 c7 mov %rax,%rdi 1bee0: e8 0b 7d ff ff callq 13bf0 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) || 1bee5: 85 c0 test %eax,%eax 1bee7: 74 33 je 1bf1c <_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)) 1bee9: 48 8b 85 88 e7 ff ff mov -0x1878(%rbp),%rax 1bef0: 48 83 c0 10 add $0x10,%rax 1bef4: 48 8b 30 mov (%rax),%rsi 1bef7: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1befe: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bf05: 41 b8 01 00 00 00 mov $0x1,%r8d 1bf0b: b9 00 04 00 00 mov $0x400,%ecx 1bf10: 48 89 c7 mov %rax,%rdi 1bf13: e8 d8 7c ff ff callq 13bf0 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) || 1bf18: 85 c0 test %eax,%eax 1bf1a: 75 07 jne 1bf23 <_Z10x_getxattrP18enif_environment_tiPKm+0xc3> 1bf1c: b8 01 00 00 00 mov $0x1,%eax 1bf21: eb 05 jmp 1bf28 <_Z10x_getxattrP18enif_environment_tiPKm+0xc8> 1bf23: b8 00 00 00 00 mov $0x0,%eax 1bf28: 84 c0 test %al,%al 1bf2a: 74 14 je 1bf40 <_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); 1bf2c: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bf33: 48 89 c7 mov %rax,%rdi 1bf36: e8 65 73 ff ff callq 132a0 1bf3b: e9 27 01 00 00 jmpq 1c067 <_Z10x_getxattrP18enif_environment_tiPKm+0x207> } rados_ioctx_t io = map_ioctx[id]; 1bf40: 48 8d 85 c8 e7 ff ff lea -0x1838(%rbp),%rax 1bf47: 48 89 c6 mov %rax,%rsi 1bf4a: 48 8b 05 2f c0 20 00 mov 0x20c02f(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1bf51: 48 89 c7 mov %rax,%rdi 1bf54: e8 17 74 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1bf59: 48 8b 00 mov (%rax),%rax 1bf5c: 48 89 85 d0 e7 ff ff mov %rax,-0x1830(%rbp) if (io == NULL) 1bf63: 48 83 bd d0 e7 ff ff cmpq $0x0,-0x1830(%rbp) 1bf6a: 00 1bf6b: 75 14 jne 1bf81 <_Z10x_getxattrP18enif_environment_tiPKm+0x121> { return enif_make_badarg(env); 1bf6d: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bf74: 48 89 c7 mov %rax,%rdi 1bf77: e8 24 73 ff ff callq 132a0 1bf7c: e9 e6 00 00 00 jmpq 1c067 <_Z10x_getxattrP18enif_environment_tiPKm+0x207> } char val[MAX_BUF_LEN]; int err = rados_getxattr(io, oid, xattr, val, MAX_BUF_LEN); 1bf81: 48 8d 8d e0 e7 ff ff lea -0x1820(%rbp),%rcx 1bf88: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1bf8f: 48 8d b5 e0 f7 ff ff lea -0x820(%rbp),%rsi 1bf96: 48 8b 85 d0 e7 ff ff mov -0x1830(%rbp),%rax 1bf9d: 41 b8 00 10 00 00 mov $0x1000,%r8d 1bfa3: 48 89 c7 mov %rax,%rdi 1bfa6: e8 15 66 ff ff callq 125c0 1bfab: 89 85 dc e7 ff ff mov %eax,-0x1824(%rbp) if (err < 0) 1bfb1: 83 bd dc e7 ff ff 00 cmpl $0x0,-0x1824(%rbp) 1bfb8: 79 20 jns 1bfda <_Z10x_getxattrP18enif_environment_tiPKm+0x17a> { return make_error_tuple(env, -err); 1bfba: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1bfc0: 89 c2 mov %eax,%edx 1bfc2: f7 da neg %edx 1bfc4: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1bfcb: 89 d6 mov %edx,%esi 1bfcd: 48 89 c7 mov %rax,%rdi 1bfd0: e8 5b 78 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1bfd5: e9 8d 00 00 00 jmpq 1c067 <_Z10x_getxattrP18enif_environment_tiPKm+0x207> } ErlNifBinary obin; enif_alloc_binary(err, &obin); // On success, returned value from rados_getxattr() is the length 1bfda: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1bfe0: 48 98 cltq 1bfe2: 48 8d 95 a0 e7 ff ff lea -0x1860(%rbp),%rdx 1bfe9: 48 89 d6 mov %rdx,%rsi 1bfec: 48 89 c7 mov %rax,%rdi 1bfef: e8 4c 79 ff ff callq 13940 memcpy(obin.data, val, err); 1bff4: 8b 85 dc e7 ff ff mov -0x1824(%rbp),%eax 1bffa: 48 63 d0 movslq %eax,%rdx 1bffd: 48 8b 85 a8 e7 ff ff mov -0x1858(%rbp),%rax 1c004: 48 8d 8d e0 e7 ff ff lea -0x1820(%rbp),%rcx 1c00b: 48 89 ce mov %rcx,%rsi 1c00e: 48 89 c7 mov %rax,%rdi 1c011: e8 3a 80 ff ff callq 14050 return enif_make_tuple2(env, 1c016: 48 8d 95 a0 e7 ff ff lea -0x1860(%rbp),%rdx 1c01d: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c024: 48 89 d6 mov %rdx,%rsi 1c027: 48 89 c7 mov %rax,%rdi 1c02a: e8 01 6e ff ff callq 12e30 1c02f: 48 89 c3 mov %rax,%rbx 1c032: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c039: 48 8d 35 26 69 00 00 lea 0x6926(%rip),%rsi # 22966 <_fini+0xaae> 1c040: 48 89 c7 mov %rax,%rdi 1c043: e8 78 67 ff ff callq 127c0 1c048: 48 89 c2 mov %rax,%rdx 1c04b: 48 8b 85 98 e7 ff ff mov -0x1868(%rbp),%rax 1c052: 48 89 d9 mov %rbx,%rcx 1c055: be 02 00 00 00 mov $0x2,%esi 1c05a: 48 89 c7 mov %rax,%rdi 1c05d: b8 00 00 00 00 mov $0x0,%eax 1c062: e8 99 7b ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_binary(env, &obin)); } 1c067: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1c06b: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c072: 00 00 1c074: 74 05 je 1c07b <_Z10x_getxattrP18enif_environment_tiPKm+0x21b> 1c076: e8 35 78 ff ff callq 138b0 <__stack_chk_fail@plt> 1c07b: 48 81 c4 78 18 00 00 add $0x1878,%rsp 1c082: 5b pop %rbx 1c083: 5d pop %rbp 1c084: c3 retq 000000000001c085 <_Z10x_setxattrP18enif_environment_tiPKm>: ERL_NIF_TERM x_setxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c085: 55 push %rbp 1c086: 48 89 e5 mov %rsp,%rbp 1c089: 48 81 ec 70 08 00 00 sub $0x870,%rsp 1c090: 48 89 bd a8 f7 ff ff mov %rdi,-0x858(%rbp) 1c097: 89 b5 a4 f7 ff ff mov %esi,-0x85c(%rbp) 1c09d: 48 89 95 98 f7 ff ff mov %rdx,-0x868(%rbp) 1c0a4: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c0ab: 00 00 1c0ad: 48 89 45 f8 mov %rax,-0x8(%rbp) 1c0b1: 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) || 1c0b3: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c0ba: 48 8b 08 mov (%rax),%rcx 1c0bd: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1c0c4: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c0cb: 48 89 ce mov %rcx,%rsi 1c0ce: 48 89 c7 mov %rax,%rdi 1c0d1: e8 ba 6e ff ff callq 12f90 1c0d6: 85 c0 test %eax,%eax 1c0d8: 0f 84 8a 00 00 00 je 1c168 <_Z10x_setxattrP18enif_environment_tiPKm+0xe3> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1c0de: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c0e5: 48 83 c0 08 add $0x8,%rax 1c0e9: 48 8b 30 mov (%rax),%rsi 1c0ec: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1c0f3: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c0fa: 41 b8 01 00 00 00 mov $0x1,%r8d 1c100: b9 00 04 00 00 mov $0x400,%ecx 1c105: 48 89 c7 mov %rax,%rdi 1c108: e8 e3 7a ff ff callq 13bf0 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) || 1c10d: 85 c0 test %eax,%eax 1c10f: 74 57 je 1c168 <_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) || 1c111: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c118: 48 83 c0 10 add $0x10,%rax 1c11c: 48 8b 30 mov (%rax),%rsi 1c11f: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1c126: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c12d: 41 b8 01 00 00 00 mov $0x1,%r8d 1c133: b9 00 04 00 00 mov $0x400,%ecx 1c138: 48 89 c7 mov %rax,%rdi 1c13b: e8 b0 7a ff ff callq 13bf0 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) || 1c140: 85 c0 test %eax,%eax 1c142: 74 24 je 1c168 <_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])) 1c144: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c14b: 48 83 c0 18 add $0x18,%rax 1c14f: 48 8b 10 mov (%rax),%rdx 1c152: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c159: 48 89 d6 mov %rdx,%rsi 1c15c: 48 89 c7 mov %rax,%rdi 1c15f: e8 5c 7a ff ff callq 13bc0 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) || 1c164: 85 c0 test %eax,%eax 1c166: 75 07 jne 1c16f <_Z10x_setxattrP18enif_environment_tiPKm+0xea> 1c168: b8 01 00 00 00 mov $0x1,%eax 1c16d: eb 05 jmp 1c174 <_Z10x_setxattrP18enif_environment_tiPKm+0xef> 1c16f: b8 00 00 00 00 mov $0x0,%eax 1c174: 84 c0 test %al,%al 1c176: 74 14 je 1c18c <_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); 1c178: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c17f: 48 89 c7 mov %rax,%rdi 1c182: e8 19 71 ff ff callq 132a0 1c187: e9 d8 00 00 00 jmpq 1c264 <_Z10x_setxattrP18enif_environment_tiPKm+0x1df> } rados_ioctx_t io = map_ioctx[id]; 1c18c: 48 8d 85 d8 f7 ff ff lea -0x828(%rbp),%rax 1c193: 48 89 c6 mov %rax,%rsi 1c196: 48 8b 05 e3 bd 20 00 mov 0x20bde3(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1c19d: 48 89 c7 mov %rax,%rdi 1c1a0: e8 cb 71 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c1a5: 48 8b 00 mov (%rax),%rax 1c1a8: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1c1af: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1c1b6: 00 1c1b7: 75 14 jne 1c1cd <_Z10x_setxattrP18enif_environment_tiPKm+0x148> { return enif_make_badarg(env); 1c1b9: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c1c0: 48 89 c7 mov %rax,%rdi 1c1c3: e8 d8 70 ff ff callq 132a0 1c1c8: e9 97 00 00 00 jmpq 1c264 <_Z10x_setxattrP18enif_environment_tiPKm+0x1df> } ErlNifBinary ibin; enif_inspect_binary(env, argv[3], &ibin); 1c1cd: 48 8b 85 98 f7 ff ff mov -0x868(%rbp),%rax 1c1d4: 48 83 c0 18 add $0x18,%rax 1c1d8: 48 8b 08 mov (%rax),%rcx 1c1db: 48 8d 95 b0 f7 ff ff lea -0x850(%rbp),%rdx 1c1e2: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c1e9: 48 89 ce mov %rcx,%rsi 1c1ec: 48 89 c7 mov %rax,%rdi 1c1ef: e8 ec 72 ff ff callq 134e0 int err = rados_setxattr(io, oid, xattr, (const char*)ibin.data, ibin.size); 1c1f4: 48 8b bd b0 f7 ff ff mov -0x850(%rbp),%rdi 1c1fb: 48 8b 8d b8 f7 ff ff mov -0x848(%rbp),%rcx 1c202: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1c209: 48 8d b5 f0 f7 ff ff lea -0x810(%rbp),%rsi 1c210: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1c217: 49 89 f8 mov %rdi,%r8 1c21a: 48 89 c7 mov %rax,%rdi 1c21d: e8 0e 78 ff ff callq 13a30 1c222: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1c228: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1c22f: 79 1d jns 1c24e <_Z10x_setxattrP18enif_environment_tiPKm+0x1c9> { return make_error_tuple(env, -err); 1c231: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1c237: 89 c2 mov %eax,%edx 1c239: f7 da neg %edx 1c23b: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c242: 89 d6 mov %edx,%esi 1c244: 48 89 c7 mov %rax,%rdi 1c247: e8 e4 75 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c24c: eb 16 jmp 1c264 <_Z10x_setxattrP18enif_environment_tiPKm+0x1df> } return enif_make_atom(env, "ok"); 1c24e: 48 8b 85 a8 f7 ff ff mov -0x858(%rbp),%rax 1c255: 48 8d 35 0a 67 00 00 lea 0x670a(%rip),%rsi # 22966 <_fini+0xaae> 1c25c: 48 89 c7 mov %rax,%rdi 1c25f: e8 5c 65 ff ff callq 127c0 } 1c264: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1c268: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c26f: 00 00 1c271: 74 05 je 1c278 <_Z10x_setxattrP18enif_environment_tiPKm+0x1f3> 1c273: e8 38 76 ff ff callq 138b0 <__stack_chk_fail@plt> 1c278: c9 leaveq 1c279: c3 retq 000000000001c27a <_Z9x_rmxattrP18enif_environment_tiPKm>: ERL_NIF_TERM x_rmxattr(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c27a: 55 push %rbp 1c27b: 48 89 e5 mov %rsp,%rbp 1c27e: 48 81 ec 50 08 00 00 sub $0x850,%rsp 1c285: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 1c28c: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 1c292: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 1c299: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c2a0: 00 00 1c2a2: 48 89 45 f8 mov %rax,-0x8(%rbp) 1c2a6: 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) || 1c2a8: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1c2af: 48 8b 08 mov (%rax),%rcx 1c2b2: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1c2b9: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c2c0: 48 89 ce mov %rcx,%rsi 1c2c3: 48 89 c7 mov %rax,%rdi 1c2c6: e8 c5 6c ff ff callq 12f90 1c2cb: 85 c0 test %eax,%eax 1c2cd: 74 66 je 1c335 <_Z9x_rmxattrP18enif_environment_tiPKm+0xbb> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1c2cf: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1c2d6: 48 83 c0 08 add $0x8,%rax 1c2da: 48 8b 30 mov (%rax),%rsi 1c2dd: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1c2e4: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c2eb: 41 b8 01 00 00 00 mov $0x1,%r8d 1c2f1: b9 00 04 00 00 mov $0x400,%ecx 1c2f6: 48 89 c7 mov %rax,%rdi 1c2f9: e8 f2 78 ff ff callq 13bf0 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) || 1c2fe: 85 c0 test %eax,%eax 1c300: 74 33 je 1c335 <_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)) 1c302: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1c309: 48 83 c0 10 add $0x10,%rax 1c30d: 48 8b 30 mov (%rax),%rsi 1c310: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1c317: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c31e: 41 b8 01 00 00 00 mov $0x1,%r8d 1c324: b9 00 04 00 00 mov $0x400,%ecx 1c329: 48 89 c7 mov %rax,%rdi 1c32c: e8 bf 78 ff ff callq 13bf0 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) || 1c331: 85 c0 test %eax,%eax 1c333: 75 07 jne 1c33c <_Z9x_rmxattrP18enif_environment_tiPKm+0xc2> 1c335: b8 01 00 00 00 mov $0x1,%eax 1c33a: eb 05 jmp 1c341 <_Z9x_rmxattrP18enif_environment_tiPKm+0xc7> 1c33c: b8 00 00 00 00 mov $0x0,%eax 1c341: 84 c0 test %al,%al 1c343: 74 14 je 1c359 <_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); 1c345: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c34c: 48 89 c7 mov %rax,%rdi 1c34f: e8 4c 6f ff ff callq 132a0 1c354: e9 a0 00 00 00 jmpq 1c3f9 <_Z9x_rmxattrP18enif_environment_tiPKm+0x17f> } rados_ioctx_t io = map_ioctx[id]; 1c359: 48 8d 85 d8 f7 ff ff lea -0x828(%rbp),%rax 1c360: 48 89 c6 mov %rax,%rsi 1c363: 48 8b 05 16 bc 20 00 mov 0x20bc16(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1c36a: 48 89 c7 mov %rax,%rdi 1c36d: e8 fe 6f ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c372: 48 8b 00 mov (%rax),%rax 1c375: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1c37c: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1c383: 00 1c384: 75 11 jne 1c397 <_Z9x_rmxattrP18enif_environment_tiPKm+0x11d> { return enif_make_badarg(env); 1c386: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c38d: 48 89 c7 mov %rax,%rdi 1c390: e8 0b 6f ff ff callq 132a0 1c395: eb 62 jmp 1c3f9 <_Z9x_rmxattrP18enif_environment_tiPKm+0x17f> } int err = rados_rmxattr(io, oid, xattr); 1c397: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1c39e: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 1c3a5: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1c3ac: 48 89 ce mov %rcx,%rsi 1c3af: 48 89 c7 mov %rax,%rdi 1c3b2: e8 79 7a ff ff callq 13e30 1c3b7: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1c3bd: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1c3c4: 79 1d jns 1c3e3 <_Z9x_rmxattrP18enif_environment_tiPKm+0x169> { return make_error_tuple(env, -err); 1c3c6: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1c3cc: 89 c2 mov %eax,%edx 1c3ce: f7 da neg %edx 1c3d0: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c3d7: 89 d6 mov %edx,%esi 1c3d9: 48 89 c7 mov %rax,%rdi 1c3dc: e8 4f 74 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c3e1: eb 16 jmp 1c3f9 <_Z9x_rmxattrP18enif_environment_tiPKm+0x17f> } return enif_make_atom(env, "ok"); 1c3e3: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1c3ea: 48 8d 35 75 65 00 00 lea 0x6575(%rip),%rsi # 22966 <_fini+0xaae> 1c3f1: 48 89 c7 mov %rax,%rdi 1c3f4: e8 c7 63 ff ff callq 127c0 } 1c3f9: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1c3fd: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c404: 00 00 1c406: 74 05 je 1c40d <_Z9x_rmxattrP18enif_environment_tiPKm+0x193> 1c408: e8 a3 74 ff ff callq 138b0 <__stack_chk_fail@plt> 1c40d: c9 leaveq 1c40e: c3 retq 000000000001c40f <_Z11x_getxattrsP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c40f: 55 push %rbp 1c410: 48 89 e5 mov %rsp,%rbp 1c413: 53 push %rbx 1c414: 48 81 ec 68 04 00 00 sub $0x468,%rsp 1c41b: 48 89 bd a8 fb ff ff mov %rdi,-0x458(%rbp) 1c422: 89 b5 a4 fb ff ff mov %esi,-0x45c(%rbp) 1c428: 48 89 95 98 fb ff ff mov %rdx,-0x468(%rbp) 1c42f: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c436: 00 00 1c438: 48 89 45 e8 mov %rax,-0x18(%rbp) 1c43c: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id) || 1c43e: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1c445: 48 8b 08 mov (%rax),%rcx 1c448: 48 8d 95 b8 fb ff ff lea -0x448(%rbp),%rdx 1c44f: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c456: 48 89 ce mov %rcx,%rsi 1c459: 48 89 c7 mov %rax,%rdi 1c45c: e8 2f 6b ff ff callq 12f90 1c461: 85 c0 test %eax,%eax 1c463: 74 33 je 1c498 <_Z11x_getxattrsP18enif_environment_tiPKm+0x89> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1c465: 48 8b 85 98 fb ff ff mov -0x468(%rbp),%rax 1c46c: 48 83 c0 08 add $0x8,%rax 1c470: 48 8b 30 mov (%rax),%rsi 1c473: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1c47a: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c481: 41 b8 01 00 00 00 mov $0x1,%r8d 1c487: b9 00 04 00 00 mov $0x400,%ecx 1c48c: 48 89 c7 mov %rax,%rdi 1c48f: e8 5c 77 ff ff callq 13bf0 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) || 1c494: 85 c0 test %eax,%eax 1c496: 75 07 jne 1c49f <_Z11x_getxattrsP18enif_environment_tiPKm+0x90> 1c498: b8 01 00 00 00 mov $0x1,%eax 1c49d: eb 05 jmp 1c4a4 <_Z11x_getxattrsP18enif_environment_tiPKm+0x95> 1c49f: b8 00 00 00 00 mov $0x0,%eax 1c4a4: 84 c0 test %al,%al 1c4a6: 74 14 je 1c4bc <_Z11x_getxattrsP18enif_environment_tiPKm+0xad> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1)) { return enif_make_badarg(env); 1c4a8: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c4af: 48 89 c7 mov %rax,%rdi 1c4b2: e8 e9 6d ff ff callq 132a0 1c4b7: e9 10 01 00 00 jmpq 1c5cc <_Z11x_getxattrsP18enif_environment_tiPKm+0x1bd> } rados_ioctx_t io = map_ioctx[id]; 1c4bc: 48 8d 85 b8 fb ff ff lea -0x448(%rbp),%rax 1c4c3: 48 89 c6 mov %rax,%rsi 1c4c6: 48 8b 05 b3 ba 20 00 mov 0x20bab3(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1c4cd: 48 89 c7 mov %rax,%rdi 1c4d0: e8 9b 6e ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c4d5: 48 8b 00 mov (%rax),%rax 1c4d8: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1c4df: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1c4e6: 00 1c4e7: 75 14 jne 1c4fd <_Z11x_getxattrsP18enif_environment_tiPKm+0xee> { return enif_make_badarg(env); 1c4e9: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c4f0: 48 89 c7 mov %rax,%rdi 1c4f3: e8 a8 6d ff ff callq 132a0 1c4f8: e9 cf 00 00 00 jmpq 1c5cc <_Z11x_getxattrsP18enif_environment_tiPKm+0x1bd> } rados_xattrs_iter_t iter; int err = rados_getxattrs(io, oid, &iter); 1c4fd: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1c504: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1c50b: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1c512: 48 89 ce mov %rcx,%rsi 1c515: 48 89 c7 mov %rax,%rdi 1c518: e8 b3 79 ff ff callq 13ed0 1c51d: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1c523: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1c52a: 79 20 jns 1c54c <_Z11x_getxattrsP18enif_environment_tiPKm+0x13d> { return make_error_tuple(env, -err); 1c52c: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1c532: 89 c2 mov %eax,%edx 1c534: f7 da neg %edx 1c536: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c53d: 89 d6 mov %edx,%esi 1c53f: 48 89 c7 mov %rax,%rdi 1c542: e8 e9 72 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c547: e9 80 00 00 00 jmpq 1c5cc <_Z11x_getxattrsP18enif_environment_tiPKm+0x1bd> } uint64_t iter_id = new_id(); 1c54c: e8 2f 72 ff ff callq 13780 <_Z6new_idv@plt> 1c551: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) map_xattr_iter[iter_id] = iter; 1c558: 48 8d 85 c8 fb ff ff lea -0x438(%rbp),%rax 1c55f: 48 89 c6 mov %rax,%rsi 1c562: 48 8b 05 1f ba 20 00 mov 0x20ba1f(%rip),%rax # 227f88 <_DYNAMIC+0x238> 1c569: 48 89 c7 mov %rax,%rdi 1c56c: e8 ff 6d ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c571: 48 8b 95 c0 fb ff ff mov -0x440(%rbp),%rdx 1c578: 48 89 10 mov %rdx,(%rax) return enif_make_tuple2(env, 1c57b: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1c582: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c589: 48 89 d6 mov %rdx,%rsi 1c58c: 48 89 c7 mov %rax,%rdi 1c58f: e8 8c 6f ff ff callq 13520 1c594: 48 89 c3 mov %rax,%rbx 1c597: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c59e: 48 8d 35 c1 63 00 00 lea 0x63c1(%rip),%rsi # 22966 <_fini+0xaae> 1c5a5: 48 89 c7 mov %rax,%rdi 1c5a8: e8 13 62 ff ff callq 127c0 1c5ad: 48 89 c2 mov %rax,%rdx 1c5b0: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1c5b7: 48 89 d9 mov %rbx,%rcx 1c5ba: be 02 00 00 00 mov $0x2,%esi 1c5bf: 48 89 c7 mov %rax,%rdi 1c5c2: b8 00 00 00 00 mov $0x0,%eax 1c5c7: e8 34 76 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, iter_id)); } 1c5cc: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1c5d0: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c5d7: 00 00 1c5d9: 74 05 je 1c5e0 <_Z11x_getxattrsP18enif_environment_tiPKm+0x1d1> 1c5db: e8 d0 72 ff ff callq 138b0 <__stack_chk_fail@plt> 1c5e0: 48 81 c4 68 04 00 00 add $0x468,%rsp 1c5e7: 5b pop %rbx 1c5e8: 5d pop %rbp 1c5e9: c3 retq 000000000001c5ea <_Z16x_getxattrs_nextP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs_next(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c5ea: 55 push %rbp 1c5eb: 48 89 e5 mov %rsp,%rbp 1c5ee: 53 push %rbx 1c5ef: 48 81 ec a8 04 00 00 sub $0x4a8,%rsp 1c5f6: 48 89 bd 68 fb ff ff mov %rdi,-0x498(%rbp) 1c5fd: 89 b5 64 fb ff ff mov %esi,-0x49c(%rbp) 1c603: 48 89 95 58 fb ff ff mov %rdx,-0x4a8(%rbp) 1c60a: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c611: 00 00 1c613: 48 89 45 e8 mov %rax,-0x18(%rbp) 1c617: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id)) 1c619: 48 8b 85 58 fb ff ff mov -0x4a8(%rbp),%rax 1c620: 48 8b 08 mov (%rax),%rcx 1c623: 48 8d 95 b0 fb ff ff lea -0x450(%rbp),%rdx 1c62a: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c631: 48 89 ce mov %rcx,%rsi 1c634: 48 89 c7 mov %rax,%rdi 1c637: e8 54 69 ff ff callq 12f90 1c63c: 85 c0 test %eax,%eax 1c63e: 0f 94 c0 sete %al 1c641: 84 c0 test %al,%al 1c643: 74 14 je 1c659 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x6f> { return enif_make_badarg(env); 1c645: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c64c: 48 89 c7 mov %rax,%rdi 1c64f: e8 4c 6c ff ff callq 132a0 1c654: e9 5b 02 00 00 jmpq 1c8b4 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2ca> } rados_xattrs_iter_t iter = map_xattr_iter[id]; 1c659: 48 8d 85 b0 fb ff ff lea -0x450(%rbp),%rax 1c660: 48 89 c6 mov %rax,%rsi 1c663: 48 8b 05 1e b9 20 00 mov 0x20b91e(%rip),%rax # 227f88 <_DYNAMIC+0x238> 1c66a: 48 89 c7 mov %rax,%rdi 1c66d: e8 fe 6c ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c672: 48 8b 00 mov (%rax),%rax 1c675: 48 89 85 c0 fb ff ff mov %rax,-0x440(%rbp) if (iter == NULL) 1c67c: 48 83 bd c0 fb ff ff cmpq $0x0,-0x440(%rbp) 1c683: 00 1c684: 75 14 jne 1c69a <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0xb0> { return enif_make_badarg(env); 1c686: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c68d: 48 89 c7 mov %rax,%rdi 1c690: e8 0b 6c ff ff callq 132a0 1c695: e9 1a 02 00 00 jmpq 1c8b4 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2ca> } const char * name[1]; const char * val[1]; size_t len; int err = rados_getxattrs_next(iter, name, val, &len); 1c69a: 48 8d 8d b8 fb ff ff lea -0x448(%rbp),%rcx 1c6a1: 48 8d 95 a0 fb ff ff lea -0x460(%rbp),%rdx 1c6a8: 48 8d b5 90 fb ff ff lea -0x470(%rbp),%rsi 1c6af: 48 8b 85 c0 fb ff ff mov -0x440(%rbp),%rax 1c6b6: 48 89 c7 mov %rax,%rdi 1c6b9: e8 92 73 ff ff callq 13a50 1c6be: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if ((err < 0) && (err != -ENOENT)) 1c6c4: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1c6cb: 79 29 jns 1c6f6 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x10c> 1c6cd: 83 bd dc fb ff ff fe cmpl $0xfffffffe,-0x424(%rbp) 1c6d4: 74 20 je 1c6f6 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x10c> { return make_error_tuple(env, -err); 1c6d6: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1c6dc: 89 c2 mov %eax,%edx 1c6de: f7 da neg %edx 1c6e0: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c6e7: 89 d6 mov %edx,%esi 1c6e9: 48 89 c7 mov %rax,%rdi 1c6ec: e8 3f 71 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1c6f1: e9 be 01 00 00 jmpq 1c8b4 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2ca> } if (len > 0) 1c6f6: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1c6fd: 48 85 c0 test %rax,%rax 1c700: 0f 84 98 01 00 00 je 1c89e <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2b4> { ERL_NIF_TERM term_list = enif_make_list(env, 0); 1c706: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c70d: be 00 00 00 00 mov $0x0,%esi 1c712: 48 89 c7 mov %rax,%rdi 1c715: b8 00 00 00 00 mov $0x0,%eax 1c71a: e8 e1 6d ff ff callq 13500 1c71f: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) ErlNifBinary obin; enif_alloc_binary(len, &obin); 1c726: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1c72d: 48 8d 95 70 fb ff ff lea -0x490(%rbp),%rdx 1c734: 48 89 d6 mov %rdx,%rsi 1c737: 48 89 c7 mov %rax,%rdi 1c73a: e8 01 72 ff ff callq 13940 memcpy(obin.data, val[0], len); 1c73f: 48 8b 95 b8 fb ff ff mov -0x448(%rbp),%rdx 1c746: 48 8b 8d a0 fb ff ff mov -0x460(%rbp),%rcx 1c74d: 48 8b 85 78 fb ff ff mov -0x488(%rbp),%rax 1c754: 48 89 ce mov %rcx,%rsi 1c757: 48 89 c7 mov %rax,%rdi 1c75a: e8 f1 78 ff ff callq 14050 term_list = enif_make_list_cell(env, enif_make_tuple2(env, enif_make_atom(env, "value"), enif_make_binary(env, &obin)), term_list); 1c75f: 48 8d 95 70 fb ff ff lea -0x490(%rbp),%rdx 1c766: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c76d: 48 89 d6 mov %rdx,%rsi 1c770: 48 89 c7 mov %rax,%rdi 1c773: e8 b8 66 ff ff callq 12e30 1c778: 48 89 c3 mov %rax,%rbx 1c77b: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c782: 48 8d 35 e0 61 00 00 lea 0x61e0(%rip),%rsi # 22969 <_fini+0xab1> 1c789: 48 89 c7 mov %rax,%rdi 1c78c: e8 2f 60 ff ff callq 127c0 1c791: 48 89 c2 mov %rax,%rdx 1c794: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c79b: 48 89 d9 mov %rbx,%rcx 1c79e: be 02 00 00 00 mov $0x2,%esi 1c7a3: 48 89 c7 mov %rax,%rdi 1c7a6: b8 00 00 00 00 mov $0x0,%eax 1c7ab: e8 50 74 ff ff callq 13c00 1c7b0: 48 89 c1 mov %rax,%rcx 1c7b3: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1c7ba: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c7c1: 48 89 ce mov %rcx,%rsi 1c7c4: 48 89 c7 mov %rax,%rdi 1c7c7: e8 a4 67 ff ff callq 12f70 1c7cc: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) enif_release_binary(&obin); 1c7d3: 48 8d 85 70 fb ff ff lea -0x490(%rbp),%rax 1c7da: 48 89 c7 mov %rax,%rdi 1c7dd: e8 ae 62 ff ff callq 12a90 ERL_NIF_TERM t = enif_make_string(env, name[0], ERL_NIF_LATIN1); 1c7e2: 48 8b 8d 90 fb ff ff mov -0x470(%rbp),%rcx 1c7e9: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c7f0: ba 01 00 00 00 mov $0x1,%edx 1c7f5: 48 89 ce mov %rcx,%rsi 1c7f8: 48 89 c7 mov %rax,%rdi 1c7fb: e8 30 6a ff ff callq 13230 1c800: 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); 1c807: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c80e: 48 8d 35 5a 61 00 00 lea 0x615a(%rip),%rsi # 2296f <_fini+0xab7> 1c815: 48 89 c7 mov %rax,%rdi 1c818: e8 a3 5f ff ff callq 127c0 1c81d: 48 89 c2 mov %rax,%rdx 1c820: 48 8b 8d d0 fb ff ff mov -0x430(%rbp),%rcx 1c827: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c82e: be 02 00 00 00 mov $0x2,%esi 1c833: 48 89 c7 mov %rax,%rdi 1c836: b8 00 00 00 00 mov $0x0,%eax 1c83b: e8 c0 73 ff ff callq 13c00 1c840: 48 89 c1 mov %rax,%rcx 1c843: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1c84a: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c851: 48 89 ce mov %rcx,%rsi 1c854: 48 89 c7 mov %rax,%rdi 1c857: e8 14 67 ff ff callq 12f70 1c85c: 48 89 85 c8 fb ff ff mov %rax,-0x438(%rbp) return enif_make_tuple2(env, 1c863: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c86a: 48 8d 35 f5 60 00 00 lea 0x60f5(%rip),%rsi # 22966 <_fini+0xaae> 1c871: 48 89 c7 mov %rax,%rdi 1c874: e8 47 5f ff ff callq 127c0 1c879: 48 89 c2 mov %rax,%rdx 1c87c: 48 8b 8d c8 fb ff ff mov -0x438(%rbp),%rcx 1c883: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c88a: be 02 00 00 00 mov $0x2,%esi 1c88f: 48 89 c7 mov %rax,%rdi 1c892: b8 00 00 00 00 mov $0x0,%eax 1c897: e8 64 73 ff ff callq 13c00 1c89c: eb 16 jmp 1c8b4 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2ca> enif_make_atom(env, "ok"), term_list); } else { return enif_make_atom(env, "end"); 1c89e: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax 1c8a5: 48 8d 35 c9 60 00 00 lea 0x60c9(%rip),%rsi # 22975 <_fini+0xabd> 1c8ac: 48 89 c7 mov %rax,%rdi 1c8af: e8 0c 5f ff ff callq 127c0 } } 1c8b4: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1c8b8: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c8bf: 00 00 1c8c1: 74 05 je 1c8c8 <_Z16x_getxattrs_nextP18enif_environment_tiPKm+0x2de> 1c8c3: e8 e8 6f ff ff callq 138b0 <__stack_chk_fail@plt> 1c8c8: 48 81 c4 a8 04 00 00 add $0x4a8,%rsp 1c8cf: 5b pop %rbx 1c8d0: 5d pop %rbp 1c8d1: c3 retq 000000000001c8d2 <_Z15x_getxattrs_endP18enif_environment_tiPKm>: ERL_NIF_TERM x_getxattrs_end(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1c8d2: 55 push %rbp 1c8d3: 48 89 e5 mov %rsp,%rbp 1c8d6: 48 81 ec 40 04 00 00 sub $0x440,%rsp 1c8dd: 48 89 bd d8 fb ff ff mov %rdi,-0x428(%rbp) 1c8e4: 89 b5 d4 fb ff ff mov %esi,-0x42c(%rbp) 1c8ea: 48 89 95 c8 fb ff ff mov %rdx,-0x438(%rbp) 1c8f1: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c8f8: 00 00 1c8fa: 48 89 45 f8 mov %rax,-0x8(%rbp) 1c8fe: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; if (!enif_get_uint64(env, argv[0], &id)) 1c900: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1c907: 48 8b 08 mov (%rax),%rcx 1c90a: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1c911: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1c918: 48 89 ce mov %rcx,%rsi 1c91b: 48 89 c7 mov %rax,%rdi 1c91e: e8 6d 66 ff ff callq 12f90 1c923: 85 c0 test %eax,%eax 1c925: 0f 94 c0 sete %al 1c928: 84 c0 test %al,%al 1c92a: 74 11 je 1c93d <_Z15x_getxattrs_endP18enif_environment_tiPKm+0x6b> { return enif_make_badarg(env); 1c92c: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1c933: 48 89 c7 mov %rax,%rdi 1c936: e8 65 69 ff ff callq 132a0 1c93b: eb 7c jmp 1c9b9 <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xe7> } rados_xattrs_iter_t iter = map_xattr_iter[id]; 1c93d: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1c944: 48 89 c6 mov %rax,%rsi 1c947: 48 8b 05 3a b6 20 00 mov 0x20b63a(%rip),%rax # 227f88 <_DYNAMIC+0x238> 1c94e: 48 89 c7 mov %rax,%rdi 1c951: e8 1a 6a ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1c956: 48 8b 00 mov (%rax),%rax 1c959: 48 89 85 e8 fb ff ff mov %rax,-0x418(%rbp) if (iter == NULL) 1c960: 48 83 bd e8 fb ff ff cmpq $0x0,-0x418(%rbp) 1c967: 00 1c968: 75 11 jne 1c97b <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xa9> { return enif_make_badarg(env); 1c96a: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1c971: 48 89 c7 mov %rax,%rdi 1c974: e8 27 69 ff ff callq 132a0 1c979: eb 3e jmp 1c9b9 <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xe7> } rados_getxattrs_end(iter); 1c97b: 48 8b 85 e8 fb ff ff mov -0x418(%rbp),%rax 1c982: 48 89 c7 mov %rax,%rdi 1c985: e8 36 67 ff ff callq 130c0 map_xattr_iter.erase(id); 1c98a: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1c991: 48 89 c6 mov %rax,%rsi 1c994: 48 8b 05 ed b5 20 00 mov 0x20b5ed(%rip),%rax # 227f88 <_DYNAMIC+0x238> 1c99b: 48 89 c7 mov %rax,%rdi 1c99e: e8 9d 6c ff ff callq 13640 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEE5eraseERS4_@plt> return enif_make_atom(env, "ok"); 1c9a3: 48 8b 85 d8 fb ff ff mov -0x428(%rbp),%rax 1c9aa: 48 8d 35 b5 5f 00 00 lea 0x5fb5(%rip),%rsi # 22966 <_fini+0xaae> 1c9b1: 48 89 c7 mov %rax,%rdi 1c9b4: e8 07 5e ff ff callq 127c0 } 1c9b9: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1c9bd: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1c9c4: 00 00 1c9c6: 74 05 je 1c9cd <_Z15x_getxattrs_endP18enif_environment_tiPKm+0xfb> 1c9c8: e8 e3 6e ff ff callq 138b0 <__stack_chk_fail@plt> 1c9cd: c9 leaveq 1c9ce: c3 retq 1c9cf: 90 nop 000000000001c9d0 <_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[]) { 1c9d0: 55 push %rbp 1c9d1: 48 89 e5 mov %rsp,%rbp 1c9d4: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1c9db: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1c9e2: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1c9e8: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1c9ef: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1c9f6: 00 00 1c9f8: 48 89 45 f8 mov %rax,-0x8(%rbp) 1c9fc: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1c9fe: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1ca05: ba 00 04 00 00 mov $0x400,%edx 1ca0a: be 00 00 00 00 mov $0x0,%esi 1ca0f: 48 89 c7 mov %rax,%rdi 1ca12: e8 39 5a ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1ca17: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ca1e: 48 8b 08 mov (%rax),%rcx 1ca21: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 1ca28: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1ca2f: 48 89 ce mov %rcx,%rsi 1ca32: 48 89 c7 mov %rax,%rdi 1ca35: e8 56 65 ff ff callq 12f90 1ca3a: 85 c0 test %eax,%eax 1ca3c: 74 33 je 1ca71 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xa1> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1ca3e: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1ca45: 48 83 c0 08 add $0x8,%rax 1ca49: 48 8b 30 mov (%rax),%rsi 1ca4c: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1ca53: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1ca5a: 41 b8 01 00 00 00 mov $0x1,%r8d 1ca60: b9 00 04 00 00 mov $0x400,%ecx 1ca65: 48 89 c7 mov %rax,%rdi 1ca68: e8 83 71 ff ff callq 13bf0 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) || 1ca6d: 85 c0 test %eax,%eax 1ca6f: 75 07 jne 1ca78 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xa8> 1ca71: b8 01 00 00 00 mov $0x1,%eax 1ca76: eb 05 jmp 1ca7d <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0xad> 1ca78: b8 00 00 00 00 mov $0x0,%eax 1ca7d: 84 c0 test %al,%al 1ca7f: 74 14 je 1ca95 <_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); 1ca81: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1ca88: 48 89 c7 mov %rax,%rdi 1ca8b: e8 10 68 ff ff callq 132a0 1ca90: e9 99 00 00 00 jmpq 1cb2e <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x15e> } rados_ioctx_t io = map_ioctx[id]; 1ca95: 48 8d 85 d8 fb ff ff lea -0x428(%rbp),%rax 1ca9c: 48 89 c6 mov %rax,%rsi 1ca9f: 48 8b 05 da b4 20 00 mov 0x20b4da(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1caa6: 48 89 c7 mov %rax,%rdi 1caa9: e8 c2 68 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1caae: 48 8b 00 mov (%rax),%rax 1cab1: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1cab8: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1cabf: 00 1cac0: 75 11 jne 1cad3 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x103> { return enif_make_badarg(env); 1cac2: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cac9: 48 89 c7 mov %rax,%rdi 1cacc: e8 cf 67 ff ff callq 132a0 1cad1: eb 5b jmp 1cb2e <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x15e> } int err = rados_ioctx_snap_create(io, snap); 1cad3: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cada: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1cae1: 48 89 d6 mov %rdx,%rsi 1cae4: 48 89 c7 mov %rax,%rdi 1cae7: e8 84 62 ff ff callq 12d70 1caec: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1caf2: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1caf9: 79 1d jns 1cb18 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x148> { return make_error_tuple(env, -err); 1cafb: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1cb01: 89 c2 mov %eax,%edx 1cb03: f7 da neg %edx 1cb05: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cb0c: 89 d6 mov %edx,%esi 1cb0e: 48 89 c7 mov %rax,%rdi 1cb11: e8 1a 6d ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1cb16: eb 16 jmp 1cb2e <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x15e> } return enif_make_atom(env, "ok"); 1cb18: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cb1f: 48 8d 35 53 5e 00 00 lea 0x5e53(%rip),%rsi # 22979 <_fini+0xac1> 1cb26: 48 89 c7 mov %rax,%rdi 1cb29: e8 92 5c ff ff callq 127c0 } 1cb2e: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1cb32: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1cb39: 00 00 1cb3b: 74 05 je 1cb42 <_Z19x_ioctx_snap_createP18enif_environment_tiPKm+0x172> 1cb3d: e8 6e 6d ff ff callq 138b0 <__stack_chk_fail@plt> 1cb42: c9 leaveq 1cb43: c3 retq 000000000001cb44 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_remove(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1cb44: 55 push %rbp 1cb45: 48 89 e5 mov %rsp,%rbp 1cb48: 48 81 ec 50 04 00 00 sub $0x450,%rsp 1cb4f: 48 89 bd c8 fb ff ff mov %rdi,-0x438(%rbp) 1cb56: 89 b5 c4 fb ff ff mov %esi,-0x43c(%rbp) 1cb5c: 48 89 95 b8 fb ff ff mov %rdx,-0x448(%rbp) 1cb63: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1cb6a: 00 00 1cb6c: 48 89 45 f8 mov %rax,-0x8(%rbp) 1cb70: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1cb72: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1cb79: ba 00 04 00 00 mov $0x400,%edx 1cb7e: be 00 00 00 00 mov $0x0,%esi 1cb83: 48 89 c7 mov %rax,%rdi 1cb86: e8 c5 58 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1cb8b: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1cb92: 48 8b 08 mov (%rax),%rcx 1cb95: 48 8d 95 d8 fb ff ff lea -0x428(%rbp),%rdx 1cb9c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cba3: 48 89 ce mov %rcx,%rsi 1cba6: 48 89 c7 mov %rax,%rdi 1cba9: e8 e2 63 ff ff callq 12f90 1cbae: 85 c0 test %eax,%eax 1cbb0: 74 33 je 1cbe5 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xa1> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1cbb2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1cbb9: 48 83 c0 08 add $0x8,%rax 1cbbd: 48 8b 30 mov (%rax),%rsi 1cbc0: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cbc7: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cbce: 41 b8 01 00 00 00 mov $0x1,%r8d 1cbd4: b9 00 04 00 00 mov $0x400,%ecx 1cbd9: 48 89 c7 mov %rax,%rdi 1cbdc: e8 0f 70 ff ff callq 13bf0 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) || 1cbe1: 85 c0 test %eax,%eax 1cbe3: 75 07 jne 1cbec <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xa8> 1cbe5: b8 01 00 00 00 mov $0x1,%eax 1cbea: eb 05 jmp 1cbf1 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0xad> 1cbec: b8 00 00 00 00 mov $0x0,%eax 1cbf1: 84 c0 test %al,%al 1cbf3: 74 14 je 1cc09 <_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); 1cbf5: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cbfc: 48 89 c7 mov %rax,%rdi 1cbff: e8 9c 66 ff ff callq 132a0 1cc04: e9 99 00 00 00 jmpq 1cca2 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x15e> } rados_ioctx_t io = map_ioctx[id]; 1cc09: 48 8d 85 d8 fb ff ff lea -0x428(%rbp),%rax 1cc10: 48 89 c6 mov %rax,%rsi 1cc13: 48 8b 05 66 b3 20 00 mov 0x20b366(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1cc1a: 48 89 c7 mov %rax,%rdi 1cc1d: e8 4e 67 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1cc22: 48 8b 00 mov (%rax),%rax 1cc25: 48 89 85 e0 fb ff ff mov %rax,-0x420(%rbp) if (io == NULL) 1cc2c: 48 83 bd e0 fb ff ff cmpq $0x0,-0x420(%rbp) 1cc33: 00 1cc34: 75 11 jne 1cc47 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x103> { return enif_make_badarg(env); 1cc36: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cc3d: 48 89 c7 mov %rax,%rdi 1cc40: e8 5b 66 ff ff callq 132a0 1cc45: eb 5b jmp 1cca2 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x15e> } int err = rados_ioctx_snap_remove(io, snap); 1cc47: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cc4e: 48 8b 85 e0 fb ff ff mov -0x420(%rbp),%rax 1cc55: 48 89 d6 mov %rdx,%rsi 1cc58: 48 89 c7 mov %rax,%rdi 1cc5b: e8 30 69 ff ff callq 13590 1cc60: 89 85 ec fb ff ff mov %eax,-0x414(%rbp) if (err < 0) 1cc66: 83 bd ec fb ff ff 00 cmpl $0x0,-0x414(%rbp) 1cc6d: 79 1d jns 1cc8c <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x148> { return make_error_tuple(env, -err); 1cc6f: 8b 85 ec fb ff ff mov -0x414(%rbp),%eax 1cc75: 89 c2 mov %eax,%edx 1cc77: f7 da neg %edx 1cc79: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cc80: 89 d6 mov %edx,%esi 1cc82: 48 89 c7 mov %rax,%rdi 1cc85: e8 a6 6b ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1cc8a: eb 16 jmp 1cca2 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x15e> } return enif_make_atom(env, "ok"); 1cc8c: 48 8b 85 c8 fb ff ff mov -0x438(%rbp),%rax 1cc93: 48 8d 35 df 5c 00 00 lea 0x5cdf(%rip),%rsi # 22979 <_fini+0xac1> 1cc9a: 48 89 c7 mov %rax,%rdi 1cc9d: e8 1e 5b ff ff callq 127c0 } 1cca2: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1cca6: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ccad: 00 00 1ccaf: 74 05 je 1ccb6 <_Z19x_ioctx_snap_removeP18enif_environment_tiPKm+0x172> 1ccb1: e8 fa 6b ff ff callq 138b0 <__stack_chk_fail@plt> 1ccb6: c9 leaveq 1ccb7: c3 retq 000000000001ccb8 <_Z10x_rollbackP18enif_environment_tiPKm>: ERL_NIF_TERM x_rollback(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1ccb8: 55 push %rbp 1ccb9: 48 89 e5 mov %rsp,%rbp 1ccbc: 48 81 ec 50 08 00 00 sub $0x850,%rsp 1ccc3: 48 89 bd c8 f7 ff ff mov %rdi,-0x838(%rbp) 1ccca: 89 b5 c4 f7 ff ff mov %esi,-0x83c(%rbp) 1ccd0: 48 89 95 b8 f7 ff ff mov %rdx,-0x848(%rbp) 1ccd7: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1ccde: 00 00 1cce0: 48 89 45 f8 mov %rax,-0x8(%rbp) 1cce4: 31 c0 xor %eax,%eax uint64_t id; char oid[MAX_NAME_LEN]; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1cce6: 48 8d 85 f0 fb ff ff lea -0x410(%rbp),%rax 1cced: ba 00 04 00 00 mov $0x400,%edx 1ccf2: be 00 00 00 00 mov $0x0,%esi 1ccf7: 48 89 c7 mov %rax,%rdi 1ccfa: e8 51 57 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1ccff: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cd06: 48 8b 08 mov (%rax),%rcx 1cd09: 48 8d 95 d8 f7 ff ff lea -0x828(%rbp),%rdx 1cd10: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cd17: 48 89 ce mov %rcx,%rsi 1cd1a: 48 89 c7 mov %rax,%rdi 1cd1d: e8 6e 62 ff ff callq 12f90 1cd22: 85 c0 test %eax,%eax 1cd24: 74 66 je 1cd8c <_Z10x_rollbackP18enif_environment_tiPKm+0xd4> !enif_get_string(env, argv[1], oid, MAX_NAME_LEN, ERL_NIF_LATIN1) || 1cd26: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cd2d: 48 83 c0 08 add $0x8,%rax 1cd31: 48 8b 30 mov (%rax),%rsi 1cd34: 48 8d 95 f0 f7 ff ff lea -0x810(%rbp),%rdx 1cd3b: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cd42: 41 b8 01 00 00 00 mov $0x1,%r8d 1cd48: b9 00 04 00 00 mov $0x400,%ecx 1cd4d: 48 89 c7 mov %rax,%rdi 1cd50: e8 9b 6e ff ff callq 13bf0 { 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) || 1cd55: 85 c0 test %eax,%eax 1cd57: 74 33 je 1cd8c <_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)) 1cd59: 48 8b 85 b8 f7 ff ff mov -0x848(%rbp),%rax 1cd60: 48 83 c0 10 add $0x10,%rax 1cd64: 48 8b 30 mov (%rax),%rsi 1cd67: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cd6e: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cd75: 41 b8 01 00 00 00 mov $0x1,%r8d 1cd7b: b9 00 04 00 00 mov $0x400,%ecx 1cd80: 48 89 c7 mov %rax,%rdi 1cd83: e8 68 6e ff ff callq 13bf0 { 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) || 1cd88: 85 c0 test %eax,%eax 1cd8a: 75 07 jne 1cd93 <_Z10x_rollbackP18enif_environment_tiPKm+0xdb> 1cd8c: b8 01 00 00 00 mov $0x1,%eax 1cd91: eb 05 jmp 1cd98 <_Z10x_rollbackP18enif_environment_tiPKm+0xe0> 1cd93: b8 00 00 00 00 mov $0x0,%eax 1cd98: 84 c0 test %al,%al 1cd9a: 74 14 je 1cdb0 <_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); 1cd9c: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cda3: 48 89 c7 mov %rax,%rdi 1cda6: e8 f5 64 ff ff callq 132a0 1cdab: e9 a0 00 00 00 jmpq 1ce50 <_Z10x_rollbackP18enif_environment_tiPKm+0x198> } rados_ioctx_t io = map_ioctx[id]; 1cdb0: 48 8d 85 d8 f7 ff ff lea -0x828(%rbp),%rax 1cdb7: 48 89 c6 mov %rax,%rsi 1cdba: 48 8b 05 bf b1 20 00 mov 0x20b1bf(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1cdc1: 48 89 c7 mov %rax,%rdi 1cdc4: e8 a7 65 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1cdc9: 48 8b 00 mov (%rax),%rax 1cdcc: 48 89 85 e0 f7 ff ff mov %rax,-0x820(%rbp) if (io == NULL) 1cdd3: 48 83 bd e0 f7 ff ff cmpq $0x0,-0x820(%rbp) 1cdda: 00 1cddb: 75 11 jne 1cdee <_Z10x_rollbackP18enif_environment_tiPKm+0x136> { return enif_make_badarg(env); 1cddd: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1cde4: 48 89 c7 mov %rax,%rdi 1cde7: e8 b4 64 ff ff callq 132a0 1cdec: eb 62 jmp 1ce50 <_Z10x_rollbackP18enif_environment_tiPKm+0x198> } int err = rados_rollback(io, oid, snap); 1cdee: 48 8d 95 f0 fb ff ff lea -0x410(%rbp),%rdx 1cdf5: 48 8d 8d f0 f7 ff ff lea -0x810(%rbp),%rcx 1cdfc: 48 8b 85 e0 f7 ff ff mov -0x820(%rbp),%rax 1ce03: 48 89 ce mov %rcx,%rsi 1ce06: 48 89 c7 mov %rax,%rdi 1ce09: e8 02 60 ff ff callq 12e10 1ce0e: 89 85 ec f7 ff ff mov %eax,-0x814(%rbp) if (err < 0) 1ce14: 83 bd ec f7 ff ff 00 cmpl $0x0,-0x814(%rbp) 1ce1b: 79 1d jns 1ce3a <_Z10x_rollbackP18enif_environment_tiPKm+0x182> { return make_error_tuple(env, -err); 1ce1d: 8b 85 ec f7 ff ff mov -0x814(%rbp),%eax 1ce23: 89 c2 mov %eax,%edx 1ce25: f7 da neg %edx 1ce27: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1ce2e: 89 d6 mov %edx,%esi 1ce30: 48 89 c7 mov %rax,%rdi 1ce33: e8 f8 69 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1ce38: eb 16 jmp 1ce50 <_Z10x_rollbackP18enif_environment_tiPKm+0x198> } return enif_make_atom(env, "ok"); 1ce3a: 48 8b 85 c8 f7 ff ff mov -0x838(%rbp),%rax 1ce41: 48 8d 35 31 5b 00 00 lea 0x5b31(%rip),%rsi # 22979 <_fini+0xac1> 1ce48: 48 89 c7 mov %rax,%rdi 1ce4b: e8 70 59 ff ff callq 127c0 } 1ce50: 48 8b 55 f8 mov -0x8(%rbp),%rdx 1ce54: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1ce5b: 00 00 1ce5d: 74 05 je 1ce64 <_Z10x_rollbackP18enif_environment_tiPKm+0x1ac> 1ce5f: e8 4c 6a ff ff callq 138b0 <__stack_chk_fail@plt> 1ce64: c9 leaveq 1ce65: c3 retq 000000000001ce66 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_list(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1ce66: 55 push %rbp 1ce67: 48 89 e5 mov %rsp,%rbp 1ce6a: 53 push %rbx 1ce6b: 48 81 ec d8 3e 00 00 sub $0x3ed8,%rsp 1ce72: 48 89 bd 38 c1 ff ff mov %rdi,-0x3ec8(%rbp) 1ce79: 89 b5 34 c1 ff ff mov %esi,-0x3ecc(%rbp) 1ce7f: 48 89 95 28 c1 ff ff mov %rdx,-0x3ed8(%rbp) uint64_t id; if (!enif_get_uint64(env, argv[0], &id)) 1ce86: 48 8b 85 28 c1 ff ff mov -0x3ed8(%rbp),%rax 1ce8d: 48 8b 08 mov (%rax),%rcx 1ce90: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1ce94: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1ce9b: 48 89 ce mov %rcx,%rsi 1ce9e: 48 89 c7 mov %rax,%rdi 1cea1: e8 ea 60 ff ff callq 12f90 1cea6: 85 c0 test %eax,%eax 1cea8: 0f 94 c0 sete %al 1ceab: 84 c0 test %al,%al 1cead: 74 14 je 1cec3 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x5d> { return enif_make_badarg(env); 1ceaf: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1ceb6: 48 89 c7 mov %rax,%rdi 1ceb9: e8 e2 63 ff ff callq 132a0 1cebe: e9 8b 01 00 00 jmpq 1d04e <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1e8> } rados_ioctx_t io = map_ioctx[id]; 1cec3: 48 8d 45 c8 lea -0x38(%rbp),%rax 1cec7: 48 89 c6 mov %rax,%rsi 1ceca: 48 8b 05 af b0 20 00 mov 0x20b0af(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1ced1: 48 89 c7 mov %rax,%rdi 1ced4: e8 97 64 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1ced9: 48 8b 00 mov (%rax),%rax 1cedc: 48 89 45 d8 mov %rax,-0x28(%rbp) if (io == NULL) 1cee0: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 1cee5: 75 14 jne 1cefb <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x95> { return enif_make_badarg(env); 1cee7: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1ceee: 48 89 c7 mov %rax,%rdi 1cef1: e8 aa 63 ff ff callq 132a0 1cef6: e9 53 01 00 00 jmpq 1d04e <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1e8> } rados_snap_t snaps[2000]; int num = rados_ioctx_snap_list(io, snaps, 2000); 1cefb: 48 8d 8d 40 c1 ff ff lea -0x3ec0(%rbp),%rcx 1cf02: 48 8b 45 d8 mov -0x28(%rbp),%rax 1cf06: ba d0 07 00 00 mov $0x7d0,%edx 1cf0b: 48 89 ce mov %rcx,%rsi 1cf0e: 48 89 c7 mov %rax,%rdi 1cf11: e8 3a 6c ff ff callq 13b50 1cf16: 89 45 ec mov %eax,-0x14(%rbp) if ((num < 0) && (num != -ERANGE)) 1cf19: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1cf1d: 79 23 jns 1cf42 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0xdc> 1cf1f: 83 7d ec de cmpl $0xffffffde,-0x14(%rbp) 1cf23: 74 1d je 1cf42 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0xdc> { return make_error_tuple(env, -num); 1cf25: 8b 45 ec mov -0x14(%rbp),%eax 1cf28: 89 c2 mov %eax,%edx 1cf2a: f7 da neg %edx 1cf2c: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cf33: 89 d6 mov %edx,%esi 1cf35: 48 89 c7 mov %rax,%rdi 1cf38: e8 f3 68 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1cf3d: e9 0c 01 00 00 jmpq 1d04e <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1e8> } if (num > 0) 1cf42: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1cf46: 0f 8e b1 00 00 00 jle 1cffd <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x197> { ERL_NIF_TERM term_list = enif_make_list(env, 0); 1cf4c: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cf53: be 00 00 00 00 mov $0x0,%esi 1cf58: 48 89 c7 mov %rax,%rdi 1cf5b: b8 00 00 00 00 mov $0x0,%eax 1cf60: e8 9b 65 ff ff callq 13500 1cf65: 48 89 45 d0 mov %rax,-0x30(%rbp) for (int i = num - 1; i >= 0; i--) 1cf69: 8b 45 ec mov -0x14(%rbp),%eax 1cf6c: 83 e8 01 sub $0x1,%eax 1cf6f: 89 45 e8 mov %eax,-0x18(%rbp) 1cf72: eb 45 jmp 1cfb9 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x153> { ERL_NIF_TERM t = enif_make_uint64(env, snaps[i]); 1cf74: 8b 45 e8 mov -0x18(%rbp),%eax 1cf77: 48 98 cltq 1cf79: 48 8b 94 c5 40 c1 ff mov -0x3ec0(%rbp,%rax,8),%rdx 1cf80: ff 1cf81: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cf88: 48 89 d6 mov %rdx,%rsi 1cf8b: 48 89 c7 mov %rax,%rdi 1cf8e: e8 8d 65 ff ff callq 13520 1cf93: 48 89 45 e0 mov %rax,-0x20(%rbp) term_list = enif_make_list_cell(env, t, term_list); 1cf97: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1cf9b: 48 8b 4d e0 mov -0x20(%rbp),%rcx 1cf9f: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cfa6: 48 89 ce mov %rcx,%rsi 1cfa9: 48 89 c7 mov %rax,%rdi 1cfac: e8 bf 5f ff ff callq 12f70 1cfb1: 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--) 1cfb5: 83 6d e8 01 subl $0x1,-0x18(%rbp) 1cfb9: 8b 45 e8 mov -0x18(%rbp),%eax 1cfbc: f7 d0 not %eax 1cfbe: c1 e8 1f shr $0x1f,%eax 1cfc1: 84 c0 test %al,%al 1cfc3: 75 af jne 1cf74 <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x10e> { 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, 1cfc5: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cfcc: 48 8d 35 a6 59 00 00 lea 0x59a6(%rip),%rsi # 22979 <_fini+0xac1> 1cfd3: 48 89 c7 mov %rax,%rdi 1cfd6: e8 e5 57 ff ff callq 127c0 1cfdb: 48 89 c2 mov %rax,%rdx 1cfde: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1cfe2: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1cfe9: be 02 00 00 00 mov $0x2,%esi 1cfee: 48 89 c7 mov %rax,%rdi 1cff1: b8 00 00 00 00 mov $0x0,%eax 1cff6: e8 05 6c ff ff callq 13c00 1cffb: eb 51 jmp 1d04e <_Z17x_ioctx_snap_listP18enif_environment_tiPKm+0x1e8> enif_make_atom(env, "ok"), term_list); } else { return enif_make_tuple2(env, 1cffd: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d004: be 00 00 00 00 mov $0x0,%esi 1d009: 48 89 c7 mov %rax,%rdi 1d00c: b8 00 00 00 00 mov $0x0,%eax 1d011: e8 ea 64 ff ff callq 13500 1d016: 48 89 c3 mov %rax,%rbx 1d019: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d020: 48 8d 35 52 59 00 00 lea 0x5952(%rip),%rsi # 22979 <_fini+0xac1> 1d027: 48 89 c7 mov %rax,%rdi 1d02a: e8 91 57 ff ff callq 127c0 1d02f: 48 89 c2 mov %rax,%rdx 1d032: 48 8b 85 38 c1 ff ff mov -0x3ec8(%rbp),%rax 1d039: 48 89 d9 mov %rbx,%rcx 1d03c: be 02 00 00 00 mov $0x2,%esi 1d041: 48 89 c7 mov %rax,%rdi 1d044: b8 00 00 00 00 mov $0x0,%eax 1d049: e8 b2 6b ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_list(env, 0)); // empty list } } 1d04e: 48 81 c4 d8 3e 00 00 add $0x3ed8,%rsp 1d055: 5b pop %rbx 1d056: 5d pop %rbp 1d057: c3 retq 000000000001d058 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_lookup(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d058: 55 push %rbp 1d059: 48 89 e5 mov %rsp,%rbp 1d05c: 53 push %rbx 1d05d: 48 81 ec 58 04 00 00 sub $0x458,%rsp 1d064: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1d06b: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1d071: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1d078: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d07f: 00 00 1d081: 48 89 45 e8 mov %rax,-0x18(%rbp) 1d085: 31 c0 xor %eax,%eax uint64_t id; char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d087: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1d08e: ba 00 04 00 00 mov $0x400,%edx 1d093: be 00 00 00 00 mov $0x0,%esi 1d098: 48 89 c7 mov %rax,%rdi 1d09b: e8 b0 53 ff ff callq 12450 if (!enif_get_uint64(env, argv[0], &id) || 1d0a0: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d0a7: 48 8b 08 mov (%rax),%rcx 1d0aa: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1d0b1: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d0b8: 48 89 ce mov %rcx,%rsi 1d0bb: 48 89 c7 mov %rax,%rdi 1d0be: e8 cd 5e ff ff callq 12f90 1d0c3: 85 c0 test %eax,%eax 1d0c5: 74 33 je 1d0fa <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xa2> !enif_get_string(env, argv[1], snap, MAX_NAME_LEN, ERL_NIF_LATIN1)) 1d0c7: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d0ce: 48 83 c0 08 add $0x8,%rax 1d0d2: 48 8b 30 mov (%rax),%rsi 1d0d5: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1d0dc: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d0e3: 41 b8 01 00 00 00 mov $0x1,%r8d 1d0e9: b9 00 04 00 00 mov $0x400,%ecx 1d0ee: 48 89 c7 mov %rax,%rdi 1d0f1: e8 fa 6a ff ff callq 13bf0 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) || 1d0f6: 85 c0 test %eax,%eax 1d0f8: 75 07 jne 1d101 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xa9> 1d0fa: b8 01 00 00 00 mov $0x1,%eax 1d0ff: eb 05 jmp 1d106 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0xae> 1d101: b8 00 00 00 00 mov $0x0,%eax 1d106: 84 c0 test %al,%al 1d108: 74 14 je 1d11e <_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); 1d10a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d111: 48 89 c7 mov %rax,%rdi 1d114: e8 87 61 ff ff callq 132a0 1d119: e9 de 00 00 00 jmpq 1d1fc <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x1a4> } rados_ioctx_t io = map_ioctx[id]; 1d11e: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 1d125: 48 89 c6 mov %rax,%rsi 1d128: 48 8b 05 51 ae 20 00 mov 0x20ae51(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1d12f: 48 89 c7 mov %rax,%rdi 1d132: e8 39 62 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1d137: 48 8b 00 mov (%rax),%rax 1d13a: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1d141: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1d148: 00 1d149: 75 14 jne 1d15f <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x107> { return enif_make_badarg(env); 1d14b: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d152: 48 89 c7 mov %rax,%rdi 1d155: e8 46 61 ff ff callq 132a0 1d15a: e9 9d 00 00 00 jmpq 1d1fc <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x1a4> } rados_snap_t snapid; int err = rados_ioctx_snap_lookup(io, snap, &snapid); 1d15f: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1d166: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1d16d: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1d174: 48 89 ce mov %rcx,%rsi 1d177: 48 89 c7 mov %rax,%rdi 1d17a: e8 a1 60 ff ff callq 13220 1d17f: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1d185: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1d18c: 79 1d jns 1d1ab <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x153> return make_error_tuple(env, -err); 1d18e: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1d194: 89 c2 mov %eax,%edx 1d196: f7 da neg %edx 1d198: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d19f: 89 d6 mov %edx,%esi 1d1a1: 48 89 c7 mov %rax,%rdi 1d1a4: e8 87 66 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d1a9: eb 51 jmp 1d1fc <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x1a4> return enif_make_tuple2(env, 1d1ab: 48 8b 95 c8 fb ff ff mov -0x438(%rbp),%rdx 1d1b2: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d1b9: 48 89 d6 mov %rdx,%rsi 1d1bc: 48 89 c7 mov %rax,%rdi 1d1bf: e8 5c 63 ff ff callq 13520 1d1c4: 48 89 c3 mov %rax,%rbx 1d1c7: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d1ce: 48 8d 35 a4 57 00 00 lea 0x57a4(%rip),%rsi # 22979 <_fini+0xac1> 1d1d5: 48 89 c7 mov %rax,%rdi 1d1d8: e8 e3 55 ff ff callq 127c0 1d1dd: 48 89 c2 mov %rax,%rdx 1d1e0: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d1e7: 48 89 d9 mov %rbx,%rcx 1d1ea: be 02 00 00 00 mov $0x2,%esi 1d1ef: 48 89 c7 mov %rax,%rdi 1d1f2: b8 00 00 00 00 mov $0x0,%eax 1d1f7: e8 04 6a ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, snapid)); } 1d1fc: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1d200: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d207: 00 00 1d209: 74 05 je 1d210 <_Z19x_ioctx_snap_lookupP18enif_environment_tiPKm+0x1b8> 1d20b: e8 a0 66 ff ff callq 138b0 <__stack_chk_fail@plt> 1d210: 48 81 c4 58 04 00 00 add $0x458,%rsp 1d217: 5b pop %rbx 1d218: 5d pop %rbp 1d219: c3 retq 000000000001d21a <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_get_name(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d21a: 55 push %rbp 1d21b: 48 89 e5 mov %rsp,%rbp 1d21e: 53 push %rbx 1d21f: 48 81 ec 58 04 00 00 sub $0x458,%rsp 1d226: 48 89 bd b8 fb ff ff mov %rdi,-0x448(%rbp) 1d22d: 89 b5 b4 fb ff ff mov %esi,-0x44c(%rbp) 1d233: 48 89 95 a8 fb ff ff mov %rdx,-0x458(%rbp) 1d23a: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 1d241: 00 00 1d243: 48 89 45 e8 mov %rax,-0x18(%rbp) 1d247: 31 c0 xor %eax,%eax uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1d249: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d250: 48 8b 08 mov (%rax),%rcx 1d253: 48 8d 95 c0 fb ff ff lea -0x440(%rbp),%rdx 1d25a: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d261: 48 89 ce mov %rcx,%rsi 1d264: 48 89 c7 mov %rax,%rdi 1d267: e8 24 5d ff ff callq 12f90 1d26c: 85 c0 test %eax,%eax 1d26e: 74 2b je 1d29b <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x81> !enif_get_uint64(env, argv[1], &snapid)) 1d270: 48 8b 85 a8 fb ff ff mov -0x458(%rbp),%rax 1d277: 48 83 c0 08 add $0x8,%rax 1d27b: 48 8b 08 mov (%rax),%rcx 1d27e: 48 8d 95 c8 fb ff ff lea -0x438(%rbp),%rdx 1d285: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d28c: 48 89 ce mov %rcx,%rsi 1d28f: 48 89 c7 mov %rax,%rdi 1d292: e8 f9 5c ff ff callq 12f90 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) || 1d297: 85 c0 test %eax,%eax 1d299: 75 07 jne 1d2a2 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x88> 1d29b: b8 01 00 00 00 mov $0x1,%eax 1d2a0: eb 05 jmp 1d2a7 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x8d> 1d2a2: b8 00 00 00 00 mov $0x0,%eax 1d2a7: 84 c0 test %al,%al 1d2a9: 74 14 je 1d2bf <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0xa5> !enif_get_uint64(env, argv[1], &snapid)) { return enif_make_badarg(env); 1d2ab: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d2b2: 48 89 c7 mov %rax,%rdi 1d2b5: e8 e6 5f ff ff callq 132a0 1d2ba: e9 fe 00 00 00 jmpq 1d3bd <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x1a3> } rados_ioctx_t io = map_ioctx[id]; 1d2bf: 48 8d 85 c0 fb ff ff lea -0x440(%rbp),%rax 1d2c6: 48 89 c6 mov %rax,%rsi 1d2c9: 48 8b 05 b0 ac 20 00 mov 0x20acb0(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1d2d0: 48 89 c7 mov %rax,%rdi 1d2d3: e8 98 60 ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1d2d8: 48 8b 00 mov (%rax),%rax 1d2db: 48 89 85 d0 fb ff ff mov %rax,-0x430(%rbp) if (io == NULL) 1d2e2: 48 83 bd d0 fb ff ff cmpq $0x0,-0x430(%rbp) 1d2e9: 00 1d2ea: 75 14 jne 1d300 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0xe6> { return enif_make_badarg(env); 1d2ec: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d2f3: 48 89 c7 mov %rax,%rdi 1d2f6: e8 a5 5f ff ff callq 132a0 1d2fb: e9 bd 00 00 00 jmpq 1d3bd <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x1a3> } char snap[MAX_NAME_LEN]; memset(snap, 0, MAX_NAME_LEN); 1d300: 48 8d 85 e0 fb ff ff lea -0x420(%rbp),%rax 1d307: ba 00 04 00 00 mov $0x400,%edx 1d30c: be 00 00 00 00 mov $0x0,%esi 1d311: 48 89 c7 mov %rax,%rdi 1d314: e8 37 51 ff ff callq 12450 int err = rados_ioctx_snap_get_name(io, snapid, snap, MAX_NAME_LEN); 1d319: 48 8b b5 c8 fb ff ff mov -0x438(%rbp),%rsi 1d320: 48 8d 95 e0 fb ff ff lea -0x420(%rbp),%rdx 1d327: 48 8b 85 d0 fb ff ff mov -0x430(%rbp),%rax 1d32e: b9 00 04 00 00 mov $0x400,%ecx 1d333: 48 89 c7 mov %rax,%rdi 1d336: e8 85 65 ff ff callq 138c0 1d33b: 89 85 dc fb ff ff mov %eax,-0x424(%rbp) if (err < 0) 1d341: 83 bd dc fb ff ff 00 cmpl $0x0,-0x424(%rbp) 1d348: 79 1d jns 1d367 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x14d> return make_error_tuple(env, -err); 1d34a: 8b 85 dc fb ff ff mov -0x424(%rbp),%eax 1d350: 89 c2 mov %eax,%edx 1d352: f7 da neg %edx 1d354: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d35b: 89 d6 mov %edx,%esi 1d35d: 48 89 c7 mov %rax,%rdi 1d360: e8 cb 64 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d365: eb 56 jmp 1d3bd <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x1a3> return enif_make_tuple2(env, 1d367: 48 8d 8d e0 fb ff ff lea -0x420(%rbp),%rcx 1d36e: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d375: ba 01 00 00 00 mov $0x1,%edx 1d37a: 48 89 ce mov %rcx,%rsi 1d37d: 48 89 c7 mov %rax,%rdi 1d380: e8 ab 5e ff ff callq 13230 1d385: 48 89 c3 mov %rax,%rbx 1d388: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d38f: 48 8d 35 e3 55 00 00 lea 0x55e3(%rip),%rsi # 22979 <_fini+0xac1> 1d396: 48 89 c7 mov %rax,%rdi 1d399: e8 22 54 ff ff callq 127c0 1d39e: 48 89 c2 mov %rax,%rdx 1d3a1: 48 8b 85 b8 fb ff ff mov -0x448(%rbp),%rax 1d3a8: 48 89 d9 mov %rbx,%rcx 1d3ab: be 02 00 00 00 mov $0x2,%esi 1d3b0: 48 89 c7 mov %rax,%rdi 1d3b3: b8 00 00 00 00 mov $0x0,%eax 1d3b8: e8 43 68 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_string(env, snap, ERL_NIF_LATIN1)); } 1d3bd: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1d3c1: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx 1d3c8: 00 00 1d3ca: 74 05 je 1d3d1 <_Z21x_ioctx_snap_get_nameP18enif_environment_tiPKm+0x1b7> 1d3cc: e8 df 64 ff ff callq 138b0 <__stack_chk_fail@plt> 1d3d1: 48 81 c4 58 04 00 00 add $0x458,%rsp 1d3d8: 5b pop %rbx 1d3d9: 5d pop %rbp 1d3da: c3 retq 000000000001d3db <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm>: ERL_NIF_TERM x_ioctx_snap_get_stamp(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { 1d3db: 55 push %rbp 1d3dc: 48 89 e5 mov %rsp,%rbp 1d3df: 53 push %rbx 1d3e0: 48 83 ec 58 sub $0x58,%rsp 1d3e4: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1d3e8: 89 75 b4 mov %esi,-0x4c(%rbp) 1d3eb: 48 89 55 a8 mov %rdx,-0x58(%rbp) uint64_t id; rados_snap_t snapid; if (!enif_get_uint64(env, argv[0], &id) || 1d3ef: 48 8b 45 a8 mov -0x58(%rbp),%rax 1d3f3: 48 8b 08 mov (%rax),%rcx 1d3f6: 48 8d 55 c8 lea -0x38(%rbp),%rdx 1d3fa: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d3fe: 48 89 ce mov %rcx,%rsi 1d401: 48 89 c7 mov %rax,%rdi 1d404: e8 87 5b ff ff callq 12f90 1d409: 85 c0 test %eax,%eax 1d40b: 74 22 je 1d42f <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x54> !enif_get_uint64(env, argv[1], &snapid)) 1d40d: 48 8b 45 a8 mov -0x58(%rbp),%rax 1d411: 48 83 c0 08 add $0x8,%rax 1d415: 48 8b 08 mov (%rax),%rcx 1d418: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1d41c: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d420: 48 89 ce mov %rcx,%rsi 1d423: 48 89 c7 mov %rax,%rdi 1d426: e8 65 5b ff ff callq 12f90 } 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) || 1d42b: 85 c0 test %eax,%eax 1d42d: 75 07 jne 1d436 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x5b> 1d42f: b8 01 00 00 00 mov $0x1,%eax 1d434: eb 05 jmp 1d43b <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x60> 1d436: b8 00 00 00 00 mov $0x0,%eax 1d43b: 84 c0 test %al,%al 1d43d: 74 11 je 1d450 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x75> !enif_get_uint64(env, argv[1], &snapid)) { return enif_make_badarg(env); 1d43f: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d443: 48 89 c7 mov %rax,%rdi 1d446: e8 55 5e ff ff callq 132a0 1d44b: e9 b1 00 00 00 jmpq 1d501 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x126> } rados_ioctx_t io = map_ioctx[id]; 1d450: 48 8d 45 c8 lea -0x38(%rbp),%rax 1d454: 48 89 c6 mov %rax,%rsi 1d457: 48 8b 05 22 ab 20 00 mov 0x20ab22(%rip),%rax # 227f80 <_DYNAMIC+0x230> 1d45e: 48 89 c7 mov %rax,%rdi 1d461: e8 0a 5f ff ff callq 13370 <_ZNSt3mapImPvSt4lessImESaISt4pairIKmS0_EEEixERS4_@plt> 1d466: 48 8b 00 mov (%rax),%rax 1d469: 48 89 45 e0 mov %rax,-0x20(%rbp) if (io == NULL) 1d46d: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1d472: 75 0e jne 1d482 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0xa7> { return enif_make_badarg(env); 1d474: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d478: 48 89 c7 mov %rax,%rdi 1d47b: e8 20 5e ff ff callq 132a0 1d480: eb 7f jmp 1d501 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x126> } time_t tm; int err = rados_ioctx_snap_get_stamp(io, snapid, &tm); 1d482: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1d486: 48 8d 55 d8 lea -0x28(%rbp),%rdx 1d48a: 48 8b 45 e0 mov -0x20(%rbp),%rax 1d48e: 48 89 ce mov %rcx,%rsi 1d491: 48 89 c7 mov %rax,%rdi 1d494: e8 b7 50 ff ff callq 12550 1d499: 89 45 ec mov %eax,-0x14(%rbp) if (err < 0) 1d49c: 83 7d ec 00 cmpl $0x0,-0x14(%rbp) 1d4a0: 79 17 jns 1d4b9 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0xde> return make_error_tuple(env, -err); 1d4a2: 8b 45 ec mov -0x14(%rbp),%eax 1d4a5: 89 c2 mov %eax,%edx 1d4a7: f7 da neg %edx 1d4a9: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d4ad: 89 d6 mov %edx,%esi 1d4af: 48 89 c7 mov %rax,%rdi 1d4b2: e8 79 63 ff ff callq 13830 <_Z16make_error_tupleP18enif_environment_ti@plt> 1d4b7: eb 48 jmp 1d501 <_Z22x_ioctx_snap_get_stampP18enif_environment_tiPKm+0x126> return enif_make_tuple2(env, 1d4b9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d4bd: 48 89 c2 mov %rax,%rdx 1d4c0: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d4c4: 48 89 d6 mov %rdx,%rsi 1d4c7: 48 89 c7 mov %rax,%rdi 1d4ca: e8 51 60 ff ff callq 13520 1d4cf: 48 89 c3 mov %rax,%rbx 1d4d2: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d4d6: 48 8d 35 9c 54 00 00 lea 0x549c(%rip),%rsi # 22979 <_fini+0xac1> 1d4dd: 48 89 c7 mov %rax,%rdi 1d4e0: e8 db 52 ff ff callq 127c0 1d4e5: 48 89 c2 mov %rax,%rdx 1d4e8: 48 8b 45 b8 mov -0x48(%rbp),%rax 1d4ec: 48 89 d9 mov %rbx,%rcx 1d4ef: be 02 00 00 00 mov $0x2,%esi 1d4f4: 48 89 c7 mov %rax,%rdi 1d4f7: b8 00 00 00 00 mov $0x0,%eax 1d4fc: e8 ff 66 ff ff callq 13c00 enif_make_atom(env, "ok"), enif_make_uint64(env, tm)); } 1d501: 48 83 c4 58 add $0x58,%rsp 1d505: 5b pop %rbx 1d506: 5d pop %rbp 1d507: c3 retq 000000000001d508 <_ZN6FSUtil5mkdirEPKcj>: #elif __unix__ #define PATH_SEPARATOR '/' #endif int FSUtil::mkdir(const char* dir, mode_t mode) { 1d508: 55 push %rbp 1d509: 48 89 e5 mov %rsp,%rbp 1d50c: 48 81 ec b0 00 00 00 sub $0xb0,%rsp 1d513: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 1d51a: 89 b5 54 ff ff ff mov %esi,-0xac(%rbp) struct stat st; int status = 0; 1d520: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) if (stat(dir, &st) != 0) { 1d527: 48 8d 95 60 ff ff ff lea -0xa0(%rbp),%rdx 1d52e: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1d535: 48 89 d6 mov %rdx,%rsi 1d538: 48 89 c7 mov %rax,%rdi 1d53b: e8 30 49 00 00 callq 21e70 <__stat> 1d540: 85 c0 test %eax,%eax 1d542: 0f 95 c0 setne %al 1d545: 84 c0 test %al,%al 1d547: 74 29 je 1d572 <_ZN6FSUtil5mkdirEPKcj+0x6a> /* Directory does not exist */ if (::mkdir(dir, mode) != 0) 1d549: 8b 95 54 ff ff ff mov -0xac(%rbp),%edx 1d54f: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1d556: 89 d6 mov %edx,%esi 1d558: 48 89 c7 mov %rax,%rdi 1d55b: e8 80 6b ff ff callq 140e0 1d560: 85 c0 test %eax,%eax 1d562: 0f 95 c0 setne %al 1d565: 84 c0 test %al,%al 1d567: 74 2d je 1d596 <_ZN6FSUtil5mkdirEPKcj+0x8e> status = -1; 1d569: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) 1d570: eb 24 jmp 1d596 <_ZN6FSUtil5mkdirEPKcj+0x8e> } else if (!S_ISDIR(st.st_mode)) { 1d572: 8b 85 78 ff ff ff mov -0x88(%rbp),%eax 1d578: 25 00 f0 00 00 and $0xf000,%eax 1d57d: 3d 00 40 00 00 cmp $0x4000,%eax 1d582: 74 12 je 1d596 <_ZN6FSUtil5mkdirEPKcj+0x8e> errno = ENOTDIR; 1d584: e8 37 62 ff ff callq 137c0 <__errno_location@plt> 1d589: c7 00 14 00 00 00 movl $0x14,(%rax) status = -1; 1d58f: c7 45 fc ff ff ff ff movl $0xffffffff,-0x4(%rbp) } return(status); 1d596: 8b 45 fc mov -0x4(%rbp),%eax } 1d599: c9 leaveq 1d59a: c3 retq 1d59b: 90 nop 000000000001d59c <_ZN6FSUtil6mkpathEPKcj>: int FSUtil::mkpath(const char* path, mode_t mode) { 1d59c: 55 push %rbp 1d59d: 48 89 e5 mov %rsp,%rbp 1d5a0: 48 83 ec 30 sub $0x30,%rsp 1d5a4: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1d5a8: 89 75 d4 mov %esi,-0x2c(%rbp) char *pp; char *sp; int status; char *copypath = strdup(path); 1d5ab: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d5af: 48 89 c7 mov %rax,%rdi 1d5b2: e8 69 62 ff ff callq 13820 1d5b7: 48 89 45 f0 mov %rax,-0x10(%rbp) status = 0; 1d5bb: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) pp = copypath; 1d5c2: 48 8b 45 f0 mov -0x10(%rbp),%rax 1d5c6: 48 89 45 e0 mov %rax,-0x20(%rbp) while (status == 0 && (sp = strchr(pp, PATH_SEPARATOR)) != 0) 1d5ca: eb 38 jmp 1d604 <_ZN6FSUtil6mkpathEPKcj+0x68> { if (sp != pp) 1d5cc: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d5d0: 48 3b 45 e0 cmp -0x20(%rbp),%rax 1d5d4: 74 22 je 1d5f8 <_ZN6FSUtil6mkpathEPKcj+0x5c> { /* Neither root nor double slash in path */ *sp = '\0'; 1d5d6: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d5da: c6 00 00 movb $0x0,(%rax) status = FSUtil::mkdir(copypath, mode); 1d5dd: 8b 55 d4 mov -0x2c(%rbp),%edx 1d5e0: 48 8b 45 f0 mov -0x10(%rbp),%rax 1d5e4: 89 d6 mov %edx,%esi 1d5e6: 48 89 c7 mov %rax,%rdi 1d5e9: e8 32 63 ff ff callq 13920 <_ZN6FSUtil5mkdirEPKcj@plt> 1d5ee: 89 45 fc mov %eax,-0x4(%rbp) *sp = PATH_SEPARATOR; 1d5f1: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d5f5: c6 00 2f movb $0x2f,(%rax) } pp = sp + 1; 1d5f8: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d5fc: 48 83 c0 01 add $0x1,%rax 1d600: 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) 1d604: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1d608: 75 23 jne 1d62d <_ZN6FSUtil6mkpathEPKcj+0x91> 1d60a: 48 8b 45 e0 mov -0x20(%rbp),%rax 1d60e: be 2f 00 00 00 mov $0x2f,%esi 1d613: 48 89 c7 mov %rax,%rdi 1d616: e8 a5 60 ff ff callq 136c0 1d61b: 48 89 45 e8 mov %rax,-0x18(%rbp) 1d61f: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 1d624: 74 07 je 1d62d <_ZN6FSUtil6mkpathEPKcj+0x91> 1d626: b8 01 00 00 00 mov $0x1,%eax 1d62b: eb 05 jmp 1d632 <_ZN6FSUtil6mkpathEPKcj+0x96> 1d62d: b8 00 00 00 00 mov $0x0,%eax 1d632: 84 c0 test %al,%al 1d634: 75 96 jne 1d5cc <_ZN6FSUtil6mkpathEPKcj+0x30> status = FSUtil::mkdir(copypath, mode); *sp = PATH_SEPARATOR; } pp = sp + 1; } if (status == 0) 1d636: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) 1d63a: 75 14 jne 1d650 <_ZN6FSUtil6mkpathEPKcj+0xb4> status = FSUtil::mkdir(path, mode); 1d63c: 8b 55 d4 mov -0x2c(%rbp),%edx 1d63f: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d643: 89 d6 mov %edx,%esi 1d645: 48 89 c7 mov %rax,%rdi 1d648: e8 d3 62 ff ff callq 13920 <_ZN6FSUtil5mkdirEPKcj@plt> 1d64d: 89 45 fc mov %eax,-0x4(%rbp) free(copypath); 1d650: 48 8b 45 f0 mov -0x10(%rbp),%rax 1d654: 48 89 c7 mov %rax,%rdi 1d657: e8 64 58 ff ff callq 12ec0 return (status); 1d65c: 8b 45 fc mov -0x4(%rbp),%eax } 1d65f: c9 leaveq 1d660: c3 retq 1d661: 90 nop 1d662: 90 nop 1d663: 90 nop 000000000001d664 <_ZN6XMutexC1Ev>: * All rights reserved. */ #include "mutex.hpp" XMutex::XMutex() 1d664: 55 push %rbp 1d665: 48 89 e5 mov %rsp,%rbp 1d668: 48 83 ec 10 sub $0x10,%rsp 1d66c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { #if __WIN32__ || _MSC_VER InitializeCriticalSection(&crit_section); #elif __unix__ pthread_mutex_init(&mutex, NULL); 1d670: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d674: be 00 00 00 00 mov $0x0,%esi 1d679: 48 89 c7 mov %rax,%rdi 1d67c: e8 df 55 ff ff callq 12c60 #endif } 1d681: c9 leaveq 1d682: c3 retq 1d683: 90 nop 000000000001d684 <_ZN6XMutexD1Ev>: XMutex::~XMutex() 1d684: 55 push %rbp 1d685: 48 89 e5 mov %rsp,%rbp 1d688: 48 83 ec 10 sub $0x10,%rsp 1d68c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { #if __WIN32__ || _MSC_VER DeleteCriticalSection(&crit_section); #elif __unix__ pthread_mutex_destroy(&mutex); 1d690: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d694: 48 89 c7 mov %rax,%rdi 1d697: e8 24 68 ff ff callq 13ec0 #endif } 1d69c: c9 leaveq 1d69d: c3 retq 000000000001d69e <_ZN6XMutex4lockEv>: void XMutex::lock() { 1d69e: 55 push %rbp 1d69f: 48 89 e5 mov %rsp,%rbp 1d6a2: 48 83 ec 10 sub $0x10,%rsp 1d6a6: 48 89 7d f8 mov %rdi,-0x8(%rbp) #if __WIN32__ || _MSC_VER EnterCriticalSection(&crit_section); #elif __unix__ pthread_mutex_lock(&mutex); 1d6aa: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d6ae: 48 89 c7 mov %rax,%rdi 1d6b1: e8 ea 66 ff ff callq 13da0 #endif } 1d6b6: c9 leaveq 1d6b7: c3 retq 000000000001d6b8 <_ZN6XMutex6unlockEv>: void XMutex::unlock() { 1d6b8: 55 push %rbp 1d6b9: 48 89 e5 mov %rsp,%rbp 1d6bc: 48 83 ec 10 sub $0x10,%rsp 1d6c0: 48 89 7d f8 mov %rdi,-0x8(%rbp) #if __WIN32__ || _MSC_VER LeaveCriticalSection(&crit_section); #elif __unix__ pthread_mutex_unlock(&mutex); 1d6c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d6c8: 48 89 c7 mov %rax,%rdi 1d6cb: e8 00 69 ff ff callq 13fd0 #endif } 1d6d0: c9 leaveq 1d6d1: c3 retq 1d6d2: 90 nop 1d6d3: 90 nop 000000000001d6d4 <_ZN6TMUtil14getCurrentTimeER5XTime>: #endif #include "tmutil.hpp" void TMUtil::getCurrentTime(struct XTime& currTime) { 1d6d4: 55 push %rbp 1d6d5: 48 89 e5 mov %rsp,%rbp 1d6d8: 48 83 ec 10 sub $0x10,%rsp 1d6dc: 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); 1d6e0: be 00 00 00 00 mov $0x0,%esi 1d6e5: 48 8d 3d 24 bf 20 00 lea 0x20bf24(%rip),%rdi # 229610 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv> 1d6ec: e8 1f 51 ff ff callq 12810 ptm = localtime((const time_t*)&tv.tv_sec); 1d6f1: 48 8d 3d 18 bf 20 00 lea 0x20bf18(%rip),%rdi # 229610 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv> 1d6f8: e8 a3 67 ff ff callq 13ea0 1d6fd: 48 89 05 1c bf 20 00 mov %rax,0x20bf1c(%rip) # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> // Convert microseconds to milliseconds milliseconds = tv.tv_usec / 1000; 1d704: 48 8b 0d 0d bf 20 00 mov 0x20bf0d(%rip),%rcx # 229618 <_ZZN6TMUtil14getCurrentTimeER5XTimeE2tv+0x8> 1d70b: 48 ba cf f7 53 e3 a5 movabs $0x20c49ba5e353f7cf,%rdx 1d712: 9b c4 20 1d715: 48 89 c8 mov %rcx,%rax 1d718: 48 f7 ea imul %rdx 1d71b: 48 c1 fa 07 sar $0x7,%rdx 1d71f: 48 89 c8 mov %rcx,%rax 1d722: 48 c1 f8 3f sar $0x3f,%rax 1d726: 48 89 d1 mov %rdx,%rcx 1d729: 48 29 c1 sub %rax,%rcx 1d72c: 48 89 c8 mov %rcx,%rax 1d72f: 89 05 f3 be 20 00 mov %eax,0x20bef3(%rip) # 229628 <_ZZN6TMUtil14getCurrentTimeER5XTimeE12milliseconds> currTime.weekday = ptm->tm_wday; 1d735: 48 8b 05 e4 be 20 00 mov 0x20bee4(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d73c: 8b 50 18 mov 0x18(%rax),%edx 1d73f: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d743: 89 10 mov %edx,(%rax) currTime.month = ptm->tm_mon; 1d745: 48 8b 05 d4 be 20 00 mov 0x20bed4(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d74c: 8b 50 10 mov 0x10(%rax),%edx 1d74f: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d753: 89 50 04 mov %edx,0x4(%rax) currTime.day = ptm->tm_mday; 1d756: 48 8b 05 c3 be 20 00 mov 0x20bec3(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d75d: 8b 50 0c mov 0xc(%rax),%edx 1d760: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d764: 89 50 08 mov %edx,0x8(%rax) currTime.year = 1900 + ptm->tm_year; 1d767: 48 8b 05 b2 be 20 00 mov 0x20beb2(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d76e: 8b 40 14 mov 0x14(%rax),%eax 1d771: 8d 90 6c 07 00 00 lea 0x76c(%rax),%edx 1d777: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d77b: 89 50 0c mov %edx,0xc(%rax) currTime.hour = ptm->tm_hour; 1d77e: 48 8b 05 9b be 20 00 mov 0x20be9b(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d785: 8b 50 08 mov 0x8(%rax),%edx 1d788: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d78c: 89 50 10 mov %edx,0x10(%rax) currTime.min = ptm->tm_min; 1d78f: 48 8b 05 8a be 20 00 mov 0x20be8a(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d796: 8b 50 04 mov 0x4(%rax),%edx 1d799: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d79d: 89 50 14 mov %edx,0x14(%rax) currTime.second = ptm->tm_sec; 1d7a0: 48 8b 05 79 be 20 00 mov 0x20be79(%rip),%rax # 229620 <_ZZN6TMUtil14getCurrentTimeER5XTimeE3ptm> 1d7a7: 8b 10 mov (%rax),%edx 1d7a9: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d7ad: 89 50 18 mov %edx,0x18(%rax) currTime.millisecond = milliseconds; 1d7b0: 8b 15 72 be 20 00 mov 0x20be72(%rip),%edx # 229628 <_ZZN6TMUtil14getCurrentTimeER5XTimeE12milliseconds> 1d7b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1d7ba: 89 50 1c mov %edx,0x1c(%rax) #endif } 1d7bd: c9 leaveq 1d7be: c3 retq 1d7bf: 90 nop 000000000001d7c0 <_ZN4XLogC1Ev>: /******************************************************************************** * XLog ********************************************************************************/ XLog::XLog() 1d7c0: 55 push %rbp 1d7c1: 48 89 e5 mov %rsp,%rbp 1d7c4: 53 push %rbx 1d7c5: 48 83 ec 18 sub $0x18,%rsp 1d7c9: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1d7cd: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d7d1: 48 89 c7 mov %rax,%rdi 1d7d4: e8 c7 4b ff ff callq 123a0 <_ZNSsC1Ev@plt> 1d7d9: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d7dd: 48 83 c0 10 add $0x10,%rax 1d7e1: 48 89 c7 mov %rax,%rdi 1d7e4: e8 d7 61 ff ff callq 139c0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt> { curr_level = NONE; 1d7e9: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d7ed: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) } 1d7f4: 48 83 c4 18 add $0x18,%rsp 1d7f8: 5b pop %rbx 1d7f9: 5d pop %rbp 1d7fa: c3 retq 1d7fb: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLog ********************************************************************************/ XLog::XLog() 1d7fe: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d802: 48 89 c7 mov %rax,%rdi 1d805: e8 36 56 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1d80a: 48 89 d8 mov %rbx,%rax 1d80d: 48 89 c7 mov %rax,%rdi 1d810: e8 0b 67 ff ff callq 13f20 <_Unwind_Resume@plt> 1d815: 90 nop 000000000001d816 <_ZN4XLogC1ERKSs>: { curr_level = NONE; } XLog::XLog(const string& name) 1d816: 55 push %rbp 1d817: 48 89 e5 mov %rsp,%rbp 1d81a: 53 push %rbx 1d81b: 48 83 ec 18 sub $0x18,%rsp 1d81f: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1d823: 48 89 75 e0 mov %rsi,-0x20(%rbp) 1d827: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d82b: 48 89 c7 mov %rax,%rdi 1d82e: e8 6d 4b ff ff callq 123a0 <_ZNSsC1Ev@plt> 1d833: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d837: 48 83 c0 10 add $0x10,%rax 1d83b: 48 89 c7 mov %rax,%rdi 1d83e: e8 7d 61 ff ff callq 139c0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev@plt> { curr_level = NONE; 1d843: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d847: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) logger_name = name; 1d84e: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d852: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1d856: 48 89 d6 mov %rdx,%rsi 1d859: 48 89 c7 mov %rax,%rdi 1d85c: e8 cf 67 ff ff callq 14030 <_ZNSsaSERKSs@plt> } 1d861: eb 2f jmp 1d892 <_ZN4XLogC1ERKSs+0x7c> 1d863: 48 89 c3 mov %rax,%rbx XLog::XLog() { curr_level = NONE; } XLog::XLog(const string& name) 1d866: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d86a: 48 83 c0 10 add $0x10,%rax 1d86e: 48 89 c7 mov %rax,%rdi 1d871: e8 6a 4e ff ff callq 126e0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EED1Ev@plt> 1d876: eb 03 jmp 1d87b <_ZN4XLogC1ERKSs+0x65> 1d878: 48 89 c3 mov %rax,%rbx 1d87b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1d87f: 48 89 c7 mov %rax,%rdi 1d882: e8 b9 55 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1d887: 48 89 d8 mov %rbx,%rax 1d88a: 48 89 c7 mov %rax,%rdi 1d88d: e8 8e 66 ff ff callq 13f20 <_Unwind_Resume@plt> { curr_level = NONE; logger_name = name; } 1d892: 48 83 c4 18 add $0x18,%rsp 1d896: 5b pop %rbx 1d897: 5d pop %rbp 1d898: c3 retq 1d899: 90 nop 000000000001d89a <_ZN4XLog8setLevelE8LogLevel>: void XLog::setLevel(LogLevel level) { 1d89a: 55 push %rbp 1d89b: 48 89 e5 mov %rsp,%rbp 1d89e: 48 83 ec 30 sub $0x30,%rsp 1d8a2: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1d8a6: 89 75 d4 mov %esi,-0x2c(%rbp) curr_level = level; 1d8a9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d8ad: 8b 55 d4 mov -0x2c(%rbp),%edx 1d8b0: 89 50 08 mov %edx,0x8(%rax) set::iterator it = log_handlers.begin(); 1d8b3: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d8b7: 48 83 c0 10 add $0x10,%rax 1d8bb: 48 89 c7 mov %rax,%rdi 1d8be: e8 2d 53 ff ff callq 12bf0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1d8c3: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1d8c7: eb 34 jmp 1d8fd <_ZN4XLog8setLevelE8LogLevel+0x63> (*it)->setLevel(level); 1d8c9: 48 8d 45 e0 lea -0x20(%rbp),%rax 1d8cd: 48 89 c7 mov %rax,%rdi 1d8d0: e8 bb 5f ff ff callq 13890 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1d8d5: 48 8b 00 mov (%rax),%rax 1d8d8: 48 8b 10 mov (%rax),%rdx 1d8db: 48 83 c2 20 add $0x20,%rdx 1d8df: 48 8b 0a mov (%rdx),%rcx 1d8e2: 8b 55 d4 mov -0x2c(%rbp),%edx 1d8e5: 89 d6 mov %edx,%esi 1d8e7: 48 89 c7 mov %rax,%rdi 1d8ea: ff d1 callq *%rcx it++; 1d8ec: 48 8d 45 e0 lea -0x20(%rbp),%rax 1d8f0: be 00 00 00 00 mov $0x0,%esi 1d8f5: 48 89 c7 mov %rax,%rdi 1d8f8: e8 a3 53 ff ff callq 12ca0 <_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()) { 1d8fd: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d901: 48 83 c0 10 add $0x10,%rax 1d905: 48 89 c7 mov %rax,%rdi 1d908: e8 d3 5d ff ff callq 136e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1d90d: 48 89 45 f0 mov %rax,-0x10(%rbp) 1d911: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1d915: 48 8d 45 e0 lea -0x20(%rbp),%rax 1d919: 48 89 d6 mov %rdx,%rsi 1d91c: 48 89 c7 mov %rax,%rdi 1d91f: e8 1c 54 ff ff callq 12d40 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1d924: 84 c0 test %al,%al 1d926: 75 a1 jne 1d8c9 <_ZN4XLog8setLevelE8LogLevel+0x2f> (*it)->setLevel(level); it++; } } 1d928: c9 leaveq 1d929: c3 retq 000000000001d92a <_ZN4XLog10addHandlerER11XLogHandler>: void XLog::addHandler(XLogHandler& handler) { 1d92a: 55 push %rbp 1d92b: 48 89 e5 mov %rsp,%rbp 1d92e: 48 83 ec 40 sub $0x40,%rsp 1d932: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1d936: 48 89 75 d0 mov %rsi,-0x30(%rbp) log_handlers.insert(&handler); 1d93a: 48 8b 45 d0 mov -0x30(%rbp),%rax 1d93e: 48 89 45 f8 mov %rax,-0x8(%rbp) 1d942: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d946: 48 8d 50 10 lea 0x10(%rax),%rdx 1d94a: 48 8d 45 f8 lea -0x8(%rbp),%rax 1d94e: 48 89 c6 mov %rax,%rsi 1d951: 48 89 d7 mov %rdx,%rdi 1d954: e8 17 4b ff ff callq 12470 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_@plt> 1d959: 48 89 c1 mov %rax,%rcx 1d95c: 89 d0 mov %edx,%eax 1d95e: 48 89 4d c0 mov %rcx,-0x40(%rbp) 1d962: 89 45 c8 mov %eax,-0x38(%rbp) 1d965: 48 8b 45 c0 mov -0x40(%rbp),%rax 1d969: 48 89 45 e0 mov %rax,-0x20(%rbp) 1d96d: 48 8b 45 c8 mov -0x38(%rbp),%rax 1d971: 48 89 45 e8 mov %rax,-0x18(%rbp) } 1d975: c9 leaveq 1d976: c3 retq 1d977: 90 nop 000000000001d978 <_ZN4XLog13removeHandlerEP11XLogHandler>: void XLog::removeHandler(XLogHandler* const handler) { 1d978: 55 push %rbp 1d979: 48 89 e5 mov %rsp,%rbp 1d97c: 48 83 ec 30 sub $0x30,%rsp 1d980: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1d984: 48 89 75 d0 mov %rsi,-0x30(%rbp) set::iterator it = log_handlers.find(handler); 1d988: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d98c: 48 8d 50 10 lea 0x10(%rax),%rdx 1d990: 48 8d 45 d0 lea -0x30(%rbp),%rax 1d994: 48 89 c6 mov %rax,%rsi 1d997: 48 89 d7 mov %rdx,%rdi 1d99a: e8 31 61 ff ff callq 13ad0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE4findERKS1_@plt> 1d99f: 48 89 45 e0 mov %rax,-0x20(%rbp) if (it != log_handlers.end()) 1d9a3: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d9a7: 48 83 c0 10 add $0x10,%rax 1d9ab: 48 89 c7 mov %rax,%rdi 1d9ae: e8 2d 5d ff ff callq 136e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1d9b3: 48 89 45 f0 mov %rax,-0x10(%rbp) 1d9b7: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1d9bb: 48 8d 45 e0 lea -0x20(%rbp),%rax 1d9bf: 48 89 d6 mov %rdx,%rsi 1d9c2: 48 89 c7 mov %rax,%rdi 1d9c5: e8 76 53 ff ff callq 12d40 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1d9ca: 84 c0 test %al,%al 1d9cc: 74 17 je 1d9e5 <_ZN4XLog13removeHandlerEP11XLogHandler+0x6d> log_handlers.erase(it); 1d9ce: 48 8b 45 d8 mov -0x28(%rbp),%rax 1d9d2: 48 8d 50 10 lea 0x10(%rax),%rdx 1d9d6: 48 8b 45 e0 mov -0x20(%rbp),%rax 1d9da: 48 89 c6 mov %rax,%rsi 1d9dd: 48 89 d7 mov %rdx,%rdi 1d9e0: e8 fb 61 ff ff callq 13be0 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt> } 1d9e5: c9 leaveq 1d9e6: c3 retq 1d9e7: 90 nop 000000000001d9e8 <_ZN4XLog5fatalEPKcS1_S1_z>: void XLog::fatal(const char* origin, const char* func, const char* format, ...) { 1d9e8: 55 push %rbp 1d9e9: 48 89 e5 mov %rsp,%rbp 1d9ec: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1d9f3: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1d9fa: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1da01: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1da08: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1da0f: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1da16: 84 c0 test %al,%al 1da18: 74 20 je 1da3a <_ZN4XLog5fatalEPKcS1_S1_z+0x52> 1da1a: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1da1e: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1da22: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1da26: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1da2a: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1da2e: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1da32: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1da36: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1da3a: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (FATAL > curr_level) 1da41: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1da48: 8b 40 08 mov 0x8(%rax),%eax 1da4b: 85 c0 test %eax,%eax 1da4d: 7e 65 jle 1dab4 <_ZN4XLog5fatalEPKcS1_S1_z+0xcc> return; va_list ap; va_start(ap, format); 1da4f: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1da56: 00 00 00 1da59: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1da60: 00 00 00 1da63: 48 8d 45 10 lea 0x10(%rbp),%rax 1da67: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1da6e: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1da75: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, FATAL, format, ap); 1da7c: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1da83: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1da8a: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1da91: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1da98: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1da9f: 49 89 f9 mov %rdi,%r9 1daa2: 49 89 c8 mov %rcx,%r8 1daa5: b9 01 00 00 00 mov $0x1,%ecx 1daaa: 48 89 c7 mov %rax,%rdi 1daad: e8 ce 4a ff ff callq 12580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1dab2: eb 01 jmp 1dab5 <_ZN4XLog5fatalEPKcS1_S1_z+0xcd> } void XLog::fatal(const char* origin, const char* func, const char* format, ...) { if (FATAL > curr_level) return; 1dab4: 90 nop va_list ap; va_start(ap, format); log(origin, func, FATAL, format, ap); va_end(ap); } 1dab5: c9 leaveq 1dab6: c3 retq 1dab7: 90 nop 000000000001dab8 <_ZN4XLog5errorEPKcS1_S1_z>: void XLog::error(const char* origin, const char* func, const char* format, ...) { 1dab8: 55 push %rbp 1dab9: 48 89 e5 mov %rsp,%rbp 1dabc: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1dac3: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1daca: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1dad1: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1dad8: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1dadf: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1dae6: 84 c0 test %al,%al 1dae8: 74 20 je 1db0a <_ZN4XLog5errorEPKcS1_S1_z+0x52> 1daea: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1daee: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1daf2: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1daf6: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1dafa: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1dafe: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1db02: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1db06: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1db0a: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (ERROR > curr_level) 1db11: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1db18: 8b 40 08 mov 0x8(%rax),%eax 1db1b: 83 f8 01 cmp $0x1,%eax 1db1e: 7e 65 jle 1db85 <_ZN4XLog5errorEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1db20: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1db27: 00 00 00 1db2a: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1db31: 00 00 00 1db34: 48 8d 45 10 lea 0x10(%rbp),%rax 1db38: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1db3f: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1db46: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, ERROR, format, ap); 1db4d: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1db54: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1db5b: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1db62: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1db69: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1db70: 49 89 f9 mov %rdi,%r9 1db73: 49 89 c8 mov %rcx,%r8 1db76: b9 02 00 00 00 mov $0x2,%ecx 1db7b: 48 89 c7 mov %rax,%rdi 1db7e: e8 fd 49 ff ff callq 12580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1db83: eb 01 jmp 1db86 <_ZN4XLog5errorEPKcS1_S1_z+0xce> } void XLog::error(const char* origin, const char* func, const char* format, ...) { if (ERROR > curr_level) return; 1db85: 90 nop va_list ap; va_start(ap, format); log(origin, func, ERROR, format, ap); va_end(ap); } 1db86: c9 leaveq 1db87: c3 retq 000000000001db88 <_ZN4XLog7warningEPKcS1_S1_z>: void XLog::warning(const char* origin, const char* func, const char* format, ...) { 1db88: 55 push %rbp 1db89: 48 89 e5 mov %rsp,%rbp 1db8c: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1db93: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1db9a: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1dba1: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1dba8: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1dbaf: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1dbb6: 84 c0 test %al,%al 1dbb8: 74 20 je 1dbda <_ZN4XLog7warningEPKcS1_S1_z+0x52> 1dbba: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1dbbe: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1dbc2: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1dbc6: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1dbca: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1dbce: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1dbd2: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1dbd6: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1dbda: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (WARNING > curr_level) 1dbe1: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dbe8: 8b 40 08 mov 0x8(%rax),%eax 1dbeb: 83 f8 02 cmp $0x2,%eax 1dbee: 7e 65 jle 1dc55 <_ZN4XLog7warningEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1dbf0: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1dbf7: 00 00 00 1dbfa: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1dc01: 00 00 00 1dc04: 48 8d 45 10 lea 0x10(%rbp),%rax 1dc08: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1dc0f: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1dc16: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, WARNING, format, ap); 1dc1d: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1dc24: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1dc2b: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1dc32: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1dc39: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dc40: 49 89 f9 mov %rdi,%r9 1dc43: 49 89 c8 mov %rcx,%r8 1dc46: b9 03 00 00 00 mov $0x3,%ecx 1dc4b: 48 89 c7 mov %rax,%rdi 1dc4e: e8 2d 49 ff ff callq 12580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1dc53: eb 01 jmp 1dc56 <_ZN4XLog7warningEPKcS1_S1_z+0xce> } void XLog::warning(const char* origin, const char* func, const char* format, ...) { if (WARNING > curr_level) return; 1dc55: 90 nop va_list ap; va_start(ap, format); log(origin, func, WARNING, format, ap); va_end(ap); } 1dc56: c9 leaveq 1dc57: c3 retq 000000000001dc58 <_ZN4XLog4infoEPKcS1_S1_z>: void XLog::info(const char* origin, const char* func, const char* format, ...) { 1dc58: 55 push %rbp 1dc59: 48 89 e5 mov %rsp,%rbp 1dc5c: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1dc63: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1dc6a: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1dc71: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1dc78: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1dc7f: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1dc86: 84 c0 test %al,%al 1dc88: 74 20 je 1dcaa <_ZN4XLog4infoEPKcS1_S1_z+0x52> 1dc8a: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1dc8e: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1dc92: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1dc96: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1dc9a: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1dc9e: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1dca2: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1dca6: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1dcaa: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (INFO > curr_level) 1dcb1: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dcb8: 8b 40 08 mov 0x8(%rax),%eax 1dcbb: 83 f8 03 cmp $0x3,%eax 1dcbe: 7e 65 jle 1dd25 <_ZN4XLog4infoEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1dcc0: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1dcc7: 00 00 00 1dcca: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1dcd1: 00 00 00 1dcd4: 48 8d 45 10 lea 0x10(%rbp),%rax 1dcd8: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1dcdf: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1dce6: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, INFO, format, ap); 1dced: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1dcf4: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1dcfb: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1dd02: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1dd09: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dd10: 49 89 f9 mov %rdi,%r9 1dd13: 49 89 c8 mov %rcx,%r8 1dd16: b9 04 00 00 00 mov $0x4,%ecx 1dd1b: 48 89 c7 mov %rax,%rdi 1dd1e: e8 5d 48 ff ff callq 12580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1dd23: eb 01 jmp 1dd26 <_ZN4XLog4infoEPKcS1_S1_z+0xce> } void XLog::info(const char* origin, const char* func, const char* format, ...) { if (INFO > curr_level) return; 1dd25: 90 nop va_list ap; va_start(ap, format); log(origin, func, INFO, format, ap); va_end(ap); } 1dd26: c9 leaveq 1dd27: c3 retq 000000000001dd28 <_ZN4XLog5debugEPKcS1_S1_z>: void XLog::debug(const char* origin, const char* func, const char* format, ...) { 1dd28: 55 push %rbp 1dd29: 48 89 e5 mov %rsp,%rbp 1dd2c: 48 81 ec f0 00 00 00 sub $0xf0,%rsp 1dd33: 48 89 bd 28 ff ff ff mov %rdi,-0xd8(%rbp) 1dd3a: 48 89 b5 20 ff ff ff mov %rsi,-0xe0(%rbp) 1dd41: 48 89 95 18 ff ff ff mov %rdx,-0xe8(%rbp) 1dd48: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) 1dd4f: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) 1dd56: 84 c0 test %al,%al 1dd58: 74 20 je 1dd7a <_ZN4XLog5debugEPKcS1_S1_z+0x52> 1dd5a: 0f 29 45 80 movaps %xmm0,-0x80(%rbp) 1dd5e: 0f 29 4d 90 movaps %xmm1,-0x70(%rbp) 1dd62: 0f 29 55 a0 movaps %xmm2,-0x60(%rbp) 1dd66: 0f 29 5d b0 movaps %xmm3,-0x50(%rbp) 1dd6a: 0f 29 65 c0 movaps %xmm4,-0x40(%rbp) 1dd6e: 0f 29 6d d0 movaps %xmm5,-0x30(%rbp) 1dd72: 0f 29 75 e0 movaps %xmm6,-0x20(%rbp) 1dd76: 0f 29 7d f0 movaps %xmm7,-0x10(%rbp) 1dd7a: 48 89 8d 10 ff ff ff mov %rcx,-0xf0(%rbp) if (DEBUG > curr_level) 1dd81: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dd88: 8b 40 08 mov 0x8(%rax),%eax 1dd8b: 83 f8 04 cmp $0x4,%eax 1dd8e: 7e 65 jle 1ddf5 <_ZN4XLog5debugEPKcS1_S1_z+0xcd> return; va_list ap; va_start(ap, format); 1dd90: c7 85 38 ff ff ff 20 movl $0x20,-0xc8(%rbp) 1dd97: 00 00 00 1dd9a: c7 85 3c ff ff ff 30 movl $0x30,-0xc4(%rbp) 1dda1: 00 00 00 1dda4: 48 8d 45 10 lea 0x10(%rbp),%rax 1dda8: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) 1ddaf: 48 8d 85 50 ff ff ff lea -0xb0(%rbp),%rax 1ddb6: 48 89 85 48 ff ff ff mov %rax,-0xb8(%rbp) log(origin, func, DEBUG, format, ap); 1ddbd: 48 8d bd 38 ff ff ff lea -0xc8(%rbp),%rdi 1ddc4: 48 8b 8d 10 ff ff ff mov -0xf0(%rbp),%rcx 1ddcb: 48 8b 95 18 ff ff ff mov -0xe8(%rbp),%rdx 1ddd2: 48 8b b5 20 ff ff ff mov -0xe0(%rbp),%rsi 1ddd9: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax 1dde0: 49 89 f9 mov %rdi,%r9 1dde3: 49 89 c8 mov %rcx,%r8 1dde6: b9 05 00 00 00 mov $0x5,%ecx 1ddeb: 48 89 c7 mov %rax,%rdi 1ddee: e8 8d 47 ff ff callq 12580 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag@plt> 1ddf3: eb 01 jmp 1ddf6 <_ZN4XLog5debugEPKcS1_S1_z+0xce> } void XLog::debug(const char* origin, const char* func, const char* format, ...) { if (DEBUG > curr_level) return; 1ddf5: 90 nop va_list ap; va_start(ap, format); log(origin, func, DEBUG, format, ap); va_end(ap); } 1ddf6: c9 leaveq 1ddf7: c3 retq 000000000001ddf8 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLog::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1ddf8: 55 push %rbp 1ddf9: 48 89 e5 mov %rsp,%rbp 1ddfc: 48 83 ec 50 sub $0x50,%rsp 1de00: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1de04: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1de08: 48 89 55 c8 mov %rdx,-0x38(%rbp) 1de0c: 89 4d c4 mov %ecx,-0x3c(%rbp) 1de0f: 4c 89 45 b8 mov %r8,-0x48(%rbp) 1de13: 4c 89 4d b0 mov %r9,-0x50(%rbp) set::iterator it = log_handlers.begin(); 1de17: 48 8b 45 d8 mov -0x28(%rbp),%rax 1de1b: 48 83 c0 10 add $0x10,%rax 1de1f: 48 89 c7 mov %rax,%rdi 1de22: e8 c9 4d ff ff callq 12bf0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1de27: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1de2b: eb 55 jmp 1de82 <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x8a> XLogHandler * handler = *it; 1de2d: 48 8d 45 e0 lea -0x20(%rbp),%rax 1de31: 48 89 c7 mov %rax,%rdi 1de34: e8 57 5a ff ff callq 13890 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1de39: 48 8b 00 mov (%rax),%rax 1de3c: 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); 1de40: 48 8b 45 f8 mov -0x8(%rbp),%rax 1de44: 48 8b 00 mov (%rax),%rax 1de47: 48 83 c0 18 add $0x18,%rax 1de4b: 4c 8b 10 mov (%rax),%r10 1de4e: 4c 8b 45 b0 mov -0x50(%rbp),%r8 1de52: 48 8b 7d b8 mov -0x48(%rbp),%rdi 1de56: 8b 4d c4 mov -0x3c(%rbp),%ecx 1de59: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1de5d: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1de61: 48 8b 45 f8 mov -0x8(%rbp),%rax 1de65: 4d 89 c1 mov %r8,%r9 1de68: 49 89 f8 mov %rdi,%r8 1de6b: 48 89 c7 mov %rax,%rdi 1de6e: 41 ff d2 callq *%r10 it++; 1de71: 48 8d 45 e0 lea -0x20(%rbp),%rax 1de75: be 00 00 00 00 mov $0x0,%esi 1de7a: 48 89 c7 mov %rax,%rdi 1de7d: e8 1e 4e ff ff callq 12ca0 <_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()) { 1de82: 48 8b 45 d8 mov -0x28(%rbp),%rax 1de86: 48 83 c0 10 add $0x10,%rax 1de8a: 48 89 c7 mov %rax,%rdi 1de8d: e8 4e 58 ff ff callq 136e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1de92: 48 89 45 f0 mov %rax,-0x10(%rbp) 1de96: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1de9a: 48 8d 45 e0 lea -0x20(%rbp),%rax 1de9e: 48 89 d6 mov %rdx,%rsi 1dea1: 48 89 c7 mov %rax,%rdi 1dea4: e8 97 4e ff ff callq 12d40 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1dea9: 84 c0 test %al,%al 1deab: 75 80 jne 1de2d <_ZN4XLog3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x35> // //free(demangled); handler->log(origin, func, level, format, arglist); it++; } } 1dead: c9 leaveq 1deae: c3 retq 1deaf: 90 nop 000000000001deb0 <_ZN4XLog5flushEv>: void XLog::flush() { 1deb0: 55 push %rbp 1deb1: 48 89 e5 mov %rsp,%rbp 1deb4: 48 83 ec 30 sub $0x30,%rsp 1deb8: 48 89 7d d8 mov %rdi,-0x28(%rbp) set::iterator it = log_handlers.begin(); 1debc: 48 8b 45 d8 mov -0x28(%rbp),%rax 1dec0: 48 83 c0 10 add $0x10,%rax 1dec4: 48 89 c7 mov %rax,%rdi 1dec7: e8 24 4d ff ff callq 12bf0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE5beginEv@plt> 1decc: 48 89 45 e0 mov %rax,-0x20(%rbp) while (it != log_handlers.end()) { 1ded0: eb 3b jmp 1df0d <_ZN4XLog5flushEv+0x5d> XLogHandler * handler = *it; 1ded2: 48 8d 45 e0 lea -0x20(%rbp),%rax 1ded6: 48 89 c7 mov %rax,%rdi 1ded9: e8 b2 59 ff ff callq 13890 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv@plt> 1dede: 48 8b 00 mov (%rax),%rax 1dee1: 48 89 45 f8 mov %rax,-0x8(%rbp) (*handler).flush(); 1dee5: 48 8b 45 f8 mov -0x8(%rbp),%rax 1dee9: 48 8b 00 mov (%rax),%rax 1deec: 48 83 c0 10 add $0x10,%rax 1def0: 48 8b 10 mov (%rax),%rdx 1def3: 48 8b 45 f8 mov -0x8(%rbp),%rax 1def7: 48 89 c7 mov %rax,%rdi 1defa: ff d2 callq *%rdx it++; 1defc: 48 8d 45 e0 lea -0x20(%rbp),%rax 1df00: be 00 00 00 00 mov $0x0,%esi 1df05: 48 89 c7 mov %rax,%rdi 1df08: e8 93 4d ff ff callq 12ca0 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi@plt> } void XLog::flush() { set::iterator it = log_handlers.begin(); while (it != log_handlers.end()) { 1df0d: 48 8b 45 d8 mov -0x28(%rbp),%rax 1df11: 48 83 c0 10 add $0x10,%rax 1df15: 48 89 c7 mov %rax,%rdi 1df18: e8 c3 57 ff ff callq 136e0 <_ZNKSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE3endEv@plt> 1df1d: 48 89 45 f0 mov %rax,-0x10(%rbp) 1df21: 48 8d 55 f0 lea -0x10(%rbp),%rdx 1df25: 48 8d 45 e0 lea -0x20(%rbp),%rax 1df29: 48 89 d6 mov %rdx,%rsi 1df2c: 48 89 c7 mov %rax,%rdi 1df2f: e8 0c 4e ff ff callq 12d40 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_@plt> 1df34: 84 c0 test %al,%al 1df36: 75 9a jne 1ded2 <_ZN4XLog5flushEv+0x22> XLogHandler * handler = *it; (*handler).flush(); it++; } } 1df38: c9 leaveq 1df39: c3 retq 000000000001df3a <_ZN11XLogManagerC1Ev>: /******************************************************************************** * XLogManager ********************************************************************************/ XLogManager::XLogManager() 1df3a: 55 push %rbp 1df3b: 48 89 e5 mov %rsp,%rbp 1df3e: 53 push %rbx 1df3f: 48 83 ec 18 sub $0x18,%rsp 1df43: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1df47: 48 8b 45 e8 mov -0x18(%rbp),%rax 1df4b: 48 89 c7 mov %rax,%rdi 1df4e: e8 fd 57 ff ff callq 13750 <_ZN6XMutexC1Ev@plt> 1df53: 48 8b 45 e8 mov -0x18(%rbp),%rax 1df57: 48 83 c0 28 add $0x28,%rax 1df5b: 48 89 c7 mov %rax,%rdi 1df5e: e8 8d 45 ff ff callq 124f0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEC1Ev@plt> 1df63: 48 8b 45 e8 mov -0x18(%rbp),%rax 1df67: 48 83 c0 58 add $0x58,%rax 1df6b: 48 89 c7 mov %rax,%rdi 1df6e: e8 2d 44 ff ff callq 123a0 <_ZNSsC1Ev@plt> { } 1df73: eb 2f jmp 1dfa4 <_ZN11XLogManagerC1Ev+0x6a> 1df75: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLogManager ********************************************************************************/ XLogManager::XLogManager() 1df78: 48 8b 45 e8 mov -0x18(%rbp),%rax 1df7c: 48 83 c0 28 add $0x28,%rax 1df80: 48 89 c7 mov %rax,%rdi 1df83: e8 f8 50 ff ff callq 13080 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1df88: eb 03 jmp 1df8d <_ZN11XLogManagerC1Ev+0x53> 1df8a: 48 89 c3 mov %rax,%rbx 1df8d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1df91: 48 89 c7 mov %rax,%rdi 1df94: e8 b7 4f ff ff callq 12f50 <_ZN6XMutexD1Ev@plt> 1df99: 48 89 d8 mov %rbx,%rax 1df9c: 48 89 c7 mov %rax,%rdi 1df9f: e8 7c 5f ff ff callq 13f20 <_Unwind_Resume@plt> { } 1dfa4: 48 83 c4 18 add $0x18,%rsp 1dfa8: 5b pop %rbx 1dfa9: 5d pop %rbp 1dfaa: c3 retq 1dfab: 90 nop 000000000001dfac <_ZN11XLogManagerD1Ev>: XLogManager::~XLogManager() 1dfac: 55 push %rbp 1dfad: 48 89 e5 mov %rsp,%rbp 1dfb0: 53 push %rbx 1dfb1: 48 83 ec 58 sub $0x58,%rsp 1dfb5: 48 89 7d a8 mov %rdi,-0x58(%rbp) { map::const_iterator it = loggers.begin(); 1dfb9: 48 8b 45 a8 mov -0x58(%rbp),%rax 1dfbd: 48 83 c0 28 add $0x28,%rax 1dfc1: 48 89 c7 mov %rax,%rdi 1dfc4: e8 97 55 ff ff callq 13560 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE5beginEv@plt> 1dfc9: 48 89 45 c0 mov %rax,-0x40(%rbp) 1dfcd: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1dfd1: 48 8d 45 b0 lea -0x50(%rbp),%rax 1dfd5: 48 89 d6 mov %rdx,%rsi 1dfd8: 48 89 c7 mov %rax,%rdi 1dfdb: e8 00 4a ff ff callq 129e0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> while (it != loggers.end()) { 1dfe0: eb 36 jmp 1e018 <_ZN11XLogManagerD1Ev+0x6c> delete it->second; 1dfe2: 48 8d 45 b0 lea -0x50(%rbp),%rax 1dfe6: 48 89 c7 mov %rax,%rdi 1dfe9: e8 22 45 ff ff callq 12510 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv@plt> 1dfee: 48 8b 58 08 mov 0x8(%rax),%rbx 1dff2: 48 85 db test %rbx,%rbx 1dff5: 74 10 je 1e007 <_ZN11XLogManagerD1Ev+0x5b> 1dff7: 48 89 df mov %rbx,%rdi 1dffa: e8 a1 53 ff ff callq 133a0 <_ZN4XLogD1Ev@plt> 1dfff: 48 89 df mov %rbx,%rdi 1e002: e8 39 47 ff ff callq 12740 <_ZdlPv@plt> it++; 1e007: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e00b: be 00 00 00 00 mov $0x0,%esi 1e010: 48 89 c7 mov %rax,%rdi 1e013: e8 28 4f ff ff callq 12f40 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi@plt> } XLogManager::~XLogManager() { map::const_iterator it = loggers.begin(); while (it != loggers.end()) { 1e018: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e01c: 48 83 c0 28 add $0x28,%rax 1e020: 48 89 c7 mov %rax,%rdi 1e023: e8 c8 4c ff ff callq 12cf0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1e028: 48 89 45 e0 mov %rax,-0x20(%rbp) 1e02c: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1e030: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e034: 48 89 d6 mov %rdx,%rsi 1e037: 48 89 c7 mov %rax,%rdi 1e03a: e8 a1 49 ff ff callq 129e0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> 1e03f: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1e043: 48 8d 45 b0 lea -0x50(%rbp),%rax 1e047: 48 89 d6 mov %rdx,%rsi 1e04a: 48 89 c7 mov %rax,%rdi 1e04d: e8 be 50 ff ff callq 13110 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_@plt> 1e052: 84 c0 test %al,%al 1e054: 75 8c jne 1dfe2 <_ZN11XLogManagerD1Ev+0x36> XLogManager::XLogManager() { } XLogManager::~XLogManager() 1e056: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e05a: 48 83 c0 58 add $0x58,%rax 1e05e: 48 89 c7 mov %rax,%rdi 1e061: e8 da 4d ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e066: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e06a: 48 83 c0 28 add $0x28,%rax 1e06e: 48 89 c7 mov %rax,%rdi 1e071: e8 0a 50 ff ff callq 13080 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1e076: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e07a: 48 89 c7 mov %rax,%rdi 1e07d: e8 ce 4e ff ff callq 12f50 <_ZN6XMutexD1Ev@plt> map::const_iterator it = loggers.begin(); while (it != loggers.end()) { delete it->second; it++; } } 1e082: 48 83 c4 58 add $0x58,%rsp 1e086: 5b pop %rbx 1e087: 5d pop %rbp 1e088: c3 retq 1e089: 48 89 c3 mov %rax,%rbx XLogManager::XLogManager() { } XLogManager::~XLogManager() 1e08c: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e090: 48 83 c0 58 add $0x58,%rax 1e094: 48 89 c7 mov %rax,%rdi 1e097: e8 a4 4d ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e09c: eb 03 jmp 1e0a1 <_ZN11XLogManagerD1Ev+0xf5> 1e09e: 48 89 c3 mov %rax,%rbx 1e0a1: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e0a5: 48 83 c0 28 add $0x28,%rax 1e0a9: 48 89 c7 mov %rax,%rdi 1e0ac: e8 cf 4f ff ff callq 13080 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEED1Ev@plt> 1e0b1: eb 03 jmp 1e0b6 <_ZN11XLogManagerD1Ev+0x10a> 1e0b3: 48 89 c3 mov %rax,%rbx 1e0b6: 48 8b 45 a8 mov -0x58(%rbp),%rax 1e0ba: 48 89 c7 mov %rax,%rdi 1e0bd: e8 8e 4e ff ff callq 12f50 <_ZN6XMutexD1Ev@plt> 1e0c2: 48 89 d8 mov %rbx,%rax 1e0c5: 48 89 c7 mov %rax,%rdi 1e0c8: e8 53 5e ff ff callq 13f20 <_Unwind_Resume@plt> 1e0cd: 90 nop 000000000001e0ce <_ZN11XLogManager8instanceEv>: it++; } } XLogManager& XLogManager::instance() { 1e0ce: 55 push %rbp 1e0cf: 48 89 e5 mov %rsp,%rbp 1e0d2: 41 54 push %r12 1e0d4: 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; 1e0d5: 48 8d 05 ac b5 20 00 lea 0x20b5ac(%rip),%rax # 229688 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e0dc: 0f b6 00 movzbl (%rax),%eax 1e0df: 84 c0 test %al,%al 1e0e1: 75 50 jne 1e133 <_ZN11XLogManager8instanceEv+0x65> 1e0e3: 48 8d 3d 9e b5 20 00 lea 0x20b59e(%rip),%rdi # 229688 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e0ea: e8 41 45 ff ff callq 12630 <__cxa_guard_acquire@plt> 1e0ef: 85 c0 test %eax,%eax 1e0f1: 0f 95 c0 setne %al 1e0f4: 84 c0 test %al,%al 1e0f6: 74 3b je 1e133 <_ZN11XLogManager8instanceEv+0x65> 1e0f8: 41 bc 00 00 00 00 mov $0x0,%r12d 1e0fe: 48 8d 3d 9b b5 20 00 lea 0x20b59b(%rip),%rdi # 2296a0 <_ZZN11XLogManager8instanceEvE11log_manager> 1e105: e8 c6 44 ff ff callq 125d0 <_ZN11XLogManagerC1Ev@plt> 1e10a: 48 8d 3d 77 b5 20 00 lea 0x20b577(%rip),%rdi # 229688 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e111: e8 3a 50 ff ff callq 13150 <__cxa_guard_release@plt> 1e116: 48 8b 05 5b 9e 20 00 mov 0x209e5b(%rip),%rax # 227f78 <_DYNAMIC+0x228> 1e11d: 48 8b 15 4c 9e 20 00 mov 0x209e4c(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 1e124: 48 8d 35 75 b5 20 00 lea 0x20b575(%rip),%rsi # 2296a0 <_ZZN11XLogManager8instanceEvE11log_manager> 1e12b: 48 89 c7 mov %rax,%rdi 1e12e: e8 2d 4a ff ff callq 12b60 <__cxa_atexit@plt> #else #error Add critical section for your platform here #endif return log_manager; 1e133: 48 8d 05 66 b5 20 00 lea 0x20b566(%rip),%rax # 2296a0 <_ZZN11XLogManager8instanceEvE11log_manager> } 1e13a: 5b pop %rbx 1e13b: 41 5c pop %r12 1e13d: 5d pop %rbp 1e13e: c3 retq 1e13f: 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; 1e142: 45 84 e4 test %r12b,%r12b 1e145: 75 0c jne 1e153 <_ZN11XLogManager8instanceEv+0x85> 1e147: 48 8d 3d 3a b5 20 00 lea 0x20b53a(%rip),%rdi # 229688 <_ZGVZN11XLogManager8instanceEvE11log_manager> 1e14e: e8 0d 5c ff ff callq 13d60 <__cxa_guard_abort@plt> 1e153: 48 89 d8 mov %rbx,%rax 1e156: 48 89 c7 mov %rax,%rdi 1e159: e8 c2 5d ff ff callq 13f20 <_Unwind_Resume@plt> 000000000001e15e <_ZN11XLogManager6getLogEPKc>: return log_manager; } XLogRef XLogManager::getLog(const char* name) { 1e15e: 55 push %rbp 1e15f: 48 89 e5 mov %rsp,%rbp 1e162: 41 54 push %r12 1e164: 53 push %rbx 1e165: 48 83 ec 70 sub $0x70,%rsp 1e169: 48 89 7d 88 mov %rdi,-0x78(%rbp) 1e16d: 48 89 75 80 mov %rsi,-0x80(%rbp) mutex.lock(); 1e171: 48 8b 45 88 mov -0x78(%rbp),%rax 1e175: 48 89 c7 mov %rax,%rdi 1e178: e8 a3 45 ff ff callq 12720 <_ZN6XMutex4lockEv@plt> if (loggers.find(name) == loggers.end()) 1e17d: 48 8b 45 88 mov -0x78(%rbp),%rax 1e181: 48 83 c0 28 add $0x28,%rax 1e185: 48 89 c7 mov %rax,%rdi 1e188: e8 63 4b ff ff callq 12cf0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1e18d: 48 89 45 b0 mov %rax,-0x50(%rbp) 1e191: 48 8d 45 ec lea -0x14(%rbp),%rax 1e195: 48 89 c7 mov %rax,%rdi 1e198: e8 43 5c ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1e19d: 48 8d 55 ec lea -0x14(%rbp),%rdx 1e1a1: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1e1a5: 48 8d 45 90 lea -0x70(%rbp),%rax 1e1a9: 48 89 ce mov %rcx,%rsi 1e1ac: 48 89 c7 mov %rax,%rdi 1e1af: e8 3c 51 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1e1b4: 48 8b 45 88 mov -0x78(%rbp),%rax 1e1b8: 48 8d 50 28 lea 0x28(%rax),%rdx 1e1bc: 48 8d 45 90 lea -0x70(%rbp),%rax 1e1c0: 48 89 c6 mov %rax,%rsi 1e1c3: 48 89 d7 mov %rdx,%rdi 1e1c6: e8 45 4a ff ff callq 12c10 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE4findERS5_@plt> 1e1cb: 48 89 45 a0 mov %rax,-0x60(%rbp) 1e1cf: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1e1d3: 48 8d 45 a0 lea -0x60(%rbp),%rax 1e1d7: 48 89 d6 mov %rdx,%rsi 1e1da: 48 89 c7 mov %rax,%rdi 1e1dd: e8 ce 41 ff ff callq 123b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 1e1e2: 89 c3 mov %eax,%ebx 1e1e4: 48 8d 45 90 lea -0x70(%rbp),%rax 1e1e8: 48 89 c7 mov %rax,%rdi 1e1eb: e8 50 4c ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e1f0: 48 8d 45 ec lea -0x14(%rbp),%rax 1e1f4: 48 89 c7 mov %rax,%rdi 1e1f7: e8 84 57 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e1fc: 84 db test %bl,%bl 1e1fe: 0f 84 ac 00 00 00 je 1e2b0 <_ZN11XLogManager6getLogEPKc+0x152> loggers[name] = new XLog(name); 1e204: 48 8d 45 ee lea -0x12(%rbp),%rax 1e208: 48 89 c7 mov %rax,%rdi 1e20b: e8 d0 5b ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1e210: 48 8d 55 ee lea -0x12(%rbp),%rdx 1e214: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1e218: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e21c: 48 89 ce mov %rcx,%rsi 1e21f: 48 89 c7 mov %rax,%rdi 1e222: e8 c9 50 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1e227: 4c 8d 65 d0 lea -0x30(%rbp),%r12 1e22b: bf 40 00 00 00 mov $0x40,%edi 1e230: e8 db 5c ff ff callq 13f10 <_Znwm@plt> 1e235: 48 89 c3 mov %rax,%rbx 1e238: 4c 89 e6 mov %r12,%rsi 1e23b: 48 89 df mov %rbx,%rdi 1e23e: e8 2d 4a ff ff callq 12c70 <_ZN4XLogC1ERKSs@plt> 1e243: 48 8d 45 ed lea -0x13(%rbp),%rax 1e247: 48 89 c7 mov %rax,%rdi 1e24a: e8 91 5b ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1e24f: 48 8d 55 ed lea -0x13(%rbp),%rdx 1e253: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1e257: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e25b: 48 89 ce mov %rcx,%rsi 1e25e: 48 89 c7 mov %rax,%rdi 1e261: e8 8a 50 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1e266: 48 8b 45 88 mov -0x78(%rbp),%rax 1e26a: 48 8d 50 28 lea 0x28(%rax),%rdx 1e26e: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e272: 48 89 c6 mov %rax,%rsi 1e275: 48 89 d7 mov %rdx,%rdi 1e278: e8 f3 42 ff ff callq 12570 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt> 1e27d: 48 89 18 mov %rbx,(%rax) 1e280: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e284: 48 89 c7 mov %rax,%rdi 1e287: e8 b4 4b ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e28c: 48 8d 45 ed lea -0x13(%rbp),%rax 1e290: 48 89 c7 mov %rax,%rdi 1e293: e8 e8 56 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e298: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e29c: 48 89 c7 mov %rax,%rdi 1e29f: e8 9c 4b ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e2a4: 48 8d 45 ee lea -0x12(%rbp),%rax 1e2a8: 48 89 c7 mov %rax,%rdi 1e2ab: e8 d0 56 ff ff callq 13980 <_ZNSaIcED1Ev@plt> mutex.unlock(); 1e2b0: 48 8b 45 88 mov -0x78(%rbp),%rax 1e2b4: 48 89 c7 mov %rax,%rdi 1e2b7: e8 34 5c ff ff callq 13ef0 <_ZN6XMutex6unlockEv@plt> return *(loggers[name]); 1e2bc: 48 8d 45 ef lea -0x11(%rbp),%rax 1e2c0: 48 89 c7 mov %rax,%rdi 1e2c3: e8 18 5b ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1e2c8: 48 8d 55 ef lea -0x11(%rbp),%rdx 1e2cc: 48 8b 4d 80 mov -0x80(%rbp),%rcx 1e2d0: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e2d4: 48 89 ce mov %rcx,%rsi 1e2d7: 48 89 c7 mov %rax,%rdi 1e2da: e8 11 50 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1e2df: 48 8b 45 88 mov -0x78(%rbp),%rax 1e2e3: 48 8d 50 28 lea 0x28(%rax),%rdx 1e2e7: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e2eb: 48 89 c6 mov %rax,%rsi 1e2ee: 48 89 d7 mov %rdx,%rdi 1e2f1: e8 7a 42 ff ff callq 12570 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_@plt> 1e2f6: 48 8b 18 mov (%rax),%rbx 1e2f9: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e2fd: 48 89 c7 mov %rax,%rdi 1e300: e8 3b 4b ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e305: 48 8d 45 ef lea -0x11(%rbp),%rax 1e309: 48 89 c7 mov %rax,%rdi 1e30c: e8 6f 56 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e311: 48 89 d8 mov %rbx,%rax } 1e314: 48 83 c4 70 add $0x70,%rsp 1e318: 5b pop %rbx 1e319: 41 5c pop %r12 1e31b: 5d pop %rbp 1e31c: c3 retq 1e31d: 48 89 c3 mov %rax,%rbx } XLogRef XLogManager::getLog(const char* name) { mutex.lock(); if (loggers.find(name) == loggers.end()) 1e320: 48 8d 45 90 lea -0x70(%rbp),%rax 1e324: 48 89 c7 mov %rax,%rdi 1e327: e8 14 4b ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e32c: eb 03 jmp 1e331 <_ZN11XLogManager6getLogEPKc+0x1d3> 1e32e: 48 89 c3 mov %rax,%rbx 1e331: 48 8d 45 ec lea -0x14(%rbp),%rax 1e335: 48 89 c7 mov %rax,%rdi 1e338: e8 43 56 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e33d: 48 89 d8 mov %rbx,%rax 1e340: 48 89 c7 mov %rax,%rdi 1e343: e8 d8 5b ff ff callq 13f20 <_Unwind_Resume@plt> 1e348: 49 89 c4 mov %rax,%r12 loggers[name] = new XLog(name); 1e34b: 48 89 df mov %rbx,%rdi 1e34e: e8 ed 43 ff ff callq 12740 <_ZdlPv@plt> 1e353: 4c 89 e3 mov %r12,%rbx 1e356: eb 25 jmp 1e37d <_ZN11XLogManager6getLogEPKc+0x21f> 1e358: 48 89 c3 mov %rax,%rbx 1e35b: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e35f: 48 89 c7 mov %rax,%rdi 1e362: e8 d9 4a ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e367: eb 03 jmp 1e36c <_ZN11XLogManager6getLogEPKc+0x20e> 1e369: 48 89 c3 mov %rax,%rbx 1e36c: 48 8d 45 ed lea -0x13(%rbp),%rax 1e370: 48 89 c7 mov %rax,%rdi 1e373: e8 08 56 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e378: eb 03 jmp 1e37d <_ZN11XLogManager6getLogEPKc+0x21f> 1e37a: 48 89 c3 mov %rax,%rbx 1e37d: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e381: 48 89 c7 mov %rax,%rdi 1e384: e8 b7 4a ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e389: eb 03 jmp 1e38e <_ZN11XLogManager6getLogEPKc+0x230> 1e38b: 48 89 c3 mov %rax,%rbx 1e38e: 48 8d 45 ee lea -0x12(%rbp),%rax 1e392: 48 89 c7 mov %rax,%rdi 1e395: e8 e6 55 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e39a: 48 89 d8 mov %rbx,%rax 1e39d: 48 89 c7 mov %rax,%rdi 1e3a0: e8 7b 5b ff ff callq 13f20 <_Unwind_Resume@plt> 1e3a5: 48 89 c3 mov %rax,%rbx mutex.unlock(); return *(loggers[name]); 1e3a8: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e3ac: 48 89 c7 mov %rax,%rdi 1e3af: e8 8c 4a ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e3b4: eb 03 jmp 1e3b9 <_ZN11XLogManager6getLogEPKc+0x25b> 1e3b6: 48 89 c3 mov %rax,%rbx 1e3b9: 48 8d 45 ef lea -0x11(%rbp),%rax 1e3bd: 48 89 c7 mov %rax,%rdi 1e3c0: e8 bb 55 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e3c5: 48 89 d8 mov %rbx,%rax 1e3c8: 48 89 c7 mov %rax,%rdi 1e3cb: e8 50 5b ff ff callq 13f20 <_Unwind_Resume@plt> 000000000001e3d0 <_ZN11XLogManager12setDirectoryEPKc>: } void XLogManager::setDirectory(const char* dir) { 1e3d0: 55 push %rbp 1e3d1: 48 89 e5 mov %rsp,%rbp 1e3d4: 48 83 ec 10 sub $0x10,%rsp 1e3d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1e3dc: 48 89 75 f0 mov %rsi,-0x10(%rbp) log_dir = dir; 1e3e0: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e3e4: 48 8d 50 58 lea 0x58(%rax),%rdx 1e3e8: 48 8b 45 f0 mov -0x10(%rbp),%rax 1e3ec: 48 89 c6 mov %rax,%rsi 1e3ef: 48 89 d7 mov %rdx,%rdi 1e3f2: e8 89 3f ff ff callq 12380 <_ZNSsaSEPKc@plt> /* * TODO: check if dir exists, if not, create (all sub-dirs) */ } 1e3f7: c9 leaveq 1e3f8: c3 retq 1e3f9: 90 nop 000000000001e3fa <_ZN11XLogHandlerC1Ev>: /******************************************************************************** * XLogHandler ********************************************************************************/ XLogHandler::XLogHandler() : 1e3fa: 55 push %rbp 1e3fb: 48 89 e5 mov %rsp,%rbp 1e3fe: 48 89 7d f8 mov %rdi,-0x8(%rbp) level(NONE) 1e402: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e406: 48 8b 15 a3 9b 20 00 mov 0x209ba3(%rip),%rdx # 227fb0 <_DYNAMIC+0x260> 1e40d: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e411: 48 89 10 mov %rdx,(%rax) 1e414: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e418: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) { } 1e41f: 5d pop %rbp 1e420: c3 retq 1e421: 90 nop 000000000001e422 <_ZN11XLogHandlerD1Ev>: XLogHandler::~XLogHandler() 1e422: 55 push %rbp 1e423: 48 89 e5 mov %rsp,%rbp 1e426: 48 83 ec 10 sub $0x10,%rsp 1e42a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1e42e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e432: 48 8b 15 77 9b 20 00 mov 0x209b77(%rip),%rdx # 227fb0 <_DYNAMIC+0x260> 1e439: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e43d: 48 89 10 mov %rdx,(%rax) { } 1e440: b8 00 00 00 00 mov $0x0,%eax 1e445: 83 e0 01 and $0x1,%eax 1e448: 84 c0 test %al,%al 1e44a: 74 0c je 1e458 <_ZN11XLogHandlerD1Ev+0x36> 1e44c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e450: 48 89 c7 mov %rax,%rdi 1e453: e8 e8 42 ff ff callq 12740 <_ZdlPv@plt> 1e458: c9 leaveq 1e459: c3 retq 000000000001e45a <_ZN11XLogHandlerD0Ev>: XLogHandler::XLogHandler() : level(NONE) { } XLogHandler::~XLogHandler() 1e45a: 55 push %rbp 1e45b: 48 89 e5 mov %rsp,%rbp 1e45e: 48 83 ec 10 sub $0x10,%rsp 1e462: 48 89 7d f8 mov %rdi,-0x8(%rbp) { } 1e466: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e46a: 48 89 c7 mov %rax,%rdi 1e46d: e8 3e 43 ff ff callq 127b0 <_ZN11XLogHandlerD1Ev@plt> 1e472: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e476: 48 89 c7 mov %rax,%rdi 1e479: e8 c2 42 ff ff callq 12740 <_ZdlPv@plt> 1e47e: c9 leaveq 1e47f: c3 retq 000000000001e480 <_ZN11XLogHandler11getLevelStrERKi>: const char* XLogHandler::getLevelStr(const int& level) { 1e480: 55 push %rbp 1e481: 48 89 e5 mov %rsp,%rbp 1e484: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1e488: 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) 1e48c: 48 8b 45 f0 mov -0x10(%rbp),%rax 1e490: 8b 00 mov (%rax),%eax 1e492: 85 c0 test %eax,%eax 1e494: 78 28 js 1e4be <_ZN11XLogHandler11getLevelStrERKi+0x3e> 1e496: 48 8b 45 f0 mov -0x10(%rbp),%rax 1e49a: 8b 00 mov (%rax),%eax 1e49c: 83 f8 05 cmp $0x5,%eax 1e49f: 7f 1d jg 1e4be <_ZN11XLogHandler11getLevelStrERKi+0x3e> return log_level[level]; 1e4a1: 48 8b 45 f0 mov -0x10(%rbp),%rax 1e4a5: 8b 00 mov (%rax),%eax 1e4a7: 48 98 cltq 1e4a9: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx 1e4b0: 00 1e4b1: 48 8d 05 88 96 20 00 lea 0x209688(%rip),%rax # 227b40 <_ZZN11XLogHandler11getLevelStrERKiE9log_level> 1e4b8: 48 8b 04 02 mov (%rdx,%rax,1),%rax 1e4bc: eb 07 jmp 1e4c5 <_ZN11XLogHandler11getLevelStrERKi+0x45> else return "INVALID_LEVEL"; 1e4be: 48 8d 05 bb 44 00 00 lea 0x44bb(%rip),%rax # 22980 <_fini+0xac8> } 1e4c5: 5d pop %rbp 1e4c6: c3 retq 1e4c7: 90 nop 000000000001e4c8 <_ZN11XLogHandler8setLevelE8LogLevel>: void XLogHandler::setLevel(LogLevel l) { 1e4c8: 55 push %rbp 1e4c9: 48 89 e5 mov %rsp,%rbp 1e4cc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1e4d0: 89 75 f4 mov %esi,-0xc(%rbp) level = l; 1e4d3: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e4d7: 8b 55 f4 mov -0xc(%rbp),%edx 1e4da: 89 50 08 mov %edx,0x8(%rax) } 1e4dd: 5d pop %rbp 1e4de: c3 retq 1e4df: 90 nop 000000000001e4e0 <_ZN17XLogStderrHandlerC1Ev>: /******************************************************************************** * XLogStderrHandler ********************************************************************************/ XLogStderrHandler::XLogStderrHandler() 1e4e0: 55 push %rbp 1e4e1: 48 89 e5 mov %rsp,%rbp 1e4e4: 53 push %rbx 1e4e5: 48 83 ec 18 sub $0x18,%rsp 1e4e9: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e4ed: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e4f1: 48 89 c7 mov %rax,%rdi 1e4f4: e8 97 42 ff ff callq 12790 <_ZN11XLogHandlerC2Ev@plt> 1e4f9: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e4fd: 48 8b 15 c4 9a 20 00 mov 0x209ac4(%rip),%rdx # 227fc8 <_DYNAMIC+0x278> 1e504: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e508: 48 89 10 mov %rdx,(%rax) 1e50b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e50f: 48 83 c0 10 add $0x10,%rax 1e513: 48 89 c7 mov %rax,%rdi 1e516: e8 35 52 ff ff callq 13750 <_ZN6XMutexC1Ev@plt> { } 1e51b: eb 1a jmp 1e537 <_ZN17XLogStderrHandlerC1Ev+0x57> 1e51d: 48 89 c3 mov %rax,%rbx /******************************************************************************** * XLogStderrHandler ********************************************************************************/ XLogStderrHandler::XLogStderrHandler() 1e520: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e524: 48 89 c7 mov %rax,%rdi 1e527: e8 b4 4c ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1e52c: 48 89 d8 mov %rbx,%rax 1e52f: 48 89 c7 mov %rax,%rdi 1e532: e8 e9 59 ff ff callq 13f20 <_Unwind_Resume@plt> { } 1e537: 48 83 c4 18 add $0x18,%rsp 1e53b: 5b pop %rbx 1e53c: 5d pop %rbp 1e53d: c3 retq 000000000001e53e <_ZN17XLogStderrHandlerD1Ev>: XLogStderrHandler::~XLogStderrHandler() 1e53e: 55 push %rbp 1e53f: 48 89 e5 mov %rsp,%rbp 1e542: 53 push %rbx 1e543: 48 83 ec 18 sub $0x18,%rsp 1e547: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e54b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e54f: 48 8b 15 72 9a 20 00 mov 0x209a72(%rip),%rdx # 227fc8 <_DYNAMIC+0x278> 1e556: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e55a: 48 89 10 mov %rdx,(%rax) { flush(); 1e55d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e561: 48 89 c7 mov %rax,%rdi 1e564: e8 47 45 ff ff callq 12ab0 <_ZN17XLogStderrHandler5flushEv@plt> XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1e569: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e56d: 48 83 c0 10 add $0x10,%rax 1e571: 48 89 c7 mov %rax,%rdi 1e574: e8 d7 49 ff ff callq 12f50 <_ZN6XMutexD1Ev@plt> 1e579: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e57d: 48 89 c7 mov %rax,%rdi 1e580: e8 5b 4c ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> { flush(); } 1e585: b8 00 00 00 00 mov $0x0,%eax 1e58a: 83 e0 01 and $0x1,%eax 1e58d: 84 c0 test %al,%al 1e58f: 74 3d je 1e5ce <_ZN17XLogStderrHandlerD1Ev+0x90> 1e591: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e595: 48 89 c7 mov %rax,%rdi 1e598: e8 a3 41 ff ff callq 12740 <_ZdlPv@plt> 1e59d: eb 2f jmp 1e5ce <_ZN17XLogStderrHandlerD1Ev+0x90> 1e59f: 48 89 c3 mov %rax,%rbx XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1e5a2: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e5a6: 48 83 c0 10 add $0x10,%rax 1e5aa: 48 89 c7 mov %rax,%rdi 1e5ad: e8 9e 49 ff ff callq 12f50 <_ZN6XMutexD1Ev@plt> 1e5b2: eb 03 jmp 1e5b7 <_ZN17XLogStderrHandlerD1Ev+0x79> 1e5b4: 48 89 c3 mov %rax,%rbx 1e5b7: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e5bb: 48 89 c7 mov %rax,%rdi 1e5be: e8 1d 4c ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1e5c3: 48 89 d8 mov %rbx,%rax 1e5c6: 48 89 c7 mov %rax,%rdi 1e5c9: e8 52 59 ff ff callq 13f20 <_Unwind_Resume@plt> { flush(); } 1e5ce: 48 83 c4 18 add $0x18,%rsp 1e5d2: 5b pop %rbx 1e5d3: 5d pop %rbp 1e5d4: c3 retq 1e5d5: 90 nop 000000000001e5d6 <_ZN17XLogStderrHandlerD0Ev>: XLogStderrHandler::XLogStderrHandler() { } XLogStderrHandler::~XLogStderrHandler() 1e5d6: 55 push %rbp 1e5d7: 48 89 e5 mov %rsp,%rbp 1e5da: 48 83 ec 10 sub $0x10,%rsp 1e5de: 48 89 7d f8 mov %rdi,-0x8(%rbp) { flush(); } 1e5e2: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e5e6: 48 89 c7 mov %rax,%rdi 1e5e9: e8 82 4c ff ff callq 13270 <_ZN17XLogStderrHandlerD1Ev@plt> 1e5ee: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e5f2: 48 89 c7 mov %rax,%rdi 1e5f5: e8 46 41 ff ff callq 12740 <_ZdlPv@plt> 1e5fa: c9 leaveq 1e5fb: c3 retq 000000000001e5fc <_ZN17XLogStderrHandler5flushEv>: void XLogStderrHandler::flush() { 1e5fc: 55 push %rbp 1e5fd: 48 89 e5 mov %rsp,%rbp 1e600: 48 83 ec 10 sub $0x10,%rsp 1e604: 48 89 7d f8 mov %rdi,-0x8(%rbp) fflush(stderr); 1e608: 48 8b 05 91 99 20 00 mov 0x209991(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e60f: 48 8b 00 mov (%rax),%rax 1e612: 48 89 c7 mov %rax,%rdi 1e615: e8 e6 5a ff ff callq 14100 } 1e61a: c9 leaveq 1e61b: c3 retq 000000000001e61c <_ZN17XLogStderrHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogStderrHandler::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1e61c: 55 push %rbp 1e61d: 48 89 e5 mov %rsp,%rbp 1e620: 48 83 c4 80 add $0xffffffffffffff80,%rsp 1e624: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1e628: 48 89 75 c0 mov %rsi,-0x40(%rbp) 1e62c: 48 89 55 b8 mov %rdx,-0x48(%rbp) 1e630: 89 4d b4 mov %ecx,-0x4c(%rbp) 1e633: 4c 89 45 a8 mov %r8,-0x58(%rbp) 1e637: 4c 89 4d a0 mov %r9,-0x60(%rbp) mutex.lock(); 1e63b: 48 8b 45 c8 mov -0x38(%rbp),%rax 1e63f: 48 83 c0 10 add $0x10,%rax 1e643: 48 89 c7 mov %rax,%rdi 1e646: e8 d5 40 ff ff callq 12720 <_ZN6XMutex4lockEv@plt> XTime tm; TMUtil::getCurrentTime(tm); 1e64b: 48 8d 45 d0 lea -0x30(%rbp),%rax 1e64f: 48 89 c7 mov %rax,%rdi 1e652: e8 b9 43 ff ff callq 12a10 <_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); 1e657: 44 8b 45 ec mov -0x14(%rbp),%r8d 1e65b: 8b 7d e8 mov -0x18(%rbp),%edi 1e65e: 8b 75 e4 mov -0x1c(%rbp),%esi 1e661: 44 8b 4d e0 mov -0x20(%rbp),%r9d 1e665: 44 8b 55 d8 mov -0x28(%rbp),%r10d 1e669: 8b 4d d4 mov -0x2c(%rbp),%ecx 1e66c: 8b 55 dc mov -0x24(%rbp),%edx 1e66f: 48 8b 05 2a 99 20 00 mov 0x20992a(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e676: 48 8b 00 mov (%rax),%rax 1e679: 44 89 44 24 10 mov %r8d,0x10(%rsp) 1e67e: 89 7c 24 08 mov %edi,0x8(%rsp) 1e682: 89 34 24 mov %esi,(%rsp) 1e685: 45 89 d0 mov %r10d,%r8d 1e688: 48 8d 35 01 43 00 00 lea 0x4301(%rip),%rsi # 22990 <_fini+0xad8> 1e68f: 48 89 c7 mov %rax,%rdi 1e692: b8 00 00 00 00 mov $0x0,%eax 1e697: e8 c4 57 ff ff callq 13e60 fprintf(stderr, "%-8s ", getLevelStr(level)); 1e69c: 8b 45 b4 mov -0x4c(%rbp),%eax 1e69f: 89 45 fc mov %eax,-0x4(%rbp) 1e6a2: 48 8b 45 c8 mov -0x38(%rbp),%rax 1e6a6: 48 8d 55 fc lea -0x4(%rbp),%rdx 1e6aa: 48 89 d6 mov %rdx,%rsi 1e6ad: 48 89 c7 mov %rax,%rdi 1e6b0: e8 2b 58 ff ff callq 13ee0 <_ZN11XLogHandler11getLevelStrERKi@plt> 1e6b5: 48 89 c2 mov %rax,%rdx 1e6b8: 48 8b 05 e1 98 20 00 mov 0x2098e1(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e6bf: 48 8b 00 mov (%rax),%rax 1e6c2: 48 8d 35 e9 42 00 00 lea 0x42e9(%rip),%rsi # 229b2 <_fini+0xafa> 1e6c9: 48 89 c7 mov %rax,%rdi 1e6cc: b8 00 00 00 00 mov $0x0,%eax 1e6d1: e8 8a 57 ff ff callq 13e60 if (origin != NULL) { 1e6d6: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 1e6db: 74 26 je 1e703 <_ZN17XLogStderrHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0xe7> fprintf(stderr, "[%s %s] ", origin, func); 1e6dd: 48 8b 05 bc 98 20 00 mov 0x2098bc(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e6e4: 48 8b 00 mov (%rax),%rax 1e6e7: 48 8b 4d b8 mov -0x48(%rbp),%rcx 1e6eb: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1e6ef: 48 8d 35 c2 42 00 00 lea 0x42c2(%rip),%rsi # 229b8 <_fini+0xb00> 1e6f6: 48 89 c7 mov %rax,%rdi 1e6f9: b8 00 00 00 00 mov $0x0,%eax 1e6fe: e8 5d 57 ff ff callq 13e60 } vfprintf(stderr, format, arglist); 1e703: 48 8b 05 96 98 20 00 mov 0x209896(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e70a: 48 8b 00 mov (%rax),%rax 1e70d: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1e711: 48 8b 4d a8 mov -0x58(%rbp),%rcx 1e715: 48 89 ce mov %rcx,%rsi 1e718: 48 89 c7 mov %rax,%rdi 1e71b: e8 40 46 ff ff callq 12d60 fprintf(stderr, "\n"); 1e720: 48 8b 05 79 98 20 00 mov 0x209879(%rip),%rax # 227fa0 <_DYNAMIC+0x250> 1e727: 48 8b 00 mov (%rax),%rax 1e72a: 48 89 c6 mov %rax,%rsi 1e72d: bf 0a 00 00 00 mov $0xa,%edi 1e732: e8 29 47 ff ff callq 12e60 mutex.unlock(); 1e737: 48 8b 45 c8 mov -0x38(%rbp),%rax 1e73b: 48 83 c0 10 add $0x10,%rax 1e73f: 48 89 c7 mov %rax,%rdi 1e742: e8 a9 57 ff ff callq 13ef0 <_ZN6XMutex6unlockEv@plt> } 1e747: c9 leaveq 1e748: c3 retq 1e749: 90 nop 000000000001e74a <_ZN19XLogFileHandlerBaseC1EPKc>: ********************************************************************************/ XMutex XLogFileHandlerBase::mutex; vector XLogFileHandlerBase::log_files; XLogFileHandlerBase::XLogFileHandlerBase(const char* filename) : 1e74a: 55 push %rbp 1e74b: 48 89 e5 mov %rsp,%rbp 1e74e: 53 push %rbx 1e74f: 48 83 ec 48 sub $0x48,%rsp 1e753: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1e757: 48 89 75 b0 mov %rsi,-0x50(%rbp) XLogHandler(), log_file_size(0), log_file(NULL) 1e75b: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e75f: 48 89 c7 mov %rax,%rdi 1e762: e8 29 40 ff ff callq 12790 <_ZN11XLogHandlerC2Ev@plt> 1e767: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e76b: 48 8b 15 ae 97 20 00 mov 0x2097ae(%rip),%rdx # 227f20 <_DYNAMIC+0x1d0> 1e772: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e776: 48 89 10 mov %rdx,(%rax) 1e779: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e77d: 48 83 c0 10 add $0x10,%rax 1e781: 48 89 c7 mov %rax,%rdi 1e784: e8 17 3c ff ff callq 123a0 <_ZNSsC1Ev@plt> 1e789: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e78d: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 1e794: 00 1e795: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e799: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1e7a0: 00 { vector::iterator it = find(log_files.begin(), log_files.end(), filename); 1e7a1: 48 8b 05 80 97 20 00 mov 0x209780(%rip),%rax # 227f28 <_DYNAMIC+0x1d8> 1e7a8: 48 89 c7 mov %rax,%rdi 1e7ab: e8 20 4c ff ff callq 133d0 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1e7b0: 48 89 c3 mov %rax,%rbx 1e7b3: 48 8b 05 6e 97 20 00 mov 0x20976e(%rip),%rax # 227f28 <_DYNAMIC+0x1d8> 1e7ba: 48 89 c7 mov %rax,%rdi 1e7bd: e8 9e 3e ff ff callq 12660 <_ZNSt6vectorISsSaISsEE5beginEv@plt> 1e7c2: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1e7c6: 48 89 de mov %rbx,%rsi 1e7c9: 48 89 c7 mov %rax,%rdi 1e7cc: e8 3f 47 ff ff callq 12f10 <_ZSt4findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_@plt> 1e7d1: 48 89 45 c0 mov %rax,-0x40(%rbp) if (it != log_files.end()) { 1e7d5: 48 8b 05 4c 97 20 00 mov 0x20974c(%rip),%rax # 227f28 <_DYNAMIC+0x1d8> 1e7dc: 48 89 c7 mov %rax,%rdi 1e7df: e8 ec 4b ff ff callq 133d0 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1e7e4: 48 89 45 d0 mov %rax,-0x30(%rbp) 1e7e8: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1e7ec: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e7f0: 48 89 d6 mov %rdx,%rsi 1e7f3: 48 89 c7 mov %rax,%rdi 1e7f6: e8 05 47 ff ff callq 12f00 <_ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_@plt> 1e7fb: 84 c0 test %al,%al 1e7fd: 75 51 jne 1e850 <_ZN19XLogFileHandlerBaseC1EPKc+0x106> * Another log handler is writing to the same log file. * TODO: throw exception */ } else { log_files.push_back(filename); 1e7ff: 48 8d 45 ef lea -0x11(%rbp),%rax 1e803: 48 89 c7 mov %rax,%rdi 1e806: e8 d5 55 ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1e80b: 48 8b 4d b0 mov -0x50(%rbp),%rcx 1e80f: 48 8d 55 ef lea -0x11(%rbp),%rdx 1e813: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e817: 48 89 ce mov %rcx,%rsi 1e81a: 48 89 c7 mov %rax,%rdi 1e81d: e8 ce 4a ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1e822: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e826: 48 89 c6 mov %rax,%rsi 1e829: 48 8b 05 f8 96 20 00 mov 0x2096f8(%rip),%rax # 227f28 <_DYNAMIC+0x1d8> 1e830: 48 89 c7 mov %rax,%rdi 1e833: e8 c8 4e ff ff callq 13700 <_ZNSt6vectorISsSaISsEE9push_backERKSs@plt> 1e838: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e83c: 48 89 c7 mov %rax,%rdi 1e83f: e8 fc 45 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e844: 48 8d 45 ef lea -0x11(%rbp),%rax 1e848: 48 89 c7 mov %rax,%rdi 1e84b: e8 30 51 ff ff callq 13980 <_ZNSaIcED1Ev@plt> } log_filename = filename; 1e850: 48 8b 45 b0 mov -0x50(%rbp),%rax 1e854: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1e858: 48 83 c2 10 add $0x10,%rdx 1e85c: 48 89 c6 mov %rax,%rsi 1e85f: 48 89 d7 mov %rdx,%rdi 1e862: e8 19 3b ff ff callq 12380 <_ZNSsaSEPKc@plt> // TODO: // Determine directory // Split log file name and extension } 1e867: eb 51 jmp 1e8ba <_ZN19XLogFileHandlerBaseC1EPKc+0x170> 1e869: 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); 1e86c: 48 8d 45 e0 lea -0x20(%rbp),%rax 1e870: 48 89 c7 mov %rax,%rdi 1e873: e8 c8 45 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e878: eb 03 jmp 1e87d <_ZN19XLogFileHandlerBaseC1EPKc+0x133> 1e87a: 48 89 c3 mov %rax,%rbx 1e87d: 48 8d 45 ef lea -0x11(%rbp),%rax 1e881: 48 89 c7 mov %rax,%rdi 1e884: e8 f7 50 ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1e889: eb 03 jmp 1e88e <_ZN19XLogFileHandlerBaseC1EPKc+0x144> 1e88b: 48 89 c3 mov %rax,%rbx vector XLogFileHandlerBase::log_files; XLogFileHandlerBase::XLogFileHandlerBase(const char* filename) : XLogHandler(), log_file_size(0), log_file(NULL) 1e88e: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e892: 48 83 c0 10 add $0x10,%rax 1e896: 48 89 c7 mov %rax,%rdi 1e899: e8 a2 45 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e89e: eb 03 jmp 1e8a3 <_ZN19XLogFileHandlerBaseC1EPKc+0x159> 1e8a0: 48 89 c3 mov %rax,%rbx 1e8a3: 48 8b 45 b8 mov -0x48(%rbp),%rax 1e8a7: 48 89 c7 mov %rax,%rdi 1e8aa: e8 31 49 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1e8af: 48 89 d8 mov %rbx,%rax 1e8b2: 48 89 c7 mov %rax,%rdi 1e8b5: e8 66 56 ff ff callq 13f20 <_Unwind_Resume@plt> log_filename = filename; // TODO: // Determine directory // Split log file name and extension } 1e8ba: 48 83 c4 48 add $0x48,%rsp 1e8be: 5b pop %rbx 1e8bf: 5d pop %rbp 1e8c0: c3 retq 1e8c1: 90 nop 000000000001e8c2 <_ZN19XLogFileHandlerBaseD1Ev>: XLogFileHandlerBase::~XLogFileHandlerBase() 1e8c2: 55 push %rbp 1e8c3: 48 89 e5 mov %rsp,%rbp 1e8c6: 53 push %rbx 1e8c7: 48 83 ec 18 sub $0x18,%rsp 1e8cb: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1e8cf: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e8d3: 48 8b 15 46 96 20 00 mov 0x209646(%rip),%rdx # 227f20 <_DYNAMIC+0x1d0> 1e8da: 48 8d 52 10 lea 0x10(%rdx),%rdx 1e8de: 48 89 10 mov %rdx,(%rax) { flush(); 1e8e1: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e8e5: 48 89 c7 mov %rax,%rdi 1e8e8: e8 c3 4a ff ff callq 133b0 <_ZN19XLogFileHandlerBase5flushEv@plt> if (log_file) { 1e8ed: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e8f1: 48 8b 40 20 mov 0x20(%rax),%rax 1e8f5: 48 85 c0 test %rax,%rax 1e8f8: 74 1c je 1e916 <_ZN19XLogFileHandlerBaseD1Ev+0x54> fclose(log_file); 1e8fa: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e8fe: 48 8b 40 20 mov 0x20(%rax),%rax 1e902: 48 89 c7 mov %rax,%rdi 1e905: e8 66 52 ff ff callq 13b70 log_file = NULL; 1e90a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e90e: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1e915: 00 // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1e916: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e91a: 48 83 c0 10 add $0x10,%rax 1e91e: 48 89 c7 mov %rax,%rdi 1e921: e8 1a 45 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e926: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e92a: 48 89 c7 mov %rax,%rdi 1e92d: e8 ae 48 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1e932: b8 00 00 00 00 mov $0x0,%eax 1e937: 83 e0 01 and $0x1,%eax 1e93a: 84 c0 test %al,%al 1e93c: 74 3d je 1e97b <_ZN19XLogFileHandlerBaseD1Ev+0xb9> 1e93e: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e942: 48 89 c7 mov %rax,%rdi 1e945: e8 f6 3d ff ff callq 12740 <_ZdlPv@plt> 1e94a: eb 2f jmp 1e97b <_ZN19XLogFileHandlerBaseD1Ev+0xb9> 1e94c: 48 89 c3 mov %rax,%rbx // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1e94f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e953: 48 83 c0 10 add $0x10,%rax 1e957: 48 89 c7 mov %rax,%rdi 1e95a: e8 e1 44 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1e95f: eb 03 jmp 1e964 <_ZN19XLogFileHandlerBaseD1Ev+0xa2> 1e961: 48 89 c3 mov %rax,%rbx 1e964: 48 8b 45 e8 mov -0x18(%rbp),%rax 1e968: 48 89 c7 mov %rax,%rdi 1e96b: e8 70 48 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1e970: 48 89 d8 mov %rbx,%rax 1e973: 48 89 c7 mov %rax,%rdi 1e976: e8 a5 55 ff ff callq 13f20 <_Unwind_Resume@plt> flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1e97b: 48 83 c4 18 add $0x18,%rsp 1e97f: 5b pop %rbx 1e980: 5d pop %rbp 1e981: c3 retq 000000000001e982 <_ZN19XLogFileHandlerBaseD0Ev>: // TODO: // Determine directory // Split log file name and extension } XLogFileHandlerBase::~XLogFileHandlerBase() 1e982: 55 push %rbp 1e983: 48 89 e5 mov %rsp,%rbp 1e986: 48 83 ec 10 sub $0x10,%rsp 1e98a: 48 89 7d f8 mov %rdi,-0x8(%rbp) flush(); if (log_file) { fclose(log_file); log_file = NULL; } } 1e98e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e992: 48 89 c7 mov %rax,%rdi 1e995: e8 b6 4c ff ff callq 13650 <_ZN19XLogFileHandlerBaseD1Ev@plt> 1e99a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e99e: 48 89 c7 mov %rax,%rdi 1e9a1: e8 9a 3d ff ff callq 12740 <_ZdlPv@plt> 1e9a6: c9 leaveq 1e9a7: c3 retq 000000000001e9a8 <_ZN19XLogFileHandlerBase5flushEv>: void XLogFileHandlerBase::flush() { 1e9a8: 55 push %rbp 1e9a9: 48 89 e5 mov %rsp,%rbp 1e9ac: 48 83 ec 10 sub $0x10,%rsp 1e9b0: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (log_file) 1e9b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e9b8: 48 8b 40 20 mov 0x20(%rax),%rax 1e9bc: 48 85 c0 test %rax,%rax 1e9bf: 74 10 je 1e9d1 <_ZN19XLogFileHandlerBase5flushEv+0x29> fflush(log_file); 1e9c1: 48 8b 45 f8 mov -0x8(%rbp),%rax 1e9c5: 48 8b 40 20 mov 0x20(%rax),%rax 1e9c9: 48 89 c7 mov %rax,%rdi 1e9cc: e8 2f 57 ff ff callq 14100 } 1e9d1: c9 leaveq 1e9d2: c3 retq 1e9d3: 90 nop 000000000001e9d4 <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogFileHandlerBase::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1e9d4: 55 push %rbp 1e9d5: 48 89 e5 mov %rsp,%rbp 1e9d8: 48 83 c4 80 add $0xffffffffffffff80,%rsp 1e9dc: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1e9e0: 48 89 75 c0 mov %rsi,-0x40(%rbp) 1e9e4: 48 89 55 b8 mov %rdx,-0x48(%rbp) 1e9e8: 89 4d b4 mov %ecx,-0x4c(%rbp) 1e9eb: 4c 89 45 a8 mov %r8,-0x58(%rbp) 1e9ef: 4c 89 4d a0 mov %r9,-0x60(%rbp) if (!log_file) 1e9f3: 48 8b 45 c8 mov -0x38(%rbp),%rax 1e9f7: 48 8b 40 20 mov 0x20(%rax),%rax 1e9fb: 48 85 c0 test %rax,%rax 1e9fe: 75 0c jne 1ea0c <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x38> openLogFile(); 1ea00: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ea04: 48 89 c7 mov %rax,%rdi 1ea07: e8 e4 3e ff ff callq 128f0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt> if (log_file) { 1ea0c: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ea10: 48 8b 40 20 mov 0x20(%rax),%rax 1ea14: 48 85 c0 test %rax,%rax 1ea17: 0f 84 00 01 00 00 je 1eb1d <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x149> mutex.lock(); 1ea1d: 48 8b 05 74 95 20 00 mov 0x209574(%rip),%rax # 227f98 <_DYNAMIC+0x248> 1ea24: 48 89 c7 mov %rax,%rdi 1ea27: e8 f4 3c ff ff callq 12720 <_ZN6XMutex4lockEv@plt> XTime tm; TMUtil::getCurrentTime(tm); 1ea2c: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ea30: 48 89 c7 mov %rax,%rdi 1ea33: e8 d8 3f ff ff callq 12a10 <_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); 1ea38: 44 8b 45 ec mov -0x14(%rbp),%r8d 1ea3c: 8b 7d e8 mov -0x18(%rbp),%edi 1ea3f: 8b 75 e4 mov -0x1c(%rbp),%esi 1ea42: 44 8b 4d e0 mov -0x20(%rbp),%r9d 1ea46: 44 8b 55 d8 mov -0x28(%rbp),%r10d 1ea4a: 8b 4d d4 mov -0x2c(%rbp),%ecx 1ea4d: 8b 55 dc mov -0x24(%rbp),%edx 1ea50: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ea54: 48 8b 40 20 mov 0x20(%rax),%rax 1ea58: 44 89 44 24 10 mov %r8d,0x10(%rsp) 1ea5d: 89 7c 24 08 mov %edi,0x8(%rsp) 1ea61: 89 34 24 mov %esi,(%rsp) 1ea64: 45 89 d0 mov %r10d,%r8d 1ea67: 48 8d 35 22 3f 00 00 lea 0x3f22(%rip),%rsi # 22990 <_fini+0xad8> 1ea6e: 48 89 c7 mov %rax,%rdi 1ea71: b8 00 00 00 00 mov $0x0,%eax 1ea76: e8 e5 53 ff ff callq 13e60 fprintf(log_file, "%-8s ", getLevelStr(level)); 1ea7b: 8b 45 b4 mov -0x4c(%rbp),%eax 1ea7e: 89 45 fc mov %eax,-0x4(%rbp) 1ea81: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ea85: 48 8d 55 fc lea -0x4(%rbp),%rdx 1ea89: 48 89 d6 mov %rdx,%rsi 1ea8c: 48 89 c7 mov %rax,%rdi 1ea8f: e8 4c 54 ff ff callq 13ee0 <_ZN11XLogHandler11getLevelStrERKi@plt> 1ea94: 48 89 c2 mov %rax,%rdx 1ea97: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ea9b: 48 8b 40 20 mov 0x20(%rax),%rax 1ea9f: 48 8d 35 0c 3f 00 00 lea 0x3f0c(%rip),%rsi # 229b2 <_fini+0xafa> 1eaa6: 48 89 c7 mov %rax,%rdi 1eaa9: b8 00 00 00 00 mov $0x0,%eax 1eaae: e8 ad 53 ff ff callq 13e60 if (origin != NULL) { 1eab3: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 1eab8: 74 24 je 1eade <_ZN19XLogFileHandlerBase3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x10a> fprintf(log_file, "[%s %s] ", origin, func); 1eaba: 48 8b 45 c8 mov -0x38(%rbp),%rax 1eabe: 48 8b 40 20 mov 0x20(%rax),%rax 1eac2: 48 8b 4d b8 mov -0x48(%rbp),%rcx 1eac6: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1eaca: 48 8d 35 e7 3e 00 00 lea 0x3ee7(%rip),%rsi # 229b8 <_fini+0xb00> 1ead1: 48 89 c7 mov %rax,%rdi 1ead4: b8 00 00 00 00 mov $0x0,%eax 1ead9: e8 82 53 ff ff callq 13e60 } vfprintf(log_file, format, arglist); 1eade: 48 8b 45 c8 mov -0x38(%rbp),%rax 1eae2: 48 8b 40 20 mov 0x20(%rax),%rax 1eae6: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1eaea: 48 8b 4d a8 mov -0x58(%rbp),%rcx 1eaee: 48 89 ce mov %rcx,%rsi 1eaf1: 48 89 c7 mov %rax,%rdi 1eaf4: e8 67 42 ff ff callq 12d60 fprintf(log_file, "\n"); 1eaf9: 48 8b 45 c8 mov -0x38(%rbp),%rax 1eafd: 48 8b 40 20 mov 0x20(%rax),%rax 1eb01: 48 89 c6 mov %rax,%rsi 1eb04: bf 0a 00 00 00 mov $0xa,%edi 1eb09: e8 52 43 ff ff callq 12e60 mutex.unlock(); 1eb0e: 48 8b 05 83 94 20 00 mov 0x209483(%rip),%rax # 227f98 <_DYNAMIC+0x248> 1eb15: 48 89 c7 mov %rax,%rdi 1eb18: e8 d3 53 ff ff callq 13ef0 <_ZN6XMutex6unlockEv@plt> } } 1eb1d: c9 leaveq 1eb1e: c3 retq 1eb1f: 90 nop 000000000001eb20 <_ZN19XLogFileHandlerBase11openLogFileEv>: void XLogFileHandlerBase::openLogFile() { 1eb20: 55 push %rbp 1eb21: 48 89 e5 mov %rsp,%rbp 1eb24: 48 83 ec 10 sub $0x10,%rsp 1eb28: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!log_file) { 1eb2c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb30: 48 8b 40 20 mov 0x20(%rax),%rax 1eb34: 48 85 c0 test %rax,%rax 1eb37: 75 2a jne 1eb63 <_ZN19XLogFileHandlerBase11openLogFileEv+0x43> log_file = fopen(log_filename.c_str(), "w"); 1eb39: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb3d: 48 83 c0 10 add $0x10,%rax 1eb41: 48 89 c7 mov %rax,%rdi 1eb44: e8 77 3b ff ff callq 126c0 <_ZNKSs5c_strEv@plt> 1eb49: 48 8d 35 71 3e 00 00 lea 0x3e71(%rip),%rsi # 229c1 <_fini+0xb09> 1eb50: 48 89 c7 mov %rax,%rdi 1eb53: e8 58 3e ff ff callq 129b0 1eb58: 48 89 c2 mov %rax,%rdx 1eb5b: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb5f: 48 89 50 20 mov %rdx,0x20(%rax) } } 1eb63: c9 leaveq 1eb64: c3 retq 1eb65: 90 nop 000000000001eb66 <_ZN19XLogFileHandlerBase11openLogFileEPKc>: void XLogFileHandlerBase::openLogFile(const char* filename) { 1eb66: 55 push %rbp 1eb67: 48 89 e5 mov %rsp,%rbp 1eb6a: 48 83 ec 10 sub $0x10,%rsp 1eb6e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1eb72: 48 89 75 f0 mov %rsi,-0x10(%rbp) if (log_file) { 1eb76: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb7a: 48 8b 40 20 mov 0x20(%rax),%rax 1eb7e: 48 85 c0 test %rax,%rax 1eb81: 74 33 je 1ebb6 <_ZN19XLogFileHandlerBase11openLogFileEPKc+0x50> flush(); 1eb83: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb87: 48 8b 00 mov (%rax),%rax 1eb8a: 48 83 c0 10 add $0x10,%rax 1eb8e: 48 8b 10 mov (%rax),%rdx 1eb91: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb95: 48 89 c7 mov %rax,%rdi 1eb98: ff d2 callq *%rdx fclose(log_file); 1eb9a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eb9e: 48 8b 40 20 mov 0x20(%rax),%rax 1eba2: 48 89 c7 mov %rax,%rdi 1eba5: e8 c6 4f ff ff callq 13b70 log_file = NULL; 1ebaa: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ebae: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 1ebb5: 00 } log_filename = filename; 1ebb6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ebba: 48 8d 50 10 lea 0x10(%rax),%rdx 1ebbe: 48 8b 45 f0 mov -0x10(%rbp),%rax 1ebc2: 48 89 c6 mov %rax,%rsi 1ebc5: 48 89 d7 mov %rdx,%rdi 1ebc8: e8 b3 37 ff ff callq 12380 <_ZNSsaSEPKc@plt> openLogFile(); 1ebcd: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ebd1: 48 89 c7 mov %rax,%rdi 1ebd4: e8 17 3d ff ff callq 128f0 <_ZN19XLogFileHandlerBase11openLogFileEv@plt> } 1ebd9: c9 leaveq 1ebda: c3 retq 1ebdb: 90 nop 000000000001ebdc <_ZN15XLogFileHandlerC1EPKc>: /******************************************************************************** * XLogFileHandler ********************************************************************************/ XLogFileHandler::XLogFileHandler(const char* filename) : 1ebdc: 55 push %rbp 1ebdd: 48 89 e5 mov %rsp,%rbp 1ebe0: 48 83 ec 10 sub $0x10,%rsp 1ebe4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ebe8: 48 89 75 f0 mov %rsi,-0x10(%rbp) XLogFileHandlerBase(filename) 1ebec: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ebf0: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1ebf4: 48 89 d6 mov %rdx,%rsi 1ebf7: 48 89 c7 mov %rax,%rdi 1ebfa: e8 91 41 ff ff callq 12d90 <_ZN19XLogFileHandlerBaseC2EPKc@plt> 1ebff: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec03: 48 8b 15 3e 93 20 00 mov 0x20933e(%rip),%rdx # 227f48 <_DYNAMIC+0x1f8> 1ec0a: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ec0e: 48 89 10 mov %rdx,(%rax) { } 1ec11: c9 leaveq 1ec12: c3 retq 1ec13: 90 nop 000000000001ec14 <_ZN15XLogFileHandlerD1Ev>: XLogFileHandler::~XLogFileHandler() 1ec14: 55 push %rbp 1ec15: 48 89 e5 mov %rsp,%rbp 1ec18: 48 83 ec 10 sub $0x10,%rsp 1ec1c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ec20: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec24: 48 8b 15 1d 93 20 00 mov 0x20931d(%rip),%rdx # 227f48 <_DYNAMIC+0x1f8> 1ec2b: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ec2f: 48 89 10 mov %rdx,(%rax) 1ec32: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec36: 48 89 c7 mov %rax,%rdi 1ec39: e8 a2 4d ff ff callq 139e0 <_ZN19XLogFileHandlerBaseD2Ev@plt> { } 1ec3e: b8 00 00 00 00 mov $0x0,%eax 1ec43: 83 e0 01 and $0x1,%eax 1ec46: 84 c0 test %al,%al 1ec48: 74 0c je 1ec56 <_ZN15XLogFileHandlerD1Ev+0x42> 1ec4a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec4e: 48 89 c7 mov %rax,%rdi 1ec51: e8 ea 3a ff ff callq 12740 <_ZdlPv@plt> 1ec56: c9 leaveq 1ec57: c3 retq 000000000001ec58 <_ZN15XLogFileHandlerD0Ev>: XLogFileHandler::XLogFileHandler(const char* filename) : XLogFileHandlerBase(filename) { } XLogFileHandler::~XLogFileHandler() 1ec58: 55 push %rbp 1ec59: 48 89 e5 mov %rsp,%rbp 1ec5c: 48 83 ec 10 sub $0x10,%rsp 1ec60: 48 89 7d f8 mov %rdi,-0x8(%rbp) { } 1ec64: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec68: 48 89 c7 mov %rax,%rdi 1ec6b: e8 00 4b ff ff callq 13770 <_ZN15XLogFileHandlerD1Ev@plt> 1ec70: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ec74: 48 89 c7 mov %rax,%rdi 1ec77: e8 c4 3a ff ff callq 12740 <_ZdlPv@plt> 1ec7c: c9 leaveq 1ec7d: c3 retq 000000000001ec7e <_ZN17XLogSyslogHandlerC1Ev>: /******************************************************************************** * XLogSyslogHandler ********************************************************************************/ XLogSyslogHandler::XLogSyslogHandler() : 1ec7e: 55 push %rbp 1ec7f: 48 89 e5 mov %rsp,%rbp 1ec82: 53 push %rbx 1ec83: 48 83 ec 28 sub $0x28,%rsp 1ec87: 48 89 7d d8 mov %rdi,-0x28(%rbp) is_open(0), id("XLogHandler") 1ec8b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ec8f: 48 89 c7 mov %rax,%rdi 1ec92: e8 f9 3a ff ff callq 12790 <_ZN11XLogHandlerC2Ev@plt> 1ec97: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ec9b: 48 8b 15 ae 92 20 00 mov 0x2092ae(%rip),%rdx # 227f50 <_DYNAMIC+0x200> 1eca2: 48 8d 52 10 lea 0x10(%rdx),%rdx 1eca6: 48 89 10 mov %rdx,(%rax) 1eca9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ecad: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) 1ecb3: 48 8d 45 ef lea -0x11(%rbp),%rax 1ecb7: 48 89 c7 mov %rax,%rdi 1ecba: e8 21 51 ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1ecbf: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ecc3: 48 8d 48 10 lea 0x10(%rax),%rcx 1ecc7: 48 8d 45 ef lea -0x11(%rbp),%rax 1eccb: 48 89 c2 mov %rax,%rdx 1ecce: 48 8d 35 ee 3c 00 00 lea 0x3cee(%rip),%rsi # 229c3 <_fini+0xb0b> 1ecd5: 48 89 cf mov %rcx,%rdi 1ecd8: e8 13 46 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1ecdd: 48 8d 45 ef lea -0x11(%rbp),%rax 1ece1: 48 89 c7 mov %rax,%rdi 1ece4: e8 97 4c ff ff callq 13980 <_ZNSaIcED1Ev@plt> { openLog(); 1ece9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1eced: 48 89 c7 mov %rax,%rdi 1ecf0: e8 2b 4d ff ff callq 13a20 <_ZN17XLogSyslogHandler7openLogEv@plt> } 1ecf5: eb 3b jmp 1ed32 <_ZN17XLogSyslogHandlerC1Ev+0xb4> 1ecf7: 48 89 c3 mov %rax,%rbx * XLogSyslogHandler ********************************************************************************/ XLogSyslogHandler::XLogSyslogHandler() : is_open(0), id("XLogHandler") 1ecfa: 48 8d 45 ef lea -0x11(%rbp),%rax 1ecfe: 48 89 c7 mov %rax,%rdi 1ed01: e8 7a 4c ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1ed06: eb 13 jmp 1ed1b <_ZN17XLogSyslogHandlerC1Ev+0x9d> 1ed08: 48 89 c3 mov %rax,%rbx 1ed0b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed0f: 48 83 c0 10 add $0x10,%rax 1ed13: 48 89 c7 mov %rax,%rdi 1ed16: e8 25 41 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1ed1b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed1f: 48 89 c7 mov %rax,%rdi 1ed22: e8 b9 44 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1ed27: 48 89 d8 mov %rbx,%rax 1ed2a: 48 89 c7 mov %rax,%rdi 1ed2d: e8 ee 51 ff ff callq 13f20 <_Unwind_Resume@plt> { openLog(); } 1ed32: 48 83 c4 28 add $0x28,%rsp 1ed36: 5b pop %rbx 1ed37: 5d pop %rbp 1ed38: c3 retq 1ed39: 90 nop 000000000001ed3a <_ZN17XLogSyslogHandlerC1EPKc>: XLogSyslogHandler::XLogSyslogHandler(const char* ident) : 1ed3a: 55 push %rbp 1ed3b: 48 89 e5 mov %rsp,%rbp 1ed3e: 53 push %rbx 1ed3f: 48 83 ec 28 sub $0x28,%rsp 1ed43: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1ed47: 48 89 75 d0 mov %rsi,-0x30(%rbp) is_open(0), id(ident) 1ed4b: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed4f: 48 89 c7 mov %rax,%rdi 1ed52: e8 39 3a ff ff callq 12790 <_ZN11XLogHandlerC2Ev@plt> 1ed57: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed5b: 48 8b 15 ee 91 20 00 mov 0x2091ee(%rip),%rdx # 227f50 <_DYNAMIC+0x200> 1ed62: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ed66: 48 89 10 mov %rdx,(%rax) 1ed69: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed6d: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) 1ed73: 48 8d 45 ef lea -0x11(%rbp),%rax 1ed77: 48 89 c7 mov %rax,%rdi 1ed7a: e8 61 50 ff ff callq 13de0 <_ZNSaIcEC1Ev@plt> 1ed7f: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ed83: 48 8d 48 10 lea 0x10(%rax),%rcx 1ed87: 48 8d 55 ef lea -0x11(%rbp),%rdx 1ed8b: 48 8b 45 d0 mov -0x30(%rbp),%rax 1ed8f: 48 89 c6 mov %rax,%rsi 1ed92: 48 89 cf mov %rcx,%rdi 1ed95: e8 56 45 ff ff callq 132f0 <_ZNSsC1EPKcRKSaIcE@plt> 1ed9a: 48 8d 45 ef lea -0x11(%rbp),%rax 1ed9e: 48 89 c7 mov %rax,%rdi 1eda1: e8 da 4b ff ff callq 13980 <_ZNSaIcED1Ev@plt> { openLog(); 1eda6: 48 8b 45 d8 mov -0x28(%rbp),%rax 1edaa: 48 89 c7 mov %rax,%rdi 1edad: e8 6e 4c ff ff callq 13a20 <_ZN17XLogSyslogHandler7openLogEv@plt> } 1edb2: eb 3b jmp 1edef <_ZN17XLogSyslogHandlerC1EPKc+0xb5> 1edb4: 48 89 c3 mov %rax,%rbx openLog(); } XLogSyslogHandler::XLogSyslogHandler(const char* ident) : is_open(0), id(ident) 1edb7: 48 8d 45 ef lea -0x11(%rbp),%rax 1edbb: 48 89 c7 mov %rax,%rdi 1edbe: e8 bd 4b ff ff callq 13980 <_ZNSaIcED1Ev@plt> 1edc3: eb 13 jmp 1edd8 <_ZN17XLogSyslogHandlerC1EPKc+0x9e> 1edc5: 48 89 c3 mov %rax,%rbx 1edc8: 48 8b 45 d8 mov -0x28(%rbp),%rax 1edcc: 48 83 c0 10 add $0x10,%rax 1edd0: 48 89 c7 mov %rax,%rdi 1edd3: e8 68 40 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1edd8: 48 8b 45 d8 mov -0x28(%rbp),%rax 1eddc: 48 89 c7 mov %rax,%rdi 1eddf: e8 fc 43 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1ede4: 48 89 d8 mov %rbx,%rax 1ede7: 48 89 c7 mov %rax,%rdi 1edea: e8 31 51 ff ff callq 13f20 <_Unwind_Resume@plt> { openLog(); } 1edef: 48 83 c4 28 add $0x28,%rsp 1edf3: 5b pop %rbx 1edf4: 5d pop %rbp 1edf5: c3 retq 000000000001edf6 <_ZN17XLogSyslogHandlerD1Ev>: XLogSyslogHandler::~XLogSyslogHandler() 1edf6: 55 push %rbp 1edf7: 48 89 e5 mov %rsp,%rbp 1edfa: 53 push %rbx 1edfb: 48 83 ec 18 sub $0x18,%rsp 1edff: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1ee03: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee07: 48 8b 15 42 91 20 00 mov 0x209142(%rip),%rdx # 227f50 <_DYNAMIC+0x200> 1ee0e: 48 8d 52 10 lea 0x10(%rdx),%rdx 1ee12: 48 89 10 mov %rdx,(%rax) { if (is_open) { 1ee15: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee19: 0f b7 40 0c movzwl 0xc(%rax),%eax 1ee1d: 66 85 c0 test %ax,%ax 1ee20: 74 0f je 1ee31 <_ZN17XLogSyslogHandlerD1Ev+0x3b> #if __linux closelog(); 1ee22: e8 d9 3f ff ff callq 12e00 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif is_open = 0; 1ee27: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee2b: 66 c7 40 0c 00 00 movw $0x0,0xc(%rax) id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1ee31: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee35: 48 83 c0 10 add $0x10,%rax 1ee39: 48 89 c7 mov %rax,%rdi 1ee3c: e8 ff 3f ff ff callq 12e40 <_ZNSsD1Ev@plt> 1ee41: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee45: 48 89 c7 mov %rax,%rdi 1ee48: e8 93 43 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> #else #error Not implemented yet. #endif is_open = 0; } } 1ee4d: b8 00 00 00 00 mov $0x0,%eax 1ee52: 83 e0 01 and $0x1,%eax 1ee55: 84 c0 test %al,%al 1ee57: 74 3d je 1ee96 <_ZN17XLogSyslogHandlerD1Ev+0xa0> 1ee59: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee5d: 48 89 c7 mov %rax,%rdi 1ee60: e8 db 38 ff ff callq 12740 <_ZdlPv@plt> 1ee65: eb 2f jmp 1ee96 <_ZN17XLogSyslogHandlerD1Ev+0xa0> 1ee67: 48 89 c3 mov %rax,%rbx id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1ee6a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee6e: 48 83 c0 10 add $0x10,%rax 1ee72: 48 89 c7 mov %rax,%rdi 1ee75: e8 c6 3f ff ff callq 12e40 <_ZNSsD1Ev@plt> 1ee7a: eb 03 jmp 1ee7f <_ZN17XLogSyslogHandlerD1Ev+0x89> 1ee7c: 48 89 c3 mov %rax,%rbx 1ee7f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1ee83: 48 89 c7 mov %rax,%rdi 1ee86: e8 55 43 ff ff callq 131e0 <_ZN11XLogHandlerD2Ev@plt> 1ee8b: 48 89 d8 mov %rbx,%rax 1ee8e: 48 89 c7 mov %rax,%rdi 1ee91: e8 8a 50 ff ff callq 13f20 <_Unwind_Resume@plt> #else #error Not implemented yet. #endif is_open = 0; } } 1ee96: 48 83 c4 18 add $0x18,%rsp 1ee9a: 5b pop %rbx 1ee9b: 5d pop %rbp 1ee9c: c3 retq 1ee9d: 90 nop 000000000001ee9e <_ZN17XLogSyslogHandlerD0Ev>: id(ident) { openLog(); } XLogSyslogHandler::~XLogSyslogHandler() 1ee9e: 55 push %rbp 1ee9f: 48 89 e5 mov %rsp,%rbp 1eea2: 48 83 ec 10 sub $0x10,%rsp 1eea6: 48 89 7d f8 mov %rdi,-0x8(%rbp) #else #error Not implemented yet. #endif is_open = 0; } } 1eeaa: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eeae: 48 89 c7 mov %rax,%rdi 1eeb1: e8 0a 4c ff ff callq 13ac0 <_ZN17XLogSyslogHandlerD1Ev@plt> 1eeb6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eeba: 48 89 c7 mov %rax,%rdi 1eebd: e8 7e 38 ff ff callq 12740 <_ZdlPv@plt> 1eec2: c9 leaveq 1eec3: c3 retq 000000000001eec4 <_ZN17XLogSyslogHandler7openLogEv>: void XLogSyslogHandler::openLog() { 1eec4: 55 push %rbp 1eec5: 48 89 e5 mov %rsp,%rbp 1eec8: 48 83 ec 10 sub $0x10,%rsp 1eecc: 48 89 7d f8 mov %rdi,-0x8(%rbp) if (!is_open) { 1eed0: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eed4: 0f b7 40 0c movzwl 0xc(%rax),%eax 1eed8: 66 85 c0 test %ax,%ax 1eedb: 75 2c jne 1ef09 <_ZN17XLogSyslogHandler7openLogEv+0x45> #if __linux openlog(id.c_str(), LOG_NDELAY, LOG_USER); 1eedd: 48 8b 45 f8 mov -0x8(%rbp),%rax 1eee1: 48 83 c0 10 add $0x10,%rax 1eee5: 48 89 c7 mov %rax,%rdi 1eee8: e8 d3 37 ff ff callq 126c0 <_ZNKSs5c_strEv@plt> 1eeed: ba 08 00 00 00 mov $0x8,%edx 1eef2: be 08 00 00 00 mov $0x8,%esi 1eef7: 48 89 c7 mov %rax,%rdi 1eefa: e8 71 38 ff ff callq 12770 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif is_open = 1; 1eeff: 48 8b 45 f8 mov -0x8(%rbp),%rax 1ef03: 66 c7 40 0c 01 00 movw $0x1,0xc(%rax) } } 1ef09: c9 leaveq 1ef0a: c3 retq 1ef0b: 90 nop 000000000001ef0c <_ZN17XLogSyslogHandler5flushEv>: void XLogSyslogHandler::flush() { 1ef0c: 55 push %rbp 1ef0d: 48 89 e5 mov %rsp,%rbp 1ef10: 48 89 7d f8 mov %rdi,-0x8(%rbp) // Do nothing } 1ef14: 5d pop %rbp 1ef15: c3 retq 000000000001ef16 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel>: int XLogSyslogHandler::mapLevel(LogLevel level) { 1ef16: 55 push %rbp 1ef17: 48 89 e5 mov %rsp,%rbp 1ef1a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1ef1e: 89 75 f4 mov %esi,-0xc(%rbp) switch(level) { 1ef21: 8b 45 f4 mov -0xc(%rbp),%eax 1ef24: 83 f8 02 cmp $0x2,%eax 1ef27: 74 1f je 1ef48 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x32> 1ef29: 83 f8 02 cmp $0x2,%eax 1ef2c: 7f 07 jg 1ef35 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x1f> 1ef2e: 83 f8 01 cmp $0x1,%eax 1ef31: 74 0e je 1ef41 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x2b> 1ef33: eb 28 jmp 1ef5d <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x47> 1ef35: 83 f8 03 cmp $0x3,%eax 1ef38: 74 15 je 1ef4f <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x39> 1ef3a: 83 f8 04 cmp $0x4,%eax 1ef3d: 74 17 je 1ef56 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x40> 1ef3f: eb 1c jmp 1ef5d <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x47> #if __linux case FATAL: return LOG_CRIT; 1ef41: b8 02 00 00 00 mov $0x2,%eax 1ef46: eb 1a jmp 1ef62 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case ERROR: return LOG_ERR; 1ef48: b8 03 00 00 00 mov $0x3,%eax 1ef4d: eb 13 jmp 1ef62 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case WARNING: return LOG_WARNING; 1ef4f: b8 04 00 00 00 mov $0x4,%eax 1ef54: eb 0c jmp 1ef62 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> case INFO: return LOG_INFO; 1ef56: b8 06 00 00 00 mov $0x6,%eax 1ef5b: eb 05 jmp 1ef62 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel+0x4c> default: return LOG_DEBUG; 1ef5d: b8 07 00 00 00 mov $0x7,%eax #error Windows version not implemented yet. #else #error Not implemented yet. #endif } } 1ef62: 5d pop %rbp 1ef63: c3 retq 000000000001ef64 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag>: void XLogSyslogHandler::log(const char* origin, const char* func, LogLevel level, const char* format, va_list& arglist) { 1ef64: 55 push %rbp 1ef65: 48 89 e5 mov %rsp,%rbp 1ef68: 53 push %rbx 1ef69: 48 83 ec 48 sub $0x48,%rsp 1ef6d: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1ef71: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1ef75: 48 89 55 c8 mov %rdx,-0x38(%rbp) 1ef79: 89 4d c4 mov %ecx,-0x3c(%rbp) 1ef7c: 4c 89 45 b8 mov %r8,-0x48(%rbp) 1ef80: 4c 89 4d b0 mov %r9,-0x50(%rbp) if (!is_open) 1ef84: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ef88: 0f b7 40 0c movzwl 0xc(%rax),%eax 1ef8c: 66 85 c0 test %ax,%ax 1ef8f: 75 0c jne 1ef9d <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x39> openLog(); 1ef91: 48 8b 45 d8 mov -0x28(%rbp),%rax 1ef95: 48 89 c7 mov %rax,%rdi 1ef98: e8 83 4a ff ff callq 13a20 <_ZN17XLogSyslogHandler7openLogEv@plt> if (is_open) { 1ef9d: 48 8b 45 d8 mov -0x28(%rbp),%rax 1efa1: 0f b7 40 0c movzwl 0xc(%rax),%eax 1efa5: 66 85 c0 test %ax,%ax 1efa8: 0f 84 e1 00 00 00 je 1f08f <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x12b> int priority = mapLevel(level); 1efae: 8b 55 c4 mov -0x3c(%rbp),%edx 1efb1: 48 8b 45 d8 mov -0x28(%rbp),%rax 1efb5: 89 d6 mov %edx,%esi 1efb7: 48 89 c7 mov %rax,%rdi 1efba: e8 61 51 ff ff callq 14120 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt> 1efbf: 89 45 ec mov %eax,-0x14(%rbp) string s; 1efc2: 48 8d 45 e0 lea -0x20(%rbp),%rax 1efc6: 48 89 c7 mov %rax,%rdi 1efc9: e8 d2 33 ff ff callq 123a0 <_ZNSsC1Ev@plt> if (origin != NULL) { 1efce: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 1efd3: 74 72 je 1f047 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0xe3> s.append("["); 1efd5: 48 8d 45 e0 lea -0x20(%rbp),%rax 1efd9: 48 8d 35 ef 39 00 00 lea 0x39ef(%rip),%rsi # 229cf <_fini+0xb17> 1efe0: 48 89 c7 mov %rax,%rdi 1efe3: e8 f8 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> s.append(origin); 1efe8: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1efec: 48 8d 45 e0 lea -0x20(%rbp),%rax 1eff0: 48 89 d6 mov %rdx,%rsi 1eff3: 48 89 c7 mov %rax,%rdi 1eff6: e8 e5 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> s.append(" "); 1effb: 48 8d 45 e0 lea -0x20(%rbp),%rax 1efff: 48 8d 35 cb 39 00 00 lea 0x39cb(%rip),%rsi # 229d1 <_fini+0xb19> 1f006: 48 89 c7 mov %rax,%rdi 1f009: e8 d2 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> s.append(func); 1f00e: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1f012: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f016: 48 89 d6 mov %rdx,%rsi 1f019: 48 89 c7 mov %rax,%rdi 1f01c: e8 bf 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> s.append("] "); 1f021: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f025: 48 8d 35 a7 39 00 00 lea 0x39a7(%rip),%rsi # 229d3 <_fini+0xb1b> 1f02c: 48 89 c7 mov %rax,%rdi 1f02f: e8 ac 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> s.append(format); 1f034: 48 8b 55 b8 mov -0x48(%rbp),%rdx 1f038: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f03c: 48 89 d6 mov %rdx,%rsi 1f03f: 48 89 c7 mov %rax,%rdi 1f042: e8 99 4a ff ff callq 13ae0 <_ZNSs6appendEPKc@plt> } #if __linux vsyslog(priority, s.c_str(), arglist); 1f047: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f04b: 48 89 c7 mov %rax,%rdi 1f04e: e8 6d 36 ff ff callq 126c0 <_ZNKSs5c_strEv@plt> 1f053: 48 89 c1 mov %rax,%rcx 1f056: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1f05a: 8b 45 ec mov -0x14(%rbp),%eax 1f05d: 48 89 ce mov %rcx,%rsi 1f060: 89 c7 mov %eax,%edi 1f062: e8 d9 3b ff ff callq 12c40 1f067: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f06b: 48 89 c7 mov %rax,%rdi 1f06e: e8 cd 3d ff ff callq 12e40 <_ZNSsD1Ev@plt> 1f073: eb 1b jmp 1f090 <_ZN17XLogSyslogHandler3logEPKcS1_8LogLevelS1_RA1_13__va_list_tag+0x12c> 1f075: 48 89 c3 mov %rax,%rbx 1f078: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f07c: 48 89 c7 mov %rax,%rdi 1f07f: e8 bc 3d ff ff callq 12e40 <_ZNSsD1Ev@plt> 1f084: 48 89 d8 mov %rbx,%rax 1f087: 48 89 c7 mov %rax,%rdi 1f08a: e8 91 4e ff ff callq 13f20 <_Unwind_Resume@plt> #error Windows version not implemented yet. #else #error Not implemented yet. #endif } } 1f08f: 90 nop 1f090: 48 83 c4 48 add $0x48,%rsp 1f094: 5b pop %rbx 1f095: 5d pop %rbp 1f096: c3 retq 1f097: 90 nop 000000000001f098 <_ZN17XLogSyslogHandler8setLevelE8LogLevel>: void XLogSyslogHandler::setLevel(LogLevel l) { 1f098: 55 push %rbp 1f099: 48 89 e5 mov %rsp,%rbp 1f09c: 53 push %rbx 1f09d: 48 83 ec 28 sub $0x28,%rsp 1f0a1: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1f0a5: 89 75 d4 mov %esi,-0x2c(%rbp) level = l; 1f0a8: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f0ac: 8b 55 d4 mov -0x2c(%rbp),%edx 1f0af: 89 50 08 mov %edx,0x8(%rax) int priority = mapLevel(level); 1f0b2: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f0b6: 8b 50 08 mov 0x8(%rax),%edx 1f0b9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f0bd: 89 d6 mov %edx,%esi 1f0bf: 48 89 c7 mov %rax,%rdi 1f0c2: e8 59 50 ff ff callq 14120 <_ZN17XLogSyslogHandler8mapLevelE8LogLevel@plt> 1f0c7: 89 45 ec mov %eax,-0x14(%rbp) #if __linux setlogmask(LOG_UPTO(priority)); 1f0ca: 8b 45 ec mov -0x14(%rbp),%eax 1f0cd: 83 c0 01 add $0x1,%eax 1f0d0: ba 01 00 00 00 mov $0x1,%edx 1f0d5: 89 d3 mov %edx,%ebx 1f0d7: 89 c1 mov %eax,%ecx 1f0d9: d3 e3 shl %cl,%ebx 1f0db: 89 d8 mov %ebx,%eax 1f0dd: 83 e8 01 sub $0x1,%eax 1f0e0: 89 c7 mov %eax,%edi 1f0e2: e8 19 38 ff ff callq 12900 #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif } 1f0e7: 48 83 c4 28 add $0x28,%rsp 1f0eb: 5b pop %rbx 1f0ec: 5d pop %rbp 1f0ed: c3 retq 000000000001f0ee <_Z41__static_initialization_and_destruction_0ii>: 1f0ee: 55 push %rbp 1f0ef: 48 89 e5 mov %rsp,%rbp 1f0f2: 48 83 ec 10 sub $0x10,%rsp 1f0f6: 89 7d fc mov %edi,-0x4(%rbp) 1f0f9: 89 75 f8 mov %esi,-0x8(%rbp) 1f0fc: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 1f100: 75 67 jne 1f169 <_Z41__static_initialization_and_destruction_0ii+0x7b> 1f102: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 1f109: 75 5e jne 1f169 <_Z41__static_initialization_and_destruction_0ii+0x7b> /******************************************************************************** * XLogFileHandlerBase ********************************************************************************/ XMutex XLogFileHandlerBase::mutex; 1f10b: 48 8b 05 86 8e 20 00 mov 0x208e86(%rip),%rax # 227f98 <_DYNAMIC+0x248> 1f112: 48 89 c7 mov %rax,%rdi 1f115: e8 36 46 ff ff callq 13750 <_ZN6XMutexC1Ev@plt> 1f11a: 48 8b 05 37 8e 20 00 mov 0x208e37(%rip),%rax # 227f58 <_DYNAMIC+0x208> 1f121: 48 8b 15 48 8e 20 00 mov 0x208e48(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 1f128: 48 8b 0d 69 8e 20 00 mov 0x208e69(%rip),%rcx # 227f98 <_DYNAMIC+0x248> 1f12f: 48 89 ce mov %rcx,%rsi 1f132: 48 89 c7 mov %rax,%rdi 1f135: e8 26 3a ff ff callq 12b60 <__cxa_atexit@plt> vector XLogFileHandlerBase::log_files; 1f13a: 48 8b 05 e7 8d 20 00 mov 0x208de7(%rip),%rax # 227f28 <_DYNAMIC+0x1d8> 1f141: 48 89 c7 mov %rax,%rdi 1f144: e8 d7 38 ff ff callq 12a20 <_ZNSt6vectorISsSaISsEEC1Ev@plt> 1f149: 48 8b 05 58 8e 20 00 mov 0x208e58(%rip),%rax # 227fa8 <_DYNAMIC+0x258> 1f150: 48 8b 15 19 8e 20 00 mov 0x208e19(%rip),%rdx # 227f70 <_DYNAMIC+0x220> 1f157: 48 8b 0d ca 8d 20 00 mov 0x208dca(%rip),%rcx # 227f28 <_DYNAMIC+0x1d8> 1f15e: 48 89 ce mov %rcx,%rsi 1f161: 48 89 c7 mov %rax,%rdi 1f164: e8 f7 39 ff ff callq 12b60 <__cxa_atexit@plt> #elif (_WIN32 || _WIN64) #error Windows version not implemented yet. #else #error Not implemented yet. #endif } 1f169: c9 leaveq 1f16a: c3 retq 000000000001f16b <_GLOBAL__sub_I_log.cpp>: 1f16b: 55 push %rbp 1f16c: 48 89 e5 mov %rsp,%rbp 1f16f: be ff ff 00 00 mov $0xffff,%esi 1f174: bf 01 00 00 00 mov $0x1,%edi 1f179: e8 70 ff ff ff callq 1f0ee <_Z41__static_initialization_and_destruction_0ii> 1f17e: 5d pop %rbp 1f17f: c3 retq 000000000001f180 <_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() { } 1f180: 55 push %rbp 1f181: 48 89 e5 mov %rsp,%rbp 1f184: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f188: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1f18c: 5d pop %rbp 1f18d: c3 retq 000000000001f18e <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_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 1f18e: 55 push %rbp 1f18f: 48 89 e5 mov %rsp,%rbp 1f192: 48 83 ec 10 sub $0x10,%rsp 1f196: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f19a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f19e: 48 89 c7 mov %rax,%rdi 1f1a1: e8 fa 35 ff ff callq 127a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev@plt> 1f1a6: c9 leaveq 1f1a7: c3 retq 000000000001f1a8 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EEC1Ev>: // allocation/deallocation /** * @brief Default constructor creates no elements. */ set() 1f1a8: 55 push %rbp 1f1a9: 48 89 e5 mov %rsp,%rbp 1f1ac: 48 83 ec 10 sub $0x10,%rsp 1f1b0: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 1f1b4: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1b8: 48 89 c7 mov %rax,%rdi 1f1bb: e8 b0 39 ff ff callq 12b70 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EEC1Ev@plt> 1f1c0: c9 leaveq 1f1c1: c3 retq 000000000001f1c2 <_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 1f1c2: 55 push %rbp 1f1c3: 48 89 e5 mov %rsp,%rbp 1f1c6: 48 83 ec 10 sub $0x10,%rsp 1f1ca: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.begin(); } 1f1ce: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1d2: 48 89 c7 mov %rax,%rdi 1f1d5: e8 a6 43 ff ff callq 13580 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt> 1f1da: c9 leaveq 1f1db: c3 retq 000000000001f1dc <_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 1f1dc: 55 push %rbp 1f1dd: 48 89 e5 mov %rsp,%rbp 1f1e0: 48 83 ec 10 sub $0x10,%rsp 1f1e4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 1f1e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f1ec: 48 89 c7 mov %rax,%rdi 1f1ef: e8 ac 4e ff ff callq 140a0 <_ZNKSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 1f1f4: c9 leaveq 1f1f5: c3 retq 000000000001f1f6 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEneERKS2_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 1f1f6: 55 push %rbp 1f1f7: 48 89 e5 mov %rsp,%rbp 1f1fa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f1fe: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 1f202: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f206: 48 8b 10 mov (%rax),%rdx 1f209: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f20d: 48 8b 00 mov (%rax),%rax 1f210: 48 39 c2 cmp %rax,%rdx 1f213: 0f 95 c0 setne %al 1f216: 5d pop %rbp 1f217: c3 retq 000000000001f218 <_ZNKSt23_Rb_tree_const_iteratorIP11XLogHandlerEdeEv>: _M_const_cast() const { return iterator(static_cast (const_cast(_M_node))); } reference operator*() const 1f218: 55 push %rbp 1f219: 48 89 e5 mov %rsp,%rbp 1f21c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 1f220: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f224: 48 8b 00 mov (%rax),%rax 1f227: 48 83 c0 20 add $0x20,%rax 1f22b: 5d pop %rbp 1f22c: c3 retq 1f22d: 90 nop 000000000001f22e <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 1f22e: 55 push %rbp 1f22f: 48 89 e5 mov %rsp,%rbp 1f232: 48 83 ec 20 sub $0x20,%rsp 1f236: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1f23a: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 1f23d: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f241: 48 8b 00 mov (%rax),%rax 1f244: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 1f248: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f24c: 48 8b 00 mov (%rax),%rax 1f24f: 48 89 c7 mov %rax,%rdi 1f252: e8 e9 3f ff ff callq 13240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 1f257: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1f25b: 48 89 02 mov %rax,(%rdx) return __tmp; 1f25e: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1f262: c9 leaveq 1f263: c3 retq 000000000001f264 <_ZNSt3setIP11XLogHandlerSt4lessIS1_ESaIS1_EE6insertERKS1_>: * not already present in the %set. * * Insertion requires logarithmic time. */ std::pair insert(const value_type& __x) 1f264: 55 push %rbp 1f265: 48 89 e5 mov %rsp,%rbp 1f268: 48 83 ec 60 sub $0x60,%rsp 1f26c: 48 89 7d b8 mov %rdi,-0x48(%rbp) 1f270: 48 89 75 b0 mov %rsi,-0x50(%rbp) { std::pair __p = _M_t._M_insert_unique(__x); 1f274: 48 8b 45 b8 mov -0x48(%rbp),%rax 1f278: 48 8b 55 b0 mov -0x50(%rbp),%rdx 1f27c: 48 89 d6 mov %rdx,%rsi 1f27f: 48 89 c7 mov %rax,%rdi 1f282: e8 d9 32 ff ff callq 12560 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_@plt> 1f287: 48 89 c1 mov %rax,%rcx 1f28a: 89 d0 mov %edx,%eax 1f28c: 48 89 4d a0 mov %rcx,-0x60(%rbp) 1f290: 89 45 a8 mov %eax,-0x58(%rbp) 1f293: 48 8b 45 a0 mov -0x60(%rbp),%rax 1f297: 48 89 45 c0 mov %rax,-0x40(%rbp) 1f29b: 48 8b 45 a8 mov -0x58(%rbp),%rax 1f29f: 48 89 45 c8 mov %rax,-0x38(%rbp) return std::pair(__p.first, __p.second); 1f2a3: 48 8d 55 c0 lea -0x40(%rbp),%rdx 1f2a7: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f2ab: 48 89 d6 mov %rdx,%rsi 1f2ae: 48 89 c7 mov %rax,%rdi 1f2b1: e8 5a 40 ff ff callq 13310 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt> 1f2b6: 48 8d 45 c0 lea -0x40(%rbp),%rax 1f2ba: 48 8d 50 08 lea 0x8(%rax),%rdx 1f2be: 48 8d 4d f0 lea -0x10(%rbp),%rcx 1f2c2: 48 8d 45 d0 lea -0x30(%rbp),%rax 1f2c6: 48 89 ce mov %rcx,%rsi 1f2c9: 48 89 c7 mov %rax,%rdi 1f2cc: e8 1f 4a ff ff callq 13cf0 <_ZNSt4pairISt23_Rb_tree_const_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 1f2d1: 48 8b 45 d0 mov -0x30(%rbp),%rax 1f2d5: 48 89 45 e0 mov %rax,-0x20(%rbp) 1f2d9: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f2dd: 48 89 45 e8 mov %rax,-0x18(%rbp) 1f2e1: 48 8b 45 e0 mov -0x20(%rbp),%rax 1f2e5: 8b 55 e8 mov -0x18(%rbp),%edx } 1f2e8: c9 leaveq 1f2e9: c3 retq 000000000001f2ea <_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) 1f2ea: 55 push %rbp 1f2eb: 48 89 e5 mov %rsp,%rbp 1f2ee: 48 83 ec 30 sub $0x30,%rsp 1f2f2: 48 89 7d d8 mov %rdi,-0x28(%rbp) 1f2f6: 48 89 75 d0 mov %rsi,-0x30(%rbp) { return _M_t.find(__x); } 1f2fa: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f2fe: 48 8b 55 d0 mov -0x30(%rbp),%rdx 1f302: 48 89 d6 mov %rdx,%rsi 1f305: 48 89 c7 mov %rax,%rdi 1f308: e8 23 44 ff ff callq 13730 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_@plt> 1f30d: 48 89 45 e0 mov %rax,-0x20(%rbp) 1f311: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1f315: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f319: 48 89 d6 mov %rdx,%rsi 1f31c: 48 89 c7 mov %rax,%rdi 1f31f: e8 ec 3f ff ff callq 13310 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1ERKSt17_Rb_tree_iteratorIS1_E@plt> 1f324: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f328: c9 leaveq 1f329: c3 retq 000000000001f32a <_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) 1f32a: 55 push %rbp 1f32b: 48 89 e5 mov %rsp,%rbp 1f32e: 48 83 ec 10 sub $0x10,%rsp 1f332: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f336: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_t.erase(__position); } 1f33a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f33e: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1f342: 48 89 d6 mov %rdx,%rsi 1f345: 48 89 c7 mov %rax,%rdi 1f348: e8 93 49 ff ff callq 13ce0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5eraseESt23_Rb_tree_const_iteratorIS1_E@plt> 1f34d: c9 leaveq 1f34e: c3 retq 1f34f: 90 nop 000000000001f350 <_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() 1f350: 55 push %rbp 1f351: 48 89 e5 mov %rsp,%rbp 1f354: 48 83 ec 10 sub $0x10,%rsp 1f358: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_t() { } 1f35c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f360: 48 89 c7 mov %rax,%rdi 1f363: e8 58 2f ff ff callq 122c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EEC1Ev@plt> 1f368: c9 leaveq 1f369: c3 retq 000000000001f36a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev>: } protected: template struct _Rb_tree_impl : public _Node_allocator 1f36a: 55 push %rbp 1f36b: 48 89 e5 mov %rsp,%rbp 1f36e: 48 83 ec 10 sub $0x10,%rsp 1f372: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f376: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f37a: 48 89 c7 mov %rax,%rdi 1f37d: e8 4e 39 ff ff callq 12cd0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 1f382: c9 leaveq 1f383: c3 retq 000000000001f384 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EED1Ev>: #ifdef __GXX_EXPERIMENTAL_CXX0X__ _Rb_tree(_Rb_tree&& __x); #endif ~_Rb_tree() 1f384: 55 push %rbp 1f385: 48 89 e5 mov %rsp,%rbp 1f388: 53 push %rbx 1f389: 48 83 ec 18 sub $0x18,%rsp 1f38d: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_erase(_M_begin()); } 1f391: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f395: 48 89 c7 mov %rax,%rdi 1f398: e8 73 32 ff ff callq 12610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 1f39d: 48 89 c2 mov %rax,%rdx 1f3a0: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f3a4: 48 89 d6 mov %rdx,%rsi 1f3a7: 48 89 c7 mov %rax,%rdi 1f3aa: e8 b1 44 ff ff callq 13860 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt> 1f3af: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f3b3: 48 89 c7 mov %rax,%rdi 1f3b6: e8 85 41 ff ff callq 13540 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt> 1f3bb: 48 83 c4 18 add $0x18,%rsp 1f3bf: 5b pop %rbx 1f3c0: 5d pop %rbp 1f3c1: c3 retq 1f3c2: 48 89 c3 mov %rax,%rbx 1f3c5: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f3c9: 48 89 c7 mov %rax,%rdi 1f3cc: e8 6f 41 ff ff callq 13540 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EED1Ev@plt> 1f3d1: 48 89 d8 mov %rbx,%rax 1f3d4: 48 89 c7 mov %rax,%rdi 1f3d7: e8 44 4b ff ff callq 13f20 <_Unwind_Resume@plt> 000000000001f3dc <_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() 1f3dc: 55 push %rbp 1f3dd: 48 89 e5 mov %rsp,%rbp 1f3e0: 48 83 ec 10 sub $0x10,%rsp 1f3e4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.begin(); } 1f3e8: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f3ec: 48 89 c7 mov %rax,%rdi 1f3ef: e8 cc 37 ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt> 1f3f4: c9 leaveq 1f3f5: c3 retq 000000000001f3f6 <_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) 1f3f6: 55 push %rbp 1f3f7: 48 89 e5 mov %rsp,%rbp 1f3fa: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f3fe: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 1f402: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f406: 48 8b 10 mov (%rax),%rdx 1f409: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f40d: 48 89 10 mov %rdx,(%rax) 1f410: 5d pop %rbp 1f411: c3 retq 000000000001f412 <_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() 1f412: 55 push %rbp 1f413: 48 89 e5 mov %rsp,%rbp 1f416: 48 83 ec 10 sub $0x10,%rsp 1f41a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_t.end(); } 1f41e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f422: 48 89 c7 mov %rax,%rdi 1f425: e8 36 43 ff ff callq 13760 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 1f42a: c9 leaveq 1f42b: c3 retq 000000000001f42c <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEneERKS5_>: bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const 1f42c: 55 push %rbp 1f42d: 48 89 e5 mov %rsp,%rbp 1f430: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f434: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node != __x._M_node; } 1f438: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f43c: 48 8b 10 mov (%rax),%rdx 1f43f: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f443: 48 8b 00 mov (%rax),%rax 1f446: 48 39 c2 cmp %rax,%rdx 1f449: 0f 95 c0 setne %al 1f44c: 5d pop %rbp 1f44d: c3 retq 000000000001f44e <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEptEv>: reference operator*() const { return static_cast<_Link_type>(_M_node)->_M_value_field; } pointer operator->() const 1f44e: 55 push %rbp 1f44f: 48 89 e5 mov %rsp,%rbp 1f452: 48 83 ec 10 sub $0x10,%rsp 1f456: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } 1f45a: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f45e: 48 8b 00 mov (%rax),%rax 1f461: 48 83 c0 20 add $0x20,%rax 1f465: 48 89 c7 mov %rax,%rdi 1f468: e8 83 33 ff ff callq 127f0 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_@plt> 1f46d: c9 leaveq 1f46e: c3 retq 1f46f: 90 nop 000000000001f470 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEi>: _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) 1f470: 55 push %rbp 1f471: 48 89 e5 mov %rsp,%rbp 1f474: 48 83 ec 20 sub $0x20,%rsp 1f478: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1f47c: 89 75 e4 mov %esi,-0x1c(%rbp) { _Self __tmp = *this; 1f47f: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f483: 48 8b 00 mov (%rax),%rax 1f486: 48 89 45 f0 mov %rax,-0x10(%rbp) _M_node = _Rb_tree_increment(_M_node); 1f48a: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f48e: 48 8b 00 mov (%rax),%rax 1f491: 48 89 c7 mov %rax,%rdi 1f494: e8 a7 3d ff ff callq 13240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 1f499: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1f49d: 48 89 02 mov %rax,(%rdx) return __tmp; 1f4a0: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1f4a4: c9 leaveq 1f4a5: c3 retq 000000000001f4a6 <_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) 1f4a6: 55 push %rbp 1f4a7: 48 89 e5 mov %rsp,%rbp 1f4aa: 48 83 ec 10 sub $0x10,%rsp 1f4ae: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f4b2: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.find(__x); } 1f4b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f4ba: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1f4be: 48 89 d6 mov %rdx,%rsi 1f4c1: 48 89 c7 mov %rax,%rdi 1f4c4: e8 47 2e ff ff callq 12310 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_@plt> 1f4c9: c9 leaveq 1f4ca: c3 retq 1f4cb: 90 nop 000000000001f4cc <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 1f4cc: 55 push %rbp 1f4cd: 48 89 e5 mov %rsp,%rbp 1f4d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f4d4: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 1f4d8: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f4dc: 48 8b 10 mov (%rax),%rdx 1f4df: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f4e3: 48 8b 00 mov (%rax),%rax 1f4e6: 48 39 c2 cmp %rax,%rdx 1f4e9: 0f 94 c0 sete %al 1f4ec: 5d pop %rbp 1f4ed: c3 retq 000000000001f4ee <_ZNSt4pairIKSsP4XLogED1Ev>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 1f4ee: 55 push %rbp 1f4ef: 48 89 e5 mov %rsp,%rbp 1f4f2: 48 83 ec 10 sub $0x10,%rsp 1f4f6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f4fa: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f4fe: 48 89 c7 mov %rax,%rdi 1f501: e8 3a 39 ff ff callq 12e40 <_ZNSsD1Ev@plt> 1f506: c9 leaveq 1f507: c3 retq 000000000001f508 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_>: * is created using default values, which is then returned. * * Lookup requires logarithmic time. */ mapped_type& operator[](const key_type& __k) 1f508: 55 push %rbp 1f509: 48 89 e5 mov %rsp,%rbp 1f50c: 53 push %rbx 1f50d: 48 83 ec 58 sub $0x58,%rsp 1f511: 48 89 7d a8 mov %rdi,-0x58(%rbp) 1f515: 48 89 75 a0 mov %rsi,-0x60(%rbp) { // concept requirements __glibcxx_function_requires(_DefaultConstructibleConcept) iterator __i = lower_bound(__k); 1f519: 48 8b 55 a0 mov -0x60(%rbp),%rdx 1f51d: 48 8b 45 a8 mov -0x58(%rbp),%rax 1f521: 48 89 d6 mov %rdx,%rsi 1f524: 48 89 c7 mov %rax,%rdi 1f527: e8 f4 46 ff ff callq 13c20 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE11lower_boundERS5_@plt> 1f52c: 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)) 1f530: 48 8b 45 a8 mov -0x58(%rbp),%rax 1f534: 48 89 c7 mov %rax,%rdi 1f537: e8 b4 37 ff ff callq 12cf0 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE3endEv@plt> 1f53c: 48 89 45 d0 mov %rax,-0x30(%rbp) 1f540: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1f544: 48 8d 45 c0 lea -0x40(%rbp),%rax 1f548: 48 89 d6 mov %rdx,%rsi 1f54b: 48 89 c7 mov %rax,%rdi 1f54e: e8 5d 2e ff ff callq 123b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 1f553: 84 c0 test %al,%al 1f555: 75 35 jne 1f58c <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x84> 1f557: 48 8d 45 c0 lea -0x40(%rbp),%rax 1f55b: 48 89 c7 mov %rax,%rdi 1f55e: e8 4d 31 ff ff callq 126b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt> 1f563: 48 89 c3 mov %rax,%rbx 1f566: 48 8b 45 a8 mov -0x58(%rbp),%rax 1f56a: 48 89 c7 mov %rax,%rdi 1f56d: e8 5e 3b ff ff callq 130d0 <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv@plt> 1f572: 48 8b 4d a0 mov -0x60(%rbp),%rcx 1f576: 48 8d 45 ef lea -0x11(%rbp),%rax 1f57a: 48 89 da mov %rbx,%rdx 1f57d: 48 89 ce mov %rcx,%rsi 1f580: 48 89 c7 mov %rax,%rdi 1f583: e8 f8 2e ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 1f588: 84 c0 test %al,%al 1f58a: 74 07 je 1f593 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x8b> 1f58c: b8 01 00 00 00 mov $0x1,%eax 1f591: eb 05 jmp 1f598 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0x90> 1f593: b8 00 00 00 00 mov $0x0,%eax 1f598: 84 c0 test %al,%al 1f59a: 74 46 je 1f5e2 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEEixERS5_+0xda> __i = insert(__i, value_type(__k, mapped_type())); 1f59c: 48 c7 45 e0 00 00 00 movq $0x0,-0x20(%rbp) 1f5a3: 00 1f5a4: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1f5a8: 48 8b 4d a0 mov -0x60(%rbp),%rcx 1f5ac: 48 8d 45 b0 lea -0x50(%rbp),%rax 1f5b0: 48 89 ce mov %rcx,%rsi 1f5b3: 48 89 c7 mov %rax,%rdi 1f5b6: e8 35 44 ff ff callq 139f0 <_ZNSt4pairIKSsP4XLogEC1ERS0_RKS2_@plt> 1f5bb: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1f5bf: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1f5c3: 48 8b 45 a8 mov -0x58(%rbp),%rax 1f5c7: 48 89 ce mov %rcx,%rsi 1f5ca: 48 89 c7 mov %rax,%rdi 1f5cd: e8 be 40 ff ff callq 13690 <_ZNSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE6insertESt17_Rb_tree_iteratorIS6_ERKS6_@plt> 1f5d2: 48 89 45 c0 mov %rax,-0x40(%rbp) 1f5d6: 48 8d 45 b0 lea -0x50(%rbp),%rax 1f5da: 48 89 c7 mov %rax,%rdi 1f5dd: e8 7e 32 ff ff callq 12860 <_ZNSt4pairIKSsP4XLogED1Ev@plt> return (*__i).second; 1f5e2: 48 8d 45 c0 lea -0x40(%rbp),%rax 1f5e6: 48 89 c7 mov %rax,%rdi 1f5e9: e8 c2 30 ff ff callq 126b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv@plt> 1f5ee: 48 83 c0 08 add $0x8,%rax } 1f5f2: 48 83 c4 58 add $0x58,%rsp 1f5f6: 5b pop %rbx 1f5f7: 5d pop %rbp 1f5f8: c3 retq 1f5f9: 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())); 1f5fc: 48 8d 45 b0 lea -0x50(%rbp),%rax 1f600: 48 89 c7 mov %rax,%rdi 1f603: e8 58 32 ff ff callq 12860 <_ZNSt4pairIKSsP4XLogED1Ev@plt> 1f608: 48 89 d8 mov %rbx,%rax 1f60b: 48 89 c7 mov %rax,%rdi 1f60e: e8 0d 49 ff ff callq 13f20 <_Unwind_Resume@plt> 1f613: 90 nop 000000000001f614 <_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() 1f614: 55 push %rbp 1f615: 48 89 e5 mov %rsp,%rbp 1f618: 48 83 ec 10 sub $0x10,%rsp 1f61c: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Base() { } 1f620: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f624: 48 89 c7 mov %rax,%rdi 1f627: e8 c4 49 ff ff callq 13ff0 <_ZNSt12_Vector_baseISsSaISsEEC2Ev@plt> 1f62c: c9 leaveq 1f62d: c3 retq 000000000001f62e <_ZNSt6vectorISsSaISsEE5beginEv>: * Returns a read/write iterator that points to the first * element in the %vector. Iteration is done in ordinary * element order. */ iterator begin() 1f62e: 55 push %rbp 1f62f: 48 89 e5 mov %rsp,%rbp 1f632: 48 83 ec 20 sub $0x20,%rsp 1f636: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_start); } 1f63a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1f63e: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f642: 48 89 d6 mov %rdx,%rsi 1f645: 48 89 c7 mov %rax,%rdi 1f648: e8 b3 41 ff ff callq 13800 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt> 1f64d: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f651: c9 leaveq 1f652: c3 retq 1f653: 90 nop 000000000001f654 <_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() 1f654: 55 push %rbp 1f655: 48 89 e5 mov %rsp,%rbp 1f658: 48 83 ec 20 sub $0x20,%rsp 1f65c: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(this->_M_impl._M_finish); } 1f660: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f664: 48 8d 50 08 lea 0x8(%rax),%rdx 1f668: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f66c: 48 89 d6 mov %rdx,%rsi 1f66f: 48 89 c7 mov %rax,%rdi 1f672: e8 89 41 ff ff callq 13800 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEC1ERKS1_@plt> 1f677: 48 8b 45 f0 mov -0x10(%rbp),%rax 1f67b: c9 leaveq 1f67c: c3 retq 000000000001f67d <_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, 1f67d: 55 push %rbp 1f67e: 48 89 e5 mov %rsp,%rbp 1f681: 53 push %rbx 1f682: 48 83 ec 38 sub $0x38,%rsp 1f686: 48 89 7d e0 mov %rdi,-0x20(%rbp) 1f68a: 48 89 75 d0 mov %rsi,-0x30(%rbp) 1f68e: 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)); 1f692: 48 8d 45 e0 lea -0x20(%rbp),%rax 1f696: 48 89 c7 mov %rax,%rdi 1f699: e8 12 35 ff ff callq 12bb0 <_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_@plt> 1f69e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1f6a2: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1f6a6: 48 8b 45 e0 mov -0x20(%rbp),%rax 1f6aa: 88 1c 24 mov %bl,(%rsp) 1f6ad: 48 89 ce mov %rcx,%rsi 1f6b0: 48 89 c7 mov %rax,%rdi 1f6b3: e8 28 35 ff ff callq 12be0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag@plt> } 1f6b8: 48 83 c4 38 add $0x38,%rsp 1f6bc: 5b pop %rbx 1f6bd: 5d pop %rbp 1f6be: c3 retq 000000000001f6bf <_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, 1f6bf: 55 push %rbp 1f6c0: 48 89 e5 mov %rsp,%rbp 1f6c3: 53 push %rbx 1f6c4: 48 83 ec 18 sub $0x18,%rsp 1f6c8: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1f6cc: 48 89 75 e0 mov %rsi,-0x20(%rbp) const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } 1f6d0: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f6d4: 48 89 c7 mov %rax,%rdi 1f6d7: e8 14 34 ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 1f6dc: 48 8b 18 mov (%rax),%rbx 1f6df: 48 8b 45 e0 mov -0x20(%rbp),%rax 1f6e3: 48 89 c7 mov %rax,%rdi 1f6e6: e8 05 34 ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 1f6eb: 48 8b 00 mov (%rax),%rax 1f6ee: 48 39 c3 cmp %rax,%rbx 1f6f1: 0f 95 c0 setne %al 1f6f4: 48 83 c4 18 add $0x18,%rsp 1f6f8: 5b pop %rbx 1f6f9: 5d pop %rbp 1f6fa: c3 retq 1f6fb: 90 nop 000000000001f6fc <_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) 1f6fc: 55 push %rbp 1f6fd: 48 89 e5 mov %rsp,%rbp 1f700: 48 83 ec 10 sub $0x10,%rsp 1f704: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f708: 48 89 75 f0 mov %rsi,-0x10(%rbp) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1f70c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f710: 48 8b 50 08 mov 0x8(%rax),%rdx 1f714: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f718: 48 8b 40 10 mov 0x10(%rax),%rax 1f71c: 48 39 c2 cmp %rax,%rdx 1f71f: 74 31 je 1f752 <_ZNSt6vectorISsSaISsEE9push_backERKSs+0x56> { this->_M_impl.construct(this->_M_impl._M_finish, __x); 1f721: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f725: 48 8b 48 08 mov 0x8(%rax),%rcx 1f729: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f72d: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1f731: 48 89 ce mov %rcx,%rsi 1f734: 48 89 c7 mov %rax,%rdi 1f737: e8 44 37 ff ff callq 12e80 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> ++this->_M_impl._M_finish; 1f73c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f740: 48 8b 40 08 mov 0x8(%rax),%rax 1f744: 48 8d 50 08 lea 0x8(%rax),%rdx 1f748: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f74c: 48 89 50 08 mov %rdx,0x8(%rax) 1f750: eb 22 jmp 1f774 <_ZNSt6vectorISsSaISsEE9push_backERKSs+0x78> } else _M_insert_aux(end(), __x); 1f752: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f756: 48 89 c7 mov %rax,%rdi 1f759: e8 72 3c ff ff callq 133d0 <_ZNSt6vectorISsSaISsEE3endEv@plt> 1f75e: 48 89 c1 mov %rax,%rcx 1f761: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1f765: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f769: 48 89 ce mov %rcx,%rsi 1f76c: 48 89 c7 mov %rax,%rdi 1f76f: e8 8c 35 ff ff callq 12d00 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs@plt> } 1f774: c9 leaveq 1f775: c3 retq 000000000001f776 <_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() { } 1f776: 55 push %rbp 1f777: 48 89 e5 mov %rsp,%rbp 1f77a: 48 83 ec 10 sub $0x10,%rsp 1f77e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1f782: 48 8b 45 f8 mov -0x8(%rbp),%rax 1f786: 48 89 c7 mov %rax,%rdi 1f789: e8 02 45 ff ff callq 13c90 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev@plt> 1f78e: c9 leaveq 1f78f: c3 retq 000000000001f790 <_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 1f790: 55 push %rbp 1f791: 48 89 e5 mov %rsp,%rbp 1f794: 48 83 ec 20 sub $0x20,%rsp 1f798: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); 1f79c: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f7a0: 48 8b 50 18 mov 0x18(%rax),%rdx 1f7a4: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f7a8: 48 89 d6 mov %rdx,%rsi 1f7ab: 48 89 c7 mov %rax,%rdi 1f7ae: e8 2d 40 ff ff callq 137e0 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt> 1f7b3: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1f7b7: c9 leaveq 1f7b8: c3 retq 1f7b9: 90 nop 000000000001f7ba <_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 1f7ba: 55 push %rbp 1f7bb: 48 89 e5 mov %rsp,%rbp 1f7be: 48 83 ec 20 sub $0x20,%rsp 1f7c2: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return const_iterator(static_cast<_Const_Link_type> (&this->_M_impl._M_header)); 1f7c6: 48 8b 45 e8 mov -0x18(%rbp),%rax 1f7ca: 48 8d 50 08 lea 0x8(%rax),%rdx 1f7ce: 48 8d 45 f0 lea -0x10(%rbp),%rax 1f7d2: 48 89 d6 mov %rdx,%rsi 1f7d5: 48 89 c7 mov %rax,%rdi 1f7d8: e8 03 40 ff ff callq 137e0 <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E@plt> 1f7dd: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1f7e1: c9 leaveq 1f7e2: c3 retq 1f7e3: 90 nop 000000000001f7e4 <_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>:: 1f7e4: 55 push %rbp 1f7e5: 48 89 e5 mov %rsp,%rbp 1f7e8: 53 push %rbx 1f7e9: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 1f7f0: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 1f7f7: 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(); 1f7fe: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f805: 48 89 c7 mov %rax,%rdi 1f808: e8 a3 47 ff ff callq 13fb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 1f80d: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 1f811: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f818: 48 89 c7 mov %rax,%rdi 1f81b: e8 10 39 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 1f820: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 1f824: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 1f828: eb 6c jmp 1f896 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xb2> { __y = __x; 1f82a: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f82e: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 1f832: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f836: 48 89 c7 mov %rax,%rdi 1f839: e8 82 2b ff ff callq 123c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt> 1f83e: 48 89 c3 mov %rax,%rbx 1f841: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 1f848: 48 8d 45 ea lea -0x16(%rbp),%rax 1f84c: 48 89 d6 mov %rdx,%rsi 1f84f: 48 89 c7 mov %rax,%rdi 1f852: e8 a9 2e ff ff callq 12700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 1f857: 48 89 c1 mov %rax,%rcx 1f85a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f861: 48 89 da mov %rbx,%rdx 1f864: 48 89 ce mov %rcx,%rsi 1f867: 48 89 c7 mov %rax,%rdi 1f86a: e8 01 40 ff ff callq 13870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 1f86f: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 1f872: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 1f876: 74 0e je 1f886 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xa2> 1f878: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f87c: 48 89 c7 mov %rax,%rdi 1f87f: e8 bc 32 ff ff callq 12b40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 1f884: eb 0c jmp 1f892 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0xae> 1f886: 48 8b 45 d8 mov -0x28(%rbp),%rax 1f88a: 48 89 c7 mov %rax,%rdi 1f88d: e8 1e 34 ff ff callq 12cb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 1f892: 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) 1f896: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 1f89b: 0f 95 c0 setne %al 1f89e: 84 c0 test %al,%al 1f8a0: 75 88 jne 1f82a <_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); 1f8a2: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1f8a6: 48 8d 45 a0 lea -0x60(%rbp),%rax 1f8aa: 48 89 d6 mov %rdx,%rsi 1f8ad: 48 89 c7 mov %rax,%rdi 1f8b0: e8 5b 42 ff ff callq 13b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> if (__comp) 1f8b5: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 1f8b9: 0f 84 91 00 00 00 je 1f950 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x16c> { if (__j == begin()) 1f8bf: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f8c6: 48 89 c7 mov %rax,%rdi 1f8c9: e8 32 3d ff ff callq 13600 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv@plt> 1f8ce: 48 89 45 b0 mov %rax,-0x50(%rbp) 1f8d2: 48 8d 55 b0 lea -0x50(%rbp),%rdx 1f8d6: 48 8d 45 a0 lea -0x60(%rbp),%rax 1f8da: 48 89 d6 mov %rdx,%rsi 1f8dd: 48 89 c7 mov %rax,%rdi 1f8e0: e8 5b 38 ff ff callq 13140 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt> 1f8e5: 84 c0 test %al,%al 1f8e7: 74 5b je 1f944 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 1f8e9: c6 45 eb 01 movb $0x1,-0x15(%rbp) 1f8ed: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 1f8f4: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1f8f8: 48 8b 75 d8 mov -0x28(%rbp),%rsi 1f8fc: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f903: 48 89 c7 mov %rax,%rdi 1f906: e8 85 47 ff ff callq 14090 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt> 1f90b: 48 89 45 c0 mov %rax,-0x40(%rbp) 1f90f: 48 8d 55 eb lea -0x15(%rbp),%rdx 1f913: 48 8d 4d c0 lea -0x40(%rbp),%rcx 1f917: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 1f91e: 48 89 ce mov %rcx,%rsi 1f921: 48 89 c7 mov %rax,%rdi 1f924: e8 f7 2c ff ff callq 12620 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 1f929: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 1f930: 48 89 45 90 mov %rax,-0x70(%rbp) 1f934: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 1f93b: 48 89 45 98 mov %rax,-0x68(%rbp) 1f93f: e9 d0 00 00 00 jmpq 1fa14 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x230> else --__j; 1f944: 48 8d 45 a0 lea -0x60(%rbp),%rax 1f948: 48 89 c7 mov %rax,%rdi 1f94b: e8 50 40 ff ff callq 139a0 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 1f950: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 1f957: 48 8d 45 ec lea -0x14(%rbp),%rax 1f95b: 48 89 d6 mov %rdx,%rsi 1f95e: 48 89 c7 mov %rax,%rdi 1f961: e8 9a 2d ff ff callq 12700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 1f966: 48 89 c3 mov %rax,%rbx 1f969: 48 8b 45 a0 mov -0x60(%rbp),%rax 1f96d: 48 89 c7 mov %rax,%rdi 1f970: e8 4b 46 ff ff callq 13fc0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1f975: 48 89 c1 mov %rax,%rcx 1f978: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f97f: 48 89 da mov %rbx,%rdx 1f982: 48 89 ce mov %rcx,%rsi 1f985: 48 89 c7 mov %rax,%rdi 1f988: e8 e3 3e ff ff callq 13870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 1f98d: 84 c0 test %al,%al 1f98f: 74 58 je 1f9e9 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 1f991: c6 45 ed 01 movb $0x1,-0x13(%rbp) 1f995: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 1f99c: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1f9a0: 48 8b 75 d8 mov -0x28(%rbp),%rsi 1f9a4: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 1f9ab: 48 89 c7 mov %rax,%rdi 1f9ae: e8 dd 46 ff ff callq 14090 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_@plt> 1f9b3: 48 89 45 d0 mov %rax,-0x30(%rbp) 1f9b7: 48 8d 55 ed lea -0x13(%rbp),%rdx 1f9bb: 48 8d 4d d0 lea -0x30(%rbp),%rcx 1f9bf: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 1f9c6: 48 89 ce mov %rcx,%rsi 1f9c9: 48 89 c7 mov %rax,%rdi 1f9cc: e8 4f 2c ff ff callq 12620 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 1f9d1: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 1f9d8: 48 89 45 90 mov %rax,-0x70(%rbp) 1f9dc: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 1f9e3: 48 89 45 98 mov %rax,-0x68(%rbp) 1f9e7: eb 2b jmp 1fa14 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueERKS1_+0x230> return pair(__j, false); 1f9e9: c6 45 ee 00 movb $0x0,-0x12(%rbp) 1f9ed: 48 8d 55 ee lea -0x12(%rbp),%rdx 1f9f1: 48 8d 4d a0 lea -0x60(%rbp),%rcx 1f9f5: 48 8d 45 80 lea -0x80(%rbp),%rax 1f9f9: 48 89 ce mov %rcx,%rsi 1f9fc: 48 89 c7 mov %rax,%rdi 1f9ff: e8 1c 2c ff ff callq 12620 <_ZNSt4pairISt17_Rb_tree_iteratorIP11XLogHandlerEbEC1ERKS3_RKb@plt> 1fa04: 48 8b 45 80 mov -0x80(%rbp),%rax 1fa08: 48 89 45 90 mov %rax,-0x70(%rbp) 1fa0c: 48 8b 45 88 mov -0x78(%rbp),%rax 1fa10: 48 89 45 98 mov %rax,-0x68(%rbp) 1fa14: 48 8b 45 90 mov -0x70(%rbp),%rax 1fa18: 8b 55 98 mov -0x68(%rbp),%edx } 1fa1b: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 1fa22: 5b pop %rbx 1fa23: 5d pop %rbp 1fa24: c3 retq 1fa25: 90 nop 000000000001fa26 <_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) 1fa26: 55 push %rbp 1fa27: 48 89 e5 mov %rsp,%rbp 1fa2a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fa2e: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__it._M_node) { } 1fa32: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fa36: 48 8b 10 mov (%rax),%rdx 1fa39: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa3d: 48 89 10 mov %rdx,(%rax) 1fa40: 5d pop %rbp 1fa41: c3 retq 000000000001fa42 <_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) 1fa42: 55 push %rbp 1fa43: 48 89 e5 mov %rsp,%rbp 1fa46: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fa4a: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1fa4e: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 1fa52: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa56: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fa5a: 48 8b 12 mov (%rdx),%rdx 1fa5d: 48 89 10 mov %rdx,(%rax) 1fa60: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fa64: 0f b6 10 movzbl (%rax),%edx 1fa67: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fa6b: 88 50 08 mov %dl,0x8(%rax) 1fa6e: 5d pop %rbp 1fa6f: c3 retq 000000000001fa70 <_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>:: 1fa70: 55 push %rbp 1fa71: 48 89 e5 mov %rsp,%rbp 1fa74: 53 push %rbx 1fa75: 48 83 ec 38 sub $0x38,%rsp 1fa79: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1fa7d: 48 89 75 c0 mov %rsi,-0x40(%rbp) find(const _Key& __k) { iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 1fa81: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fa85: 48 89 c7 mov %rax,%rdi 1fa88: e8 a3 36 ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 1fa8d: 48 89 c3 mov %rax,%rbx 1fa90: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fa94: 48 89 c7 mov %rax,%rdi 1fa97: e8 14 45 ff ff callq 13fb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_beginEv@plt> 1fa9c: 48 89 c6 mov %rax,%rsi 1fa9f: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1faa3: 48 8b 45 c8 mov -0x38(%rbp),%rax 1faa7: 48 89 d1 mov %rdx,%rcx 1faaa: 48 89 da mov %rbx,%rdx 1faad: 48 89 c7 mov %rax,%rdi 1fab0: e8 1b 3a ff ff callq 134d0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_@plt> 1fab5: 48 89 45 d0 mov %rax,-0x30(%rbp) return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 1fab9: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fabd: 48 89 c7 mov %rax,%rdi 1fac0: e8 3b 28 ff ff callq 12300 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 1fac5: 48 89 45 e0 mov %rax,-0x20(%rbp) 1fac9: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1facd: 48 8d 45 d0 lea -0x30(%rbp),%rax 1fad1: 48 89 d6 mov %rdx,%rsi 1fad4: 48 89 c7 mov %rax,%rdi 1fad7: e8 64 36 ff ff callq 13140 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_@plt> 1fadc: 84 c0 test %al,%al 1fade: 75 26 jne 1fb06 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0x96> 1fae0: 48 8b 45 d0 mov -0x30(%rbp),%rax 1fae4: 48 89 c7 mov %rax,%rdi 1fae7: e8 d4 44 ff ff callq 13fc0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1faec: 48 89 c2 mov %rax,%rdx 1faef: 48 8b 45 c8 mov -0x38(%rbp),%rax 1faf3: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1faf7: 48 89 ce mov %rcx,%rsi 1fafa: 48 89 c7 mov %rax,%rdi 1fafd: e8 6e 3d ff ff callq 13870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 1fb02: 84 c0 test %al,%al 1fb04: 74 0e je 1fb14 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0xa4> 1fb06: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fb0a: 48 89 c7 mov %rax,%rdi 1fb0d: e8 ee 27 ff ff callq 12300 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE3endEv@plt> 1fb12: eb 04 jmp 1fb18 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE4findERKS1_+0xa8> 1fb14: 48 8b 45 d0 mov -0x30(%rbp),%rax } 1fb18: 48 83 c4 38 add $0x38,%rsp 1fb1c: 5b pop %rbx 1fb1d: 5d pop %rbp 1fb1e: c3 retq 1fb1f: 90 nop 000000000001fb20 <_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) 1fb20: 55 push %rbp 1fb21: 48 89 e5 mov %rsp,%rbp 1fb24: 48 83 ec 10 sub $0x10,%rsp 1fb28: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fb2c: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_erase_aux(__position); } 1fb30: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fb34: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fb38: 48 89 d6 mov %rdx,%rsi 1fb3b: 48 89 c7 mov %rax,%rdi 1fb3e: e8 2d 2e ff ff callq 12970 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS1_E@plt> 1fb43: c9 leaveq 1fb44: c3 retq 1fb45: 90 nop 000000000001fb46 <_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() { } 1fb46: 55 push %rbp 1fb47: 48 89 e5 mov %rsp,%rbp 1fb4a: 48 83 ec 10 sub $0x10,%rsp 1fb4e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fb52: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fb56: 48 89 c7 mov %rax,%rdi 1fb59: e8 e2 2e ff ff callq 12a40 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev@plt> 1fb5e: c9 leaveq 1fb5f: c3 retq 000000000001fb60 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED1Ev>: ~allocator() throw() { } 1fb60: 55 push %rbp 1fb61: 48 89 e5 mov %rsp,%rbp 1fb64: 48 83 ec 10 sub $0x10,%rsp 1fb68: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fb6c: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fb70: 48 89 c7 mov %rax,%rdi 1fb73: e8 98 44 ff ff callq 14010 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 1fb78: c9 leaveq 1fb79: c3 retq 000000000001fb7a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E>: } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1fb7a: 55 push %rbp 1fb7b: 48 89 e5 mov %rsp,%rbp 1fb7e: 48 83 ec 20 sub $0x20,%rsp 1fb82: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1fb86: 48 89 75 e0 mov %rsi,-0x20(%rbp) _M_erase(_Link_type __x) { // Erase without rebalancing. while (__x != 0) 1fb8a: eb 49 jmp 1fbd5 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E+0x5b> { _M_erase(_S_right(__x)); 1fb8c: 48 8b 45 e0 mov -0x20(%rbp),%rax 1fb90: 48 89 c7 mov %rax,%rdi 1fb93: e8 48 2a ff ff callq 125e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 1fb98: 48 89 c2 mov %rax,%rdx 1fb9b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fb9f: 48 89 d6 mov %rdx,%rsi 1fba2: 48 89 c7 mov %rax,%rdi 1fba5: e8 b6 3c ff ff callq 13860 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E@plt> _Link_type __y = _S_left(__x); 1fbaa: 48 8b 45 e0 mov -0x20(%rbp),%rax 1fbae: 48 89 c7 mov %rax,%rdi 1fbb1: e8 ca 3c ff ff callq 13880 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 1fbb6: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__x); 1fbba: 48 8b 55 e0 mov -0x20(%rbp),%rdx 1fbbe: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fbc2: 48 89 d6 mov %rdx,%rsi 1fbc5: 48 89 c7 mov %rax,%rdi 1fbc8: e8 b3 36 ff ff callq 13280 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E@plt> __x = __y; 1fbcd: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fbd1: 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) 1fbd5: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 1fbda: 0f 95 c0 setne %al 1fbdd: 84 c0 test %al,%al 1fbdf: 75 ab jne 1fb8c <_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; } } 1fbe1: c9 leaveq 1fbe2: c3 retq 1fbe3: 90 nop 000000000001fbe4 <_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() 1fbe4: 55 push %rbp 1fbe5: 48 89 e5 mov %rsp,%rbp 1fbe8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 1fbec: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fbf0: 48 8b 40 10 mov 0x10(%rax),%rax 1fbf4: 5d pop %rbp 1fbf5: c3 retq 000000000001fbf6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 1fbf6: 55 push %rbp 1fbf7: 48 89 e5 mov %rsp,%rbp 1fbfa: 48 83 ec 20 sub $0x20,%rsp 1fbfe: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 1fc02: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fc06: 48 8b 50 18 mov 0x18(%rax),%rdx 1fc0a: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fc0e: 48 89 d6 mov %rdx,%rsi 1fc11: 48 89 c7 mov %rax,%rdi 1fc14: e8 97 28 ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 1fc19: 48 8b 45 f0 mov -0x10(%rbp),%rax } 1fc1d: c9 leaveq 1fc1e: c3 retq 1fc1f: 90 nop 000000000001fc20 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv>: return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() 1fc20: 55 push %rbp 1fc21: 48 89 e5 mov %rsp,%rbp 1fc24: 48 83 ec 20 sub $0x20,%rsp 1fc28: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 1fc2c: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fc30: 48 8d 50 08 lea 0x8(%rax),%rdx 1fc34: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fc38: 48 89 d6 mov %rdx,%rsi 1fc3b: 48 89 c7 mov %rax,%rdi 1fc3e: e8 6d 28 ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 1fc43: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fc47: c9 leaveq 1fc48: c3 retq 000000000001fc49 <_ZSt11__addressofIKSt4pairIKSsP4XLogEEPT_RS6_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 1fc49: 55 push %rbp 1fc4a: 48 89 e5 mov %rsp,%rbp 1fc4d: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 1fc51: 48 8b 45 f8 mov -0x8(%rbp),%rax } 1fc55: 5d pop %rbp 1fc56: c3 retq 1fc57: 90 nop 000000000001fc58 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_>: template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1fc58: 55 push %rbp 1fc59: 48 89 e5 mov %rsp,%rbp 1fc5c: 53 push %rbx 1fc5d: 48 83 ec 38 sub $0x38,%rsp 1fc61: 48 89 7d c8 mov %rdi,-0x38(%rbp) 1fc65: 48 89 75 c0 mov %rsi,-0x40(%rbp) find(const _Key& __k) { iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 1fc69: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fc6d: 48 89 c7 mov %rax,%rdi 1fc70: e8 1b 27 ff ff callq 12390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 1fc75: 48 89 c3 mov %rax,%rbx 1fc78: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fc7c: 48 89 c7 mov %rax,%rdi 1fc7f: e8 8c 29 ff ff callq 12610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 1fc84: 48 89 c6 mov %rax,%rsi 1fc87: 48 8b 55 c0 mov -0x40(%rbp),%rdx 1fc8b: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fc8f: 48 89 d1 mov %rdx,%rcx 1fc92: 48 89 da mov %rbx,%rdx 1fc95: 48 89 c7 mov %rax,%rdi 1fc98: e8 13 39 ff ff callq 135b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt> 1fc9d: 48 89 45 d0 mov %rax,-0x30(%rbp) return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 1fca1: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fca5: 48 89 c7 mov %rax,%rdi 1fca8: e8 b3 3a ff ff callq 13760 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 1fcad: 48 89 45 e0 mov %rax,-0x20(%rbp) 1fcb1: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1fcb5: 48 8d 45 d0 lea -0x30(%rbp),%rax 1fcb9: 48 89 d6 mov %rdx,%rsi 1fcbc: 48 89 c7 mov %rax,%rdi 1fcbf: e8 ec 26 ff ff callq 123b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 1fcc4: 84 c0 test %al,%al 1fcc6: 75 26 jne 1fcee <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0x96> 1fcc8: 48 8b 45 d0 mov -0x30(%rbp),%rax 1fccc: 48 89 c7 mov %rax,%rdi 1fccf: e8 4c 33 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 1fcd4: 48 89 c2 mov %rax,%rdx 1fcd7: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fcdb: 48 8b 4d c0 mov -0x40(%rbp),%rcx 1fcdf: 48 89 ce mov %rcx,%rsi 1fce2: 48 89 c7 mov %rax,%rdi 1fce5: e8 96 27 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 1fcea: 84 c0 test %al,%al 1fcec: 74 0e je 1fcfc <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0xa4> 1fcee: 48 8b 45 c8 mov -0x38(%rbp),%rax 1fcf2: 48 89 c7 mov %rax,%rdi 1fcf5: e8 66 3a ff ff callq 13760 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE3endEv@plt> 1fcfa: eb 04 jmp 1fd00 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4findERS1_+0xa8> 1fcfc: 48 8b 45 d0 mov -0x30(%rbp),%rax } 1fd00: 48 83 c4 38 add $0x38,%rsp 1fd04: 5b pop %rbx 1fd05: 5d pop %rbp 1fd06: c3 retq 1fd07: 90 nop 000000000001fd08 <_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) 1fd08: 55 push %rbp 1fd09: 48 89 e5 mov %rsp,%rbp 1fd0c: 48 83 ec 10 sub $0x10,%rsp 1fd10: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fd14: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_t.lower_bound(__x); } 1fd18: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fd1c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fd20: 48 89 d6 mov %rdx,%rsi 1fd23: 48 89 c7 mov %rax,%rdi 1fd26: e8 85 41 ff ff callq 13eb0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_@plt> 1fd2b: c9 leaveq 1fd2c: c3 retq 1fd2d: 90 nop 000000000001fd2e <_ZNKSt3mapISsP4XLogSt4lessISsESaISt4pairIKSsS1_EEE8key_compEv>: /** * Returns the key comparison object out of which the %map was * constructed. */ key_compare key_comp() const 1fd2e: 55 push %rbp 1fd2f: 48 89 e5 mov %rsp,%rbp 1fd32: 53 push %rbx 1fd33: 48 83 ec 18 sub $0x18,%rsp 1fd37: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _M_t.key_comp(); } 1fd3b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fd3f: 48 89 c7 mov %rax,%rdi 1fd42: e8 d9 2f ff ff callq 12d20 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv@plt> 1fd47: 89 d8 mov %ebx,%eax 1fd49: 48 83 c4 18 add $0x18,%rsp 1fd4d: 5b pop %rbx 1fd4e: 5d pop %rbp 1fd4f: c3 retq 000000000001fd50 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEdeEv>: explicit _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } reference operator*() const 1fd50: 55 push %rbp 1fd51: 48 89 e5 mov %rsp,%rbp 1fd54: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(_M_node)->_M_value_field; } 1fd58: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fd5c: 48 8b 00 mov (%rax),%rax 1fd5f: 48 83 c0 20 add $0x20,%rax 1fd63: 5d pop %rbp 1fd64: c3 retq 1fd65: 90 nop 000000000001fd66 <_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 1fd66: 55 push %rbp 1fd67: 48 89 e5 mov %rsp,%rbp 1fd6a: 48 83 ec 20 sub $0x20,%rsp 1fd6e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fd72: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1fd76: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 1fd7a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 1fd7e: 48 8b 45 f0 mov -0x10(%rbp),%rax 1fd82: 48 89 d6 mov %rdx,%rsi 1fd85: 48 89 c7 mov %rax,%rdi 1fd88: e8 a3 38 ff ff callq 13630 <_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_@plt> 1fd8d: c9 leaveq 1fd8e: c3 retq 1fd8f: 90 nop 000000000001fd90 <_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) 1fd90: 55 push %rbp 1fd91: 48 89 e5 mov %rsp,%rbp 1fd94: 48 83 ec 20 sub $0x20,%rsp 1fd98: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fd9c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1fda0: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 1fda4: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fda8: 48 8b 55 f0 mov -0x10(%rbp),%rdx 1fdac: 48 89 d6 mov %rdx,%rsi 1fdaf: 48 89 c7 mov %rax,%rdi 1fdb2: e8 59 2d ff ff callq 12b10 <_ZNSsC1ERKSs@plt> 1fdb7: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fdbb: 48 8b 10 mov (%rax),%rdx 1fdbe: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fdc2: 48 89 50 08 mov %rdx,0x8(%rax) 1fdc6: c9 leaveq 1fdc7: c3 retq 000000000001fdc8 <_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) 1fdc8: 55 push %rbp 1fdc9: 48 89 e5 mov %rsp,%rbp 1fdcc: 48 83 ec 30 sub $0x30,%rsp 1fdd0: 48 89 7d e8 mov %rdi,-0x18(%rbp) 1fdd4: 48 89 75 e0 mov %rsi,-0x20(%rbp) 1fdd8: 48 89 55 d8 mov %rdx,-0x28(%rbp) #endif { return _M_t._M_insert_unique_(__position, __x); } 1fddc: 48 8d 55 e0 lea -0x20(%rbp),%rdx 1fde0: 48 8d 45 f0 lea -0x10(%rbp),%rax 1fde4: 48 89 d6 mov %rdx,%rsi 1fde7: 48 89 c7 mov %rax,%rdi 1fdea: e8 f1 2b ff ff callq 129e0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEC1ERKSt17_Rb_tree_iteratorIS4_E@plt> 1fdef: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fdf3: 48 8b 55 d8 mov -0x28(%rbp),%rdx 1fdf7: 48 8b 4d f0 mov -0x10(%rbp),%rcx 1fdfb: 48 89 ce mov %rcx,%rsi 1fdfe: 48 89 c7 mov %rax,%rdi 1fe01: e8 1a 30 ff ff callq 12e20 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_@plt> 1fe06: c9 leaveq 1fe07: c3 retq 000000000001fe08 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev>: template struct _Vector_base { typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; struct _Vector_impl 1fe08: 55 push %rbp 1fe09: 48 89 e5 mov %rsp,%rbp 1fe0c: 48 83 ec 10 sub $0x10,%rsp 1fe10: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1fe14: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fe18: 48 89 c7 mov %rax,%rdi 1fe1b: e8 70 34 ff ff callq 13290 <_ZNSaISsED2Ev@plt> 1fe20: c9 leaveq 1fe21: c3 retq 000000000001fe22 <_ZNSt12_Vector_baseISsSaISsEEC1Ev>: allocator_type get_allocator() const { return allocator_type(_M_get_Tp_allocator()); } _Vector_base() 1fe22: 55 push %rbp 1fe23: 48 89 e5 mov %rsp,%rbp 1fe26: 48 83 ec 10 sub $0x10,%rsp 1fe2a: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _M_impl() { } 1fe2e: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fe32: 48 89 c7 mov %rax,%rdi 1fe35: e8 36 30 ff ff callq 12e70 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1Ev@plt> 1fe3a: c9 leaveq 1fe3b: c3 retq 000000000001fe3c <_ZNSt12_Vector_baseISsSaISsEED1Ev>: __x._M_impl._M_finish = 0; __x._M_impl._M_end_of_storage = 0; } #endif ~_Vector_base() 1fe3c: 55 push %rbp 1fe3d: 48 89 e5 mov %rsp,%rbp 1fe40: 53 push %rbx 1fe41: 48 83 ec 18 sub $0x18,%rsp 1fe45: 48 89 7d e8 mov %rdi,-0x18(%rbp) { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 1fe49: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe4d: 48 8b 40 10 mov 0x10(%rax),%rax 1fe51: 48 89 c2 mov %rax,%rdx 1fe54: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe58: 48 8b 00 mov (%rax),%rax 1fe5b: 48 89 d1 mov %rdx,%rcx 1fe5e: 48 29 c1 sub %rax,%rcx 1fe61: 48 89 c8 mov %rcx,%rax 1fe64: 48 c1 f8 03 sar $0x3,%rax 1fe68: 48 89 c2 mov %rax,%rdx 1fe6b: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe6f: 48 8b 08 mov (%rax),%rcx 1fe72: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe76: 48 89 ce mov %rcx,%rsi 1fe79: 48 89 c7 mov %rax,%rdi 1fe7c: e8 1f 2d ff ff callq 12ba0 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt> - this->_M_impl._M_start); } 1fe81: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe85: 48 89 c7 mov %rax,%rdi 1fe88: e8 93 24 ff ff callq 12320 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt> 1fe8d: 48 83 c4 18 add $0x18,%rsp 1fe91: 5b pop %rbx 1fe92: 5d pop %rbp 1fe93: c3 retq 1fe94: 48 89 c3 mov %rax,%rbx 1fe97: 48 8b 45 e8 mov -0x18(%rbp),%rax 1fe9b: 48 89 c7 mov %rax,%rdi 1fe9e: e8 7d 24 ff ff callq 12320 <_ZNSt12_Vector_baseISsSaISsEE12_Vector_implD1Ev@plt> 1fea3: 48 89 d8 mov %rbx,%rax 1fea6: 48 89 c7 mov %rax,%rdi 1fea9: e8 72 40 ff ff callq 13f20 <_Unwind_Resume@plt> 000000000001feae <_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) { } 1feae: 55 push %rbp 1feaf: 48 89 e5 mov %rsp,%rbp 1feb2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 1feb6: 48 89 75 f0 mov %rsi,-0x10(%rbp) 1feba: 48 8b 45 f0 mov -0x10(%rbp),%rax 1febe: 48 8b 10 mov (%rax),%rdx 1fec1: 48 8b 45 f8 mov -0x8(%rbp),%rax 1fec5: 48 89 10 mov %rdx,(%rax) 1fec8: 5d pop %rbp 1fec9: c3 retq 000000000001feca <_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&) 1feca: 55 push %rbp 1fecb: 48 89 e5 mov %rsp,%rbp 1fece: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return typename iterator_traits<_Iter>::iterator_category(); } 1fed2: 5d pop %rbp 1fed3: c3 retq 000000000001fed4 <_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, 1fed4: 55 push %rbp 1fed5: 48 89 e5 mov %rsp,%rbp 1fed8: 53 push %rbx 1fed9: 48 83 ec 38 sub $0x38,%rsp 1fedd: 48 89 7d d0 mov %rdi,-0x30(%rbp) 1fee1: 48 89 75 c0 mov %rsi,-0x40(%rbp) 1fee5: 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; 1fee9: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1feed: 48 8d 45 c0 lea -0x40(%rbp),%rax 1fef1: 48 89 d6 mov %rdx,%rsi 1fef4: 48 89 c7 mov %rax,%rdi 1fef7: e8 04 2d ff ff callq 12c00 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 1fefc: 48 c1 f8 02 sar $0x2,%rax 1ff00: 48 89 45 e8 mov %rax,-0x18(%rbp) for (; __trip_count > 0; --__trip_count) 1ff04: e9 e1 00 00 00 jmpq 1ffea <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x116> { if (*__first == __val) 1ff09: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ff0d: 48 8b 18 mov (%rax),%rbx 1ff10: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ff14: 48 89 c7 mov %rax,%rdi 1ff17: e8 44 37 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 1ff1c: 48 89 de mov %rbx,%rsi 1ff1f: 48 89 c7 mov %rax,%rdi 1ff22: e8 69 2a ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 1ff27: 84 c0 test %al,%al 1ff29: 74 09 je 1ff34 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x60> return __first; 1ff2b: 48 8b 45 d0 mov -0x30(%rbp),%rax 1ff2f: e9 90 01 00 00 jmpq 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 1ff34: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ff38: 48 89 c7 mov %rax,%rdi 1ff3b: e8 d0 37 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 1ff40: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ff44: 48 8b 18 mov (%rax),%rbx 1ff47: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ff4b: 48 89 c7 mov %rax,%rdi 1ff4e: e8 0d 37 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 1ff53: 48 89 de mov %rbx,%rsi 1ff56: 48 89 c7 mov %rax,%rdi 1ff59: e8 32 2a ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 1ff5e: 84 c0 test %al,%al 1ff60: 74 09 je 1ff6b <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x97> return __first; 1ff62: 48 8b 45 d0 mov -0x30(%rbp),%rax 1ff66: e9 59 01 00 00 jmpq 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 1ff6b: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ff6f: 48 89 c7 mov %rax,%rdi 1ff72: e8 99 37 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 1ff77: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ff7b: 48 8b 18 mov (%rax),%rbx 1ff7e: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ff82: 48 89 c7 mov %rax,%rdi 1ff85: e8 d6 36 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 1ff8a: 48 89 de mov %rbx,%rsi 1ff8d: 48 89 c7 mov %rax,%rdi 1ff90: e8 fb 29 ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 1ff95: 84 c0 test %al,%al 1ff97: 74 09 je 1ffa2 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0xce> return __first; 1ff99: 48 8b 45 d0 mov -0x30(%rbp),%rax 1ff9d: e9 22 01 00 00 jmpq 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 1ffa2: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ffa6: 48 89 c7 mov %rax,%rdi 1ffa9: e8 62 37 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> if (*__first == __val) 1ffae: 48 8b 45 c8 mov -0x38(%rbp),%rax 1ffb2: 48 8b 18 mov (%rax),%rbx 1ffb5: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ffb9: 48 89 c7 mov %rax,%rdi 1ffbc: e8 9f 36 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 1ffc1: 48 89 de mov %rbx,%rsi 1ffc4: 48 89 c7 mov %rax,%rdi 1ffc7: e8 c4 29 ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 1ffcc: 84 c0 test %al,%al 1ffce: 74 09 je 1ffd9 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x105> return __first; 1ffd0: 48 8b 45 d0 mov -0x30(%rbp),%rax 1ffd4: e9 eb 00 00 00 jmpq 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 1ffd9: 48 8d 45 d0 lea -0x30(%rbp),%rax 1ffdd: 48 89 c7 mov %rax,%rdi 1ffe0: e8 2b 37 ff ff callq 13710 <_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) 1ffe5: 48 83 6d e8 01 subq $0x1,-0x18(%rbp) 1ffea: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) 1ffef: 0f 9f c0 setg %al 1fff2: 84 c0 test %al,%al 1fff4: 0f 85 0f ff ff ff jne 1ff09 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x35> if (*__first == __val) return __first; ++__first; } switch (__last - __first) 1fffa: 48 8d 55 d0 lea -0x30(%rbp),%rdx 1fffe: 48 8d 45 c0 lea -0x40(%rbp),%rax 20002: 48 89 d6 mov %rdx,%rsi 20005: 48 89 c7 mov %rax,%rdi 20008: e8 f3 2b ff ff callq 12c00 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 2000d: 48 83 f8 02 cmp $0x2,%rax 20011: 74 45 je 20058 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x184> 20013: 48 83 f8 03 cmp $0x3,%rax 20017: 74 0b je 20024 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x150> 20019: 48 83 f8 01 cmp $0x1,%rax 2001d: 74 6d je 2008c <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1b8> 2001f: e9 9c 00 00 00 jmpq 200c0 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1ec> { case 3: if (*__first == __val) 20024: 48 8b 45 c8 mov -0x38(%rbp),%rax 20028: 48 8b 18 mov (%rax),%rbx 2002b: 48 8d 45 d0 lea -0x30(%rbp),%rax 2002f: 48 89 c7 mov %rax,%rdi 20032: e8 29 36 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 20037: 48 89 de mov %rbx,%rsi 2003a: 48 89 c7 mov %rax,%rdi 2003d: e8 4e 29 ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 20042: 84 c0 test %al,%al 20044: 74 06 je 2004c <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x178> return __first; 20046: 48 8b 45 d0 mov -0x30(%rbp),%rax 2004a: eb 78 jmp 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 2004c: 48 8d 45 d0 lea -0x30(%rbp),%rax 20050: 48 89 c7 mov %rax,%rdi 20053: e8 b8 36 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 2: if (*__first == __val) 20058: 48 8b 45 c8 mov -0x38(%rbp),%rax 2005c: 48 8b 18 mov (%rax),%rbx 2005f: 48 8d 45 d0 lea -0x30(%rbp),%rax 20063: 48 89 c7 mov %rax,%rdi 20066: e8 f5 35 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 2006b: 48 89 de mov %rbx,%rsi 2006e: 48 89 c7 mov %rax,%rdi 20071: e8 1a 29 ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 20076: 84 c0 test %al,%al 20078: 74 06 je 20080 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1ac> return __first; 2007a: 48 8b 45 d0 mov -0x30(%rbp),%rax 2007e: eb 44 jmp 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 20080: 48 8d 45 d0 lea -0x30(%rbp),%rax 20084: 48 89 c7 mov %rax,%rdi 20087: e8 84 36 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 1: if (*__first == __val) 2008c: 48 8b 45 c8 mov -0x38(%rbp),%rax 20090: 48 8b 18 mov (%rax),%rbx 20093: 48 8d 45 d0 lea -0x30(%rbp),%rax 20097: 48 89 c7 mov %rax,%rdi 2009a: e8 c1 35 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 2009f: 48 89 de mov %rbx,%rsi 200a2: 48 89 c7 mov %rax,%rdi 200a5: e8 e6 28 ff ff callq 12990 <_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_EPKS3_@plt> 200aa: 84 c0 test %al,%al 200ac: 74 06 je 200b4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1e0> return __first; 200ae: 48 8b 45 d0 mov -0x30(%rbp),%rax 200b2: eb 10 jmp 200c4 <_ZSt6__findIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEPKcET_S9_S9_RKT0_St26random_access_iterator_tag+0x1f0> ++__first; 200b4: 48 8d 45 d0 lea -0x30(%rbp),%rax 200b8: 48 89 c7 mov %rax,%rdi 200bb: e8 50 36 ff ff callq 13710 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv@plt> case 0: default: return __last; 200c0: 48 8b 45 c0 mov -0x40(%rbp),%rax } } 200c4: 48 83 c4 38 add $0x38,%rsp 200c8: 5b pop %rbx 200c9: 5d pop %rbp 200ca: c3 retq 200cb: 90 nop 00000000000200cc <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv>: __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } const _Iterator& base() const 200cc: 55 push %rbp 200cd: 48 89 e5 mov %rsp,%rbp 200d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_current; } 200d4: 48 8b 45 f8 mov -0x8(%rbp),%rax 200d8: 5d pop %rbp 200d9: c3 retq 00000000000200da <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs>: // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) 200da: 55 push %rbp 200db: 48 89 e5 mov %rsp,%rbp 200de: 41 55 push %r13 200e0: 41 54 push %r12 200e2: 53 push %rbx 200e3: 48 83 ec 28 sub $0x28,%rsp 200e7: 48 89 7d d8 mov %rdi,-0x28(%rbp) 200eb: 48 89 75 d0 mov %rsi,-0x30(%rbp) 200ef: 48 89 55 c8 mov %rdx,-0x38(%rbp) { ::new((void *)__p) _Tp(__val); } 200f3: 4c 8b 65 d0 mov -0x30(%rbp),%r12 200f7: 4c 89 e6 mov %r12,%rsi 200fa: bf 08 00 00 00 mov $0x8,%edi 200ff: e8 7c 2a ff ff callq 12b80 <_ZnwmPv@plt> 20104: 48 89 c3 mov %rax,%rbx 20107: 48 85 db test %rbx,%rbx 2010a: 74 2a je 20136 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs+0x5c> 2010c: 48 8b 45 c8 mov -0x38(%rbp),%rax 20110: 48 89 c6 mov %rax,%rsi 20113: 48 89 df mov %rbx,%rdi 20116: e8 f5 29 ff ff callq 12b10 <_ZNSsC1ERKSs@plt> 2011b: eb 19 jmp 20136 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs+0x5c> 2011d: 49 89 c5 mov %rax,%r13 20120: 4c 89 e6 mov %r12,%rsi 20123: 48 89 df mov %rbx,%rdi 20126: e8 c5 3c ff ff callq 13df0 <_ZdlPvS_@plt> 2012b: 4c 89 e8 mov %r13,%rax 2012e: 48 89 c7 mov %rax,%rdi 20131: e8 ea 3d ff ff callq 13f20 <_Unwind_Resume@plt> 20136: 48 83 c4 28 add $0x28,%rsp 2013a: 5b pop %rbx 2013b: 41 5c pop %r12 2013d: 41 5d pop %r13 2013f: 5d pop %rbp 20140: c3 retq 20141: 90 nop 0000000000020142 <_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>:: 20142: 55 push %rbp 20143: 48 89 e5 mov %rsp,%rbp 20146: 41 54 push %r12 20148: 53 push %rbx 20149: 48 83 ec 60 sub $0x60,%rsp 2014d: 48 89 7d a8 mov %rdi,-0x58(%rbp) 20151: 48 89 75 a0 mov %rsi,-0x60(%rbp) 20155: 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) 20159: 48 8b 45 a8 mov -0x58(%rbp),%rax 2015d: 48 8b 50 08 mov 0x8(%rax),%rdx 20161: 48 8b 45 a8 mov -0x58(%rbp),%rax 20165: 48 8b 40 10 mov 0x10(%rax),%rax 20169: 48 39 c2 cmp %rax,%rdx 2016c: 0f 84 ab 00 00 00 je 2021d <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0xdb> { this->_M_impl.construct(this->_M_impl._M_finish, 20172: 48 8b 45 a8 mov -0x58(%rbp),%rax 20176: 48 8b 40 08 mov 0x8(%rax),%rax 2017a: 48 8d 50 f8 lea -0x8(%rax),%rdx 2017e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20182: 48 8b 48 08 mov 0x8(%rax),%rcx 20186: 48 8b 45 a8 mov -0x58(%rbp),%rax 2018a: 48 89 ce mov %rcx,%rsi 2018d: 48 89 c7 mov %rax,%rdi 20190: e8 eb 2c ff ff callq 12e80 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> _GLIBCXX_MOVE(*(this->_M_impl._M_finish - 1))); ++this->_M_impl._M_finish; 20195: 48 8b 45 a8 mov -0x58(%rbp),%rax 20199: 48 8b 40 08 mov 0x8(%rax),%rax 2019d: 48 8d 50 08 lea 0x8(%rax),%rdx 201a1: 48 8b 45 a8 mov -0x58(%rbp),%rax 201a5: 48 89 50 08 mov %rdx,0x8(%rax) #ifndef __GXX_EXPERIMENTAL_CXX0X__ _Tp __x_copy = __x; 201a9: 48 8b 55 98 mov -0x68(%rbp),%rdx 201ad: 48 8d 45 b0 lea -0x50(%rbp),%rax 201b1: 48 89 d6 mov %rdx,%rsi 201b4: 48 89 c7 mov %rax,%rdi 201b7: e8 54 29 ff ff callq 12b10 <_ZNSsC1ERKSs@plt> #endif _GLIBCXX_MOVE_BACKWARD3(__position.base(), 201bc: 48 8b 45 a8 mov -0x58(%rbp),%rax 201c0: 48 8b 40 08 mov 0x8(%rax),%rax 201c4: 4c 8d 60 f8 lea -0x8(%rax),%r12 201c8: 48 8b 45 a8 mov -0x58(%rbp),%rax 201cc: 48 8b 40 08 mov 0x8(%rax),%rax 201d0: 48 8d 58 f0 lea -0x10(%rax),%rbx 201d4: 48 8d 45 a0 lea -0x60(%rbp),%rax 201d8: 48 89 c7 mov %rax,%rdi 201db: e8 10 29 ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 201e0: 48 8b 00 mov (%rax),%rax 201e3: 4c 89 e2 mov %r12,%rdx 201e6: 48 89 de mov %rbx,%rsi 201e9: 48 89 c7 mov %rax,%rdi 201ec: e8 df 2f ff ff callq 131d0 <_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; 201f1: 48 8d 45 a0 lea -0x60(%rbp),%rax 201f5: 48 89 c7 mov %rax,%rdi 201f8: e8 63 34 ff ff callq 13660 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv@plt> 201fd: 48 8d 55 b0 lea -0x50(%rbp),%rdx 20201: 48 89 d6 mov %rdx,%rsi 20204: 48 89 c7 mov %rax,%rdi 20207: e8 24 3e ff ff callq 14030 <_ZNSsaSERKSs@plt> 2020c: 48 8d 45 b0 lea -0x50(%rbp),%rax 20210: 48 89 c7 mov %rax,%rdi 20213: e8 28 2c ff ff callq 12e40 <_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; } } 20218: e9 33 02 00 00 jmpq 20450 <_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"); 2021d: 48 8b 45 a8 mov -0x58(%rbp),%rax 20221: 48 8d 15 ae 27 00 00 lea 0x27ae(%rip),%rdx # 229d6 <_fini+0xb1e> 20228: be 01 00 00 00 mov $0x1,%esi 2022d: 48 89 c7 mov %rax,%rdi 20230: e8 ab 20 ff ff callq 122e0 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc@plt> 20235: 48 89 45 d8 mov %rax,-0x28(%rbp) const size_type __elems_before = __position - begin(); 20239: 48 8b 45 a8 mov -0x58(%rbp),%rax 2023d: 48 89 c7 mov %rax,%rdi 20240: e8 1b 24 ff ff callq 12660 <_ZNSt6vectorISsSaISsEE5beginEv@plt> 20245: 48 89 45 c0 mov %rax,-0x40(%rbp) 20249: 48 8d 55 c0 lea -0x40(%rbp),%rdx 2024d: 48 8d 45 a0 lea -0x60(%rbp),%rax 20251: 48 89 d6 mov %rdx,%rsi 20254: 48 89 c7 mov %rax,%rdi 20257: e8 a4 29 ff ff callq 12c00 <_ZN9__gnu_cxxmiIPSsSt6vectorISsSaISsEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_@plt> 2025c: 48 89 45 e0 mov %rax,-0x20(%rbp) pointer __new_start(this->_M_allocate(__len)); 20260: 48 8b 45 a8 mov -0x58(%rbp),%rax 20264: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20268: 48 89 d6 mov %rdx,%rsi 2026b: 48 89 c7 mov %rax,%rdi 2026e: e8 0d 2b ff ff callq 12d80 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm@plt> 20273: 48 89 45 e8 mov %rax,-0x18(%rbp) pointer __new_finish(__new_start); 20277: 48 8b 45 e8 mov -0x18(%rbp),%rax 2027b: 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, 2027f: 48 8b 45 e0 mov -0x20(%rbp),%rax 20283: 48 c1 e0 03 shl $0x3,%rax 20287: 48 89 c1 mov %rax,%rcx 2028a: 48 03 4d e8 add -0x18(%rbp),%rcx 2028e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20292: 48 8b 55 98 mov -0x68(%rbp),%rdx 20296: 48 89 ce mov %rcx,%rsi 20299: 48 89 c7 mov %rax,%rdi 2029c: e8 df 2b ff ff callq 12e80 <_ZN9__gnu_cxx13new_allocatorISsE9constructEPSsRKSs@plt> #ifdef __GXX_EXPERIMENTAL_CXX0X__ std::forward<_Args>(__args)...); #else __x); #endif __new_finish = 0; 202a1: 48 c7 45 d0 00 00 00 movq $0x0,-0x30(%rbp) 202a8: 00 __new_finish = 202a9: 48 8b 45 a8 mov -0x58(%rbp),%rax 202ad: 48 89 c7 mov %rax,%rdi 202b0: e8 1b 26 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 202b5: 48 89 c3 mov %rax,%rbx 202b8: 48 8d 45 a0 lea -0x60(%rbp),%rax 202bc: 48 89 c7 mov %rax,%rdi 202bf: e8 2c 28 ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 202c4: 48 8b 30 mov (%rax),%rsi 202c7: 48 8b 45 a8 mov -0x58(%rbp),%rax 202cb: 48 8b 00 mov (%rax),%rax 202ce: 48 8b 55 e8 mov -0x18(%rbp),%rdx 202d2: 48 89 d9 mov %rbx,%rcx 202d5: 48 89 c7 mov %rax,%rdi 202d8: e8 83 26 ff ff callq 12960 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt> 202dd: 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; 202e1: 48 83 45 d0 08 addq $0x8,-0x30(%rbp) __new_finish = 202e6: 48 8b 45 a8 mov -0x58(%rbp),%rax 202ea: 48 89 c7 mov %rax,%rdi 202ed: e8 de 25 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 202f2: 49 89 c4 mov %rax,%r12 202f5: 48 8b 45 a8 mov -0x58(%rbp),%rax 202f9: 48 8b 58 08 mov 0x8(%rax),%rbx 202fd: 48 8d 45 a0 lea -0x60(%rbp),%rax 20301: 48 89 c7 mov %rax,%rdi 20304: e8 e7 27 ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20309: 48 8b 00 mov (%rax),%rax 2030c: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20310: 4c 89 e1 mov %r12,%rcx 20313: 48 89 de mov %rbx,%rsi 20316: 48 89 c7 mov %rax,%rdi 20319: e8 42 26 ff ff callq 12960 <_ZSt22__uninitialized_move_aIPSsS0_SaISsEET0_T_S3_S2_RT1_@plt> 2031e: 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, 20322: 48 8b 45 a8 mov -0x58(%rbp),%rax 20326: 48 89 c7 mov %rax,%rdi 20329: e8 a2 25 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 2032e: 48 89 c2 mov %rax,%rdx 20331: 48 8b 45 a8 mov -0x58(%rbp),%rax 20335: 48 8b 48 08 mov 0x8(%rax),%rcx 20339: 48 8b 45 a8 mov -0x58(%rbp),%rax 2033d: 48 8b 00 mov (%rax),%rax 20340: 48 89 ce mov %rcx,%rsi 20343: 48 89 c7 mov %rax,%rdi 20346: e8 85 24 ff ff callq 127d0 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, 2034b: 48 8b 45 a8 mov -0x58(%rbp),%rax 2034f: 48 8b 40 10 mov 0x10(%rax),%rax 20353: 48 89 c2 mov %rax,%rdx 20356: 48 8b 45 a8 mov -0x58(%rbp),%rax 2035a: 48 8b 00 mov (%rax),%rax 2035d: 48 89 d1 mov %rdx,%rcx 20360: 48 29 c1 sub %rax,%rcx 20363: 48 89 c8 mov %rcx,%rax 20366: 48 c1 f8 03 sar $0x3,%rax 2036a: 48 89 c2 mov %rax,%rdx 2036d: 48 8b 45 a8 mov -0x58(%rbp),%rax 20371: 48 8b 08 mov (%rax),%rcx 20374: 48 8b 45 a8 mov -0x58(%rbp),%rax 20378: 48 89 ce mov %rcx,%rsi 2037b: 48 89 c7 mov %rax,%rdi 2037e: e8 1d 28 ff ff callq 12ba0 <_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; 20383: 48 8b 45 a8 mov -0x58(%rbp),%rax 20387: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2038b: 48 89 10 mov %rdx,(%rax) this->_M_impl._M_finish = __new_finish; 2038e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20392: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20396: 48 89 50 08 mov %rdx,0x8(%rax) this->_M_impl._M_end_of_storage = __new_start + __len; 2039a: 48 8b 45 d8 mov -0x28(%rbp),%rax 2039e: 48 c1 e0 03 shl $0x3,%rax 203a2: 48 89 c2 mov %rax,%rdx 203a5: 48 03 55 e8 add -0x18(%rbp),%rdx 203a9: 48 8b 45 a8 mov -0x58(%rbp),%rax 203ad: 48 89 50 10 mov %rdx,0x10(%rax) 203b1: e9 9a 00 00 00 jmpq 20450 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x30e> 203b6: 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; 203b9: 48 8d 45 b0 lea -0x50(%rbp),%rax 203bd: 48 89 c7 mov %rax,%rdi 203c0: e8 7b 2a ff ff callq 12e40 <_ZNSsD1Ev@plt> 203c5: 48 89 d8 mov %rbx,%rax 203c8: 48 89 c7 mov %rax,%rdi 203cb: e8 50 3b ff ff callq 13f20 <_Unwind_Resume@plt> 203d0: 48 89 c3 mov %rax,%rbx std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } __catch(...) 203d3: e8 68 38 ff ff callq 13c40 <__cxa_end_catch@plt> 203d8: 48 89 d8 mov %rbx,%rax 203db: 48 89 c7 mov %rax,%rdi 203de: e8 3d 3b ff ff callq 13f20 <_Unwind_Resume@plt> 203e3: 48 89 c7 mov %rax,%rdi 203e6: e8 85 39 ff ff callq 13d70 <__cxa_begin_catch@plt> { if (!__new_finish) 203eb: 48 83 7d d0 00 cmpq $0x0,-0x30(%rbp) 203f0: 75 20 jne 20412 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x2d0> this->_M_impl.destroy(__new_start + __elems_before); 203f2: 48 8b 45 e0 mov -0x20(%rbp),%rax 203f6: 48 c1 e0 03 shl $0x3,%rax 203fa: 48 89 c2 mov %rax,%rdx 203fd: 48 03 55 e8 add -0x18(%rbp),%rdx 20401: 48 8b 45 a8 mov -0x58(%rbp),%rax 20405: 48 89 d6 mov %rdx,%rsi 20408: 48 89 c7 mov %rax,%rdi 2040b: e8 e0 22 ff ff callq 126f0 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs@plt> 20410: eb 22 jmp 20434 <_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs+0x2f2> else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 20412: 48 8b 45 a8 mov -0x58(%rbp),%rax 20416: 48 89 c7 mov %rax,%rdi 20419: e8 b2 24 ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 2041e: 48 89 c2 mov %rax,%rdx 20421: 48 8b 4d d0 mov -0x30(%rbp),%rcx 20425: 48 8b 45 e8 mov -0x18(%rbp),%rax 20429: 48 89 ce mov %rcx,%rsi 2042c: 48 89 c7 mov %rax,%rdi 2042f: e8 9c 23 ff ff callq 127d0 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_deallocate(__new_start, __len); 20434: 48 8b 45 a8 mov -0x58(%rbp),%rax 20438: 48 8b 55 d8 mov -0x28(%rbp),%rdx 2043c: 48 8b 4d e8 mov -0x18(%rbp),%rcx 20440: 48 89 ce mov %rcx,%rsi 20443: 48 89 c7 mov %rax,%rdi 20446: e8 55 27 ff ff callq 12ba0 <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm@plt> __throw_exception_again; 2044b: e8 00 24 ff ff callq 12850 <__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; } } 20450: 48 83 c4 60 add $0x60,%rsp 20454: 5b pop %rbx 20455: 41 5c pop %r12 20457: 5d pop %rbp 20458: c3 retq 20459: 90 nop 000000000002045a <_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() 2045a: 55 push %rbp 2045b: 48 89 e5 mov %rsp,%rbp 2045e: 53 push %rbx 2045f: 48 83 ec 18 sub $0x18,%rsp 20463: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 20467: 48 8b 45 e8 mov -0x18(%rbp),%rax 2046b: 48 89 c7 mov %rax,%rdi 2046e: e8 5d 29 ff ff callq 12dd0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt> 20473: 48 8b 45 e8 mov -0x18(%rbp),%rax 20477: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 2047e: 48 8b 45 e8 mov -0x18(%rbp),%rax 20482: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 20489: 00 2048a: 48 8b 45 e8 mov -0x18(%rbp),%rax 2048e: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 20495: 00 20496: 48 8b 45 e8 mov -0x18(%rbp),%rax 2049a: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 204a1: 00 204a2: 48 8b 45 e8 mov -0x18(%rbp),%rax 204a6: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 204ad: 00 { _M_initialize(); } 204ae: 48 8b 45 e8 mov -0x18(%rbp),%rax 204b2: 48 89 c7 mov %rax,%rdi 204b5: e8 d6 23 ff ff callq 12890 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EE13_M_initializeEv@plt> 204ba: eb 1a jmp 204d6 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb0EEC1Ev+0x7c> 204bc: 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) 204bf: 48 8b 45 e8 mov -0x18(%rbp),%rax 204c3: 48 89 c7 mov %rax,%rdi 204c6: e8 75 2b ff ff callq 13040 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEED2Ev@plt> 204cb: 48 89 d8 mov %rbx,%rax 204ce: 48 89 c7 mov %rax,%rdi 204d1: e8 4a 3a ff ff callq 13f20 <_Unwind_Resume@plt> { _M_initialize(); } 204d6: 48 83 c4 18 add $0x18,%rsp 204da: 5b pop %rbx 204db: 5d pop %rbp 204dc: c3 retq 204dd: 90 nop 00000000000204de <_ZNSt23_Rb_tree_const_iteratorIP11XLogHandlerEC1EPKSt13_Rb_tree_nodeIS1_E>: _Rb_tree_const_iterator() : _M_node() { } explicit _Rb_tree_const_iterator(_Link_type __x) 204de: 55 push %rbp 204df: 48 89 e5 mov %rsp,%rbp 204e2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 204e6: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 204ea: 48 8b 45 f8 mov -0x8(%rbp),%rax 204ee: 48 8b 55 f0 mov -0x10(%rbp),%rdx 204f2: 48 89 10 mov %rdx,(%rax) 204f5: 5d pop %rbp 204f6: c3 retq 204f7: 90 nop 00000000000204f8 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_>: _Tp& operator()(_Tp& __x) const { return __x; } const _Tp& operator()(const _Tp& __x) const 204f8: 55 push %rbp 204f9: 48 89 e5 mov %rsp,%rbp 204fc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20500: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x; } 20504: 48 8b 45 f0 mov -0x10(%rbp),%rax 20508: 5d pop %rbp 20509: c3 retq 000000000002050a <_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) 2050a: 55 push %rbp 2050b: 48 89 e5 mov %rsp,%rbp 2050e: 48 83 ec 20 sub $0x20,%rsp 20512: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 20516: 48 8b 45 e8 mov -0x18(%rbp),%rax 2051a: 48 89 c7 mov %rax,%rdi 2051d: e8 fe 2d ff ff callq 13320 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt13_Rb_tree_nodeIS1_E@plt> 20522: 48 89 c2 mov %rax,%rdx 20525: 48 8d 45 ff lea -0x1(%rbp),%rax 20529: 48 89 d6 mov %rdx,%rsi 2052c: 48 89 c7 mov %rax,%rdi 2052f: e8 cc 21 ff ff callq 12700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20534: c9 leaveq 20535: c3 retq 0000000000020536 <_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 20536: 55 push %rbp 20537: 48 89 e5 mov %rsp,%rbp 2053a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2053e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 20542: 48 89 55 e8 mov %rdx,-0x18(%rbp) { return __x < __y; } 20546: 48 8b 45 f0 mov -0x10(%rbp),%rax 2054a: 48 8b 10 mov (%rax),%rdx 2054d: 48 8b 45 e8 mov -0x18(%rbp),%rax 20551: 48 8b 00 mov (%rax),%rax 20554: 48 39 c2 cmp %rax,%rdx 20557: 0f 92 c0 setb %al 2055a: 5d pop %rbp 2055b: c3 retq 000000000002055c <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 2055c: 55 push %rbp 2055d: 48 89 e5 mov %rsp,%rbp 20560: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20564: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 20568: 48 8b 45 f8 mov -0x8(%rbp),%rax 2056c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20570: 48 89 10 mov %rdx,(%rax) 20573: 5d pop %rbp 20574: c3 retq 20575: 90 nop 0000000000020576 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE5beginEv>: _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() 20576: 55 push %rbp 20577: 48 89 e5 mov %rsp,%rbp 2057a: 48 83 ec 20 sub $0x20,%rsp 2057e: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); 20582: 48 8b 45 e8 mov -0x18(%rbp),%rax 20586: 48 8b 50 18 mov 0x18(%rax),%rdx 2058a: 48 8d 45 f0 lea -0x10(%rbp),%rax 2058e: 48 89 d6 mov %rdx,%rsi 20591: 48 89 c7 mov %rax,%rdi 20594: e8 77 35 ff ff callq 13b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 20599: 48 8b 45 f0 mov -0x10(%rbp),%rax } 2059d: c9 leaveq 2059e: c3 retq 2059f: 90 nop 00000000000205a0 <_ZNKSt17_Rb_tree_iteratorIP11XLogHandlerEeqERKS2_>: _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const 205a0: 55 push %rbp 205a1: 48 89 e5 mov %rsp,%rbp 205a4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 205a8: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return _M_node == __x._M_node; } 205ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 205b0: 48 8b 10 mov (%rax),%rdx 205b3: 48 8b 45 f0 mov -0x10(%rbp),%rax 205b7: 48 8b 00 mov (%rax),%rax 205ba: 48 39 c2 cmp %rax,%rdx 205bd: 0f 94 c0 sete %al 205c0: 5d pop %rbp 205c1: c3 retq 00000000000205c2 <_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>:: 205c2: 55 push %rbp 205c3: 48 89 e5 mov %rsp,%rbp 205c6: 53 push %rbx 205c7: 48 83 ec 48 sub $0x48,%rsp 205cb: 48 89 7d c8 mov %rdi,-0x38(%rbp) 205cf: 48 89 75 c0 mov %rsi,-0x40(%rbp) 205d3: 48 89 55 b8 mov %rdx,-0x48(%rbp) 205d7: 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))); 205db: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 205e0: 75 4d jne 2062f <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x6d> 205e2: 48 8b 45 c8 mov -0x38(%rbp),%rax 205e6: 48 89 c7 mov %rax,%rdi 205e9: e8 42 2b ff ff callq 13130 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_M_endEv@plt> 205ee: 48 3b 45 b8 cmp -0x48(%rbp),%rax 205f2: 74 3b je 2062f <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x6d> 205f4: 48 8b 45 b8 mov -0x48(%rbp),%rax 205f8: 48 89 c7 mov %rax,%rdi 205fb: e8 c0 39 ff ff callq 13fc0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20600: 48 89 c3 mov %rax,%rbx 20603: 48 8b 55 b0 mov -0x50(%rbp),%rdx 20607: 48 8d 45 ee lea -0x12(%rbp),%rax 2060b: 48 89 d6 mov %rdx,%rsi 2060e: 48 89 c7 mov %rax,%rdi 20611: e8 ea 20 ff ff callq 12700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20616: 48 89 c1 mov %rax,%rcx 20619: 48 8b 45 c8 mov -0x38(%rbp),%rax 2061d: 48 89 da mov %rbx,%rdx 20620: 48 89 ce mov %rcx,%rsi 20623: 48 89 c7 mov %rax,%rdi 20626: e8 45 32 ff ff callq 13870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 2062b: 84 c0 test %al,%al 2062d: 74 07 je 20636 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x74> 2062f: b8 01 00 00 00 mov $0x1,%eax 20634: eb 05 jmp 2063b <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE10_M_insert_EPKSt18_Rb_tree_node_baseSA_RKS1_+0x79> 20636: b8 00 00 00 00 mov $0x0,%eax 2063b: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 2063e: 48 8b 55 b0 mov -0x50(%rbp),%rdx 20642: 48 8b 45 c8 mov -0x38(%rbp),%rax 20646: 48 89 d6 mov %rdx,%rsi 20649: 48 89 c7 mov %rax,%rdi 2064c: e8 cf 34 ff ff callq 13b20 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_@plt> 20651: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 20655: 48 8b 45 c8 mov -0x38(%rbp),%rax 20659: 48 8d 48 08 lea 0x8(%rax),%rcx 2065d: 0f b6 45 ef movzbl -0x11(%rbp),%eax 20661: 48 8b 55 b8 mov -0x48(%rbp),%rdx 20665: 48 8b 75 e0 mov -0x20(%rbp),%rsi 20669: 89 c7 mov %eax,%edi 2066b: e8 d0 31 ff ff callq 13840 <_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; 20670: 48 8b 45 c8 mov -0x38(%rbp),%rax 20674: 48 8b 40 28 mov 0x28(%rax),%rax 20678: 48 8d 50 01 lea 0x1(%rax),%rdx 2067c: 48 8b 45 c8 mov -0x38(%rbp),%rax 20680: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 20684: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20688: 48 8d 45 d0 lea -0x30(%rbp),%rax 2068c: 48 89 d6 mov %rdx,%rsi 2068f: 48 89 c7 mov %rax,%rdi 20692: e8 79 34 ff ff callq 13b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 20697: 48 8b 45 d0 mov -0x30(%rbp),%rax } 2069b: 48 83 c4 48 add $0x48,%rsp 2069f: 5b pop %rbx 206a0: 5d pop %rbp 206a1: c3 retq 00000000000206a2 <_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) 206a2: 55 push %rbp 206a3: 48 89 e5 mov %rsp,%rbp 206a6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 206aa: 48 89 75 f0 mov %rsi,-0x10(%rbp) 206ae: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 206b2: 48 8b 45 f8 mov -0x8(%rbp),%rax 206b6: 48 8b 55 f0 mov -0x10(%rbp),%rdx 206ba: 48 8b 12 mov (%rdx),%rdx 206bd: 48 89 10 mov %rdx,(%rax) 206c0: 48 8b 45 e8 mov -0x18(%rbp),%rax 206c4: 0f b6 10 movzbl (%rax),%edx 206c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 206cb: 88 50 08 mov %dl,0x8(%rax) 206ce: 5d pop %rbp 206cf: c3 retq 00000000000206d0 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 206d0: 55 push %rbp 206d1: 48 89 e5 mov %rsp,%rbp 206d4: 48 83 ec 10 sub $0x10,%rsp 206d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 206dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 206e0: 48 8b 00 mov (%rax),%rax 206e3: 48 89 c7 mov %rax,%rdi 206e6: e8 65 23 ff ff callq 12a50 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 206eb: 48 8b 55 f8 mov -0x8(%rbp),%rdx 206ef: 48 89 02 mov %rax,(%rdx) return *this; 206f2: 48 8b 45 f8 mov -0x8(%rbp),%rax } 206f6: c9 leaveq 206f7: c3 retq 00000000000206f8 <_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) 206f8: 55 push %rbp 206f9: 48 89 e5 mov %rsp,%rbp 206fc: 48 83 ec 20 sub $0x20,%rsp 20700: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 20704: 48 8b 45 e8 mov -0x18(%rbp),%rax 20708: 48 89 c7 mov %rax,%rdi 2070b: e8 40 22 ff ff callq 12950 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 20710: 48 89 c2 mov %rax,%rdx 20713: 48 8d 45 ff lea -0x1(%rbp),%rax 20717: 48 89 d6 mov %rdx,%rsi 2071a: 48 89 c7 mov %rax,%rdi 2071d: e8 de 1f ff ff callq 12700 <_ZNKSt9_IdentityIP11XLogHandlerEclERKS1_@plt> 20722: c9 leaveq 20723: c3 retq 0000000000020724 <_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>:: 20724: 55 push %rbp 20725: 48 89 e5 mov %rsp,%rbp 20728: 48 83 ec 30 sub $0x30,%rsp 2072c: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20730: 48 89 75 e0 mov %rsi,-0x20(%rbp) 20734: 48 89 55 d8 mov %rdx,-0x28(%rbp) 20738: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 2073c: eb 53 jmp 20791 <_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)) 2073e: 48 8b 45 e0 mov -0x20(%rbp),%rax 20742: 48 89 c7 mov %rax,%rdi 20745: e8 76 1c ff ff callq 123c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE6_S_keyEPKSt13_Rb_tree_nodeIS1_E@plt> 2074a: 48 89 c1 mov %rax,%rcx 2074d: 48 8b 45 e8 mov -0x18(%rbp),%rax 20751: 48 8b 55 d0 mov -0x30(%rbp),%rdx 20755: 48 89 ce mov %rcx,%rsi 20758: 48 89 c7 mov %rax,%rdi 2075b: e8 10 31 ff ff callq 13870 <_ZNKSt4lessIP11XLogHandlerEclERKS1_S4_@plt> 20760: 83 f0 01 xor $0x1,%eax 20763: 84 c0 test %al,%al 20765: 74 1a je 20781 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x5d> __y = __x, __x = _S_left(__x); 20767: 48 8b 45 e0 mov -0x20(%rbp),%rax 2076b: 48 89 45 d8 mov %rax,-0x28(%rbp) 2076f: 48 8b 45 e0 mov -0x20(%rbp),%rax 20773: 48 89 c7 mov %rax,%rdi 20776: e8 c5 23 ff ff callq 12b40 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 2077b: 48 89 45 e0 mov %rax,-0x20(%rbp) 2077f: eb 10 jmp 20791 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS1_ESA_RKS1_+0x6d> else __x = _S_right(__x); 20781: 48 8b 45 e0 mov -0x20(%rbp),%rax 20785: 48 89 c7 mov %rax,%rdi 20788: e8 23 25 ff ff callq 12cb0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 2078d: 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) 20791: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 20796: 0f 95 c0 setne %al 20799: 84 c0 test %al,%al 2079b: 75 a1 jne 2073e <_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); 2079d: 48 8b 55 d8 mov -0x28(%rbp),%rdx 207a1: 48 8d 45 f0 lea -0x10(%rbp),%rax 207a5: 48 89 d6 mov %rdx,%rsi 207a8: 48 89 c7 mov %rax,%rdi 207ab: e8 60 33 ff ff callq 13b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 207b0: 48 8b 45 f0 mov -0x10(%rbp),%rax } 207b4: c9 leaveq 207b5: c3 retq 00000000000207b6 <_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() 207b6: 55 push %rbp 207b7: 48 89 e5 mov %rsp,%rbp 207ba: 48 83 ec 20 sub $0x20,%rsp 207be: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } 207c2: 48 8b 45 e8 mov -0x18(%rbp),%rax 207c6: 48 8d 50 08 lea 0x8(%rax),%rdx 207ca: 48 8d 45 f0 lea -0x10(%rbp),%rax 207ce: 48 89 d6 mov %rdx,%rsi 207d1: 48 89 c7 mov %rax,%rdi 207d4: e8 37 33 ff ff callq 13b10 <_ZNSt17_Rb_tree_iteratorIP11XLogHandlerEC1EPSt13_Rb_tree_nodeIS1_E@plt> 207d9: 48 8b 45 f0 mov -0x10(%rbp),%rax 207dd: c9 leaveq 207de: c3 retq 207df: 90 nop 00000000000207e0 <_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>:: 207e0: 55 push %rbp 207e1: 48 89 e5 mov %rsp,%rbp 207e4: 48 83 ec 20 sub $0x20,%rsp 207e8: 48 89 7d e8 mov %rdi,-0x18(%rbp) 207ec: 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)); 207f0: 48 8b 45 e8 mov -0x18(%rbp),%rax 207f4: 48 8d 50 08 lea 0x8(%rax),%rdx 207f8: 48 8b 45 e0 mov -0x20(%rbp),%rax 207fc: 48 89 d6 mov %rdx,%rsi 207ff: 48 89 c7 mov %rax,%rdi 20802: e8 e9 30 ff ff callq 138f0 <_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@plt> 20807: 48 89 45 f8 mov %rax,-0x8(%rbp) _M_destroy_node(__y); 2080b: 48 8b 55 f8 mov -0x8(%rbp),%rdx 2080f: 48 8b 45 e8 mov -0x18(%rbp),%rax 20813: 48 89 d6 mov %rdx,%rsi 20816: 48 89 c7 mov %rax,%rdi 20819: e8 a2 21 ff ff callq 129c0 <_ZNSt8_Rb_treeIP11XLogHandlerS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS1_E@plt> --_M_impl._M_node_count; 2081e: 48 8b 45 e8 mov -0x18(%rbp),%rax 20822: 48 8b 40 28 mov 0x28(%rax),%rax 20826: 48 8d 50 ff lea -0x1(%rax),%rdx 2082a: 48 8b 45 e8 mov -0x18(%rbp),%rax 2082e: 48 89 50 28 mov %rdx,0x28(%rax) } 20832: c9 leaveq 20833: c3 retq 0000000000020834 <_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() 20834: 55 push %rbp 20835: 48 89 e5 mov %rsp,%rbp 20838: 53 push %rbx 20839: 48 83 ec 18 sub $0x18,%rsp 2083d: 48 89 7d e8 mov %rdi,-0x18(%rbp) : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) 20841: 48 8b 45 e8 mov -0x18(%rbp),%rax 20845: 48 89 c7 mov %rax,%rdi 20848: e8 03 2c ff ff callq 13450 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt> 2084d: 48 8b 45 e8 mov -0x18(%rbp),%rax 20851: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) 20858: 48 8b 45 e8 mov -0x18(%rbp),%rax 2085c: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 20863: 00 20864: 48 8b 45 e8 mov -0x18(%rbp),%rax 20868: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) 2086f: 00 20870: 48 8b 45 e8 mov -0x18(%rbp),%rax 20874: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) 2087b: 00 2087c: 48 8b 45 e8 mov -0x18(%rbp),%rax 20880: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) 20887: 00 { _M_initialize(); } 20888: 48 8b 45 e8 mov -0x18(%rbp),%rax 2088c: 48 89 c7 mov %rax,%rdi 2088f: e8 8c 37 ff ff callq 14020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv@plt> 20894: eb 1a jmp 208b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EEC1Ev+0x7c> 20896: 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) 20899: 48 8b 45 e8 mov -0x18(%rbp),%rax 2089d: 48 89 c7 mov %rax,%rdi 208a0: e8 2b 24 ff ff callq 12cd0 <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED2Ev@plt> 208a5: 48 89 d8 mov %rbx,%rax 208a8: 48 89 c7 mov %rax,%rdi 208ab: e8 70 36 ff ff callq 13f20 <_Unwind_Resume@plt> { _M_initialize(); } 208b0: 48 83 c4 18 add $0x18,%rsp 208b4: 5b pop %rbx 208b5: 5d pop %rbp 208b6: c3 retq 208b7: 90 nop 00000000000208b8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 208b8: 55 push %rbp 208b9: 48 89 e5 mov %rsp,%rbp 208bc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 208c0: 5d pop %rbp 208c1: c3 retq 00000000000208c2 <_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) 208c2: 55 push %rbp 208c3: 48 89 e5 mov %rsp,%rbp 208c6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_right); } 208ca: 48 8b 45 f8 mov -0x8(%rbp),%rax 208ce: 48 8b 40 18 mov 0x18(%rax),%rax 208d2: 5d pop %rbp 208d3: c3 retq 00000000000208d4 <_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) 208d4: 55 push %rbp 208d5: 48 89 e5 mov %rsp,%rbp 208d8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(__x->_M_left); } 208dc: 48 8b 45 f8 mov -0x8(%rbp),%rax 208e0: 48 8b 40 10 mov 0x10(%rax),%rax 208e4: 5d pop %rbp 208e5: c3 retq 00000000000208e6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS4_E>: } return __tmp; } void _M_destroy_node(_Link_type __p) 208e6: 55 push %rbp 208e7: 48 89 e5 mov %rsp,%rbp 208ea: 53 push %rbx 208eb: 48 83 ec 28 sub $0x28,%rsp 208ef: 48 89 7d d8 mov %rdi,-0x28(%rbp) 208f3: 48 89 75 d0 mov %rsi,-0x30(%rbp) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 208f7: 48 8b 45 d0 mov -0x30(%rbp),%rax 208fb: 48 83 c0 20 add $0x20,%rax 208ff: 48 89 c7 mov %rax,%rdi 20902: e8 89 2b ff ff callq 13490 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt> 20907: 48 89 c3 mov %rax,%rbx 2090a: 48 8d 45 ef lea -0x11(%rbp),%rax 2090e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20912: 48 89 d6 mov %rdx,%rsi 20915: 48 89 c7 mov %rax,%rdi 20918: e8 83 21 ff ff callq 12aa0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt> 2091d: 48 8d 45 ef lea -0x11(%rbp),%rax 20921: 48 89 de mov %rbx,%rsi 20924: 48 89 c7 mov %rax,%rdi 20927: e8 94 29 ff ff callq 132c0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_@plt> 2092c: 48 8d 45 ef lea -0x11(%rbp),%rax 20930: 48 89 c7 mov %rax,%rdi 20933: e8 a8 2a ff ff callq 133e0 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> _M_put_node(__p); 20938: 48 8b 55 d0 mov -0x30(%rbp),%rdx 2093c: 48 8b 45 d8 mov -0x28(%rbp),%rax 20940: 48 89 d6 mov %rdx,%rsi 20943: 48 89 c7 mov %rax,%rdi 20946: e8 75 2c ff ff callq 135c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt> } 2094b: 48 83 c4 28 add $0x28,%rsp 2094f: 5b pop %rbx 20950: 5d pop %rbp 20951: c3 retq 20952: 48 89 c3 mov %rax,%rbx } void _M_destroy_node(_Link_type __p) { get_allocator().destroy(std::__addressof(__p->_M_value_field)); 20955: 48 8d 45 ef lea -0x11(%rbp),%rax 20959: 48 89 c7 mov %rax,%rdi 2095c: e8 7f 2a ff ff callq 133e0 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> 20961: 48 89 d8 mov %rbx,%rax 20964: 48 89 c7 mov %rax,%rdi 20967: e8 b4 35 ff ff callq 13f20 <_Unwind_Resume@plt> 000000000002096c <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E>: _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) 2096c: 55 push %rbp 2096d: 48 89 e5 mov %rsp,%rbp 20970: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20974: 48 89 75 f0 mov %rsi,-0x10(%rbp) : _M_node(__x) { } 20978: 48 8b 45 f8 mov -0x8(%rbp),%rax 2097c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20980: 48 89 10 mov %rdx,(%rax) 20983: 5d pop %rbp 20984: c3 retq 20985: 90 nop 0000000000020986 <_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() 20986: 55 push %rbp 20987: 48 89 e5 mov %rsp,%rbp 2098a: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Link_type>(&this->_M_impl._M_header); } 2098e: 48 8b 45 f8 mov -0x8(%rbp),%rax 20992: 48 83 c0 08 add $0x8,%rax 20996: 5d pop %rbp 20997: c3 retq 0000000000020998 <_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>:: 20998: 55 push %rbp 20999: 48 89 e5 mov %rsp,%rbp 2099c: 48 83 ec 30 sub $0x30,%rsp 209a0: 48 89 7d e8 mov %rdi,-0x18(%rbp) 209a4: 48 89 75 e0 mov %rsi,-0x20(%rbp) 209a8: 48 89 55 d8 mov %rdx,-0x28(%rbp) 209ac: 48 89 4d d0 mov %rcx,-0x30(%rbp) _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) 209b0: eb 53 jmp 20a05 <_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)) 209b2: 48 8b 45 e0 mov -0x20(%rbp),%rax 209b6: 48 89 c7 mov %rax,%rdi 209b9: e8 e2 27 ff ff callq 131a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt> 209be: 48 89 c1 mov %rax,%rcx 209c1: 48 8b 45 e8 mov -0x18(%rbp),%rax 209c5: 48 8b 55 d0 mov -0x30(%rbp),%rdx 209c9: 48 89 ce mov %rcx,%rsi 209cc: 48 89 c7 mov %rax,%rdi 209cf: e8 ac 1a ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 209d4: 83 f0 01 xor $0x1,%eax 209d7: 84 c0 test %al,%al 209d9: 74 1a je 209f5 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x5d> __y = __x, __x = _S_left(__x); 209db: 48 8b 45 e0 mov -0x20(%rbp),%rax 209df: 48 89 45 d8 mov %rax,-0x28(%rbp) 209e3: 48 8b 45 e0 mov -0x20(%rbp),%rax 209e7: 48 89 c7 mov %rax,%rdi 209ea: e8 91 2e ff ff callq 13880 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 209ef: 48 89 45 e0 mov %rax,-0x20(%rbp) 209f3: eb 10 jmp 20a05 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_+0x6d> else __x = _S_right(__x); 209f5: 48 8b 45 e0 mov -0x20(%rbp),%rax 209f9: 48 89 c7 mov %rax,%rdi 209fc: e8 df 1b ff ff callq 125e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 20a01: 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) 20a05: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp) 20a0a: 0f 95 c0 setne %al 20a0d: 84 c0 test %al,%al 20a0f: 75 a1 jne 209b2 <_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); 20a11: 48 8b 55 d8 mov -0x28(%rbp),%rdx 20a15: 48 8d 45 f0 lea -0x10(%rbp),%rax 20a19: 48 89 d6 mov %rdx,%rsi 20a1c: 48 89 c7 mov %rax,%rdi 20a1f: e8 8c 1a ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 20a24: 48 8b 45 f0 mov -0x10(%rbp),%rax } 20a28: c9 leaveq 20a29: c3 retq 0000000000020a2a <_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) 20a2a: 55 push %rbp 20a2b: 48 89 e5 mov %rsp,%rbp 20a2e: 48 83 ec 20 sub $0x20,%rsp 20a32: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 20a36: 48 8b 45 e8 mov -0x18(%rbp),%rax 20a3a: 48 89 c7 mov %rax,%rdi 20a3d: e8 9e 26 ff ff callq 130e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt18_Rb_tree_node_base@plt> 20a42: 48 89 c2 mov %rax,%rdx 20a45: 48 8d 45 ff lea -0x1(%rbp),%rax 20a49: 48 89 d6 mov %rdx,%rsi 20a4c: 48 89 c7 mov %rax,%rdi 20a4f: e8 bc 19 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20a54: c9 leaveq 20a55: c3 retq 0000000000020a56 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11lower_boundERS1_>: size_type count(const key_type& __k) const; iterator lower_bound(const key_type& __k) 20a56: 55 push %rbp 20a57: 48 89 e5 mov %rsp,%rbp 20a5a: 53 push %rbx 20a5b: 48 83 ec 18 sub $0x18,%rsp 20a5f: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20a63: 48 89 75 e0 mov %rsi,-0x20(%rbp) { return _M_lower_bound(_M_begin(), _M_end(), __k); } 20a67: 48 8b 45 e8 mov -0x18(%rbp),%rax 20a6b: 48 89 c7 mov %rax,%rdi 20a6e: e8 1d 19 ff ff callq 12390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 20a73: 48 89 c3 mov %rax,%rbx 20a76: 48 8b 45 e8 mov -0x18(%rbp),%rax 20a7a: 48 89 c7 mov %rax,%rdi 20a7d: e8 8e 1b ff ff callq 12610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 20a82: 48 89 c6 mov %rax,%rsi 20a85: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20a89: 48 8b 45 e8 mov -0x18(%rbp),%rax 20a8d: 48 89 d1 mov %rdx,%rcx 20a90: 48 89 da mov %rbx,%rdx 20a93: 48 89 c7 mov %rax,%rdi 20a96: e8 15 2b ff ff callq 135b0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS4_ESD_RS1_@plt> 20a9b: 48 83 c4 18 add $0x18,%rsp 20a9f: 5b pop %rbx 20aa0: 5d pop %rbp 20aa1: c3 retq 0000000000020aa2 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8key_compEv>: _Rb_tree& operator=(const _Rb_tree& __x); // Accessors. _Compare key_comp() const 20aa2: 55 push %rbp 20aa3: 48 89 e5 mov %rsp,%rbp 20aa6: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_key_compare; } 20aaa: 5d pop %rbp 20aab: c3 retq 0000000000020aac <_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, 20aac: 55 push %rbp 20aad: 48 89 e5 mov %rsp,%rbp 20ab0: 48 83 ec 10 sub $0x10,%rsp 20ab4: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20ab8: 48 89 75 f0 mov %rsi,-0x10(%rbp) const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) < 0; } 20abc: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20ac0: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ac4: 48 89 d6 mov %rdx,%rsi 20ac7: 48 89 c7 mov %rax,%rdi 20aca: e8 31 20 ff ff callq 12b00 <_ZNKSs7compareERKSs@plt> 20acf: c1 e8 1f shr $0x1f,%eax 20ad2: c9 leaveq 20ad3: c3 retq 0000000000020ad4 <_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>:: 20ad4: 55 push %rbp 20ad5: 48 89 e5 mov %rsp,%rbp 20ad8: 53 push %rbx 20ad9: 48 83 ec 78 sub $0x78,%rsp 20add: 48 89 7d a8 mov %rdi,-0x58(%rbp) 20ae1: 48 89 75 a0 mov %rsi,-0x60(%rbp) 20ae5: 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()) 20ae9: 48 8b 5d a0 mov -0x60(%rbp),%rbx 20aed: 48 8b 45 a8 mov -0x58(%rbp),%rax 20af1: 48 89 c7 mov %rax,%rdi 20af4: e8 97 18 ff ff callq 12390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 20af9: 48 39 c3 cmp %rax,%rbx 20afc: 0f 94 c0 sete %al 20aff: 84 c0 test %al,%al 20b01: 0f 84 c8 00 00 00 je 20bcf <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0xfb> { if (size() > 0 20b07: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b0b: 48 89 c7 mov %rax,%rdi 20b0e: e8 fd 1b ff ff callq 12710 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv@plt> 20b13: 48 85 c0 test %rax,%rax 20b16: 74 4d je 20b65 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x91> 20b18: 48 8b 55 98 mov -0x68(%rbp),%rdx 20b1c: 48 8d 45 eb lea -0x15(%rbp),%rax 20b20: 48 89 d6 mov %rdx,%rsi 20b23: 48 89 c7 mov %rax,%rdi 20b26: e8 e5 18 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20b2b: 48 89 c3 mov %rax,%rbx 20b2e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b32: 48 89 c7 mov %rax,%rdi 20b35: e8 56 30 ff ff callq 13b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 20b3a: 48 8b 00 mov (%rax),%rax 20b3d: 48 89 c7 mov %rax,%rdi 20b40: e8 db 24 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20b45: 48 89 c1 mov %rax,%rcx 20b48: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b4c: 48 89 da mov %rbx,%rdx 20b4f: 48 89 ce mov %rcx,%rsi 20b52: 48 89 c7 mov %rax,%rdi 20b55: e8 26 19 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 20b5a: 84 c0 test %al,%al 20b5c: 74 07 je 20b65 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x91> 20b5e: b8 01 00 00 00 mov $0x1,%eax 20b63: eb 05 jmp 20b6a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x96> 20b65: b8 00 00 00 00 mov $0x0,%eax 20b6a: 84 c0 test %al,%al 20b6c: 74 29 je 20b97 <_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)); 20b6e: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b72: 48 89 c7 mov %rax,%rdi 20b75: e8 16 30 ff ff callq 13b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 20b7a: 48 8b 10 mov (%rax),%rdx 20b7d: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20b81: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b85: be 00 00 00 00 mov $0x0,%esi 20b8a: 48 89 c7 mov %rax,%rdi 20b8d: e8 2e 22 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20b92: e9 03 03 00 00 jmpq 20e9a <_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; 20b97: 48 8b 55 98 mov -0x68(%rbp),%rdx 20b9b: 48 8b 45 a8 mov -0x58(%rbp),%rax 20b9f: 48 89 d6 mov %rdx,%rsi 20ba2: 48 89 c7 mov %rax,%rdi 20ba5: e8 06 32 ff ff callq 13db0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 20baa: 48 89 c1 mov %rax,%rcx 20bad: 89 d0 mov %edx,%eax 20baf: 48 89 4d 80 mov %rcx,-0x80(%rbp) 20bb3: 89 45 88 mov %eax,-0x78(%rbp) 20bb6: 48 8b 45 80 mov -0x80(%rbp),%rax 20bba: 48 89 45 b0 mov %rax,-0x50(%rbp) 20bbe: 48 8b 45 88 mov -0x78(%rbp),%rax 20bc2: 48 89 45 b8 mov %rax,-0x48(%rbp) 20bc6: 48 8b 45 b0 mov -0x50(%rbp),%rax 20bca: e9 cb 02 00 00 jmpq 20e9a <_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), 20bcf: 48 8b 45 a0 mov -0x60(%rbp),%rax 20bd3: 48 89 c7 mov %rax,%rdi 20bd6: e8 45 24 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20bdb: 48 89 c3 mov %rax,%rbx 20bde: 48 8b 55 98 mov -0x68(%rbp),%rdx 20be2: 48 8d 45 ec lea -0x14(%rbp),%rax 20be6: 48 89 d6 mov %rdx,%rsi 20be9: 48 89 c7 mov %rax,%rdi 20bec: e8 1f 18 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20bf1: 48 89 c1 mov %rax,%rcx 20bf4: 48 8b 45 a8 mov -0x58(%rbp),%rax 20bf8: 48 89 da mov %rbx,%rdx 20bfb: 48 89 ce mov %rcx,%rsi 20bfe: 48 89 c7 mov %rax,%rdi 20c01: e8 7a 18 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 20c06: 84 c0 test %al,%al 20c08: 0f 84 2d 01 00 00 je 20d3b <_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; 20c0e: 48 8b 45 a0 mov -0x60(%rbp),%rax 20c12: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_leftmost()) // begin() 20c16: 48 8b 5d a0 mov -0x60(%rbp),%rbx 20c1a: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c1e: 48 89 c7 mov %rax,%rdi 20c21: e8 aa 1f ff ff callq 12bd0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 20c26: 48 8b 00 mov (%rax),%rax 20c29: 48 39 c3 cmp %rax,%rbx 20c2c: 0f 94 c0 sete %al 20c2f: 84 c0 test %al,%al 20c31: 74 39 je 20c6c <_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)); 20c33: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c37: 48 89 c7 mov %rax,%rdi 20c3a: e8 91 1f ff ff callq 12bd0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 20c3f: 48 8b 18 mov (%rax),%rbx 20c42: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c46: 48 89 c7 mov %rax,%rdi 20c49: e8 82 1f ff ff callq 12bd0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_leftmostEv@plt> 20c4e: 48 8b 30 mov (%rax),%rsi 20c51: 48 8b 55 98 mov -0x68(%rbp),%rdx 20c55: 48 8b 45 a8 mov -0x58(%rbp),%rax 20c59: 48 89 d1 mov %rdx,%rcx 20c5c: 48 89 da mov %rbx,%rdx 20c5f: 48 89 c7 mov %rax,%rdi 20c62: e8 59 21 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20c67: e9 2e 02 00 00 jmpq 20e9a <_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), 20c6c: 48 8b 55 98 mov -0x68(%rbp),%rdx 20c70: 48 8d 45 ed lea -0x13(%rbp),%rax 20c74: 48 89 d6 mov %rdx,%rsi 20c77: 48 89 c7 mov %rax,%rdi 20c7a: e8 91 17 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20c7f: 48 89 c3 mov %rax,%rbx 20c82: 48 8d 45 e0 lea -0x20(%rbp),%rax 20c86: 48 89 c7 mov %rax,%rdi 20c89: e8 c2 19 ff ff callq 12650 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv@plt> 20c8e: 48 8b 00 mov (%rax),%rax 20c91: 48 89 c7 mov %rax,%rdi 20c94: e8 87 23 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20c99: 48 89 c1 mov %rax,%rcx 20c9c: 48 8b 45 a8 mov -0x58(%rbp),%rax 20ca0: 48 89 da mov %rbx,%rdx 20ca3: 48 89 ce mov %rcx,%rsi 20ca6: 48 89 c7 mov %rax,%rdi 20ca9: e8 d2 17 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 20cae: 84 c0 test %al,%al 20cb0: 74 51 je 20d03 <_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) 20cb2: 48 8b 45 e0 mov -0x20(%rbp),%rax 20cb6: 48 89 c7 mov %rax,%rdi 20cb9: e8 d2 31 ff ff callq 13e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 20cbe: 48 85 c0 test %rax,%rax 20cc1: 0f 94 c0 sete %al 20cc4: 84 c0 test %al,%al 20cc6: 74 1e je 20ce6 <_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)); 20cc8: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20ccc: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20cd0: 48 8b 45 a8 mov -0x58(%rbp),%rax 20cd4: be 00 00 00 00 mov $0x0,%esi 20cd9: 48 89 c7 mov %rax,%rdi 20cdc: e8 df 20 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20ce1: e9 b4 01 00 00 jmpq 20e9a <_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)); 20ce6: 48 8b 55 a0 mov -0x60(%rbp),%rdx 20cea: 48 8b 75 a0 mov -0x60(%rbp),%rsi 20cee: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20cf2: 48 8b 45 a8 mov -0x58(%rbp),%rax 20cf6: 48 89 c7 mov %rax,%rdi 20cf9: e8 c2 20 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20cfe: e9 97 01 00 00 jmpq 20e9a <_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; 20d03: 48 8b 55 98 mov -0x68(%rbp),%rdx 20d07: 48 8b 45 a8 mov -0x58(%rbp),%rax 20d0b: 48 89 d6 mov %rdx,%rsi 20d0e: 48 89 c7 mov %rax,%rdi 20d11: e8 9a 30 ff ff callq 13db0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 20d16: 48 89 c1 mov %rax,%rcx 20d19: 89 d0 mov %edx,%eax 20d1b: 48 89 4d 80 mov %rcx,-0x80(%rbp) 20d1f: 89 45 88 mov %eax,-0x78(%rbp) 20d22: 48 8b 45 80 mov -0x80(%rbp),%rax 20d26: 48 89 45 c0 mov %rax,-0x40(%rbp) 20d2a: 48 8b 45 88 mov -0x78(%rbp),%rax 20d2e: 48 89 45 c8 mov %rax,-0x38(%rbp) 20d32: 48 8b 45 c0 mov -0x40(%rbp),%rax 20d36: e9 5f 01 00 00 jmpq 20e9a <_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), 20d3b: 48 8b 55 98 mov -0x68(%rbp),%rdx 20d3f: 48 8d 45 ee lea -0x12(%rbp),%rax 20d43: 48 89 d6 mov %rdx,%rsi 20d46: 48 89 c7 mov %rax,%rdi 20d49: e8 c2 16 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20d4e: 48 89 c3 mov %rax,%rbx 20d51: 48 8b 45 a0 mov -0x60(%rbp),%rax 20d55: 48 89 c7 mov %rax,%rdi 20d58: e8 c3 22 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20d5d: 48 89 c1 mov %rax,%rcx 20d60: 48 8b 45 a8 mov -0x58(%rbp),%rax 20d64: 48 89 da mov %rbx,%rdx 20d67: 48 89 ce mov %rcx,%rsi 20d6a: 48 89 c7 mov %rax,%rdi 20d6d: e8 0e 17 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 20d72: 84 c0 test %al,%al 20d74: 0f 84 14 01 00 00 je 20e8e <_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; 20d7a: 48 8b 45 a0 mov -0x60(%rbp),%rax 20d7e: 48 89 45 e0 mov %rax,-0x20(%rbp) if (__position._M_node == _M_rightmost()) 20d82: 48 8b 5d a0 mov -0x60(%rbp),%rbx 20d86: 48 8b 45 a8 mov -0x58(%rbp),%rax 20d8a: 48 89 c7 mov %rax,%rdi 20d8d: e8 fe 2d ff ff callq 13b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 20d92: 48 8b 00 mov (%rax),%rax 20d95: 48 39 c3 cmp %rax,%rbx 20d98: 0f 94 c0 sete %al 20d9b: 84 c0 test %al,%al 20d9d: 74 29 je 20dc8 <_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)); 20d9f: 48 8b 45 a8 mov -0x58(%rbp),%rax 20da3: 48 89 c7 mov %rax,%rdi 20da6: e8 e5 2d ff ff callq 13b90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE12_M_rightmostEv@plt> 20dab: 48 8b 10 mov (%rax),%rdx 20dae: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20db2: 48 8b 45 a8 mov -0x58(%rbp),%rax 20db6: be 00 00 00 00 mov $0x0,%esi 20dbb: 48 89 c7 mov %rax,%rdi 20dbe: e8 fd 1f ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20dc3: e9 d2 00 00 00 jmpq 20e9a <_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), 20dc8: 48 8d 45 e0 lea -0x20(%rbp),%rax 20dcc: 48 89 c7 mov %rax,%rdi 20dcf: e8 9c 18 ff ff callq 12670 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv@plt> 20dd4: 48 8b 00 mov (%rax),%rax 20dd7: 48 89 c7 mov %rax,%rdi 20dda: e8 41 22 ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 20ddf: 48 89 c3 mov %rax,%rbx 20de2: 48 8b 55 98 mov -0x68(%rbp),%rdx 20de6: 48 8d 45 ef lea -0x11(%rbp),%rax 20dea: 48 89 d6 mov %rdx,%rsi 20ded: 48 89 c7 mov %rax,%rdi 20df0: e8 1b 16 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 20df5: 48 89 c1 mov %rax,%rcx 20df8: 48 8b 45 a8 mov -0x58(%rbp),%rax 20dfc: 48 89 da mov %rbx,%rdx 20dff: 48 89 ce mov %rcx,%rsi 20e02: 48 89 c7 mov %rax,%rdi 20e05: e8 76 16 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 20e0a: 84 c0 test %al,%al 20e0c: 74 4b je 20e59 <_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) 20e0e: 48 8b 45 a0 mov -0x60(%rbp),%rax 20e12: 48 89 c7 mov %rax,%rdi 20e15: e8 76 30 ff ff callq 13e90 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPKSt18_Rb_tree_node_base@plt> 20e1a: 48 85 c0 test %rax,%rax 20e1d: 0f 94 c0 sete %al 20e20: 84 c0 test %al,%al 20e22: 74 1b je 20e3f <_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)); 20e24: 48 8b 55 a0 mov -0x60(%rbp),%rdx 20e28: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20e2c: 48 8b 45 a8 mov -0x58(%rbp),%rax 20e30: be 00 00 00 00 mov $0x0,%esi 20e35: 48 89 c7 mov %rax,%rdi 20e38: e8 83 1f ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20e3d: eb 5b jmp 20e9a <_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)); 20e3f: 48 8b 55 e0 mov -0x20(%rbp),%rdx 20e43: 48 8b 75 e0 mov -0x20(%rbp),%rsi 20e47: 48 8b 4d 98 mov -0x68(%rbp),%rcx 20e4b: 48 8b 45 a8 mov -0x58(%rbp),%rax 20e4f: 48 89 c7 mov %rax,%rdi 20e52: e8 69 1f ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 20e57: eb 41 jmp 20e9a <_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; 20e59: 48 8b 55 98 mov -0x68(%rbp),%rdx 20e5d: 48 8b 45 a8 mov -0x58(%rbp),%rax 20e61: 48 89 d6 mov %rdx,%rsi 20e64: 48 89 c7 mov %rax,%rdi 20e67: e8 44 2f ff ff callq 13db0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_@plt> 20e6c: 48 89 c1 mov %rax,%rcx 20e6f: 89 d0 mov %edx,%eax 20e71: 48 89 4d 80 mov %rcx,-0x80(%rbp) 20e75: 89 45 88 mov %eax,-0x78(%rbp) 20e78: 48 8b 45 80 mov -0x80(%rbp),%rax 20e7c: 48 89 45 d0 mov %rax,-0x30(%rbp) 20e80: 48 8b 45 88 mov -0x78(%rbp),%rax 20e84: 48 89 45 d8 mov %rax,-0x28(%rbp) 20e88: 48 8b 45 d0 mov -0x30(%rbp),%rax 20e8c: eb 0c jmp 20e9a <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_+0x3c6> } else // Equivalent keys. return __position._M_const_cast(); 20e8e: 48 8d 45 a0 lea -0x60(%rbp),%rax 20e92: 48 89 c7 mov %rax,%rdi 20e95: e8 16 2d ff ff callq 13bb0 <_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEE13_M_const_castEv@plt> } 20e9a: 48 83 c4 78 add $0x78,%rsp 20e9e: 5b pop %rbx 20e9f: 5d pop %rbp 20ea0: c3 retq 20ea1: 90 nop 0000000000020ea2 <_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() 20ea2: 55 push %rbp 20ea3: 48 89 e5 mov %rsp,%rbp 20ea6: 48 83 ec 10 sub $0x10,%rsp 20eaa: 48 89 7d f8 mov %rdi,-0x8(%rbp) : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) 20eae: 48 8b 45 f8 mov -0x8(%rbp),%rax 20eb2: 48 89 c7 mov %rax,%rdi 20eb5: e8 96 24 ff ff callq 13350 <_ZNSaISsEC2Ev@plt> 20eba: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ebe: 48 c7 00 00 00 00 00 movq $0x0,(%rax) 20ec5: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ec9: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) 20ed0: 00 20ed1: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ed5: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 20edc: 00 { } 20edd: c9 leaveq 20ede: c3 retq 20edf: 90 nop 0000000000020ee0 <_ZNSaISsED1Ev>: 20ee0: 55 push %rbp 20ee1: 48 89 e5 mov %rsp,%rbp 20ee4: 48 83 ec 10 sub $0x10,%rsp 20ee8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20eec: 48 8b 45 f8 mov -0x8(%rbp),%rax 20ef0: 48 89 c7 mov %rax,%rdi 20ef3: e8 b8 1f ff ff callq 12eb0 <_ZN9__gnu_cxx13new_allocatorISsED2Ev@plt> 20ef8: c9 leaveq 20ef9: c3 retq 0000000000020efa <_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) 20efa: 55 push %rbp 20efb: 48 89 e5 mov %rsp,%rbp 20efe: 48 83 ec 20 sub $0x20,%rsp 20f02: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20f06: 48 89 75 f0 mov %rsi,-0x10(%rbp) 20f0a: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__p) 20f0e: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 20f13: 74 17 je 20f2c <_ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm+0x32> _M_impl.deallocate(__p, __n); 20f15: 48 8b 45 f8 mov -0x8(%rbp),%rax 20f19: 48 8b 55 e8 mov -0x18(%rbp),%rdx 20f1d: 48 8b 4d f0 mov -0x10(%rbp),%rcx 20f21: 48 89 ce mov %rcx,%rsi 20f24: 48 89 c7 mov %rax,%rdi 20f27: e8 64 24 ff ff callq 13390 <_ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm@plt> } 20f2c: c9 leaveq 20f2d: c3 retq 0000000000020f2e <_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, 20f2e: 55 push %rbp 20f2f: 48 89 e5 mov %rsp,%rbp 20f32: 53 push %rbx 20f33: 48 83 ec 18 sub $0x18,%rsp 20f37: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20f3b: 48 89 75 e0 mov %rsi,-0x20(%rbp) const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } 20f3f: 48 8b 45 e8 mov -0x18(%rbp),%rax 20f43: 48 89 c7 mov %rax,%rdi 20f46: e8 a5 1b ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20f4b: 48 8b 00 mov (%rax),%rax 20f4e: 48 89 c3 mov %rax,%rbx 20f51: 48 8b 45 e0 mov -0x20(%rbp),%rax 20f55: 48 89 c7 mov %rax,%rdi 20f58: e8 93 1b ff ff callq 12af0 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEE4baseEv@plt> 20f5d: 48 8b 00 mov (%rax),%rax 20f60: 48 89 da mov %rbx,%rdx 20f63: 48 29 c2 sub %rax,%rdx 20f66: 48 89 d0 mov %rdx,%rax 20f69: 48 c1 f8 03 sar $0x3,%rax 20f6d: 48 83 c4 18 add $0x18,%rsp 20f71: 5b pop %rbx 20f72: 5d pop %rbp 20f73: c3 retq 0000000000020f74 <_ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv>: _Container>::__type>& __i) : _M_current(__i.base()) { } // Forward iterator requirements reference operator*() const 20f74: 55 push %rbp 20f75: 48 89 e5 mov %rsp,%rbp 20f78: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *_M_current; } 20f7c: 48 8b 45 f8 mov -0x8(%rbp),%rax 20f80: 48 8b 00 mov (%rax),%rax 20f83: 5d pop %rbp 20f84: c3 retq 0000000000020f85 <_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, 20f85: 55 push %rbp 20f86: 48 89 e5 mov %rsp,%rbp 20f89: 48 83 ec 10 sub $0x10,%rsp 20f8d: 48 89 7d f8 mov %rdi,-0x8(%rbp) 20f91: 48 89 75 f0 mov %rsi,-0x10(%rbp) const _CharT* __rhs) { return __lhs.compare(__rhs) == 0; } 20f95: 48 8b 55 f0 mov -0x10(%rbp),%rdx 20f99: 48 8b 45 f8 mov -0x8(%rbp),%rax 20f9d: 48 89 d6 mov %rdx,%rsi 20fa0: 48 89 c7 mov %rax,%rdi 20fa3: e8 38 23 ff ff callq 132e0 <_ZNKSs7compareEPKc@plt> 20fa8: 85 c0 test %eax,%eax 20faa: 0f 94 c0 sete %al 20fad: c9 leaveq 20fae: c3 retq 20faf: 90 nop 0000000000020fb0 <_ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEv>: pointer operator->() const { return _M_current; } __normal_iterator& operator++() 20fb0: 55 push %rbp 20fb1: 48 89 e5 mov %rsp,%rbp 20fb4: 48 89 7d f8 mov %rdi,-0x8(%rbp) { ++_M_current; 20fb8: 48 8b 45 f8 mov -0x8(%rbp),%rax 20fbc: 48 8b 00 mov (%rax),%rax 20fbf: 48 8d 50 08 lea 0x8(%rax),%rdx 20fc3: 48 8b 45 f8 mov -0x8(%rbp),%rax 20fc7: 48 89 10 mov %rdx,(%rax) return *this; 20fca: 48 8b 45 f8 mov -0x8(%rbp),%rax } 20fce: 5d pop %rbp 20fcf: c3 retq 0000000000020fd0 <_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) 20fd0: 55 push %rbp 20fd1: 48 89 e5 mov %rsp,%rbp 20fd4: 53 push %rbx 20fd5: 48 83 ec 28 sub $0x28,%rsp 20fd9: 48 89 7d e8 mov %rdi,-0x18(%rbp) 20fdd: 48 89 75 e0 mov %rsi,-0x20(%rbp) 20fe1: 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)); 20fe5: 48 8b 45 e0 mov -0x20(%rbp),%rax 20fe9: 48 89 c7 mov %rax,%rdi 20fec: e8 8f 2a ff ff callq 13a80 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt> 20ff1: 48 89 c3 mov %rax,%rbx 20ff4: 48 8b 45 e8 mov -0x18(%rbp),%rax 20ff8: 48 89 c7 mov %rax,%rdi 20ffb: e8 80 2a ff ff callq 13a80 <_ZSt12__miter_baseIPSsENSt11_Miter_baseIT_E13iterator_typeES2_@plt> 21000: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21004: 48 89 de mov %rbx,%rsi 21007: 48 89 c7 mov %rax,%rdi 2100a: e8 71 26 ff ff callq 13680 <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_@plt> } 2100f: 48 83 c4 28 add $0x28,%rsp 21013: 5b pop %rbx 21014: 5d pop %rbp 21015: c3 retq 0000000000021016 <_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 21016: 55 push %rbp 21017: 48 89 e5 mov %rsp,%rbp 2101a: 53 push %rbx 2101b: 48 83 ec 38 sub $0x38,%rsp 2101f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21023: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21027: 48 89 55 c8 mov %rdx,-0x38(%rbp) { if (max_size() - size() < __n) 2102b: 48 8b 45 d8 mov -0x28(%rbp),%rax 2102f: 48 89 c7 mov %rax,%rdi 21032: e8 99 13 ff ff callq 123d0 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 21037: 48 89 c3 mov %rax,%rbx 2103a: 48 8b 45 d8 mov -0x28(%rbp),%rax 2103e: 48 89 c7 mov %rax,%rdi 21041: e8 ba 23 ff ff callq 13400 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 21046: 48 89 da mov %rbx,%rdx 21049: 48 29 c2 sub %rax,%rdx 2104c: 48 8b 45 d0 mov -0x30(%rbp),%rax 21050: 48 39 c2 cmp %rax,%rdx 21053: 0f 92 c0 setb %al 21056: 84 c0 test %al,%al 21058: 74 0c je 21066 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0x50> __throw_length_error(__N(__s)); 2105a: 48 8b 45 c8 mov -0x38(%rbp),%rax 2105e: 48 89 c7 mov %rax,%rdi 21061: e8 da 12 ff ff callq 12340 <_ZSt20__throw_length_errorPKc@plt> const size_type __len = size() + std::max(size(), __n); 21066: 48 8b 45 d8 mov -0x28(%rbp),%rax 2106a: 48 89 c7 mov %rax,%rdi 2106d: e8 8e 23 ff ff callq 13400 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 21072: 48 89 c3 mov %rax,%rbx 21075: 48 8b 45 d8 mov -0x28(%rbp),%rax 21079: 48 89 c7 mov %rax,%rdi 2107c: e8 7f 23 ff ff callq 13400 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 21081: 48 89 45 e0 mov %rax,-0x20(%rbp) 21085: 48 8d 55 d0 lea -0x30(%rbp),%rdx 21089: 48 8d 45 e0 lea -0x20(%rbp),%rax 2108d: 48 89 d6 mov %rdx,%rsi 21090: 48 89 c7 mov %rax,%rdi 21093: e8 18 2a ff ff callq 13ab0 <_ZSt3maxImERKT_S2_S2_@plt> 21098: 48 8b 00 mov (%rax),%rax 2109b: 48 01 d8 add %rbx,%rax 2109e: 48 89 45 e8 mov %rax,-0x18(%rbp) return (__len < size() || __len > max_size()) ? max_size() : __len; 210a2: 48 8b 45 d8 mov -0x28(%rbp),%rax 210a6: 48 89 c7 mov %rax,%rdi 210a9: e8 52 23 ff ff callq 13400 <_ZNKSt6vectorISsSaISsEE4sizeEv@plt> 210ae: 48 3b 45 e8 cmp -0x18(%rbp),%rax 210b2: 77 12 ja 210c6 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xb0> 210b4: 48 8b 45 d8 mov -0x28(%rbp),%rax 210b8: 48 89 c7 mov %rax,%rdi 210bb: e8 10 13 ff ff callq 123d0 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 210c0: 48 3b 45 e8 cmp -0x18(%rbp),%rax 210c4: 73 0e jae 210d4 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xbe> 210c6: 48 8b 45 d8 mov -0x28(%rbp),%rax 210ca: 48 89 c7 mov %rax,%rdi 210cd: e8 fe 12 ff ff callq 123d0 <_ZNKSt6vectorISsSaISsEE8max_sizeEv@plt> 210d2: eb 04 jmp 210d8 <_ZNKSt6vectorISsSaISsEE12_M_check_lenEmPKc+0xc2> 210d4: 48 8b 45 e8 mov -0x18(%rbp),%rax } 210d8: 48 83 c4 38 add $0x38,%rsp 210dc: 5b pop %rbx 210dd: 5d pop %rbp 210de: c3 retq 210df: 90 nop 00000000000210e0 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm>: public: _Vector_impl _M_impl; typename _Tp_alloc_type::pointer _M_allocate(size_t __n) 210e0: 55 push %rbp 210e1: 48 89 e5 mov %rsp,%rbp 210e4: 48 83 ec 10 sub $0x10,%rsp 210e8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 210ec: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __n != 0 ? _M_impl.allocate(__n) : 0; } 210f0: 48 83 7d f0 00 cmpq $0x0,-0x10(%rbp) 210f5: 74 1a je 21111 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm+0x31> 210f7: 48 8b 45 f8 mov -0x8(%rbp),%rax 210fb: 48 8b 4d f0 mov -0x10(%rbp),%rcx 210ff: ba 00 00 00 00 mov $0x0,%edx 21104: 48 89 ce mov %rcx,%rsi 21107: 48 89 c7 mov %rax,%rdi 2110a: e8 f1 1f ff ff callq 13100 <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv@plt> 2110f: eb 05 jmp 21116 <_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm+0x36> 21111: b8 00 00 00 00 mov $0x0,%eax 21116: c9 leaveq 21117: c3 retq 0000000000021118 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv>: public: typedef _Alloc allocator_type; _Tp_alloc_type& _M_get_Tp_allocator() 21118: 55 push %rbp 21119: 48 89 e5 mov %rsp,%rbp 2111c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 21120: 48 8b 45 f8 mov -0x8(%rbp),%rax 21124: 5d pop %rbp 21125: c3 retq 0000000000021126 <_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, 21126: 55 push %rbp 21127: 48 89 e5 mov %rsp,%rbp 2112a: 48 83 ec 20 sub $0x20,%rsp 2112e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21132: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21136: 48 89 55 e8 mov %rdx,-0x18(%rbp) 2113a: 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); 2113e: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21142: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21146: 48 8b 75 f0 mov -0x10(%rbp),%rsi 2114a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2114e: 48 89 c7 mov %rax,%rdi 21151: e8 ba 2c ff ff callq 13e10 <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E@plt> } 21156: c9 leaveq 21157: c3 retq 0000000000021158 <_ZN9__gnu_cxx13new_allocatorISsE7destroyEPSs>: construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } 21158: 55 push %rbp 21159: 48 89 e5 mov %rsp,%rbp 2115c: 48 83 ec 10 sub $0x10,%rsp 21160: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21164: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21168: 48 8b 45 f0 mov -0x10(%rbp),%rax 2116c: 48 89 c7 mov %rax,%rdi 2116f: e8 cc 1c ff ff callq 12e40 <_ZNSsD1Ev@plt> 21174: c9 leaveq 21175: c3 retq 0000000000021176 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E>: __alloc.destroy(std::__addressof(*__first)); } template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last, 21176: 55 push %rbp 21177: 48 89 e5 mov %rsp,%rbp 2117a: 48 83 ec 20 sub $0x20,%rsp 2117e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21182: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21186: 48 89 55 e8 mov %rdx,-0x18(%rbp) allocator<_Tp>&) { _Destroy(__first, __last); 2118a: 48 8b 55 f0 mov -0x10(%rbp),%rdx 2118e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21192: 48 89 d6 mov %rdx,%rsi 21195: 48 89 c7 mov %rax,%rdi 21198: e8 e3 2e ff ff callq 14080 <_ZSt8_DestroyIPSsEvT_S1_@plt> } 2119d: c9 leaveq 2119e: c3 retq 2119f: 90 nop 00000000000211a0 <_ZNSaISt13_Rb_tree_nodeIP11XLogHandlerEEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 211a0: 55 push %rbp 211a1: 48 89 e5 mov %rsp,%rbp 211a4: 48 83 ec 10 sub $0x10,%rsp 211a8: 48 89 7d f8 mov %rdi,-0x8(%rbp) 211ac: 48 8b 45 f8 mov -0x8(%rbp),%rax 211b0: 48 89 c7 mov %rax,%rdi 211b3: e8 98 1a ff ff callq 12c50 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC2Ev@plt> 211b8: c9 leaveq 211b9: c3 retq 00000000000211ba <_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) 211ba: 55 push %rbp 211bb: 48 89 e5 mov %rsp,%rbp 211be: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 211c2: 48 8b 45 f8 mov -0x8(%rbp),%rax 211c6: 48 83 c0 20 add $0x20,%rax 211ca: 5d pop %rbp 211cb: c3 retq 00000000000211cc <_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) 211cc: 55 push %rbp 211cd: 48 89 e5 mov %rsp,%rbp 211d0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 211d4: 48 8b 45 f8 mov -0x8(%rbp),%rax 211d8: 48 83 c0 20 add $0x20,%rax 211dc: 5d pop %rbp 211dd: c3 retq 00000000000211de <_ZNSaISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC1Ev>: 211de: 55 push %rbp 211df: 48 89 e5 mov %rsp,%rbp 211e2: 48 83 ec 10 sub $0x10,%rsp 211e6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 211ea: 48 8b 45 f8 mov -0x8(%rbp),%rax 211ee: 48 89 c7 mov %rax,%rdi 211f1: e8 9a 1a ff ff callq 12c90 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC2Ev@plt> 211f6: c9 leaveq 211f7: c3 retq 00000000000211f8 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13_Rb_tree_implIS8_Lb0EE13_M_initializeEv>: _M_node_count(0) { _M_initialize(); } private: void _M_initialize() 211f8: 55 push %rbp 211f9: 48 89 e5 mov %rsp,%rbp 211fc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { this->_M_header._M_color = _S_red; 21200: 48 8b 45 f8 mov -0x8(%rbp),%rax 21204: c7 40 08 00 00 00 00 movl $0x0,0x8(%rax) this->_M_header._M_parent = 0; 2120b: 48 8b 45 f8 mov -0x8(%rbp),%rax 2120f: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) 21216: 00 this->_M_header._M_left = &this->_M_header; 21217: 48 8b 45 f8 mov -0x8(%rbp),%rax 2121b: 48 8d 50 08 lea 0x8(%rax),%rdx 2121f: 48 8b 45 f8 mov -0x8(%rbp),%rax 21223: 48 89 50 18 mov %rdx,0x18(%rax) this->_M_header._M_right = &this->_M_header; 21227: 48 8b 45 f8 mov -0x8(%rbp),%rax 2122b: 48 8d 50 08 lea 0x8(%rax),%rdx 2122f: 48 8b 45 f8 mov -0x8(%rbp),%rax 21233: 48 89 50 20 mov %rdx,0x20(%rax) } 21237: 5d pop %rbp 21238: c3 retq 21239: 90 nop 000000000002123a <_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 2123a: 55 push %rbp 2123b: 48 89 e5 mov %rsp,%rbp 2123e: 48 83 ec 10 sub $0x10,%rsp 21242: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21246: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return allocator_type(_M_get_Node_allocator()); } 2124a: 48 8b 45 f0 mov -0x10(%rbp),%rax 2124e: 48 89 c7 mov %rax,%rdi 21251: e8 4a 28 ff ff callq 13aa0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE21_M_get_Node_allocatorEv@plt> 21256: 48 89 c2 mov %rax,%rdx 21259: 48 8b 45 f8 mov -0x8(%rbp),%rax 2125d: 48 89 d6 mov %rdx,%rsi 21260: 48 89 c7 mov %rax,%rdi 21263: e8 c8 18 ff ff callq 12b30 <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E@plt> 21268: 48 8b 45 f8 mov -0x8(%rbp),%rax 2126c: c9 leaveq 2126d: c3 retq 000000000002126e <_ZNSaISt4pairIKSsP4XLogEED1Ev>: : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } 2126e: 55 push %rbp 2126f: 48 89 e5 mov %rsp,%rbp 21272: 48 83 ec 10 sub $0x10,%rsp 21276: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2127a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2127e: 48 89 c7 mov %rax,%rdi 21281: e8 7a 13 ff ff callq 12600 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED2Ev@plt> 21286: c9 leaveq 21287: c3 retq 0000000000021288 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 21288: 55 push %rbp 21289: 48 89 e5 mov %rsp,%rbp 2128c: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 21290: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21294: 5d pop %rbp 21295: c3 retq 0000000000021296 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE7destroyEPS5_>: 21296: 55 push %rbp 21297: 48 89 e5 mov %rsp,%rbp 2129a: 48 83 ec 10 sub $0x10,%rsp 2129e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 212a2: 48 89 75 f0 mov %rsi,-0x10(%rbp) 212a6: 48 8b 45 f0 mov -0x10(%rbp),%rax 212aa: 48 89 c7 mov %rax,%rdi 212ad: e8 ae 15 ff ff callq 12860 <_ZNSt4pairIKSsP4XLogED1Ev@plt> 212b2: c9 leaveq 212b3: c3 retq 00000000000212b4 <_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) 212b4: 55 push %rbp 212b5: 48 89 e5 mov %rsp,%rbp 212b8: 48 83 ec 10 sub $0x10,%rsp 212bc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 212c0: 48 89 75 f0 mov %rsi,-0x10(%rbp) { _M_impl._Node_allocator::deallocate(__p, 1); } 212c4: 48 8b 45 f8 mov -0x8(%rbp),%rax 212c8: 48 8b 4d f0 mov -0x10(%rbp),%rcx 212cc: ba 01 00 00 00 mov $0x1,%edx 212d1: 48 89 ce mov %rcx,%rsi 212d4: 48 89 c7 mov %rax,%rdi 212d7: e8 64 24 ff ff callq 13740 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE10deallocateEPS7_m@plt> 212dc: c9 leaveq 212dd: c3 retq 00000000000212de <_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) 212de: 55 push %rbp 212df: 48 89 e5 mov %rsp,%rbp 212e2: 48 83 ec 20 sub $0x20,%rsp 212e6: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return _KeyOfValue()(_S_value(__x)); } 212ea: 48 8b 45 e8 mov -0x18(%rbp),%rax 212ee: 48 89 c7 mov %rax,%rdi 212f1: e8 7a 10 ff ff callq 12370 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_valueEPKSt13_Rb_tree_nodeIS4_E@plt> 212f6: 48 89 c2 mov %rax,%rdx 212f9: 48 8d 45 ff lea -0x1(%rbp),%rax 212fd: 48 89 d6 mov %rdx,%rsi 21300: 48 89 c7 mov %rax,%rdi 21303: e8 08 11 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 21308: c9 leaveq 21309: c3 retq 000000000002130a <_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) 2130a: 55 push %rbp 2130b: 48 89 e5 mov %rsp,%rbp 2130e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } 21312: 48 8b 45 f8 mov -0x8(%rbp),%rax 21316: 48 83 c0 20 add $0x20,%rax 2131a: 5d pop %rbp 2131b: c3 retq 000000000002131c <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_>: typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const 2131c: 55 push %rbp 2131d: 48 89 e5 mov %rsp,%rbp 21320: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21324: 48 89 75 f0 mov %rsi,-0x10(%rbp) { return __x.first; } 21328: 48 8b 45 f0 mov -0x10(%rbp),%rax 2132c: 5d pop %rbp 2132d: c3 retq 000000000002132e <_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() 2132e: 55 push %rbp 2132f: 48 89 e5 mov %rsp,%rbp 21332: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_right; } 21336: 48 8b 45 f8 mov -0x8(%rbp),%rax 2133a: 48 83 c0 20 add $0x20,%rax 2133e: 5d pop %rbp 2133f: c3 retq 0000000000021340 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE4sizeEv>: bool empty() const { return _M_impl._M_node_count == 0; } size_type size() const 21340: 55 push %rbp 21341: 48 89 e5 mov %rsp,%rbp 21344: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._M_node_count; } 21348: 48 8b 45 f8 mov -0x8(%rbp),%rax 2134c: 48 8b 40 28 mov 0x28(%rax),%rax 21350: 5d pop %rbp 21351: c3 retq 0000000000021352 <_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>:: 21352: 55 push %rbp 21353: 48 89 e5 mov %rsp,%rbp 21356: 53 push %rbx 21357: 48 83 ec 48 sub $0x48,%rsp 2135b: 48 89 7d c8 mov %rdi,-0x38(%rbp) 2135f: 48 89 75 c0 mov %rsi,-0x40(%rbp) 21363: 48 89 55 b8 mov %rdx,-0x48(%rbp) 21367: 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))); 2136b: 48 83 7d c0 00 cmpq $0x0,-0x40(%rbp) 21370: 75 4d jne 213bf <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x6d> 21372: 48 8b 45 c8 mov -0x38(%rbp),%rax 21376: 48 89 c7 mov %rax,%rdi 21379: e8 12 10 ff ff callq 12390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 2137e: 48 3b 45 b8 cmp -0x48(%rbp),%rax 21382: 74 3b je 213bf <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x6d> 21384: 48 8b 45 b8 mov -0x48(%rbp),%rax 21388: 48 89 c7 mov %rax,%rdi 2138b: e8 90 1c ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 21390: 48 89 c3 mov %rax,%rbx 21393: 48 8b 55 b0 mov -0x50(%rbp),%rdx 21397: 48 8d 45 ee lea -0x12(%rbp),%rax 2139b: 48 89 d6 mov %rdx,%rsi 2139e: 48 89 c7 mov %rax,%rdi 213a1: e8 6a 10 ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 213a6: 48 89 c1 mov %rax,%rcx 213a9: 48 8b 45 c8 mov -0x38(%rbp),%rax 213ad: 48 89 da mov %rbx,%rdx 213b0: 48 89 ce mov %rcx,%rsi 213b3: 48 89 c7 mov %rax,%rdi 213b6: e8 c5 10 ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 213bb: 84 c0 test %al,%al 213bd: 74 07 je 213c6 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x74> 213bf: b8 01 00 00 00 mov $0x1,%eax 213c4: eb 05 jmp 213cb <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_+0x79> 213c6: b8 00 00 00 00 mov $0x0,%eax 213cb: 88 45 ef mov %al,-0x11(%rbp) _Link_type __z = _M_create_node(_GLIBCXX_FORWARD(_Arg, __v)); 213ce: 48 8b 55 b0 mov -0x50(%rbp),%rdx 213d2: 48 8b 45 c8 mov -0x38(%rbp),%rax 213d6: 48 89 d6 mov %rdx,%rsi 213d9: 48 89 c7 mov %rax,%rdi 213dc: e8 ef 21 ff ff callq 135d0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_@plt> 213e1: 48 89 45 e0 mov %rax,-0x20(%rbp) _Rb_tree_insert_and_rebalance(__insert_left, __z, 213e5: 48 8b 45 c8 mov -0x38(%rbp),%rax 213e9: 48 8d 48 08 lea 0x8(%rax),%rcx 213ed: 0f b6 45 ef movzbl -0x11(%rbp),%eax 213f1: 48 8b 55 b8 mov -0x48(%rbp),%rdx 213f5: 48 8b 75 e0 mov -0x20(%rbp),%rsi 213f9: 89 c7 mov %eax,%edi 213fb: e8 40 24 ff ff callq 13840 <_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; 21400: 48 8b 45 c8 mov -0x38(%rbp),%rax 21404: 48 8b 40 28 mov 0x28(%rax),%rax 21408: 48 8d 50 01 lea 0x1(%rax),%rdx 2140c: 48 8b 45 c8 mov -0x38(%rbp),%rax 21410: 48 89 50 28 mov %rdx,0x28(%rax) return iterator(__z); 21414: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21418: 48 8d 45 d0 lea -0x30(%rbp),%rax 2141c: 48 89 d6 mov %rdx,%rsi 2141f: 48 89 c7 mov %rax,%rdi 21422: e8 89 10 ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 21427: 48 8b 45 d0 mov -0x30(%rbp),%rax } 2142b: 48 83 c4 48 add $0x48,%rsp 2142f: 5b pop %rbx 21430: 5d pop %rbp 21431: c3 retq 0000000000021432 <_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>:: 21432: 55 push %rbp 21433: 48 89 e5 mov %rsp,%rbp 21436: 53 push %rbx 21437: 48 81 ec b8 00 00 00 sub $0xb8,%rsp 2143e: 48 89 bd 58 ff ff ff mov %rdi,-0xa8(%rbp) 21445: 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(); 2144c: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21453: 48 89 c7 mov %rax,%rdi 21456: e8 b5 11 ff ff callq 12610 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_M_beginEv@plt> 2145b: 48 89 45 d8 mov %rax,-0x28(%rbp) _Link_type __y = _M_end(); 2145f: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21466: 48 89 c7 mov %rax,%rdi 21469: e8 22 0f ff ff callq 12390 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_M_endEv@plt> 2146e: 48 89 45 e0 mov %rax,-0x20(%rbp) bool __comp = true; 21472: c6 45 ef 01 movb $0x1,-0x11(%rbp) while (__x != 0) 21476: eb 6c jmp 214e4 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xb2> { __y = __x; 21478: 48 8b 45 d8 mov -0x28(%rbp),%rax 2147c: 48 89 45 e0 mov %rax,-0x20(%rbp) __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); 21480: 48 8b 45 d8 mov -0x28(%rbp),%rax 21484: 48 89 c7 mov %rax,%rdi 21487: e8 14 1d ff ff callq 131a0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt13_Rb_tree_nodeIS4_E@plt> 2148c: 48 89 c3 mov %rax,%rbx 2148f: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 21496: 48 8d 45 ea lea -0x16(%rbp),%rax 2149a: 48 89 d6 mov %rdx,%rsi 2149d: 48 89 c7 mov %rax,%rdi 214a0: e8 6b 0f ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 214a5: 48 89 c1 mov %rax,%rcx 214a8: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 214af: 48 89 da mov %rbx,%rdx 214b2: 48 89 ce mov %rcx,%rsi 214b5: 48 89 c7 mov %rax,%rdi 214b8: e8 c3 0f ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 214bd: 88 45 ef mov %al,-0x11(%rbp) __x = __comp ? _S_left(__x) : _S_right(__x); 214c0: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 214c4: 74 0e je 214d4 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xa2> 214c6: 48 8b 45 d8 mov -0x28(%rbp),%rax 214ca: 48 89 c7 mov %rax,%rdi 214cd: e8 ae 23 ff ff callq 13880 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE7_S_leftEPSt18_Rb_tree_node_base@plt> 214d2: eb 0c jmp 214e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0xae> 214d4: 48 8b 45 d8 mov -0x28(%rbp),%rax 214d8: 48 89 c7 mov %rax,%rdi 214db: e8 00 11 ff ff callq 125e0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE8_S_rightEPSt18_Rb_tree_node_base@plt> 214e0: 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) 214e4: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 214e9: 0f 95 c0 setne %al 214ec: 84 c0 test %al,%al 214ee: 75 88 jne 21478 <_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); 214f0: 48 8b 55 e0 mov -0x20(%rbp),%rdx 214f4: 48 8d 45 a0 lea -0x60(%rbp),%rax 214f8: 48 89 d6 mov %rdx,%rsi 214fb: 48 89 c7 mov %rax,%rdi 214fe: e8 ad 0f ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> if (__comp) 21503: 80 7d ef 00 cmpb $0x0,-0x11(%rbp) 21507: 0f 84 91 00 00 00 je 2159e <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x16c> { if (__j == begin()) 2150d: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21514: 48 89 c7 mov %rax,%rdi 21517: e8 a4 16 ff ff callq 12bc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE5beginEv@plt> 2151c: 48 89 45 b0 mov %rax,-0x50(%rbp) 21520: 48 8d 55 b0 lea -0x50(%rbp),%rdx 21524: 48 8d 45 a0 lea -0x60(%rbp),%rax 21528: 48 89 d6 mov %rdx,%rsi 2152b: 48 89 c7 mov %rax,%rdi 2152e: e8 7d 0e ff ff callq 123b0 <_ZNKSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEeqERKS5_@plt> 21533: 84 c0 test %al,%al 21535: 74 5b je 21592 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x160> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 21537: c6 45 eb 01 movb $0x1,-0x15(%rbp) 2153b: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 21542: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21546: 48 8b 75 d8 mov -0x28(%rbp),%rsi 2154a: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 21551: 48 89 c7 mov %rax,%rdi 21554: e8 67 18 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21559: 48 89 45 c0 mov %rax,-0x40(%rbp) 2155d: 48 8d 55 eb lea -0x15(%rbp),%rdx 21561: 48 8d 4d c0 lea -0x40(%rbp),%rcx 21565: 48 8d 85 60 ff ff ff lea -0xa0(%rbp),%rax 2156c: 48 89 ce mov %rcx,%rsi 2156f: 48 89 c7 mov %rax,%rdi 21572: e8 79 1a ff ff callq 12ff0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 21577: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax 2157e: 48 89 45 90 mov %rax,-0x70(%rbp) 21582: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax 21589: 48 89 45 98 mov %rax,-0x68(%rbp) 2158d: e9 d0 00 00 00 jmpq 21662 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x230> else --__j; 21592: 48 8d 45 a0 lea -0x60(%rbp),%rax 21596: 48 89 c7 mov %rax,%rdi 21599: e8 62 0f ff ff callq 12500 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv@plt> } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) 2159e: 48 8b 95 50 ff ff ff mov -0xb0(%rbp),%rdx 215a5: 48 8d 45 ec lea -0x14(%rbp),%rax 215a9: 48 89 d6 mov %rdx,%rsi 215ac: 48 89 c7 mov %rax,%rdi 215af: e8 5c 0e ff ff callq 12410 <_ZNKSt10_Select1stISt4pairIKSsP4XLogEEclERKS4_@plt> 215b4: 48 89 c3 mov %rax,%rbx 215b7: 48 8b 45 a0 mov -0x60(%rbp),%rax 215bb: 48 89 c7 mov %rax,%rdi 215be: e8 5d 1a ff ff callq 13020 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE6_S_keyEPKSt18_Rb_tree_node_base@plt> 215c3: 48 89 c1 mov %rax,%rcx 215c6: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 215cd: 48 89 da mov %rbx,%rdx 215d0: 48 89 ce mov %rcx,%rsi 215d3: 48 89 c7 mov %rax,%rdi 215d6: e8 a5 0e ff ff callq 12480 <_ZNKSt4lessISsEclERKSsS2_@plt> 215db: 84 c0 test %al,%al 215dd: 74 58 je 21637 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x205> return pair (_M_insert_(__x, __y, _GLIBCXX_FORWARD(_Arg, __v)), true); 215df: c6 45 ed 01 movb $0x1,-0x13(%rbp) 215e3: 48 8b 8d 50 ff ff ff mov -0xb0(%rbp),%rcx 215ea: 48 8b 55 e0 mov -0x20(%rbp),%rdx 215ee: 48 8b 75 d8 mov -0x28(%rbp),%rsi 215f2: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax 215f9: 48 89 c7 mov %rax,%rdi 215fc: e8 bf 17 ff ff callq 12dc0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE10_M_insert_EPKSt18_Rb_tree_node_baseSD_RKS4_@plt> 21601: 48 89 45 d0 mov %rax,-0x30(%rbp) 21605: 48 8d 55 ed lea -0x13(%rbp),%rdx 21609: 48 8d 4d d0 lea -0x30(%rbp),%rcx 2160d: 48 8d 85 70 ff ff ff lea -0x90(%rbp),%rax 21614: 48 89 ce mov %rcx,%rsi 21617: 48 89 c7 mov %rax,%rdi 2161a: e8 d1 19 ff ff callq 12ff0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 2161f: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax 21626: 48 89 45 90 mov %rax,-0x70(%rbp) 2162a: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax 21631: 48 89 45 98 mov %rax,-0x68(%rbp) 21635: eb 2b jmp 21662 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE16_M_insert_uniqueERKS4_+0x230> return pair(__j, false); 21637: c6 45 ee 00 movb $0x0,-0x12(%rbp) 2163b: 48 8d 55 ee lea -0x12(%rbp),%rdx 2163f: 48 8d 4d a0 lea -0x60(%rbp),%rcx 21643: 48 8d 45 80 lea -0x80(%rbp),%rax 21647: 48 89 ce mov %rcx,%rsi 2164a: 48 89 c7 mov %rax,%rdi 2164d: e8 9e 19 ff ff callq 12ff0 <_ZNSt4pairISt17_Rb_tree_iteratorIS_IKSsP4XLogEEbEC1ERKS5_RKb@plt> 21652: 48 8b 45 80 mov -0x80(%rbp),%rax 21656: 48 89 45 90 mov %rax,-0x70(%rbp) 2165a: 48 8b 45 88 mov -0x78(%rbp),%rax 2165e: 48 89 45 98 mov %rax,-0x68(%rbp) 21662: 48 8b 45 90 mov -0x70(%rbp),%rax 21666: 8b 55 98 mov -0x68(%rbp),%edx } 21669: 48 81 c4 b8 00 00 00 add $0xb8,%rsp 21670: 5b pop %rbx 21671: 5d pop %rbp 21672: c3 retq 21673: 90 nop 0000000000021674 <_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() 21674: 55 push %rbp 21675: 48 89 e5 mov %rsp,%rbp 21678: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return this->_M_impl._M_header._M_left; } 2167c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21680: 48 83 c0 18 add $0x18,%rax 21684: 5d pop %rbp 21685: c3 retq 0000000000021686 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 21686: 55 push %rbp 21687: 48 89 e5 mov %rsp,%rbp 2168a: 48 83 ec 10 sub $0x10,%rsp 2168e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 21692: 48 8b 45 f8 mov -0x8(%rbp),%rax 21696: 48 8b 00 mov (%rax),%rax 21699: 48 89 c7 mov %rax,%rdi 2169c: e8 ff 0d ff ff callq 124a0 <_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@plt> 216a1: 48 8b 55 f8 mov -0x8(%rbp),%rdx 216a5: 48 89 02 mov %rax,(%rdx) return *this; 216a8: 48 8b 45 f8 mov -0x8(%rbp),%rax } 216ac: c9 leaveq 216ad: c3 retq 00000000000216ae <_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) 216ae: 55 push %rbp 216af: 48 89 e5 mov %rsp,%rbp 216b2: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return static_cast<_Const_Link_type>(__x->_M_right); } 216b6: 48 8b 45 f8 mov -0x8(%rbp),%rax 216ba: 48 8b 40 18 mov 0x18(%rax),%rax 216be: 5d pop %rbp 216bf: c3 retq 00000000000216c0 <_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsP4XLogEEppEv>: operator->() const { return std::__addressof(static_cast<_Link_type> (_M_node)->_M_value_field); } _Self& operator++() 216c0: 55 push %rbp 216c1: 48 89 e5 mov %rsp,%rbp 216c4: 48 83 ec 10 sub $0x10,%rsp 216c8: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_increment(_M_node); 216cc: 48 8b 45 f8 mov -0x8(%rbp),%rax 216d0: 48 8b 00 mov (%rax),%rax 216d3: 48 89 c7 mov %rax,%rdi 216d6: e8 65 1b ff ff callq 13240 <_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@plt> 216db: 48 8b 55 f8 mov -0x8(%rbp),%rdx 216df: 48 89 02 mov %rax,(%rdx) return *this; 216e2: 48 8b 45 f8 mov -0x8(%rbp),%rax } 216e6: c9 leaveq 216e7: c3 retq 00000000000216e8 <_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 216e8: 55 push %rbp 216e9: 48 89 e5 mov %rsp,%rbp 216ec: 48 83 ec 20 sub $0x20,%rsp 216f0: 48 89 7d e8 mov %rdi,-0x18(%rbp) { return iterator(static_cast (const_cast(_M_node))); } 216f4: 48 8b 45 e8 mov -0x18(%rbp),%rax 216f8: 48 8b 10 mov (%rax),%rdx 216fb: 48 8d 45 f0 lea -0x10(%rbp),%rax 216ff: 48 89 d6 mov %rdx,%rsi 21702: 48 89 c7 mov %rax,%rdi 21705: e8 a6 0d ff ff callq 124b0 <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEC1EPSt13_Rb_tree_nodeIS4_E@plt> 2170a: 48 8b 45 f0 mov -0x10(%rbp),%rax 2170e: c9 leaveq 2170f: c3 retq 0000000000021710 <_ZNSaISsEC1Ev>: template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } 21710: 55 push %rbp 21711: 48 89 e5 mov %rsp,%rbp 21714: 48 83 ec 10 sub $0x10,%rsp 21718: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2171c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21720: 48 89 c7 mov %rax,%rdi 21723: e8 38 29 ff ff callq 14060 <_ZN9__gnu_cxx13new_allocatorISsEC2Ev@plt> 21728: c9 leaveq 21729: c3 retq 000000000002172a <_ZN9__gnu_cxx13new_allocatorISsED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 2172a: 55 push %rbp 2172b: 48 89 e5 mov %rsp,%rbp 2172e: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21732: 5d pop %rbp 21733: c3 retq 0000000000021734 <_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) 21734: 55 push %rbp 21735: 48 89 e5 mov %rsp,%rbp 21738: 48 83 ec 20 sub $0x20,%rsp 2173c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21740: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21744: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 21748: 48 8b 45 f0 mov -0x10(%rbp),%rax 2174c: 48 89 c7 mov %rax,%rdi 2174f: e8 ec 0f ff ff callq 12740 <_ZdlPv@plt> 21754: c9 leaveq 21755: c3 retq 0000000000021756 <_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) 21756: 55 push %rbp 21757: 48 89 e5 mov %rsp,%rbp 2175a: 48 83 ec 10 sub $0x10,%rsp 2175e: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::_Miter_base<_Iterator>::_S_base(__it); } 21762: 48 8b 45 f8 mov -0x8(%rbp),%rax 21766: 48 89 c7 mov %rax,%rdi 21769: e8 22 19 ff ff callq 13090 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt> 2176e: c9 leaveq 2176f: c3 retq 0000000000021770 <_ZSt23__copy_move_backward_a2ILb0EPSsS0_ET1_T0_S2_S1_>: __result); } template inline _BI2 __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 21770: 55 push %rbp 21771: 48 89 e5 mov %rsp,%rbp 21774: 41 54 push %r12 21776: 53 push %rbx 21777: 48 83 ec 20 sub $0x20,%rsp 2177b: 48 89 7d e8 mov %rdi,-0x18(%rbp) 2177f: 48 89 75 e0 mov %rsi,-0x20(%rbp) 21783: 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))); 21787: 48 8b 45 d8 mov -0x28(%rbp),%rax 2178b: 48 89 c7 mov %rax,%rdi 2178e: e8 1d 1f ff ff callq 136b0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 21793: 49 89 c4 mov %rax,%r12 21796: 48 8b 45 e0 mov -0x20(%rbp),%rax 2179a: 48 89 c7 mov %rax,%rdi 2179d: e8 0e 1f ff ff callq 136b0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 217a2: 48 89 c3 mov %rax,%rbx 217a5: 48 8b 45 e8 mov -0x18(%rbp),%rax 217a9: 48 89 c7 mov %rax,%rdi 217ac: e8 ff 1e ff ff callq 136b0 <_ZSt12__niter_baseIPSsENSt11_Niter_baseIT_E13iterator_typeES2_@plt> 217b1: 4c 89 e2 mov %r12,%rdx 217b4: 48 89 de mov %rbx,%rsi 217b7: 48 89 c7 mov %rax,%rdi 217ba: e8 a1 1a ff ff callq 13260 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_@plt> } 217bf: 48 83 c4 20 add $0x20,%rsp 217c3: 5b pop %rbx 217c4: 41 5c pop %r12 217c6: 5d pop %rbp 217c7: c3 retq 00000000000217c8 <_ZNKSt6vectorISsSaISsEE4sizeEv>: #endif // [23.2.4.2] capacity /** Returns the number of elements in the %vector. */ size_type size() const 217c8: 55 push %rbp 217c9: 48 89 e5 mov %rsp,%rbp 217cc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 217d0: 48 8b 45 f8 mov -0x8(%rbp),%rax 217d4: 48 8b 40 08 mov 0x8(%rax),%rax 217d8: 48 89 c2 mov %rax,%rdx 217db: 48 8b 45 f8 mov -0x8(%rbp),%rax 217df: 48 8b 00 mov (%rax),%rax 217e2: 48 89 d1 mov %rdx,%rcx 217e5: 48 29 c1 sub %rax,%rcx 217e8: 48 89 c8 mov %rcx,%rax 217eb: 48 c1 f8 03 sar $0x3,%rax 217ef: 5d pop %rbp 217f0: c3 retq 217f1: 90 nop 00000000000217f2 <_ZNKSt6vectorISsSaISsEE8max_sizeEv>: /** Returns the size() of the largest possible %vector. */ size_type max_size() const 217f2: 55 push %rbp 217f3: 48 89 e5 mov %rsp,%rbp 217f6: 48 83 ec 10 sub $0x10,%rsp 217fa: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_get_Tp_allocator().max_size(); } 217fe: 48 8b 45 f8 mov -0x8(%rbp),%rax 21802: 48 89 c7 mov %rax,%rdi 21805: e8 e6 11 ff ff callq 129f0 <_ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 2180a: 48 89 c7 mov %rax,%rdi 2180d: e8 ee 20 ff ff callq 13900 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt> 21812: c9 leaveq 21813: c3 retq 0000000000021814 <_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) 21814: 55 push %rbp 21815: 48 89 e5 mov %rsp,%rbp 21818: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2181c: 48 89 75 f0 mov %rsi,-0x10(%rbp) { // concept requirements __glibcxx_function_requires(_LessThanComparableConcept<_Tp>) //return __a < __b ? __b : __a; if (__a < __b) 21820: 48 8b 45 f8 mov -0x8(%rbp),%rax 21824: 48 8b 10 mov (%rax),%rdx 21827: 48 8b 45 f0 mov -0x10(%rbp),%rax 2182b: 48 8b 00 mov (%rax),%rax 2182e: 48 39 c2 cmp %rax,%rdx 21831: 73 06 jae 21839 <_ZSt3maxImERKT_S2_S2_+0x25> return __b; 21833: 48 8b 45 f0 mov -0x10(%rbp),%rax 21837: eb 04 jmp 2183d <_ZSt3maxImERKT_S2_S2_+0x29> return __a; 21839: 48 8b 45 f8 mov -0x8(%rbp),%rax } 2183d: 5d pop %rbp 2183e: c3 retq 2183f: 90 nop 0000000000021840 <_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) 21840: 55 push %rbp 21841: 48 89 e5 mov %rsp,%rbp 21844: 48 83 ec 20 sub $0x20,%rsp 21848: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2184c: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21850: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 21854: 48 8b 45 f8 mov -0x8(%rbp),%rax 21858: 48 89 c7 mov %rax,%rdi 2185b: e8 a0 20 ff ff callq 13900 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv@plt> 21860: 48 3b 45 f0 cmp -0x10(%rbp),%rax 21864: 0f 92 c0 setb %al 21867: 84 c0 test %al,%al 21869: 74 05 je 21870 <_ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 2186b: e8 f0 23 ff ff callq 13c60 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 21870: 48 8b 45 f0 mov -0x10(%rbp),%rax 21874: 48 c1 e0 03 shl $0x3,%rax 21878: 48 89 c7 mov %rax,%rdi 2187b: e8 90 26 ff ff callq 13f10 <_Znwm@plt> } 21880: c9 leaveq 21881: c3 retq 0000000000021882 <_ZSt22__uninitialized_copy_aIPSsS0_SsET0_T_S2_S1_RSaIT1_E>: } } template inline _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 21882: 55 push %rbp 21883: 48 89 e5 mov %rsp,%rbp 21886: 48 83 ec 20 sub $0x20,%rsp 2188a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2188e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21892: 48 89 55 e8 mov %rdx,-0x18(%rbp) 21896: 48 89 4d e0 mov %rcx,-0x20(%rbp) _ForwardIterator __result, allocator<_Tp>&) { return std::uninitialized_copy(__first, __last, __result); } 2189a: 48 8b 55 e8 mov -0x18(%rbp),%rdx 2189e: 48 8b 4d f0 mov -0x10(%rbp),%rcx 218a2: 48 8b 45 f8 mov -0x8(%rbp),%rax 218a6: 48 89 ce mov %rcx,%rsi 218a9: 48 89 c7 mov %rax,%rdi 218ac: e8 af 0a ff ff callq 12360 <_ZSt18uninitialized_copyIPSsS0_ET0_T_S2_S1_@plt> 218b1: c9 leaveq 218b2: c3 retq 00000000000218b3 <_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) 218b3: 55 push %rbp 218b4: 48 89 e5 mov %rsp,%rbp 218b7: 48 83 ec 10 sub $0x10,%rsp 218bb: 48 89 7d f8 mov %rdi,-0x8(%rbp) 218bf: 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)>:: 218c3: 48 8b 55 f0 mov -0x10(%rbp),%rdx 218c7: 48 8b 45 f8 mov -0x8(%rbp),%rax 218cb: 48 89 d6 mov %rdx,%rsi 218ce: 48 89 c7 mov %rax,%rdi 218d1: e8 1a 19 ff ff callq 131f0 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_@plt> __destroy(__first, __last); } 218d6: c9 leaveq 218d7: c3 retq 00000000000218d8 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIP11XLogHandlerEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 218d8: 55 push %rbp 218d9: 48 89 e5 mov %rsp,%rbp 218dc: 48 89 7d f8 mov %rdi,-0x8(%rbp) 218e0: 5d pop %rbp 218e1: c3 retq 00000000000218e2 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEEC1Ev>: 218e2: 55 push %rbp 218e3: 48 89 e5 mov %rsp,%rbp 218e6: 48 89 7d f8 mov %rdi,-0x8(%rbp) 218ea: 5d pop %rbp 218eb: c3 retq 00000000000218ec <_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 218ec: 55 push %rbp 218ed: 48 89 e5 mov %rsp,%rbp 218f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 218f4: 48 8b 45 f8 mov -0x8(%rbp),%rax 218f8: 5d pop %rbp 218f9: c3 retq 00000000000218fa <_ZNSaISt4pairIKSsP4XLogEEC1ISt13_Rb_tree_nodeIS3_EEERKSaIT_E>: allocator(const allocator& __a) throw() : __glibcxx_base_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } 218fa: 55 push %rbp 218fb: 48 89 e5 mov %rsp,%rbp 218fe: 48 83 ec 10 sub $0x10,%rsp 21902: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21906: 48 89 75 f0 mov %rsi,-0x10(%rbp) 2190a: 48 8b 45 f8 mov -0x8(%rbp),%rax 2190e: 48 89 c7 mov %rax,%rdi 21911: e8 da 27 ff ff callq 140f0 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC2Ev@plt> 21916: c9 leaveq 21917: c3 retq 0000000000021918 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEED1Ev>: new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } 21918: 55 push %rbp 21919: 48 89 e5 mov %rsp,%rbp 2191c: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21920: 5d pop %rbp 21921: c3 retq 0000000000021922 <_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) 21922: 55 push %rbp 21923: 48 89 e5 mov %rsp,%rbp 21926: 48 83 ec 20 sub $0x20,%rsp 2192a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 2192e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21932: 48 89 55 e8 mov %rdx,-0x18(%rbp) { ::operator delete(__p); } 21936: 48 8b 45 f0 mov -0x10(%rbp),%rax 2193a: 48 89 c7 mov %rax,%rdi 2193d: e8 fe 0d ff ff callq 12740 <_ZdlPv@plt> 21942: c9 leaveq 21943: c3 retq 0000000000021944 <_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) 21944: 55 push %rbp 21945: 48 89 e5 mov %rsp,%rbp 21948: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __x->_M_value_field; } 2194c: 48 8b 45 f8 mov -0x8(%rbp),%rax 21950: 48 83 c0 20 add $0x20,%rax 21954: 5d pop %rbp 21955: c3 retq 0000000000021956 <_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) 21956: 55 push %rbp 21957: 48 89 e5 mov %rsp,%rbp 2195a: 53 push %rbx 2195b: 48 83 ec 28 sub $0x28,%rsp 2195f: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21963: 48 89 75 d0 mov %rsi,-0x30(%rbp) { _Link_type __tmp = _M_get_node(); 21967: 48 8b 45 d8 mov -0x28(%rbp),%rax 2196b: 48 89 c7 mov %rax,%rdi 2196e: e8 2d 23 ff ff callq 13ca0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_get_nodeEv@plt> 21973: 48 89 45 e0 mov %rax,-0x20(%rbp) __try { get_allocator().construct 21977: 48 8b 45 e0 mov -0x20(%rbp),%rax 2197b: 48 83 c0 20 add $0x20,%rax 2197f: 48 89 c7 mov %rax,%rdi 21982: e8 09 1b ff ff callq 13490 <_ZSt11__addressofISt4pairIKSsP4XLogEEPT_RS5_@plt> 21987: 48 89 c3 mov %rax,%rbx 2198a: 48 8d 45 ef lea -0x11(%rbp),%rax 2198e: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21992: 48 89 d6 mov %rdx,%rsi 21995: 48 89 c7 mov %rax,%rdi 21998: e8 03 11 ff ff callq 12aa0 <_ZNKSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE13get_allocatorEv@plt> 2199d: 48 8b 55 d0 mov -0x30(%rbp),%rdx 219a1: 48 8d 45 ef lea -0x11(%rbp),%rax 219a5: 48 89 de mov %rbx,%rsi 219a8: 48 89 c7 mov %rax,%rdi 219ab: e8 c0 16 ff ff callq 13070 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_@plt> 219b0: 48 8d 45 ef lea -0x11(%rbp),%rax 219b4: 48 89 c7 mov %rax,%rdi 219b7: e8 24 1a ff ff callq 133e0 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> __catch(...) { _M_put_node(__tmp); __throw_exception_again; } return __tmp; 219bc: 48 8b 45 e0 mov -0x20(%rbp),%rax } 219c0: 48 83 c4 28 add $0x28,%rsp 219c4: 5b pop %rbx 219c5: 5d pop %rbp 219c6: c3 retq 219c7: 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 219ca: 48 8d 45 ef lea -0x11(%rbp),%rax 219ce: 48 89 c7 mov %rax,%rdi 219d1: e8 0a 1a ff ff callq 133e0 <_ZNSaISt4pairIKSsP4XLogEED1Ev@plt> 219d6: 48 89 d8 mov %rbx,%rax 219d9: eb 13 jmp 219ee <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE14_M_create_nodeERKS4_+0x98> 219db: 48 89 c3 mov %rax,%rbx (std::__addressof(__tmp->_M_value_field), __x); } __catch(...) 219de: e8 5d 22 ff ff callq 13c40 <__cxa_end_catch@plt> 219e3: 48 89 d8 mov %rbx,%rax 219e6: 48 89 c7 mov %rax,%rdi 219e9: e8 32 25 ff ff callq 13f20 <_Unwind_Resume@plt> 219ee: 48 89 c7 mov %rax,%rdi 219f1: e8 7a 23 ff ff callq 13d70 <__cxa_begin_catch@plt> { _M_put_node(__tmp); 219f6: 48 8b 55 e0 mov -0x20(%rbp),%rdx 219fa: 48 8b 45 d8 mov -0x28(%rbp),%rax 219fe: 48 89 d6 mov %rdx,%rsi 21a01: 48 89 c7 mov %rax,%rdi 21a04: e8 b7 1b ff ff callq 135c0 <_ZNSt8_Rb_treeISsSt4pairIKSsP4XLogESt10_Select1stIS4_ESt4lessISsESaIS4_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS4_E@plt> __throw_exception_again; 21a09: e8 42 0e ff ff callq 12850 <__cxa_rethrow@plt> 0000000000021a0e <_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) 21a0e: 55 push %rbp 21a0f: 48 89 e5 mov %rsp,%rbp 21a12: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a16: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21a1a: 48 89 55 e8 mov %rdx,-0x18(%rbp) : first(__a), second(__b) { } 21a1e: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a22: 48 8b 55 f0 mov -0x10(%rbp),%rdx 21a26: 48 8b 12 mov (%rdx),%rdx 21a29: 48 89 10 mov %rdx,(%rax) 21a2c: 48 8b 45 e8 mov -0x18(%rbp),%rax 21a30: 0f b6 10 movzbl (%rax),%edx 21a33: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a37: 88 50 08 mov %dl,0x8(%rax) 21a3a: 5d pop %rbp 21a3b: c3 retq 0000000000021a3c <_ZNSt17_Rb_tree_iteratorISt4pairIKSsP4XLogEEmmEv>: _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() 21a3c: 55 push %rbp 21a3d: 48 89 e5 mov %rsp,%rbp 21a40: 48 83 ec 10 sub $0x10,%rsp 21a44: 48 89 7d f8 mov %rdi,-0x8(%rbp) { _M_node = _Rb_tree_decrement(_M_node); 21a48: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a4c: 48 8b 00 mov (%rax),%rax 21a4f: 48 89 c7 mov %rax,%rdi 21a52: e8 f9 0f ff ff callq 12a50 <_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@plt> 21a57: 48 8b 55 f8 mov -0x8(%rbp),%rdx 21a5b: 48 89 02 mov %rax,(%rdx) return *this; 21a5e: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21a62: c9 leaveq 21a63: c3 retq 0000000000021a64 <_ZN9__gnu_cxx13new_allocatorISsEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 21a64: 55 push %rbp 21a65: 48 89 e5 mov %rsp,%rbp 21a68: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21a6c: 5d pop %rbp 21a6d: c3 retq 0000000000021a6e <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_>: // untouched template struct _Iter_base { typedef _Iterator iterator_type; static iterator_type _S_base(_Iterator __it) 21a6e: 55 push %rbp 21a6f: 48 89 e5 mov %rsp,%rbp 21a72: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return __it; } 21a76: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a7a: 5d pop %rbp 21a7b: c3 retq 0000000000021a7c <_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) 21a7c: 55 push %rbp 21a7d: 48 89 e5 mov %rsp,%rbp 21a80: 48 83 ec 10 sub $0x10,%rsp 21a84: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return std::_Niter_base<_Iterator>::_S_base(__it); } 21a88: 48 8b 45 f8 mov -0x8(%rbp),%rax 21a8c: 48 89 c7 mov %rax,%rdi 21a8f: e8 fc 15 ff ff callq 13090 <_ZNSt10_Iter_baseIPSsLb0EE7_S_baseES0_@plt> 21a94: c9 leaveq 21a95: c3 retq 0000000000021a96 <_ZSt22__copy_move_backward_aILb0EPSsS0_ET1_T0_S2_S1_>: } }; template inline _BI2 __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 21a96: 55 push %rbp 21a97: 48 89 e5 mov %rsp,%rbp 21a9a: 48 83 ec 30 sub $0x30,%rsp 21a9e: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21aa2: 48 89 75 e0 mov %rsi,-0x20(%rbp) 21aa6: 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); 21aaa: c6 45 ff 00 movb $0x0,-0x1(%rbp) return std::__copy_move_backward<_IsMove, __simple, _Category>::__copy_move_b(__first, __last, __result); 21aae: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21ab2: 48 8b 4d e0 mov -0x20(%rbp),%rcx 21ab6: 48 8b 45 e8 mov -0x18(%rbp),%rax 21aba: 48 89 ce mov %rcx,%rsi 21abd: 48 89 c7 mov %rax,%rdi 21ac0: e8 4b 1d ff ff callq 13810 <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_@plt> } 21ac5: c9 leaveq 21ac6: c3 retq 21ac7: 90 nop 0000000000021ac8 <_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 21ac8: 55 push %rbp 21ac9: 48 89 e5 mov %rsp,%rbp 21acc: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return *static_cast(&this->_M_impl); } 21ad0: 48 8b 45 f8 mov -0x8(%rbp),%rax 21ad4: 5d pop %rbp 21ad5: c3 retq 0000000000021ad6 <_ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 21ad6: 55 push %rbp 21ad7: 48 89 e5 mov %rsp,%rbp 21ada: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 21ade: 48 b8 ff ff ff ff ff movabs $0x1fffffffffffffff,%rax 21ae5: ff ff 1f 21ae8: 5d pop %rbp 21ae9: c3 retq 0000000000021aea <_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, 21aea: 55 push %rbp 21aeb: 48 89 e5 mov %rsp,%rbp 21aee: 48 83 ec 20 sub $0x20,%rsp 21af2: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21af6: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21afa: 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); 21afe: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21b02: 48 8b 4d f0 mov -0x10(%rbp),%rcx 21b06: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b0a: 48 89 ce mov %rcx,%rsi 21b0d: 48 89 c7 mov %rax,%rdi 21b10: e8 7b 22 ff ff callq 13d90 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_@plt> } 21b15: c9 leaveq 21b16: c3 retq 0000000000021b17 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_>: template struct _Destroy_aux { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) 21b17: 55 push %rbp 21b18: 48 89 e5 mov %rsp,%rbp 21b1b: 48 83 ec 10 sub $0x10,%rsp 21b1f: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b23: 48 89 75 f0 mov %rsi,-0x10(%rbp) { for (; __first != __last; ++__first) 21b27: eb 19 jmp 21b42 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_+0x2b> std::_Destroy(std::__addressof(*__first)); 21b29: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b2d: 48 89 c7 mov %rax,%rdi 21b30: e8 8b 09 ff ff callq 124c0 <_ZSt11__addressofISsEPT_RS0_@plt> 21b35: 48 89 c7 mov %rax,%rdi 21b38: e8 03 0e ff ff callq 12940 <_ZSt8_DestroyISsEvPT_@plt> { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) 21b3d: 48 83 45 f8 08 addq $0x8,-0x8(%rbp) 21b42: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b46: 48 3b 45 f0 cmp -0x10(%rbp),%rax 21b4a: 0f 95 c0 setne %al 21b4d: 84 c0 test %al,%al 21b4f: 75 d8 jne 21b29 <_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_+0x12> std::_Destroy(std::__addressof(*__first)); } 21b51: c9 leaveq 21b52: c3 retq 21b53: 90 nop 0000000000021b54 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEEC1Ev>: template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } 21b54: 55 push %rbp 21b55: 48 89 e5 mov %rsp,%rbp 21b58: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b5c: 5d pop %rbp 21b5d: c3 retq 0000000000021b5e <_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() 21b5e: 55 push %rbp 21b5f: 48 89 e5 mov %rsp,%rbp 21b62: 48 83 ec 10 sub $0x10,%rsp 21b66: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return _M_impl._Node_allocator::allocate(1); } 21b6a: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b6e: ba 00 00 00 00 mov $0x0,%edx 21b73: be 01 00 00 00 mov $0x1,%esi 21b78: 48 89 c7 mov %rax,%rdi 21b7b: e8 b0 19 ff ff callq 13530 <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv@plt> 21b80: c9 leaveq 21b81: c3 retq 0000000000021b82 <_ZNSt4pairIKSsP4XLogEC1ERKS3_>: struct _Index_tuple; #endif /// Struct holding two objects of arbitrary type. template struct pair 21b82: 55 push %rbp 21b83: 48 89 e5 mov %rsp,%rbp 21b86: 48 83 ec 10 sub $0x10,%rsp 21b8a: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21b8e: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21b92: 48 8b 55 f0 mov -0x10(%rbp),%rdx 21b96: 48 8b 45 f8 mov -0x8(%rbp),%rax 21b9a: 48 89 d6 mov %rdx,%rsi 21b9d: 48 89 c7 mov %rax,%rdi 21ba0: e8 6b 0f ff ff callq 12b10 <_ZNSsC1ERKSs@plt> 21ba5: 48 8b 45 f0 mov -0x10(%rbp),%rax 21ba9: 48 8b 50 08 mov 0x8(%rax),%rdx 21bad: 48 8b 45 f8 mov -0x8(%rbp),%rax 21bb1: 48 89 50 08 mov %rdx,0x8(%rax) 21bb5: c9 leaveq 21bb6: c3 retq 21bb7: 90 nop 0000000000021bb8 <_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) 21bb8: 55 push %rbp 21bb9: 48 89 e5 mov %rsp,%rbp 21bbc: 41 55 push %r13 21bbe: 41 54 push %r12 21bc0: 53 push %rbx 21bc1: 48 83 ec 28 sub $0x28,%rsp 21bc5: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21bc9: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21bcd: 48 89 55 c8 mov %rdx,-0x38(%rbp) { ::new((void *)__p) _Tp(__val); } 21bd1: 4c 8b 65 d0 mov -0x30(%rbp),%r12 21bd5: 4c 89 e6 mov %r12,%rsi 21bd8: bf 10 00 00 00 mov $0x10,%edi 21bdd: e8 9e 0f ff ff callq 12b80 <_ZnwmPv@plt> 21be2: 48 89 c3 mov %rax,%rbx 21be5: 48 85 db test %rbx,%rbx 21be8: 74 2a je 21c14 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_+0x5c> 21bea: 48 8b 45 c8 mov -0x38(%rbp),%rax 21bee: 48 89 c6 mov %rax,%rsi 21bf1: 48 89 df mov %rbx,%rdi 21bf4: e8 c7 0e ff ff callq 12ac0 <_ZNSt4pairIKSsP4XLogEC1ERKS3_@plt> 21bf9: eb 19 jmp 21c14 <_ZN9__gnu_cxx13new_allocatorISt4pairIKSsP4XLogEE9constructEPS5_RKS5_+0x5c> 21bfb: 49 89 c5 mov %rax,%r13 21bfe: 4c 89 e6 mov %r12,%rsi 21c01: 48 89 df mov %rbx,%rdi 21c04: e8 e7 21 ff ff callq 13df0 <_ZdlPvS_@plt> 21c09: 4c 89 e8 mov %r13,%rax 21c0c: 48 89 c7 mov %rax,%rdi 21c0f: e8 0c 23 ff ff callq 13f20 <_Unwind_Resume@plt> 21c14: 48 83 c4 28 add $0x28,%rsp 21c18: 5b pop %rbx 21c19: 41 5c pop %r12 21c1b: 41 5d pop %r13 21c1d: 5d pop %rbp 21c1e: c3 retq 0000000000021c1f <_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) 21c1f: 55 push %rbp 21c20: 48 89 e5 mov %rsp,%rbp 21c23: 48 83 ec 30 sub $0x30,%rsp 21c27: 48 89 7d e8 mov %rdi,-0x18(%rbp) 21c2b: 48 89 75 e0 mov %rsi,-0x20(%rbp) 21c2f: 48 89 55 d8 mov %rdx,-0x28(%rbp) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) 21c33: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21c37: 48 8b 45 e8 mov -0x18(%rbp),%rax 21c3b: 48 89 d1 mov %rdx,%rcx 21c3e: 48 29 c1 sub %rax,%rcx 21c41: 48 89 c8 mov %rcx,%rax 21c44: 48 c1 f8 03 sar $0x3,%rax 21c48: 48 89 45 f8 mov %rax,-0x8(%rbp) 21c4c: eb 22 jmp 21c70 <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_+0x51> *--__result = *--__last; 21c4e: 48 83 6d e0 08 subq $0x8,-0x20(%rbp) 21c53: 48 83 6d d8 08 subq $0x8,-0x28(%rbp) 21c58: 48 8b 55 e0 mov -0x20(%rbp),%rdx 21c5c: 48 8b 45 d8 mov -0x28(%rbp),%rax 21c60: 48 89 d6 mov %rdx,%rsi 21c63: 48 89 c7 mov %rax,%rdi 21c66: e8 c5 23 ff ff callq 14030 <_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) 21c6b: 48 83 6d f8 01 subq $0x1,-0x8(%rbp) 21c70: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) 21c75: 0f 9f c0 setg %al 21c78: 84 c0 test %al,%al 21c7a: 75 d2 jne 21c4e <_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSsS3_EET0_T_S5_S4_+0x2f> *--__result = *--__last; return __result; 21c7c: 48 8b 45 d8 mov -0x28(%rbp),%rax } 21c80: c9 leaveq 21c81: c3 retq 0000000000021c82 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_>: template struct __uninitialized_copy { template static _ForwardIterator __uninit_copy(_InputIterator __first, _InputIterator __last, 21c82: 55 push %rbp 21c83: 48 89 e5 mov %rsp,%rbp 21c86: 53 push %rbx 21c87: 48 83 ec 38 sub $0x38,%rsp 21c8b: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21c8f: 48 89 75 d0 mov %rsi,-0x30(%rbp) 21c93: 48 89 55 c8 mov %rdx,-0x38(%rbp) _ForwardIterator __result) { _ForwardIterator __cur = __result; 21c97: 48 8b 45 c8 mov -0x38(%rbp),%rax 21c9b: 48 89 45 e8 mov %rax,-0x18(%rbp) __try { for (; __first != __last; ++__first, ++__cur) 21c9f: eb 25 jmp 21cc6 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_+0x44> std::_Construct(std::__addressof(*__cur), *__first); 21ca1: 48 8b 45 e8 mov -0x18(%rbp),%rax 21ca5: 48 89 c7 mov %rax,%rdi 21ca8: e8 13 08 ff ff callq 124c0 <_ZSt11__addressofISsEPT_RS0_@plt> 21cad: 48 8b 55 d8 mov -0x28(%rbp),%rdx 21cb1: 48 89 d6 mov %rdx,%rsi 21cb4: 48 89 c7 mov %rax,%rdi 21cb7: e8 44 07 ff ff callq 12400 <_ZSt10_ConstructISsSsEvPT_RKT0_@plt> _ForwardIterator __result) { _ForwardIterator __cur = __result; __try { for (; __first != __last; ++__first, ++__cur) 21cbc: 48 83 45 d8 08 addq $0x8,-0x28(%rbp) 21cc1: 48 83 45 e8 08 addq $0x8,-0x18(%rbp) 21cc6: 48 8b 45 d8 mov -0x28(%rbp),%rax 21cca: 48 3b 45 d0 cmp -0x30(%rbp),%rax 21cce: 0f 95 c0 setne %al 21cd1: 84 c0 test %al,%al 21cd3: 75 cc jne 21ca1 <_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSsS2_EET0_T_S4_S3_+0x1f> std::_Construct(std::__addressof(*__cur), *__first); return __cur; 21cd5: 48 8b 45 e8 mov -0x18(%rbp),%rax __catch(...) { std::_Destroy(__result, __cur); __throw_exception_again; } } 21cd9: 48 83 c4 38 add $0x38,%rsp 21cdd: 5b pop %rbx 21cde: 5d pop %rbp 21cdf: c3 retq 21ce0: 48 89 c3 mov %rax,%rbx { for (; __first != __last; ++__first, ++__cur) std::_Construct(std::__addressof(*__cur), *__first); return __cur; } __catch(...) 21ce3: e8 58 1f ff ff callq 13c40 <__cxa_end_catch@plt> 21ce8: 48 89 d8 mov %rbx,%rax 21ceb: 48 89 c7 mov %rax,%rdi 21cee: e8 2d 22 ff ff callq 13f20 <_Unwind_Resume@plt> 21cf3: 48 89 c7 mov %rax,%rdi 21cf6: e8 75 20 ff ff callq 13d70 <__cxa_begin_catch@plt> { std::_Destroy(__result, __cur); 21cfb: 48 8b 55 e8 mov -0x18(%rbp),%rdx 21cff: 48 8b 45 c8 mov -0x38(%rbp),%rax 21d03: 48 89 d6 mov %rdx,%rsi 21d06: 48 89 c7 mov %rax,%rdi 21d09: e8 72 23 ff ff callq 14080 <_ZSt8_DestroyIPSsEvT_S1_@plt> __throw_exception_again; 21d0e: e8 3d 0b ff ff callq 12850 <__cxa_rethrow@plt> 0000000000021d13 <_ZSt11__addressofISsEPT_RS0_>: _GLIBCXX_BEGIN_NAMESPACE_VERSION // Used, in C++03 mode too, by allocators, etc. template inline _Tp* __addressof(_Tp& __r) 21d13: 55 push %rbp 21d14: 48 89 e5 mov %rsp,%rbp 21d17: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); 21d1b: 48 8b 45 f8 mov -0x8(%rbp),%rax } 21d1f: 5d pop %rbp 21d20: c3 retq 0000000000021d21 <_ZSt8_DestroyISsEvPT_>: /** * Destroy the object pointed to by a pointer type. */ template inline void _Destroy(_Tp* __pointer) 21d21: 55 push %rbp 21d22: 48 89 e5 mov %rsp,%rbp 21d25: 48 83 ec 10 sub $0x10,%rsp 21d29: 48 89 7d f8 mov %rdi,-0x8(%rbp) { __pointer->~_Tp(); } 21d2d: 48 8b 45 f8 mov -0x8(%rbp),%rax 21d31: 48 89 c7 mov %rax,%rdi 21d34: e8 07 11 ff ff callq 12e40 <_ZNSsD1Ev@plt> 21d39: c9 leaveq 21d3a: c3 retq 21d3b: 90 nop 0000000000021d3c <_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) 21d3c: 55 push %rbp 21d3d: 48 89 e5 mov %rsp,%rbp 21d40: 48 83 ec 20 sub $0x20,%rsp 21d44: 48 89 7d f8 mov %rdi,-0x8(%rbp) 21d48: 48 89 75 f0 mov %rsi,-0x10(%rbp) 21d4c: 48 89 55 e8 mov %rdx,-0x18(%rbp) { if (__n > this->max_size()) 21d50: 48 8b 45 f8 mov -0x8(%rbp),%rax 21d54: 48 89 c7 mov %rax,%rdi 21d57: e8 84 11 ff ff callq 12ee0 <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv@plt> 21d5c: 48 3b 45 f0 cmp -0x10(%rbp),%rax 21d60: 0f 92 c0 setb %al 21d63: 84 c0 test %al,%al 21d65: 74 05 je 21d6c <_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8allocateEmPKv+0x30> std::__throw_bad_alloc(); 21d67: e8 f4 1e ff ff callq 13c60 <_ZSt17__throw_bad_allocv@plt> return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 21d6c: 48 8b 55 f0 mov -0x10(%rbp),%rdx 21d70: 48 89 d0 mov %rdx,%rax 21d73: 48 01 c0 add %rax,%rax 21d76: 48 01 d0 add %rdx,%rax 21d79: 48 c1 e0 04 shl $0x4,%rax 21d7d: 48 89 c7 mov %rax,%rdi 21d80: e8 8b 21 ff ff callq 13f10 <_Znwm@plt> } 21d85: c9 leaveq 21d86: c3 retq 0000000000021d87 <_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) 21d87: 55 push %rbp 21d88: 48 89 e5 mov %rsp,%rbp 21d8b: 41 55 push %r13 21d8d: 41 54 push %r12 21d8f: 53 push %rbx 21d90: 48 83 ec 18 sub $0x18,%rsp 21d94: 48 89 7d d8 mov %rdi,-0x28(%rbp) 21d98: 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); 21d9c: 4c 8b 65 d8 mov -0x28(%rbp),%r12 21da0: 4c 89 e6 mov %r12,%rsi 21da3: bf 08 00 00 00 mov $0x8,%edi 21da8: e8 d3 0d ff ff callq 12b80 <_ZnwmPv@plt> 21dad: 48 89 c3 mov %rax,%rbx 21db0: 48 85 db test %rbx,%rbx 21db3: 74 2a je 21ddf <_ZSt10_ConstructISsSsEvPT_RKT0_+0x58> 21db5: 48 8b 45 d0 mov -0x30(%rbp),%rax 21db9: 48 89 c6 mov %rax,%rsi 21dbc: 48 89 df mov %rbx,%rdi 21dbf: e8 4c 0d ff ff callq 12b10 <_ZNSsC1ERKSs@plt> } 21dc4: eb 19 jmp 21ddf <_ZSt10_ConstructISsSsEvPT_RKT0_+0x58> 21dc6: 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); 21dc9: 4c 89 e6 mov %r12,%rsi 21dcc: 48 89 df mov %rbx,%rdi 21dcf: e8 1c 20 ff ff callq 13df0 <_ZdlPvS_@plt> 21dd4: 4c 89 e8 mov %r13,%rax 21dd7: 48 89 c7 mov %rax,%rdi 21dda: e8 41 21 ff ff callq 13f20 <_Unwind_Resume@plt> } 21ddf: 48 83 c4 18 add $0x18,%rsp 21de3: 5b pop %rbx 21de4: 41 5c pop %r12 21de6: 41 5d pop %r13 21de8: 5d pop %rbp 21de9: c3 retq 0000000000021dea <_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsP4XLogEEE8max_sizeEv>: void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() 21dea: 55 push %rbp 21deb: 48 89 e5 mov %rsp,%rbp 21dee: 48 89 7d f8 mov %rdi,-0x8(%rbp) { return size_t(-1) / sizeof(_Tp); } 21df2: 48 b8 55 55 55 55 55 movabs $0x555555555555555,%rax 21df9: 55 55 05 21dfc: 5d pop %rbp 21dfd: c3 retq 0000000000021dfe <_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() 21dfe: 55 push %rbp 21dff: 48 89 e5 mov %rsp,%rbp 21e02: 53 push %rbx 21e03: 48 83 ec 18 sub $0x18,%rsp 21e07: 48 89 7d e8 mov %rdi,-0x18(%rbp) { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 21e0b: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e0f: 48 89 c7 mov %rax,%rdi 21e12: e8 b9 0a ff ff callq 128d0 <_ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv@plt> 21e17: 48 89 c2 mov %rax,%rdx 21e1a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e1e: 48 8b 48 08 mov 0x8(%rax),%rcx 21e22: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e26: 48 8b 00 mov (%rax),%rax 21e29: 48 89 ce mov %rcx,%rsi 21e2c: 48 89 c7 mov %rax,%rdi 21e2f: e8 9c 09 ff ff callq 127d0 <_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E@plt> _M_get_Tp_allocator()); } 21e34: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e38: 48 89 c7 mov %rax,%rdi 21e3b: e8 b0 04 ff ff callq 122f0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt> 21e40: 48 83 c4 18 add $0x18,%rsp 21e44: 5b pop %rbx 21e45: 5d pop %rbp 21e46: c3 retq 21e47: 48 89 c3 mov %rax,%rbx 21e4a: 48 8b 45 e8 mov -0x18(%rbp),%rax 21e4e: 48 89 c7 mov %rax,%rdi 21e51: e8 9a 04 ff ff callq 122f0 <_ZNSt12_Vector_baseISsSaISsEED2Ev@plt> 21e56: 48 89 d8 mov %rbx,%rax 21e59: 48 89 c7 mov %rax,%rdi 21e5c: e8 bf 20 ff ff callq 13f20 <_Unwind_Resume@plt> 21e61: 90 nop 21e62: 90 nop 21e63: 90 nop 21e64: 90 nop 21e65: 90 nop 21e66: 90 nop 21e67: 90 nop 21e68: 90 nop 21e69: 90 nop 21e6a: 90 nop 21e6b: 90 nop 21e6c: 90 nop 21e6d: 90 nop 21e6e: 90 nop 21e6f: 90 nop 0000000000021e70 <__stat>: 21e70: 48 89 f2 mov %rsi,%rdx 21e73: 48 89 fe mov %rdi,%rsi 21e76: bf 01 00 00 00 mov $0x1,%edi 21e7b: e9 30 11 ff ff jmpq 12fb0 <__xstat@plt> 0000000000021e80 <__do_global_ctors_aux>: 21e80: 55 push %rbp 21e81: 48 89 e5 mov %rsp,%rbp 21e84: 53 push %rbx 21e85: 48 83 ec 08 sub $0x8,%rsp 21e89: 48 8b 05 30 5c 20 00 mov 0x205c30(%rip),%rax # 227ac0 <__CTOR_LIST__> 21e90: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 21e94: 74 19 je 21eaf <__do_global_ctors_aux+0x2f> 21e96: 48 8d 1d 23 5c 20 00 lea 0x205c23(%rip),%rbx # 227ac0 <__CTOR_LIST__> 21e9d: 0f 1f 00 nopl (%rax) 21ea0: 48 83 eb 08 sub $0x8,%rbx 21ea4: ff d0 callq *%rax 21ea6: 48 8b 03 mov (%rbx),%rax 21ea9: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 21ead: 75 f1 jne 21ea0 <__do_global_ctors_aux+0x20> 21eaf: 48 83 c4 08 add $0x8,%rsp 21eb3: 5b pop %rbx 21eb4: 5d pop %rbp 21eb5: c3 retq 21eb6: 90 nop 21eb7: 90 nop Disassembly of section .fini: 0000000000021eb8 <_fini>: 21eb8: 48 83 ec 08 sub $0x8,%rsp 21ebc: e8 8f 22 ff ff callq 14150 <__do_global_dtors_aux> 21ec1: 48 83 c4 08 add $0x8,%rsp 21ec5: c3 retq