Dump of assembler code for function JSON_parse_string: 1387 { => 0x00007fffefe25330 <+0>: push %rbx 0x00007fffefe25331 <+1>: sub $0x40,%rsp 0x00007fffefe25335 <+5>: mov %rdi,0x18(%rsp) 0x00007fffefe2533a <+10>: mov %rsi,0x10(%rsp) 0x00007fffefe2533f <+15>: mov %rdx,0x8(%rsp) 0x00007fffefe25344 <+20>: mov %rcx,(%rsp) 1388 int cs = EVIL; 0x00007fffefe25348 <+24>: movl $0x666,0x24(%rsp) 1389 VALUE match_string; 1390 1391 *result = rb_str_buf_new(0); 0x00007fffefe25350 <+32>: mov $0x0,%edi 0x00007fffefe25355 <+37>: callq 0x7fffefe242a0 0x00007fffefe2535a <+42>: mov %rax,%rdx 0x00007fffefe2535d <+45>: mov (%rsp),%rax 0x00007fffefe25361 <+49>: mov %rdx,(%rax) 1392 1393 1394 { 1395 cs = JSON_string_start; 0x00007fffefe25364 <+52>: mov 0x485e(%rip),%eax # 0x7fffefe29bc8 0x00007fffefe2536a <+58>: mov %eax,0x24(%rsp) 1396 } 1397 1398 1399 json->memo = p; 0x00007fffefe2536e <+62>: mov 0x18(%rsp),%rax 0x00007fffefe25373 <+67>: mov 0x10(%rsp),%rdx 0x00007fffefe25378 <+72>: mov %rdx,0x18(%rax) 1400 1401 1402 { 1403 if ( p == pe ) 0x00007fffefe2537c <+76>: mov 0x10(%rsp),%rax 0x00007fffefe25381 <+81>: cmp 0x8(%rsp),%rax 0x00007fffefe25386 <+86>: je 0x7fffefe25732 1404 goto _test_eof; 0x00007fffefe25732 <+1026>: nop 1405 switch ( cs ) 0x00007fffefe2538c <+92>: cmpl $0x8,0x24(%rsp) 0x00007fffefe25391 <+97>: ja 0x7fffefe256f0 0x00007fffefe25397 <+103>: mov 0x24(%rsp),%eax 0x00007fffefe2539b <+107>: lea 0x0(,%rax,4),%rdx 0x00007fffefe253a3 <+115>: lea 0x3ac2(%rip),%rax # 0x7fffefe28e6c 0x00007fffefe253aa <+122>: mov (%rdx,%rax,1),%eax 0x00007fffefe253ad <+125>: movslq %eax,%rdx 0x00007fffefe253b0 <+128>: lea 0x3ab5(%rip),%rax # 0x7fffefe28e6c 0x00007fffefe253b7 <+135>: add %rdx,%rax 0x00007fffefe253ba <+138>: jmpq *%rax 1406 { 1407 case 1: 1408 if ( (*p) == 34 ) 0x00007fffefe253bc <+140>: mov 0x10(%rsp),%rax 0x00007fffefe253c1 <+145>: movzbl (%rax),%eax 0x00007fffefe253c4 <+148>: cmp $0x22,%al 0x00007fffefe253c6 <+150>: je 0x7fffefe253e4 1409 goto st2; 0x00007fffefe253e4 <+180>: nop 0x00007fffefe253e5 <+181>: jmp 0x7fffefe253ee 1410 goto st0; 0x00007fffefe253c8 <+152>: jmp 0x7fffefe253d7 1411 st0: 1412 cs = 0; 0x00007fffefe253d7 <+167>: movl $0x0,0x24(%rsp) 1413 goto _out; 0x00007fffefe253df <+175>: jmpq 0x7fffefe25733 1414 st2: 1415 if ( ++p == pe ) 0x00007fffefe253ee <+190>: addq $0x1,0x10(%rsp) 0x00007fffefe253f4 <+196>: mov 0x10(%rsp),%rax 0x00007fffefe253f9 <+201>: cmp 0x8(%rsp),%rax 0x00007fffefe253fe <+206>: je 0x7fffefe256ef 1416 goto _test_eof2; 0x00007fffefe256ef <+959>: nop 1417 case 2: 1418 switch( (*p) ) { 0x00007fffefe25404 <+212>: mov 0x10(%rsp),%rax 0x00007fffefe25409 <+217>: movzbl (%rax),%eax 0x00007fffefe2540c <+220>: movsbl %al,%eax 0x00007fffefe2540f <+223>: cmp $0x22,%eax 0x00007fffefe25412 <+226>: je 0x7fffefe25437 0x00007fffefe25414 <+228>: cmp $0x5c,%eax 0x00007fffefe25417 <+231>: je 0x7fffefe254d1 1419 case 34: goto tr2; 0x00007fffefe25437 <+263>: nop 1420 case 92: goto st3; 0x00007fffefe254d1 <+417>: nop 1421 } 1422 if ( 0 <= (*p) && (*p) <= 31 ) 0x00007fffefe2541d <+237>: mov 0x10(%rsp),%rax 0x00007fffefe25422 <+242>: movzbl (%rax),%eax 0x00007fffefe25425 <+245>: test %al,%al 0x00007fffefe25427 <+247>: js 0x7fffefe253e7 0x00007fffefe25429 <+249>: mov 0x10(%rsp),%rax 0x00007fffefe2542e <+254>: movzbl (%rax),%eax 0x00007fffefe25431 <+257>: cmp $0x1f,%al 0x00007fffefe25433 <+259>: jg 0x7fffefe253e7 1423 goto st0; 0x00007fffefe25435 <+261>: jmp 0x7fffefe253d7 1424 goto st2; 0x00007fffefe253e7 <+183>: nop 0x00007fffefe253e8 <+184>: jmp 0x7fffefe253ee 1425 tr2: 1426 1427 { 1428 *result = json_string_unescape(*result, json->memo + 1, p); 0x00007fffefe25438 <+264>: mov 0x18(%rsp),%rax 0x00007fffefe2543d <+269>: mov 0x18(%rax),%rax 0x00007fffefe25441 <+273>: lea 0x1(%rax),%rcx 0x00007fffefe25445 <+277>: mov (%rsp),%rax 0x00007fffefe25449 <+281>: mov (%rax),%rax 0x00007fffefe2544c <+284>: mov 0x10(%rsp),%rdx 0x00007fffefe25451 <+289>: mov %rcx,%rsi 0x00007fffefe25454 <+292>: mov %rax,%rdi 0x00007fffefe25457 <+295>: callq 0x7fffefe25020 0x00007fffefe2545c <+300>: mov %rax,%rdx 0x00007fffefe2545f <+303>: mov (%rsp),%rax 0x00007fffefe25463 <+307>: mov %rdx,(%rax) 1429 if (NIL_P(*result)) { 0x00007fffefe25466 <+310>: mov (%rsp),%rax 0x00007fffefe2546a <+314>: mov (%rax),%rax 0x00007fffefe2546d <+317>: cmp $0x4,%rax 0x00007fffefe25471 <+321>: jne 0x7fffefe2548c 1430 p--; 0x00007fffefe25473 <+323>: subq $0x1,0x10(%rsp) 1431 {p++; cs = 8; goto _out;} 0x00007fffefe25479 <+329>: addq $0x1,0x10(%rsp) 0x00007fffefe2547f <+335>: movl $0x8,0x24(%rsp) 0x00007fffefe25487 <+343>: jmpq 0x7fffefe25733 1432 } else { 1433 FORCE_UTF8(*result); 0x00007fffefe2548c <+348>: callq 0x7fffefe24260 0x00007fffefe25491 <+353>: mov %rax,%rbx 0x00007fffefe25494 <+356>: mov (%rsp),%rax 0x00007fffefe25498 <+360>: mov (%rax),%rax 0x00007fffefe2549b <+363>: mov %rax,%rdi 0x00007fffefe2549e <+366>: callq 0x7fffefe242e0 0x00007fffefe254a3 <+371>: mov %rbx,%rsi 0x00007fffefe254a6 <+374>: mov %rax,%rdi 0x00007fffefe254a9 <+377>: callq 0x7fffefe241b0 0x00007fffefe254ae <+382>: mov %rax,%rdx 0x00007fffefe254b1 <+385>: mov (%rsp),%rax 0x00007fffefe254b5 <+389>: mov %rdx,(%rax) 1434 {p = (( p + 1))-1;} 1435 } 1436 } 1437 1438 { p--; {p++; cs = 8; goto _out;} } 0x00007fffefe254b8 <+392>: subq $0x1,0x10(%rsp) 0x00007fffefe254be <+398>: addq $0x1,0x10(%rsp) 0x00007fffefe254c4 <+404>: movl $0x8,0x24(%rsp) 0x00007fffefe254cc <+412>: jmpq 0x7fffefe25733 1439 goto st8; 1440 st8: 1441 if ( ++p == pe ) 1442 goto _test_eof8; 1443 case 8: 1444 1445 goto st0; 0x00007fffefe253ca <+154>: nop 0x00007fffefe253cb <+155>: jmp 0x7fffefe253d7 1446 st3: 1447 if ( ++p == pe ) 0x00007fffefe254d2 <+418>: addq $0x1,0x10(%rsp) 0x00007fffefe254d8 <+424>: mov 0x10(%rsp),%rax 0x00007fffefe254dd <+429>: cmp 0x8(%rsp),%rax 0x00007fffefe254e2 <+434>: je 0x7fffefe256fa 1448 goto _test_eof3; 0x00007fffefe256fa <+970>: nop 1449 case 3: 1450 if ( (*p) == 117 ) 0x00007fffefe254e8 <+440>: mov 0x10(%rsp),%rax 0x00007fffefe254ed <+445>: movzbl (%rax),%eax 0x00007fffefe254f0 <+448>: cmp $0x75,%al 0x00007fffefe254f2 <+450>: je 0x7fffefe25519 1451 goto st4; 0x00007fffefe25519 <+489>: nop 1452 if ( 0 <= (*p) && (*p) <= 31 ) 0x00007fffefe254f4 <+452>: mov 0x10(%rsp),%rax 0x00007fffefe254f9 <+457>: movzbl (%rax),%eax 0x00007fffefe254fc <+460>: test %al,%al 0x00007fffefe254fe <+462>: js 0x7fffefe253ea 0x00007fffefe25504 <+468>: mov 0x10(%rsp),%rax 0x00007fffefe25509 <+473>: movzbl (%rax),%eax 0x00007fffefe2550c <+476>: cmp $0x1f,%al 0x00007fffefe2550e <+478>: jg 0x7fffefe253ea 1453 goto st0; 0x00007fffefe25514 <+484>: jmpq 0x7fffefe253d7 1454 goto st2; 0x00007fffefe253ea <+186>: nop 0x00007fffefe253eb <+187>: jmp 0x7fffefe253ee 1455 st4: 1456 if ( ++p == pe ) 0x00007fffefe2551a <+490>: addq $0x1,0x10(%rsp) 0x00007fffefe25520 <+496>: mov 0x10(%rsp),%rax 0x00007fffefe25525 <+501>: cmp 0x8(%rsp),%rax 0x00007fffefe2552a <+506>: je 0x7fffefe25705 1457 goto _test_eof4; 0x00007fffefe25705 <+981>: nop 1458 case 4: 1459 if ( (*p) < 65 ) { 0x00007fffefe25530 <+512>: mov 0x10(%rsp),%rax 0x00007fffefe25535 <+517>: movzbl (%rax),%eax 0x00007fffefe25538 <+520>: cmp $0x40,%al 0x00007fffefe2553a <+522>: jg 0x7fffefe2555e 1460 if ( 48 <= (*p) && (*p) <= 57 ) 0x00007fffefe2553c <+524>: mov 0x10(%rsp),%rax 0x00007fffefe25541 <+529>: movzbl (%rax),%eax 0x00007fffefe25544 <+532>: cmp $0x2f,%al 0x00007fffefe25546 <+534>: jle 0x7fffefe253cd 0x00007fffefe2554c <+540>: mov 0x10(%rsp),%rax 0x00007fffefe25551 <+545>: movzbl (%rax),%eax 0x00007fffefe25554 <+548>: cmp $0x39,%al 0x00007fffefe25556 <+550>: jg 0x7fffefe253cd 1461 goto st5; 0x00007fffefe2555c <+556>: jmp 0x7fffefe2558d 1462 } else if ( (*p) > 70 ) { 0x00007fffefe2555e <+558>: mov 0x10(%rsp),%rax 0x00007fffefe25563 <+563>: movzbl (%rax),%eax 0x00007fffefe25566 <+566>: cmp $0x46,%al 0x00007fffefe25568 <+568>: jle 0x7fffefe2558c 1463 if ( 97 <= (*p) && (*p) <= 102 ) 0x00007fffefe2556a <+570>: mov 0x10(%rsp),%rax 0x00007fffefe2556f <+575>: movzbl (%rax),%eax 0x00007fffefe25572 <+578>: cmp $0x60,%al 0x00007fffefe25574 <+580>: jle 0x7fffefe253cd 0x00007fffefe2557a <+586>: mov 0x10(%rsp),%rax 0x00007fffefe2557f <+591>: movzbl (%rax),%eax 0x00007fffefe25582 <+594>: cmp $0x66,%al 0x00007fffefe25584 <+596>: jg 0x7fffefe253cd 1464 goto st5; 0x00007fffefe2558a <+602>: jmp 0x7fffefe2558d 1465 } else 1466 goto st5; 0x00007fffefe2558c <+604>: nop 1467 goto st0; 0x00007fffefe253cd <+157>: nop 0x00007fffefe253ce <+158>: jmp 0x7fffefe253d7 1468 st5: 1469 if ( ++p == pe ) 0x00007fffefe2558d <+605>: addq $0x1,0x10(%rsp) 0x00007fffefe25593 <+611>: mov 0x10(%rsp),%rax 0x00007fffefe25598 <+616>: cmp 0x8(%rsp),%rax 0x00007fffefe2559d <+621>: je 0x7fffefe25710 1470 goto _test_eof5; 0x00007fffefe25710 <+992>: nop 1471 case 5: 1472 if ( (*p) < 65 ) { 0x00007fffefe255a3 <+627>: mov 0x10(%rsp),%rax 0x00007fffefe255a8 <+632>: movzbl (%rax),%eax 0x00007fffefe255ab <+635>: cmp $0x40,%al 0x00007fffefe255ad <+637>: jg 0x7fffefe255d1 1473 if ( 48 <= (*p) && (*p) <= 57 ) 0x00007fffefe255af <+639>: mov 0x10(%rsp),%rax 0x00007fffefe255b4 <+644>: movzbl (%rax),%eax 0x00007fffefe255b7 <+647>: cmp $0x2f,%al 0x00007fffefe255b9 <+649>: jle 0x7fffefe253d0 0x00007fffefe255bf <+655>: mov 0x10(%rsp),%rax 0x00007fffefe255c4 <+660>: movzbl (%rax),%eax 0x00007fffefe255c7 <+663>: cmp $0x39,%al 0x00007fffefe255c9 <+665>: jg 0x7fffefe253d0 1474 goto st6; 0x00007fffefe255cf <+671>: jmp 0x7fffefe25600 1475 } else if ( (*p) > 70 ) { 0x00007fffefe255d1 <+673>: mov 0x10(%rsp),%rax 0x00007fffefe255d6 <+678>: movzbl (%rax),%eax 0x00007fffefe255d9 <+681>: cmp $0x46,%al 0x00007fffefe255db <+683>: jle 0x7fffefe255ff 1476 if ( 97 <= (*p) && (*p) <= 102 ) 0x00007fffefe255dd <+685>: mov 0x10(%rsp),%rax 0x00007fffefe255e2 <+690>: movzbl (%rax),%eax 0x00007fffefe255e5 <+693>: cmp $0x60,%al 0x00007fffefe255e7 <+695>: jle 0x7fffefe253d0 0x00007fffefe255ed <+701>: mov 0x10(%rsp),%rax 0x00007fffefe255f2 <+706>: movzbl (%rax),%eax 0x00007fffefe255f5 <+709>: cmp $0x66,%al 0x00007fffefe255f7 <+711>: jg 0x7fffefe253d0 1477 goto st6; 0x00007fffefe255fd <+717>: jmp 0x7fffefe25600 1478 } else 1479 goto st6; 0x00007fffefe255ff <+719>: nop 1480 goto st0; 0x00007fffefe253d0 <+160>: nop 0x00007fffefe253d1 <+161>: jmp 0x7fffefe253d7 1481 st6: 1482 if ( ++p == pe ) 0x00007fffefe25600 <+720>: addq $0x1,0x10(%rsp) 0x00007fffefe25606 <+726>: mov 0x10(%rsp),%rax 0x00007fffefe2560b <+731>: cmp 0x8(%rsp),%rax 0x00007fffefe25610 <+736>: je 0x7fffefe2571b 1483 goto _test_eof6; 0x00007fffefe2571b <+1003>: nop 1484 case 6: 1485 if ( (*p) < 65 ) { 0x00007fffefe25616 <+742>: mov 0x10(%rsp),%rax 0x00007fffefe2561b <+747>: movzbl (%rax),%eax 0x00007fffefe2561e <+750>: cmp $0x40,%al 0x00007fffefe25620 <+752>: jg 0x7fffefe25644 1486 if ( 48 <= (*p) && (*p) <= 57 ) 0x00007fffefe25622 <+754>: mov 0x10(%rsp),%rax 0x00007fffefe25627 <+759>: movzbl (%rax),%eax 0x00007fffefe2562a <+762>: cmp $0x2f,%al 0x00007fffefe2562c <+764>: jle 0x7fffefe253d3 0x00007fffefe25632 <+770>: mov 0x10(%rsp),%rax 0x00007fffefe25637 <+775>: movzbl (%rax),%eax 0x00007fffefe2563a <+778>: cmp $0x39,%al 0x00007fffefe2563c <+780>: jg 0x7fffefe253d3 1487 goto st7; 0x00007fffefe25642 <+786>: jmp 0x7fffefe25673 1488 } else if ( (*p) > 70 ) { 0x00007fffefe25644 <+788>: mov 0x10(%rsp),%rax 0x00007fffefe25649 <+793>: movzbl (%rax),%eax 0x00007fffefe2564c <+796>: cmp $0x46,%al 0x00007fffefe2564e <+798>: jle 0x7fffefe25672 1489 if ( 97 <= (*p) && (*p) <= 102 ) 0x00007fffefe25650 <+800>: mov 0x10(%rsp),%rax 0x00007fffefe25655 <+805>: movzbl (%rax),%eax 0x00007fffefe25658 <+808>: cmp $0x60,%al 0x00007fffefe2565a <+810>: jle 0x7fffefe253d3 0x00007fffefe25660 <+816>: mov 0x10(%rsp),%rax 0x00007fffefe25665 <+821>: movzbl (%rax),%eax 0x00007fffefe25668 <+824>: cmp $0x66,%al 0x00007fffefe2566a <+826>: jg 0x7fffefe253d3 1490 goto st7; 0x00007fffefe25670 <+832>: jmp 0x7fffefe25673 1491 } else 1492 goto st7; 0x00007fffefe25672 <+834>: nop 1493 goto st0; 0x00007fffefe253d3 <+163>: nop 0x00007fffefe253d4 <+164>: jmp 0x7fffefe253d7 1494 st7: 1495 if ( ++p == pe ) 0x00007fffefe25673 <+835>: addq $0x1,0x10(%rsp) 0x00007fffefe25679 <+841>: mov 0x10(%rsp),%rax 0x00007fffefe2567e <+846>: cmp 0x8(%rsp),%rax 0x00007fffefe25683 <+851>: je 0x7fffefe25726 1496 goto _test_eof7; 0x00007fffefe25726 <+1014>: nop 1497 case 7: 1498 if ( (*p) < 65 ) { 0x00007fffefe25689 <+857>: mov 0x10(%rsp),%rax 0x00007fffefe2568e <+862>: movzbl (%rax),%eax 0x00007fffefe25691 <+865>: cmp $0x40,%al 0x00007fffefe25693 <+867>: jg 0x7fffefe256ba 1499 if ( 48 <= (*p) && (*p) <= 57 ) 0x00007fffefe25695 <+869>: mov 0x10(%rsp),%rax 0x00007fffefe2569a <+874>: movzbl (%rax),%eax 0x00007fffefe2569d <+877>: cmp $0x2f,%al 0x00007fffefe2569f <+879>: jle 0x7fffefe253d6 0x00007fffefe256a5 <+885>: mov 0x10(%rsp),%rax 0x00007fffefe256aa <+890>: movzbl (%rax),%eax 0x00007fffefe256ad <+893>: cmp $0x39,%al 0x00007fffefe256af <+895>: jg 0x7fffefe253d6 1500 goto st2; 0x00007fffefe256b5 <+901>: jmpq 0x7fffefe253ee 1501 } else if ( (*p) > 70 ) { 0x00007fffefe256ba <+906>: mov 0x10(%rsp),%rax 0x00007fffefe256bf <+911>: movzbl (%rax),%eax 0x00007fffefe256c2 <+914>: cmp $0x46,%al 0x00007fffefe256c4 <+916>: jle 0x7fffefe253ed 1502 if ( 97 <= (*p) && (*p) <= 102 ) 0x00007fffefe256ca <+922>: mov 0x10(%rsp),%rax 0x00007fffefe256cf <+927>: movzbl (%rax),%eax 0x00007fffefe256d2 <+930>: cmp $0x60,%al 0x00007fffefe256d4 <+932>: jle 0x7fffefe253d6 0x00007fffefe256da <+938>: mov 0x10(%rsp),%rax 0x00007fffefe256df <+943>: movzbl (%rax),%eax 0x00007fffefe256e2 <+946>: cmp $0x66,%al 0x00007fffefe256e4 <+948>: jg 0x7fffefe253d6 1503 goto st2; 0x00007fffefe256ea <+954>: jmpq 0x7fffefe253ee 1504 } else 1505 goto st2; 0x00007fffefe253ed <+189>: nop 1506 goto st0; 0x00007fffefe253d6 <+166>: nop 1507 } 1508 _test_eof2: cs = 2; goto _test_eof; 0x00007fffefe256f0 <+960>: movl $0x2,0x24(%rsp) 0x00007fffefe256f8 <+968>: jmp 0x7fffefe25733 1509 _test_eof8: cs = 8; goto _test_eof; 1510 _test_eof3: cs = 3; goto _test_eof; 0x00007fffefe256fb <+971>: movl $0x3,0x24(%rsp) 0x00007fffefe25703 <+979>: jmp 0x7fffefe25733 1511 _test_eof4: cs = 4; goto _test_eof; 0x00007fffefe25706 <+982>: movl $0x4,0x24(%rsp) 0x00007fffefe2570e <+990>: jmp 0x7fffefe25733 1512 _test_eof5: cs = 5; goto _test_eof; 0x00007fffefe25711 <+993>: movl $0x5,0x24(%rsp) 0x00007fffefe25719 <+1001>: jmp 0x7fffefe25733 1513 _test_eof6: cs = 6; goto _test_eof; 0x00007fffefe2571c <+1004>: movl $0x6,0x24(%rsp) 0x00007fffefe25724 <+1012>: jmp 0x7fffefe25733 1514 _test_eof7: cs = 7; goto _test_eof; 0x00007fffefe25727 <+1015>: movl $0x7,0x24(%rsp) 0x00007fffefe2572f <+1023>: nop 0x00007fffefe25730 <+1024>: jmp 0x7fffefe25733 1515 1516 _test_eof: {} 1517 _out: {} 1518 } 1519 1520 1521 1522 if (json->create_additions && RTEST(match_string = json->match_string)) { 0x00007fffefe25733 <+1027>: mov 0x18(%rsp),%rax 0x00007fffefe25738 <+1032>: mov 0x50(%rax),%eax 0x00007fffefe2573b <+1035>: test %eax,%eax 0x00007fffefe2573d <+1037>: je 0x7fffefe257f9 0x00007fffefe25743 <+1043>: mov 0x18(%rsp),%rax 0x00007fffefe25748 <+1048>: mov 0x58(%rax),%rax 0x00007fffefe2574c <+1052>: mov %rax,0x28(%rsp) 0x00007fffefe25751 <+1057>: mov 0x28(%rsp),%rax 0x00007fffefe25756 <+1062>: and $0xfffffffffffffffb,%rax 0x00007fffefe2575a <+1066>: test %rax,%rax 0x00007fffefe2575d <+1069>: je 0x7fffefe257f9 1523 VALUE klass; 1524 VALUE memo = rb_ary_new2(2); 0x00007fffefe25763 <+1075>: mov $0x2,%edi 0x00007fffefe25768 <+1080>: callq 0x7fffefe24330 0x00007fffefe2576d <+1085>: mov %rax,0x30(%rsp) 1525 rb_ary_push(memo, *result); 0x00007fffefe25772 <+1090>: mov (%rsp),%rax 0x00007fffefe25776 <+1094>: mov (%rax),%rdx 0x00007fffefe25779 <+1097>: mov 0x30(%rsp),%rax 0x00007fffefe2577e <+1102>: mov %rdx,%rsi 0x00007fffefe25781 <+1105>: mov %rax,%rdi 0x00007fffefe25784 <+1108>: callq 0x7fffefe24320 1526 rb_hash_foreach(match_string, match_i, memo); 0x00007fffefe25789 <+1113>: mov 0x30(%rsp),%rdx 0x00007fffefe2578e <+1118>: mov 0x28(%rsp),%rax 0x00007fffefe25793 <+1123>: lea -0x110a(%rip),%rsi # 0x7fffefe24690 0x00007fffefe2579a <+1130>: mov %rax,%rdi 0x00007fffefe2579d <+1133>: callq 0x7fffefe242b0 1527 klass = rb_ary_entry(memo, 1); 0x00007fffefe257a2 <+1138>: mov 0x30(%rsp),%rax 0x00007fffefe257a7 <+1143>: mov $0x1,%esi 0x00007fffefe257ac <+1148>: mov %rax,%rdi 0x00007fffefe257af <+1151>: callq 0x7fffefe241a0 0x00007fffefe257b4 <+1156>: mov %rax,0x38(%rsp) 1528 if (RTEST(klass)) { 0x00007fffefe257b9 <+1161>: mov 0x38(%rsp),%rax 0x00007fffefe257be <+1166>: and $0xfffffffffffffffb,%rax 0x00007fffefe257c2 <+1170>: test %rax,%rax 0x00007fffefe257c5 <+1173>: je 0x7fffefe257f9 1529 *result = rb_funcall(klass, i_json_create, 1, *result); 0x00007fffefe257c7 <+1175>: mov (%rsp),%rax 0x00007fffefe257cb <+1179>: mov (%rax),%rdx 0x00007fffefe257ce <+1182>: mov 0x2059b3(%rip),%rsi # 0x7ffff002b188 0x00007fffefe257d5 <+1189>: mov 0x38(%rsp),%rax 0x00007fffefe257da <+1194>: mov %rdx,%rcx 0x00007fffefe257dd <+1197>: mov $0x1,%edx 0x00007fffefe257e2 <+1202>: mov %rax,%rdi 0x00007fffefe257e5 <+1205>: mov $0x0,%eax 0x00007fffefe257ea <+1210>: callq 0x7fffefe241f0 0x00007fffefe257ef <+1215>: mov %rax,%rdx 0x00007fffefe257f2 <+1218>: mov (%rsp),%rax 0x00007fffefe257f6 <+1222>: mov %rdx,(%rax) 1530 } 1531 } 1532 1533 if (json->symbolize_names && json->parsing_name) { 0x00007fffefe257f9 <+1225>: mov 0x18(%rsp),%rax 0x00007fffefe257fe <+1230>: mov 0x38(%rax),%eax 0x00007fffefe25801 <+1233>: test %eax,%eax 0x00007fffefe25803 <+1235>: je 0x7fffefe2582a 0x00007fffefe25805 <+1237>: mov 0x18(%rsp),%rax 0x00007fffefe2580a <+1242>: mov 0x34(%rax),%eax 0x00007fffefe2580d <+1245>: test %eax,%eax 0x00007fffefe2580f <+1247>: je 0x7fffefe2582a 1534 *result = rb_str_intern(*result); 0x00007fffefe25811 <+1249>: mov (%rsp),%rax 0x00007fffefe25815 <+1253>: mov (%rax),%rax 0x00007fffefe25818 <+1256>: mov %rax,%rdi 0x00007fffefe2581b <+1259>: callq 0x7fffefe243e0 0x00007fffefe25820 <+1264>: mov %rax,%rdx 0x00007fffefe25823 <+1267>: mov (%rsp),%rax 0x00007fffefe25827 <+1271>: mov %rdx,(%rax) 1535 } 1536 if (cs >= JSON_string_first_final) { 0x00007fffefe2582a <+1274>: mov 0x439c(%rip),%eax # 0x7fffefe29bcc 0x00007fffefe25830 <+1280>: cmp %eax,0x24(%rsp) 0x00007fffefe25834 <+1284>: jl 0x7fffefe25841 1537 return p + 1; 0x00007fffefe25836 <+1286>: mov 0x10(%rsp),%rax 0x00007fffefe2583b <+1291>: add $0x1,%rax 0x00007fffefe2583f <+1295>: jmp 0x7fffefe25846 1538 } else { 1539 return NULL; 0x00007fffefe25841 <+1297>: mov $0x0,%eax 1540 } 1541 } 0x00007fffefe25846 <+1302>: add $0x40,%rsp 0x00007fffefe2584a <+1306>: pop %rbx 0x00007fffefe2584b <+1307>: retq 0x00007fffefe2584c: nopl 0x0(%rax) End of assembler dump.