477e3a:	ff 70 04             	push   0x4(%eax)
477e3d:	e8 1c 77 fa ff       	call   0x41f55e
477e42:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477e45:	83 c4 04             	add    $0x4,%esp
477e48:	8b 01                	mov    (%ecx),%eax
477e4a:	89 70 04             	mov    %esi,0x4(%eax)
477e4d:	8b 01                	mov    (%ecx),%eax
477e4f:	8d 73 20             	lea    0x20(%ebx),%esi
477e52:	89 38                	mov    %edi,(%eax)
477e54:	8b f9                	mov    %ecx,%edi
477e56:	e9 72 63 f9 ff       	jmp    0x40e1cd
477e5b:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
477e5f:	8b 07                	mov    (%edi),%eax
477e61:	89 45 f8             	mov    %eax,-0x8(%ebp)
477e64:	8b ce                	mov    %esi,%ecx
477e66:	75 11                	jne    0x477e79
477e68:	e8 19 54 f9 ff       	call   0x40d286
477e6d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477e70:	03 c8                	add    %eax,%ecx
477e72:	89 0f                	mov    %ecx,(%edi)
477e74:	e9 54 63 f9 ff       	jmp    0x40e1cd
477e79:	e8 15 51 f9 ff       	call   0x40cf93
477e7e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477e81:	03 c8                	add    %eax,%ecx
477e83:	89 0f                	mov    %ecx,(%edi)
477e85:	e9 43 63 f9 ff       	jmp    0x40e1cd
477e8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
477e8d:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
477e94:	89 07                	mov    %eax,(%edi)
477e96:	89 4f 04             	mov    %ecx,0x4(%edi)
477e99:	e9 2f 63 f9 ff       	jmp    0x40e1cd
477e9e:	83 f8 02             	cmp    $0x2,%eax
477ea1:	0f 85 91 64 f9 ff    	jne    0x40e338
477ea7:	8b 07                	mov    (%edi),%eax
477ea9:	99                   	cltd
477eaa:	03 06                	add    (%esi),%eax
477eac:	13 56 04             	adc    0x4(%esi),%edx
477eaf:	89 07                	mov    %eax,(%edi)
477eb1:	89 57 04             	mov    %edx,0x4(%edi)
477eb4:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
477ebb:	e9 0d 63 f9 ff       	jmp    0x40e1cd
477ec0:	51                   	push   %ecx
477ec1:	e8 d3 ab f8 ff       	call   0x402a99
477ec6:	8b 55 fc             	mov    -0x4(%ebp),%edx
477ec9:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
477ed0:	e9 06 63 f9 ff       	jmp    0x40e1db
477ed5:	51                   	push   %ecx
477ed6:	e8 be ab f8 ff       	call   0x402a99
477edb:	8b 55 fc             	mov    -0x4(%ebp),%edx
477ede:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
477ee5:	e9 fc 62 f9 ff       	jmp    0x40e1e6
477eea:	83 c0 fb             	add    $0xfffffffb,%eax
477eed:	83 f8 0a             	cmp    $0xa,%eax
477ef0:	0f 87 fc 62 f9 ff    	ja     0x40e1f2
477ef6:	ff 24 85 6e 84 47 00 	jmp    *0x47846e(,%eax,4)
477efd:	8b 4d d8             	mov    -0x28(%ebp),%ecx
477f00:	85 c9                	test   %ecx,%ecx
477f02:	0f 84 ea 62 f9 ff    	je     0x40e1f2
477f08:	51                   	push   %ecx
477f09:	ff 15 4c d4 48 00    	call   *0x48d44c
477f0f:	ff 75 d8             	push   -0x28(%ebp)
477f12:	e8 47 76 fa ff       	call   0x41f55e
477f17:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f1a:	83 c4 04             	add    $0x4,%esp
477f1d:	e9 d0 62 f9 ff       	jmp    0x40e1f2
477f22:	8b 4d d8             	mov    -0x28(%ebp),%ecx
477f25:	85 c9                	test   %ecx,%ecx
477f27:	0f 84 c5 62 f9 ff    	je     0x40e1f2
477f2d:	51                   	push   %ecx
477f2e:	e8 38 22 fd ff       	call   0x44a16b
477f33:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f36:	e9 b7 62 f9 ff       	jmp    0x40e1f2
477f3b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
477f3e:	e8 7b 5d fa ff       	call   0x41dcbe
477f43:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f46:	e9 a7 62 f9 ff       	jmp    0x40e1f2
477f4b:	8b 45 d8             	mov    -0x28(%ebp),%eax
477f4e:	ff 70 04             	push   0x4(%eax)
477f51:	e8 08 76 fa ff       	call   0x41f55e
477f56:	83 c4 04             	add    $0x4,%esp
477f59:	ff 75 d8             	push   -0x28(%ebp)
477f5c:	e8 fd 75 fa ff       	call   0x41f55e
477f61:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f64:	83 c4 04             	add    $0x4,%esp
477f67:	e9 86 62 f9 ff       	jmp    0x40e1f2
477f6c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
477f6f:	85 c9                	test   %ecx,%ecx
477f71:	0f 84 7b 62 f9 ff    	je     0x40e1f2
477f77:	51                   	push   %ecx
477f78:	e8 46 18 fc ff       	call   0x4397c3
477f7d:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f80:	e9 6d 62 f9 ff       	jmp    0x40e1f2
477f85:	8b 4d d8             	mov    -0x28(%ebp),%ecx
477f88:	85 c9                	test   %ecx,%ecx
477f8a:	0f 84 62 62 f9 ff    	je     0x40e1f2
477f90:	51                   	push   %ecx
477f91:	e8 57 18 fc ff       	call   0x4397ed
477f96:	8b 55 fc             	mov    -0x4(%ebp),%edx
477f99:	e9 54 62 f9 ff       	jmp    0x40e1f2
477f9e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
477fa1:	85 c9                	test   %ecx,%ecx
477fa3:	0f 84 49 62 f9 ff    	je     0x40e1f2
477fa9:	51                   	push   %ecx
477faa:	e8 ea aa f8 ff       	call   0x402a99
477faf:	8b 55 fc             	mov    -0x4(%ebp),%edx
477fb2:	e9 3b 62 f9 ff       	jmp    0x40e1f2
477fb7:	48                   	dec    %eax
477fb8:	dd d8                	fstp   %st(0)
477fba:	83 f8 08             	cmp    $0x8,%eax
477fbd:	0f 87 6a 62 f9 ff    	ja     0x40e22d
477fc3:	ff 24 85 9a 84 47 00 	jmp    *0x47849a(,%eax,4)
477fca:	8d 4d d8             	lea    -0x28(%ebp),%ecx
477fcd:	e8 9a 13 f9 ff       	call   0x40936c
477fd2:	8b 75 e0             	mov    -0x20(%ebp),%esi
477fd5:	8d 4b 20             	lea    0x20(%ebx),%ecx
477fd8:	e8 8f 13 f9 ff       	call   0x40936c
477fdd:	8b 4b 28             	mov    0x28(%ebx),%ecx
477fe0:	6a 00                	push   $0x0
477fe2:	56                   	push   %esi
477fe3:	e8 76 53 fa ff       	call   0x41d35e
477fe8:	85 c0                	test   %eax,%eax
477fea:	0f 88 94 03 00 00    	js     0x478384
477ff0:	8b 55 fc             	mov    -0x4(%ebp),%edx
477ff3:	e9 35 62 f9 ff       	jmp    0x40e22d
477ff8:	8b ce                	mov    %esi,%ecx
477ffa:	e8 87 52 f9 ff       	call   0x40d286
477fff:	8d 4d d8             	lea    -0x28(%ebp),%ecx
478002:	8b f0                	mov    %eax,%esi
478004:	e8 7d 52 f9 ff       	call   0x40d286
478009:	3b f0                	cmp    %eax,%esi
47800b:	0f 8c 73 03 00 00    	jl     0x478384
478011:	8b 55 fc             	mov    -0x4(%ebp),%edx
478014:	e9 14 62 f9 ff       	jmp    0x40e22d
478019:	8b ce                	mov    %esi,%ecx
47801b:	e8 73 4f f9 ff       	call   0x40cf93
478020:	8d 4d d8             	lea    -0x28(%ebp),%ecx
478023:	89 45 ec             	mov    %eax,-0x14(%ebp)
478026:	8b f2                	mov    %edx,%esi
478028:	e8 66 4f f9 ff       	call   0x40cf93
47802d:	3b f2                	cmp    %edx,%esi
47802f:	0f 8c 4f 03 00 00    	jl     0x478384
478035:	7f 09                	jg     0x478040
478037:	39 45 ec             	cmp    %eax,-0x14(%ebp)
47803a:	0f 82 44 03 00 00    	jb     0x478384
478040:	8b 55 fc             	mov    -0x4(%ebp),%edx
478043:	e9 e5 61 f9 ff       	jmp    0x40e22d
478048:	8b ce                	mov    %esi,%ecx
47804a:	e8 28 35 fd ff       	call   0x44b577
47804f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
478052:	8b f0                	mov    %eax,%esi
478054:	e8 1e 35 fd ff       	call   0x44b577
478059:	3b f0                	cmp    %eax,%esi
47805b:	0f 82 23 03 00 00    	jb     0x478384
478061:	8b 55 fc             	mov    -0x4(%ebp),%edx
478064:	e9 c4 61 f9 ff       	jmp    0x40e22d
478069:	83 e9 02             	sub    $0x2,%ecx
47806c:	83 f9 08             	cmp    $0x8,%ecx
47806f:	0f 87 20 01 00 00    	ja     0x478195
478075:	ff 24 8d be 84 47 00 	jmp    *0x4784be(,%ecx,4)
47807c:	dd 06                	fldl   (%esi)
47807e:	e9 9d 61 f9 ff       	jmp    0x40e220
478083:	8b 46 08             	mov    0x8(%esi),%eax
478086:	dd d8                	fstp   %st(0)
478088:	8b ce                	mov    %esi,%ecx
47808a:	8b 10                	mov    (%eax),%edx
47808c:	e8 58 4f f9 ff       	call   0x40cfe9
478091:	84 c0                	test   %al,%al
478093:	74 12                	je     0x4780a7
478095:	8d 4a 04             	lea    0x4(%edx),%ecx
478098:	6a 08                	push   $0x8
47809a:	8d 55 e8             	lea    -0x18(%ebp),%edx
47809d:	e8 af 43 fa ff       	call   0x41c451
4780a2:	df 6d e8             	fildll -0x18(%ebp)
4780a5:	eb 06                	jmp    0x4780ad
4780a7:	52                   	push   %edx
4780a8:	e8 8e 9f fa ff       	call   0x42203b
4780ad:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4780b0:	dd 5d e8             	fstpl  -0x18(%ebp)
4780b3:	83 c4 04             	add    $0x4,%esp
4780b6:	83 f8 03             	cmp    $0x3,%eax
4780b9:	0f 84 ab 00 00 00    	je     0x47816a
4780bf:	48                   	dec    %eax
4780c0:	83 f8 09             	cmp    $0x9,%eax
4780c3:	0f 87 94 00 00 00    	ja     0x47815d
4780c9:	ff 24 85 e2 84 47 00 	jmp    *0x4784e2(,%eax,4)
4780d0:	8b 45 e0             	mov    -0x20(%ebp),%eax
4780d3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4780d6:	8b 10                	mov    (%eax),%edx
4780d8:	e8 0c 4f f9 ff       	call   0x40cfe9
4780dd:	84 c0                	test   %al,%al
4780df:	74 2c                	je     0x47810d
4780e1:	8d 4a 04             	lea    0x4(%edx),%ecx
4780e4:	6a 08                	push   $0x8
4780e6:	8d 55 f0             	lea    -0x10(%ebp),%edx
4780e9:	e8 63 43 fa ff       	call   0x41c451
4780ee:	df 6d f0             	fildll -0x10(%ebp)
4780f1:	dd 45 e8             	fldl   -0x18(%ebp)
4780f4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4780f7:	83 c4 04             	add    $0x4,%esp
4780fa:	e9 21 61 f9 ff       	jmp    0x40e220
4780ff:	db 45 d8             	fildl  -0x28(%ebp)
478102:	8b 55 fc             	mov    -0x4(%ebp),%edx
478105:	dd 45 e8             	fldl   -0x18(%ebp)
478108:	e9 13 61 f9 ff       	jmp    0x40e220
47810d:	52                   	push   %edx
47810e:	e8 28 9f fa ff       	call   0x42203b
478113:	dd 45 e8             	fldl   -0x18(%ebp)
478116:	8b 55 fc             	mov    -0x4(%ebp),%edx
478119:	83 c4 04             	add    $0x4,%esp
47811c:	e9 ff 60 f9 ff       	jmp    0x40e220
478121:	df 6d d8             	fildll -0x28(%ebp)
478124:	8b 55 fc             	mov    -0x4(%ebp),%edx
478127:	dd 45 e8             	fldl   -0x18(%ebp)
47812a:	e9 f1 60 f9 ff       	jmp    0x40e220
47812f:	8b 45 d8             	mov    -0x28(%ebp),%eax
478132:	8b 55 fc             	mov    -0x4(%ebp),%edx
478135:	db 40 04             	fildl  0x4(%eax)
478138:	dd 45 e8             	fldl   -0x18(%ebp)
47813b:	e9 e0 60 f9 ff       	jmp    0x40e220
478140:	80 7d d8 00          	cmpb   $0x0,-0x28(%ebp)
478144:	8b 55 fc             	mov    -0x4(%ebp),%edx
478147:	74 0a                	je     0x478153
478149:	d9 e8                	fld1
47814b:	dd 45 e8             	fldl   -0x18(%ebp)
47814e:	e9 cd 60 f9 ff       	jmp    0x40e220
478153:	d9 ee                	fldz
478155:	dd 45 e8             	fldl   -0x18(%ebp)
478158:	e9 c3 60 f9 ff       	jmp    0x40e220
47815d:	d9 ee                	fldz
47815f:	8b 55 fc             	mov    -0x4(%ebp),%edx
478162:	dd 45 e8             	fldl   -0x18(%ebp)
478165:	e9 b6 60 f9 ff       	jmp    0x40e220
47816a:	dd 45 d8             	fldl   -0x28(%ebp)
47816d:	8b 55 fc             	mov    -0x4(%ebp),%edx
478170:	dd 45 e8             	fldl   -0x18(%ebp)
478173:	e9 a8 60 f9 ff       	jmp    0x40e220
478178:	df 2e                	fildll (%esi)
47817a:	e9 a1 60 f9 ff       	jmp    0x40e220
47817f:	8b 06                	mov    (%esi),%eax
478181:	db 40 04             	fildl  0x4(%eax)
478184:	e9 97 60 f9 ff       	jmp    0x40e220
478189:	80 3e 00             	cmpb   $0x0,(%esi)
47818c:	74 07                	je     0x478195
47818e:	d9 e8                	fld1
478190:	e9 8b 60 f9 ff       	jmp    0x40e220
478195:	d9 c0                	fld    %st(0)
478197:	e9 84 60 f9 ff       	jmp    0x40e220
47819c:	8b cf                	mov    %edi,%ecx
47819e:	e8 c9 11 f9 ff       	call   0x40936c
4781a3:	8b 77 08             	mov    0x8(%edi),%esi
4781a6:	8d 4b 10             	lea    0x10(%ebx),%ecx
4781a9:	e8 be 11 f9 ff       	call   0x40936c
4781ae:	8b 4b 18             	mov    0x18(%ebx),%ecx
4781b1:	6a 00                	push   $0x0
4781b3:	56                   	push   %esi
4781b4:	e8 a5 51 fa ff       	call   0x41d35e
4781b9:	85 c0                	test   %eax,%eax
4781bb:	0f 88 d3 60 f9 ff    	js     0x40e294
4781c1:	e9 41 61 f9 ff       	jmp    0x40e307
4781c6:	8b cf                	mov    %edi,%ecx
4781c8:	e8 c6 4d f9 ff       	call   0x40cf93
4781cd:	8d 4b 10             	lea    0x10(%ebx),%ecx
4781d0:	89 45 ec             	mov    %eax,-0x14(%ebp)
4781d3:	8b f2                	mov    %edx,%esi
4781d5:	e8 b9 4d f9 ff       	call   0x40cf93
4781da:	3b d6                	cmp    %esi,%edx
4781dc:	0f 8c b2 60 f9 ff    	jl     0x40e294
4781e2:	0f 8f 1f 61 f9 ff    	jg     0x40e307
4781e8:	3b 45 ec             	cmp    -0x14(%ebp),%eax
4781eb:	0f 82 a3 60 f9 ff    	jb     0x40e294
4781f1:	e9 11 61 f9 ff       	jmp    0x40e307
4781f6:	8d 4b 10             	lea    0x10(%ebx),%ecx
4781f9:	e8 79 33 fd ff       	call   0x44b577
4781fe:	8b cf                	mov    %edi,%ecx
478200:	8b f0                	mov    %eax,%esi
478202:	e8 70 33 fd ff       	call   0x44b577
478207:	3b f0                	cmp    %eax,%esi
478209:	0f 83 f8 60 f9 ff    	jae    0x40e307
47820f:	e9 80 60 f9 ff       	jmp    0x40e294
478214:	83 e9 02             	sub    $0x2,%ecx
478217:	83 f9 09             	cmp    $0x9,%ecx
47821a:	0f 87 9e 00 00 00    	ja     0x4782be
478220:	ff 24 8d 0a 85 47 00 	jmp    *0x47850a(,%ecx,4)
478227:	8b 43 18             	mov    0x18(%ebx),%eax
47822a:	8d 4b 10             	lea    0x10(%ebx),%ecx
47822d:	8b 10                	mov    (%eax),%edx
47822f:	e8 b5 4d f9 ff       	call   0x40cfe9
478234:	84 c0                	test   %al,%al
478236:	74 1b                	je     0x478253
478238:	8d 4a 04             	lea    0x4(%edx),%ecx
47823b:	6a 10                	push   $0x10
47823d:	8d 55 e8             	lea    -0x18(%ebp),%edx
478240:	e8 0c 42 fa ff       	call   0x41c451
478245:	8b 75 e8             	mov    -0x18(%ebp),%esi
478248:	8b 55 fc             	mov    -0x4(%ebp),%edx
47824b:	83 c4 04             	add    $0x4,%esp
47824e:	e9 06 60 f9 ff       	jmp    0x40e259
478253:	52                   	push   %edx
478254:	e8 c8 93 fa ff       	call   0x421621
478259:	8b 55 fc             	mov    -0x4(%ebp),%edx
47825c:	83 c4 04             	add    $0x4,%esp
47825f:	8b f0                	mov    %eax,%esi
478261:	e9 f3 5f f9 ff       	jmp    0x40e259
478266:	8b 73 10             	mov    0x10(%ebx),%esi
478269:	e9 eb 5f f9 ff       	jmp    0x40e259
47826e:	dd 43 10             	fldl   0x10(%ebx)
478271:	e8 5a 96 ff ff       	call   0x4718d0
478276:	8b 55 fc             	mov    -0x4(%ebp),%edx
478279:	8b f0                	mov    %eax,%esi
47827b:	e9 d9 5f f9 ff       	jmp    0x40e259
478280:	33 c0                	xor    %eax,%eax
478282:	38 43 10             	cmp    %al,0x10(%ebx)
478285:	0f 95 c0             	setne  %al
478288:	e9 c7 5f f9 ff       	jmp    0x40e254
47828d:	8b 43 10             	mov    0x10(%ebx),%eax
478290:	8b 70 04             	mov    0x4(%eax),%esi
478293:	e9 c1 5f f9 ff       	jmp    0x40e259
478298:	8b 4b 10             	mov    0x10(%ebx),%ecx
47829b:	8b 01                	mov    (%ecx),%eax
47829d:	83 f8 08             	cmp    $0x8,%eax
4782a0:	7f 1c                	jg     0x4782be
4782a2:	8b 49 04             	mov    0x4(%ecx),%ecx
4782a5:	8d 55 e8             	lea    -0x18(%ebp),%edx
4782a8:	52                   	push   %edx
4782a9:	8b d0                	mov    %eax,%edx
4782ab:	e8 8f fa fc ff       	call   0x447d3f
4782b0:	8b 75 e8             	mov    -0x18(%ebp),%esi
4782b3:	8b 55 fc             	mov    -0x4(%ebp),%edx
4782b6:	83 c4 04             	add    $0x4,%esp
4782b9:	e9 9b 5f f9 ff       	jmp    0x40e259
4782be:	33 f6                	xor    %esi,%esi
4782c0:	e9 94 5f f9 ff       	jmp    0x40e259
4782c5:	83 e8 02             	sub    $0x2,%eax
4782c8:	83 f8 09             	cmp    $0x9,%eax
4782cb:	0f 87 8d 00 00 00    	ja     0x47835e
4782d1:	ff 24 85 32 85 47 00 	jmp    *0x478532(,%eax,4)
4782d8:	8b 47 08             	mov    0x8(%edi),%eax
4782db:	8b cf                	mov    %edi,%ecx
4782dd:	8b 10                	mov    (%eax),%edx
4782df:	e8 05 4d f9 ff       	call   0x40cfe9
4782e4:	84 c0                	test   %al,%al
4782e6:	74 1b                	je     0x478303
4782e8:	8d 4a 04             	lea    0x4(%edx),%ecx
4782eb:	6a 10                	push   $0x10
4782ed:	8d 55 e8             	lea    -0x18(%ebp),%edx
4782f0:	e8 5c 41 fa ff       	call   0x41c451
4782f5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4782f8:	8b 55 fc             	mov    -0x4(%ebp),%edx
4782fb:	83 c4 04             	add    $0x4,%esp
4782fe:	e9 64 5f f9 ff       	jmp    0x40e267