41bad7:	83 ff 03             	cmp    $0x3,%edi
41bada:	7d f0                	jge    0x41bacc
41badc:	89 be 84 00 00 00    	mov    %edi,0x84(%esi)
41bae2:	eb 08                	jmp    0x41baec
41bae4:	8d 4e 70             	lea    0x70(%esi),%ecx
41bae7:	e8 55 00 00 00       	call   0x41bb41
41baec:	83 7e 78 03          	cmpl   $0x3,0x78(%esi)
41baf0:	76 0f                	jbe    0x41bb01
41baf2:	8b 4e 78             	mov    0x78(%esi),%ecx
41baf5:	8b 46 74             	mov    0x74(%esi),%eax
41baf8:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
41bafc:	83 38 00             	cmpl   $0x0,(%eax)
41baff:	74 e3                	je     0x41bae4
41bb01:	5f                   	pop    %edi
41bb02:	5e                   	pop    %esi
41bb03:	5b                   	pop    %ebx
41bb04:	5d                   	pop    %ebp
41bb05:	c2 04 00             	ret    $0x4
41bb08:	56                   	push   %esi
41bb09:	8b f1                	mov    %ecx,%esi
41bb0b:	e8 0d 00 00 00       	call   0x41bb1d
41bb10:	56                   	push   %esi
41bb11:	e8 48 3a 00 00       	call   0x41f55e
41bb16:	59                   	pop    %ecx
41bb17:	8b c6                	mov    %esi,%eax
41bb19:	5e                   	pop    %esi
41bb1a:	c2 04 00             	ret    $0x4
41bb1d:	56                   	push   %esi
41bb1e:	8b f1                	mov    %ecx,%esi
41bb20:	8d 4e 70             	lea    0x70(%esi),%ecx
41bb23:	e8 f8 70 ff ff       	call   0x412c20
41bb28:	8d 4e 54             	lea    0x54(%esi),%ecx
41bb2b:	e8 07 10 ff ff       	call   0x40cb37
41bb30:	8d 4e 24             	lea    0x24(%esi),%ecx
41bb33:	e8 ff 0f ff ff       	call   0x40cb37
41bb38:	8d 4e 14             	lea    0x14(%esi),%ecx
41bb3b:	5e                   	pop    %esi
41bb3c:	e9 f6 0f ff ff       	jmp    0x40cb37
41bb41:	56                   	push   %esi
41bb42:	8b f1                	mov    %ecx,%esi
41bb44:	ff 4e 08             	decl   0x8(%esi)
41bb47:	8b 56 08             	mov    0x8(%esi),%edx
41bb4a:	8b 46 04             	mov    0x4(%esi),%eax
41bb4d:	ff 34 90             	push   (%eax,%edx,4)
41bb50:	e8 09 3a 00 00       	call   0x41f55e
41bb55:	8b 46 04             	mov    0x4(%esi),%eax
41bb58:	59                   	pop    %ecx
41bb59:	8b 4e 08             	mov    0x8(%esi),%ecx
41bb5c:	5e                   	pop    %esi
41bb5d:	83 24 88 00          	andl   $0x0,(%eax,%ecx,4)
41bb61:	c3                   	ret
41bb62:	56                   	push   %esi
41bb63:	8b f1                	mov    %ecx,%esi
41bb65:	e8 0d 00 00 00       	call   0x41bb77
41bb6a:	56                   	push   %esi
41bb6b:	e8 ee 39 00 00       	call   0x41f55e
41bb70:	59                   	pop    %ecx
41bb71:	8b c6                	mov    %esi,%eax
41bb73:	5e                   	pop    %esi
41bb74:	c2 04 00             	ret    $0x4
41bb77:	56                   	push   %esi
41bb78:	68 37 cb 40 00       	push   $0x40cb37
41bb7d:	6a 0e                	push   $0xe
41bb7f:	8b f1                	mov    %ecx,%esi
41bb81:	6a 10                	push   $0x10
41bb83:	8d 8e 8c 00 00 00    	lea    0x8c(%esi),%ecx
41bb89:	5a                   	pop    %edx
41bb8a:	e8 5d 93 fe ff       	call   0x404eec
41bb8f:	8d 4e 6c             	lea    0x6c(%esi),%ecx
41bb92:	e8 a0 0f ff ff       	call   0x40cb37
41bb97:	8d 4e 28             	lea    0x28(%esi),%ecx
41bb9a:	5e                   	pop    %esi
41bb9b:	e9 97 0f ff ff       	jmp    0x40cb37
41bba0:	53                   	push   %ebx
41bba1:	56                   	push   %esi
41bba2:	8b f1                	mov    %ecx,%esi
41bba4:	33 c0                	xor    %eax,%eax
41bba6:	57                   	push   %edi
41bba7:	6a 02                	push   $0x2
41bba9:	5f                   	pop    %edi
41bbaa:	83 cb ff             	or     $0xffffffff,%ebx
41bbad:	8d 4e 28             	lea    0x28(%esi),%ecx
41bbb0:	89 06                	mov    %eax,(%esi)
41bbb2:	89 46 08             	mov    %eax,0x8(%esi)
41bbb5:	89 46 0c             	mov    %eax,0xc(%esi)
41bbb8:	89 7e 10             	mov    %edi,0x10(%esi)
41bbbb:	89 46 14             	mov    %eax,0x14(%esi)
41bbbe:	89 46 18             	mov    %eax,0x18(%esi)
41bbc1:	89 5e 1c             	mov    %ebx,0x1c(%esi)
41bbc4:	89 46 20             	mov    %eax,0x20(%esi)
41bbc7:	89 46 24             	mov    %eax,0x24(%esi)
41bbca:	e8 28 1c ff ff       	call   0x40d7f7
41bbcf:	33 c0                	xor    %eax,%eax
41bbd1:	8d 4e 6c             	lea    0x6c(%esi),%ecx
41bbd4:	66 89 46 38          	mov    %ax,0x38(%esi)
41bbd8:	c6 46 3a 01          	movb   $0x1,0x3a(%esi)
41bbdc:	89 46 3c             	mov    %eax,0x3c(%esi)
41bbdf:	89 46 40             	mov    %eax,0x40(%esi)
41bbe2:	89 5e 4c             	mov    %ebx,0x4c(%esi)
41bbe5:	89 5e 50             	mov    %ebx,0x50(%esi)
41bbe8:	89 5e 54             	mov    %ebx,0x54(%esi)
41bbeb:	89 5e 58             	mov    %ebx,0x58(%esi)
41bbee:	89 5e 5c             	mov    %ebx,0x5c(%esi)
41bbf1:	89 5e 60             	mov    %ebx,0x60(%esi)
41bbf4:	89 5e 64             	mov    %ebx,0x64(%esi)
41bbf7:	e8 fb 1b ff ff       	call   0x40d7f7
41bbfc:	83 a6 84 00 00 00 00 	andl   $0x0,0x84(%esi)
41bc03:	68 f7 d7 40 00       	push   $0x40d7f7
41bc08:	6a 0e                	push   $0xe
41bc0a:	6a 10                	push   $0x10
41bc0c:	8d 8e 8c 00 00 00    	lea    0x8c(%esi),%ecx
41bc12:	5a                   	pop    %edx
41bc13:	c7 46 7c 55 00 00 00 	movl   $0x55,0x7c(%esi)
41bc1a:	c7 86 80 00 00 00 90 	movl   $0x190,0x80(%esi)
41bc21:	01 00 00
41bc24:	89 be 88 00 00 00    	mov    %edi,0x88(%esi)
41bc2a:	e8 3d 8d fe ff       	call   0x40496c
41bc2f:	33 c0                	xor    %eax,%eax
41bc31:	89 86 6c 01 00 00    	mov    %eax,0x16c(%esi)
41bc37:	89 86 70 01 00 00    	mov    %eax,0x170(%esi)
41bc3d:	89 86 74 01 00 00    	mov    %eax,0x174(%esi)
41bc43:	89 86 78 01 00 00    	mov    %eax,0x178(%esi)
41bc49:	89 86 7c 01 00 00    	mov    %eax,0x17c(%esi)
41bc4f:	89 86 80 01 00 00    	mov    %eax,0x180(%esi)
41bc55:	88 86 84 01 00 00    	mov    %al,0x184(%esi)
41bc5b:	89 86 88 01 00 00    	mov    %eax,0x188(%esi)
41bc61:	89 86 94 01 00 00    	mov    %eax,0x194(%esi)
41bc67:	66 89 86 98 01 00 00 	mov    %ax,0x198(%esi)
41bc6e:	88 86 9a 01 00 00    	mov    %al,0x19a(%esi)
41bc74:	89 86 9c 01 00 00    	mov    %eax,0x19c(%esi)
41bc7a:	89 86 a0 01 00 00    	mov    %eax,0x1a0(%esi)
41bc80:	89 86 a4 01 00 00    	mov    %eax,0x1a4(%esi)
41bc86:	89 86 ac 01 00 00    	mov    %eax,0x1ac(%esi)
41bc8c:	89 86 b0 01 00 00    	mov    %eax,0x1b0(%esi)
41bc92:	89 86 c4 01 00 00    	mov    %eax,0x1c4(%esi)
41bc98:	89 86 c8 01 00 00    	mov    %eax,0x1c8(%esi)
41bc9e:	89 86 cc 01 00 00    	mov    %eax,0x1cc(%esi)
41bca4:	5f                   	pop    %edi
41bca5:	89 9e 8c 01 00 00    	mov    %ebx,0x18c(%esi)
41bcab:	89 9e 90 01 00 00    	mov    %ebx,0x190(%esi)
41bcb1:	89 9e bc 01 00 00    	mov    %ebx,0x1bc(%esi)
41bcb7:	89 9e c0 01 00 00    	mov    %ebx,0x1c0(%esi)
41bcbd:	c6 86 a8 01 00 00 01 	movb   $0x1,0x1a8(%esi)
41bcc4:	8b c6                	mov    %esi,%eax
41bcc6:	5e                   	pop    %esi
41bcc7:	5b                   	pop    %ebx
41bcc8:	c3                   	ret
41bcc9:	55                   	push   %ebp
41bcca:	8b ec                	mov    %esp,%ebp
41bccc:	83 e4 f8             	and    $0xfffffff8,%esp
41bccf:	81 ec bc 00 00 00    	sub    $0xbc,%esp
41bcd5:	53                   	push   %ebx
41bcd6:	56                   	push   %esi
41bcd7:	57                   	push   %edi
41bcd8:	6a 00                	push   $0x0
41bcda:	ff 15 70 d1 48 00    	call   *0x48d170
41bce0:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
41bce7:	50                   	push   %eax
41bce8:	c7 84 24 8c 00 00 00 	movl   $0x40,0x8c(%esp)
41bcef:	40 00 00 00
41bcf3:	ff 15 e0 d2 48 00    	call   *0x48d2e0
41bcf9:	8b 75 0c             	mov    0xc(%ebp),%esi
41bcfc:	33 db                	xor    %ebx,%ebx
41bcfe:	6a 07                	push   $0x7
41bd00:	43                   	inc    %ebx
41bd01:	53                   	push   %ebx
41bd02:	56                   	push   %esi
41bd03:	e8 48 03 00 00       	call   0x41c050
41bd08:	db 84 24 98 00 00 00 	fildl  0x98(%esp)
41bd0f:	8b 84 24 98 00 00 00 	mov    0x98(%esp),%eax
41bd16:	85 c0                	test   %eax,%eax
41bd18:	0f 88 fc ae 05 00    	js     0x476c1a
41bd1e:	83 64 24 6c 00       	andl   $0x0,0x6c(%esp)
41bd23:	dd 5c 24 64          	fstpl  0x64(%esp)
41bd27:	6a 03                	push   $0x3
41bd29:	5f                   	pop    %edi
41bd2a:	6a 00                	push   $0x0
41bd2c:	53                   	push   %ebx
41bd2d:	8d 44 24 6c          	lea    0x6c(%esp),%eax
41bd31:	50                   	push   %eax
41bd32:	56                   	push   %esi
41bd33:	89 bc 24 80 00 00 00 	mov    %edi,0x80(%esp)
41bd3a:	e8 91 6c ff ff       	call   0x4129d0
41bd3f:	83 c4 1c             	add    $0x1c,%esp
41bd42:	8d 4c 24 58          	lea    0x58(%esp),%ecx
41bd46:	e8 d5 6e ff ff       	call   0x412c20
41bd4b:	df ac 24 90 00 00 00 	fildll 0x90(%esp)
41bd52:	53                   	push   %ebx
41bd53:	53                   	push   %ebx
41bd54:	dd 5c 24 18          	fstpl  0x18(%esp)
41bd58:	8d 44 24 40          	lea    0x40(%esp),%eax
41bd5c:	dd 44 24 18          	fldl   0x18(%esp)
41bd60:	83 64 24 48 00       	andl   $0x0,0x48(%esp)
41bd65:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41bd6b:	50                   	push   %eax
41bd6c:	56                   	push   %esi
41bd6d:	89 7c 24 54          	mov    %edi,0x54(%esp)
41bd71:	dd 5c 24 48          	fstpl  0x48(%esp)
41bd75:	e8 56 6c ff ff       	call   0x4129d0
41bd7a:	83 c4 10             	add    $0x10,%esp
41bd7d:	8d 4c 24 38          	lea    0x38(%esp),%ecx
41bd81:	e8 9a 6e ff ff       	call   0x412c20
41bd86:	df ac 24 98 00 00 00 	fildll 0x98(%esp)
41bd8d:	6a 02                	push   $0x2
41bd8f:	53                   	push   %ebx
41bd90:	dd 5c 24 18          	fstpl  0x18(%esp)
41bd94:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
41bd9b:	dd 44 24 18          	fldl   0x18(%esp)
41bd9f:	83 a4 24 88 00 00 00 	andl   $0x0,0x88(%esp)
41bda6:	00
41bda7:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41bdad:	50                   	push   %eax
41bdae:	56                   	push   %esi
41bdaf:	89 bc 24 94 00 00 00 	mov    %edi,0x94(%esp)
41bdb6:	dd 9c 24 88 00 00 00 	fstpl  0x88(%esp)
41bdbd:	e8 0e 6c ff ff       	call   0x4129d0
41bdc2:	83 c4 10             	add    $0x10,%esp
41bdc5:	8d 4c 24 78          	lea    0x78(%esp),%ecx
41bdc9:	e8 52 6e ff ff       	call   0x412c20
41bdce:	df ac 24 a0 00 00 00 	fildll 0xa0(%esp)
41bdd5:	57                   	push   %edi
41bdd6:	53                   	push   %ebx
41bdd7:	dd 5c 24 18          	fstpl  0x18(%esp)
41bddb:	8d 44 24 20          	lea    0x20(%esp),%eax
41bddf:	dd 44 24 18          	fldl   0x18(%esp)
41bde3:	83 64 24 28 00       	andl   $0x0,0x28(%esp)
41bde8:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41bdee:	50                   	push   %eax
41bdef:	56                   	push   %esi
41bdf0:	89 7c 24 34          	mov    %edi,0x34(%esp)
41bdf4:	dd 5c 24 28          	fstpl  0x28(%esp)
41bdf8:	e8 d3 6b ff ff       	call   0x4129d0
41bdfd:	83 c4 10             	add    $0x10,%esp
41be00:	8d 4c 24 18          	lea    0x18(%esp),%ecx
41be04:	e8 17 6e ff ff       	call   0x412c20
41be09:	df ac 24 a8 00 00 00 	fildll 0xa8(%esp)
41be10:	6a 04                	push   $0x4
41be12:	53                   	push   %ebx
41be13:	dd 5c 24 18          	fstpl  0x18(%esp)
41be17:	8d 44 24 30          	lea    0x30(%esp),%eax
41be1b:	dd 44 24 18          	fldl   0x18(%esp)
41be1f:	83 64 24 38 00       	andl   $0x0,0x38(%esp)
41be24:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41be2a:	50                   	push   %eax
41be2b:	56                   	push   %esi
41be2c:	89 7c 24 44          	mov    %edi,0x44(%esp)
41be30:	dd 5c 24 38          	fstpl  0x38(%esp)
41be34:	e8 97 6b ff ff       	call   0x4129d0
41be39:	83 c4 10             	add    $0x10,%esp
41be3c:	8d 4c 24 28          	lea    0x28(%esp),%ecx
41be40:	e8 db 6d ff ff       	call   0x412c20
41be45:	df ac 24 b0 00 00 00 	fildll 0xb0(%esp)
41be4c:	dd 5c 24 10          	fstpl  0x10(%esp)
41be50:	dd 44 24 10          	fldl   0x10(%esp)
41be54:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41be5a:	83 64 24 50 00       	andl   $0x0,0x50(%esp)
41be5f:	6a 05                	push   $0x5
41be61:	53                   	push   %ebx
41be62:	8d 44 24 50          	lea    0x50(%esp),%eax
41be66:	dd 5c 24 50          	fstpl  0x50(%esp)
41be6a:	50                   	push   %eax
41be6b:	56                   	push   %esi
41be6c:	89 7c 24 64          	mov    %edi,0x64(%esp)
41be70:	e8 5b 6b ff ff       	call   0x4129d0
41be75:	83 c4 10             	add    $0x10,%esp
41be78:	8d 4c 24 48          	lea    0x48(%esp),%ecx
41be7c:	e8 9f 6d ff ff       	call   0x412c20
41be81:	df ac 24 b8 00 00 00 	fildll 0xb8(%esp)
41be88:	6a 06                	push   $0x6
41be8a:	53                   	push   %ebx
41be8b:	dd 5c 24 18          	fstpl  0x18(%esp)
41be8f:	8d 44 24 70          	lea    0x70(%esp),%eax
41be93:	dd 44 24 18          	fldl   0x18(%esp)
41be97:	83 64 24 78 00       	andl   $0x0,0x78(%esp)
41be9c:	dc 0d e8 26 4b 00    	fmull  0x4b26e8
41bea2:	50                   	push   %eax
41bea3:	56                   	push   %esi
41bea4:	89 bc 24 84 00 00 00 	mov    %edi,0x84(%esp)
41beab:	dd 5c 24 78          	fstpl  0x78(%esp)
41beaf:	e8 1c 6b ff ff       	call   0x4129d0
41beb4:	83 c4 10             	add    $0x10,%esp
41beb7:	8d 4c 24 68          	lea    0x68(%esp),%ecx
41bebb:	e8 60 6d ff ff       	call   0x412c20
41bec0:	5f                   	pop    %edi
41bec1:	5e                   	pop    %esi
41bec2:	33 c0                	xor    %eax,%eax
41bec4:	5b                   	pop    %ebx
41bec5:	8b e5                	mov    %ebp,%esp
41bec7:	5d                   	pop    %ebp
41bec8:	c2 08 00             	ret    $0x8
41becb:	55                   	push   %ebp
41becc:	8b ec                	mov    %esp,%ebp
41bece:	83 ec 28             	sub    $0x28,%esp
41bed1:	53                   	push   %ebx
41bed2:	56                   	push   %esi
41bed3:	8b 75 0c             	mov    0xc(%ebp),%esi
41bed6:	33 db                	xor    %ebx,%ebx
41bed8:	ff 06                	incl   (%esi)
41beda:	8b 16                	mov    (%esi),%edx
41bedc:	57                   	push   %edi
41bedd:	8b 7d 08             	mov    0x8(%ebp),%edi
41bee0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41bee3:	89 5d dc             	mov    %ebx,-0x24(%ebp)
41bee6:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41bee9:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
41bef0:	3b 57 08             	cmp    0x8(%edi),%edx
41bef3:	0f 83 ff 00 00 00    	jae    0x41bff8
41bef9:	c7 45 f4 4e 00 00 00 	movl   $0x4e,-0xc(%ebp)
41bf00:	8b 4d 10             	mov    0x10(%ebp),%ecx
41bf03:	53                   	push   %ebx
41bf04:	e8 16 01 00 00       	call   0x41c01f
41bf09:	8b 4d 18             	mov    0x18(%ebp),%ecx
41bf0c:	3b c8                	cmp    %eax,%ecx
41bf0e:	0f 8f d7 ae 05 00    	jg     0x476deb
41bf14:	8b 77 04             	mov    0x4(%edi),%esi
41bf17:	8b 34 96             	mov    (%esi,%edx,4),%esi
41bf1a:	0f b7 76 08          	movzwl 0x8(%esi),%esi
41bf1e:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41bf22:	89 75 f0             	mov    %esi,-0x10(%ebp)
41bf25:	8b 75 0c             	mov    0xc(%ebp),%esi
41bf28:	0f 84 70 ae 05 00    	je     0x476d9e
41bf2e:	3b c8                	cmp    %eax,%ecx
41bf30:	0f 8c a6 ae 05 00    	jl     0x476ddc
41bf36:	8b 77 04             	mov    0x4(%edi),%esi
41bf39:	6a 4f                	push   $0x4f
41bf3b:	8b 04 96             	mov    (%esi,%edx,4),%eax
41bf3e:	8b 75 0c             	mov    0xc(%ebp),%esi
41bf41:	0f bf 40 0a          	movswl 0xa(%eax),%eax
41bf45:	89 45 ec             	mov    %eax,-0x14(%ebp)
41bf48:	58                   	pop    %eax
41bf49:	66 39 45 f0          	cmp    %ax,-0x10(%ebp)
41bf4d:	0f 84 70 ae 05 00    	je     0x476dc3
41bf53:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41bf56:	6a ff                	push   $0xffffffff
41bf58:	8d 45 dc             	lea    -0x24(%ebp),%eax
41bf5b:	50                   	push   %eax
41bf5c:	56                   	push   %esi
41bf5d:	57                   	push   %edi
41bf5e:	e8 cd 3e ff ff       	call   0x40fe30
41bf63:	85 c0                	test   %eax,%eax
41bf65:	0f 88 8d 00 00 00    	js     0x41bff8
41bf6b:	8b 4d 10             	mov    0x10(%ebp),%ecx
41bf6e:	e8 e9 01 00 00       	call   0x41c15c
41bf73:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41bf77:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41bf7a:	7e 20                	jle    0x41bf9c
41bf7c:	8b 75 18             	mov    0x18(%ebp),%esi
41bf7f:	8b fb                	mov    %ebx,%edi
41bf81:	8b 5d 14             	mov    0x14(%ebp),%ebx
41bf84:	ff 34 bb             	push   (%ebx,%edi,4)