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 <rb_str_buf_new@plt>
   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 <JSON_string_start>
   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 <JSON_parse_string+1026>

1404			goto _test_eof;
   0x00007fffefe25732 <+1026>:	nop

1405		switch ( cs )
   0x00007fffefe2538c <+92>:	cmpl   $0x8,0x24(%rsp)
   0x00007fffefe25391 <+97>:	ja     0x7fffefe256f0 <JSON_parse_string+960>
   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 <JSON_parse_string+180>

1409			goto st2;
   0x00007fffefe253e4 <+180>:	nop
   0x00007fffefe253e5 <+181>:	jmp    0x7fffefe253ee <JSON_parse_string+190>

1410		goto st0;
   0x00007fffefe253c8 <+152>:	jmp    0x7fffefe253d7 <JSON_parse_string+167>

1411	st0:
1412	cs = 0;
   0x00007fffefe253d7 <+167>:	movl   $0x0,0x24(%rsp)

1413		goto _out;
   0x00007fffefe253df <+175>:	jmpq   0x7fffefe25733 <JSON_parse_string+1027>

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 <JSON_parse_string+959>

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 <JSON_parse_string+263>
   0x00007fffefe25414 <+228>:	cmp    $0x5c,%eax
   0x00007fffefe25417 <+231>:	je     0x7fffefe254d1 <JSON_parse_string+417>

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 <JSON_parse_string+183>
   0x00007fffefe25429 <+249>:	mov    0x10(%rsp),%rax
   0x00007fffefe2542e <+254>:	movzbl (%rax),%eax
   0x00007fffefe25431 <+257>:	cmp    $0x1f,%al
   0x00007fffefe25433 <+259>:	jg     0x7fffefe253e7 <JSON_parse_string+183>

1423			goto st0;
   0x00007fffefe25435 <+261>:	jmp    0x7fffefe253d7 <JSON_parse_string+167>

1424		goto st2;
   0x00007fffefe253e7 <+183>:	nop
   0x00007fffefe253e8 <+184>:	jmp    0x7fffefe253ee <JSON_parse_string+190>

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 <json_string_unescape>
   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 <JSON_parse_string+348>

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 <JSON_parse_string+1027>

1432	        } else {
1433	            FORCE_UTF8(*result);
   0x00007fffefe2548c <+348>:	callq  0x7fffefe24260 <rb_utf8_encoding@plt>
   0x00007fffefe25491 <+353>:	mov    %rax,%rbx
   0x00007fffefe25494 <+356>:	mov    (%rsp),%rax
   0x00007fffefe25498 <+360>:	mov    (%rax),%rax
   0x00007fffefe2549b <+363>:	mov    %rax,%rdi
   0x00007fffefe2549e <+366>:	callq  0x7fffefe242e0 <rb_str_dup@plt>
   0x00007fffefe254a3 <+371>:	mov    %rbx,%rsi
   0x00007fffefe254a6 <+374>:	mov    %rax,%rdi
   0x00007fffefe254a9 <+377>:	callq  0x7fffefe241b0 <rb_enc_associate@plt>
   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 <JSON_parse_string+1027>

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 <JSON_parse_string+167>

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 <JSON_parse_string+970>

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 <JSON_parse_string+489>

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 <JSON_parse_string+186>
   0x00007fffefe25504 <+468>:	mov    0x10(%rsp),%rax
   0x00007fffefe25509 <+473>:	movzbl (%rax),%eax
   0x00007fffefe2550c <+476>:	cmp    $0x1f,%al
   0x00007fffefe2550e <+478>:	jg     0x7fffefe253ea <JSON_parse_string+186>

1453			goto st0;
   0x00007fffefe25514 <+484>:	jmpq   0x7fffefe253d7 <JSON_parse_string+167>

1454		goto st2;
   0x00007fffefe253ea <+186>:	nop
   0x00007fffefe253eb <+187>:	jmp    0x7fffefe253ee <JSON_parse_string+190>

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 <JSON_parse_string+981>

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 <JSON_parse_string+558>

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 <JSON_parse_string+157>
   0x00007fffefe2554c <+540>:	mov    0x10(%rsp),%rax
   0x00007fffefe25551 <+545>:	movzbl (%rax),%eax
   0x00007fffefe25554 <+548>:	cmp    $0x39,%al
   0x00007fffefe25556 <+550>:	jg     0x7fffefe253cd <JSON_parse_string+157>

1461				goto st5;
   0x00007fffefe2555c <+556>:	jmp    0x7fffefe2558d <JSON_parse_string+605>

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 <JSON_parse_string+604>

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 <JSON_parse_string+157>
   0x00007fffefe2557a <+586>:	mov    0x10(%rsp),%rax
   0x00007fffefe2557f <+591>:	movzbl (%rax),%eax
   0x00007fffefe25582 <+594>:	cmp    $0x66,%al
   0x00007fffefe25584 <+596>:	jg     0x7fffefe253cd <JSON_parse_string+157>

1464				goto st5;
   0x00007fffefe2558a <+602>:	jmp    0x7fffefe2558d <JSON_parse_string+605>

1465		} else
1466			goto st5;
   0x00007fffefe2558c <+604>:	nop

