ab247a:	8b ca                	mov    %edx,%ecx
ab247c:	81 e1 07 00 00 80    	and    $0x80000007,%ecx
ab2482:	79 05                	jns    0xab2489
ab2484:	49                   	dec    %ecx
ab2485:	83 c9 f8             	or     $0xfffffff8,%ecx
ab2488:	41                   	inc    %ecx
ab2489:	33 c0                	xor    %eax,%eax
ab248b:	c1 ea 03             	shr    $0x3,%edx
ab248e:	40                   	inc    %eax
ab248f:	d3 e0                	shl    %cl,%eax
ab2491:	6a 00                	push   $0x0
ab2493:	84 04 32             	test   %al,(%edx,%esi,1)
ab2496:	58                   	pop    %eax
ab2497:	0f 95 c0             	setne  %al
ab249a:	5e                   	pop    %esi
ab249b:	5d                   	pop    %ebp
ab249c:	c2 04 00             	ret    $0x4
ab249f:	cc                   	int3
ab24a0:	cc                   	int3
ab24a1:	cc                   	int3
ab24a2:	cc                   	int3
ab24a3:	cc                   	int3
ab24a4:	cc                   	int3
ab24a5:	cc                   	int3
ab24a6:	cc                   	int3
ab24a7:	cc                   	int3
ab24a8:	cc                   	int3
ab24a9:	cc                   	int3
ab24aa:	cc                   	int3
ab24ab:	8b ff                	mov    %edi,%edi
ab24ad:	55                   	push   %ebp
ab24ae:	8b ec                	mov    %esp,%ebp
ab24b0:	56                   	push   %esi
ab24b1:	57                   	push   %edi
ab24b2:	0f b7 7d 08          	movzwl 0x8(%ebp),%edi
ab24b6:	e8 8a 73 95 ff       	call   0x409845
ab24bb:	8b f7                	mov    %edi,%esi
ab24bd:	c1 ee 03             	shr    $0x3,%esi
ab24c0:	81 e7 07 00 00 80    	and    $0x80000007,%edi
ab24c6:	79 05                	jns    0xab24cd
ab24c8:	4f                   	dec    %edi
ab24c9:	83 cf f8             	or     $0xfffffff8,%edi
ab24cc:	47                   	inc    %edi
ab24cd:	33 d2                	xor    %edx,%edx
ab24cf:	8b cf                	mov    %edi,%ecx
ab24d1:	42                   	inc    %edx
ab24d2:	6a 00                	push   $0x0
ab24d4:	d3 e2                	shl    %cl,%edx
ab24d6:	84 14 30             	test   %dl,(%eax,%esi,1)
ab24d9:	58                   	pop    %eax
ab24da:	5f                   	pop    %edi
ab24db:	0f 95 c0             	setne  %al
ab24de:	5e                   	pop    %esi
ab24df:	5d                   	pop    %ebp
ab24e0:	c2 04 00             	ret    $0x4
ab24e3:	cc                   	int3
ab24e4:	cc                   	int3
ab24e5:	cc                   	int3
ab24e6:	cc                   	int3
ab24e7:	cc                   	int3
ab24e8:	cc                   	int3
ab24e9:	cc                   	int3
ab24ea:	cc                   	int3
ab24eb:	cc                   	int3
ab24ec:	cc                   	int3
ab24ed:	cc                   	int3
ab24ee:	cc                   	int3
ab24ef:	cc                   	int3
ab24f0:	cc                   	int3
ab24f1:	8b ff                	mov    %edi,%edi
ab24f3:	55                   	push   %ebp
ab24f4:	8b ec                	mov    %esp,%ebp
ab24f6:	8b 45 08             	mov    0x8(%ebp),%eax
ab24f9:	85 c0                	test   %eax,%eax
ab24fb:	74 12                	je     0xab250f
ab24fd:	83 f8 03             	cmp    $0x3,%eax
ab2500:	74 09                	je     0xab250b
ab2502:	83 f8 08             	cmp    $0x8,%eax
ab2505:	74 04                	je     0xab250b
ab2507:	33 c0                	xor    %eax,%eax
ab2509:	5d                   	pop    %ebp
ab250a:	c3                   	ret
ab250b:	6a 08                	push   $0x8
ab250d:	eb 02                	jmp    0xab2511
ab250f:	6a 04                	push   $0x4
ab2511:	58                   	pop    %eax
ab2512:	5d                   	pop    %ebp
ab2513:	c3                   	ret
ab2514:	cc                   	int3
ab2515:	cc                   	int3
ab2516:	cc                   	int3
ab2517:	cc                   	int3
ab2518:	cc                   	int3
ab2519:	cc                   	int3
ab251a:	cc                   	int3
ab251b:	cc                   	int3
ab251c:	8b ff                	mov    %edi,%edi
ab251e:	55                   	push   %ebp
ab251f:	8b ec                	mov    %esp,%ebp
ab2521:	8b 45 08             	mov    0x8(%ebp),%eax
ab2524:	83 f8 0a             	cmp    $0xa,%eax
ab2527:	77 19                	ja     0xab2542
ab2529:	ff 24 85 48 25 ab 00 	jmp    *0xab2548(,%eax,4)
ab2530:	6a 04                	push   $0x4
ab2532:	58                   	pop    %eax
ab2533:	5d                   	pop    %ebp
ab2534:	c3                   	ret
ab2535:	33 c0                	xor    %eax,%eax
ab2537:	40                   	inc    %eax
ab2538:	5d                   	pop    %ebp
ab2539:	c3                   	ret
ab253a:	6a 02                	push   $0x2
ab253c:	eb f4                	jmp    0xab2532
ab253e:	6a 08                	push   $0x8
ab2540:	eb f0                	jmp    0xab2532
ab2542:	33 c0                	xor    %eax,%eax
ab2544:	5d                   	pop    %ebp
ab2545:	c3                   	ret
ab2546:	8b ff                	mov    %edi,%edi
ab2548:	30 25 ab 00 35 25    	xor    %ah,0x253500ab
ab254e:	ab                   	stos   %eax,%es:(%edi)
ab254f:	00 3a                	add    %bh,(%edx)
ab2551:	25 ab 00 30 25       	and    $0x253000ab,%eax
ab2556:	ab                   	stos   %eax,%es:(%edi)
ab2557:	00 3e                	add    %bh,(%esi)
ab2559:	25 ab 00 3e 25       	and    $0x253e00ab,%eax
ab255e:	ab                   	stos   %eax,%es:(%edi)
ab255f:	00 30                	add    %dh,(%eax)
ab2561:	25 ab 00 30 25       	and    $0x253000ab,%eax
ab2566:	ab                   	stos   %eax,%es:(%edi)
ab2567:	00 42 25             	add    %al,0x25(%edx)
ab256a:	ab                   	stos   %eax,%es:(%edi)
ab256b:	00 30                	add    %dh,(%eax)
ab256d:	25 ab 00 3e 25       	and    $0x253e00ab,%eax
ab2572:	ab                   	stos   %eax,%es:(%edi)
ab2573:	00 cc                	add    %cl,%ah
ab2575:	cc                   	int3
ab2576:	cc                   	int3
ab2577:	cc                   	int3
ab2578:	cc                   	int3
ab2579:	cc                   	int3
ab257a:	cc                   	int3
ab257b:	cc                   	int3
ab257c:	cc                   	int3
ab257d:	cc                   	int3
ab257e:	cc                   	int3
ab257f:	cc                   	int3
ab2580:	cc                   	int3
ab2581:	cc                   	int3
ab2582:	cc                   	int3
ab2583:	cc                   	int3
ab2584:	cc                   	int3
ab2585:	cc                   	int3
ab2586:	cc                   	int3
ab2587:	cc                   	int3
ab2588:	cc                   	int3
ab2589:	cc                   	int3
ab258a:	8b ff                	mov    %edi,%edi
ab258c:	55                   	push   %ebp
ab258d:	8b ec                	mov    %esp,%ebp
ab258f:	83 41 10 ff          	addl   $0xffffffff,0x10(%ecx)
ab2593:	8b 51 08             	mov    0x8(%ecx),%edx
ab2596:	8b c2                	mov    %edx,%eax
ab2598:	83 51 14 ff          	adcl   $0xffffffff,0x14(%ecx)
ab259c:	56                   	push   %esi
ab259d:	8b 71 0c             	mov    0xc(%ecx),%esi
ab25a0:	0b c6                	or     %esi,%eax
ab25a2:	74 0c                	je     0xab25b0
ab25a4:	39 71 14             	cmp    %esi,0x14(%ecx)
ab25a7:	77 1d                	ja     0xab25c6
ab25a9:	72 05                	jb     0xab25b0
ab25ab:	39 51 10             	cmp    %edx,0x10(%ecx)
ab25ae:	77 16                	ja     0xab25c6
ab25b0:	8a 45 08             	mov    0x8(%ebp),%al
ab25b3:	84 c0                	test   %al,%al
ab25b5:	74 0f                	je     0xab25c6
ab25b7:	3c ff                	cmp    $0xff,%al
ab25b9:	74 0b                	je     0xab25c6
ab25bb:	8b 09                	mov    (%ecx),%ecx
ab25bd:	0f be c0             	movsbl %al,%eax
ab25c0:	50                   	push   %eax
ab25c1:	e8 05 a9 97 ff       	call   0x42cecb
ab25c6:	5e                   	pop    %esi
ab25c7:	5d                   	pop    %ebp
ab25c8:	c2 04 00             	ret    $0x4
ab25cb:	cc                   	int3
ab25cc:	cc                   	int3
ab25cd:	cc                   	int3
ab25ce:	cc                   	int3
ab25cf:	cc                   	int3
ab25d0:	cc                   	int3
ab25d1:	cc                   	int3
ab25d2:	cc                   	int3
ab25d3:	cc                   	int3
ab25d4:	cc                   	int3
ab25d5:	cc                   	int3
ab25d6:	cc                   	int3
ab25d7:	cc                   	int3
ab25d8:	cc                   	int3
ab25d9:	cc                   	int3
ab25da:	cc                   	int3
ab25db:	8b ff                	mov    %edi,%edi
ab25dd:	55                   	push   %ebp
ab25de:	8b ec                	mov    %esp,%ebp
ab25e0:	83 41 10 ff          	addl   $0xffffffff,0x10(%ecx)
ab25e4:	8b 51 08             	mov    0x8(%ecx),%edx
ab25e7:	8b c2                	mov    %edx,%eax
ab25e9:	83 51 14 ff          	adcl   $0xffffffff,0x14(%ecx)
ab25ed:	56                   	push   %esi
ab25ee:	8b 71 0c             	mov    0xc(%ecx),%esi
ab25f1:	0b c6                	or     %esi,%eax
ab25f3:	74 0c                	je     0xab2601
ab25f5:	39 71 14             	cmp    %esi,0x14(%ecx)
ab25f8:	77 21                	ja     0xab261b
ab25fa:	72 05                	jb     0xab2601
ab25fc:	39 51 10             	cmp    %edx,0x10(%ecx)
ab25ff:	77 1a                	ja     0xab261b
ab2601:	8b 45 08             	mov    0x8(%ebp),%eax
ab2604:	66 85 c0             	test   %ax,%ax
ab2607:	74 12                	je     0xab261b
ab2609:	ba ff ff 00 00       	mov    $0xffff,%edx
ab260e:	66 3b c2             	cmp    %dx,%ax
ab2611:	74 08                	je     0xab261b
ab2613:	8b 09                	mov    (%ecx),%ecx
ab2615:	50                   	push   %eax
ab2616:	e8 10 ee 97 ff       	call   0x43142b
ab261b:	5e                   	pop    %esi
ab261c:	5d                   	pop    %ebp
ab261d:	c2 04 00             	ret    $0x4
ab2620:	cc                   	int3
ab2621:	cc                   	int3
ab2622:	cc                   	int3
ab2623:	cc                   	int3
ab2624:	cc                   	int3
ab2625:	cc                   	int3
ab2626:	cc                   	int3
ab2627:	cc                   	int3
ab2628:	cc                   	int3
ab2629:	cc                   	int3
ab262a:	cc                   	int3
ab262b:	cc                   	int3
ab262c:	cc                   	int3
ab262d:	cc                   	int3
ab262e:	cc                   	int3
ab262f:	cc                   	int3
ab2630:	cc                   	int3
ab2631:	8b ff                	mov    %edi,%edi
ab2633:	55                   	push   %ebp
ab2634:	8b ec                	mov    %esp,%ebp
ab2636:	83 41 10 ff          	addl   $0xffffffff,0x10(%ecx)
ab263a:	8b 51 08             	mov    0x8(%ecx),%edx
ab263d:	8b c2                	mov    %edx,%eax
ab263f:	83 51 14 ff          	adcl   $0xffffffff,0x14(%ecx)
ab2643:	56                   	push   %esi
ab2644:	8b 71 0c             	mov    0xc(%ecx),%esi
ab2647:	0b c6                	or     %esi,%eax
ab2649:	74 0c                	je     0xab2657
ab264b:	39 71 14             	cmp    %esi,0x14(%ecx)
ab264e:	77 1d                	ja     0xab266d
ab2650:	72 05                	jb     0xab2657
ab2652:	39 51 10             	cmp    %edx,0x10(%ecx)
ab2655:	77 16                	ja     0xab266d
ab2657:	8a 45 08             	mov    0x8(%ebp),%al
ab265a:	84 c0                	test   %al,%al
ab265c:	74 0f                	je     0xab266d
ab265e:	3c ff                	cmp    $0xff,%al
ab2660:	74 0b                	je     0xab266d
ab2662:	8b 09                	mov    (%ecx),%ecx
ab2664:	0f be c0             	movsbl %al,%eax
ab2667:	50                   	push   %eax
ab2668:	e8 51 8d 97 ff       	call   0x42b3be
ab266d:	5e                   	pop    %esi
ab266e:	5d                   	pop    %ebp
ab266f:	c2 04 00             	ret    $0x4
ab2672:	cc                   	int3
ab2673:	cc                   	int3
ab2674:	cc                   	int3
ab2675:	cc                   	int3
ab2676:	cc                   	int3
ab2677:	cc                   	int3
ab2678:	cc                   	int3
ab2679:	cc                   	int3
ab267a:	cc                   	int3
ab267b:	cc                   	int3
ab267c:	cc                   	int3
ab267d:	cc                   	int3
ab267e:	cc                   	int3
ab267f:	cc                   	int3
ab2680:	cc                   	int3
ab2681:	cc                   	int3
ab2682:	8b ff                	mov    %edi,%edi
ab2684:	55                   	push   %ebp
ab2685:	8b ec                	mov    %esp,%ebp
ab2687:	83 41 10 ff          	addl   $0xffffffff,0x10(%ecx)
ab268b:	8b 51 08             	mov    0x8(%ecx),%edx
ab268e:	8b c2                	mov    %edx,%eax
ab2690:	83 51 14 ff          	adcl   $0xffffffff,0x14(%ecx)
ab2694:	56                   	push   %esi
ab2695:	8b 71 0c             	mov    0xc(%ecx),%esi
ab2698:	0b c6                	or     %esi,%eax
ab269a:	74 0c                	je     0xab26a8
ab269c:	39 71 14             	cmp    %esi,0x14(%ecx)
ab269f:	77 21                	ja     0xab26c2
ab26a1:	72 05                	jb     0xab26a8
ab26a3:	39 51 10             	cmp    %edx,0x10(%ecx)
ab26a6:	77 1a                	ja     0xab26c2
ab26a8:	8b 45 08             	mov    0x8(%ebp),%eax
ab26ab:	66 85 c0             	test   %ax,%ax
ab26ae:	74 12                	je     0xab26c2
ab26b0:	ba ff ff 00 00       	mov    $0xffff,%edx
ab26b5:	66 3b c2             	cmp    %dx,%ax
ab26b8:	74 08                	je     0xab26c2
ab26ba:	8b 09                	mov    (%ecx),%ecx
ab26bc:	50                   	push   %eax
ab26bd:	e8 06 b6 96 ff       	call   0x41dcc8
ab26c2:	5e                   	pop    %esi
ab26c3:	5d                   	pop    %ebp
ab26c4:	c2 04 00             	ret    $0x4
ab26c7:	cc                   	int3
ab26c8:	cc                   	int3
ab26c9:	cc                   	int3
ab26ca:	cc                   	int3
ab26cb:	cc                   	int3
ab26cc:	cc                   	int3
ab26cd:	cc                   	int3
ab26ce:	cc                   	int3
ab26cf:	cc                   	int3
ab26d0:	cc                   	int3
ab26d1:	cc                   	int3
ab26d2:	cc                   	int3
ab26d3:	cc                   	int3
ab26d4:	cc                   	int3
ab26d5:	cc                   	int3
ab26d6:	cc                   	int3
ab26d7:	cc                   	int3
ab26d8:	8b ff                	mov    %edi,%edi
ab26da:	55                   	push   %ebp
ab26db:	8b ec                	mov    %esp,%ebp
ab26dd:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
ab26e1:	74 0f                	je     0xab26f2
ab26e3:	ff 31                	push   (%ecx)
ab26e5:	ff 49 04             	decl   0x4(%ecx)
ab26e8:	ff 75 08             	push   0x8(%ebp)
ab26eb:	e8 bf 1f 96 ff       	call   0x4146af
ab26f0:	59                   	pop    %ecx
ab26f1:	59                   	pop    %ecx
ab26f2:	5d                   	pop    %ebp
ab26f3:	c2 04 00             	ret    $0x4
ab26f6:	cc                   	int3
ab26f7:	cc                   	int3