40e817:	e9 c3 92 06 00       	jmp    0x477adf
40e81c:	8b 76 08             	mov    0x8(%esi),%esi
40e81f:	ba 01 00 00 00       	mov    $0x1,%edx
40e824:	3b f2                	cmp    %edx,%esi
40e826:	0f 86 ab fe ff ff    	jbe    0x40e6d7
40e82c:	83 c1 04             	add    $0x4,%ecx
40e82f:	90                   	nop
40e830:	8b 01                	mov    (%ecx),%eax
40e832:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e837:	74 0d                	je     0x40e846
40e839:	42                   	inc    %edx
40e83a:	83 c1 04             	add    $0x4,%ecx
40e83d:	3b d6                	cmp    %esi,%edx
40e83f:	72 ef                	jb     0x40e830
40e841:	e9 91 fe ff ff       	jmp    0x40e6d7
40e846:	83 38 05             	cmpl   $0x5,(%eax)
40e849:	75 ee                	jne    0x40e839
40e84b:	8b 41 04             	mov    0x4(%ecx),%eax
40e84e:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e853:	75 e4                	jne    0x40e839
40e855:	ff 45 0c             	incl   0xc(%ebp)
40e858:	e9 7a fe ff ff       	jmp    0x40e6d7
40e85d:	8b c2                	mov    %edx,%eax
40e85f:	0b 45 e4             	or     -0x1c(%ebp),%eax
40e862:	e9 03 fc ff ff       	jmp    0x40e46a
40e867:	33 d2                	xor    %edx,%edx
40e869:	89 16                	mov    %edx,(%esi)
40e86b:	e9 6c fc ff ff       	jmp    0x40e4dc
40e870:	dd 03                	fldl   (%ebx)
40e872:	dd 1e                	fstpl  (%esi)
40e874:	e9 63 fc ff ff       	jmp    0x40e4dc
40e879:	33 f6                	xor    %esi,%esi
40e87b:	e9 5c fc ff ff       	jmp    0x40e4dc
40e880:	dd 07                	fldl   (%edi)
40e882:	dd 1e                	fstpl  (%esi)
40e884:	e9 65 fd ff ff       	jmp    0x40e5ee
40e889:	33 f6                	xor    %esi,%esi
40e88b:	e9 5e fd ff ff       	jmp    0x40e5ee
40e890:	48                   	dec    %eax
40e891:	e9 3e fe ff ff       	jmp    0x40e6d4
40e896:	33 f6                	xor    %esi,%esi
40e898:	e9 fb fe ff ff       	jmp    0x40e798
40e89d:	8d 49 00             	lea    0x0(%ecx),%ecx
40e8a0:	68 e4 40 00 5d       	push   $0x5d0040e4
40e8a5:	e8 40 00 17 79       	call   0x7957e8ea
40e8aa:	47                   	inc    %edi
40e8ab:	00 2e                	add    %ch,(%esi)
40e8ad:	79 47                	jns    0x40e8f6
40e8af:	00 09                	add    %cl,(%ecx)
40e8b1:	e4 40                	in     $0x40,%al
40e8b3:	00 09                	add    %cl,(%ecx)
40e8b5:	e4 40                	in     $0x40,%al
40e8b7:	00 68 e4             	add    %ch,-0x1c(%eax)
40e8ba:	40                   	inc    %eax
40e8bb:	00 09                	add    %cl,(%ecx)
40e8bd:	e4 40                	in     $0x40,%al
40e8bf:	00 09                	add    %cl,(%ecx)
40e8c1:	e4 40                	in     $0x40,%al
40e8c3:	00 09                	add    %cl,(%ecx)
40e8c5:	e4 40                	in     $0x40,%al
40e8c7:	00 40 79             	add    %al,0x79(%eax)
40e8ca:	47                   	inc    %edi
40e8cb:	00 cc                	add    %cl,%ah
40e8cd:	cc                   	int3
40e8ce:	cc                   	int3
40e8cf:	cc                   	int3
40e8d0:	55                   	push   %ebp
40e8d1:	8b ec                	mov    %esp,%ebp
40e8d3:	83 e4 f8             	and    $0xfffffff8,%esp
40e8d6:	81 ec ec 00 00 00    	sub    $0xec,%esp
40e8dc:	53                   	push   %ebx
40e8dd:	8b d9                	mov    %ecx,%ebx
40e8df:	56                   	push   %esi
40e8e0:	8b 83 ec 00 00 00    	mov    0xec(%ebx),%eax
40e8e6:	57                   	push   %edi
40e8e7:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
40e8eb:	3d 3c 0f 00 00       	cmp    $0xf3c,%eax
40e8f0:	0f 8d 6c 68 06 00    	jge    0x475162
40e8f6:	40                   	inc    %eax
40e8f7:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
40e8fd:	83 f8 01             	cmp    $0x1,%eax
40e900:	0f 84 4c 04 00 00    	je     0x40ed52
40e906:	80 bb 00 01 00 00 00 	cmpb   $0x0,0x100(%ebx)
40e90d:	c6 83 48 01 00 00 00 	movb   $0x0,0x148(%ebx)
40e914:	0f 85 ad 02 00 00    	jne    0x40ebc7
40e91a:	8b 35 dc d6 48 00    	mov    0x48d6dc,%esi
40e920:	80 bb 48 01 00 00 00 	cmpb   $0x0,0x148(%ebx)
40e927:	ba 02 00 00 00       	mov    $0x2,%edx
40e92c:	0f 85 95 02 00 00    	jne    0x40ebc7
40e932:	80 3d b7 10 4c 00 00 	cmpb   $0x0,0x4c10b7
40e939:	0f 85 3e 68 06 00    	jne    0x47517d
40e93f:	80 3d 60 16 4c 00 00 	cmpb   $0x0,0x4c1660
40e946:	0f 85 43 68 06 00    	jne    0x47518f
40e94c:	6a 01                	push   $0x1
40e94e:	6a 00                	push   $0x0
40e950:	6a 00                	push   $0x0
40e952:	6a 00                	push   $0x0
40e954:	8d 44 24 60          	lea    0x60(%esp),%eax
40e958:	50                   	push   %eax
40e959:	ff d6                	call   *%esi
40e95b:	85 c0                	test   %eax,%eax
40e95d:	0f 85 8d 03 00 00    	jne    0x40ecf0
40e963:	80 3d c0 10 4c 00 01 	cmpb   $0x1,0x4c10c0
40e96a:	0f 84 47 68 06 00    	je     0x4751b7
40e970:	83 bb fc 00 00 00 01 	cmpl   $0x1,0xfc(%ebx)
40e977:	0f 84 53 70 06 00    	je     0x4759d0
40e97d:	ba 02 00 00 00       	mov    $0x2,%edx
40e982:	83 3d 04 11 4c 00 00 	cmpl   $0x0,0x4c1104
40e989:	0f 85 45 68 06 00    	jne    0x4751d4
40e98f:	80 3d c5 10 4c 00 01 	cmpb   $0x1,0x4c10c5
40e996:	0f 84 c5 68 06 00    	je     0x475261
40e99c:	83 bb 80 04 00 00 00 	cmpl   $0x0,0x480(%ebx)
40e9a3:	74 5f                	je     0x40ea04
40e9a5:	80 3d 80 21 4c 00 00 	cmpb   $0x0,0x4c2180
40e9ac:	75 56                	jne    0x40ea04
40e9ae:	8b b3 78 04 00 00    	mov    0x478(%ebx),%esi
40e9b4:	8d 83 78 04 00 00    	lea    0x478(%ebx),%eax
40e9ba:	c6 05 80 21 4c 00 01 	movb   $0x1,0x4c2180
40e9c1:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
40e9c8:	00
40e9c9:	89 44 24 10          	mov    %eax,0x10(%esp)
40e9cd:	8d 49 00             	lea    0x0(%ecx),%ecx
40e9d0:	85 f6                	test   %esi,%esi
40e9d2:	0f 85 17 02 00 00    	jne    0x40ebef
40e9d8:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40e9dc:	8d 64 24 00          	lea    0x0(%esp),%esp
40e9e0:	8b 03                	mov    (%ebx),%eax
40e9e2:	89 44 24 10          	mov    %eax,0x10(%esp)
40e9e6:	85 c0                	test   %eax,%eax
40e9e8:	0f 85 4a 02 00 00    	jne    0x40ec38
40e9ee:	8b 5c 24 4c          	mov    0x4c(%esp),%ebx
40e9f2:	a2 80 21 4c 00       	mov    %al,0x4c2180
40e9f7:	39 44 24 1c          	cmp    %eax,0x1c(%esp)
40e9fb:	0f 8f b3 01 00 00    	jg     0x40ebb4
40ea01:	8d 50 02             	lea    0x2(%eax),%edx
40ea04:	80 3d 34 16 4c 00 00 	cmpb   $0x0,0x4c1634
40ea0b:	0f 84 a6 00 00 00    	je     0x40eab7
40ea11:	80 bb 84 04 00 00 01 	cmpb   $0x1,0x484(%ebx)
40ea18:	0f 84 99 00 00 00    	je     0x40eab7
40ea1e:	80 3d 60 16 4c 00 01 	cmpb   $0x1,0x4c1660
40ea25:	0f 84 8c 00 00 00    	je     0x40eab7
40ea2b:	33 c9                	xor    %ecx,%ecx
40ea2d:	b8 08 00 00 00       	mov    $0x8,%eax
40ea32:	f7 e2                	mul    %edx
40ea34:	0f 90 c1             	seto   %cl
40ea37:	c7 44 24 58 00 00 00 	movl   $0x0,0x58(%esp)
40ea3e:	00
40ea3f:	c7 44 24 5c 08 00 00 	movl   $0x8,0x5c(%esp)
40ea46:	00
40ea47:	f7 d9                	neg    %ecx
40ea49:	0b c8                	or     %eax,%ecx
40ea4b:	51                   	push   %ecx
40ea4c:	e8 99 0a 01 00       	call   0x41f4ea
40ea51:	83 c4 04             	add    $0x4,%esp
40ea54:	33 c9                	xor    %ecx,%ecx
40ea56:	6a 04                	push   $0x4
40ea58:	89 44 24 58          	mov    %eax,0x58(%esp)
40ea5c:	66 89 08             	mov    %cx,(%eax)
40ea5f:	e8 86 0a 01 00       	call   0x41f4ea
40ea64:	83 c4 04             	add    $0x4,%esp
40ea67:	85 c0                	test   %eax,%eax
40ea69:	0f 84 8c 03 00 00    	je     0x40edfb
40ea6f:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40ea75:	89 44 24 60          	mov    %eax,0x60(%esp)
40ea79:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40ea80:	83 3d 54 16 4c 00 00 	cmpl   $0x0,0x4c1654
40ea87:	0f 85 10 68 06 00    	jne    0x47529d
40ea8d:	80 3d 34 16 4c 00 00 	cmpb   $0x0,0x4c1634
40ea94:	0f 84 86 69 06 00    	je     0x475420
40ea9a:	8b 74 24 60          	mov    0x60(%esp),%esi
40ea9e:	ff 0e                	decl   (%esi)
40eaa0:	75 15                	jne    0x40eab7
40eaa2:	ff 74 24 54          	push   0x54(%esp)
40eaa6:	e8 b3 0a 01 00       	call   0x41f55e
40eaab:	83 c4 04             	add    $0x4,%esp
40eaae:	56                   	push   %esi
40eaaf:	e8 aa 0a 01 00       	call   0x41f55e
40eab4:	83 c4 04             	add    $0x4,%esp
40eab7:	8b cb                	mov    %ebx,%ecx
40eab9:	e8 12 04 00 00       	call   0x40eed0
40eabe:	3c 01                	cmp    $0x1,%al
40eac0:	0f 84 ee 00 00 00    	je     0x40ebb4
40eac6:	80 3d a8 17 4c 00 00 	cmpb   $0x0,0x4c17a8
40eacd:	0f 85 7f 69 06 00    	jne    0x475452
40ead3:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
40ead9:	83 f8 07             	cmp    $0x7,%eax
40eadc:	0f 84 75 6a 06 00    	je     0x475557
40eae2:	83 f8 08             	cmp    $0x8,%eax
40eae5:	0f 84 a4 6d 06 00    	je     0x47588f
40eaeb:	83 f8 09             	cmp    $0x9,%eax
40eaee:	0f 84 9b 6d 06 00    	je     0x47588f
40eaf4:	83 f8 02             	cmp    $0x2,%eax
40eaf7:	0f 84 36 6c 06 00    	je     0x475733
40eafd:	83 f8 03             	cmp    $0x3,%eax
40eb00:	0f 84 2d 6c 06 00    	je     0x475733
40eb06:	83 f8 04             	cmp    $0x4,%eax
40eb09:	0f 84 24 6c 06 00    	je     0x475733
40eb0f:	83 f8 05             	cmp    $0x5,%eax
40eb12:	0f 84 1b 6c 06 00    	je     0x475733
40eb18:	83 f8 06             	cmp    $0x6,%eax
40eb1b:	0f 84 12 6c 06 00    	je     0x475733
40eb21:	8b 45 08             	mov    0x8(%ebp),%eax
40eb24:	89 83 f4 00 00 00    	mov    %eax,0xf4(%ebx)
40eb2a:	8b f0                	mov    %eax,%esi
40eb2c:	40                   	inc    %eax
40eb2d:	89 45 08             	mov    %eax,0x8(%ebp)
40eb30:	3b 35 10 21 4c 00    	cmp    0x4c2110,%esi
40eb36:	0f 8f e8 6b 06 00    	jg     0x475724
40eb3c:	85 f6                	test   %esi,%esi
40eb3e:	0f 8e e0 6b 06 00    	jle    0x475724
40eb44:	c1 e6 04             	shl    $0x4,%esi
40eb47:	03 35 4c 21 4c 00    	add    0x4c214c,%esi
40eb4d:	0f 84 d1 6b 06 00    	je     0x475724
40eb53:	8b 46 04             	mov    0x4(%esi),%eax
40eb56:	33 d2                	xor    %edx,%edx
40eb58:	b9 01 00 00 00       	mov    $0x1,%ecx
40eb5d:	89 54 24 20          	mov    %edx,0x20(%esp)
40eb61:	89 54 24 28          	mov    %edx,0x28(%esp)
40eb65:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
40eb69:	8b 38                	mov    (%eax),%edi
40eb6b:	89 54 24 1c          	mov    %edx,0x1c(%esp)
40eb6f:	0f bf 47 08          	movswl 0x8(%edi),%eax
40eb73:	85 c0                	test   %eax,%eax
40eb75:	0f 85 d1 00 00 00    	jne    0x40ec4c
40eb7b:	8d 45 08             	lea    0x8(%ebp),%eax
40eb7e:	50                   	push   %eax
40eb7f:	56                   	push   %esi
40eb80:	8b cb                	mov    %ebx,%ecx
40eb82:	e8 79 03 00 00       	call   0x40ef00
40eb87:	8b 74 24 28          	mov    0x28(%esp),%esi
40eb8b:	85 f6                	test   %esi,%esi
40eb8d:	0f 85 34 01 00 00    	jne    0x40ecc7
40eb93:	8b 54 24 20          	mov    0x20(%esp),%edx
40eb97:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40eb9b:	83 f9 05             	cmp    $0x5,%ecx
40eb9e:	0f 8d 44 02 00 00    	jge    0x40ede8
40eba4:	c7 44 24 2c 01 00 00 	movl   $0x1,0x2c(%esp)
40ebab:	00
40ebac:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
40ebb3:	00
40ebb4:	8b 35 dc d6 48 00    	mov    0x48d6dc,%esi
40ebba:	80 bb 00 01 00 00 00 	cmpb   $0x0,0x100(%ebx)
40ebc1:	0f 84 59 fd ff ff    	je     0x40e920
40ebc7:	8b 83 ec 00 00 00    	mov    0xec(%ebx),%eax
40ebcd:	c6 83 48 01 00 00 00 	movb   $0x0,0x148(%ebx)
40ebd4:	83 f8 01             	cmp    $0x1,%eax
40ebd7:	0f 84 7f 01 00 00    	je     0x40ed5c
40ebdd:	48                   	dec    %eax
40ebde:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
40ebe4:	33 c0                	xor    %eax,%eax
40ebe6:	5f                   	pop    %edi
40ebe7:	5e                   	pop    %esi
40ebe8:	5b                   	pop    %ebx
40ebe9:	8b e5                	mov    %ebp,%esp
40ebeb:	5d                   	pop    %ebp
40ebec:	c2 04 00             	ret    $0x4
40ebef:	8b 3e                	mov    (%esi),%edi
40ebf1:	80 7f 11 00          	cmpb   $0x0,0x11(%edi)
40ebf5:	75 39                	jne    0x40ec30
40ebf7:	8b 7f 14             	mov    0x14(%edi),%edi
40ebfa:	ff 15 a0 d7 48 00    	call   *0x48d7a0
40ec00:	8b c8                	mov    %eax,%ecx
40ec02:	2b c7                	sub    %edi,%eax
40ec04:	33 d2                	xor    %edx,%edx
40ec06:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40ec0c:	0f 87 69 66 06 00    	ja     0x47527b
40ec12:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
40ec18:	77 01                	ja     0x40ec1b
40ec1a:	99                   	cltd
40ec1b:	8b 3e                	mov    (%esi),%edi
40ec1d:	85 d2                	test   %edx,%edx
40ec1f:	7c 0f                	jl     0x40ec30
40ec21:	0f 8f 87 01 00 00    	jg     0x40edae
40ec27:	3b 47 18             	cmp    0x18(%edi),%eax
40ec2a:	0f 83 7e 01 00 00    	jae    0x40edae
40ec30:	8b 76 04             	mov    0x4(%esi),%esi
40ec33:	e9 98 fd ff ff       	jmp    0x40e9d0
40ec38:	8b 08                	mov    (%eax),%ecx
40ec3a:	80 79 11 00          	cmpb   $0x0,0x11(%ecx)
40ec3e:	0f 85 48 66 06 00    	jne    0x47528c
40ec44:	8b 40 04             	mov    0x4(%eax),%eax
40ec47:	e9 96 fd ff ff       	jmp    0x40e9e2
40ec4c:	83 f8 33             	cmp    $0x33,%eax
40ec4f:	75 0d                	jne    0x40ec5e
40ec51:	56                   	push   %esi
40ec52:	8b cb                	mov    %ebx,%ecx
40ec54:	e8 b7 04 00 00       	call   0x40f110
40ec59:	e9 29 ff ff ff       	jmp    0x40eb87
40ec5e:	48                   	dec    %eax
40ec5f:	83 f8 7e             	cmp    $0x7e,%eax
40ec62:	0f 87 cf 69 06 00    	ja     0x475637
40ec68:	0f b6 80 18 ee 40 00 	movzbl 0x40ee18(%eax),%eax
40ec6f:	ff 24 85 04 ee 40 00 	jmp    *0x40ee04(,%eax,4)
40ec76:	8d 44 24 20          	lea    0x20(%esp),%eax
40ec7a:	50                   	push   %eax
40ec7b:	8d 44 24 20          	lea    0x20(%esp),%eax
40ec7f:	50                   	push   %eax
40ec80:	56                   	push   %esi
40ec81:	6a 00                	push   $0x0
40ec83:	8b cb                	mov    %ebx,%ecx
40ec85:	e8 56 59 00 00       	call   0x4145e0
40ec8a:	85 c0                	test   %eax,%eax
40ec8c:	0f 88 f5 fe ff ff    	js     0x40eb87
40ec92:	8b 4e 04             	mov    0x4(%esi),%ecx
40ec95:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40ec99:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40ec9c:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40eca1:	0f 84 e0 fe ff ff    	je     0x40eb87
40eca7:	e9 a4 69 06 00       	jmp    0x475650
40ecac:	8d 44 24 4b          	lea    0x4b(%esp),%eax
40ecb0:	50                   	push   %eax
40ecb1:	8d 44 24 24          	lea    0x24(%esp),%eax
40ecb5:	50                   	push   %eax
40ecb6:	8d 44 24 24          	lea    0x24(%esp),%eax
40ecba:	50                   	push   %eax
40ecbb:	56                   	push   %esi
40ecbc:	6a 00                	push   $0x0
40ecbe:	8b cb                	mov    %ebx,%ecx
40ecc0:	e8 3b 45 00 00       	call   0x413200
40ecc5:	eb c3                	jmp    0x40ec8a
40ecc7:	8b 46 0c             	mov    0xc(%esi),%eax
40ecca:	ff 08                	decl   (%eax)
40eccc:	8b 46 0c             	mov    0xc(%esi),%eax
40eccf:	83 38 00             	cmpl   $0x0,(%eax)
40ecd2:	0f 84 94 69 06 00    	je     0x47566c
40ecd8:	56                   	push   %esi
40ecd9:	e8 80 08 01 00       	call   0x41f55e
40ecde:	83 c4 04             	add    $0x4,%esp
40ece1:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
40ece8:	00
40ece9:	e9 a5 fe ff ff       	jmp    0x40eb93
40ecee:	8b ff                	mov    %edi,%edi
40ecf0:	83 7c 24 54 12       	cmpl   $0x12,0x54(%esp)
40ecf5:	0f 84 a6 64 06 00    	je     0x4751a1
40ecfb:	8d 44 24 50          	lea    0x50(%esp),%eax
40ecff:	50                   	push   %eax
40ed00:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
40ed05:	e8 3a f5 00 00       	call   0x41e244
40ed0a:	85 c0                	test   %eax,%eax
40ed0c:	75 13                	jne    0x40ed21
40ed0e:	8d 44 24 50          	lea    0x50(%esp),%eax
40ed12:	50                   	push   %eax
40ed13:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
40ed18:	e8 42 ef 00 00       	call   0x41dc5f
40ed1d:	85 c0                	test   %eax,%eax
40ed1f:	74 19                	je     0x40ed3a
40ed21:	6a 01                	push   $0x1
40ed23:	6a 00                	push   $0x0
40ed25:	6a 00                	push   $0x0
40ed27:	6a 00                	push   $0x0