524e2b:	48                   	dec    %eax
524e2c:	8b 17                	mov    (%edi),%edx
524e2e:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
524e34:	eb 08                	jmp    0x524e3e
524e36:	8b 07                	mov    (%edi),%eax
524e38:	89 b0 20 02 00 00    	mov    %esi,0x220(%eax)
524e3e:	8b 07                	mov    (%edi),%eax
524e40:	83 b8 14 02 00 00 00 	cmpl   $0x0,0x214(%eax)
524e47:	75 76                	jne    0x524ebf
524e49:	8d 85 08 ff ff ff    	lea    -0xf8(%ebp),%eax
524e4f:	8b 17                	mov    (%edi),%edx
524e51:	8b 92 58 02 00 00    	mov    0x258(%edx),%edx
524e57:	83 c2 04             	add    $0x4,%edx
524e5a:	e8 65 fc ed ff       	call   0x404ac4
524e5f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
524e65:	8b 45 84             	mov    -0x7c(%ebp),%eax
524e68:	8b 40 0c             	mov    0xc(%eax),%eax
524e6b:	e8 50 2e f0 ff       	call   0x427cc0
524e70:	8b 07                	mov    (%edi),%eax
524e72:	8b 80 58 02 00 00    	mov    0x258(%eax),%eax
524e78:	8b 90 04 01 00 00    	mov    0x104(%eax),%edx
524e7e:	8b 45 84             	mov    -0x7c(%ebp),%eax
524e81:	8b 40 0c             	mov    0xc(%eax),%eax
524e84:	e8 f7 2d f0 ff       	call   0x427c80
524e89:	8b 07                	mov    (%edi),%eax
524e8b:	8b 80 58 02 00 00    	mov    0x258(%eax),%eax
524e91:	8a 90 08 01 00 00    	mov    0x108(%eax),%dl
524e97:	8b 45 84             	mov    -0x7c(%ebp),%eax
524e9a:	8b 40 0c             	mov    0xc(%eax),%eax
524e9d:	e8 c2 2e f0 ff       	call   0x427d64
524ea2:	8d 45 88             	lea    -0x78(%ebp),%eax
524ea5:	50                   	push   %eax
524ea6:	8b 45 84             	mov    -0x7c(%ebp),%eax
524ea9:	e8 12 3e f0 ff       	call   0x428cc0
524eae:	50                   	push   %eax
524eaf:	e8 8c 27 ee ff       	call   0x407640
524eb4:	8b 07                	mov    (%edi),%eax
524eb6:	8b 55 88             	mov    -0x78(%ebp),%edx
524eb9:	89 90 28 02 00 00    	mov    %edx,0x228(%eax)
524ebf:	8b 07                	mov    (%edi),%eax
524ec1:	dd 80 40 02 00 00    	fldl   0x240(%eax)
524ec7:	d8 1d b8 53 52 00    	fcomps 0x5253b8
524ecd:	df e0                	fnstsw %ax
524ecf:	9e                   	sahf
524ed0:	0f 84 fa 03 00 00    	je     0x5252d0
524ed6:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
524edc:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
524ee2:	e8 81 f9 ed ff       	call   0x404868
524ee7:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
524eed:	48                   	dec    %eax
524eee:	85 c0                	test   %eax,%eax
524ef0:	7c 31                	jl     0x524f23
524ef2:	40                   	inc    %eax
524ef3:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
524ef9:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
524eff:	8a 53 08             	mov    0x8(%ebx),%dl
524f02:	e8 41 fb ed ff       	call   0x404a48
524f07:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
524f0d:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
524f13:	e8 10 fc ed ff       	call   0x404b28
524f18:	83 c3 10             	add    $0x10,%ebx
524f1b:	ff 8d 28 ff ff ff    	decl   -0xd8(%ebp)
524f21:	75 d6                	jne    0x524ef9
524f23:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
524f29:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
524f2f:	48                   	dec    %eax
524f30:	85 c0                	test   %eax,%eax
524f32:	0f 8c e2 02 00 00    	jl     0x52521a
524f38:	40                   	inc    %eax
524f39:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
524f3f:	33 f6                	xor    %esi,%esi
524f41:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
524f44:	8b 53 0c             	mov    0xc(%ebx),%edx
524f47:	8b 07                	mov    (%edi),%eax
524f49:	e8 ee eb ff ff       	call   0x523b3c
524f4e:	8b 45 84             	mov    -0x7c(%ebp),%eax
524f51:	8b 40 0c             	mov    0xc(%eax),%eax
524f54:	e8 1f 2d f0 ff       	call   0x427c78
524f59:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
524f5f:	db 85 00 ff ff ff    	fildl  -0x100(%ebp)
524f65:	8b 07                	mov    (%edi),%eax
524f67:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524f6d:	e8 5a dd ed ff       	call   0x402ccc
524f72:	8b d0                	mov    %eax,%edx
524f74:	8b 45 84             	mov    -0x7c(%ebp),%eax
524f77:	8b 40 0c             	mov    0xc(%eax),%eax
524f7a:	e8 01 2d f0 ff       	call   0x427c80
524f7f:	8b 03                	mov    (%ebx),%eax
524f81:	2b 85 70 ff ff ff    	sub    -0x90(%ebp),%eax
524f87:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
524f8d:	db 85 00 ff ff ff    	fildl  -0x100(%ebp)
524f93:	8b 07                	mov    (%edi),%eax
524f95:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524f9b:	e8 2c dd ed ff       	call   0x402ccc
524fa0:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
524fa6:	8b 43 04             	mov    0x4(%ebx),%eax
524fa9:	2b 45 10             	sub    0x10(%ebp),%eax
524fac:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
524fb2:	db 85 00 ff ff ff    	fildl  -0x100(%ebp)
524fb8:	8b 07                	mov    (%edi),%eax
524fba:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524fc0:	e8 07 dd ed ff       	call   0x402ccc
524fc5:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
524fcb:	c6 85 37 ff ff ff 00 	movb   $0x0,-0xc9(%ebp)
524fd2:	8b 17                	mov    (%edi),%edx
524fd4:	8b 92 48 02 00 00    	mov    0x248(%edx),%edx
524fda:	8b 43 0c             	mov    0xc(%ebx),%eax
524fdd:	3b d0                	cmp    %eax,%edx
524fdf:	7f 54                	jg     0x525035
524fe1:	8b 17                	mov    (%edi),%edx
524fe3:	3b 82 4c 02 00 00    	cmp    0x24c(%edx),%eax
524fe9:	7d 4a                	jge    0x525035
524feb:	8b 45 84             	mov    -0x7c(%ebp),%eax
524fee:	8b 40 14             	mov    0x14(%eax),%eax
524ff1:	e8 86 32 f0 ff       	call   0x42827c
524ff6:	8b d0                	mov    %eax,%edx
524ff8:	f7 d2                	not    %edx
524ffa:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
525000:	8b 45 84             	mov    -0x7c(%ebp),%eax
525003:	8b 40 14             	mov    0x14(%eax),%eax
525006:	e8 79 32 f0 ff       	call   0x428284
52500b:	8b 45 84             	mov    -0x7c(%ebp),%eax
52500e:	8b 40 0c             	mov    0xc(%eax),%eax
525011:	8b 50 18             	mov    0x18(%eax),%edx
525014:	f7 d2                	not    %edx
525016:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
52501c:	e8 77 2a f0 ff       	call   0x427a98
525021:	8b 45 84             	mov    -0x7c(%ebp),%eax
525024:	8b 40 14             	mov    0x14(%eax),%eax
525027:	33 d2                	xor    %edx,%edx
525029:	e8 72 33 f0 ff       	call   0x4283a0
52502e:	c6 85 37 ff ff ff 01 	movb   $0x1,-0xc9(%ebp)
525035:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
52503b:	48                   	dec    %eax
52503c:	3b f0                	cmp    %eax,%esi
52503e:	0f 8d ad 00 00 00    	jge    0x5250f1
525044:	89 9d 3c ff ff ff    	mov    %ebx,-0xc4(%ebp)
52504a:	83 85 3c ff ff ff 10 	addl   $0x10,-0xc4(%ebp)
525051:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
525057:	8b 40 04             	mov    0x4(%eax),%eax
52505a:	3b 43 04             	cmp    0x4(%ebx),%eax
52505d:	0f 85 8e 00 00 00    	jne    0x5250f1
525063:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
525069:	03 85 60 ff ff ff    	add    -0xa0(%ebp),%eax
52506f:	50                   	push   %eax
525070:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
525076:	8b 00                	mov    (%eax),%eax
525078:	2b 85 70 ff ff ff    	sub    -0x90(%ebp),%eax
52507e:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
525084:	db 85 00 ff ff ff    	fildl  -0x100(%ebp)
52508a:	8b 07                	mov    (%edi),%eax
52508c:	dc 88 40 02 00 00    	fmull  0x240(%eax)
525092:	e8 35 dc ed ff       	call   0x402ccc
525097:	03 85 70 ff ff ff    	add    -0x90(%ebp),%eax
52509d:	5a                   	pop    %edx
52509e:	2b c2                	sub    %edx,%eax
5250a0:	7c 4f                	jl     0x5250f1
5250a2:	40                   	inc    %eax
5250a3:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
5250a9:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
5250af:	8b 45 84             	mov    -0x7c(%ebp),%eax
5250b2:	8b 40 14             	mov    0x14(%eax),%eax
5250b5:	b2 01                	mov    $0x1,%dl
5250b7:	e8 e4 32 f0 ff       	call   0x4283a0
5250bc:	8b 45 84             	mov    -0x7c(%ebp),%eax
5250bf:	8b 40 0c             	mov    0xc(%eax),%eax
5250c2:	e8 81 cd ff ff       	call   0x521e48
5250c7:	68 c4 53 52 00       	push   $0x5253c4
5250cc:	8b 4d 10             	mov    0x10(%ebp),%ecx
5250cf:	03 8d 5c ff ff ff    	add    -0xa4(%ebp),%ecx
5250d5:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
5250db:	8b 45 84             	mov    -0x7c(%ebp),%eax
5250de:	e8 a9 38 f0 ff       	call   0x42898c
5250e3:	ff 85 50 ff ff ff    	incl   -0xb0(%ebp)
5250e9:	ff 8d 24 ff ff ff    	decl   -0xdc(%ebp)
5250ef:	75 be                	jne    0x5250af
5250f1:	80 bd 37 ff ff ff 00 	cmpb   $0x0,-0xc9(%ebp)
5250f8:	74 0f                	je     0x525109
5250fa:	8b 45 84             	mov    -0x7c(%ebp),%eax
5250fd:	8b 40 14             	mov    0x14(%eax),%eax
525100:	33 d2                	xor    %edx,%edx
525102:	e8 99 32 f0 ff       	call   0x4283a0
525107:	eb 0d                	jmp    0x525116
525109:	8b 45 84             	mov    -0x7c(%ebp),%eax
52510c:	8b 40 14             	mov    0x14(%eax),%eax
52510f:	b2 01                	mov    $0x1,%dl
525111:	e8 8a 32 f0 ff       	call   0x4283a0
525116:	8b 45 84             	mov    -0x7c(%ebp),%eax
525119:	8b 40 0c             	mov    0xc(%eax),%eax
52511c:	e8 27 cd ff ff       	call   0x521e48
525121:	8d 56 01             	lea    0x1(%esi),%edx
525124:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
52512a:	e8 05 86 ee ff       	call   0x40d734
52512f:	84 c0                	test   %al,%al
525131:	75 3d                	jne    0x525170
525133:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
525139:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
52513f:	8a 14 32             	mov    (%edx,%esi,1),%dl
525142:	e8 01 f9 ed ff       	call   0x404a48
525147:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
52514d:	50                   	push   %eax
52514e:	8b 4d 10             	mov    0x10(%ebp),%ecx
525151:	03 8d 5c ff ff ff    	add    -0xa4(%ebp),%ecx
525157:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
52515d:	03 95 60 ff ff ff    	add    -0xa0(%ebp),%edx
525163:	8b 45 84             	mov    -0x7c(%ebp),%eax
525166:	e8 21 38 f0 ff       	call   0x42898c
52516b:	e9 9a 00 00 00       	jmp    0x52520a
525170:	8d 56 01             	lea    0x1(%esi),%edx
525173:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
525179:	e8 b6 85 ee ff       	call   0x40d734
52517e:	3c 02                	cmp    $0x2,%al
525180:	0f 85 84 00 00 00    	jne    0x52520a
525186:	8d 85 18 ff ff ff    	lea    -0xe8(%ebp),%eax
52518c:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
525192:	8a 54 32 ff          	mov    -0x1(%edx,%esi,1),%dl
525196:	88 50 01             	mov    %dl,0x1(%eax)
525199:	c6 00 01             	movb   $0x1,(%eax)
52519c:	8d 95 18 ff ff ff    	lea    -0xe8(%ebp),%edx
5251a2:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
5251a8:	e8 77 df ed ff       	call   0x403124
5251ad:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
5251b3:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
5251b9:	8a 14 32             	mov    (%edx,%esi,1),%dl
5251bc:	88 50 01             	mov    %dl,0x1(%eax)
5251bf:	c6 00 01             	movb   $0x1,(%eax)
5251c2:	8d 95 10 ff ff ff    	lea    -0xf0(%ebp),%edx
5251c8:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
5251ce:	b1 02                	mov    $0x2,%cl
5251d0:	e8 1f df ed ff       	call   0x4030f4
5251d5:	8d 95 14 ff ff ff    	lea    -0xec(%ebp),%edx
5251db:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
5251e1:	e8 de f8 ed ff       	call   0x404ac4
5251e6:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
5251ec:	50                   	push   %eax
5251ed:	8b 4d 10             	mov    0x10(%ebp),%ecx
5251f0:	03 8d 5c ff ff ff    	add    -0xa4(%ebp),%ecx
5251f6:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
5251fc:	03 95 60 ff ff ff    	add    -0xa0(%ebp),%edx
525202:	8b 45 84             	mov    -0x7c(%ebp),%eax
525205:	e8 82 37 f0 ff       	call   0x42898c
52520a:	83 c3 10             	add    $0x10,%ebx
52520d:	46                   	inc    %esi
52520e:	ff 8d 28 ff ff ff    	decl   -0xd8(%ebp)
525214:	0f 85 27 fd ff ff    	jne    0x524f41
52521a:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
525220:	e8 a7 d5 ed ff       	call   0x4027cc
525225:	8b 07                	mov    (%edi),%eax
525227:	8b 80 14 02 00 00    	mov    0x214(%eax),%eax
52522d:	85 c0                	test   %eax,%eax
52522f:	7c 48                	jl     0x525279
525231:	40                   	inc    %eax
525232:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
525238:	33 f6                	xor    %esi,%esi
52523a:	8b 07                	mov    (%edi),%eax
52523c:	8b 98 74 02 00 00    	mov    0x274(%eax),%ebx
525242:	db 04 b3             	fildl  (%ebx,%esi,4)
525245:	8b 07                	mov    (%edi),%eax
525247:	dc 88 40 02 00 00    	fmull  0x240(%eax)
52524d:	e8 7a da ed ff       	call   0x402ccc
525252:	89 04 b3             	mov    %eax,(%ebx,%esi,4)
525255:	8b 07                	mov    (%edi),%eax
525257:	8b 98 78 02 00 00    	mov    0x278(%eax),%ebx
52525d:	db 04 b3             	fildl  (%ebx,%esi,4)
525260:	8b 07                	mov    (%edi),%eax
525262:	dc 88 40 02 00 00    	fmull  0x240(%eax)
525268:	e8 5f da ed ff       	call   0x402ccc
52526d:	89 04 b3             	mov    %eax,(%ebx,%esi,4)
525270:	46                   	inc    %esi
525271:	ff 8d 28 ff ff ff    	decl   -0xd8(%ebp)
525277:	75 c1                	jne    0x52523a
525279:	8b 07                	mov    (%edi),%eax
52527b:	db 80 20 02 00 00    	fildl  0x220(%eax)
525281:	8b 07                	mov    (%edi),%eax
525283:	dc 88 40 02 00 00    	fmull  0x240(%eax)
525289:	e8 3e da ed ff       	call   0x402ccc
52528e:	8b 17                	mov    (%edi),%edx
525290:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
525296:	8b 07                	mov    (%edi),%eax
525298:	db 80 24 02 00 00    	fildl  0x224(%eax)
52529e:	8b 07                	mov    (%edi),%eax
5252a0:	dc 88 40 02 00 00    	fmull  0x240(%eax)
5252a6:	e8 21 da ed ff       	call   0x402ccc
5252ab:	8b 17                	mov    (%edi),%edx
5252ad:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
5252b3:	8b 07                	mov    (%edi),%eax
5252b5:	db 80 28 02 00 00    	fildl  0x228(%eax)
5252bb:	8b 07                	mov    (%edi),%eax
5252bd:	dc 88 40 02 00 00    	fmull  0x240(%eax)
5252c3:	e8 04 da ed ff       	call   0x402ccc
5252c8:	8b 17                	mov    (%edi),%edx
5252ca:	89 82 28 02 00 00    	mov    %eax,0x228(%edx)
5252d0:	8b 07                	mov    (%edi),%eax
5252d2:	80 b8 5e 02 00 00 00 	cmpb   $0x0,0x25e(%eax)
5252d9:	74 31                	je     0x52530c
5252db:	8b 07                	mov    (%edi),%eax
5252dd:	8b 80 24 02 00 00    	mov    0x224(%eax),%eax
5252e3:	8b 17                	mov    (%edi),%edx
5252e5:	03 82 28 02 00 00    	add    0x228(%edx),%eax
5252eb:	3b 45 08             	cmp    0x8(%ebp),%eax
5252ee:	7e 1c                	jle    0x52530c
5252f0:	8b 07                	mov    (%edi),%eax
5252f2:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
5252f6:	74 14                	je     0x52530c
5252f8:	8b 07                	mov    (%edi),%eax
5252fa:	8b 50 4c             	mov    0x4c(%eax),%edx
5252fd:	8b 07                	mov    (%edi),%eax
5252ff:	03 90 28 02 00 00    	add    0x228(%eax),%edx
525305:	8b 07                	mov    (%edi),%eax
525307:	e8 78 2c f2 ff       	call   0x447f84
52530c:	8b 07                	mov    (%edi),%eax
52530e:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
525314:	8b 17                	mov    (%edi),%edx
525316:	8b 92 74 02 00 00    	mov    0x274(%edx),%edx
52531c:	8b 0f                	mov    (%edi),%ecx
52531e:	8b 89 20 02 00 00    	mov    0x220(%ecx),%ecx
525324:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
525327:	8b 07                	mov    (%edi),%eax
525329:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
52532f:	8b 17                	mov    (%edi),%edx
525331:	8b 92 78 02 00 00    	mov    0x278(%edx),%edx
525337:	8b 0f                	mov    (%edi),%ecx
525339:	8b 89 24 02 00 00    	mov    0x224(%ecx),%ecx
52533f:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
525342:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
525348:	50                   	push   %eax
525349:	8b 45 84             	mov    -0x7c(%ebp),%eax
52534c:	e8 6f 39 f0 ff       	call   0x428cc0
525351:	50                   	push   %eax
525352:	e8 21 24 ee ff       	call   0x407778
525357:	33 c0                	xor    %eax,%eax
525359:	5a                   	pop    %edx
52535a:	59                   	pop    %ecx
52535b:	59                   	pop    %ecx
52535c:	64 89 10             	mov    %edx,%fs:(%eax)
52535f:	68 af 53 52 00       	push   $0x5253af
525364:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
52536a:	ba 02 00 00 00       	mov    $0x2,%edx
52536f:	e8 18 f5 ed ff       	call   0x40488c
525374:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
52537a:	ba 03 00 00 00       	mov    $0x3,%edx
52537f:	e8 08 f5 ed ff       	call   0x40488c
525384:	8d 85 1c ff ff ff    	lea    -0xe4(%ebp),%eax
52538a:	ba 02 00 00 00       	mov    $0x2,%edx
52538f:	e8 f8 f4 ed ff       	call   0x40488c
525394:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
52539a:	e8 c9 f4 ed ff       	call   0x404868
52539f:	8d 45 80             	lea    -0x80(%ebp),%eax
5253a2:	e8 c1 f4 ed ff       	call   0x404868
5253a7:	c3                   	ret