406e52:	33 ff                	xor    %edi,%edi
406e54:	39 7d 08             	cmp    %edi,0x8(%ebp)
406e57:	8b d8                	mov    %eax,%ebx
406e59:	74 29                	je     0x406e84
406e5b:	ff 75 08             	push   0x8(%ebp)
406e5e:	ff 15 90 03 4b 00    	call   *0x4b0390
406e64:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
406e68:	8b c6                	mov    %esi,%eax
406e6a:	83 c0 03             	add    $0x3,%eax
406e6d:	83 e0 fc             	and    $0xfffffffc,%eax
406e70:	e8 7b f8 00 00       	call   0x4166f0
406e75:	8b c4                	mov    %esp,%eax
406e77:	53                   	push   %ebx
406e78:	56                   	push   %esi
406e79:	ff 75 08             	push   0x8(%ebp)
406e7c:	50                   	push   %eax
406e7d:	e8 6d f5 ff ff       	call   0x4063ef
406e82:	8b f8                	mov    %eax,%edi
406e84:	57                   	push   %edi
406e85:	ff 15 ac 08 4b 00    	call   *0x4b08ac
406e8b:	85 ff                	test   %edi,%edi
406e8d:	75 04                	jne    0x406e93
406e8f:	33 c0                	xor    %eax,%eax
406e91:	eb 23                	jmp    0x406eb6
406e93:	57                   	push   %edi
406e94:	ff 15 88 03 4b 00    	call   *0x4b0388
406e9a:	8b f0                	mov    %eax,%esi
406e9c:	46                   	inc    %esi
406e9d:	8d 04 36             	lea    (%esi,%esi,1),%eax
406ea0:	83 c0 03             	add    $0x3,%eax
406ea3:	83 e0 fc             	and    $0xfffffffc,%eax
406ea6:	e8 45 f8 00 00       	call   0x4166f0
406eab:	8b c4                	mov    %esp,%eax
406ead:	53                   	push   %ebx
406eae:	56                   	push   %esi
406eaf:	57                   	push   %edi
406eb0:	50                   	push   %eax
406eb1:	e8 02 f5 ff ff       	call   0x4063b8
406eb6:	50                   	push   %eax
406eb7:	ff 75 08             	push   0x8(%ebp)
406eba:	e8 98 f8 00 00       	call   0x416757
406ebf:	8b 45 08             	mov    0x8(%ebp),%eax
406ec2:	59                   	pop    %ecx
406ec3:	59                   	pop    %ecx
406ec4:	8d 65 f4             	lea    -0xc(%ebp),%esp
406ec7:	5f                   	pop    %edi
406ec8:	5e                   	pop    %esi
406ec9:	5b                   	pop    %ebx
406eca:	5d                   	pop    %ebp
406ecb:	c2 04 00             	ret    $0x4
406ece:	ff 35 a8 08 4b 00    	push   0x4b08a8
406ed4:	68 46 6e 40 00       	push   $0x406e46
406ed9:	68 f0 70 4a 00       	push   $0x4a70f0
406ede:	e8 f3 a2 ff ff       	call   0x4011d6
406ee3:	83 c4 0c             	add    $0xc,%esp
406ee6:	ff 25 f0 70 4a 00    	jmp    *0x4a70f0
406eec:	8b 44 24 04          	mov    0x4(%esp),%eax
406ef0:	85 c0                	test   %eax,%eax
406ef2:	74 05                	je     0x406ef9
406ef4:	83 38 2c             	cmpl   $0x2c,(%eax)
406ef7:	74 07                	je     0x406f00
406ef9:	b8 57 00 07 80       	mov    $0x80070057,%eax
406efe:	eb 0c                	jmp    0x406f0c
406f00:	83 60 1c 00          	andl   $0x0,0x1c(%eax)
406f04:	8d 48 04             	lea    0x4(%eax),%ecx
406f07:	e8 9c fd ff ff       	call   0x406ca8
406f0c:	c2 04 00             	ret    $0x4
406f0f:	ff 31                	push   (%ecx)
406f11:	ff 15 08 05 4b 00    	call   *0x4b0508
406f17:	c3                   	ret
406f18:	8b c1                	mov    %ecx,%eax
406f1a:	33 c9                	xor    %ecx,%ecx
406f1c:	89 08                	mov    %ecx,(%eax)
406f1e:	89 48 04             	mov    %ecx,0x4(%eax)
406f21:	89 48 08             	mov    %ecx,0x8(%eax)
406f24:	c3                   	ret
406f25:	8b 41 04             	mov    0x4(%ecx),%eax
406f28:	c3                   	ret
406f29:	56                   	push   %esi
406f2a:	8b f1                	mov    %ecx,%esi
406f2c:	8b 06                	mov    (%esi),%eax
406f2e:	85 c0                	test   %eax,%eax
406f30:	74 0a                	je     0x406f3c
406f32:	50                   	push   %eax
406f33:	e8 66 f4 00 00       	call   0x41639e
406f38:	83 26 00             	andl   $0x0,(%esi)
406f3b:	59                   	pop    %ecx
406f3c:	83 66 04 00          	andl   $0x0,0x4(%esi)
406f40:	83 66 08 00          	andl   $0x0,0x8(%esi)
406f44:	5e                   	pop    %esi
406f45:	c3                   	ret
406f46:	8b 44 24 04          	mov    0x4(%esp),%eax
406f4a:	85 c0                	test   %eax,%eax
406f4c:	7c 0d                	jl     0x406f5b
406f4e:	3b 41 04             	cmp    0x4(%ecx),%eax
406f51:	7d 08                	jge    0x406f5b
406f53:	8b 09                	mov    (%ecx),%ecx
406f55:	8d 04 41             	lea    (%ecx,%eax,2),%eax
406f58:	c2 04 00             	ret    $0x4
406f5b:	6a 00                	push   $0x0
406f5d:	6a 00                	push   $0x0
406f5f:	6a 01                	push   $0x1
406f61:	68 8c 00 00 c0       	push   $0xc000008c
406f66:	ff 15 08 03 4b 00    	call   *0x4b0308
406f6c:	cc                   	int3
406f6d:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
406f72:	56                   	push   %esi
406f73:	8b f1                	mov    %ecx,%esi
406f75:	75 05                	jne    0x406f7c
406f77:	83 26 00             	andl   $0x0,(%esi)
406f7a:	eb 53                	jmp    0x406fcf
406f7c:	53                   	push   %ebx
406f7d:	57                   	push   %edi
406f7e:	ff 74 24 10          	push   0x10(%esp)
406f82:	ff 15 90 03 4b 00    	call   *0x4b0390
406f88:	8b f8                	mov    %eax,%edi
406f8a:	47                   	inc    %edi
406f8b:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
406f8e:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
406f94:	7e 17                	jle    0x406fad
406f96:	53                   	push   %ebx
406f97:	e8 f0 f3 00 00       	call   0x41638c
406f9c:	85 c0                	test   %eax,%eax
406f9e:	59                   	pop    %ecx
406f9f:	89 06                	mov    %eax,(%esi)
406fa1:	75 0a                	jne    0x406fad
406fa3:	68 0e 00 07 80       	push   $0x8007000e
406fa8:	e8 3d a2 ff ff       	call   0x4011ea
406fad:	33 c0                	xor    %eax,%eax
406faf:	50                   	push   %eax
406fb0:	50                   	push   %eax
406fb1:	53                   	push   %ebx
406fb2:	ff 36                	push   (%esi)
406fb4:	57                   	push   %edi
406fb5:	ff 74 24 24          	push   0x24(%esp)
406fb9:	50                   	push   %eax
406fba:	ff 74 24 30          	push   0x30(%esp)
406fbe:	ff 15 a0 03 4b 00    	call   *0x4b03a0
406fc4:	85 c0                	test   %eax,%eax
406fc6:	75 05                	jne    0x406fcd
406fc8:	e8 38 a0 ff ff       	call   0x401005
406fcd:	5f                   	pop    %edi
406fce:	5b                   	pop    %ebx
406fcf:	5e                   	pop    %esi
406fd0:	c2 08 00             	ret    $0x8
406fd3:	56                   	push   %esi
406fd4:	8b 74 24 08          	mov    0x8(%esp),%esi
406fd8:	85 f6                	test   %esi,%esi
406fda:	74 0b                	je     0x406fe7
406fdc:	8b 06                	mov    (%esi),%eax
406fde:	85 c0                	test   %eax,%eax
406fe0:	74 4b                	je     0x40702d
406fe2:	83 f8 2c             	cmp    $0x2c,%eax
406fe5:	74 07                	je     0x406fee
406fe7:	b8 57 00 07 80       	mov    $0x80070057,%eax
406fec:	eb 41                	jmp    0x40702f
406fee:	57                   	push   %edi
406fef:	33 ff                	xor    %edi,%edi
406ff1:	39 7e 24             	cmp    %edi,0x24(%esi)
406ff4:	7e 21                	jle    0x407017
406ff6:	53                   	push   %ebx
406ff7:	8d 5e 20             	lea    0x20(%esi),%ebx
406ffa:	57                   	push   %edi
406ffb:	8b cb                	mov    %ebx,%ecx
406ffd:	e8 44 ff ff ff       	call   0x406f46
407002:	0f b7 00             	movzwl (%eax),%eax
407005:	ff 74 24 14          	push   0x14(%esp)
407009:	50                   	push   %eax
40700a:	ff 15 5c 08 4b 00    	call   *0x4b085c
407010:	47                   	inc    %edi
407011:	3b 7e 24             	cmp    0x24(%esi),%edi
407014:	7c e4                	jl     0x406ffa
407016:	5b                   	pop    %ebx
407017:	8d 4e 20             	lea    0x20(%esi),%ecx
40701a:	e8 0a ff ff ff       	call   0x406f29
40701f:	8d 46 04             	lea    0x4(%esi),%eax
407022:	50                   	push   %eax
407023:	ff 15 14 03 4b 00    	call   *0x4b0314
407029:	83 26 00             	andl   $0x0,(%esi)
40702c:	5f                   	pop    %edi
40702d:	33 c0                	xor    %eax,%eax
40702f:	5e                   	pop    %esi
407030:	c2 08 00             	ret    $0x8
407033:	53                   	push   %ebx
407034:	8a 5c 24 08          	mov    0x8(%esp),%bl
407038:	f6 c3 02             	test   $0x2,%bl
40703b:	56                   	push   %esi
40703c:	8b f1                	mov    %ecx,%esi
40703e:	74 24                	je     0x407064
407040:	57                   	push   %edi
407041:	68 0f 6f 40 00       	push   $0x406f0f
407046:	8d 7e fc             	lea    -0x4(%esi),%edi
407049:	ff 37                	push   (%edi)
40704b:	6a 0c                	push   $0xc
40704d:	56                   	push   %esi
40704e:	e8 fb 14 01 00       	call   0x41854e
407053:	f6 c3 01             	test   $0x1,%bl
407056:	74 07                	je     0x40705f
407058:	57                   	push   %edi
407059:	e8 22 90 03 00       	call   0x440080
40705e:	59                   	pop    %ecx
40705f:	8b c7                	mov    %edi,%eax
407061:	5f                   	pop    %edi
407062:	eb 15                	jmp    0x407079
407064:	8b ce                	mov    %esi,%ecx
407066:	e8 a4 fe ff ff       	call   0x406f0f
40706b:	f6 c3 01             	test   $0x1,%bl
40706e:	74 07                	je     0x407077
407070:	56                   	push   %esi
407071:	e8 0a 90 03 00       	call   0x440080
407076:	59                   	pop    %ecx
407077:	8b c6                	mov    %esi,%eax
407079:	5e                   	pop    %esi
40707a:	5b                   	pop    %ebx
40707b:	c2 04 00             	ret    $0x4
40707e:	56                   	push   %esi
40707f:	8b f1                	mov    %ecx,%esi
407081:	8d 46 04             	lea    0x4(%esi),%eax
407084:	89 06                	mov    %eax,(%esi)
407086:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40708c:	50                   	push   %eax
40708d:	ff 74 24 0c          	push   0xc(%esp)
407091:	8b ce                	mov    %esi,%ecx
407093:	e8 d5 fe ff ff       	call   0x406f6d
407098:	8b c6                	mov    %esi,%eax
40709a:	5e                   	pop    %esi
40709b:	c2 04 00             	ret    $0x4
40709e:	e9 86 fe ff ff       	jmp    0x406f29
4070a3:	b8 33 29 48 00       	mov    $0x482933,%eax
4070a8:	e8 cf 0b 01 00       	call   0x417c7c
4070ad:	83 ec 0c             	sub    $0xc,%esp
4070b0:	53                   	push   %ebx
4070b1:	56                   	push   %esi
4070b2:	57                   	push   %edi
4070b3:	ff 15 fc 70 4a 00    	call   *0x4a70fc
4070b9:	89 45 ec             	mov    %eax,-0x14(%ebp)
4070bc:	33 c0                	xor    %eax,%eax
4070be:	89 45 f0             	mov    %eax,-0x10(%ebp)
4070c1:	39 45 10             	cmp    %eax,0x10(%ebp)
4070c4:	8b 3d 90 03 4b 00    	mov    0x4b0390,%edi
4070ca:	89 45 fc             	mov    %eax,-0x4(%ebp)
4070cd:	89 45 e8             	mov    %eax,-0x18(%ebp)
4070d0:	bb 00 04 00 00       	mov    $0x400,%ebx
4070d5:	74 48                	je     0x40711f
4070d7:	ff 75 10             	push   0x10(%ebp)
4070da:	ff d7                	call   *%edi
4070dc:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
4070e0:	3b f3                	cmp    %ebx,%esi
4070e2:	7f 1c                	jg     0x407100
4070e4:	56                   	push   %esi
4070e5:	e8 17 a3 ff ff       	call   0x401401
4070ea:	84 c0                	test   %al,%al
4070ec:	59                   	pop    %ecx
4070ed:	74 11                	je     0x407100
4070ef:	8b c6                	mov    %esi,%eax
4070f1:	83 c0 03             	add    $0x3,%eax
4070f4:	83 e0 fc             	and    $0xfffffffc,%eax
4070f7:	e8 f4 f5 00 00       	call   0x4166f0
4070fc:	8b c4                	mov    %esp,%eax
4070fe:	eb 09                	jmp    0x407109
407100:	56                   	push   %esi
407101:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407104:	e8 45 a1 ff ff       	call   0x40124e
407109:	ff 75 ec             	push   -0x14(%ebp)
40710c:	56                   	push   %esi
40710d:	ff 75 10             	push   0x10(%ebp)
407110:	50                   	push   %eax
407111:	e8 d9 f2 ff ff       	call   0x4063ef
407116:	85 c0                	test   %eax,%eax
407118:	89 45 e8             	mov    %eax,-0x18(%ebp)
40711b:	74 4a                	je     0x407167
40711d:	33 c0                	xor    %eax,%eax
40711f:	39 45 18             	cmp    %eax,0x18(%ebp)
407122:	74 4d                	je     0x407171
407124:	ff 75 18             	push   0x18(%ebp)
407127:	ff d7                	call   *%edi
407129:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40712d:	3b f3                	cmp    %ebx,%esi
40712f:	7f 1c                	jg     0x40714d
407131:	56                   	push   %esi
407132:	e8 ca a2 ff ff       	call   0x401401
407137:	84 c0                	test   %al,%al
407139:	59                   	pop    %ecx
40713a:	74 11                	je     0x40714d
40713c:	8b c6                	mov    %esi,%eax
40713e:	83 c0 03             	add    $0x3,%eax
407141:	83 e0 fc             	and    $0xfffffffc,%eax
407144:	e8 a7 f5 00 00       	call   0x4166f0
407149:	8b c4                	mov    %esp,%eax
40714b:	eb 09                	jmp    0x407156
40714d:	56                   	push   %esi
40714e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407151:	e8 f8 a0 ff ff       	call   0x40124e
407156:	ff 75 ec             	push   -0x14(%ebp)
407159:	56                   	push   %esi
40715a:	ff 75 18             	push   0x18(%ebp)
40715d:	50                   	push   %eax
40715e:	e8 8c f2 ff ff       	call   0x4063ef
407163:	85 c0                	test   %eax,%eax
407165:	75 0a                	jne    0x407171
407167:	68 0e 00 07 80       	push   $0x8007000e
40716c:	e8 79 a0 ff ff       	call   0x4011ea
407171:	ff 75 1c             	push   0x1c(%ebp)
407174:	50                   	push   %eax
407175:	ff 75 14             	push   0x14(%ebp)
407178:	ff 75 e8             	push   -0x18(%ebp)
40717b:	ff 75 0c             	push   0xc(%ebp)
40717e:	ff 75 08             	push   0x8(%ebp)
407181:	ff 15 84 03 4b 00    	call   *0x4b0384
407187:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40718a:	8b f0                	mov    %eax,%esi
40718c:	e8 76 a1 ff ff       	call   0x401307
407191:	8b c6                	mov    %esi,%eax
407193:	8d 65 dc             	lea    -0x24(%ebp),%esp
407196:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407199:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4071a0:	5f                   	pop    %edi
4071a1:	5e                   	pop    %esi
4071a2:	5b                   	pop    %ebx
4071a3:	c9                   	leave
4071a4:	c2 18 00             	ret    $0x18
4071a7:	55                   	push   %ebp
4071a8:	8b ec                	mov    %esp,%ebp
4071aa:	ff 35 80 03 4b 00    	push   0x4b0380
4071b0:	68 a3 70 40 00       	push   $0x4070a3
4071b5:	68 e0 70 4a 00       	push   $0x4a70e0
4071ba:	e8 17 a0 ff ff       	call   0x4011d6
4071bf:	83 c4 0c             	add    $0xc,%esp
4071c2:	5d                   	pop    %ebp
4071c3:	ff 25 e0 70 4a 00    	jmp    *0x4a70e0
4071c9:	ff 35 d8 cb 4a 00    	push   0x4acbd8
4071cf:	51                   	push   %ecx
4071d0:	e8 fe fd ff ff       	call   0x406fd3
4071d5:	c3                   	ret
4071d6:	56                   	push   %esi
4071d7:	8b f1                	mov    %ecx,%esi
4071d9:	8d 4e 04             	lea    0x4(%esi),%ecx
4071dc:	e8 b3 fa ff ff       	call   0x406c94
4071e1:	33 c0                	xor    %eax,%eax
4071e3:	89 46 20             	mov    %eax,0x20(%esi)
4071e6:	89 46 24             	mov    %eax,0x24(%esi)
4071e9:	89 46 28             	mov    %eax,0x28(%esi)
4071ec:	8b c6                	mov    %esi,%eax
4071ee:	5e                   	pop    %esi
4071ef:	c3                   	ret
4071f0:	83 c1 20             	add    $0x20,%ecx
4071f3:	e9 31 fd ff ff       	jmp    0x406f29
4071f8:	b8 53 29 48 00       	mov    $0x482953,%eax
4071fd:	e8 7a 0a 01 00       	call   0x417c7c
407202:	81 ec 0c 01 00 00    	sub    $0x10c,%esp