53a60d:	3b c1                	cmp    %ecx,%eax
53a60f:	73 10                	jae    0x53a621
53a611:	81 f9 55 55 55 05    	cmp    $0x5555555,%ecx
53a617:	77 0c                	ja     0x53a625
53a619:	51                   	push   %ecx
53a61a:	8b ce                	mov    %esi,%ecx
53a61c:	e8 e5 9f ec ff       	call   0x404606
53a621:	5e                   	pop    %esi
53a622:	c2 04 00             	ret    $0x4
53a625:	68 58 20 bd 00       	push   $0xbd2058
53a62a:	e8 e7 f1 ee ff       	call   0x429816
53a62f:	cc                   	int3
53a630:	cc                   	int3
53a631:	cc                   	int3
53a632:	cc                   	int3
53a633:	cc                   	int3
53a634:	cc                   	int3
53a635:	cc                   	int3
53a636:	cc                   	int3
53a637:	cc                   	int3
53a638:	cc                   	int3
53a639:	cc                   	int3
53a63a:	cc                   	int3
53a63b:	cc                   	int3
53a63c:	cc                   	int3
53a63d:	cc                   	int3
53a63e:	cc                   	int3
53a63f:	cc                   	int3
53a640:	8b 41 08             	mov    0x8(%ecx),%eax
53a643:	2b 01                	sub    (%ecx),%eax
53a645:	8b 54 24 04          	mov    0x4(%esp),%edx
53a649:	c1 f8 02             	sar    $0x2,%eax
53a64c:	3b c2                	cmp    %edx,%eax
53a64e:	73 11                	jae    0x53a661
53a650:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
53a656:	77 0c                	ja     0x53a664
53a658:	89 54 24 04          	mov    %edx,0x4(%esp)
53a65c:	e9 b9 83 ef ff       	jmp    0x432a1a
53a661:	c2 04 00             	ret    $0x4
53a664:	68 58 20 bd 00       	push   $0xbd2058
53a669:	e8 a8 f1 ee ff       	call   0x429816
53a66e:	cc                   	int3
53a66f:	cc                   	int3
53a670:	cc                   	int3
53a671:	cc                   	int3
53a672:	cc                   	int3
53a673:	cc                   	int3
53a674:	cc                   	int3
53a675:	cc                   	int3
53a676:	cc                   	int3
53a677:	cc                   	int3
53a678:	cc                   	int3
53a679:	cc                   	int3
53a67a:	cc                   	int3
53a67b:	cc                   	int3
53a67c:	cc                   	int3
53a67d:	cc                   	int3
53a67e:	cc                   	int3
53a67f:	cc                   	int3
53a680:	8b 41 08             	mov    0x8(%ecx),%eax
53a683:	c3                   	ret
53a684:	cc                   	int3
53a685:	cc                   	int3
53a686:	cc                   	int3
53a687:	cc                   	int3
53a688:	cc                   	int3
53a689:	cc                   	int3
53a68a:	cc                   	int3
53a68b:	cc                   	int3
53a68c:	cc                   	int3
53a68d:	cc                   	int3
53a68e:	cc                   	int3
53a68f:	cc                   	int3
53a690:	8b 41 04             	mov    0x4(%ecx),%eax
53a693:	c3                   	ret
53a694:	cc                   	int3
53a695:	cc                   	int3
53a696:	cc                   	int3
53a697:	cc                   	int3
53a698:	cc                   	int3
53a699:	cc                   	int3
53a69a:	cc                   	int3
53a69b:	cc                   	int3
53a69c:	cc                   	int3
53a69d:	cc                   	int3
53a69e:	cc                   	int3
53a69f:	cc                   	int3
53a6a0:	8b 41 04             	mov    0x4(%ecx),%eax
53a6a3:	2b 01                	sub    (%ecx),%eax
53a6a5:	c1 f8 02             	sar    $0x2,%eax
53a6a8:	c3                   	ret
53a6a9:	cc                   	int3
53a6aa:	cc                   	int3
53a6ab:	cc                   	int3
53a6ac:	cc                   	int3
53a6ad:	cc                   	int3
53a6ae:	cc                   	int3
53a6af:	cc                   	int3
53a6b0:	8b 51 04             	mov    0x4(%ecx),%edx
53a6b3:	b8 4f ec c4 4e       	mov    $0x4ec4ec4f,%eax
53a6b8:	2b 11                	sub    (%ecx),%edx
53a6ba:	f7 ea                	imul   %edx
53a6bc:	c1 fa 04             	sar    $0x4,%edx
53a6bf:	8b c2                	mov    %edx,%eax
53a6c1:	c1 e8 1f             	shr    $0x1f,%eax
53a6c4:	03 c2                	add    %edx,%eax
53a6c6:	c3                   	ret
53a6c7:	cc                   	int3
53a6c8:	cc                   	int3
53a6c9:	cc                   	int3
53a6ca:	cc                   	int3
53a6cb:	cc                   	int3
53a6cc:	cc                   	int3
53a6cd:	cc                   	int3
53a6ce:	cc                   	int3
53a6cf:	cc                   	int3
53a6d0:	8b 51 04             	mov    0x4(%ecx),%edx
53a6d3:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
53a6d8:	2b 11                	sub    (%ecx),%edx
53a6da:	f7 ea                	imul   %edx
53a6dc:	c1 fa 03             	sar    $0x3,%edx
53a6df:	8b c2                	mov    %edx,%eax
53a6e1:	c1 e8 1f             	shr    $0x1f,%eax
53a6e4:	03 c2                	add    %edx,%eax
53a6e6:	c3                   	ret
53a6e7:	cc                   	int3
53a6e8:	cc                   	int3
53a6e9:	cc                   	int3
53a6ea:	cc                   	int3
53a6eb:	cc                   	int3
53a6ec:	cc                   	int3
53a6ed:	cc                   	int3
53a6ee:	cc                   	int3
53a6ef:	cc                   	int3
53a6f0:	8b 41 04             	mov    0x4(%ecx),%eax
53a6f3:	2b 01                	sub    (%ecx),%eax
53a6f5:	c1 f8 02             	sar    $0x2,%eax
53a6f8:	c3                   	ret
53a6f9:	cc                   	int3
53a6fa:	cc                   	int3
53a6fb:	cc                   	int3
53a6fc:	cc                   	int3
53a6fd:	cc                   	int3
53a6fe:	cc                   	int3
53a6ff:	cc                   	int3
53a700:	e9 37 d6 ed ff       	jmp    0x417d3c
53a705:	cc                   	int3
53a706:	cc                   	int3
53a707:	cc                   	int3
53a708:	cc                   	int3
53a709:	cc                   	int3
53a70a:	cc                   	int3
53a70b:	cc                   	int3
53a70c:	cc                   	int3
53a70d:	cc                   	int3
53a70e:	cc                   	int3
53a70f:	cc                   	int3
53a710:	8b 44 24 04          	mov    0x4(%esp),%eax
53a714:	8b 11                	mov    (%ecx),%edx
53a716:	8b 49 04             	mov    0x4(%ecx),%ecx
53a719:	89 10                	mov    %edx,(%eax)
53a71b:	89 48 04             	mov    %ecx,0x4(%eax)
53a71e:	c2 04 00             	ret    $0x4
53a721:	cc                   	int3
53a722:	cc                   	int3
53a723:	cc                   	int3
53a724:	cc                   	int3
53a725:	cc                   	int3
53a726:	cc                   	int3
53a727:	cc                   	int3
53a728:	cc                   	int3
53a729:	cc                   	int3
53a72a:	cc                   	int3
53a72b:	cc                   	int3
53a72c:	cc                   	int3
53a72d:	cc                   	int3
53a72e:	cc                   	int3
53a72f:	cc                   	int3
53a730:	8b 44 24 04          	mov    0x4(%esp),%eax
53a734:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
53a73a:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
53a741:	c3                   	ret
53a742:	cc                   	int3
53a743:	cc                   	int3
53a744:	cc                   	int3
53a745:	cc                   	int3
53a746:	cc                   	int3
53a747:	cc                   	int3
53a748:	cc                   	int3
53a749:	cc                   	int3
53a74a:	cc                   	int3
53a74b:	cc                   	int3
53a74c:	cc                   	int3
53a74d:	cc                   	int3
53a74e:	cc                   	int3
53a74f:	cc                   	int3
53a750:	33 c0                	xor    %eax,%eax
53a752:	33 d2                	xor    %edx,%edx
53a754:	c3                   	ret
53a755:	cc                   	int3
53a756:	cc                   	int3
53a757:	cc                   	int3
53a758:	cc                   	int3
53a759:	cc                   	int3
53a75a:	cc                   	int3
53a75b:	cc                   	int3
53a75c:	cc                   	int3
53a75d:	cc                   	int3
53a75e:	cc                   	int3
53a75f:	cc                   	int3
53a760:	e9 a5 66 ee ff       	jmp    0x420e0a
53a765:	cc                   	int3
53a766:	cc                   	int3
53a767:	cc                   	int3
53a768:	cc                   	int3
53a769:	cc                   	int3
53a76a:	cc                   	int3
53a76b:	cc                   	int3
53a76c:	cc                   	int3
53a76d:	cc                   	int3
53a76e:	cc                   	int3
53a76f:	cc                   	int3
53a770:	8b 44 24 08          	mov    0x8(%esp),%eax
53a774:	8b 00                	mov    (%eax),%eax
53a776:	89 01                	mov    %eax,(%ecx)
53a778:	8b c1                	mov    %ecx,%eax
53a77a:	c2 08 00             	ret    $0x8
53a77d:	cc                   	int3
53a77e:	cc                   	int3
53a77f:	cc                   	int3
53a780:	8b 44 24 08          	mov    0x8(%esp),%eax
53a784:	8b 00                	mov    (%eax),%eax
53a786:	89 01                	mov    %eax,(%ecx)
53a788:	8b c1                	mov    %ecx,%eax
53a78a:	c2 08 00             	ret    $0x8
53a78d:	cc                   	int3
53a78e:	cc                   	int3
53a78f:	cc                   	int3
53a790:	8b 44 24 08          	mov    0x8(%esp),%eax
53a794:	8b 00                	mov    (%eax),%eax
53a796:	89 01                	mov    %eax,(%ecx)
53a798:	8b c1                	mov    %ecx,%eax
53a79a:	c2 08 00             	ret    $0x8
53a79d:	cc                   	int3
53a79e:	cc                   	int3
53a79f:	cc                   	int3
53a7a0:	8b 44 24 04          	mov    0x4(%esp),%eax
53a7a4:	8a 00                	mov    (%eax),%al
53a7a6:	88 01                	mov    %al,(%ecx)
53a7a8:	8b c1                	mov    %ecx,%eax
53a7aa:	c2 04 00             	ret    $0x4
53a7ad:	cc                   	int3
53a7ae:	cc                   	int3
53a7af:	cc                   	int3
53a7b0:	51                   	push   %ecx
53a7b1:	56                   	push   %esi
53a7b2:	8b f1                	mov    %ecx,%esi
53a7b4:	57                   	push   %edi
53a7b5:	8b 7c 24 10          	mov    0x10(%esp),%edi
53a7b9:	89 74 24 08          	mov    %esi,0x8(%esp)
53a7bd:	c7 06 f8 1c bd 00    	movl   $0xbd1cf8,(%esi)
53a7c3:	8d 46 04             	lea    0x4(%esi),%eax
53a7c6:	89 86 08 01 00 00    	mov    %eax,0x108(%esi)
53a7cc:	c7 86 0c 01 00 00 04 	movl   $0x104,0x10c(%esi)
53a7d3:	01 00 00
53a7d6:	3b f7                	cmp    %edi,%esi
53a7d8:	74 25                	je     0x53a7ff
53a7da:	ff b7 0c 01 00 00    	push   0x10c(%edi)
53a7e0:	e8 a4 5b ed ff       	call   0x410389
53a7e5:	ff b7 0c 01 00 00    	push   0x10c(%edi)
53a7eb:	ff b7 08 01 00 00    	push   0x108(%edi)
53a7f1:	ff b6 08 01 00 00    	push   0x108(%esi)
53a7f7:	e8 86 9e ed ff       	call   0x414682
53a7fc:	83 c4 0c             	add    $0xc,%esp
53a7ff:	5f                   	pop    %edi
53a800:	8b c6                	mov    %esi,%eax
53a802:	c7 06 04 1d bd 00    	movl   $0xbd1d04,(%esi)
53a808:	5e                   	pop    %esi
53a809:	59                   	pop    %ecx
53a80a:	c2 04 00             	ret    $0x4
53a80d:	cc                   	int3
53a80e:	cc                   	int3
53a80f:	cc                   	int3
53a810:	cc                   	int3
53a811:	cc                   	int3
53a812:	cc                   	int3
53a813:	cc                   	int3
53a814:	cc                   	int3
53a815:	cc                   	int3
53a816:	cc                   	int3
53a817:	cc                   	int3
53a818:	cc                   	int3
53a819:	cc                   	int3
53a81a:	cc                   	int3
53a81b:	cc                   	int3
53a81c:	cc                   	int3
53a81d:	cc                   	int3
53a81e:	cc                   	int3
53a81f:	cc                   	int3
53a820:	cc                   	int3
53a821:	cc                   	int3
53a822:	cc                   	int3
53a823:	cc                   	int3
53a824:	cc                   	int3
53a825:	cc                   	int3
53a826:	cc                   	int3
53a827:	cc                   	int3
53a828:	cc                   	int3
53a829:	cc                   	int3
53a82a:	cc                   	int3
53a82b:	cc                   	int3
53a82c:	cc                   	int3
53a82d:	cc                   	int3
53a82e:	cc                   	int3
53a82f:	cc                   	int3
53a830:	8b 44 24 04          	mov    0x4(%esp),%eax
53a834:	8b 00                	mov    (%eax),%eax
53a836:	89 01                	mov    %eax,(%ecx)
53a838:	8b c1                	mov    %ecx,%eax
53a83a:	c2 04 00             	ret    $0x4
53a83d:	cc                   	int3
53a83e:	cc                   	int3
53a83f:	cc                   	int3
53a840:	51                   	push   %ecx
53a841:	56                   	push   %esi
53a842:	ff 74 24 18          	push   0x18(%esp)
53a846:	8b f1                	mov    %ecx,%esi
53a848:	ff 74 24 18          	push   0x18(%esp)
53a84c:	89 74 24 0c          	mov    %esi,0xc(%esp)
53a850:	ff 74 24 18          	push   0x18(%esp)
53a854:	c6 44 24 10 00       	movb   $0x0,0x10(%esp)
53a859:	ff 74 24 10          	push   0x10(%esp)
53a85d:	e8 d9 ee ed ff       	call   0x41973b
53a862:	8b 44 24 0c          	mov    0xc(%esp),%eax
53a866:	8b 00                	mov    (%eax),%eax
53a868:	89 86 18 01 00 00    	mov    %eax,0x118(%esi)
53a86e:	8b c6                	mov    %esi,%eax
53a870:	5e                   	pop    %esi
53a871:	59                   	pop    %ecx
53a872:	c2 10 00             	ret    $0x10
53a875:	cc                   	int3
53a876:	cc                   	int3
53a877:	cc                   	int3
53a878:	cc                   	int3
53a879:	cc                   	int3
53a87a:	cc                   	int3
53a87b:	cc                   	int3
53a87c:	cc                   	int3
53a87d:	cc                   	int3
53a87e:	cc                   	int3