40f980:	89 45 98             	mov    %eax,-0x68(%ebp)
40f983:	85 f6                	test   %esi,%esi
40f985:	0f 84 a0 fc ff ff    	je     0x40f62b
40f98b:	8b 46 04             	mov    0x4(%esi),%eax
40f98e:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40f991:	0f 87 ed 01 00 00    	ja     0x40fb84
40f997:	8b 0e                	mov    (%esi),%ecx
40f999:	8b 55 c0             	mov    -0x40(%ebp),%edx
40f99c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40f99f:	85 db                	test   %ebx,%ebx
40f9a1:	74 16                	je     0x40f9b9
40f9a3:	66 8b 02             	mov    (%edx),%ax
40f9a6:	66 3b 01             	cmp    (%ecx),%ax
40f9a9:	75 14                	jne    0x40f9bf
40f9ab:	83 c2 02             	add    $0x2,%edx
40f9ae:	83 c1 02             	add    $0x2,%ecx
40f9b1:	ff 4d e4             	decl   -0x1c(%ebp)
40f9b4:	75 ed                	jne    0x40f9a3
40f9b6:	8b 46 04             	mov    0x4(%esi),%eax
40f9b9:	3b d8                	cmp    %eax,%ebx
40f9bb:	72 04                	jb     0x40f9c1
40f9bd:	eb 24                	jmp    0x40f9e3
40f9bf:	73 22                	jae    0x40f9e3
40f9c1:	8b 4d 98             	mov    -0x68(%ebp),%ecx
40f9c4:	8b fe                	mov    %esi,%edi
40f9c6:	8b 47 1c             	mov    0x1c(%edi),%eax
40f9c9:	89 01                	mov    %eax,(%ecx)
40f9cb:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40f9d0:	89 47 1c             	mov    %eax,0x1c(%edi)
40f9d3:	89 3d e0 20 4c 00    	mov    %edi,0x4c20e0
40f9d9:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
40f9dd:	0f 84 48 fc ff ff    	je     0x40f62b
40f9e3:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f9e6:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f9e9:	89 79 18             	mov    %edi,0x18(%ecx)
40f9ec:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40f9f1:	89 45 88             	mov    %eax,-0x78(%ebp)
40f9f4:	8b 78 18             	mov    0x18(%eax),%edi
40f9f7:	89 3d e0 20 4c 00    	mov    %edi,0x4c20e0
40f9fd:	e9 de fb ff ff       	jmp    0x40f5e0
40fa02:	8b d3                	mov    %ebx,%edx
40fa04:	e9 b9 f8 ff ff       	jmp    0x40f2c2
40fa09:	8b d8                	mov    %eax,%ebx
40fa0b:	e9 35 f9 ff ff       	jmp    0x40f345
40fa10:	8b 5f 1c             	mov    0x1c(%edi),%ebx
40fa13:	8d 47 1c             	lea    0x1c(%edi),%eax
40fa16:	89 45 98             	mov    %eax,-0x68(%ebp)
40fa19:	85 db                	test   %ebx,%ebx
40fa1b:	0f 84 0a fc ff ff    	je     0x40f62b
40fa21:	8b 43 04             	mov    0x4(%ebx),%eax
40fa24:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40fa27:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fa2a:	3b c1                	cmp    %ecx,%eax
40fa2c:	0f 87 48 01 00 00    	ja     0x40fb7a
40fa32:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40fa35:	8b 13                	mov    (%ebx),%edx
40fa37:	8b f0                	mov    %eax,%esi
40fa39:	85 c0                	test   %eax,%eax
40fa3b:	74 17                	je     0x40fa54
40fa3d:	8d 49 00             	lea    0x0(%ecx),%ecx
40fa40:	66 8b 02             	mov    (%edx),%ax
40fa43:	66 3b 01             	cmp    (%ecx),%ax
40fa46:	75 34                	jne    0x40fa7c
40fa48:	83 c2 02             	add    $0x2,%edx
40fa4b:	83 c1 02             	add    $0x2,%ecx
40fa4e:	4e                   	dec    %esi
40fa4f:	75 ef                	jne    0x40fa40
40fa51:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fa54:	3b 45 b8             	cmp    -0x48(%ebp),%eax
40fa57:	73 25                	jae    0x40fa7e
40fa59:	8b 4d 98             	mov    -0x68(%ebp),%ecx
40fa5c:	8b fb                	mov    %ebx,%edi
40fa5e:	8b 47 18             	mov    0x18(%edi),%eax
40fa61:	89 01                	mov    %eax,(%ecx)
40fa63:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40fa68:	89 47 18             	mov    %eax,0x18(%edi)
40fa6b:	89 3d e0 20 4c 00    	mov    %edi,0x4c20e0
40fa71:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40fa75:	75 07                	jne    0x40fa7e
40fa77:	e9 af fb ff ff       	jmp    0x40f62b
40fa7c:	72 db                	jb     0x40fa59
40fa7e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40fa81:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40fa84:	89 79 1c             	mov    %edi,0x1c(%ecx)
40fa87:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40fa8c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40fa8f:	8b 78 1c             	mov    0x1c(%eax),%edi
40fa92:	89 3d e0 20 4c 00    	mov    %edi,0x4c20e0
40fa98:	e9 43 fb ff ff       	jmp    0x40f5e0
40fa9d:	8b 10                	mov    (%eax),%edx
40fa9f:	85 c9                	test   %ecx,%ecx
40faa1:	0f 84 e1 f7 ff ff    	je     0x40f288
40faa7:	eb 07                	jmp    0x40fab0
40faa9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40fab0:	66 8b 07             	mov    (%edi),%ax
40fab3:	66 3b 02             	cmp    (%edx),%ax
40fab6:	0f 84 e9 00 00 00    	je     0x40fba5
40fabc:	0f b7 c0             	movzwl %ax,%eax
40fabf:	66 3b 02             	cmp    (%edx),%ax
40fac2:	e9 cb f7 ff ff       	jmp    0x40f292
40fac7:	8b 46 0c             	mov    0xc(%esi),%eax
40faca:	ff 08                	decl   (%eax)
40facc:	8b 46 0c             	mov    0xc(%esi),%eax
40facf:	83 38 00             	cmpl   $0x0,(%eax)
40fad2:	0f 84 b3 00 00 00    	je     0x40fb8b
40fad8:	56                   	push   %esi
40fad9:	e8 80 fa 00 00       	call   0x41f55e
40fade:	83 c4 04             	add    $0x4,%esp
40fae1:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
40fae8:	e9 3e fa ff ff       	jmp    0x40f52b
40faed:	66 83 f9 52          	cmp    $0x52,%cx
40faf1:	0f 84 8a f9 ff ff    	je     0x40f481
40faf7:	e9 2f 91 06 00       	jmp    0x478c2b
40fafc:	83 c7 ae             	add    $0xffffffae,%edi
40faff:	83 ff 04             	cmp    $0x4,%edi
40fb02:	0f 87 18 fa ff ff    	ja     0x40f520
40fb08:	ff 24 bd 20 fd 40 00 	jmp    *0x40fd20(,%edi,4)
40fb0f:	8d 45 9c             	lea    -0x64(%ebp),%eax
40fb12:	50                   	push   %eax
40fb13:	8b ce                	mov    %esi,%ecx
40fb15:	e8 0b 4a 00 00       	call   0x414525
40fb1a:	e9 01 fa ff ff       	jmp    0x40f520
40fb1f:	8b 17                	mov    (%edi),%edx
40fb21:	8b 75 c0             	mov    -0x40(%ebp),%esi
40fb24:	85 c9                	test   %ecx,%ecx
40fb26:	0f 84 eb fa ff ff    	je     0x40f617
40fb2c:	8d 64 24 00          	lea    0x0(%esp),%esp
40fb30:	66 8b 06             	mov    (%esi),%ax
40fb33:	66 3b 02             	cmp    (%edx),%ax
40fb36:	74 11                	je     0x40fb49
40fb38:	0f b7 c0             	movzwl %ax,%eax
40fb3b:	66 3b 02             	cmp    (%edx),%ax
40fb3e:	1b c0                	sbb    %eax,%eax
40fb40:	83 e0 fe             	and    $0xfffffffe,%eax
40fb43:	40                   	inc    %eax
40fb44:	e9 d0 fa ff ff       	jmp    0x40f619
40fb49:	83 c6 02             	add    $0x2,%esi
40fb4c:	83 c2 02             	add    $0x2,%edx
40fb4f:	49                   	dec    %ecx
40fb50:	75 de                	jne    0x40fb30
40fb52:	e9 c0 fa ff ff       	jmp    0x40f617
40fb57:	83 7d a8 04          	cmpl   $0x4,-0x58(%ebp)
40fb5b:	0f 85 90 f9 ff ff    	jne    0x40f4f1
40fb61:	8b 4e 08             	mov    0x8(%esi),%ecx
40fb64:	8b 75 a4             	mov    -0x5c(%ebp),%esi
40fb67:	3b ce                	cmp    %esi,%ecx
40fb69:	0f 84 b1 f9 ff ff    	je     0x40f520
40fb6f:	56                   	push   %esi
40fb70:	e8 d2 e1 ff ff       	call   0x40dd47
40fb75:	e9 a6 f9 ff ff       	jmp    0x40f520
40fb7a:	8b c1                	mov    %ecx,%eax
40fb7c:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40fb7f:	e9 ae fe ff ff       	jmp    0x40fa32
40fb84:	8b d8                	mov    %eax,%ebx
40fb86:	e9 0c fe ff ff       	jmp    0x40f997
40fb8b:	ff 36                	push   (%esi)
40fb8d:	e8 cc f9 00 00       	call   0x41f55e
40fb92:	83 c4 04             	add    $0x4,%esp
40fb95:	ff 76 0c             	push   0xc(%esi)
40fb98:	e8 c1 f9 00 00       	call   0x41f55e
40fb9d:	83 c4 04             	add    $0x4,%esp
40fba0:	e9 33 ff ff ff       	jmp    0x40fad8
40fba5:	83 c7 02             	add    $0x2,%edi
40fba8:	83 c2 02             	add    $0x2,%edx
40fbab:	49                   	dec    %ecx
40fbac:	0f 85 fe fe ff ff    	jne    0x40fab0
40fbb2:	33 c0                	xor    %eax,%eax
40fbb4:	e9 df f6 ff ff       	jmp    0x40f298
40fbb9:	8b cf                	mov    %edi,%ecx
40fbbb:	e8 77 cf ff ff       	call   0x40cb37
40fbc0:	57                   	push   %edi
40fbc1:	e8 98 f9 00 00       	call   0x41f55e
40fbc6:	83 c4 04             	add    $0x4,%esp
40fbc9:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40fbd0:	e9 27 f9 ff ff       	jmp    0x40f4fc
40fbd5:	83 c0 fb             	add    $0xfffffffb,%eax
40fbd8:	83 f8 0a             	cmp    $0xa,%eax
40fbdb:	0f 87 56 f9 ff ff    	ja     0x40f537
40fbe1:	ff 24 85 34 fd 40 00 	jmp    *0x40fd34(,%eax,4)
40fbe8:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40fbeb:	e8 ce e0 00 00       	call   0x41dcbe
40fbf0:	e9 42 f9 ff ff       	jmp    0x40f537
40fbf5:	83 e8 05             	sub    $0x5,%eax
40fbf8:	83 f8 0a             	cmp    $0xa,%eax
40fbfb:	0f 87 07 f9 ff ff    	ja     0x40f508
40fc01:	ff 24 85 60 fd 40 00 	jmp    *0x40fd60(,%eax,4)
40fc08:	8b ce                	mov    %esi,%ecx
40fc0a:	e8 af e0 00 00       	call   0x41dcbe
40fc0f:	e9 f4 f8 ff ff       	jmp    0x40f508
40fc14:	8d 47 fe             	lea    -0x2(%edi),%eax
40fc17:	83 f8 09             	cmp    $0x9,%eax
40fc1a:	0f 87 c0 00 00 00    	ja     0x40fce0
40fc20:	ff 24 85 8c fd 40 00 	jmp    *0x40fd8c(,%eax,4)
40fc27:	dd 45 c4             	fldl   -0x3c(%ebp)
40fc2a:	e8 a1 1c 06 00       	call   0x4718d0
40fc2f:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40fc32:	e9 e9 fa ff ff       	jmp    0x40f720
40fc37:	83 c7 fe             	add    $0xfffffffe,%edi
40fc3a:	83 ff 09             	cmp    $0x9,%edi
40fc3d:	0f 87 ad 00 00 00    	ja     0x40fcf0
40fc43:	ff 24 bd b4 fd 40 00 	jmp    *0x40fdb4(,%edi,4)
40fc4a:	dd 45 c4             	fldl   -0x3c(%ebp)
40fc4d:	e8 7e 1c 06 00       	call   0x4718d0
40fc52:	8b 55 f8             	mov    -0x8(%ebp),%edx
40fc55:	8b d8                	mov    %eax,%ebx
40fc57:	e9 f0 fa ff ff       	jmp    0x40f74c
40fc5c:	8d 46 fe             	lea    -0x2(%esi),%eax
40fc5f:	83 f8 09             	cmp    $0x9,%eax
40fc62:	0f 87 97 00 00 00    	ja     0x40fcff
40fc68:	ff 24 85 dc fd 40 00 	jmp    *0x40fddc(,%eax,4)
40fc6f:	dd 45 d4             	fldl   -0x2c(%ebp)
40fc72:	e8 59 1c 06 00       	call   0x4718d0
40fc77:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40fc7a:	e9 1c fc ff ff       	jmp    0x40f89b
40fc7f:	83 c6 fe             	add    $0xfffffffe,%esi
40fc82:	83 fe 09             	cmp    $0x9,%esi
40fc85:	0f 87 84 00 00 00    	ja     0x40fd0f
40fc8b:	ff 24 b5 04 fe 40 00 	jmp    *0x40fe04(,%esi,4)
40fc92:	dd 45 d4             	fldl   -0x2c(%ebp)
40fc95:	e8 36 1c 06 00       	call   0x4718d0
40fc9a:	8b 55 b0             	mov    -0x50(%ebp),%edx
40fc9d:	8b d8                	mov    %eax,%ebx
40fc9f:	e9 23 fc ff ff       	jmp    0x40f8c7
40fca4:	8b 45 ac             	mov    -0x54(%ebp),%eax
40fca7:	33 f6                	xor    %esi,%esi
40fca9:	e9 2f f7 ff ff       	jmp    0x40f3dd
40fcae:	8b 55 f0             	mov    -0x10(%ebp),%edx
40fcb1:	80 ba 03 01 00 00 00 	cmpb   $0x0,0x103(%edx)
40fcb8:	0f 85 b5 91 06 00    	jne    0x478e73
40fcbe:	83 ff 41             	cmp    $0x41,%edi
40fcc1:	0f 85 ac 91 06 00    	jne    0x478e73
40fcc7:	6a 00                	push   $0x0
40fcc9:	6a 00                	push   $0x0
40fccb:	8d 45 9c             	lea    -0x64(%ebp),%eax
40fcce:	50                   	push   %eax
40fccf:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
40fcd5:	50                   	push   %eax
40fcd6:	e8 0e da ff ff       	call   0x40d6e9
40fcdb:	e9 40 f8 ff ff       	jmp    0x40f520
40fce0:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40fce3:	e9 40 fa ff ff       	jmp    0x40f728
40fce8:	8b 5b 04             	mov    0x4(%ebx),%ebx
40fceb:	e9 5c fa ff ff       	jmp    0x40f74c
40fcf0:	33 db                	xor    %ebx,%ebx
40fcf2:	e9 55 fa ff ff       	jmp    0x40f74c
40fcf7:	ff 75 ac             	push   -0x54(%ebp)
40fcfa:	e9 b2 8e 06 00       	jmp    0x478bb1
40fcff:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40fd02:	e9 9c fb ff ff       	jmp    0x40f8a3
40fd07:	8b 5b 04             	mov    0x4(%ebx),%ebx
40fd0a:	e9 b8 fb ff ff       	jmp    0x40f8c7
40fd0f:	33 db                	xor    %ebx,%ebx
40fd11:	e9 b1 fb ff ff       	jmp    0x40f8c7
40fd16:	ff 75 e4             	push   -0x1c(%ebp)
40fd19:	e9 4d 90 06 00       	jmp    0x478d6b
40fd1e:	8b ff                	mov    %edi,%edi
40fd20:	0f fb 40 00          	psubq  0x0(%eax),%mm0
40fd24:	88 8e 47 00 98 8e    	mov    %cl,-0x7167ffb9(%esi)
40fd2a:	47                   	inc    %edi
40fd2b:	00 a8 8e 47 00 b8    	add    %ch,-0x47ffb872(%eax)
40fd31:	8e 47 00             	mov    0x0(%edi),%es
40fd34:	e8 fb 40 00 37       	call   0x37413e34
40fd39:	f5                   	cmc
40fd3a:	40                   	inc    %eax
40fd3b:	00 37                	add    %dh,(%edi)
40fd3d:	f5                   	cmc
40fd3e:	40                   	inc    %eax
40fd3f:	00 58 8f             	add    %bl,-0x71(%eax)
40fd42:	47                   	inc    %edi
40fd43:	00 37                	add    %dh,(%edi)
40fd45:	f5                   	cmc
40fd46:	40                   	inc    %eax
40fd47:	00 7a 8f             	add    %bh,-0x71(%edx)
40fd4a:	47                   	inc    %edi
40fd4b:	00 90 8f 47 00 ae    	add    %dl,-0x51ffb871(%eax)
40fd51:	8f 47 00             	pop    0x0(%edi)
40fd54:	da 8f 47 00 da 8f    	fimull -0x7025ffb9(%edi)
40fd5a:	47                   	inc    %edi
40fd5b:	00 c4                	add    %al,%ah
40fd5d:	8f 47 00             	pop    0x0(%edi)
40fd60:	08 fc                	or     %bh,%ah
40fd62:	40                   	inc    %eax
40fd63:	00 08                	add    %cl,(%eax)
40fd65:	f5                   	cmc
40fd66:	40                   	inc    %eax
40fd67:	00 08                	add    %cl,(%eax)
40fd69:	f5                   	cmc
40fd6a:	40                   	inc    %eax
40fd6b:	00 c8                	add    %cl,%al
40fd6d:	8e 47 00             	mov    0x0(%edi),%es
40fd70:	08 f5                	or     %dh,%ch
40fd72:	40                   	inc    %eax
40fd73:	00 e8                	add    %ch,%al
40fd75:	8e 47 00             	mov    0x0(%edi),%es
40fd78:	fd                   	std
40fd79:	8e 47 00             	mov    0x0(%edi),%es
40fd7c:	19 8f 47 00 43 8f    	sbb    %ecx,-0x70bcffb9(%edi)
40fd82:	47                   	inc    %edi
40fd83:	00 43 8f             	add    %al,-0x71(%ebx)
40fd86:	47                   	inc    %edi
40fd87:	00 2e                	add    %ch,(%esi)
40fd89:	8f 47 00             	pop    0x0(%edi)
40fd8c:	1b f7                	sbb    %edi,%esi
40fd8e:	40                   	inc    %eax
40fd8f:	00 27                	add    %ah,(%edi)
40fd91:	fc                   	cld
40fd92:	40                   	inc    %eax
40fd93:	00 50 89             	add    %dl,-0x77(%eax)
40fd96:	47                   	inc    %edi
40fd97:	00 e0                	add    %ah,%al
40fd99:	fc                   	cld
40fd9a:	40                   	inc    %eax
40fd9b:	00 e0                	add    %ah,%al
40fd9d:	fc                   	cld
40fd9e:	40                   	inc    %eax
40fd9f:	00 1b                	add    %bl,(%ebx)
40fda1:	f7 40 00 e0 fc 40 00 	testl  $0x40fce0,0x0(%eax)
40fda8:	e0 fc                	loopne 0x40fda6
40fdaa:	40                   	inc    %eax
40fdab:	00 93 89 47 00 9e    	add    %dl,-0x61ffb877(%ebx)
40fdb1:	89 47 00             	mov    %eax,0x0(%edi)
40fdb4:	4c                   	dec    %esp
40fdb5:	f7 40 00 4a fc 40 00 	testl  $0x40fc4a,0x0(%eax)
40fdbc:	c3                   	ret
40fdbd:	89 47 00             	mov    %eax,0x0(%edi)
40fdc0:	f0 fc                	lock cld
40fdc2:	40                   	inc    %eax
40fdc3:	00 f0                	add    %dh,%al
40fdc5:	fc                   	cld
40fdc6:	40                   	inc    %eax
40fdc7:	00 4c f7 40          	add    %cl,0x40(%edi,%esi,8)
40fdcb:	00 f0                	add    %dh,%al
40fdcd:	fc                   	cld
40fdce:	40                   	inc    %eax
40fdcf:	00 08                	add    %cl,(%eax)
40fdd1:	8a 47 00             	mov    0x0(%edi),%al
40fdd4:	e8 fc 40 00 16       	call   0x16413ed5
40fdd9:	8a 47 00             	mov    0x0(%edi),%al
40fddc:	96                   	xchg   %eax,%esi
40fddd:	f8                   	clc
40fdde:	40                   	inc    %eax
40fddf:	00 6f fc             	add    %ch,-0x4(%edi)
40fde2:	40                   	inc    %eax
40fde3:	00 6a 8c             	add    %ch,-0x74(%edx)
40fde6:	47                   	inc    %edi
40fde7:	00 ff                	add    %bh,%bh
40fde9:	fc                   	cld
40fdea:	40                   	inc    %eax
40fdeb:	00 ff                	add    %bh,%bh
40fded:	fc                   	cld