412eee:	89 45 c0             	mov    %eax,-0x40(%ebp)
412ef1:	75 0a                	jne    0x412efd
412ef3:	83 ff ff             	cmp    $0xffffffff,%edi
412ef6:	76 bf                	jbe    0x412eb7
412ef8:	eb 03                	jmp    0x412efd
412efa:	8b 45 f0             	mov    -0x10(%ebp),%eax
412efd:	89 5d cc             	mov    %ebx,-0x34(%ebp)
412f00:	85 c0                	test   %eax,%eax
412f02:	75 08                	jne    0x412f0c
412f04:	85 db                	test   %ebx,%ebx
412f06:	0f 84 af 00 00 00    	je     0x412fbb
412f0c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
412f0f:	33 ff                	xor    %edi,%edi
412f11:	8b 45 0c             	mov    0xc(%ebp),%eax
412f14:	33 f6                	xor    %esi,%esi
412f16:	85 c9                	test   %ecx,%ecx
412f18:	74 55                	je     0x412f6f
412f1a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
412f1d:	83 c0 04             	add    $0x4,%eax
412f20:	89 45 f8             	mov    %eax,-0x8(%ebp)
412f23:	89 4d fc             	mov    %ecx,-0x4(%ebp)
412f26:	8b 00                	mov    (%eax),%eax
412f28:	89 45 dc             	mov    %eax,-0x24(%ebp)
412f2b:	8b 45 c0             	mov    -0x40(%ebp),%eax
412f2e:	f7 65 dc             	mull   -0x24(%ebp)
412f31:	8b c8                	mov    %eax,%ecx
412f33:	8b 45 bc             	mov    -0x44(%ebp),%eax
412f36:	f7 65 dc             	mull   -0x24(%ebp)
412f39:	03 d1                	add    %ecx,%edx
412f3b:	03 f8                	add    %eax,%edi
412f3d:	8b 03                	mov    (%ebx),%eax
412f3f:	8b cf                	mov    %edi,%ecx
412f41:	13 f2                	adc    %edx,%esi
412f43:	8b fe                	mov    %esi,%edi
412f45:	33 f6                	xor    %esi,%esi
412f47:	3b c1                	cmp    %ecx,%eax
412f49:	73 05                	jae    0x412f50
412f4b:	83 c7 01             	add    $0x1,%edi
412f4e:	13 f6                	adc    %esi,%esi
412f50:	2b c1                	sub    %ecx,%eax
412f52:	89 03                	mov    %eax,(%ebx)
412f54:	83 c3 04             	add    $0x4,%ebx
412f57:	8b 45 f8             	mov    -0x8(%ebp),%eax
412f5a:	83 c0 04             	add    $0x4,%eax
412f5d:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
412f61:	89 45 f8             	mov    %eax,-0x8(%ebp)
412f64:	75 c0                	jne    0x412f26
412f66:	8b 45 0c             	mov    0xc(%ebp),%eax
412f69:	8b 5d cc             	mov    -0x34(%ebp),%ebx
412f6c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
412f6f:	83 c0 04             	add    $0x4,%eax
412f72:	89 45 dc             	mov    %eax,-0x24(%ebp)
412f75:	33 c0                	xor    %eax,%eax
412f77:	3b c6                	cmp    %esi,%eax
412f79:	77 39                	ja     0x412fb4
412f7b:	72 05                	jb     0x412f82
412f7d:	39 7d b8             	cmp    %edi,-0x48(%ebp)
412f80:	73 32                	jae    0x412fb4
412f82:	85 c9                	test   %ecx,%ecx
412f84:	74 2b                	je     0x412fb1
412f86:	8b 55 c4             	mov    -0x3c(%ebp),%edx
412f89:	33 db                	xor    %ebx,%ebx
412f8b:	8b 75 dc             	mov    -0x24(%ebp),%esi
412f8e:	8b f9                	mov    %ecx,%edi
412f90:	8b 0a                	mov    (%edx),%ecx
412f92:	8d 76 04             	lea    0x4(%esi),%esi
412f95:	33 c0                	xor    %eax,%eax
412f97:	8d 52 04             	lea    0x4(%edx),%edx
412f9a:	03 4e fc             	add    -0x4(%esi),%ecx
412f9d:	13 c0                	adc    %eax,%eax
412f9f:	03 cb                	add    %ebx,%ecx
412fa1:	89 4a fc             	mov    %ecx,-0x4(%edx)
412fa4:	83 d0 00             	adc    $0x0,%eax
412fa7:	8b d8                	mov    %eax,%ebx
412fa9:	83 ef 01             	sub    $0x1,%edi
412fac:	75 e2                	jne    0x412f90
412fae:	8b 5d cc             	mov    -0x34(%ebp),%ebx
412fb1:	83 c3 ff             	add    $0xffffffff,%ebx
412fb4:	8b 45 c8             	mov    -0x38(%ebp),%eax
412fb7:	48                   	dec    %eax
412fb8:	89 45 f4             	mov    %eax,-0xc(%ebp)
412fbb:	8b 75 b4             	mov    -0x4c(%ebp),%esi
412fbe:	33 c0                	xor    %eax,%eax
412fc0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
412fc3:	03 c3                	add    %ebx,%eax
412fc5:	8b 5d b0             	mov    -0x50(%ebp),%ebx
412fc8:	8b f8                	mov    %eax,%edi
412fca:	8b 45 c8             	mov    -0x38(%ebp),%eax
412fcd:	83 d6 00             	adc    $0x0,%esi
412fd0:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
412fd4:	4b                   	dec    %ebx
412fd5:	48                   	dec    %eax
412fd6:	89 7d b4             	mov    %edi,-0x4c(%ebp)
412fd9:	83 e9 04             	sub    $0x4,%ecx
412fdc:	89 5d b0             	mov    %ebx,-0x50(%ebp)
412fdf:	89 45 c8             	mov    %eax,-0x38(%ebp)
412fe2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
412fe5:	85 db                	test   %ebx,%ebx
412fe7:	0f 89 f3 fd ff ff    	jns    0x412de0
412fed:	eb 02                	jmp    0x412ff1
412fef:	33 ff                	xor    %edi,%edi
412ff1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
412ff4:	8b 5d 08             	mov    0x8(%ebp),%ebx
412ff7:	41                   	inc    %ecx
412ff8:	8b c1                	mov    %ecx,%eax
412ffa:	3b 03                	cmp    (%ebx),%eax
412ffc:	73 14                	jae    0x413012
412ffe:	8d 53 04             	lea    0x4(%ebx),%edx
413001:	8d 14 82             	lea    (%edx,%eax,4),%edx
413004:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
41300a:	8d 52 04             	lea    0x4(%edx),%edx
41300d:	40                   	inc    %eax
41300e:	3b 03                	cmp    (%ebx),%eax
413010:	72 f2                	jb     0x413004
413012:	89 0b                	mov    %ecx,(%ebx)
413014:	85 c9                	test   %ecx,%ecx
413016:	74 0d                	je     0x413025
413018:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
41301c:	75 07                	jne    0x413025
41301e:	83 c1 ff             	add    $0xffffffff,%ecx
413021:	89 0b                	mov    %ecx,(%ebx)
413023:	75 f3                	jne    0x413018
413025:	8b c7                	mov    %edi,%eax
413027:	8b d6                	mov    %esi,%edx
413029:	5f                   	pop    %edi
41302a:	5e                   	pop    %esi
41302b:	5b                   	pop    %ebx
41302c:	8b e5                	mov    %ebp,%esp
41302e:	5d                   	pop    %ebp
41302f:	c3                   	ret
413030:	5f                   	pop    %edi
413031:	5e                   	pop    %esi
413032:	33 c0                	xor    %eax,%eax
413034:	33 d2                	xor    %edx,%edx
413036:	5b                   	pop    %ebx
413037:	8b e5                	mov    %ebp,%esp
413039:	5d                   	pop    %ebp
41303a:	c3                   	ret
41303b:	8b ff                	mov    %edi,%edi
41303d:	55                   	push   %ebp
41303e:	8b ec                	mov    %esp,%ebp
413040:	81 ec 74 09 00 00    	sub    $0x974,%esp
413046:	a1 c0 10 42 00       	mov    0x4210c0,%eax
41304b:	33 c5                	xor    %ebp,%eax
41304d:	89 45 fc             	mov    %eax,-0x4(%ebp)
413050:	8b 45 18             	mov    0x18(%ebp),%eax
413053:	89 85 74 f8 ff ff    	mov    %eax,-0x78c(%ebp)
413059:	8b 45 1c             	mov    0x1c(%ebp),%eax
41305c:	89 85 a0 f8 ff ff    	mov    %eax,-0x760(%ebp)
413062:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
413068:	53                   	push   %ebx
413069:	50                   	push   %eax
41306a:	e8 8d 26 00 00       	call   0x4156fc
41306f:	8b 85 60 f8 ff ff    	mov    -0x7a0(%ebp),%eax
413075:	33 db                	xor    %ebx,%ebx
413077:	83 e0 1f             	and    $0x1f,%eax
41307a:	43                   	inc    %ebx
41307b:	59                   	pop    %ecx
41307c:	3c 1f                	cmp    $0x1f,%al
41307e:	75 09                	jne    0x413089
413080:	c6 85 68 f8 ff ff 00 	movb   $0x0,-0x798(%ebp)
413087:	eb 13                	jmp    0x41309c
413089:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
41308f:	50                   	push   %eax
413090:	e8 d0 26 00 00       	call   0x415765
413095:	59                   	pop    %ecx
413096:	88 9d 68 f8 ff ff    	mov    %bl,-0x798(%ebp)
41309c:	56                   	push   %esi
41309d:	8b 75 0c             	mov    0xc(%ebp),%esi
4130a0:	57                   	push   %edi
4130a1:	6a 20                	push   $0x20
4130a3:	5f                   	pop    %edi
4130a4:	85 f6                	test   %esi,%esi
4130a6:	7f 0d                	jg     0x4130b5
4130a8:	7c 06                	jl     0x4130b0
4130aa:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4130ae:	73 05                	jae    0x4130b5
4130b0:	6a 2d                	push   $0x2d
4130b2:	58                   	pop    %eax
4130b3:	eb 02                	jmp    0x4130b7
4130b5:	8b c7                	mov    %edi,%eax
4130b7:	8b 8d 74 f8 ff ff    	mov    -0x78c(%ebp),%ecx
4130bd:	6a 00                	push   $0x0
4130bf:	6a 00                	push   $0x0
4130c1:	89 01                	mov    %eax,(%ecx)
4130c3:	8b 85 a0 f8 ff ff    	mov    -0x760(%ebp),%eax
4130c9:	89 41 08             	mov    %eax,0x8(%ecx)
4130cc:	8d 85 5c f8 ff ff    	lea    -0x7a4(%ebp),%eax
4130d2:	50                   	push   %eax
4130d3:	e8 b7 73 ff ff       	call   0x40a48f
4130d8:	8b ce                	mov    %esi,%ecx
4130da:	33 c0                	xor    %eax,%eax
4130dc:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
4130e2:	83 c4 0c             	add    $0xc,%esp
4130e5:	0b c1                	or     %ecx,%eax
4130e7:	75 2c                	jne    0x413115
4130e9:	8b 45 08             	mov    0x8(%ebp),%eax
4130ec:	8b ce                	mov    %esi,%ecx
4130ee:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
4130f4:	0b c1                	or     %ecx,%eax
4130f6:	74 0c                	je     0x413104
4130f8:	f7 85 5c f8 ff ff 00 	testl  $0x1000000,-0x7a4(%ebp)
4130ff:	00 00 01
413102:	74 11                	je     0x413115
413104:	8b 85 74 f8 ff ff    	mov    -0x78c(%ebp),%eax
41310a:	68 34 e2 41 00       	push   $0x41e234
41310f:	83 60 04 00          	andl   $0x0,0x4(%eax)
413113:	eb 3e                	jmp    0x413153
413115:	8d 45 08             	lea    0x8(%ebp),%eax
413118:	50                   	push   %eax
413119:	e8 be 9f ff ff       	call   0x40d0dc
41311e:	59                   	pop    %ecx
41311f:	85 c0                	test   %eax,%eax
413121:	74 73                	je     0x413196
413123:	8b 8d 74 f8 ff ff    	mov    -0x78c(%ebp),%ecx
413129:	89 59 04             	mov    %ebx,0x4(%ecx)
41312c:	83 e8 01             	sub    $0x1,%eax
41312f:	74 40                	je     0x413171
413131:	83 e8 01             	sub    $0x1,%eax
413134:	74 18                	je     0x41314e
413136:	83 e8 01             	sub    $0x1,%eax
413139:	74 0c                	je     0x413147
41313b:	83 e8 01             	sub    $0x1,%eax
41313e:	75 56                	jne    0x413196
413140:	68 50 e2 41 00       	push   $0x41e250
413145:	eb 0c                	jmp    0x413153
413147:	68 48 e2 41 00       	push   $0x41e248
41314c:	eb 05                	jmp    0x413153
41314e:	68 40 e2 41 00       	push   $0x41e240
413153:	ff 75 20             	push   0x20(%ebp)
413156:	ff b5 a0 f8 ff ff    	push   -0x760(%ebp)
41315c:	e8 0d 74 ff ff       	call   0x40a56e
413161:	83 c4 0c             	add    $0xc,%esp
413164:	85 c0                	test   %eax,%eax
413166:	0f 85 aa 14 00 00    	jne    0x414616
41316c:	e9 7e 14 00 00       	jmp    0x4145ef
413171:	68 38 e2 41 00       	push   $0x41e238
413176:	ff 75 20             	push   0x20(%ebp)
413179:	ff b5 a0 f8 ff ff    	push   -0x760(%ebp)
41317f:	e8 ea 73 ff ff       	call   0x40a56e
413184:	83 c4 0c             	add    $0xc,%esp
413187:	85 c0                	test   %eax,%eax
413189:	0f 85 87 14 00 00    	jne    0x414616
41318f:	33 db                	xor    %ebx,%ebx
413191:	e9 59 14 00 00       	jmp    0x4145ef
413196:	8b 45 08             	mov    0x8(%ebp),%eax
413199:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
41319f:	6a 00                	push   $0x0
4131a1:	89 45 08             	mov    %eax,0x8(%ebp)
4131a4:	8d 85 6c f8 ff ff    	lea    -0x794(%ebp),%eax
4131aa:	89 75 0c             	mov    %esi,0xc(%ebp)
4131ad:	be 1f 00 08 00       	mov    $0x8001f,%esi
4131b2:	6a 00                	push   $0x0
4131b4:	50                   	push   %eax
4131b5:	89 b5 70 f8 ff ff    	mov    %esi,-0x790(%ebp)
4131bb:	e8 cf 72 ff ff       	call   0x40a48f
4131c0:	ff b5 70 f8 ff ff    	push   -0x790(%ebp)
4131c6:	8d 85 88 f8 ff ff    	lea    -0x778(%ebp),%eax
4131cc:	56                   	push   %esi
4131cd:	50                   	push   %eax
4131ce:	e8 bc 72 ff ff       	call   0x40a48f
4131d3:	dd 45 08             	fldl   0x8(%ebp)
4131d6:	83 c4 18             	add    $0x18,%esp
4131d9:	8b 45 10             	mov    0x10(%ebp),%eax
4131dc:	83 a5 90 f8 ff ff 00 	andl   $0x0,-0x770(%ebp)
4131e3:	40                   	inc    %eax
4131e4:	dd 95 84 f8 ff ff    	fstl   -0x77c(%ebp)
4131ea:	8b b5 88 f8 ff ff    	mov    -0x778(%ebp),%esi
4131f0:	8b ce                	mov    %esi,%ecx
4131f2:	89 85 78 f8 ff ff    	mov    %eax,-0x788(%ebp)
4131f8:	c1 e9 14             	shr    $0x14,%ecx
4131fb:	8b c1                	mov    %ecx,%eax
4131fd:	25 ff 07 00 00       	and    $0x7ff,%eax
413202:	83 c8 00             	or     $0x0,%eax
413205:	75 0a                	jne    0x413211
413207:	33 d2                	xor    %edx,%edx
413209:	89 9d b0 f8 ff ff    	mov    %ebx,-0x750(%ebp)
41320f:	eb 0d                	jmp    0x41321e
413211:	33 c0                	xor    %eax,%eax
413213:	ba 00 00 10 00       	mov    $0x100000,%edx
413218:	21 85 b0 f8 ff ff    	and    %eax,-0x750(%ebp)
41321e:	8b bd 84 f8 ff ff    	mov    -0x77c(%ebp),%edi
413224:	81 e6 ff ff 0f 00    	and    $0xfffff,%esi
41322a:	03 f8                	add    %eax,%edi
41322c:	8b 85 b0 f8 ff ff    	mov    -0x750(%ebp),%eax
413232:	89 bd 90 f8 ff ff    	mov    %edi,-0x770(%ebp)
413238:	13 f2                	adc    %edx,%esi
41323a:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
413240:	03 c1                	add    %ecx,%eax
413242:	89 85 b4 f8 ff ff    	mov    %eax,-0x74c(%ebp)
413248:	e8 73 25 00 00       	call   0x4157c0
41324d:	51                   	push   %ecx
41324e:	51                   	push   %ecx
41324f:	dd 1c 24             	fstpl  (%esp)
413252:	e8 79 26 00 00       	call   0x4158d0
413257:	59                   	pop    %ecx
413258:	59                   	pop    %ecx
413259:	e8 b2 4a 00 00       	call   0x417d10
41325e:	89 85 7c f8 ff ff    	mov    %eax,-0x784(%ebp)
413264:	6a 20                	push   $0x20
413266:	5f                   	pop    %edi
413267:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
41326c:	74 07                	je     0x413275
41326e:	3d 00 00 00 80       	cmp    $0x80000000,%eax
413273:	75 07                	jne    0x41327c
413275:	83 a5 7c f8 ff ff 00 	andl   $0x0,-0x784(%ebp)
41327c:	8b 95 b4 f8 ff ff    	mov    -0x74c(%ebp),%edx
413282:	33 c9                	xor    %ecx,%ecx
413284:	8b 85 90 f8 ff ff    	mov    -0x770(%ebp),%eax
41328a:	85 f6                	test   %esi,%esi
41328c:	89 85 30 fe ff ff    	mov    %eax,-0x1d0(%ebp)
413292:	0f 95 c1             	setne  %cl
413295:	89 b5 34 fe ff ff    	mov    %esi,-0x1cc(%ebp)
41329b:	41                   	inc    %ecx
41329c:	89 8d b0 f8 ff ff    	mov    %ecx,-0x750(%ebp)
4132a2:	89 8d 2c fe ff ff    	mov    %ecx,-0x1d4(%ebp)
4132a8:	81 fa 33 04 00 00    	cmp    $0x433,%edx
4132ae:	0f 82 99 03 00 00    	jb     0x41364d
4132b4:	83 a5 90 fa ff ff 00 	andl   $0x0,-0x570(%ebp)
4132bb:	c7 85 94 fa ff ff 00 	movl   $0x100000,-0x56c(%ebp)
4132c2:	00 10 00
4132c5:	c7 85 8c fa ff ff 02 	movl   $0x2,-0x574(%ebp)
4132cc:	00 00 00
4132cf:	85 f6                	test   %esi,%esi
4132d1:	0f 84 de 01 00 00    	je     0x4134b5
4132d7:	33 c9                	xor    %ecx,%ecx
4132d9:	8b 84 0d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,1),%eax
4132e0:	3b 84 0d 30 fe ff ff 	cmp    -0x1d0(%ebp,%ecx,1),%eax
4132e7:	0f 85 c8 01 00 00    	jne    0x4134b5
4132ed:	83 c1 04             	add    $0x4,%ecx
4132f0:	83 f9 08             	cmp    $0x8,%ecx
4132f3:	75 e4                	jne    0x4132d9
4132f5:	8d 8a cf fb ff ff    	lea    -0x431(%edx),%ecx
4132fb:	8b f7                	mov    %edi,%esi
4132fd:	8b c1                	mov    %ecx,%eax
4132ff:	33 d2                	xor    %edx,%edx
413301:	83 e1 1f             	and    $0x1f,%ecx
413304:	c1 e8 05             	shr    $0x5,%eax
413307:	2b f1                	sub    %ecx,%esi
413309:	89 85 9c f8 ff ff    	mov    %eax,-0x764(%ebp)
41330f:	89 8d a8 f8 ff ff    	mov    %ecx,-0x758(%ebp)
413315:	8b c3                	mov    %ebx,%eax
413317:	8b ce                	mov    %esi,%ecx
413319:	89 b5 ac f8 ff ff    	mov    %esi,-0x754(%ebp)
41331f:	e8 7c 49 00 00       	call   0x417ca0
413324:	8b 95 b0 f8 ff ff    	mov    -0x750(%ebp),%edx
41332a:	48                   	dec    %eax
41332b:	83 a5 88 f8 ff ff 00 	andl   $0x0,-0x778(%ebp)
413332:	89 85 94 f8 ff ff    	mov    %eax,-0x76c(%ebp)
413338:	f7 d0                	not    %eax