1467		goto st0;
   0x00007fffefe253cd <+157>:	nop
   0x00007fffefe253ce <+158>:	jmp    0x7fffefe253d7 <JSON_parse_string+167>

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 <JSON_parse_string+992>

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 <JSON_parse_string+673>

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 <JSON_parse_string+160>
   0x00007fffefe255bf <+655>:	mov    0x10(%rsp),%rax
   0x00007fffefe255c4 <+660>:	movzbl (%rax),%eax
   0x00007fffefe255c7 <+663>:	cmp    $0x39,%al
   0x00007fffefe255c9 <+665>:	jg     0x7fffefe253d0 <JSON_parse_string+160>

1474				goto st6;
   0x00007fffefe255cf <+671>:	jmp    0x7fffefe25600 <JSON_parse_string+720>

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 <JSON_parse_string+719>

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 <JSON_parse_string+160>
   0x00007fffefe255ed <+701>:	mov    0x10(%rsp),%rax
   0x00007fffefe255f2 <+706>:	movzbl (%rax),%eax
   0x00007fffefe255f5 <+709>:	cmp    $0x66,%al
   0x00007fffefe255f7 <+711>:	jg     0x7fffefe253d0 <JSON_parse_string+160>

1477				goto st6;
   0x00007fffefe255fd <+717>:	jmp    0x7fffefe25600 <JSON_parse_string+720>

1478		} else
1479			goto st6;
   0x00007fffefe255ff <+719>:	nop

1480		goto st0;
   0x00007fffefe253d0 <+160>:	nop
   0x00007fffefe253d1 <+161>:	jmp    0x7fffefe253d7 <JSON_parse_string+167>

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 <JSON_parse_string+1003>

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 <JSON_parse_string+788>

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 <JSON_parse_string+163>
   0x00007fffefe25632 <+770>:	mov    0x10(%rsp),%rax
   0x00007fffefe25637 <+775>:	movzbl (%rax),%eax
   0x00007fffefe2563a <+778>:	cmp    $0x39,%al
   0x00007fffefe2563c <+780>:	jg     0x7fffefe253d3 <JSON_parse_string+163>

1487				goto st7;
   0x00007fffefe25642 <+786>:	jmp    0x7fffefe25673 <JSON_parse_string+835>

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 <JSON_parse_string+834>

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 <JSON_parse_string+163>
   0x00007fffefe25660 <+816>:	mov    0x10(%rsp),%rax
   0x00007fffefe25665 <+821>:	movzbl (%rax),%eax
   0x00007fffefe25668 <+824>:	cmp    $0x66,%al
   0x00007fffefe2566a <+826>:	jg     0x7fffefe253d3 <JSON_parse_string+163>

1490				goto st7;
   0x00007fffefe25670 <+832>:	jmp    0x7fffefe25673 <JSON_parse_string+835>

1491		} else
1492			goto st7;
   0x00007fffefe25672 <+834>:	nop

