40dd5b:	74 13                	je     0x40dd70
40dd5d:	53                   	push   %ebx
40dd5e:	57                   	push   %edi
40dd5f:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40dd65:	6a 20                	push   $0x20
40dd67:	50                   	push   %eax
40dd68:	e8 18 e8 ff ff       	call   0x40c585
40dd6d:	83 c4 10             	add    $0x10,%esp
40dd70:	5f                   	pop    %edi
40dd71:	b0 01                	mov    $0x1,%al
40dd73:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dd76:	5e                   	pop    %esi
40dd77:	33 cd                	xor    %ebp,%ecx
40dd79:	5b                   	pop    %ebx
40dd7a:	e8 e1 92 ff ff       	call   0x407060
40dd7f:	8b e5                	mov    %ebp,%esp
40dd81:	5d                   	pop    %ebp
40dd82:	c3                   	ret
40dd83:	80 79 31 2a          	cmpb   $0x2a,0x31(%ecx)
40dd87:	74 0a                	je     0x40dd93
40dd89:	8d 41 24             	lea    0x24(%ecx),%eax
40dd8c:	50                   	push   %eax
40dd8d:	e8 bc ed ff ff       	call   0x40cb4e
40dd92:	c3                   	ret
40dd93:	83 41 14 04          	addl   $0x4,0x14(%ecx)
40dd97:	8b 41 14             	mov    0x14(%ecx),%eax
40dd9a:	8b 40 fc             	mov    -0x4(%eax),%eax
40dd9d:	89 41 24             	mov    %eax,0x24(%ecx)
40dda0:	85 c0                	test   %eax,%eax
40dda2:	79 07                	jns    0x40ddab
40dda4:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40dda8:	f7 59 24             	negl   0x24(%ecx)
40ddab:	b0 01                	mov    $0x1,%al
40ddad:	c3                   	ret
40ddae:	80 79 31 2a          	cmpb   $0x2a,0x31(%ecx)
40ddb2:	74 0a                	je     0x40ddbe
40ddb4:	8d 41 24             	lea    0x24(%ecx),%eax
40ddb7:	50                   	push   %eax
40ddb8:	e8 ed ed ff ff       	call   0x40cbaa
40ddbd:	c3                   	ret
40ddbe:	83 41 14 04          	addl   $0x4,0x14(%ecx)
40ddc2:	8b 41 14             	mov    0x14(%ecx),%eax
40ddc5:	8b 40 fc             	mov    -0x4(%eax),%eax
40ddc8:	89 41 24             	mov    %eax,0x24(%ecx)
40ddcb:	85 c0                	test   %eax,%eax
40ddcd:	79 07                	jns    0x40ddd6
40ddcf:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40ddd3:	f7 59 24             	negl   0x24(%ecx)
40ddd6:	b0 01                	mov    $0x1,%al
40ddd8:	c3                   	ret
40ddd9:	66 83 79 32 2a       	cmpw   $0x2a,0x32(%ecx)
40ddde:	74 0a                	je     0x40ddea
40dde0:	8d 41 24             	lea    0x24(%ecx),%eax
40dde3:	50                   	push   %eax
40dde4:	e8 1d ee ff ff       	call   0x40cc06
40dde9:	c3                   	ret
40ddea:	83 41 14 04          	addl   $0x4,0x14(%ecx)
40ddee:	8b 41 14             	mov    0x14(%ecx),%eax
40ddf1:	8b 40 fc             	mov    -0x4(%eax),%eax
40ddf4:	89 41 24             	mov    %eax,0x24(%ecx)
40ddf7:	85 c0                	test   %eax,%eax
40ddf9:	79 07                	jns    0x40de02
40ddfb:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40ddff:	f7 59 24             	negl   0x24(%ecx)
40de02:	b0 01                	mov    $0x1,%al
40de04:	c3                   	ret
40de05:	8b ff                	mov    %edi,%edi
40de07:	55                   	push   %ebp
40de08:	8b ec                	mov    %esp,%ebp
40de0a:	8b 45 08             	mov    0x8(%ebp),%eax
40de0d:	83 f8 0b             	cmp    $0xb,%eax
40de10:	77 19                	ja     0x40de2b
40de12:	ff 24 85 31 de 40 00 	jmp    *0x40de31(,%eax,4)
40de19:	6a 04                	push   $0x4
40de1b:	58                   	pop    %eax
40de1c:	5d                   	pop    %ebp
40de1d:	c3                   	ret
40de1e:	33 c0                	xor    %eax,%eax
40de20:	40                   	inc    %eax
40de21:	5d                   	pop    %ebp
40de22:	c3                   	ret
40de23:	6a 02                	push   $0x2
40de25:	eb f4                	jmp    0x40de1b
40de27:	6a 08                	push   $0x8
40de29:	eb f0                	jmp    0x40de1b
40de2b:	33 c0                	xor    %eax,%eax
40de2d:	5d                   	pop    %ebp
40de2e:	c3                   	ret
40de2f:	8b ff                	mov    %edi,%edi
40de31:	19 de                	sbb    %ebx,%esi
40de33:	40                   	inc    %eax
40de34:	00 1e                	add    %bl,(%esi)
40de36:	de 40 00             	fiadds 0x0(%eax)
40de39:	23 de                	and    %esi,%ebx
40de3b:	40                   	inc    %eax
40de3c:	00 19                	add    %bl,(%ecx)
40de3e:	de 40 00             	fiadds 0x0(%eax)
40de41:	27                   	daa
40de42:	de 40 00             	fiadds 0x0(%eax)
40de45:	27                   	daa
40de46:	de 40 00             	fiadds 0x0(%eax)
40de49:	19 de                	sbb    %ebx,%esi
40de4b:	40                   	inc    %eax
40de4c:	00 19                	add    %bl,(%ecx)
40de4e:	de 40 00             	fiadds 0x0(%eax)
40de51:	2b de                	sub    %esi,%ebx
40de53:	40                   	inc    %eax
40de54:	00 19                	add    %bl,(%ecx)
40de56:	de 40 00             	fiadds 0x0(%eax)
40de59:	19 de                	sbb    %ebx,%esi
40de5b:	40                   	inc    %eax
40de5c:	00 27                	add    %ah,(%edi)
40de5e:	de 40 00             	fiadds 0x0(%eax)
40de61:	8b ff                	mov    %edi,%edi
40de63:	53                   	push   %ebx
40de64:	56                   	push   %esi
40de65:	8b f1                	mov    %ecx,%esi
40de67:	57                   	push   %edi
40de68:	83 46 14 04          	addl   $0x4,0x14(%esi)
40de6c:	8b 46 14             	mov    0x14(%esi),%eax
40de6f:	8b 78 fc             	mov    -0x4(%eax),%edi
40de72:	85 ff                	test   %edi,%edi
40de74:	74 36                	je     0x40deac
40de76:	8b 5f 04             	mov    0x4(%edi),%ebx
40de79:	85 db                	test   %ebx,%ebx
40de7b:	74 2f                	je     0x40deac
40de7d:	ff 76 2c             	push   0x2c(%esi)
40de80:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40de84:	50                   	push   %eax
40de85:	ff 76 04             	push   0x4(%esi)
40de88:	ff 36                	push   (%esi)
40de8a:	e8 26 e3 ff ff       	call   0x40c1b5
40de8f:	83 c4 10             	add    $0x10,%esp
40de92:	89 5e 34             	mov    %ebx,0x34(%esi)
40de95:	84 c0                	test   %al,%al
40de97:	0f b7 07             	movzwl (%edi),%eax
40de9a:	74 0b                	je     0x40dea7
40de9c:	d1 e8                	shr    $1,%eax
40de9e:	89 46 38             	mov    %eax,0x38(%esi)
40dea1:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40dea5:	eb 17                	jmp    0x40debe
40dea7:	89 46 38             	mov    %eax,0x38(%esi)
40deaa:	eb 0e                	jmp    0x40deba
40deac:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40deb3:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
40deba:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40debe:	5f                   	pop    %edi
40debf:	5e                   	pop    %esi
40dec0:	b0 01                	mov    $0x1,%al
40dec2:	5b                   	pop    %ebx
40dec3:	c3                   	ret
40dec4:	8b ff                	mov    %edi,%edi
40dec6:	53                   	push   %ebx
40dec7:	56                   	push   %esi
40dec8:	8b f1                	mov    %ecx,%esi
40deca:	57                   	push   %edi
40decb:	83 46 14 04          	addl   $0x4,0x14(%esi)
40decf:	8b 46 14             	mov    0x14(%esi),%eax
40ded2:	8b 78 fc             	mov    -0x4(%eax),%edi
40ded5:	85 ff                	test   %edi,%edi
40ded7:	74 36                	je     0x40df0f
40ded9:	8b 5f 04             	mov    0x4(%edi),%ebx
40dedc:	85 db                	test   %ebx,%ebx
40dede:	74 2f                	je     0x40df0f
40dee0:	ff 76 2c             	push   0x2c(%esi)
40dee3:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40dee7:	50                   	push   %eax
40dee8:	ff 76 04             	push   0x4(%esi)
40deeb:	ff 36                	push   (%esi)
40deed:	e8 c3 e2 ff ff       	call   0x40c1b5
40def2:	83 c4 10             	add    $0x10,%esp
40def5:	89 5e 34             	mov    %ebx,0x34(%esi)
40def8:	84 c0                	test   %al,%al
40defa:	0f b7 07             	movzwl (%edi),%eax
40defd:	74 0b                	je     0x40df0a
40deff:	d1 e8                	shr    $1,%eax
40df01:	89 46 38             	mov    %eax,0x38(%esi)
40df04:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40df08:	eb 17                	jmp    0x40df21
40df0a:	89 46 38             	mov    %eax,0x38(%esi)
40df0d:	eb 0e                	jmp    0x40df1d
40df0f:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40df16:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
40df1d:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40df21:	5f                   	pop    %edi
40df22:	5e                   	pop    %esi
40df23:	b0 01                	mov    $0x1,%al
40df25:	5b                   	pop    %ebx
40df26:	c3                   	ret
40df27:	8b ff                	mov    %edi,%edi
40df29:	53                   	push   %ebx
40df2a:	56                   	push   %esi
40df2b:	8b f1                	mov    %ecx,%esi
40df2d:	57                   	push   %edi
40df2e:	83 46 14 04          	addl   $0x4,0x14(%esi)
40df32:	8b 46 14             	mov    0x14(%esi),%eax
40df35:	8b 78 fc             	mov    -0x4(%eax),%edi
40df38:	85 ff                	test   %edi,%edi
40df3a:	74 36                	je     0x40df72
40df3c:	8b 5f 04             	mov    0x4(%edi),%ebx
40df3f:	85 db                	test   %ebx,%ebx
40df41:	74 2f                	je     0x40df72
40df43:	ff 76 2c             	push   0x2c(%esi)
40df46:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40df4a:	50                   	push   %eax
40df4b:	ff 76 04             	push   0x4(%esi)
40df4e:	ff 36                	push   (%esi)
40df50:	e8 a0 e2 ff ff       	call   0x40c1f5
40df55:	83 c4 10             	add    $0x10,%esp
40df58:	89 5e 34             	mov    %ebx,0x34(%esi)
40df5b:	84 c0                	test   %al,%al
40df5d:	0f b7 07             	movzwl (%edi),%eax
40df60:	74 0b                	je     0x40df6d
40df62:	d1 e8                	shr    $1,%eax
40df64:	89 46 38             	mov    %eax,0x38(%esi)
40df67:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40df6b:	eb 17                	jmp    0x40df84
40df6d:	89 46 38             	mov    %eax,0x38(%esi)
40df70:	eb 0e                	jmp    0x40df80
40df72:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40df79:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
40df80:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40df84:	5f                   	pop    %edi
40df85:	5e                   	pop    %esi
40df86:	b0 01                	mov    $0x1,%al
40df88:	5b                   	pop    %ebx
40df89:	c3                   	ret
40df8a:	8b ff                	mov    %edi,%edi
40df8c:	55                   	push   %ebp
40df8d:	8b ec                	mov    %esp,%ebp
40df8f:	51                   	push   %ecx
40df90:	51                   	push   %ecx
40df91:	56                   	push   %esi
40df92:	8b f1                	mov    %ecx,%esi
40df94:	57                   	push   %edi
40df95:	83 4e 20 10          	orl    $0x10,0x20(%esi)
40df99:	8b 46 28             	mov    0x28(%esi),%eax
40df9c:	85 c0                	test   %eax,%eax
40df9e:	79 1d                	jns    0x40dfbd
40dfa0:	8a 46 31             	mov    0x31(%esi),%al
40dfa3:	3c 61                	cmp    $0x61,%al
40dfa5:	74 0d                	je     0x40dfb4
40dfa7:	3c 41                	cmp    $0x41,%al
40dfa9:	74 09                	je     0x40dfb4
40dfab:	c7 46 28 06 00 00 00 	movl   $0x6,0x28(%esi)
40dfb2:	eb 1d                	jmp    0x40dfd1
40dfb4:	c7 46 28 0d 00 00 00 	movl   $0xd,0x28(%esi)
40dfbb:	eb 14                	jmp    0x40dfd1
40dfbd:	75 12                	jne    0x40dfd1
40dfbf:	8a 46 31             	mov    0x31(%esi),%al
40dfc2:	3c 67                	cmp    $0x67,%al
40dfc4:	74 04                	je     0x40dfca
40dfc6:	3c 47                	cmp    $0x47,%al
40dfc8:	75 07                	jne    0x40dfd1
40dfca:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
40dfd1:	8b 46 28             	mov    0x28(%esi),%eax
40dfd4:	8d 7e 40             	lea    0x40(%esi),%edi
40dfd7:	53                   	push   %ebx
40dfd8:	bb 5d 01 00 00       	mov    $0x15d,%ebx
40dfdd:	8b cf                	mov    %edi,%ecx
40dfdf:	03 c3                	add    %ebx,%eax
40dfe1:	50                   	push   %eax
40dfe2:	e8 48 e1 ff ff       	call   0x40c12f
40dfe7:	84 c0                	test   %al,%al
40dfe9:	75 0c                	jne    0x40dff7
40dfeb:	8b cf                	mov    %edi,%ecx
40dfed:	e8 25 e1 ff ff       	call   0x40c117
40dff2:	2b c3                	sub    %ebx,%eax
40dff4:	89 46 28             	mov    %eax,0x28(%esi)
40dff7:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
40dffd:	85 c0                	test   %eax,%eax
40dfff:	75 02                	jne    0x40e003
40e001:	8b c7                	mov    %edi,%eax
40e003:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40e007:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e00b:	89 46 34             	mov    %eax,0x34(%esi)
40e00e:	83 46 14 08          	addl   $0x8,0x14(%esi)
40e012:	8b 4e 14             	mov    0x14(%esi),%ecx
40e015:	8b 41 f8             	mov    -0x8(%ecx),%eax
40e018:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e01b:	8b 41 fc             	mov    -0x4(%ecx),%eax
40e01e:	8b cf                	mov    %edi,%ecx
40e020:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e023:	e8 ef e0 ff ff       	call   0x40c117
40e028:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
40e02e:	8b c8                	mov    %eax,%ecx
40e030:	85 db                	test   %ebx,%ebx
40e032:	75 02                	jne    0x40e036
40e034:	8b df                	mov    %edi,%ebx
40e036:	ff 76 08             	push   0x8(%esi)
40e039:	0f be 46 31          	movsbl 0x31(%esi),%eax
40e03d:	ff 76 04             	push   0x4(%esi)
40e040:	ff 36                	push   (%esi)
40e042:	ff 76 28             	push   0x28(%esi)
40e045:	50                   	push   %eax
40e046:	51                   	push   %ecx
40e047:	8b cf                	mov    %edi,%ecx
40e049:	e8 f6 e1 ff ff       	call   0x40c244
40e04e:	50                   	push   %eax
40e04f:	8b cf                	mov    %edi,%ecx
40e051:	e8 c1 e0 ff ff       	call   0x40c117
40e056:	50                   	push   %eax
40e057:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e05a:	53                   	push   %ebx
40e05b:	50                   	push   %eax
40e05c:	e8 7c c4 00 00       	call   0x41a4dd
40e061:	8b 46 20             	mov    0x20(%esi),%eax
40e064:	83 c4 28             	add    $0x28,%esp
40e067:	c1 e8 05             	shr    $0x5,%eax
40e06a:	5b                   	pop    %ebx
40e06b:	a8 01                	test   $0x1,%al
40e06d:	74 13                	je     0x40e082
40e06f:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40e073:	75 0d                	jne    0x40e082
40e075:	ff 76 08             	push   0x8(%esi)
40e078:	ff 76 34             	push   0x34(%esi)
40e07b:	e8 72 ea ff ff       	call   0x40caf2
40e080:	59                   	pop    %ecx
40e081:	59                   	pop    %ecx
40e082:	8a 46 31             	mov    0x31(%esi),%al
40e085:	3c 67                	cmp    $0x67,%al
40e087:	74 04                	je     0x40e08d
40e089:	3c 47                	cmp    $0x47,%al
40e08b:	75 17                	jne    0x40e0a4
40e08d:	8b 46 20             	mov    0x20(%esi),%eax
40e090:	c1 e8 05             	shr    $0x5,%eax
40e093:	a8 01                	test   $0x1,%al
40e095:	75 0d                	jne    0x40e0a4
40e097:	ff 76 08             	push   0x8(%esi)
40e09a:	ff 76 34             	push   0x34(%esi)
40e09d:	e8 61 e9 ff ff       	call   0x40ca03
40e0a2:	59                   	pop    %ecx
40e0a3:	59                   	pop    %ecx
40e0a4:	8b 46 34             	mov    0x34(%esi),%eax
40e0a7:	80 38 2d             	cmpb   $0x2d,(%eax)
40e0aa:	75 08                	jne    0x40e0b4
40e0ac:	83 4e 20 40          	orl    $0x40,0x20(%esi)
40e0b0:	40                   	inc    %eax
40e0b1:	89 46 34             	mov    %eax,0x34(%esi)
40e0b4:	8b 56 34             	mov    0x34(%esi),%edx
40e0b7:	8a 02                	mov    (%edx),%al
40e0b9:	3c 69                	cmp    $0x69,%al
40e0bb:	74 0c                	je     0x40e0c9
40e0bd:	3c 49                	cmp    $0x49,%al
40e0bf:	74 08                	je     0x40e0c9
40e0c1:	3c 6e                	cmp    $0x6e,%al
40e0c3:	74 04                	je     0x40e0c9
40e0c5:	3c 4e                	cmp    $0x4e,%al
40e0c7:	75 04                	jne    0x40e0cd
40e0c9:	c6 46 31 73          	movb   $0x73,0x31(%esi)