4146ec:	2b c1                	sub    %ecx,%eax
4146ee:	3b cb                	cmp    %ebx,%ecx
4146f0:	72 03                	jb     0x4146f5
4146f2:	03 45 ec             	add    -0x14(%ebp),%eax
4146f5:	3b 46 44             	cmp    0x44(%esi),%eax
4146f8:	72 09                	jb     0x414703
4146fa:	ff 76 30             	push   0x30(%esi)
4146fd:	ff 15 b0 a2 43 00    	call   *0x43a2b0
414703:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414706:	85 c9                	test   %ecx,%ecx
414708:	0f 85 62 ff ff ff    	jne    0x414670
41470e:	8b 55 0c             	mov    0xc(%ebp),%edx
414711:	8b 5d e8             	mov    -0x18(%ebp),%ebx
414714:	8b 45 10             	mov    0x10(%ebp),%eax
414717:	85 c0                	test   %eax,%eax
414719:	74 04                	je     0x41471f
41471b:	2b d1                	sub    %ecx,%edx
41471d:	89 10                	mov    %edx,(%eax)
41471f:	8b 46 28             	mov    0x28(%esi),%eax
414722:	83 b8 80 00 00 00 00 	cmpl   $0x0,0x80(%eax)
414729:	7d 55                	jge    0x414780
41472b:	8b c3                	mov    %ebx,%eax
41472d:	5f                   	pop    %edi
41472e:	5e                   	pop    %esi
41472f:	5b                   	pop    %ebx
414730:	8b e5                	mov    %ebp,%esp
414732:	5d                   	pop    %ebp
414733:	c2 14 00             	ret    $0x14
414736:	ff 75 18             	push   0x18(%ebp)
414739:	51                   	push   %ecx
41473a:	8b ce                	mov    %esi,%ecx
41473c:	e8 72 03 00 00       	call   0x414ab3
414741:	8b d8                	mov    %eax,%ebx
414743:	89 5d e8             	mov    %ebx,-0x18(%ebp)
414746:	85 db                	test   %ebx,%ebx
414748:	0f 89 f9 fe ff ff    	jns    0x414647
41474e:	eb dd                	jmp    0x41472d
414750:	8b f8                	mov    %eax,%edi
414752:	e9 5e ff ff ff       	jmp    0x4146b5
414757:	a9 00 00 00 40       	test   $0x40000000,%eax
41475c:	0f 85 d3 d9 00 00    	jne    0x422135
414762:	ff 75 18             	push   0x18(%ebp)
414765:	8b ce                	mov    %esi,%ecx
414767:	ff 75 14             	push   0x14(%ebp)
41476a:	e8 d5 13 00 00       	call   0x415b44
41476f:	8b d8                	mov    %eax,%ebx
414771:	89 5d e8             	mov    %ebx,-0x18(%ebp)
414774:	85 db                	test   %ebx,%ebx
414776:	74 8b                	je     0x414703
414778:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41477b:	8b 55 0c             	mov    0xc(%ebp),%edx
41477e:	eb 94                	jmp    0x414714
414780:	b8 b4 0d 04 80       	mov    $0x80040db4,%eax
414785:	eb a6                	jmp    0x41472d
414787:	8b ff                	mov    %edi,%edi
414789:	55                   	push   %ebp
41478a:	8b ec                	mov    %esp,%ebp
41478c:	83 e4 f8             	and    $0xfffffff8,%esp
41478f:	83 ec 14             	sub    $0x14,%esp
414792:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
414796:	53                   	push   %ebx
414797:	56                   	push   %esi
414798:	57                   	push   %edi
414799:	8b d9                	mov    %ecx,%ebx
41479b:	0f 84 3f da 00 00    	je     0x4221e0
4147a1:	8b 75 0c             	mov    0xc(%ebp),%esi
4147a4:	83 fe 32             	cmp    $0x32,%esi
4147a7:	0f 82 3d da 00 00    	jb     0x4221ea
4147ad:	8b 43 28             	mov    0x28(%ebx),%eax
4147b0:	33 c9                	xor    %ecx,%ecx
4147b2:	8b f9                	mov    %ecx,%edi
4147b4:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
4147ba:	89 44 24 18          	mov    %eax,0x18(%esp)
4147be:	8b 43 28             	mov    0x28(%ebx),%eax
4147c1:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
4147c7:	89 44 24 14          	mov    %eax,0x14(%esp)
4147cb:	66 39 4b 06          	cmp    %cx,0x6(%ebx)
4147cf:	0f 85 f1 00 00 00    	jne    0x4148c6
4147d5:	66 39 4b 04          	cmp    %cx,0x4(%ebx)
4147d9:	0f 84 c8 00 00 00    	je     0x4148a7
4147df:	8b 4b 28             	mov    0x28(%ebx),%ecx
4147e2:	ba 00 00 00 40       	mov    $0x40000000,%edx
4147e7:	83 e9 80             	sub    $0xffffff80,%ecx
4147ea:	e8 40 07 00 00       	call   0x414f2f
4147ef:	ff 73 2c             	push   0x2c(%ebx)
4147f2:	ff 15 b0 a2 43 00    	call   *0x43a2b0
4147f8:	ff 73 34             	push   0x34(%ebx)
4147fb:	f7 d8                	neg    %eax
4147fd:	8b cb                	mov    %ebx,%ecx
4147ff:	1b ff                	sbb    %edi,%edi
414801:	81 e7 fb bf ff 7f    	and    $0x7fffbffb,%edi
414807:	81 c7 05 40 00 80    	add    $0x80004005,%edi
41480d:	e8 e0 06 00 00       	call   0x414ef2
414812:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
414817:	8b c8                	mov    %eax,%ecx
414819:	33 c0                	xor    %eax,%eax
41481b:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
41481f:	89 44 24 0c          	mov    %eax,0xc(%esp)
414823:	8b 44 24 14          	mov    0x14(%esp),%eax
414827:	39 44 24 18          	cmp    %eax,0x18(%esp)
41482b:	74 5f                	je     0x41488c
41482d:	8b 43 28             	mov    0x28(%ebx),%eax
414830:	83 b8 80 00 00 00 00 	cmpl   $0x0,0x80(%eax)
414837:	0f 8d 82 00 00 00    	jge    0x4148bf
41483d:	6a 32                	push   $0x32
41483f:	8d 53 14             	lea    0x14(%ebx),%edx
414842:	e8 39 03 00 00       	call   0x414b80
414847:	3d 02 01 00 00       	cmp    $0x102,%eax
41484c:	75 64                	jne    0x4148b2
41484e:	8b 44 24 10          	mov    0x10(%esp),%eax
414852:	8b 54 24 0c          	mov    0xc(%esp),%edx
414856:	83 c0 32             	add    $0x32,%eax
414859:	83 c2 32             	add    $0x32,%edx
41485c:	89 44 24 10          	mov    %eax,0x10(%esp)
414860:	83 7b 48 ff          	cmpl   $0xffffffff,0x48(%ebx)
414864:	89 54 24 0c          	mov    %edx,0xc(%esp)
414868:	0f 85 87 d9 00 00    	jne    0x4221f5
41486e:	3b d6                	cmp    %esi,%edx
414870:	0f 83 92 d9 00 00    	jae    0x422208
414876:	8b 43 28             	mov    0x28(%ebx),%eax
414879:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
41487f:	8b 43 28             	mov    0x28(%ebx),%eax
414882:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
414888:	3b c8                	cmp    %eax,%ecx
41488a:	75 3e                	jne    0x4148ca
41488c:	6a 00                	push   $0x0
41488e:	6a 01                	push   $0x1
414890:	ff 73 38             	push   0x38(%ebx)
414893:	ff 15 a4 a2 43 00    	call   *0x43a2a4
414899:	85 c0                	test   %eax,%eax
41489b:	0f 84 a4 d9 00 00    	je     0x422245
4148a1:	33 c0                	xor    %eax,%eax
4148a3:	66 89 43 04          	mov    %ax,0x4(%ebx)
4148a7:	8b c7                	mov    %edi,%eax
4148a9:	5f                   	pop    %edi
4148aa:	5e                   	pop    %esi
4148ab:	5b                   	pop    %ebx
4148ac:	8b e5                	mov    %ebp,%esp
4148ae:	5d                   	pop    %ebp
4148af:	c2 08 00             	ret    $0x8
4148b2:	83 f8 ff             	cmp    $0xffffffff,%eax
4148b5:	0f 84 6f d9 00 00    	je     0x42222a
4148bb:	85 c0                	test   %eax,%eax
4148bd:	74 8f                	je     0x41484e
4148bf:	b8 b4 0d 04 80       	mov    $0x80040db4,%eax
4148c4:	eb e3                	jmp    0x4148a9
4148c6:	33 c0                	xor    %eax,%eax
4148c8:	eb df                	jmp    0x4148a9
4148ca:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4148ce:	e9 5a ff ff ff       	jmp    0x41482d
4148d3:	8b ff                	mov    %edi,%edi
4148d5:	55                   	push   %ebp
4148d6:	8b ec                	mov    %esp,%ebp
4148d8:	53                   	push   %ebx
4148d9:	56                   	push   %esi
4148da:	57                   	push   %edi
4148db:	8b 7d 08             	mov    0x8(%ebp),%edi
4148de:	8b d9                	mov    %ecx,%ebx
4148e0:	85 ff                	test   %edi,%edi
4148e2:	74 17                	je     0x4148fb
4148e4:	8b 07                	mov    (%edi),%eax
4148e6:	57                   	push   %edi
4148e7:	8b 70 04             	mov    0x4(%eax),%esi
4148ea:	81 fe d0 c5 40 00    	cmp    $0x40c5d0,%esi
4148f0:	0f 85 83 d9 00 00    	jne    0x422279
4148f6:	e8 d5 7c ff ff       	call   0x40c5d0
4148fb:	8b 03                	mov    (%ebx),%eax
4148fd:	85 c0                	test   %eax,%eax
4148ff:	0f 85 83 d9 00 00    	jne    0x422288
414905:	89 3b                	mov    %edi,(%ebx)
414907:	8b c7                	mov    %edi,%eax
414909:	5f                   	pop    %edi
41490a:	5e                   	pop    %esi
41490b:	5b                   	pop    %ebx
41490c:	5d                   	pop    %ebp
41490d:	c2 04 00             	ret    $0x4
414910:	8b ff                	mov    %edi,%edi
414912:	55                   	push   %ebp
414913:	8b ec                	mov    %esp,%ebp
414915:	6a ff                	push   $0xffffffff
414917:	68 6e e2 41 00       	push   $0x41e26e
41491c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
414922:	50                   	push   %eax
414923:	56                   	push   %esi
414924:	a1 08 85 43 00       	mov    0x438508,%eax
414929:	33 c5                	xor    %ebp,%eax
41492b:	50                   	push   %eax
41492c:	8d 45 f4             	lea    -0xc(%ebp),%eax
41492f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
414935:	8b 09                	mov    (%ecx),%ecx
414937:	85 c9                	test   %ecx,%ecx
414939:	0f 85 5e d9 00 00    	jne    0x42229d
41493f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414942:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
414949:	59                   	pop    %ecx
41494a:	5e                   	pop    %esi
41494b:	c9                   	leave
41494c:	c3                   	ret
41494d:	cc                   	int3
41494e:	cc                   	int3
41494f:	cc                   	int3
414950:	8b ff                	mov    %edi,%edi
414952:	55                   	push   %ebp
414953:	8b ec                	mov    %esp,%ebp
414955:	8d 41 10             	lea    0x10(%ecx),%eax
414958:	50                   	push   %eax
414959:	68 00 04 00 00       	push   $0x400
41495e:	6a 20                	push   $0x20
414960:	ff 75 08             	push   0x8(%ebp)
414963:	e8 04 00 00 00       	call   0x41496c
414968:	5d                   	pop    %ebp
414969:	c2 04 00             	ret    $0x4
41496c:	8b ff                	mov    %edi,%edi
41496e:	55                   	push   %ebp
41496f:	8b ec                	mov    %esp,%ebp
414971:	51                   	push   %ecx
414972:	51                   	push   %ecx
414973:	53                   	push   %ebx
414974:	8b d9                	mov    %ecx,%ebx
414976:	56                   	push   %esi
414977:	57                   	push   %edi
414978:	8b 7d 08             	mov    0x8(%ebp),%edi
41497b:	8b 73 08             	mov    0x8(%ebx),%esi
41497e:	3b fe                	cmp    %esi,%edi
414980:	0f 86 9d 00 00 00    	jbe    0x414a23
414986:	3b 7d 10             	cmp    0x10(%ebp),%edi
414989:	0f 87 23 d9 00 00    	ja     0x4222b2
41498f:	3b 75 0c             	cmp    0xc(%ebp),%esi
414992:	72 03                	jb     0x414997
414994:	8b 75 0c             	mov    0xc(%ebp),%esi
414997:	33 d2                	xor    %edx,%edx
414999:	8b c7                	mov    %edi,%eax
41499b:	f7 f6                	div    %esi
41499d:	85 d2                	test   %edx,%edx
41499f:	74 04                	je     0x4149a5
4149a1:	2b f2                	sub    %edx,%esi
4149a3:	03 fe                	add    %esi,%edi
4149a5:	6a 02                	push   $0x2
4149a7:	59                   	pop    %ecx
4149a8:	8b c7                	mov    %edi,%eax
4149aa:	f7 e1                	mul    %ecx
4149ac:	8b c8                	mov    %eax,%ecx
4149ae:	85 d2                	test   %edx,%edx
4149b0:	72 0f                	jb     0x4149c1
4149b2:	0f 87 3c d9 00 00    	ja     0x4222f4
4149b8:	83 f9 ff             	cmp    $0xffffffff,%ecx
4149bb:	0f 87 33 d9 00 00    	ja     0x4222f4
4149c1:	8b 43 04             	mov    0x4(%ebx),%eax
4149c4:	2b 45 14             	sub    0x14(%ebp),%eax
4149c7:	f7 d8                	neg    %eax
4149c9:	51                   	push   %ecx
4149ca:	1b c0                	sbb    %eax,%eax
4149cc:	23 43 04             	and    0x4(%ebx),%eax
4149cf:	50                   	push   %eax
4149d0:	ff 15 ec a4 43 00    	call   *0x43a4ec
4149d6:	8b f0                	mov    %eax,%esi
4149d8:	59                   	pop    %ecx
4149d9:	59                   	pop    %ecx
4149da:	85 f6                	test   %esi,%esi
4149dc:	0f 84 e1 d8 00 00    	je     0x4222c3
4149e2:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4149e5:	8d 41 01             	lea    0x1(%ecx),%eax
4149e8:	3b c1                	cmp    %ecx,%eax
4149ea:	0f 82 ea d8 00 00    	jb     0x4222da
4149f0:	6a 02                	push   $0x2
4149f2:	59                   	pop    %ecx
4149f3:	f7 e1                	mul    %ecx
4149f5:	8b c8                	mov    %eax,%ecx
4149f7:	85 d2                	test   %edx,%edx
4149f9:	72 0f                	jb     0x414a0a
4149fb:	0f 87 d9 d8 00 00    	ja     0x4222da
414a01:	83 f9 ff             	cmp    $0xffffffff,%ecx
414a04:	0f 87 d0 d8 00 00    	ja     0x4222da
414a0a:	8b 45 14             	mov    0x14(%ebp),%eax
414a0d:	39 43 04             	cmp    %eax,0x4(%ebx)
414a10:	75 0b                	jne    0x414a1d
414a12:	51                   	push   %ecx
414a13:	50                   	push   %eax
414a14:	56                   	push   %esi
414a15:	e8 cc 64 00 00       	call   0x41aee6
414a1a:	83 c4 0c             	add    $0xc,%esp
414a1d:	89 73 04             	mov    %esi,0x4(%ebx)
414a20:	89 7b 08             	mov    %edi,0x8(%ebx)
414a23:	5f                   	pop    %edi
414a24:	5e                   	pop    %esi
414a25:	5b                   	pop    %ebx
414a26:	c9                   	leave
414a27:	c2 10 00             	ret    $0x10
414a2a:	8b ff                	mov    %edi,%edi
414a2c:	55                   	push   %ebp
414a2d:	8b ec                	mov    %esp,%ebp
414a2f:	51                   	push   %ecx
414a30:	53                   	push   %ebx
414a31:	56                   	push   %esi
414a32:	8b f1                	mov    %ecx,%esi
414a34:	57                   	push   %edi
414a35:	ff 76 2c             	push   0x2c(%esi)
414a38:	e8 b5 04 00 00       	call   0x414ef2
414a3d:	83 7e 48 ff          	cmpl   $0xffffffff,0x48(%esi)
414a41:	8b c8                	mov    %eax,%ecx
414a43:	89 4d fc             	mov    %ecx,-0x4(%ebp)
414a46:	bf 10 27 00 00       	mov    $0x2710,%edi
414a4b:	74 05                	je     0x414a52
414a4d:	39 7e 48             	cmp    %edi,0x48(%esi)
414a50:	72 51                	jb     0x414aa3
414a52:	33 db                	xor    %ebx,%ebx
414a54:	8d 46 14             	lea    0x14(%esi),%eax
414a57:	57                   	push   %edi
414a58:	8b d0                	mov    %eax,%edx
414a5a:	e8 21 01 00 00       	call   0x414b80
414a5f:	8b 56 28             	mov    0x28(%esi),%edx
414a62:	8b 8a 80 00 00 00    	mov    0x80(%edx),%ecx
414a68:	85 c9                	test   %ecx,%ecx
414a6a:	79 40                	jns    0x414aac
414a6c:	3d 02 01 00 00       	cmp    $0x102,%eax
414a71:	75 24                	jne    0x414a97
414a73:	f7 c1 00 00 00 40    	test   $0x40000000,%ecx
414a79:	0f 85 8b d8 00 00    	jne    0x42230a
414a7f:	83 7e 48 ff          	cmpl   $0xffffffff,0x48(%esi)
414a83:	75 23                	jne    0x414aa8
414a85:	8d 46 14             	lea    0x14(%esi),%eax
414a88:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414a8b:	3b 5e 48             	cmp    0x48(%esi),%ebx
414a8e:	72 c7                	jb     0x414a57
414a90:	b8 b4 05 07 80       	mov    $0x800705b4,%eax
414a95:	eb 07                	jmp    0x414a9e
414a97:	8b c8                	mov    %eax,%ecx
414a99:	e8 a8 04 00 00       	call   0x414f46
414a9e:	5f                   	pop    %edi
414a9f:	5e                   	pop    %esi
414aa0:	5b                   	pop    %ebx
414aa1:	c9                   	leave
414aa2:	c3                   	ret
414aa3:	8b 7e 48             	mov    0x48(%esi),%edi
414aa6:	eb aa                	jmp    0x414a52
414aa8:	03 df                	add    %edi,%ebx
414aaa:	eb d9                	jmp    0x414a85
414aac:	b8 b4 0d 04 80       	mov    $0x80040db4,%eax
414ab1:	eb eb                	jmp    0x414a9e
414ab3:	8b ff                	mov    %edi,%edi
414ab5:	55                   	push   %ebp
414ab6:	8b ec                	mov    %esp,%ebp
414ab8:	83 ec 14             	sub    $0x14,%esp
414abb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
414abf:	53                   	push   %ebx
414ac0:	56                   	push   %esi
414ac1:	57                   	push   %edi
414ac2:	8b d9                	mov    %ecx,%ebx
414ac4:	0f 84 5b d8 00 00    	je     0x422325
414aca:	ff 73 3c             	push   0x3c(%ebx)