5c23c9:	6a ff                	push   $0xffffffff
5c23cb:	68 20 fc 5f 00       	push   $0x5ffc20
5c23d0:	50                   	push   %eax
5c23d1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c23d8:	56                   	push   %esi
5c23d9:	57                   	push   %edi
5c23da:	8b f9                	mov    %ecx,%edi
5c23dc:	8b 37                	mov    (%edi),%esi
5c23de:	85 f6                	test   %esi,%esi
5c23e0:	74 54                	je     0x5c2436
5c23e2:	8b 4f 08             	mov    0x8(%edi),%ecx
5c23e5:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c23ea:	2b ce                	sub    %esi,%ecx
5c23ec:	f7 e9                	imul   %ecx
5c23ee:	c1 fa 03             	sar    $0x3,%edx
5c23f1:	8b c2                	mov    %edx,%eax
5c23f3:	c1 e8 1f             	shr    $0x1f,%eax
5c23f6:	03 c2                	add    %edx,%eax
5c23f8:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5c23fb:	c1 e1 02             	shl    $0x2,%ecx
5c23fe:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5c2404:	72 12                	jb     0x5c2418
5c2406:	8b 56 fc             	mov    -0x4(%esi),%edx
5c2409:	83 c1 23             	add    $0x23,%ecx
5c240c:	2b f2                	sub    %edx,%esi
5c240e:	8d 46 fc             	lea    -0x4(%esi),%eax
5c2411:	83 f8 1f             	cmp    $0x1f,%eax
5c2414:	77 30                	ja     0x5c2446
5c2416:	8b f2                	mov    %edx,%esi
5c2418:	51                   	push   %ecx
5c2419:	56                   	push   %esi
5c241a:	e8 36 ee 00 00       	call   0x5d1255
5c241f:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
5c2425:	83 c4 08             	add    $0x8,%esp
5c2428:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
5c242f:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
5c2436:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c2439:	5f                   	pop    %edi
5c243a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c2441:	5e                   	pop    %esi
5c2442:	8b e5                	mov    %ebp,%esp
5c2444:	5d                   	pop    %ebp
5c2445:	c3                   	ret
5c2446:	e8 a5 3d 01 00       	call   0x5d61f0
5c244b:	cc                   	int3
5c244c:	cc                   	int3
5c244d:	cc                   	int3
5c244e:	cc                   	int3
5c244f:	cc                   	int3
5c2450:	cc                   	int3
5c2451:	cc                   	int3
5c2452:	cc                   	int3
5c2453:	cc                   	int3
5c2454:	cc                   	int3
5c2455:	cc                   	int3
5c2456:	cc                   	int3
5c2457:	cc                   	int3
5c2458:	cc                   	int3
5c2459:	cc                   	int3
5c245a:	cc                   	int3
5c245b:	cc                   	int3
5c245c:	cc                   	int3
5c245d:	cc                   	int3
5c245e:	cc                   	int3
5c245f:	cc                   	int3
5c2460:	8b 09                	mov    (%ecx),%ecx
5c2462:	85 c9                	test   %ecx,%ecx
5c2464:	0f 85 76 45 00 00    	jne    0x5c69e0
5c246a:	c3                   	ret
5c246b:	cc                   	int3
5c246c:	cc                   	int3
5c246d:	cc                   	int3
5c246e:	cc                   	int3
5c246f:	cc                   	int3
5c2470:	55                   	push   %ebp
5c2471:	8b ec                	mov    %esp,%ebp
5c2473:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c2479:	6a ff                	push   $0xffffffff
5c247b:	68 20 fc 5f 00       	push   $0x5ffc20
5c2480:	50                   	push   %eax
5c2481:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c2488:	56                   	push   %esi
5c2489:	57                   	push   %edi
5c248a:	8b 39                	mov    (%ecx),%edi
5c248c:	85 ff                	test   %edi,%edi
5c248e:	74 59                	je     0x5c24e9
5c2490:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
5c2494:	74 53                	je     0x5c24e9
5c2496:	8b 4f 04             	mov    0x4(%edi),%ecx
5c2499:	8b 41 04             	mov    0x4(%ecx),%eax
5c249c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5c24a2:	8b 01                	mov    (%ecx),%eax
5c24a4:	85 c0                	test   %eax,%eax
5c24a6:	74 13                	je     0x5c24bb
5c24a8:	8b 30                	mov    (%eax),%esi
5c24aa:	6a 20                	push   $0x20
5c24ac:	50                   	push   %eax
5c24ad:	e8 a3 ed 00 00       	call   0x5d1255
5c24b2:	83 c4 08             	add    $0x8,%esp
5c24b5:	8b c6                	mov    %esi,%eax
5c24b7:	85 f6                	test   %esi,%esi
5c24b9:	75 ed                	jne    0x5c24a8
5c24bb:	8b 47 04             	mov    0x4(%edi),%eax
5c24be:	89 00                	mov    %eax,(%eax)
5c24c0:	8b 47 04             	mov    0x4(%edi),%eax
5c24c3:	89 40 04             	mov    %eax,0x4(%eax)
5c24c6:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
5c24cd:	8b 57 10             	mov    0x10(%edi),%edx
5c24d0:	8b 4f 0c             	mov    0xc(%edi),%ecx
5c24d3:	8b 47 04             	mov    0x4(%edi),%eax
5c24d6:	3b ca                	cmp    %edx,%ecx
5c24d8:	74 0f                	je     0x5c24e9
5c24da:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
5c24e0:	89 01                	mov    %eax,(%ecx)
5c24e2:	83 c1 04             	add    $0x4,%ecx
5c24e5:	3b ca                	cmp    %edx,%ecx
5c24e7:	75 f7                	jne    0x5c24e0
5c24e9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c24ec:	5f                   	pop    %edi
5c24ed:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c24f4:	5e                   	pop    %esi
5c24f5:	8b e5                	mov    %ebp,%esp
5c24f7:	5d                   	pop    %ebp
5c24f8:	c3                   	ret
5c24f9:	cc                   	int3
5c24fa:	cc                   	int3
5c24fb:	cc                   	int3
5c24fc:	cc                   	int3
5c24fd:	cc                   	int3
5c24fe:	cc                   	int3
5c24ff:	cc                   	int3
5c2500:	8b 51 04             	mov    0x4(%ecx),%edx
5c2503:	8b 41 08             	mov    0x8(%ecx),%eax
5c2506:	89 02                	mov    %eax,(%edx)
5c2508:	8b 51 08             	mov    0x8(%ecx),%edx
5c250b:	8b 41 04             	mov    0x4(%ecx),%eax
5c250e:	89 42 04             	mov    %eax,0x4(%edx)
5c2511:	c3                   	ret
5c2512:	cc                   	int3
5c2513:	cc                   	int3
5c2514:	cc                   	int3
5c2515:	cc                   	int3
5c2516:	cc                   	int3
5c2517:	cc                   	int3
5c2518:	cc                   	int3
5c2519:	cc                   	int3
5c251a:	cc                   	int3
5c251b:	cc                   	int3
5c251c:	cc                   	int3
5c251d:	cc                   	int3
5c251e:	cc                   	int3
5c251f:	cc                   	int3
5c2520:	55                   	push   %ebp
5c2521:	8b ec                	mov    %esp,%ebp
5c2523:	56                   	push   %esi
5c2524:	8b 75 08             	mov    0x8(%ebp),%esi
5c2527:	57                   	push   %edi
5c2528:	8b 7d 0c             	mov    0xc(%ebp),%edi
5c252b:	8b 8e ac 00 00 00    	mov    0xac(%esi),%ecx
5c2531:	8b 97 a8 00 00 00    	mov    0xa8(%edi),%edx
5c2537:	8b 87 ac 00 00 00    	mov    0xac(%edi),%eax
5c253d:	39 96 a8 00 00 00    	cmp    %edx,0xa8(%esi)
5c2543:	0f 85 ab 00 00 00    	jne    0x5c25f4
5c2549:	3b c8                	cmp    %eax,%ecx
5c254b:	0f 85 a5 00 00 00    	jne    0x5c25f6
5c2551:	8b 86 a0 00 00 00    	mov    0xa0(%esi),%eax
5c2557:	3b 87 a0 00 00 00    	cmp    0xa0(%edi),%eax
5c255d:	74 09                	je     0x5c2568
5c255f:	5f                   	pop    %edi
5c2560:	0f 9c c0             	setl   %al
5c2563:	5e                   	pop    %esi
5c2564:	5d                   	pop    %ebp
5c2565:	c2 08 00             	ret    $0x8
5c2568:	83 f8 14             	cmp    $0x14,%eax
5c256b:	76 19                	jbe    0x5c2586
5c256d:	68 e8 ba 66 00       	push   $0x66bae8
5c2572:	6a 59                	push   $0x59
5c2574:	68 20 bb 66 00       	push   $0x66bb20
5c2579:	e8 e2 8e ff ff       	call   0x5bb460
5c257e:	83 c4 0c             	add    $0xc,%esp
5c2581:	84 c0                	test   %al,%al
5c2583:	75 01                	jne    0x5c2586
5c2585:	cc                   	int3
5c2586:	8b 8e a0 00 00 00    	mov    0xa0(%esi),%ecx
5c258c:	c1 e1 03             	shl    $0x3,%ecx
5c258f:	83 e9 04             	sub    $0x4,%ecx
5c2592:	72 11                	jb     0x5c25a5
5c2594:	8b 06                	mov    (%esi),%eax
5c2596:	3b 07                	cmp    (%edi),%eax
5c2598:	75 10                	jne    0x5c25aa
5c259a:	83 c6 04             	add    $0x4,%esi
5c259d:	83 c7 04             	add    $0x4,%edi
5c25a0:	83 e9 04             	sub    $0x4,%ecx
5c25a3:	73 ef                	jae    0x5c2594
5c25a5:	83 f9 fc             	cmp    $0xfffffffc,%ecx
5c25a8:	74 3d                	je     0x5c25e7
5c25aa:	8a 06                	mov    (%esi),%al
5c25ac:	3a 07                	cmp    (%edi),%al
5c25ae:	75 27                	jne    0x5c25d7
5c25b0:	83 f9 fd             	cmp    $0xfffffffd,%ecx
5c25b3:	74 32                	je     0x5c25e7
5c25b5:	8a 46 01             	mov    0x1(%esi),%al
5c25b8:	3a 47 01             	cmp    0x1(%edi),%al
5c25bb:	75 1a                	jne    0x5c25d7
5c25bd:	83 f9 fe             	cmp    $0xfffffffe,%ecx
5c25c0:	74 25                	je     0x5c25e7
5c25c2:	8a 46 02             	mov    0x2(%esi),%al
5c25c5:	3a 47 02             	cmp    0x2(%edi),%al
5c25c8:	75 0d                	jne    0x5c25d7
5c25ca:	83 f9 ff             	cmp    $0xffffffff,%ecx
5c25cd:	74 18                	je     0x5c25e7
5c25cf:	8a 46 03             	mov    0x3(%esi),%al
5c25d2:	3a 47 03             	cmp    0x3(%edi),%al
5c25d5:	74 10                	je     0x5c25e7
5c25d7:	1b c0                	sbb    %eax,%eax
5c25d9:	83 c8 01             	or     $0x1,%eax
5c25dc:	85 c0                	test   %eax,%eax
5c25de:	5f                   	pop    %edi
5c25df:	0f 98 c0             	sets   %al
5c25e2:	5e                   	pop    %esi
5c25e3:	5d                   	pop    %ebp
5c25e4:	c2 08 00             	ret    $0x8
5c25e7:	33 c0                	xor    %eax,%eax
5c25e9:	85 c0                	test   %eax,%eax
5c25eb:	5f                   	pop    %edi
5c25ec:	0f 98 c0             	sets   %al
5c25ef:	5e                   	pop    %esi
5c25f0:	5d                   	pop    %ebp
5c25f1:	c2 08 00             	ret    $0x8
5c25f4:	3b c8                	cmp    %eax,%ecx
5c25f6:	77 12                	ja     0x5c260a
5c25f8:	72 08                	jb     0x5c2602
5c25fa:	39 96 a8 00 00 00    	cmp    %edx,0xa8(%esi)
5c2600:	73 08                	jae    0x5c260a
5c2602:	5f                   	pop    %edi
5c2603:	b0 01                	mov    $0x1,%al
5c2605:	5e                   	pop    %esi
5c2606:	5d                   	pop    %ebp
5c2607:	c2 08 00             	ret    $0x8
5c260a:	5f                   	pop    %edi
5c260b:	32 c0                	xor    %al,%al
5c260d:	5e                   	pop    %esi
5c260e:	5d                   	pop    %ebp
5c260f:	c2 08 00             	ret    $0x8
5c2612:	cc                   	int3
5c2613:	cc                   	int3
5c2614:	cc                   	int3
5c2615:	cc                   	int3
5c2616:	cc                   	int3
5c2617:	cc                   	int3
5c2618:	cc                   	int3
5c2619:	cc                   	int3
5c261a:	cc                   	int3
5c261b:	cc                   	int3
5c261c:	cc                   	int3
5c261d:	cc                   	int3
5c261e:	cc                   	int3
5c261f:	cc                   	int3
5c2620:	55                   	push   %ebp
5c2621:	8b ec                	mov    %esp,%ebp
5c2623:	8b 45 08             	mov    0x8(%ebp),%eax
5c2626:	85 c0                	test   %eax,%eax
5c2628:	56                   	push   %esi
5c2629:	be 01 00 00 00       	mov    $0x1,%esi
5c262e:	0f 45 f0             	cmovne %eax,%esi
5c2631:	57                   	push   %edi
5c2632:	8b f9                	mov    %ecx,%edi
5c2634:	81 fe 00 04 00 00    	cmp    $0x400,%esi
5c263a:	76 1c                	jbe    0x5c2658
5c263c:	68 98 c1 66 00       	push   $0x66c198
5c2641:	68 70 04 00 00       	push   $0x470
5c2646:	68 78 bb 66 00       	push   $0x66bb78
5c264b:	e8 10 8e ff ff       	call   0x5bb460
5c2650:	83 c4 0c             	add    $0xc,%esp
5c2653:	84 c0                	test   %al,%al
5c2655:	75 01                	jne    0x5c2658
5c2657:	cc                   	int3
5c2658:	8d 46 ff             	lea    -0x1(%esi),%eax
5c265b:	c1 e8 02             	shr    $0x2,%eax
5c265e:	8b 3c 87             	mov    (%edi,%eax,4),%edi
5c2661:	8b cf                	mov    %edi,%ecx
5c2663:	e8 98 00 00 00       	call   0x5c2700
5c2668:	8b f0                	mov    %eax,%esi
5c266a:	85 f6                	test   %esi,%esi
5c266c:	74 18                	je     0x5c2686
5c266e:	e8 fd 44 00 00       	call   0x5c6b70
5c2673:	6a 00                	push   $0x0
5c2675:	ff 77 10             	push   0x10(%edi)
5c2678:	ff b0 24 59 00 00    	push   0x5924(%eax)
5c267e:	e8 9d 5c 00 00       	call   0x5c8320
5c2683:	83 c4 0c             	add    $0xc,%esp
5c2686:	5f                   	pop    %edi
5c2687:	8b c6                	mov    %esi,%eax
5c2689:	5e                   	pop    %esi
5c268a:	5d                   	pop    %ebp
5c268b:	c2 04 00             	ret    $0x4
5c268e:	cc                   	int3
5c268f:	cc                   	int3
5c2690:	55                   	push   %ebp
5c2691:	8b ec                	mov    %esp,%ebp
5c2693:	8b 45 08             	mov    0x8(%ebp),%eax
5c2696:	85 c0                	test   %eax,%eax
5c2698:	56                   	push   %esi
5c2699:	be 01 00 00 00       	mov    $0x1,%esi
5c269e:	0f 45 f0             	cmovne %eax,%esi
5c26a1:	57                   	push   %edi
5c26a2:	8b f9                	mov    %ecx,%edi
5c26a4:	81 fe 00 40 00 00    	cmp    $0x4000,%esi
5c26aa:	76 1c                	jbe    0x5c26c8
5c26ac:	68 98 c1 66 00       	push   $0x66c198
5c26b1:	68 70 04 00 00       	push   $0x470
5c26b6:	68 78 bb 66 00       	push   $0x66bb78
5c26bb:	e8 a0 8d ff ff       	call   0x5bb460
5c26c0:	83 c4 0c             	add    $0xc,%esp
5c26c3:	84 c0                	test   %al,%al
5c26c5:	75 01                	jne    0x5c26c8
5c26c7:	cc                   	int3
5c26c8:	8d 46 ff             	lea    -0x1(%esi),%eax
5c26cb:	c1 e8 02             	shr    $0x2,%eax
5c26ce:	8b 3c 87             	mov    (%edi,%eax,4),%edi
5c26d1:	8b cf                	mov    %edi,%ecx
5c26d3:	e8 d8 01 00 00       	call   0x5c28b0
5c26d8:	8b f0                	mov    %eax,%esi
5c26da:	85 f6                	test   %esi,%esi
5c26dc:	74 18                	je     0x5c26f6
5c26de:	e8 8d 44 00 00       	call   0x5c6b70
5c26e3:	6a 00                	push   $0x0
5c26e5:	ff 77 10             	push   0x10(%edi)
5c26e8:	ff b0 24 59 00 00    	push   0x5924(%eax)
5c26ee:	e8 2d 5c 00 00       	call   0x5c8320
5c26f3:	83 c4 0c             	add    $0xc,%esp
5c26f6:	5f                   	pop    %edi
5c26f7:	8b c6                	mov    %esi,%eax
5c26f9:	5e                   	pop    %esi
5c26fa:	5d                   	pop    %ebp
5c26fb:	c2 04 00             	ret    $0x4
5c26fe:	cc                   	int3
5c26ff:	cc                   	int3
5c2700:	55                   	push   %ebp
5c2701:	8b ec                	mov    %esp,%ebp
5c2703:	83 ec 0c             	sub    $0xc,%esp
5c2706:	53                   	push   %ebx
5c2707:	56                   	push   %esi
5c2708:	8b d9                	mov    %ecx,%ebx
5c270a:	57                   	push   %edi
5c270b:	53                   	push   %ebx
5c270c:	e8 ef 84 00 00       	call   0x5cac00
5c2711:	8b f0                	mov    %eax,%esi
5c2713:	83 c4 04             	add    $0x4,%esp
5c2716:	85 f6                	test   %esi,%esi