4314f3:	83 f8 04             	cmp    $0x4,%eax
4314f6:	75 04                	jne    0x4314fc
4314f8:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
4314fc:	83 f8 02             	cmp    $0x2,%eax
4314ff:	74 05                	je     0x431506
431501:	83 f8 06             	cmp    $0x6,%eax
431504:	75 04                	jne    0x43150a
431506:	83 65 08 00          	andl   $0x0,0x8(%ebp)
43150a:	8d 47 44             	lea    0x44(%edi),%eax
43150d:	f7 df                	neg    %edi
43150f:	8d 4d 08             	lea    0x8(%ebp),%ecx
431512:	1b ff                	sbb    %edi,%edi
431514:	23 f8                	and    %eax,%edi
431516:	51                   	push   %ecx
431517:	8b 07                	mov    (%edi),%eax
431519:	8b 70 08             	mov    0x8(%eax),%esi
43151c:	8b ce                	mov    %esi,%ecx
43151e:	ff 15 2c 81 4a 00    	call   *0x4a812c
431524:	8b cf                	mov    %edi,%ecx
431526:	ff d6                	call   *%esi
431528:	b0 01                	mov    $0x1,%al
43152a:	5f                   	pop    %edi
43152b:	5e                   	pop    %esi
43152c:	5b                   	pop    %ebx
43152d:	5d                   	pop    %ebp
43152e:	c2 08 00             	ret    $0x8
431531:	8b ff                	mov    %edi,%edi
431533:	55                   	push   %ebp
431534:	8b ec                	mov    %esp,%ebp
431536:	56                   	push   %esi
431537:	8b f1                	mov    %ecx,%esi
431539:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
43153d:	8b 46 08             	mov    0x8(%esi),%eax
431540:	74 24                	je     0x431566
431542:	8b 4e 0c             	mov    0xc(%esi),%ecx
431545:	8b d0                	mov    %eax,%edx
431547:	2b 56 04             	sub    0x4(%esi),%edx
43154a:	2b 4e 04             	sub    0x4(%esi),%ecx
43154d:	c1 fa 02             	sar    $0x2,%edx
431550:	c1 f9 02             	sar    $0x2,%ecx
431553:	3b d1                	cmp    %ecx,%edx
431555:	73 0f                	jae    0x431566
431557:	8b 4d 08             	mov    0x8(%ebp),%ecx
43155a:	8d 50 04             	lea    0x4(%eax),%edx
43155d:	8b 09                	mov    (%ecx),%ecx
43155f:	89 08                	mov    %ecx,(%eax)
431561:	89 56 08             	mov    %edx,0x8(%esi)
431564:	eb 0c                	jmp    0x431572
431566:	ff 75 08             	push   0x8(%ebp)
431569:	51                   	push   %ecx
43156a:	50                   	push   %eax
43156b:	8b ce                	mov    %esi,%ecx
43156d:	e8 d5 00 00 00       	call   0x431647
431572:	5e                   	pop    %esi
431573:	5d                   	pop    %ebp
431574:	c2 04 00             	ret    $0x4
431577:	8b ff                	mov    %edi,%edi
431579:	55                   	push   %ebp
43157a:	8b ec                	mov    %esp,%ebp
43157c:	8b 51 04             	mov    0x4(%ecx),%edx
43157f:	85 d2                	test   %edx,%edx
431581:	74 16                	je     0x431599
431583:	8b 41 08             	mov    0x8(%ecx),%eax
431586:	8b 4d 08             	mov    0x8(%ebp),%ecx
431589:	2b c2                	sub    %edx,%eax
43158b:	c1 f8 02             	sar    $0x2,%eax
43158e:	3b c1                	cmp    %ecx,%eax
431590:	76 07                	jbe    0x431599
431592:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
431595:	5d                   	pop    %ebp
431596:	c2 04 00             	ret    $0x4
431599:	e8 01 00 00 00       	call   0x43159f
43159e:	cc                   	int3
43159f:	6a 48                	push   $0x48
4315a1:	b8 86 16 49 00       	mov    $0x491686,%eax
4315a6:	e8 5b ef 05 00       	call   0x490506
4315ab:	68 dc ff 40 00       	push   $0x40ffdc
4315b0:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4315b3:	e8 d4 a8 fe ff       	call   0x41be8c
4315b8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4315bc:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4315bf:	6a 00                	push   $0x0
4315c1:	50                   	push   %eax
4315c2:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4315c5:	e8 c0 ad fe ff       	call   0x41c38a
4315ca:	68 20 eb 49 00       	push   $0x49eb20
4315cf:	8d 45 ac             	lea    -0x54(%ebp),%eax
4315d2:	50                   	push   %eax
4315d3:	e8 c3 ee 05 00       	call   0x49049b
4315d8:	cc                   	int3
4315d9:	8b ff                	mov    %edi,%edi
4315db:	55                   	push   %ebp
4315dc:	8b ec                	mov    %esp,%ebp
4315de:	51                   	push   %ecx
4315df:	56                   	push   %esi
4315e0:	8b 75 08             	mov    0x8(%ebp),%esi
4315e3:	57                   	push   %edi
4315e4:	8b f9                	mov    %ecx,%edi
4315e6:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4315ec:	77 1b                	ja     0x431609
4315ee:	56                   	push   %esi
4315ef:	e8 08 ca fe ff       	call   0x41dffc
4315f4:	89 47 04             	mov    %eax,0x4(%edi)
4315f7:	89 47 08             	mov    %eax,0x8(%edi)
4315fa:	8d 04 b0             	lea    (%eax,%esi,4),%eax
4315fd:	89 47 0c             	mov    %eax,0xc(%edi)
431600:	b0 01                	mov    $0x1,%al
431602:	5f                   	pop    %edi
431603:	5e                   	pop    %esi
431604:	59                   	pop    %ecx
431605:	5d                   	pop    %ebp
431606:	c2 04 00             	ret    $0x4
431609:	e8 01 00 00 00       	call   0x43160f
43160e:	cc                   	int3
43160f:	6a 4c                	push   $0x4c
431611:	b8 3d 27 49 00       	mov    $0x49273d,%eax
431616:	e8 eb ee 05 00       	call   0x490506
43161b:	68 6c fa 40 00       	push   $0x40fa6c
431620:	8d 4d d0             	lea    -0x30(%ebp),%ecx
431623:	e8 64 a8 fe ff       	call   0x41be8c
431628:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43162c:	8d 45 d0             	lea    -0x30(%ebp),%eax
43162f:	50                   	push   %eax
431630:	8d 4d a8             	lea    -0x58(%ebp),%ecx
431633:	e8 32 a3 fe ff       	call   0x41b96a
431638:	68 c8 ea 49 00       	push   $0x49eac8
43163d:	8d 45 a8             	lea    -0x58(%ebp),%eax
431640:	50                   	push   %eax
431641:	e8 55 ee 05 00       	call   0x49049b
431646:	cc                   	int3
431647:	8b ff                	mov    %edi,%edi
431649:	55                   	push   %ebp
43164a:	8b ec                	mov    %esp,%ebp
43164c:	83 ec 0c             	sub    $0xc,%esp
43164f:	8b 45 10             	mov    0x10(%ebp),%eax
431652:	53                   	push   %ebx
431653:	8b d9                	mov    %ecx,%ebx
431655:	56                   	push   %esi
431656:	8b 00                	mov    (%eax),%eax
431658:	33 f6                	xor    %esi,%esi
43165a:	57                   	push   %edi
43165b:	8b 53 04             	mov    0x4(%ebx),%edx
43165e:	89 45 fc             	mov    %eax,-0x4(%ebp)
431661:	85 d2                	test   %edx,%edx
431663:	75 06                	jne    0x43166b
431665:	8b ce                	mov    %esi,%ecx
431667:	8b fe                	mov    %esi,%edi
431669:	eb 10                	jmp    0x43167b
43166b:	8b 4b 0c             	mov    0xc(%ebx),%ecx
43166e:	8b 7b 08             	mov    0x8(%ebx),%edi
431671:	2b ca                	sub    %edx,%ecx
431673:	2b fa                	sub    %edx,%edi
431675:	c1 f9 02             	sar    $0x2,%ecx
431678:	c1 ff 02             	sar    $0x2,%edi
43167b:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
431680:	2b c7                	sub    %edi,%eax
431682:	83 f8 01             	cmp    $0x1,%eax
431685:	0f 82 8e 01 00 00    	jb     0x431819
43168b:	85 d2                	test   %edx,%edx
43168d:	75 04                	jne    0x431693
43168f:	8b c6                	mov    %esi,%eax
431691:	eb 08                	jmp    0x43169b
431693:	8b 43 08             	mov    0x8(%ebx),%eax
431696:	2b c2                	sub    %edx,%eax
431698:	c1 f8 02             	sar    $0x2,%eax
43169b:	40                   	inc    %eax
43169c:	3b c8                	cmp    %eax,%ecx
43169e:	0f 83 cc 00 00 00    	jae    0x431770
4316a4:	8b c1                	mov    %ecx,%eax
4316a6:	bf ff ff ff 3f       	mov    $0x3fffffff,%edi
4316ab:	d1 e8                	shr    $1,%eax
4316ad:	2b f8                	sub    %eax,%edi
4316af:	03 c1                	add    %ecx,%eax
4316b1:	3b f9                	cmp    %ecx,%edi
4316b3:	8b 4b 08             	mov    0x8(%ebx),%ecx
4316b6:	1b ff                	sbb    %edi,%edi
4316b8:	f7 d7                	not    %edi
4316ba:	23 f8                	and    %eax,%edi
4316bc:	89 7d f8             	mov    %edi,-0x8(%ebp)
4316bf:	85 d2                	test   %edx,%edx
4316c1:	75 04                	jne    0x4316c7
4316c3:	8b c6                	mov    %esi,%eax
4316c5:	eb 07                	jmp    0x4316ce
4316c7:	8b c1                	mov    %ecx,%eax
4316c9:	2b c2                	sub    %edx,%eax
4316cb:	c1 f8 02             	sar    $0x2,%eax
4316ce:	40                   	inc    %eax
4316cf:	3b f8                	cmp    %eax,%edi
4316d1:	73 13                	jae    0x4316e6
4316d3:	85 d2                	test   %edx,%edx
4316d5:	75 04                	jne    0x4316db
4316d7:	8b ce                	mov    %esi,%ecx
4316d9:	eb 05                	jmp    0x4316e0
4316db:	2b ca                	sub    %edx,%ecx
4316dd:	c1 f9 02             	sar    $0x2,%ecx
4316e0:	8d 79 01             	lea    0x1(%ecx),%edi
4316e3:	89 7d f8             	mov    %edi,-0x8(%ebp)
4316e6:	57                   	push   %edi
4316e7:	e8 10 c9 fe ff       	call   0x41dffc
4316ec:	8b 4d 08             	mov    0x8(%ebp),%ecx
4316ef:	8b f8                	mov    %eax,%edi
4316f1:	2b 4b 04             	sub    0x4(%ebx),%ecx
4316f4:	c1 f9 02             	sar    $0x2,%ecx
4316f7:	8b c1                	mov    %ecx,%eax
4316f9:	c1 e0 02             	shl    $0x2,%eax
4316fc:	89 45 f4             	mov    %eax,-0xc(%ebp)
4316ff:	85 c9                	test   %ecx,%ecx
431701:	74 12                	je     0x431715
431703:	50                   	push   %eax
431704:	ff 73 04             	push   0x4(%ebx)
431707:	50                   	push   %eax
431708:	57                   	push   %edi
431709:	ff 15 c4 80 4a 00    	call   *0x4a80c4
43170f:	8b 45 f4             	mov    -0xc(%ebp),%eax
431712:	83 c4 10             	add    $0x10,%esp
431715:	8b 55 fc             	mov    -0x4(%ebp),%edx
431718:	8d 4f 04             	lea    0x4(%edi),%ecx
43171b:	03 c8                	add    %eax,%ecx
43171d:	89 14 38             	mov    %edx,(%eax,%edi,1)
431720:	8b 43 08             	mov    0x8(%ebx),%eax
431723:	2b 45 08             	sub    0x8(%ebp),%eax
431726:	c1 f8 02             	sar    $0x2,%eax
431729:	85 c0                	test   %eax,%eax
43172b:	74 12                	je     0x43173f
43172d:	c1 e0 02             	shl    $0x2,%eax
431730:	50                   	push   %eax
431731:	ff 75 08             	push   0x8(%ebp)
431734:	50                   	push   %eax
431735:	51                   	push   %ecx
431736:	ff 15 c4 80 4a 00    	call   *0x4a80c4
43173c:	83 c4 10             	add    $0x10,%esp
43173f:	8b 43 04             	mov    0x4(%ebx),%eax
431742:	85 c0                	test   %eax,%eax
431744:	74 10                	je     0x431756
431746:	8b 73 08             	mov    0x8(%ebx),%esi
431749:	2b f0                	sub    %eax,%esi
43174b:	50                   	push   %eax
43174c:	c1 fe 02             	sar    $0x2,%esi
43174f:	ff 15 10 74 4a 00    	call   *0x4a7410
431755:	59                   	pop    %ecx
431756:	8b 45 f8             	mov    -0x8(%ebp),%eax
431759:	89 7b 04             	mov    %edi,0x4(%ebx)
43175c:	8d 04 87             	lea    (%edi,%eax,4),%eax
43175f:	89 43 0c             	mov    %eax,0xc(%ebx)
431762:	8d 46 01             	lea    0x1(%esi),%eax
431765:	8d 04 87             	lea    (%edi,%eax,4),%eax
431768:	89 43 08             	mov    %eax,0x8(%ebx)
43176b:	e9 a2 00 00 00       	jmp    0x431812
431770:	8b 7b 08             	mov    0x8(%ebx),%edi
431773:	33 c9                	xor    %ecx,%ecx
431775:	8b 55 08             	mov    0x8(%ebp),%edx
431778:	8b c7                	mov    %edi,%eax
43177a:	2b c2                	sub    %edx,%eax
43177c:	41                   	inc    %ecx
43177d:	c1 f8 02             	sar    $0x2,%eax
431780:	3b c1                	cmp    %ecx,%eax
431782:	73 3f                	jae    0x4317c3
431784:	8b c7                	mov    %edi,%eax
431786:	2b c2                	sub    %edx,%eax
431788:	c1 f8 02             	sar    $0x2,%eax
43178b:	2b c8                	sub    %eax,%ecx
43178d:	74 0b                	je     0x43179a
43178f:	8b 45 fc             	mov    -0x4(%ebp),%eax
431792:	f3 ab                	rep stos %eax,%es:(%edi)
431794:	8b 7b 08             	mov    0x8(%ebx),%edi
431797:	8b 55 08             	mov    0x8(%ebp),%edx
43179a:	8d 47 04             	lea    0x4(%edi),%eax
43179d:	89 43 08             	mov    %eax,0x8(%ebx)
4317a0:	8b c7                	mov    %edi,%eax
4317a2:	2b c2                	sub    %edx,%eax
4317a4:	83 c0 03             	add    $0x3,%eax
4317a7:	c1 e8 02             	shr    $0x2,%eax
4317aa:	3b fa                	cmp    %edx,%edi
4317ac:	1b c9                	sbb    %ecx,%ecx
4317ae:	f7 d1                	not    %ecx
4317b0:	23 c8                	and    %eax,%ecx
4317b2:	74 5e                	je     0x431812
4317b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4317b7:	46                   	inc    %esi
4317b8:	89 02                	mov    %eax,(%edx)
4317ba:	8d 52 04             	lea    0x4(%edx),%edx
4317bd:	3b f1                	cmp    %ecx,%esi
4317bf:	75 f6                	jne    0x4317b7
4317c1:	eb 4f                	jmp    0x431812
4317c3:	6a 04                	push   $0x4
4317c5:	8d 47 fc             	lea    -0x4(%edi),%eax
4317c8:	50                   	push   %eax
4317c9:	6a 04                	push   $0x4
4317cb:	57                   	push   %edi
4317cc:	8d 77 04             	lea    0x4(%edi),%esi
4317cf:	ff 15 c4 80 4a 00    	call   *0x4a80c4
4317d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4317d8:	8d 47 fc             	lea    -0x4(%edi),%eax
4317db:	2b c1                	sub    %ecx,%eax
4317dd:	89 73 08             	mov    %esi,0x8(%ebx)
4317e0:	c1 f8 02             	sar    $0x2,%eax
4317e3:	83 c4 10             	add    $0x10,%esp
4317e6:	85 c0                	test   %eax,%eax
4317e8:	7e 15                	jle    0x4317ff
4317ea:	c1 e0 02             	shl    $0x2,%eax
4317ed:	50                   	push   %eax
4317ee:	51                   	push   %ecx
4317ef:	50                   	push   %eax
4317f0:	2b f8                	sub    %eax,%edi
4317f2:	57                   	push   %edi
4317f3:	ff 15 c4 80 4a 00    	call   *0x4a80c4
4317f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4317fc:	83 c4 10             	add    $0x10,%esp
4317ff:	8d 41 04             	lea    0x4(%ecx),%eax
431802:	3b c8                	cmp    %eax,%ecx
431804:	74 0c                	je     0x431812
431806:	8b 55 fc             	mov    -0x4(%ebp),%edx
431809:	89 11                	mov    %edx,(%ecx)
43180b:	83 c1 04             	add    $0x4,%ecx
43180e:	3b c8                	cmp    %eax,%ecx
431810:	75 f7                	jne    0x431809
431812:	5f                   	pop    %edi
431813:	5e                   	pop    %esi
431814:	5b                   	pop    %ebx
431815:	c9                   	leave
431816:	c2 0c 00             	ret    $0xc
431819:	e8 f1 fd ff ff       	call   0x43160f
43181e:	cc                   	int3
43181f:	8b ff                	mov    %edi,%edi
431821:	55                   	push   %ebp
431822:	8b ec                	mov    %esp,%ebp
431824:	83 ec 24             	sub    $0x24,%esp
431827:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
43182c:	33 c5                	xor    %ebp,%eax
43182e:	89 45 fc             	mov    %eax,-0x4(%ebp)
431831:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
431835:	8d 45 08             	lea    0x8(%ebp),%eax
431838:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
43183c:	89 45 ec             	mov    %eax,-0x14(%ebp)
43183f:	8d 45 dc             	lea    -0x24(%ebp),%eax
431842:	50                   	push   %eax
431843:	6a 02                	push   $0x2
431845:	51                   	push   %ecx
431846:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
43184d:	e8 51 3c ff ff       	call   0x4254a3
431852:	8b 4d fc             	mov    -0x4(%ebp),%ecx
431855:	33 cd                	xor    %ebp,%ecx
431857:	e8 a4 e6 05 00       	call   0x48ff00
43185c:	c9                   	leave
43185d:	c2 04 00             	ret    $0x4
431860:	8b ff                	mov    %edi,%edi
431862:	55                   	push   %ebp
431863:	8b ec                	mov    %esp,%ebp
431865:	83 ec 0c             	sub    $0xc,%esp
431868:	8d 45 f4             	lea    -0xc(%ebp),%eax