4f2373:	85 c0                	test   %eax,%eax
4f2375:	0f 84 cf 04 00 00    	je     0x4f284a
4f237b:	8a 5d 18             	mov    0x18(%ebp),%bl
4f237e:	32 c9                	xor    %cl,%cl
4f2380:	8b 45 14             	mov    0x14(%ebp),%eax
4f2383:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4f2386:	89 75 d8             	mov    %esi,-0x28(%ebp)
4f2389:	80 fb 01             	cmp    $0x1,%bl
4f238c:	75 29                	jne    0x4f23b7
4f238e:	3b c2                	cmp    %edx,%eax
4f2390:	77 36                	ja     0x4f23c8
4f2392:	6a 00                	push   $0x0
4f2394:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4f2397:	51                   	push   %ecx
4f2398:	50                   	push   %eax
4f2399:	57                   	push   %edi
4f239a:	e8 71 e5 01 00       	call   0x510910
4f239f:	83 c4 10             	add    $0x10,%esp
4f23a2:	85 c0                	test   %eax,%eax
4f23a4:	0f 85 98 05 00 00    	jne    0x4f2942
4f23aa:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4f23ae:	75 18                	jne    0x4f23c8
4f23b0:	b0 01                	mov    $0x1,%al
4f23b2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4f23b5:	eb 11                	jmp    0x4f23c8
4f23b7:	80 fb 02             	cmp    $0x2,%bl
4f23ba:	0f b6 c9             	movzbl %cl,%ecx
4f23bd:	b8 01 00 00 00       	mov    $0x1,%eax
4f23c2:	0f 44 c8             	cmove  %eax,%ecx
4f23c5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4f23c8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4f23cb:	ff 71 48             	push   0x48(%ecx)
4f23ce:	e8 6d 15 04 00       	call   0x533940
4f23d3:	83 c4 04             	add    $0x4,%esp
4f23d6:	85 c0                	test   %eax,%eax
4f23d8:	0f 85 64 05 00 00    	jne    0x4f2942
4f23de:	8b 55 e8             	mov    -0x18(%ebp),%edx
4f23e1:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4f23e4:	49                   	dec    %ecx
4f23e5:	0f c9                	bswap  %ecx
4f23e7:	8b 42 38             	mov    0x38(%edx),%eax
4f23ea:	89 48 24             	mov    %ecx,0x24(%eax)
4f23ed:	0f 1f 00             	nopl   (%eax)
4f23f0:	8b de                	mov    %esi,%ebx
4f23f2:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4f23f5:	85 f6                	test   %esi,%esi
4f23f7:	74 07                	je     0x4f2400
4f23f9:	8b 46 38             	mov    0x38(%esi),%eax
4f23fc:	8b 30                	mov    (%eax),%esi
4f23fe:	eb 06                	jmp    0x4f2406
4f2400:	8b 42 38             	mov    0x38(%edx),%eax
4f2403:	8b 70 20             	mov    0x20(%eax),%esi
4f2406:	0f ce                	bswap  %esi
4f2408:	3b 75 dc             	cmp    -0x24(%ebp),%esi
4f240b:	0f 87 fc 03 00 00    	ja     0x4f280d
4f2411:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4f2414:	8b c1                	mov    %ecx,%eax
4f2416:	41                   	inc    %ecx
4f2417:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4f241a:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
4f241d:	0f 87 ea 03 00 00    	ja     0x4f280d
4f2423:	6a 00                	push   $0x0
4f2425:	8d 45 f8             	lea    -0x8(%ebp),%eax
4f2428:	50                   	push   %eax
4f2429:	56                   	push   %esi
4f242a:	57                   	push   %edi
4f242b:	e8 50 48 00 00       	call   0x4f6c80
4f2430:	8b f8                	mov    %eax,%edi
4f2432:	83 c4 10             	add    $0x10,%esp
4f2435:	85 ff                	test   %edi,%edi
4f2437:	0f 85 f3 03 00 00    	jne    0x4f2830
4f243d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f2440:	8b 55 f0             	mov    -0x10(%ebp),%edx
4f2443:	8b 48 38             	mov    0x38(%eax),%ecx
4f2446:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4f2449:	8b 59 04             	mov    0x4(%ecx),%ebx
4f244c:	0f cb                	bswap  %ebx
4f244e:	85 db                	test   %ebx,%ebx
4f2450:	75 3e                	jne    0x4f2490
4f2452:	84 d2                	test   %dl,%dl
4f2454:	75 3a                	jne    0x4f2490
4f2456:	ff 70 48             	push   0x48(%eax)
4f2459:	e8 e2 14 04 00       	call   0x533940
4f245e:	8b f8                	mov    %eax,%edi
4f2460:	83 c4 04             	add    $0x4,%esp
4f2463:	85 ff                	test   %edi,%edi
4f2465:	0f 85 7c 03 00 00    	jne    0x4f27e7
4f246b:	8b 45 10             	mov    0x10(%ebp),%eax
4f246e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4f2471:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4f2474:	89 30                	mov    %esi,(%eax)
4f2476:	8b 75 f8             	mov    -0x8(%ebp),%esi
4f2479:	8b 49 38             	mov    0x38(%ecx),%ecx
4f247c:	8b 46 38             	mov    0x38(%esi),%eax
4f247f:	8b 00                	mov    (%eax),%eax
4f2481:	89 41 20             	mov    %eax,0x20(%ecx)
4f2484:	89 33                	mov    %esi,(%ebx)
4f2486:	33 f6                	xor    %esi,%esi
4f2488:	89 75 f8             	mov    %esi,-0x8(%ebp)
4f248b:	e9 f2 02 00 00       	jmp    0x4f2782
4f2490:	8b 45 08             	mov    0x8(%ebp),%eax
4f2493:	8b 40 24             	mov    0x24(%eax),%eax
4f2496:	c1 e8 02             	shr    $0x2,%eax
4f2499:	83 e8 02             	sub    $0x2,%eax
4f249c:	3b d8                	cmp    %eax,%ebx
4f249e:	0f 87 58 03 00 00    	ja     0x4f27fc
4f24a4:	84 d2                	test   %dl,%dl
4f24a6:	0f 84 5a 01 00 00    	je     0x4f2606
4f24ac:	8b 45 14             	mov    0x14(%ebp),%eax
4f24af:	3b c6                	cmp    %esi,%eax
4f24b1:	74 13                	je     0x4f24c6
4f24b3:	3b f0                	cmp    %eax,%esi
4f24b5:	8a 45 18             	mov    0x18(%ebp),%al
4f24b8:	0f 83 4b 01 00 00    	jae    0x4f2609
4f24be:	3c 02                	cmp    $0x2,%al
4f24c0:	0f 85 43 01 00 00    	jne    0x4f2609
4f24c6:	8b 45 10             	mov    0x10(%ebp),%eax
4f24c9:	c6 45 f0 00          	movb   $0x0,-0x10(%ebp)
4f24cd:	89 30                	mov    %esi,(%eax)
4f24cf:	8b 45 0c             	mov    0xc(%ebp),%eax
4f24d2:	8b 75 f8             	mov    -0x8(%ebp),%esi
4f24d5:	89 30                	mov    %esi,(%eax)
4f24d7:	ff 76 48             	push   0x48(%esi)
4f24da:	e8 61 14 04 00       	call   0x533940
4f24df:	8b f8                	mov    %eax,%edi
4f24e1:	83 c4 04             	add    $0x4,%esp
4f24e4:	85 ff                	test   %edi,%edi
4f24e6:	0f 85 fe 02 00 00    	jne    0x4f27ea
4f24ec:	85 db                	test   %ebx,%ebx
4f24ee:	75 48                	jne    0x4f2538
4f24f0:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4f24f3:	85 db                	test   %ebx,%ebx
4f24f5:	75 18                	jne    0x4f250f
4f24f7:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4f24fa:	8b 46 38             	mov    0x38(%esi),%eax
4f24fd:	33 f6                	xor    %esi,%esi
4f24ff:	89 75 f8             	mov    %esi,-0x8(%ebp)
4f2502:	8b 49 38             	mov    0x38(%ecx),%ecx
4f2505:	8b 00                	mov    (%eax),%eax
4f2507:	89 41 20             	mov    %eax,0x20(%ecx)
4f250a:	e9 73 02 00 00       	jmp    0x4f2782
4f250f:	ff 73 48             	push   0x48(%ebx)
4f2512:	e8 29 14 04 00       	call   0x533940
4f2517:	8b f8                	mov    %eax,%edi
4f2519:	83 c4 04             	add    $0x4,%esp
4f251c:	85 ff                	test   %edi,%edi
4f251e:	0f 85 c9 02 00 00    	jne    0x4f27ed
4f2524:	8b 46 38             	mov    0x38(%esi),%eax
4f2527:	33 f6                	xor    %esi,%esi
4f2529:	8b 4b 38             	mov    0x38(%ebx),%ecx
4f252c:	89 75 f8             	mov    %esi,-0x8(%ebp)
4f252f:	8b 00                	mov    (%eax),%eax
4f2531:	89 01                	mov    %eax,(%ecx)
4f2533:	e9 4a 02 00 00       	jmp    0x4f2782
4f2538:	8b 46 38             	mov    0x38(%esi),%eax
4f253b:	8b 70 08             	mov    0x8(%eax),%esi
4f253e:	0f ce                	bswap  %esi
4f2540:	3b 75 dc             	cmp    -0x24(%ebp),%esi
4f2543:	0f 87 6a 02 00 00    	ja     0x4f27b3
4f2549:	6a 00                	push   $0x0
4f254b:	8d 45 e0             	lea    -0x20(%ebp),%eax
4f254e:	50                   	push   %eax
4f254f:	56                   	push   %esi
4f2550:	ff 75 08             	push   0x8(%ebp)
4f2553:	e8 28 47 00 00       	call   0x4f6c80
4f2558:	8b f8                	mov    %eax,%edi
4f255a:	83 c4 10             	add    $0x10,%esp
4f255d:	85 ff                	test   %edi,%edi
4f255f:	0f 85 82 02 00 00    	jne    0x4f27e7
4f2565:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f2568:	ff 70 48             	push   0x48(%eax)
4f256b:	e8 d0 13 04 00       	call   0x533940
4f2570:	8b f8                	mov    %eax,%edi
4f2572:	83 c4 04             	add    $0x4,%esp
4f2575:	85 ff                	test   %edi,%edi
4f2577:	0f 85 29 02 00 00    	jne    0x4f27a6
4f257d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f2580:	8d 53 ff             	lea    -0x1(%ebx),%edx
4f2583:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4f2586:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4f2589:	8b 40 38             	mov    0x38(%eax),%eax
4f258c:	8b 49 38             	mov    0x38(%ecx),%ecx
4f258f:	8b 00                	mov    (%eax),%eax
4f2591:	89 01                	mov    %eax,(%ecx)
4f2593:	8b ca                	mov    %edx,%ecx
4f2595:	8b 43 38             	mov    0x38(%ebx),%eax
4f2598:	0f c9                	bswap  %ecx
4f259a:	89 48 04             	mov    %ecx,0x4(%eax)
4f259d:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
4f25a4:	50                   	push   %eax
4f25a5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f25a8:	8b 40 38             	mov    0x38(%eax),%eax
4f25ab:	83 c0 0c             	add    $0xc,%eax
4f25ae:	50                   	push   %eax
4f25af:	8b 43 38             	mov    0x38(%ebx),%eax
4f25b2:	83 c0 08             	add    $0x8,%eax
4f25b5:	50                   	push   %eax
4f25b6:	e8 45 09 0f 00       	call   0x5e2f00
4f25bb:	53                   	push   %ebx
4f25bc:	e8 ff fa 01 00       	call   0x5120c0
4f25c1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4f25c4:	83 c4 10             	add    $0x10,%esp
4f25c7:	85 db                	test   %ebx,%ebx
4f25c9:	75 15                	jne    0x4f25e0
4f25cb:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4f25ce:	0f ce                	bswap  %esi
4f25d0:	8b 41 38             	mov    0x38(%ecx),%eax
4f25d3:	89 70 20             	mov    %esi,0x20(%eax)
4f25d6:	33 f6                	xor    %esi,%esi
4f25d8:	89 75 f8             	mov    %esi,-0x8(%ebp)
4f25db:	e9 a2 01 00 00       	jmp    0x4f2782
4f25e0:	ff 73 48             	push   0x48(%ebx)
4f25e3:	e8 58 13 04 00       	call   0x533940
4f25e8:	8b f8                	mov    %eax,%edi
4f25ea:	83 c4 04             	add    $0x4,%esp
4f25ed:	85 ff                	test   %edi,%edi
4f25ef:	0f 85 13 02 00 00    	jne    0x4f2808
4f25f5:	8b 43 38             	mov    0x38(%ebx),%eax
4f25f8:	0f ce                	bswap  %esi
4f25fa:	89 30                	mov    %esi,(%eax)
4f25fc:	33 f6                	xor    %esi,%esi
4f25fe:	89 75 f8             	mov    %esi,-0x8(%ebp)
4f2601:	e9 7c 01 00 00       	jmp    0x4f2782
4f2606:	8a 45 18             	mov    0x18(%ebp),%al
4f2609:	85 db                	test   %ebx,%ebx
4f260b:	0f 84 6e 01 00 00    	je     0x4f277f
4f2611:	8b 75 14             	mov    0x14(%ebp),%esi
4f2614:	85 f6                	test   %esi,%esi
4f2616:	0f 84 11 01 00 00    	je     0x4f272d
4f261c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
4f2623:	3c 02                	cmp    $0x2,%al
4f2625:	75 29                	jne    0x4f2650
4f2627:	33 c9                	xor    %ecx,%ecx
4f2629:	85 db                	test   %ebx,%ebx
4f262b:	74 77                	je     0x4f26a4
4f262d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4f2630:	83 c2 08             	add    $0x8,%edx
4f2633:	8b 02                	mov    (%edx),%eax
4f2635:	0f c8                	bswap  %eax
4f2637:	3b c6                	cmp    %esi,%eax
4f2639:	76 0d                	jbe    0x4f2648
4f263b:	41                   	inc    %ecx
4f263c:	83 c2 04             	add    $0x4,%edx
4f263f:	3b cb                	cmp    %ebx,%ecx
4f2641:	72 f0                	jb     0x4f2633
4f2643:	8b 55 f0             	mov    -0x10(%ebp),%edx
4f2646:	eb 59                	jmp    0x4f26a1
4f2648:	8b 55 f0             	mov    -0x10(%ebp),%edx
4f264b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4f264e:	eb 54                	jmp    0x4f26a4
4f2650:	8b 41 08             	mov    0x8(%ecx),%eax
4f2653:	0f c8                	bswap  %eax
4f2655:	2b c6                	sub    %esi,%eax
4f2657:	50                   	push   %eax
4f2658:	e8 03 51 02 00       	call   0x517760
4f265d:	b9 01 00 00 00       	mov    $0x1,%ecx
4f2662:	83 c4 04             	add    $0x4,%esp
4f2665:	8b f0                	mov    %eax,%esi
4f2667:	3b d9                	cmp    %ecx,%ebx
4f2669:	76 33                	jbe    0x4f269e
4f266b:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4f266e:	83 c2 0c             	add    $0xc,%edx
4f2671:	8b 02                	mov    (%edx),%eax
4f2673:	0f c8                	bswap  %eax
4f2675:	2b 45 14             	sub    0x14(%ebp),%eax
4f2678:	79 10                	jns    0x4f268a
4f267a:	3d 00 00 00 80       	cmp    $0x80000000,%eax
4f267f:	75 07                	jne    0x4f2688
4f2681:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4f2686:	eb 02                	jmp    0x4f268a
4f2688:	f7 d8                	neg    %eax
4f268a:	3b c6                	cmp    %esi,%eax
4f268c:	7d 05                	jge    0x4f2693
4f268e:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4f2691:	8b f0                	mov    %eax,%esi
4f2693:	41                   	inc    %ecx
4f2694:	83 c2 04             	add    $0x4,%edx
4f2697:	3b cb                	cmp    %ebx,%ecx
4f2699:	72 d6                	jb     0x4f2671
4f269b:	8b 55 f0             	mov    -0x10(%ebp),%edx
4f269e:	8b 75 14             	mov    0x14(%ebp),%esi
4f26a1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4f26a4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f26a7:	8b 44 88 08          	mov    0x8(%eax,%ecx,4),%eax
4f26ab:	0f c8                	bswap  %eax
4f26ad:	3b 45 dc             	cmp    -0x24(%ebp),%eax
4f26b0:	0f 87 0e 01 00 00    	ja     0x4f27c4
4f26b6:	84 d2                	test   %dl,%dl
4f26b8:	74 14                	je     0x4f26ce
4f26ba:	3b c6                	cmp    %esi,%eax
4f26bc:	74 10                	je     0x4f26ce
4f26be:	0f 83 bb 00 00 00    	jae    0x4f277f
4f26c4:	80 7d 18 02          	cmpb   $0x2,0x18(%ebp)
4f26c8:	0f 85 b1 00 00 00    	jne    0x4f277f
4f26ce:	8b 4d 10             	mov    0x10(%ebp),%ecx
4f26d1:	8b 75 f8             	mov    -0x8(%ebp),%esi
4f26d4:	89 01                	mov    %eax,(%ecx)
4f26d6:	ff 76 48             	push   0x48(%esi)
4f26d9:	e8 62 12 04 00       	call   0x533940
4f26de:	8b f8                	mov    %eax,%edi
4f26e0:	83 c4 04             	add    $0x4,%esp
4f26e3:	85 ff                	test   %edi,%edi
4f26e5:	0f 85 ff 00 00 00    	jne    0x4f27ea
4f26eb:	8b 55 ec             	mov    -0x14(%ebp),%edx
4f26ee:	8d 4b ff             	lea    -0x1(%ebx),%ecx
4f26f1:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4f26f4:	3b d1                	cmp    %ecx,%edx
4f26f6:	73 08                	jae    0x4f2700
4f26f8:	8b 44 9f 04          	mov    0x4(%edi,%ebx,4),%eax
4f26fc:	89 44 97 08          	mov    %eax,0x8(%edi,%edx,4)
4f2700:	8b 45 10             	mov    0x10(%ebp),%eax
4f2703:	0f c9                	bswap  %ecx
4f2705:	89 4f 04             	mov    %ecx,0x4(%edi)
4f2708:	8b 4d 08             	mov    0x8(%ebp),%ecx
4f270b:	8b 38                	mov    (%eax),%edi
4f270d:	8b 41 3c             	mov    0x3c(%ecx),%eax
4f2710:	85 c0                	test   %eax,%eax
4f2712:	74 23                	je     0x4f2737
4f2714:	3b 38                	cmp    (%eax),%edi
4f2716:	77 11                	ja     0x4f2729
4f2718:	57                   	push   %edi
4f2719:	50                   	push   %eax
4f271a:	e8 21 82 02 00       	call   0x51a940
4f271f:	8b 4d 08             	mov    0x8(%ebp),%ecx
4f2722:	83 c4 08             	add    $0x8,%esp
4f2725:	85 c0                	test   %eax,%eax
4f2727:	74 0e                	je     0x4f2737
4f2729:	33 c0                	xor    %eax,%eax
4f272b:	eb 0f                	jmp    0x4f273c
4f272d:	33 c9                	xor    %ecx,%ecx
4f272f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4f2732:	e9 6d ff ff ff       	jmp    0x4f26a4
4f2737:	b8 01 00 00 00       	mov    $0x1,%eax
4f273c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4f273f:	50                   	push   %eax
4f2740:	53                   	push   %ebx
4f2741:	57                   	push   %edi
4f2742:	51                   	push   %ecx
4f2743:	e8 38 45 00 00       	call   0x4f6c80
4f2748:	8b f8                	mov    %eax,%edi
4f274a:	83 c4 10             	add    $0x10,%esp
4f274d:	85 ff                	test   %edi,%edi
4f274f:	75 28                	jne    0x4f2779
4f2751:	8b 03                	mov    (%ebx),%eax
4f2753:	ff 70 48             	push   0x48(%eax)
4f2756:	e8 e5 11 04 00       	call   0x533940
4f275b:	8b f8                	mov    %eax,%edi
4f275d:	83 c4 04             	add    $0x4,%esp
4f2760:	85 ff                	test   %edi,%edi
4f2762:	74 15                	je     0x4f2779