412660:	8b ff                	mov    %edi,%edi
412662:	55                   	push   %ebp
412663:	8b ec                	mov    %esp,%ebp
412665:	56                   	push   %esi
412666:	8b 75 0c             	mov    0xc(%ebp),%esi
412669:	80 3e 00             	cmpb   $0x0,(%esi)
41266c:	74 39                	je     0x4126a7
41266e:	53                   	push   %ebx
41266f:	57                   	push   %edi
412670:	8d 7e 14             	lea    0x14(%esi),%edi
412673:	57                   	push   %edi
412674:	ff 15 08 b1 41 00    	call   *0x41b108
41267a:	8d 9e 84 00 00 00    	lea    0x84(%esi),%ebx
412680:	8b 43 04             	mov    0x4(%ebx),%eax
412683:	2b 03                	sub    (%ebx),%eax
412685:	83 f8 0c             	cmp    $0xc,%eax
412688:	72 0c                	jb     0x412696
41268a:	8b cb                	mov    %ebx,%ecx
41268c:	e8 4f e1 ff ff       	call   0x4107e0
412691:	8b 03                	mov    (%ebx),%eax
412693:	89 43 04             	mov    %eax,0x4(%ebx)
412696:	c6 46 20 00          	movb   $0x0,0x20(%esi)
41269a:	85 ff                	test   %edi,%edi
41269c:	74 07                	je     0x4126a5
41269e:	57                   	push   %edi
41269f:	ff 15 0c b1 41 00    	call   *0x41b10c
4126a5:	5f                   	pop    %edi
4126a6:	5b                   	pop    %ebx
4126a7:	5e                   	pop    %esi
4126a8:	5d                   	pop    %ebp
4126a9:	c2 0c 00             	ret    $0xc
4126ac:	cc                   	int3
4126ad:	cc                   	int3
4126ae:	cc                   	int3
4126af:	cc                   	int3
4126b0:	8b ff                	mov    %edi,%edi
4126b2:	55                   	push   %ebp
4126b3:	8b ec                	mov    %esp,%ebp
4126b5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4126b9:	56                   	push   %esi
4126ba:	8b f1                	mov    %ecx,%esi
4126bc:	c7 06 d0 17 40 00    	movl   $0x4017d0,(%esi)
4126c2:	74 08                	je     0x4126cc
4126c4:	56                   	push   %esi
4126c5:	ff 15 cc b2 41 00    	call   *0x41b2cc
4126cb:	59                   	pop    %ecx
4126cc:	8b c6                	mov    %esi,%eax
4126ce:	5e                   	pop    %esi
4126cf:	5d                   	pop    %ebp
4126d0:	c2 04 00             	ret    $0x4
4126d3:	cc                   	int3
4126d4:	cc                   	int3
4126d5:	cc                   	int3
4126d6:	cc                   	int3
4126d7:	cc                   	int3
4126d8:	cc                   	int3
4126d9:	cc                   	int3
4126da:	cc                   	int3
4126db:	cc                   	int3
4126dc:	cc                   	int3
4126dd:	cc                   	int3
4126de:	cc                   	int3
4126df:	cc                   	int3
4126e0:	8b ff                	mov    %edi,%edi
4126e2:	55                   	push   %ebp
4126e3:	8b ec                	mov    %esp,%ebp
4126e5:	56                   	push   %esi
4126e6:	57                   	push   %edi
4126e7:	8b 7d 08             	mov    0x8(%ebp),%edi
4126ea:	8d 71 04             	lea    0x4(%ecx),%esi
4126ed:	c7 07 e4 17 40 00    	movl   $0x4017e4,(%edi)
4126f3:	83 c7 04             	add    $0x4,%edi
4126f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4126f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4126f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4126f9:	5f                   	pop    %edi
4126fa:	5e                   	pop    %esi
4126fb:	5d                   	pop    %ebp
4126fc:	c2 04 00             	ret    $0x4
4126ff:	cc                   	int3
412700:	8b ff                	mov    %edi,%edi
412702:	55                   	push   %ebp
412703:	8b ec                	mov    %esp,%ebp
412705:	53                   	push   %ebx
412706:	8b d9                	mov    %ecx,%ebx
412708:	8b 43 04             	mov    0x4(%ebx),%eax
41270b:	8b 53 08             	mov    0x8(%ebx),%edx
41270e:	8b 00                	mov    (%eax),%eax
412710:	3b 02                	cmp    (%edx),%eax
412712:	72 2d                	jb     0x412741
412714:	8b 45 18             	mov    0x18(%ebp),%eax
412717:	56                   	push   %esi
412718:	57                   	push   %edi
412719:	8b 38                	mov    (%eax),%edi
41271b:	8b 45 14             	mov    0x14(%ebp),%eax
41271e:	57                   	push   %edi
41271f:	8b 30                	mov    (%eax),%esi
412721:	8b 45 10             	mov    0x10(%ebp),%eax
412724:	56                   	push   %esi
412725:	8b 10                	mov    (%eax),%edx
412727:	8b 45 0c             	mov    0xc(%ebp),%eax
41272a:	52                   	push   %edx
41272b:	8b 08                	mov    (%eax),%ecx
41272d:	8b 45 08             	mov    0x8(%ebp),%eax
412730:	51                   	push   %ecx
412731:	8b 4b 0c             	mov    0xc(%ebx),%ecx
412734:	ff 30                	push   (%eax)
412736:	e8 7f e7 ff ff       	call   0x410eba
41273b:	5f                   	pop    %edi
41273c:	5e                   	pop    %esi
41273d:	84 c0                	test   %al,%al
41273f:	74 07                	je     0x412748
412741:	8b 43 04             	mov    0x4(%ebx),%eax
412744:	ff 00                	incl   (%eax)
412746:	b0 01                	mov    $0x1,%al
412748:	5b                   	pop    %ebx
412749:	5d                   	pop    %ebp
41274a:	c2 14 00             	ret    $0x14
41274d:	6a 18                	push   $0x18
41274f:	b8 b4 45 41 00       	mov    $0x4145b4,%eax
412754:	e8 e6 14 00 00       	call   0x413c3f
412759:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41275c:	33 f6                	xor    %esi,%esi
41275e:	8b c6                	mov    %esi,%eax
412760:	89 45 f0             	mov    %eax,-0x10(%ebp)
412763:	89 75 fc             	mov    %esi,-0x4(%ebp)
412766:	85 c9                	test   %ecx,%ecx
412768:	0f 84 a2 00 00 00    	je     0x412810
41276e:	8d 45 f0             	lea    -0x10(%ebp),%eax
412771:	50                   	push   %eax
412772:	6a 18                	push   $0x18
412774:	ff 15 14 b1 41 00    	call   *0x41b114
41277a:	50                   	push   %eax
41277b:	ff 15 14 b0 41 00    	call   *0x41b014
412781:	85 c0                	test   %eax,%eax
412783:	0f 84 84 00 00 00    	je     0x41280d
412789:	8d 45 ec             	lea    -0x14(%ebp),%eax
41278c:	89 75 ec             	mov    %esi,-0x14(%ebp)
41278f:	50                   	push   %eax
412790:	56                   	push   %esi
412791:	56                   	push   %esi
412792:	6a 19                	push   $0x19
412794:	ff 75 f0             	push   -0x10(%ebp)
412797:	ff 15 18 b0 41 00    	call   *0x41b018
41279d:	39 75 ec             	cmp    %esi,-0x14(%ebp)
4127a0:	74 6b                	je     0x41280d
4127a2:	89 75 dc             	mov    %esi,-0x24(%ebp)
4127a5:	89 75 e0             	mov    %esi,-0x20(%ebp)
4127a8:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4127ab:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4127af:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4127b2:	ff 75 ec             	push   -0x14(%ebp)
4127b5:	e8 5a 01 00 00       	call   0x412914
4127ba:	8b 7d dc             	mov    -0x24(%ebp),%edi
4127bd:	8d 45 ec             	lea    -0x14(%ebp),%eax
4127c0:	50                   	push   %eax
4127c1:	ff 75 ec             	push   -0x14(%ebp)
4127c4:	57                   	push   %edi
4127c5:	6a 19                	push   $0x19
4127c7:	ff 75 f0             	push   -0x10(%ebp)
4127ca:	ff 15 18 b0 41 00    	call   *0x41b018
4127d0:	85 c0                	test   %eax,%eax
4127d2:	74 2d                	je     0x412801
4127d4:	85 ff                	test   %edi,%edi
4127d6:	74 35                	je     0x41280d
4127d8:	8b 1f                	mov    (%edi),%ebx
4127da:	53                   	push   %ebx
4127db:	ff 15 34 b0 41 00    	call   *0x41b034
4127e1:	85 c0                	test   %eax,%eax
4127e3:	74 1c                	je     0x412801
4127e5:	53                   	push   %ebx
4127e6:	ff 15 30 b0 41 00    	call   *0x41b030
4127ec:	80 38 01             	cmpb   $0x1,(%eax)
4127ef:	72 10                	jb     0x412801
4127f1:	56                   	push   %esi
4127f2:	53                   	push   %ebx
4127f3:	ff 15 2c b0 41 00    	call   *0x41b02c
4127f9:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4127fc:	46                   	inc    %esi
4127fd:	8b 00                	mov    (%eax),%eax
4127ff:	89 01                	mov    %eax,(%ecx)
412801:	85 ff                	test   %edi,%edi
412803:	74 08                	je     0x41280d
412805:	57                   	push   %edi
412806:	ff 15 cc b2 41 00    	call   *0x41b2cc
41280c:	59                   	pop    %ecx
41280d:	8b 45 f0             	mov    -0x10(%ebp),%eax
412810:	85 c0                	test   %eax,%eax
412812:	74 0c                	je     0x412820
412814:	83 f8 ff             	cmp    $0xffffffff,%eax
412817:	74 07                	je     0x412820
412819:	50                   	push   %eax
41281a:	ff 15 54 b1 41 00    	call   *0x41b154
412820:	8b c6                	mov    %esi,%eax
412822:	e8 f5 13 00 00       	call   0x413c1c
412827:	c3                   	ret
412828:	8b ff                	mov    %edi,%edi
41282a:	55                   	push   %ebp
41282b:	8b ec                	mov    %esp,%ebp
41282d:	51                   	push   %ecx
41282e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412832:	8d 4d fc             	lea    -0x4(%ebp),%ecx
412835:	e8 13 ff ff ff       	call   0x41274d
41283a:	85 c0                	test   %eax,%eax
41283c:	75 02                	jne    0x412840
41283e:	c9                   	leave
41283f:	c3                   	ret
412840:	81 7d fc 00 20 00 00 	cmpl   $0x2000,-0x4(%ebp)
412847:	1b c0                	sbb    %eax,%eax
412849:	f7 d8                	neg    %eax
41284b:	c9                   	leave
41284c:	c3                   	ret
41284d:	8b ff                	mov    %edi,%edi
41284f:	55                   	push   %ebp
412850:	8b ec                	mov    %esp,%ebp
412852:	83 e4 f8             	and    $0xfffffff8,%esp
412855:	81 ec 38 01 00 00    	sub    $0x138,%esp
41285b:	a1 18 51 41 00       	mov    0x415118,%eax
412860:	33 c4                	xor    %esp,%eax
412862:	89 84 24 34 01 00 00 	mov    %eax,0x134(%esp)
412869:	56                   	push   %esi
41286a:	57                   	push   %edi
41286b:	8d 44 24 18          	lea    0x18(%esp),%eax
41286f:	c7 44 24 18 1c 01 00 	movl   $0x11c,0x18(%esp)
412876:	00
412877:	50                   	push   %eax
412878:	ff 15 c8 b0 41 00    	call   *0x41b0c8
41287e:	85 c0                	test   %eax,%eax
412880:	0f 95 84 24 34 01 00 	setne  0x134(%esp)
412887:	00
412888:	85 c0                	test   %eax,%eax
41288a:	74 72                	je     0x4128fe
41288c:	83 7c 24 1c 06       	cmpl   $0x6,0x1c(%esp)
412891:	72 6b                	jb     0x4128fe
412893:	8d 44 24 0c          	lea    0xc(%esp),%eax
412897:	33 ff                	xor    %edi,%edi
412899:	50                   	push   %eax
41289a:	68 19 00 02 00       	push   $0x20019
41289f:	57                   	push   %edi
4128a0:	68 f8 41 40 00       	push   $0x4041f8
4128a5:	33 f6                	xor    %esi,%esi
4128a7:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4128ab:	68 02 00 00 80       	push   $0x80000002
4128b0:	46                   	inc    %esi
4128b1:	ff 15 28 b0 41 00    	call   *0x41b028
4128b7:	85 c0                	test   %eax,%eax
4128b9:	75 3f                	jne    0x4128fa
4128bb:	8d 44 24 14          	lea    0x14(%esp),%eax
4128bf:	89 7c 24 10          	mov    %edi,0x10(%esp)
4128c3:	50                   	push   %eax
4128c4:	8d 44 24 14          	lea    0x14(%esp),%eax
4128c8:	c7 44 24 18 04 00 00 	movl   $0x4,0x18(%esp)
4128cf:	00
4128d0:	50                   	push   %eax
4128d1:	57                   	push   %edi
4128d2:	57                   	push   %edi
4128d3:	68 6c 42 40 00       	push   $0x40426c
4128d8:	ff 74 24 20          	push   0x20(%esp)
4128dc:	ff 15 24 b0 41 00    	call   *0x41b024
4128e2:	85 c0                	test   %eax,%eax
4128e4:	75 0a                	jne    0x4128f0
4128e6:	8b 44 24 10          	mov    0x10(%esp),%eax
4128ea:	f7 d8                	neg    %eax
4128ec:	1b c0                	sbb    %eax,%eax
4128ee:	23 f0                	and    %eax,%esi
4128f0:	ff 74 24 0c          	push   0xc(%esp)
4128f4:	ff 15 20 b0 41 00    	call   *0x41b020
4128fa:	8b c6                	mov    %esi,%eax
4128fc:	eb 02                	jmp    0x412900
4128fe:	33 c0                	xor    %eax,%eax
412900:	8b 8c 24 3c 01 00 00 	mov    0x13c(%esp),%ecx
412907:	5f                   	pop    %edi
412908:	5e                   	pop    %esi
412909:	33 cc                	xor    %esp,%ecx
41290b:	e8 d0 0f 00 00       	call   0x4138e0
412910:	8b e5                	mov    %ebp,%esp
412912:	5d                   	pop    %ebp
412913:	c3                   	ret
412914:	8b ff                	mov    %edi,%edi
412916:	55                   	push   %ebp
412917:	8b ec                	mov    %esp,%ebp
412919:	56                   	push   %esi
41291a:	8b f1                	mov    %ecx,%esi
41291c:	57                   	push   %edi
41291d:	8b 7d 08             	mov    0x8(%ebp),%edi
412920:	8b 46 04             	mov    0x4(%esi),%eax
412923:	8b 0e                	mov    (%esi),%ecx
412925:	2b c1                	sub    %ecx,%eax
412927:	3b f8                	cmp    %eax,%edi
412929:	73 13                	jae    0x41293e
41292b:	8d 04 39             	lea    (%ecx,%edi,1),%eax
41292e:	3b c1                	cmp    %ecx,%eax
412930:	75 05                	jne    0x412937
412932:	89 4e 04             	mov    %ecx,0x4(%esi)
412935:	eb 32                	jmp    0x412969
412937:	3b 46 04             	cmp    0x4(%esi),%eax
41293a:	74 2d                	je     0x412969
41293c:	eb 28                	jmp    0x412966
41293e:	76 29                	jbe    0x412969
412940:	2b 4e 04             	sub    0x4(%esi),%ecx
412943:	03 cf                	add    %edi,%ecx
412945:	51                   	push   %ecx
412946:	8b ce                	mov    %esi,%ecx
412948:	e8 41 00 00 00       	call   0x41298e
41294d:	8b 06                	mov    (%esi),%eax
41294f:	2b 46 04             	sub    0x4(%esi),%eax
412952:	03 c7                	add    %edi,%eax
412954:	50                   	push   %eax
412955:	6a 00                	push   $0x0
412957:	ff 76 04             	push   0x4(%esi)
41295a:	e8 02 18 00 00       	call   0x414161
41295f:	8b 06                	mov    (%esi),%eax
412961:	83 c4 0c             	add    $0xc,%esp
412964:	03 c7                	add    %edi,%eax
412966:	89 46 04             	mov    %eax,0x4(%esi)
412969:	5f                   	pop    %edi
41296a:	5e                   	pop    %esi
41296b:	5d                   	pop    %ebp
41296c:	c2 04 00             	ret    $0x4
41296f:	8b ff                	mov    %edi,%edi
412971:	56                   	push   %esi
412972:	8b f1                	mov    %ecx,%esi
412974:	83 3e 00             	cmpl   $0x0,(%esi)
412977:	74 13                	je     0x41298c
412979:	ff 36                	push   (%esi)
41297b:	ff 15 cc b2 41 00    	call   *0x41b2cc
412981:	33 c0                	xor    %eax,%eax
412983:	59                   	pop    %ecx
412984:	89 06                	mov    %eax,(%esi)
412986:	89 46 04             	mov    %eax,0x4(%esi)
412989:	89 46 08             	mov    %eax,0x8(%esi)
41298c:	5e                   	pop    %esi
41298d:	c3                   	ret
41298e:	8b ff                	mov    %edi,%edi
412990:	55                   	push   %ebp
412991:	8b ec                	mov    %esp,%ebp
412993:	56                   	push   %esi
412994:	8b f1                	mov    %ecx,%esi
412996:	57                   	push   %edi
412997:	8b 7e 08             	mov    0x8(%esi),%edi
41299a:	8b c7                	mov    %edi,%eax
41299c:	8b 56 04             	mov    0x4(%esi),%edx
41299f:	2b c2                	sub    %edx,%eax
4129a1:	3b 45 08             	cmp    0x8(%ebp),%eax
4129a4:	73 31                	jae    0x4129d7
4129a6:	8b 06                	mov    (%esi),%eax
4129a8:	2b c2                	sub    %edx,%eax
4129aa:	48                   	dec    %eax
4129ab:	3b 45 08             	cmp    0x8(%ebp),%eax
4129ae:	72 2d                	jb     0x4129dd