1493		goto st0;
   0x00007fffefe253d3 <+163>:	nop
   0x00007fffefe253d4 <+164>:	jmp    0x7fffefe253d7 <JSON_parse_string+167>

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 <JSON_parse_string+1014>

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 <JSON_parse_string+906>

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 <JSON_parse_string+166>
   0x00007fffefe256a5 <+885>:	mov    0x10(%rsp),%rax
   0x00007fffefe256aa <+890>:	movzbl (%rax),%eax
   0x00007fffefe256ad <+893>:	cmp    $0x39,%al
   0x00007fffefe256af <+895>:	jg     0x7fffefe253d6 <JSON_parse_string+166>

1500				goto st2;
   0x00007fffefe256b5 <+901>:	jmpq   0x7fffefe253ee <JSON_parse_string+190>

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 <JSON_parse_string+189>

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 <JSON_parse_string+166>
   0x00007fffefe256da <+938>:	mov    0x10(%rsp),%rax
   0x00007fffefe256df <+943>:	movzbl (%rax),%eax
   0x00007fffefe256e2 <+946>:	cmp    $0x66,%al
   0x00007fffefe256e4 <+948>:	jg     0x7fffefe253d6 <JSON_parse_string+166>

1503				goto st2;
   0x00007fffefe256ea <+954>:	jmpq   0x7fffefe253ee <JSON_parse_string+190>

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 <JSON_parse_string+1027>

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 <JSON_parse_string+1027>

1511		_test_eof4: cs = 4; goto _test_eof;
   0x00007fffefe25706 <+982>:	movl   $0x4,0x24(%rsp)
   0x00007fffefe2570e <+990>:	jmp    0x7fffefe25733 <JSON_parse_string+1027>

1512		_test_eof5: cs = 5; goto _test_eof;
   0x00007fffefe25711 <+993>:	movl   $0x5,0x24(%rsp)
   0x00007fffefe25719 <+1001>:	jmp    0x7fffefe25733 <JSON_parse_string+1027>

1513		_test_eof6: cs = 6; goto _test_eof;
   0x00007fffefe2571c <+1004>:	movl   $0x6,0x24(%rsp)
   0x00007fffefe25724 <+1012>:	jmp    0x7fffefe25733 <JSON_parse_string+1027>

1514		_test_eof7: cs = 7; goto _test_eof;
   0x00007fffefe25727 <+1015>:	movl   $0x7,0x24(%rsp)
   0x00007fffefe2572f <+1023>:	nop
   0x00007fffefe25730 <+1024>:	jmp    0x7fffefe25733 <JSON_parse_string+1027>

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 <JSON_parse_string+1225>
   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 <JSON_parse_string+1225>

1523	          VALUE klass;
1524	          VALUE memo = rb_ary_new2(2);
   0x00007fffefe25763 <+1075>:	mov    $0x2,%edi
   0x00007fffefe25768 <+1080>:	callq  0x7fffefe24330 <rb_ary_new2@plt>
   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 <rb_ary_push@plt>

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 <match_i>
   0x00007fffefe2579a <+1130>:	mov    %rax,%rdi
   0x00007fffefe2579d <+1133>:	callq  0x7fffefe242b0 <rb_hash_foreach@plt>

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 <rb_ary_entry@plt>
   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 <JSON_parse_string+1225>

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 <i_json_create>
   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 <rb_funcall@plt>
   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 <JSON_parse_string+1274>
   0x00007fffefe25805 <+1237>:	mov    0x18(%rsp),%rax
   0x00007fffefe2580a <+1242>:	mov    0x34(%rax),%eax
   0x00007fffefe2580d <+1245>:	test   %eax,%eax
   0x00007fffefe2580f <+1247>:	je     0x7fffefe2582a <JSON_parse_string+1274>

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 <rb_str_intern@plt>
   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 <JSON_string_first_final>
   0x00007fffefe25830 <+1280>:	cmp    %eax,0x24(%rsp)
   0x00007fffefe25834 <+1284>:	jl     0x7fffefe25841 <JSON_parse_string+1297>

1537	        return p + 1;
   0x00007fffefe25836 <+1286>:	mov    0x10(%rsp),%rax
   0x00007fffefe2583b <+1291>:	add    $0x1,%rax
   0x00007fffefe2583f <+1295>:	jmp    0x7fffefe25846 <JSON_parse_string+1302>

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.

