406db1:	41                   	inc    %ecx
406db2:	83 ee 01             	sub    $0x1,%esi
406db5:	75 ea                	jne    0x406da1
406db7:	5f                   	pop    %edi
406db8:	85 f6                	test   %esi,%esi
406dba:	75 01                	jne    0x406dbd
406dbc:	49                   	dec    %ecx
406dbd:	f7 de                	neg    %esi
406dbf:	1b f6                	sbb    %esi,%esi
406dc1:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
406dc7:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
406dcd:	eb 04                	jmp    0x406dd3
406dcf:	85 d2                	test   %edx,%edx
406dd1:	74 03                	je     0x406dd6
406dd3:	c6 01 00             	movb   $0x0,(%ecx)
406dd6:	8b c6                	mov    %esi,%eax
406dd8:	5e                   	pop    %esi
406dd9:	5d                   	pop    %ebp
406dda:	c2 04 00             	ret    $0x4
406ddd:	8b ff                	mov    %edi,%edi
406ddf:	55                   	push   %ebp
406de0:	8b ec                	mov    %esp,%ebp
406de2:	83 ec 28             	sub    $0x28,%esp
406de5:	a1 64 10 41 00       	mov    0x411064,%eax
406dea:	33 c5                	xor    %ebp,%eax
406dec:	89 45 fc             	mov    %eax,-0x4(%ebp)
406def:	53                   	push   %ebx
406df0:	56                   	push   %esi
406df1:	8b d9                	mov    %ecx,%ebx
406df3:	33 f6                	xor    %esi,%esi
406df5:	57                   	push   %edi
406df6:	8b fa                	mov    %edx,%edi
406df8:	81 fb b0 04 00 00    	cmp    $0x4b0,%ebx
406dfe:	75 24                	jne    0x406e24
406e00:	6a 21                	push   $0x21
406e02:	58                   	pop    %eax
406e03:	3b 75 08             	cmp    0x8(%ebp),%esi
406e06:	73 08                	jae    0x406e10
406e08:	85 ff                	test   %edi,%edi
406e0a:	74 04                	je     0x406e10
406e0c:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406e10:	46                   	inc    %esi
406e11:	b9 ff ff 00 00       	mov    $0xffff,%ecx
406e16:	66 40                	inc    %ax
406e18:	66 3b c1             	cmp    %cx,%ax
406e1b:	72 e6                	jb     0x406e03
406e1d:	8b c6                	mov    %esi,%eax
406e1f:	e9 82 01 00 00       	jmp    0x406fa6
406e24:	53                   	push   %ebx
406e25:	ff 15 b8 31 43 00    	call   *0x4331b8
406e2b:	85 c0                	test   %eax,%eax
406e2d:	0f 84 71 01 00 00    	je     0x406fa4
406e33:	8d 45 e8             	lea    -0x18(%ebp),%eax
406e36:	50                   	push   %eax
406e37:	53                   	push   %ebx
406e38:	ff 15 70 31 43 00    	call   *0x433170
406e3e:	85 c0                	test   %eax,%eax
406e40:	0f 84 5e 01 00 00    	je     0x406fa4
406e46:	c6 45 dc 21          	movb   $0x21,-0x24(%ebp)
406e4a:	6a 01                	push   $0x1
406e4c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406e4f:	50                   	push   %eax
406e50:	6a 01                	push   $0x1
406e52:	8d 45 dc             	lea    -0x24(%ebp),%eax
406e55:	50                   	push   %eax
406e56:	6a 08                	push   $0x8
406e58:	53                   	push   %ebx
406e59:	ff 15 d0 31 43 00    	call   *0x4331d0
406e5f:	85 c0                	test   %eax,%eax
406e61:	74 2a                	je     0x406e8d
406e63:	8d 45 e0             	lea    -0x20(%ebp),%eax
406e66:	50                   	push   %eax
406e67:	6a 01                	push   $0x1
406e69:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406e6c:	50                   	push   %eax
406e6d:	6a 01                	push   $0x1
406e6f:	ff 15 cc 31 43 00    	call   *0x4331cc
406e75:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406e79:	75 12                	jne    0x406e8d
406e7b:	3b 75 08             	cmp    0x8(%ebp),%esi
406e7e:	73 0c                	jae    0x406e8c
406e80:	85 ff                	test   %edi,%edi
406e82:	74 08                	je     0x406e8c
406e84:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406e88:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406e8c:	46                   	inc    %esi
406e8d:	8a 45 dc             	mov    -0x24(%ebp),%al
406e90:	fe c0                	inc    %al
406e92:	88 45 dc             	mov    %al,-0x24(%ebp)
406e95:	3c 7f                	cmp    $0x7f,%al
406e97:	76 b1                	jbe    0x406e4a
406e99:	b8 80 00 00 00       	mov    $0x80,%eax
406e9e:	89 45 d8             	mov    %eax,-0x28(%ebp)
406ea1:	6a 01                	push   $0x1
406ea3:	88 45 dc             	mov    %al,-0x24(%ebp)
406ea6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406ea9:	50                   	push   %eax
406eaa:	6a 01                	push   $0x1
406eac:	8d 45 dc             	lea    -0x24(%ebp),%eax
406eaf:	50                   	push   %eax
406eb0:	6a 08                	push   $0x8
406eb2:	53                   	push   %ebx
406eb3:	ff 15 d0 31 43 00    	call   *0x4331d0
406eb9:	85 c0                	test   %eax,%eax
406ebb:	74 31                	je     0x406eee
406ebd:	8d 45 e0             	lea    -0x20(%ebp),%eax
406ec0:	50                   	push   %eax
406ec1:	6a 01                	push   $0x1
406ec3:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406ec6:	50                   	push   %eax
406ec7:	6a 01                	push   $0x1
406ec9:	ff 15 cc 31 43 00    	call   *0x4331cc
406ecf:	66 83 7d e0 00       	cmpw   $0x0,-0x20(%ebp)
406ed4:	74 18                	je     0x406eee
406ed6:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406eda:	75 12                	jne    0x406eee
406edc:	3b 75 08             	cmp    0x8(%ebp),%esi
406edf:	73 0c                	jae    0x406eed
406ee1:	85 ff                	test   %edi,%edi
406ee3:	74 08                	je     0x406eed
406ee5:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406ee9:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406eed:	46                   	inc    %esi
406eee:	8b 45 d8             	mov    -0x28(%ebp),%eax
406ef1:	40                   	inc    %eax
406ef2:	89 45 d8             	mov    %eax,-0x28(%ebp)
406ef5:	3d ff 00 00 00       	cmp    $0xff,%eax
406efa:	7e a5                	jle    0x406ea1
406efc:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
406f00:	0f 84 17 ff ff ff    	je     0x406e1d
406f06:	c6 45 dc 80          	movb   $0x80,-0x24(%ebp)
406f0a:	ff 75 dc             	push   -0x24(%ebp)
406f0d:	53                   	push   %ebx
406f0e:	ff 15 6c 31 43 00    	call   *0x43316c
406f14:	85 c0                	test   %eax,%eax
406f16:	74 77                	je     0x406f8f
406f18:	b0 40                	mov    $0x40,%al
406f1a:	88 45 dd             	mov    %al,-0x23(%ebp)
406f1d:	3c 7f                	cmp    $0x7f,%al
406f1f:	74 65                	je     0x406f86
406f21:	6a 01                	push   $0x1
406f23:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f26:	50                   	push   %eax
406f27:	6a 02                	push   $0x2
406f29:	8d 45 dc             	lea    -0x24(%ebp),%eax
406f2c:	50                   	push   %eax
406f2d:	6a 08                	push   $0x8
406f2f:	53                   	push   %ebx
406f30:	ff 15 d0 31 43 00    	call   *0x4331d0
406f36:	85 c0                	test   %eax,%eax
406f38:	74 49                	je     0x406f83
406f3a:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406f3e:	b9 00 e0 00 00       	mov    $0xe000,%ecx
406f43:	66 3b c1             	cmp    %cx,%ax
406f46:	72 0a                	jb     0x406f52
406f48:	b9 ff f8 00 00       	mov    $0xf8ff,%ecx
406f4d:	66 3b c1             	cmp    %cx,%ax
406f50:	76 23                	jbe    0x406f75
406f52:	8d 45 e0             	lea    -0x20(%ebp),%eax
406f55:	50                   	push   %eax
406f56:	6a 01                	push   $0x1
406f58:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f5b:	50                   	push   %eax
406f5c:	6a 01                	push   $0x1
406f5e:	ff 15 cc 31 43 00    	call   *0x4331cc
406f64:	66 83 7d e0 00       	cmpw   $0x0,-0x20(%ebp)
406f69:	74 18                	je     0x406f83
406f6b:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406f6f:	75 12                	jne    0x406f83
406f71:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406f75:	3b 75 08             	cmp    0x8(%ebp),%esi
406f78:	73 08                	jae    0x406f82
406f7a:	85 ff                	test   %edi,%edi
406f7c:	74 04                	je     0x406f82
406f7e:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406f82:	46                   	inc    %esi
406f83:	8a 45 dd             	mov    -0x23(%ebp),%al
406f86:	fe c0                	inc    %al
406f88:	88 45 dd             	mov    %al,-0x23(%ebp)
406f8b:	3c fe                	cmp    $0xfe,%al
406f8d:	76 8e                	jbe    0x406f1d
406f8f:	8a 45 dc             	mov    -0x24(%ebp),%al
406f92:	fe c0                	inc    %al
406f94:	88 45 dc             	mov    %al,-0x24(%ebp)
406f97:	3c ff                	cmp    $0xff,%al
406f99:	0f 82 6b ff ff ff    	jb     0x406f0a
406f9f:	e9 79 fe ff ff       	jmp    0x406e1d
406fa4:	33 c0                	xor    %eax,%eax
406fa6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406fa9:	5f                   	pop    %edi
406faa:	5e                   	pop    %esi
406fab:	33 cd                	xor    %ebp,%ecx
406fad:	5b                   	pop    %ebx
406fae:	e8 7d 94 00 00       	call   0x410430
406fb3:	c9                   	leave
406fb4:	c2 04 00             	ret    $0x4
406fb7:	8b ff                	mov    %edi,%edi
406fb9:	55                   	push   %ebp
406fba:	8b ec                	mov    %esp,%ebp
406fbc:	83 ec 44             	sub    $0x44,%esp
406fbf:	53                   	push   %ebx
406fc0:	56                   	push   %esi
406fc1:	33 f6                	xor    %esi,%esi
406fc3:	8b c2                	mov    %edx,%eax
406fc5:	57                   	push   %edi
406fc6:	56                   	push   %esi
406fc7:	89 45 e0             	mov    %eax,-0x20(%ebp)
406fca:	8b fe                	mov    %esi,%edi
406fcc:	89 30                	mov    %esi,(%eax)
406fce:	33 c0                	xor    %eax,%eax
406fd0:	40                   	inc    %eax
406fd1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406fd4:	50                   	push   %eax
406fd5:	6a 03                	push   $0x3
406fd7:	5a                   	pop    %edx
406fd8:	52                   	push   %edx
406fd9:	56                   	push   %esi
406fda:	50                   	push   %eax
406fdb:	68 00 00 00 80       	push   $0x80000000
406fe0:	51                   	push   %ecx
406fe1:	89 75 fc             	mov    %esi,-0x4(%ebp)
406fe4:	89 75 e8             	mov    %esi,-0x18(%ebp)
406fe7:	89 75 dc             	mov    %esi,-0x24(%ebp)
406fea:	89 75 f8             	mov    %esi,-0x8(%ebp)
406fed:	89 7d c0             	mov    %edi,-0x40(%ebp)
406ff0:	ff 15 68 31 43 00    	call   *0x433168
406ff6:	8b d8                	mov    %eax,%ebx
406ff8:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406ffb:	83 fb ff             	cmp    $0xffffffff,%ebx
406ffe:	75 07                	jne    0x407007
407000:	33 c0                	xor    %eax,%eax
407002:	e9 31 05 00 00       	jmp    0x407538
407007:	56                   	push   %esi
407008:	53                   	push   %ebx
407009:	ff 15 64 31 43 00    	call   *0x433164
40700f:	56                   	push   %esi
407010:	50                   	push   %eax
407011:	56                   	push   %esi
407012:	6a 02                	push   $0x2
407014:	56                   	push   %esi
407015:	53                   	push   %ebx
407016:	ff 15 60 31 43 00    	call   *0x433160
40701c:	89 45 cc             	mov    %eax,-0x34(%ebp)
40701f:	85 c0                	test   %eax,%eax
407021:	75 09                	jne    0x40702c
407023:	53                   	push   %ebx
407024:	ff 15 74 31 43 00    	call   *0x433174
40702a:	eb d4                	jmp    0x407000
40702c:	56                   	push   %esi
40702d:	56                   	push   %esi
40702e:	56                   	push   %esi
40702f:	6a 04                	push   $0x4
407031:	59                   	pop    %ecx
407032:	51                   	push   %ecx
407033:	50                   	push   %eax
407034:	ff 15 5c 31 43 00    	call   *0x43315c
40703a:	8b d8                	mov    %eax,%ebx
40703c:	85 db                	test   %ebx,%ebx
40703e:	75 0e                	jne    0x40704e
407040:	ff 75 cc             	push   -0x34(%ebp)
407043:	ff 15 74 31 43 00    	call   *0x433174
407049:	ff 75 c8             	push   -0x38(%ebp)
40704c:	eb d6                	jmp    0x407024
40704e:	80 3b 74             	cmpb   $0x74,(%ebx)
407051:	8b d6                	mov    %esi,%edx
407053:	be 00 ff 00 00       	mov    $0xff00,%esi
407058:	75 31                	jne    0x40708b
40705a:	80 7b 01 74          	cmpb   $0x74,0x1(%ebx)
40705e:	75 2b                	jne    0x40708b
407060:	80 7b 02 63          	cmpb   $0x63,0x2(%ebx)
407064:	75 25                	jne    0x40708b
407066:	80 7b 03 66          	cmpb   $0x66,0x3(%ebx)
40706a:	75 1f                	jne    0x40708b
40706c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40706f:	8b d1                	mov    %ecx,%edx
407071:	c1 e2 10             	shl    $0x10,%edx
407074:	8b c1                	mov    %ecx,%eax
407076:	23 c6                	and    %esi,%eax
407078:	03 d0                	add    %eax,%edx
40707a:	8b c1                	mov    %ecx,%eax
40707c:	c1 e8 08             	shr    $0x8,%eax
40707f:	c1 e2 08             	shl    $0x8,%edx
407082:	23 c6                	and    %esi,%eax
407084:	03 d0                	add    %eax,%edx
407086:	c1 e9 18             	shr    $0x18,%ecx
407089:	03 d1                	add    %ecx,%edx
40708b:	03 da                	add    %edx,%ebx
40708d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
407090:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
407094:	8b c8                	mov    %eax,%ecx
407096:	66 c1 e8 08          	shr    $0x8,%ax
40709a:	c1 e1 08             	shl    $0x8,%ecx
40709d:	66 03 c8             	add    %ax,%cx
4070a0:	0f b7 c1             	movzwl %cx,%eax
4070a3:	89 45 bc             	mov    %eax,-0x44(%ebp)
4070a6:	66 85 c0             	test   %ax,%ax
4070a9:	0f 84 5f 04 00 00    	je     0x40750e
4070af:	21 7d f4             	and    %edi,-0xc(%ebp)
4070b2:	8d 73 0c             	lea    0xc(%ebx),%esi
4070b5:	33 c9                	xor    %ecx,%ecx
4070b7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4070ba:	66 3b c8             	cmp    %ax,%cx
4070bd:	0f 83 4b 04 00 00    	jae    0x40750e
4070c3:	8a 06                	mov    (%esi),%al
4070c5:	3c 6d                	cmp    $0x6d,%al
4070c7:	0f 85 9a 00 00 00    	jne    0x407167
4070cd:	80 7e 01 61          	cmpb   $0x61,0x1(%esi)
4070d1:	75 48                	jne    0x40711b
4070d3:	80 7e 02 78          	cmpb   $0x78,0x2(%esi)
4070d7:	75 42                	jne    0x40711b
4070d9:	80 7e 03 70          	cmpb   $0x70,0x3(%esi)
4070dd:	75 3c                	jne    0x40711b
4070df:	8b 56 08             	mov    0x8(%esi),%edx
4070e2:	8b ca                	mov    %edx,%ecx
4070e4:	c1 e1 10             	shl    $0x10,%ecx
4070e7:	8b c2                	mov    %edx,%eax
4070e9:	25 00 ff 00 00       	and    $0xff00,%eax
4070ee:	03 c8                	add    %eax,%ecx
4070f0:	8b c2                	mov    %edx,%eax
4070f2:	c1 e8 08             	shr    $0x8,%eax
4070f5:	25 00 ff 00 00       	and    $0xff00,%eax
4070fa:	c1 e1 08             	shl    $0x8,%ecx
4070fd:	03 c3                	add    %ebx,%eax
4070ff:	c1 ea 18             	shr    $0x18,%edx
407102:	03 c1                	add    %ecx,%eax
407104:	0f b7 44 02 04       	movzwl 0x4(%edx,%eax,1),%eax
407109:	8b c8                	mov    %eax,%ecx
40710b:	66 c1 e8 08          	shr    $0x8,%ax
40710f:	c1 e1 08             	shl    $0x8,%ecx
407112:	66 03 c8             	add    %ax,%cx
407115:	0f b7 c1             	movzwl %cx,%eax
407118:	89 45 e8             	mov    %eax,-0x18(%ebp)
40711b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40711e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407121:	8b 45 f4             	mov    -0xc(%ebp),%eax
407124:	83 c6 10             	add    $0x10,%esi
407127:	40                   	inc    %eax
407128:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40712b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40712e:	66 3b 45 bc          	cmp    -0x44(%ebp),%ax
407132:	72 8f                	jb     0x4070c3
407134:	66 83 7d e8 00       	cmpw   $0x0,-0x18(%ebp)
407139:	0f 84 cf 03 00 00    	je     0x40750e
40713f:	85 d2                	test   %edx,%edx
407141:	0f 84 c7 03 00 00    	je     0x40750e
407147:	8b 55 dc             	mov    -0x24(%ebp),%edx
40714a:	66 85 d2             	test   %dx,%dx
40714d:	0f 84 bb 03 00 00    	je     0x40750e
407153:	85 c9                	test   %ecx,%ecx
407155:	0f 84 b3 03 00 00    	je     0x40750e