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
40fdee:	40                   	inc    %eax
40fdef:	00 96 f8 40 00 ff    	add    %dl,-0xffbf08(%esi)
40fdf5:	fc                   	cld
40fdf6:	40                   	inc    %eax
40fdf7:	00 ff                	add    %bh,%bh
40fdf9:	fc                   	cld
40fdfa:	40                   	inc    %eax
40fdfb:	00 b3 8c 47 00 be    	add    %dh,-0x41ffb874(%ebx)
40fe01:	8c 47 00             	mov    %es,0x0(%edi)
40fe04:	c7 f8 40 00 92 fc    	xbegin 0xfcd2fe4a
40fe0a:	40                   	inc    %eax
40fe0b:	00 e9                	add    %ch,%cl
40fe0d:	8c 47 00             	mov    %es,0x0(%edi)
40fe10:	0f fd 40 00          	paddw  0x0(%eax),%mm0
40fe14:	0f fd 40 00          	paddw  0x0(%eax),%mm0
40fe18:	c7 f8 40 00 0f fd    	xbegin 0xfd4ffe5e
40fe1e:	40                   	inc    %eax
40fe1f:	00 28                	add    %ch,(%eax)
40fe21:	8d 47 00             	lea    0x0(%edi),%eax
40fe24:	07                   	pop    %es
40fe25:	fd                   	std
40fe26:	40                   	inc    %eax
40fe27:	00 36                	add    %dh,(%esi)
40fe29:	8d 47 00             	lea    0x0(%edi),%eax
40fe2c:	cc                   	int3
40fe2d:	cc                   	int3
40fe2e:	cc                   	int3
40fe2f:	cc                   	int3
40fe30:	55                   	push   %ebp
40fe31:	8b ec                	mov    %esp,%ebp
40fe33:	83 e4 f8             	and    $0xfffffff8,%esp
40fe36:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40fe3c:	a1 1c 22 4c 00       	mov    0x4c221c,%eax
40fe41:	53                   	push   %ebx
40fe42:	56                   	push   %esi
40fe43:	57                   	push   %edi
40fe44:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40fe48:	a8 01                	test   $0x1,%al
40fe4a:	0f 84 7f 15 00 00    	je     0x4113cf
40fe50:	8b 7d 10             	mov    0x10(%ebp),%edi
40fe53:	33 c0                	xor    %eax,%eax
40fe55:	6a 08                	push   $0x8
40fe57:	66 c7 44 24 60 01 00 	movw   $0x1,0x60(%esp)
40fe5e:	89 7c 24 24          	mov    %edi,0x24(%esp)
40fe62:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
40fe69:	00
40fe6a:	89 44 24 14          	mov    %eax,0x14(%esp)
40fe6e:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40fe72:	66 c7 44 24 30 01 00 	movw   $0x1,0x30(%esp)
40fe79:	e8 6c f6 00 00       	call   0x41f4ea
40fe7e:	8b d8                	mov    %eax,%ebx
40fe80:	83 c4 04             	add    $0x4,%esp
40fe83:	89 44 24 34          	mov    %eax,0x34(%esp)
40fe87:	85 db                	test   %ebx,%ebx
40fe89:	0f 84 7d 16 00 00    	je     0x41150c
40fe8f:	c7 03 14 00 00 00    	movl   $0x14,(%ebx)
40fe95:	8b 75 0c             	mov    0xc(%ebp),%esi
40fe98:	8b 55 08             	mov    0x8(%ebp),%edx
40fe9b:	8b 0e                	mov    (%esi),%ecx
40fe9d:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
40fea4:	8b 42 04             	mov    0x4(%edx),%eax
40fea7:	89 5c 24 58          	mov    %ebx,0x58(%esp)
40feab:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40feae:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
40feb5:	00
40feb6:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40feba:	c7 44 24 18 17 00 00 	movl   $0x17,0x18(%esp)
40fec1:	00
40fec2:	89 44 24 64          	mov    %eax,0x64(%esp)
40fec6:	eb 73                	jmp    0x40ff3b
40fec8:	c6 44 24 1f 01       	movb   $0x1,0x1f(%esp)
40fecd:	80 7c 24 1f 00       	cmpb   $0x0,0x1f(%esp)
40fed2:	8b 06                	mov    (%esi),%eax
40fed4:	8b 4c 24 68          	mov    0x68(%esp),%ecx
40fed8:	8b 40 18             	mov    0x18(%eax),%eax
40fedb:	89 41 1c             	mov    %eax,0x1c(%ecx)
40fede:	8b 06                	mov    (%esi),%eax
40fee0:	8b 4c 24 40          	mov    0x40(%esp),%ecx
40fee4:	8b 40 1c             	mov    0x1c(%eax),%eax
40fee7:	89 41 18             	mov    %eax,0x18(%ecx)
40feea:	8b 0e                	mov    (%esi),%ecx
40feec:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40fef1:	89 41 18             	mov    %eax,0x18(%ecx)
40fef4:	8b 0e                	mov    (%esi),%ecx
40fef6:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40fefb:	89 41 1c             	mov    %eax,0x1c(%ecx)
40fefe:	0f 84 f7 04 00 00    	je     0x4103fb
40ff04:	8b 06                	mov    (%esi),%eax
40ff06:	85 c0                	test   %eax,%eax
40ff08:	0f 84 ed 04 00 00    	je     0x4103fb
40ff0e:	8b 40 14             	mov    0x14(%eax),%eax
40ff11:	85 c0                	test   %eax,%eax
40ff13:	0f 84 e2 04 00 00    	je     0x4103fb
40ff19:	ff 74 24 6c          	push   0x6c(%esp)
40ff1d:	8b 75 0c             	mov    0xc(%ebp),%esi
40ff20:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40ff24:	ff 06                	incl   (%esi)
40ff26:	50                   	push   %eax
40ff27:	56                   	push   %esi
40ff28:	ff 75 08             	push   0x8(%ebp)
40ff2b:	e8 f0 18 00 00       	call   0x411820
40ff30:	85 c0                	test   %eax,%eax
40ff32:	0f 88 b7 a8 06 00    	js     0x47a7ef
40ff38:	8b 55 08             	mov    0x8(%ebp),%edx
40ff3b:	8b 45 14             	mov    0x14(%ebp),%eax
40ff3e:	8b 0e                	mov    (%esi),%ecx
40ff40:	3b c8                	cmp    %eax,%ecx
40ff42:	74 4f                	je     0x40ff93
40ff44:	8b 72 04             	mov    0x4(%edx),%esi
40ff47:	8b 14 8e             	mov    (%esi,%ecx,4),%edx
40ff4a:	0f b7 42 08          	movzwl 0x8(%edx),%eax
40ff4e:	66 83 f8 7f          	cmp    $0x7f,%ax
40ff52:	74 3f                	je     0x40ff93
40ff54:	98                   	cwtl
40ff55:	83 f8 33             	cmp    $0x33,%eax
40ff58:	0f 84 a4 00 00 00    	je     0x410002
40ff5e:	83 f8 4f             	cmp    $0x4f,%eax
40ff61:	74 30                	je     0x40ff93
40ff63:	83 f8 05             	cmp    $0x5,%eax
40ff66:	0f 84 df 03 00 00    	je     0x41034b
40ff6c:	83 f8 58             	cmp    $0x58,%eax
40ff6f:	77 22                	ja     0x40ff93
40ff71:	0f b6 80 2c 16 41 00 	movzbl 0x41162c(%eax),%eax
40ff78:	ff 24 85 c0 15 41 00 	jmp    *0x4115c0(,%eax,4)
40ff7f:	8b 02                	mov    (%edx),%eax
40ff81:	83 f8 04             	cmp    $0x4,%eax
40ff84:	0f 8c b0 10 00 00    	jl     0x41103a
40ff8a:	83 f8 27             	cmp    $0x27,%eax
40ff8d:	0f 8d a7 10 00 00    	jge    0x41103a
40ff93:	be 14 00 00 00       	mov    $0x14,%esi
40ff98:	89 74 24 18          	mov    %esi,0x18(%esp)
40ff9c:	8d 64 24 00          	lea    0x0(%esp),%esp
40ffa0:	8a 4c 24 5d          	mov    0x5d(%esp),%cl
40ffa4:	84 c9                	test   %cl,%cl
40ffa6:	0f 85 88 05 00 00    	jne    0x410534
40ffac:	8b c3                	mov    %ebx,%eax
40ffae:	8b 00                	mov    (%eax),%eax
40ffb0:	6b c0 15             	imul   $0x15,%eax,%eax
40ffb3:	0f b6 84 30 20 bc 4b 	movzbl 0x4bbc20(%eax,%esi,1),%eax
40ffba:	00
40ffbb:	83 f8 03             	cmp    $0x3,%eax
40ffbe:	0f 85 f0 02 00 00    	jne    0x4102b4
40ffc4:	83 7c 24 24 01       	cmpl   $0x1,0x24(%esp)
40ffc9:	0f 85 e6 15 00 00    	jne    0x4115b5
40ffcf:	33 ff                	xor    %edi,%edi
40ffd1:	8b 44 24 28          	mov    0x28(%esp),%eax
40ffd5:	89 44 24 10          	mov    %eax,0x10(%esp)
40ffd9:	85 c0                	test   %eax,%eax
40ffdb:	0f 85 9d 07 00 00    	jne    0x41077e
40ffe1:	85 db                	test   %ebx,%ebx
40ffe3:	74 12                	je     0x40fff7
40ffe5:	8b 73 04             	mov    0x4(%ebx),%esi
40ffe8:	53                   	push   %ebx
40ffe9:	e8 70 f5 00 00       	call   0x41f55e
40ffee:	83 c4 04             	add    $0x4,%esp
40fff1:	8b de                	mov    %esi,%ebx
40fff3:	85 f6                	test   %esi,%esi
40fff5:	75 ee                	jne    0x40ffe5
40fff7:	8b c7                	mov    %edi,%eax
40fff9:	5f                   	pop    %edi
40fffa:	5e                   	pop    %esi
40fffb:	5b                   	pop    %ebx
40fffc:	8b e5                	mov    %ebp,%esp
40fffe:	5d                   	pop    %ebp
40ffff:	c2 10 00             	ret    $0x10
410002:	8b 74 24 24          	mov    0x24(%esp),%esi
410006:	c7 44 24 18 16 00 00 	movl   $0x16,0x18(%esp)
41000d:	00
41000e:	85 f6                	test   %esi,%esi
410010:	0f 85 08 07 00 00    	jne    0x41071e
410016:	81 ff 20 22 4c 00    	cmp    $0x4c2220,%edi
41001c:	74 3e                	je     0x41005c
41001e:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
410022:	0f 84 a6 0f 00 00    	je     0x410fce
410028:	8b 77 08             	mov    0x8(%edi),%esi