406dd1:	e8 6b 11 00 00       	call   0x407f41
406dd6:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
406ddd:	8b cf                	mov    %edi,%ecx
406ddf:	50                   	push   %eax
406de0:	8d 44 24 20          	lea    0x20(%esp),%eax
406de4:	50                   	push   %eax
406de5:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
406dec:	50                   	push   %eax
406ded:	56                   	push   %esi
406dee:	e8 49 fc ff ff       	call   0x406a3c
406df3:	8d 4c 24 78          	lea    0x78(%esp),%ecx
406df7:	89 44 24 38          	mov    %eax,0x38(%esp)
406dfb:	e8 64 ec ff ff       	call   0x405a64
406e00:	8b 44 24 38          	mov    0x38(%esp),%eax
406e04:	85 c0                	test   %eax,%eax
406e06:	0f 84 ce 00 00 00    	je     0x406eda
406e0c:	83 f8 01             	cmp    $0x1,%eax
406e0f:	0f 8e b8 00 00 00    	jle    0x406ecd
406e15:	83 f8 03             	cmp    $0x3,%eax
406e18:	0f 8f a6 00 00 00    	jg     0x406ec4
406e1e:	ff 75 0c             	push   0xc(%ebp)
406e21:	8b 44 24 20          	mov    0x20(%esp),%eax
406e25:	8b cf                	mov    %edi,%ecx
406e27:	56                   	push   %esi
406e28:	50                   	push   %eax
406e29:	89 44 24 20          	mov    %eax,0x20(%esp)
406e2d:	e8 41 05 00 00       	call   0x407373
406e32:	80 7c 24 23 01       	cmpb   $0x1,0x23(%esp)
406e37:	0f 94 44 24 24       	sete   0x24(%esp)
406e3c:	80 7c 24 13 01       	cmpb   $0x1,0x13(%esp)
406e41:	0f 84 fb fe ff ff    	je     0x406d42
406e47:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
406e4e:	e8 7c ef ff ff       	call   0x405dcf
406e53:	ff b4 24 98 00 00 00 	push   0x98(%esp)
406e5a:	ff 15 08 f2 48 00    	call   *0x48f208
406e60:	8b 44 24 48          	mov    0x48(%esp),%eax
406e64:	8a 5c 24 13          	mov    0x13(%esp),%bl
406e68:	ff 08                	decl   (%eax)
406e6a:	75 0e                	jne    0x406e7a
406e6c:	50                   	push   %eax
406e6d:	e8 fa a1 01 00       	call   0x42106c
406e72:	59                   	pop    %ecx
406e73:	56                   	push   %esi
406e74:	e8 f3 a1 01 00       	call   0x42106c
406e79:	59                   	pop    %ecx
406e7a:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
406e81:	e8 de eb ff ff       	call   0x405a64
406e86:	8d 8c 24 98 00 00 00 	lea    0x98(%esp),%ecx
406e8d:	e8 d2 eb ff ff       	call   0x405a64
406e92:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
406e99:	e8 96 ea ff ff       	call   0x405934
406e9e:	ff 0d a4 74 4c 00    	decl   0x4c74a4
406ea4:	8a c3                	mov    %bl,%al
406ea6:	5f                   	pop    %edi
406ea7:	5e                   	pop    %esi
406ea8:	5b                   	pop    %ebx
406ea9:	8b e5                	mov    %ebp,%esp
406eab:	5d                   	pop    %ebp
406eac:	c2 14 00             	ret    $0x14
406eaf:	8b 44 24 38          	mov    0x38(%esp),%eax
406eb3:	66 83 7c 46 fe 5f    	cmpw   $0x5f,-0x2(%esi,%eax,2)
406eb9:	0f 85 fc fe ff ff    	jne    0x406dbb
406ebf:	e9 25 7d 03 00       	jmp    0x43ebe9
406ec4:	83 f8 04             	cmp    $0x4,%eax
406ec7:	75 04                	jne    0x406ecd
406ec9:	88 5c 24 22          	mov    %bl,0x22(%esp)
406ecd:	8b 44 24 1c          	mov    0x1c(%esp),%eax
406ed1:	89 44 24 14          	mov    %eax,0x14(%esp)
406ed5:	e9 58 ff ff ff       	jmp    0x406e32
406eda:	88 5c 24 13          	mov    %bl,0x13(%esp)
406ede:	eb ed                	jmp    0x406ecd
406ee0:	55                   	push   %ebp
406ee1:	8b ec                	mov    %esp,%ebp
406ee3:	83 ec 30             	sub    $0x30,%esp
406ee6:	83 3d dc 72 4c 00 00 	cmpl   $0x0,0x4c72dc
406eed:	56                   	push   %esi
406eee:	57                   	push   %edi
406eef:	0f 85 29 01 00 00    	jne    0x40701e
406ef5:	a1 a0 72 4c 00       	mov    0x4c72a0,%eax
406efa:	85 c0                	test   %eax,%eax
406efc:	0f 84 20 01 00 00    	je     0x407022
406f02:	8b 35 98 72 4c 00    	mov    0x4c7298,%esi
406f08:	33 c9                	xor    %ecx,%ecx
406f0a:	6a 04                	push   $0x4
406f0c:	5a                   	pop    %edx
406f0d:	f7 e2                	mul    %edx
406f0f:	0f 90 c1             	seto   %cl
406f12:	f7 d9                	neg    %ecx
406f14:	0b c8                	or     %eax,%ecx
406f16:	51                   	push   %ecx
406f17:	e8 da a0 01 00       	call   0x420ff6
406f1c:	8b 3d a0 72 4c 00    	mov    0x4c72a0,%edi
406f22:	59                   	pop    %ecx
406f23:	33 c9                	xor    %ecx,%ecx
406f25:	89 45 f4             	mov    %eax,-0xc(%ebp)
406f28:	a3 a4 72 4c 00       	mov    %eax,0x4c72a4
406f2d:	8b d1                	mov    %ecx,%edx
406f2f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406f32:	85 ff                	test   %edi,%edi
406f34:	7e 1d                	jle    0x406f53
406f36:	8b f8                	mov    %eax,%edi
406f38:	8b 06                	mov    (%esi),%eax
406f3a:	89 04 97             	mov    %eax,(%edi,%edx,4)
406f3d:	42                   	inc    %edx
406f3e:	8b 3d a0 72 4c 00    	mov    0x4c72a0,%edi
406f44:	8b 76 0c             	mov    0xc(%esi),%esi
406f47:	3b d7                	cmp    %edi,%edx
406f49:	7d 08                	jge    0x406f53
406f4b:	8b 3d a4 72 4c 00    	mov    0x4c72a4,%edi
406f51:	eb e5                	jmp    0x406f38
406f53:	33 c0                	xor    %eax,%eax
406f55:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406f58:	40                   	inc    %eax
406f59:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406f5c:	89 45 fc             	mov    %eax,-0x4(%ebp)
406f5f:	8d 77 01             	lea    0x1(%edi),%esi
406f62:	89 45 f8             	mov    %eax,-0x8(%ebp)
406f65:	8b c6                	mov    %esi,%eax
406f67:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406f6a:	33 c9                	xor    %ecx,%ecx
406f6c:	6a 10                	push   $0x10
406f6e:	5f                   	pop    %edi
406f6f:	f7 e7                	mul    %edi
406f71:	c7 45 d4 78 fb 48 00 	movl   $0x48fb78,-0x2c(%ebp)
406f78:	0f 90 c1             	seto   %cl
406f7b:	f7 d9                	neg    %ecx
406f7d:	0b c8                	or     %eax,%ecx
406f7f:	33 c0                	xor    %eax,%eax
406f81:	83 c1 04             	add    $0x4,%ecx
406f84:	0f 92 c0             	setb   %al
406f87:	f7 d8                	neg    %eax
406f89:	0b c1                	or     %ecx,%eax
406f8b:	50                   	push   %eax
406f8c:	e8 65 a0 01 00       	call   0x420ff6
406f91:	59                   	pop    %ecx
406f92:	85 c0                	test   %eax,%eax
406f94:	0f 84 8c 00 00 00    	je     0x407026
406f9a:	8d 50 04             	lea    0x4(%eax),%edx
406f9d:	89 30                	mov    %esi,(%eax)
406f9f:	8b ca                	mov    %edx,%ecx
406fa1:	33 c0                	xor    %eax,%eax
406fa3:	eb 11                	jmp    0x406fb6
406fa5:	c7 01 78 fb 48 00    	movl   $0x48fb78,(%ecx)
406fab:	89 41 04             	mov    %eax,0x4(%ecx)
406fae:	89 41 08             	mov    %eax,0x8(%ecx)
406fb1:	89 41 0c             	mov    %eax,0xc(%ecx)
406fb4:	03 cf                	add    %edi,%ecx
406fb6:	4e                   	dec    %esi
406fb7:	79 ec                	jns    0x406fa5
406fb9:	89 15 dc 72 4c 00    	mov    %edx,0x4c72dc
406fbf:	8b 55 f8             	mov    -0x8(%ebp),%edx
406fc2:	89 7d f4             	mov    %edi,-0xc(%ebp)
406fc5:	8b f8                	mov    %eax,%edi
406fc7:	52                   	push   %edx
406fc8:	e8 76 01 00 00       	call   0x407143
406fcd:	85 c0                	test   %eax,%eax
406fcf:	74 38                	je     0x407009
406fd1:	66 83 38 3b          	cmpw   $0x3b,(%eax)
406fd5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
406fd8:	0f 84 46 7c 03 00    	je     0x43ec24
406fde:	51                   	push   %ecx
406fdf:	50                   	push   %eax
406fe0:	52                   	push   %edx
406fe1:	e8 ba f3 ff ff       	call   0x4063a0
406fe6:	85 c0                	test   %eax,%eax
406fe8:	78 23                	js     0x40700d
406fea:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406fed:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406ff0:	03 0d dc 72 4c 00    	add    0x4c72dc,%ecx
406ff6:	50                   	push   %eax
406ff7:	e8 c1 04 00 00       	call   0x4074bd
406ffc:	8b 55 f8             	mov    -0x8(%ebp),%edx
406fff:	42                   	inc    %edx
407000:	83 45 f4 10          	addl   $0x10,-0xc(%ebp)
407004:	89 55 f8             	mov    %edx,-0x8(%ebp)
407007:	eb be                	jmp    0x406fc7
407009:	c6 45 f0 01          	movb   $0x1,-0x10(%ebp)
40700d:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
407010:	e8 61 07 00 00       	call   0x407776
407015:	8a 45 f0             	mov    -0x10(%ebp),%al
407018:	5f                   	pop    %edi
407019:	5e                   	pop    %esi
40701a:	8b e5                	mov    %ebp,%esp
40701c:	5d                   	pop    %ebp
40701d:	c3                   	ret
40701e:	b0 01                	mov    $0x1,%al
407020:	eb f6                	jmp    0x407018
407022:	32 c0                	xor    %al,%al
407024:	eb f2                	jmp    0x407018
407026:	33 c0                	xor    %eax,%eax
407028:	8b d0                	mov    %eax,%edx
40702a:	eb 8d                	jmp    0x406fb9
40702c:	55                   	push   %ebp
40702d:	8b ec                	mov    %esp,%ebp
40702f:	53                   	push   %ebx
407030:	56                   	push   %esi
407031:	57                   	push   %edi
407032:	8b 7d 08             	mov    0x8(%ebp),%edi
407035:	33 db                	xor    %ebx,%ebx
407037:	8b f3                	mov    %ebx,%esi
407039:	85 ff                	test   %edi,%edi
40703b:	74 75                	je     0x4070b2
40703d:	66 83 3f 23          	cmpw   $0x23,(%edi)
407041:	74 52                	je     0x407095
407043:	66 39 1f             	cmp    %bx,(%edi)
407046:	74 17                	je     0x40705f
407048:	0f b7 07             	movzwl (%edi),%eax
40704b:	83 f8 22             	cmp    $0x22,%eax
40704e:	74 1c                	je     0x40706c
407050:	83 f8 27             	cmp    $0x27,%eax
407053:	74 34                	je     0x407089
407055:	83 f8 3b             	cmp    $0x3b,%eax
407058:	74 24                	je     0x40707e
40705a:	83 c7 02             	add    $0x2,%edi
40705d:	eb e4                	jmp    0x407043
40705f:	85 f6                	test   %esi,%esi
407061:	75 4a                	jne    0x4070ad
407063:	b0 01                	mov    $0x1,%al
407065:	5f                   	pop    %edi
407066:	5e                   	pop    %esi
407067:	5b                   	pop    %ebx
407068:	5d                   	pop    %ebp
407069:	c2 04 00             	ret    $0x4
40706c:	83 fe 02             	cmp    $0x2,%esi
40706f:	74 09                	je     0x40707a
407071:	85 f6                	test   %esi,%esi
407073:	75 e5                	jne    0x40705a
407075:	6a 02                	push   $0x2
407077:	5e                   	pop    %esi
407078:	eb e0                	jmp    0x40705a
40707a:	8b f3                	mov    %ebx,%esi
40707c:	eb dc                	jmp    0x40705a
40707e:	85 f6                	test   %esi,%esi
407080:	75 34                	jne    0x4070b6
407082:	33 c9                	xor    %ecx,%ecx
407084:	66 89 0f             	mov    %cx,(%edi)
407087:	eb da                	jmp    0x407063
407089:	83 fe 01             	cmp    $0x1,%esi
40708c:	74 ec                	je     0x40707a
40708e:	85 f6                	test   %esi,%esi
407090:	75 c8                	jne    0x40705a
407092:	46                   	inc    %esi
407093:	eb c5                	jmp    0x40705a
407095:	6a 08                	push   $0x8
407097:	68 2c 24 49 00       	push   $0x49242c
40709c:	57                   	push   %edi
40709d:	e8 69 c9 01 00       	call   0x423a0b
4070a2:	83 c4 0c             	add    $0xc,%esp
4070a5:	85 c0                	test   %eax,%eax
4070a7:	74 9a                	je     0x407043
4070a9:	6a 03                	push   $0x3
4070ab:	eb ca                	jmp    0x407077
4070ad:	83 fe 03             	cmp    $0x3,%esi
4070b0:	74 b1                	je     0x407063
4070b2:	32 c0                	xor    %al,%al
4070b4:	eb af                	jmp    0x407065
4070b6:	83 fe 03             	cmp    $0x3,%esi
4070b9:	74 c7                	je     0x407082
4070bb:	eb 9d                	jmp    0x40705a
4070bd:	55                   	push   %ebp
4070be:	8b ec                	mov    %esp,%ebp
4070c0:	53                   	push   %ebx
4070c1:	56                   	push   %esi
4070c2:	33 f6                	xor    %esi,%esi
4070c4:	57                   	push   %edi
4070c5:	8b 7d 08             	mov    0x8(%ebp),%edi
4070c8:	8b de                	mov    %esi,%ebx
4070ca:	0f b7 04 77          	movzwl (%edi,%esi,2),%eax
4070ce:	50                   	push   %eax
4070cf:	89 45 08             	mov    %eax,0x8(%ebp)
4070d2:	e8 83 c7 01 00       	call   0x42385a
4070d7:	59                   	pop    %ecx
4070d8:	85 c0                	test   %eax,%eax
4070da:	74 10                	je     0x4070ec
4070dc:	ff 75 08             	push   0x8(%ebp)
4070df:	e8 99 c7 01 00       	call   0x42387d
4070e4:	59                   	pop    %ecx
4070e5:	85 c0                	test   %eax,%eax
4070e7:	74 03                	je     0x4070ec
4070e9:	46                   	inc    %esi
4070ea:	eb de                	jmp    0x4070ca
4070ec:	0f b7 04 77          	movzwl (%edi,%esi,2),%eax
4070f0:	66 85 c0             	test   %ax,%ax
4070f3:	74 08                	je     0x4070fd
4070f5:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
4070f9:	43                   	inc    %ebx
4070fa:	46                   	inc    %esi
4070fb:	eb ef                	jmp    0x4070ec
4070fd:	33 c0                	xor    %eax,%eax
4070ff:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
407103:	5f                   	pop    %edi
407104:	5e                   	pop    %esi
407105:	5b                   	pop    %ebx
407106:	5d                   	pop    %ebp
407107:	c2 04 00             	ret    $0x4
40710a:	55                   	push   %ebp
40710b:	8b ec                	mov    %esp,%ebp
40710d:	57                   	push   %edi
40710e:	8b 7d 08             	mov    0x8(%ebp),%edi
407111:	57                   	push   %edi
407112:	e8 25 bd 01 00       	call   0x422e3c
407117:	59                   	pop    %ecx
407118:	85 c0                	test   %eax,%eax
40711a:	74 1d                	je     0x407139
40711c:	56                   	push   %esi
40711d:	8d 70 ff             	lea    -0x1(%eax),%esi
407120:	85 f6                	test   %esi,%esi
407122:	78 0d                	js     0x407131
407124:	66 8b 0c 77          	mov    (%edi,%esi,2),%cx
407128:	e8 8c e2 ff ff       	call   0x4053b9
40712d:	85 c0                	test   %eax,%eax
40712f:	75 0d                	jne    0x40713e
407131:	33 c0                	xor    %eax,%eax
407133:	66 89 44 77 02       	mov    %ax,0x2(%edi,%esi,2)
407138:	5e                   	pop    %esi
407139:	5f                   	pop    %edi
40713a:	5d                   	pop    %ebp
40713b:	c2 04 00             	ret    $0x4
40713e:	4e                   	dec    %esi
40713f:	79 e3                	jns    0x407124
407141:	eb ee                	jmp    0x407131
407143:	55                   	push   %ebp
407144:	8b ec                	mov    %esp,%ebp
407146:	8b 0d a4 72 4c 00    	mov    0x4c72a4,%ecx
40714c:	85 c9                	test   %ecx,%ecx
40714e:	74 17                	je     0x407167
407150:	8b 45 08             	mov    0x8(%ebp),%eax
407153:	3b 05 a0 72 4c 00    	cmp    0x4c72a0,%eax
407159:	7f 0c                	jg     0x407167
40715b:	85 c0                	test   %eax,%eax
40715d:	7e 08                	jle    0x407167
40715f:	8b 44 81 fc          	mov    -0x4(%ecx,%eax,4),%eax
407163:	5d                   	pop    %ebp
407164:	c2 04 00             	ret    $0x4
407167:	33 c0                	xor    %eax,%eax
407169:	eb f8                	jmp    0x407163
40716b:	55                   	push   %ebp
40716c:	8b ec                	mov    %esp,%ebp
40716e:	83 ec 14             	sub    $0x14,%esp
407171:	56                   	push   %esi
407172:	57                   	push   %edi
407173:	8b f9                	mov    %ecx,%edi
407175:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407178:	e8 4a 06 00 00       	call   0x4077c7
40717d:	8b 4d 08             	mov    0x8(%ebp),%ecx
407180:	8d 55 ec             	lea    -0x14(%ebp),%edx
407183:	e8 26 d7 ff ff       	call   0x4048ae
407188:	33 f6                	xor    %esi,%esi
40718a:	39 77 20             	cmp    %esi,0x20(%edi)
40718d:	0f 87 1b 7b 03 00    	ja     0x43ecae