407d00:	50                   	push   %eax
407d01:	e8 ea ec ff ff       	call   0x4069f0
407d06:	83 c4 08             	add    $0x8,%esp
407d09:	33 c0                	xor    %eax,%eax
407d0b:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
407d12:	c7 46 1c 07 00 00 00 	movl   $0x7,0x1c(%esi)
407d19:	8b ce                	mov    %esi,%ecx
407d1b:	66 89 46 08          	mov    %ax,0x8(%esi)
407d1f:	8b 06                	mov    (%esi),%eax
407d21:	ff 70 04             	push   0x4(%eax)
407d24:	56                   	push   %esi
407d25:	e8 76 f5 ff ff       	call   0x4072a0
407d2a:	6a 40                	push   $0x40
407d2c:	ff 36                	push   (%esi)
407d2e:	e8 bd ec ff ff       	call   0x4069f0
407d33:	83 c4 08             	add    $0x8,%esp
407d36:	5e                   	pop    %esi
407d37:	c3                   	ret
407d38:	e8 c1 56 00 00       	call   0x40d3fe
407d3d:	cc                   	int3
407d3e:	cc                   	int3
407d3f:	cc                   	int3
407d40:	8d 41 04             	lea    0x4(%ecx),%eax
407d43:	c7 01 44 13 43 00    	movl   $0x431344,(%ecx)
407d49:	50                   	push   %eax
407d4a:	e8 9f 3a 00 00       	call   0x40b7ee
407d4f:	59                   	pop    %ecx
407d50:	c3                   	ret
407d51:	cc                   	int3
407d52:	cc                   	int3
407d53:	cc                   	int3
407d54:	cc                   	int3
407d55:	cc                   	int3
407d56:	cc                   	int3
407d57:	cc                   	int3
407d58:	cc                   	int3
407d59:	cc                   	int3
407d5a:	cc                   	int3
407d5b:	cc                   	int3
407d5c:	cc                   	int3
407d5d:	cc                   	int3
407d5e:	cc                   	int3
407d5f:	cc                   	int3
407d60:	55                   	push   %ebp
407d61:	8b ec                	mov    %esp,%ebp
407d63:	8b 45 0c             	mov    0xc(%ebp),%eax
407d66:	83 78 14 07          	cmpl   $0x7,0x14(%eax)
407d6a:	8b 48 10             	mov    0x10(%eax),%ecx
407d6d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
407d70:	76 02                	jbe    0x407d74
407d72:	8b 00                	mov    (%eax),%eax
407d74:	53                   	push   %ebx
407d75:	56                   	push   %esi
407d76:	8b 75 08             	mov    0x8(%ebp),%esi
407d79:	57                   	push   %edi
407d7a:	83 7e 14 07          	cmpl   $0x7,0x14(%esi)
407d7e:	8b 5e 10             	mov    0x10(%esi),%ebx
407d81:	89 5d 08             	mov    %ebx,0x8(%ebp)
407d84:	76 02                	jbe    0x407d88
407d86:	8b 36                	mov    (%esi),%esi
407d88:	3b cb                	cmp    %ebx,%ecx
407d8a:	8b d3                	mov    %ebx,%edx
407d8c:	0f 42 d1             	cmovb  %ecx,%edx
407d8f:	85 d2                	test   %edx,%edx
407d91:	74 1e                	je     0x407db1
407d93:	2b f0                	sub    %eax,%esi
407d95:	0f b7 0c 06          	movzwl (%esi,%eax,1),%ecx
407d99:	0f b7 38             	movzwl (%eax),%edi
407d9c:	8b d9                	mov    %ecx,%ebx
407d9e:	66 3b cf             	cmp    %di,%cx
407da1:	75 1f                	jne    0x407dc2
407da3:	83 c0 02             	add    $0x2,%eax
407da6:	83 ea 01             	sub    $0x1,%edx
407da9:	75 ea                	jne    0x407d95
407dab:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407dae:	8b 5d 08             	mov    0x8(%ebp),%ebx
407db1:	3b cb                	cmp    %ebx,%ecx
407db3:	76 20                	jbe    0x407dd5
407db5:	5f                   	pop    %edi
407db6:	83 c8 ff             	or     $0xffffffff,%eax
407db9:	5e                   	pop    %esi
407dba:	c1 e8 1f             	shr    $0x1f,%eax
407dbd:	5b                   	pop    %ebx
407dbe:	5d                   	pop    %ebp
407dbf:	c2 08 00             	ret    $0x8
407dc2:	66 3b df             	cmp    %di,%bx
407dc5:	5f                   	pop    %edi
407dc6:	1b c0                	sbb    %eax,%eax
407dc8:	83 e0 fe             	and    $0xfffffffe,%eax
407dcb:	40                   	inc    %eax
407dcc:	5e                   	pop    %esi
407dcd:	c1 e8 1f             	shr    $0x1f,%eax
407dd0:	5b                   	pop    %ebx
407dd1:	5d                   	pop    %ebp
407dd2:	c2 08 00             	ret    $0x8
407dd5:	1b c0                	sbb    %eax,%eax
407dd7:	5f                   	pop    %edi
407dd8:	f7 d8                	neg    %eax
407dda:	5e                   	pop    %esi
407ddb:	c1 e8 1f             	shr    $0x1f,%eax
407dde:	5b                   	pop    %ebx
407ddf:	5d                   	pop    %ebp
407de0:	c2 08 00             	ret    $0x8
407de3:	cc                   	int3
407de4:	cc                   	int3
407de5:	cc                   	int3
407de6:	cc                   	int3
407de7:	cc                   	int3
407de8:	cc                   	int3
407de9:	cc                   	int3
407dea:	cc                   	int3
407deb:	cc                   	int3
407dec:	cc                   	int3
407ded:	cc                   	int3
407dee:	cc                   	int3
407def:	cc                   	int3
407df0:	55                   	push   %ebp
407df1:	8b ec                	mov    %esp,%ebp
407df3:	56                   	push   %esi
407df4:	8b f1                	mov    %ecx,%esi
407df6:	8b 4e 14             	mov    0x14(%esi),%ecx
407df9:	83 f9 07             	cmp    $0x7,%ecx
407dfc:	76 2d                	jbe    0x407e2b
407dfe:	8b 06                	mov    (%esi),%eax
407e00:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407e07:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407e0d:	72 12                	jb     0x407e21
407e0f:	8b 50 fc             	mov    -0x4(%eax),%edx
407e12:	83 c1 23             	add    $0x23,%ecx
407e15:	2b c2                	sub    %edx,%eax
407e17:	83 c0 fc             	add    $0xfffffffc,%eax
407e1a:	83 f8 1f             	cmp    $0x1f,%eax
407e1d:	77 37                	ja     0x407e56
407e1f:	8b c2                	mov    %edx,%eax
407e21:	51                   	push   %ecx
407e22:	50                   	push   %eax
407e23:	e8 c8 eb ff ff       	call   0x4069f0
407e28:	83 c4 08             	add    $0x8,%esp
407e2b:	33 c0                	xor    %eax,%eax
407e2d:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
407e34:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
407e38:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
407e3f:	66 89 06             	mov    %ax,(%esi)
407e42:	74 0b                	je     0x407e4f
407e44:	6a 24                	push   $0x24
407e46:	56                   	push   %esi
407e47:	e8 a4 eb ff ff       	call   0x4069f0
407e4c:	83 c4 08             	add    $0x8,%esp
407e4f:	8b c6                	mov    %esi,%eax
407e51:	5e                   	pop    %esi
407e52:	5d                   	pop    %ebp
407e53:	c2 04 00             	ret    $0x4
407e56:	e8 a3 55 00 00       	call   0x40d3fe
407e5b:	cc                   	int3
407e5c:	cc                   	int3
407e5d:	cc                   	int3
407e5e:	cc                   	int3
407e5f:	cc                   	int3
407e60:	55                   	push   %ebp
407e61:	8b ec                	mov    %esp,%ebp
407e63:	56                   	push   %esi
407e64:	8b f1                	mov    %ecx,%esi
407e66:	8d 46 04             	lea    0x4(%esi),%eax
407e69:	c7 06 44 13 43 00    	movl   $0x431344,(%esi)
407e6f:	50                   	push   %eax
407e70:	e8 79 39 00 00       	call   0x40b7ee
407e75:	83 c4 04             	add    $0x4,%esp
407e78:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
407e7c:	74 0b                	je     0x407e89
407e7e:	6a 0c                	push   $0xc
407e80:	56                   	push   %esi
407e81:	e8 6a eb ff ff       	call   0x4069f0
407e86:	83 c4 08             	add    $0x8,%esp
407e89:	8b c6                	mov    %esi,%eax
407e8b:	5e                   	pop    %esi
407e8c:	5d                   	pop    %ebp
407e8d:	c2 04 00             	ret    $0x4
407e90:	55                   	push   %ebp
407e91:	8b ec                	mov    %esp,%ebp
407e93:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407e99:	6a ff                	push   $0xffffffff
407e9b:	68 90 01 43 00       	push   $0x430190
407ea0:	50                   	push   %eax
407ea1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
407ea8:	81 ec 28 04 00 00    	sub    $0x428,%esp
407eae:	53                   	push   %ebx
407eaf:	56                   	push   %esi
407eb0:	57                   	push   %edi
407eb1:	68 fc ff 01 00       	push   $0x1fffc
407eb6:	8b f1                	mov    %ecx,%esi
407eb8:	e8 03 eb ff ff       	call   0x4069c0
407ebd:	83 c6 1c             	add    $0x1c,%esi
407ec0:	83 c4 04             	add    $0x4,%esp
407ec3:	8b d8                	mov    %eax,%ebx
407ec5:	83 7e 14 07          	cmpl   $0x7,0x14(%esi)
407ec9:	76 02                	jbe    0x407ecd
407ecb:	8b 36                	mov    (%esi),%esi
407ecd:	6a 04                	push   $0x4
407ecf:	68 fc ff 01 00       	push   $0x1fffc
407ed4:	53                   	push   %ebx
407ed5:	56                   	push   %esi
407ed6:	ff 15 40 12 43 00    	call   *0x431240
407edc:	83 c4 0c             	add    $0xc,%esp
407edf:	8b c4                	mov    %esp,%eax
407ee1:	51                   	push   %ecx
407ee2:	c7 00 b4 13 43 00    	movl   $0x4313b4,(%eax)
407ee8:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407eee:	8b c4                	mov    %esp,%eax
407ef0:	89 18                	mov    %ebx,(%eax)
407ef2:	e8 c9 0c 00 00       	call   0x408bc0
407ef7:	6a 00                	push   $0x0
407ef9:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
407f00:	e8 bc aa 00 00       	call   0x4129c1
407f05:	83 c4 04             	add    $0x4,%esp
407f08:	89 45 f0             	mov    %eax,-0x10(%ebp)
407f0b:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407f11:	e8 7a 10 00 00       	call   0x408f90
407f16:	84 c0                	test   %al,%al
407f18:	0f 84 b0 00 00 00    	je     0x407fce
407f1e:	8b ff                	mov    %edi,%edi
407f20:	8b f3                	mov    %ebx,%esi
407f22:	8d 4e 01             	lea    0x1(%esi),%ecx
407f25:	8a 06                	mov    (%esi),%al
407f27:	46                   	inc    %esi
407f28:	84 c0                	test   %al,%al
407f2a:	75 f9                	jne    0x407f25
407f2c:	2b f1                	sub    %ecx,%esi
407f2e:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407f34:	e8 f7 10 00 00       	call   0x409030
407f39:	8d 50 01             	lea    0x1(%eax),%edx
407f3c:	8d 64 24 00          	lea    0x0(%esp),%esp
407f40:	8a 08                	mov    (%eax),%cl
407f42:	40                   	inc    %eax
407f43:	84 c9                	test   %cl,%cl
407f45:	75 f9                	jne    0x407f40
407f47:	2b c2                	sub    %edx,%eax
407f49:	83 c0 02             	add    $0x2,%eax
407f4c:	03 f0                	add    %eax,%esi
407f4e:	56                   	push   %esi
407f4f:	e8 6c ea ff ff       	call   0x4069c0
407f54:	83 c4 04             	add    $0x4,%esp
407f57:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407f5d:	8b f8                	mov    %eax,%edi
407f5f:	e8 cc 10 00 00       	call   0x409030
407f64:	50                   	push   %eax
407f65:	6a 5c                	push   $0x5c
407f67:	53                   	push   %ebx
407f68:	68 20 15 43 00       	push   $0x431520
407f6d:	56                   	push   %esi
407f6e:	57                   	push   %edi
407f6f:	ff 15 30 12 43 00    	call   *0x431230
407f75:	83 c4 18             	add    $0x18,%esp
407f78:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407f7e:	e8 9d 0e 00 00       	call   0x408e20
407f83:	84 c0                	test   %al,%al
407f85:	75 2b                	jne    0x407fb2
407f87:	51                   	push   %ecx
407f88:	8b c4                	mov    %esp,%eax
407f8a:	89 38                	mov    %edi,(%eax)
407f8c:	e8 af 10 00 00       	call   0x409040
407f91:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407f94:	83 c4 04             	add    $0x4,%esp
407f97:	3b c8                	cmp    %eax,%ecx
407f99:	7e 17                	jle    0x407fb2
407f9b:	2b c8                	sub    %eax,%ecx
407f9d:	81 f9 80 3a 09 00    	cmp    $0x93a80,%ecx
407fa3:	7e 0d                	jle    0x407fb2
407fa5:	51                   	push   %ecx
407fa6:	8b c4                	mov    %esp,%eax
407fa8:	89 38                	mov    %edi,(%eax)
407faa:	e8 81 0e 00 00       	call   0x408e30
407faf:	83 c4 04             	add    $0x4,%esp
407fb2:	57                   	push   %edi
407fb3:	e8 38 ea ff ff       	call   0x4069f0
407fb8:	83 c4 04             	add    $0x4,%esp
407fbb:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407fc1:	e8 ca 0f 00 00       	call   0x408f90
407fc6:	84 c0                	test   %al,%al
407fc8:	0f 85 52 ff ff ff    	jne    0x407f20
407fce:	8d 8d cc fb ff ff    	lea    -0x434(%ebp),%ecx
407fd4:	e8 47 0d 00 00       	call   0x408d20
407fd9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407fdc:	5f                   	pop    %edi
407fdd:	5e                   	pop    %esi
407fde:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407fe5:	5b                   	pop    %ebx
407fe6:	8b e5                	mov    %ebp,%esp
407fe8:	5d                   	pop    %ebp
407fe9:	c3                   	ret
407fea:	cc                   	int3
407feb:	cc                   	int3
407fec:	cc                   	int3
407fed:	cc                   	int3
407fee:	cc                   	int3
407fef:	cc                   	int3
407ff0:	55                   	push   %ebp
407ff1:	8b ec                	mov    %esp,%ebp
407ff3:	6a ff                	push   $0xffffffff
407ff5:	68 cd 01 43 00       	push   $0x4301cd
407ffa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408000:	50                   	push   %eax
408001:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
408008:	83 ec 6c             	sub    $0x6c,%esp
40800b:	53                   	push   %ebx
40800c:	8b d9                	mov    %ecx,%ebx
40800e:	56                   	push   %esi
40800f:	57                   	push   %edi
408010:	8b 3d 2c 10 43 00    	mov    0x43102c,%edi
408016:	ff 43 14             	incl   0x14(%ebx)
408019:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40801c:	ff d7                	call   *%edi
40801e:	6a 40                	push   $0x40
408020:	89 43 18             	mov    %eax,0x18(%ebx)
408023:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40802a:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
408031:	e8 8a e9 ff ff       	call   0x4069c0
408036:	83 c4 04             	add    $0x4,%esp
408039:	89 00                	mov    %eax,(%eax)
40803b:	89 40 04             	mov    %eax,0x4(%eax)
40803e:	89 40 08             	mov    %eax,0x8(%eax)
408041:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
408047:	89 45 b8             	mov    %eax,-0x48(%ebp)
40804a:	33 c0                	xor    %eax,%eax
40804c:	89 45 c0             	mov    %eax,-0x40(%ebp)
40804f:	89 45 c4             	mov    %eax,-0x3c(%ebp)
408052:	89 45 c8             	mov    %eax,-0x38(%ebp)
408055:	89 45 cc             	mov    %eax,-0x34(%ebp)
408058:	89 45 d0             	mov    %eax,-0x30(%ebp)
40805b:	c7 45 d4 07 00 00 00 	movl   $0x7,-0x2c(%ebp)
408062:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
408066:	8b 4d 08             	mov    0x8(%ebp),%ecx
408069:	89 45 fc             	mov    %eax,-0x4(%ebp)
40806c:	8d 45 d8             	lea    -0x28(%ebp),%eax
40806f:	50                   	push   %eax
408070:	e8 21 a7 ff ff       	call   0x402796
408075:	6a 40                	push   $0x40
408077:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40807e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
408085:	e8 36 e9 ff ff       	call   0x4069c0
40808a:	83 c4 04             	add    $0x4,%esp
40808d:	89 00                	mov    %eax,(%eax)
40808f:	89 40 04             	mov    %eax,0x4(%eax)
408092:	89 40 08             	mov    %eax,0x8(%eax)
408095:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
40809b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40809e:	33 f6                	xor    %esi,%esi
4080a0:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4080a4:	39 75 dc             	cmp    %esi,-0x24(%ebp)
4080a7:	0f 86 21 01 00 00    	jbe    0x4081ce
4080ad:	33 ff                	xor    %edi,%edi