407c1a:	8b f2                	mov    %edx,%esi
407c1c:	8b f8                	mov    %eax,%edi
407c1e:	33 db                	xor    %ebx,%ebx
407c20:	83 7e 04 20          	cmpl   $0x20,0x4(%esi)
407c24:	75 39                	jne    0x407c5f
407c26:	e8 05 ce ff ff       	call   0x404a30
407c2b:	85 c0                	test   %eax,%eax
407c2d:	75 30                	jne    0x407c5f
407c2f:	66 83 7e 0c 01       	cmpw   $0x1,0xc(%esi)
407c34:	75 29                	jne    0x407c5f
407c36:	83 3d a0 98 42 00 00 	cmpl   $0x0,0x4298a0
407c3d:	74 07                	je     0x407c46
407c3f:	a1 a0 98 42 00       	mov    0x4298a0,%eax
407c44:	eb 06                	jmp    0x407c4c
407c46:	8b 87 c6 00 00 00    	mov    0xc6(%edi),%eax
407c4c:	85 c0                	test   %eax,%eax
407c4e:	74 0f                	je     0x407c5f
407c50:	50                   	push   %eax
407c51:	e8 ba ce ff ff       	call   0x404b10
407c56:	c7 45 00 01 00 00 00 	movl   $0x1,0x0(%ebp)
407c5d:	b3 01                	mov    $0x1,%bl
407c5f:	8b c3                	mov    %ebx,%eax
407c61:	5d                   	pop    %ebp
407c62:	5f                   	pop    %edi
407c63:	5e                   	pop    %esi
407c64:	5b                   	pop    %ebx
407c65:	c3                   	ret
407c66:	8b c0                	mov    %eax,%eax
407c68:	33 d2                	xor    %edx,%edx
407c6a:	e8 81 3c 00 00       	call   0x40b8f0
407c6f:	c3                   	ret
407c70:	53                   	push   %ebx
407c71:	56                   	push   %esi
407c72:	57                   	push   %edi
407c73:	8b f9                	mov    %ecx,%edi
407c75:	8b f2                	mov    %edx,%esi
407c77:	8b d8                	mov    %eax,%ebx
407c79:	57                   	push   %edi
407c7a:	56                   	push   %esi
407c7b:	e8 4c d3 ff ff       	call   0x404fcc
407c80:	8b d0                	mov    %eax,%edx
407c82:	8b c3                	mov    %ebx,%eax
407c84:	e8 b3 3b 00 00       	call   0x40b83c
407c89:	80 4b 34 04          	orb    $0x4,0x34(%ebx)
407c8d:	5f                   	pop    %edi
407c8e:	5e                   	pop    %esi
407c8f:	5b                   	pop    %ebx
407c90:	c3                   	ret
407c91:	8d 40 00             	lea    0x0(%eax),%eax
407c94:	53                   	push   %ebx
407c95:	56                   	push   %esi
407c96:	33 db                	xor    %ebx,%ebx
407c98:	81 7a 04 12 01 00 00 	cmpl   $0x112,0x4(%edx)
407c9f:	75 54                	jne    0x407cf5
407ca1:	8b 52 08             	mov    0x8(%edx),%edx
407ca4:	83 e2 f0             	and    $0xfffffff0,%edx
407ca7:	81 ea 20 f0 00 00    	sub    $0xf020,%edx
407cad:	74 0f                	je     0x407cbe
407caf:	83 ea 10             	sub    $0x10,%edx
407cb2:	74 1d                	je     0x407cd1
407cb4:	81 ea f0 00 00 00    	sub    $0xf0,%edx
407cba:	74 28                	je     0x407ce4
407cbc:	eb 37                	jmp    0x407cf5
407cbe:	8b 70 50             	mov    0x50(%eax),%esi
407cc1:	8b d0                	mov    %eax,%edx
407cc3:	8b 86 44 01 00 00    	mov    0x144(%esi),%eax
407cc9:	ff 96 40 01 00 00    	call   *0x140(%esi)
407ccf:	eb 24                	jmp    0x407cf5
407cd1:	8b 70 50             	mov    0x50(%eax),%esi
407cd4:	8b d0                	mov    %eax,%edx
407cd6:	8b 86 4c 01 00 00    	mov    0x14c(%esi),%eax
407cdc:	ff 96 48 01 00 00    	call   *0x148(%esi)
407ce2:	eb 11                	jmp    0x407cf5
407ce4:	8b 70 50             	mov    0x50(%eax),%esi
407ce7:	8b d0                	mov    %eax,%edx
407ce9:	8b 86 54 01 00 00    	mov    0x154(%esi),%eax
407cef:	ff 96 50 01 00 00    	call   *0x150(%esi)
407cf5:	8b c3                	mov    %ebx,%eax
407cf7:	5e                   	pop    %esi
407cf8:	5b                   	pop    %ebx
407cf9:	c3                   	ret
407cfa:	8b c0                	mov    %eax,%eax
407cfc:	55                   	push   %ebp
407cfd:	8b ec                	mov    %esp,%ebp
407cff:	51                   	push   %ecx
407d00:	53                   	push   %ebx
407d01:	56                   	push   %esi
407d02:	8b f2                	mov    %edx,%esi
407d04:	8b d8                	mov    %eax,%ebx
407d06:	8b c3                	mov    %ebx,%eax
407d08:	e8 cf 62 00 00       	call   0x40dfdc
407d0d:	8b 43 50             	mov    0x50(%ebx),%eax
407d10:	05 40 01 00 00       	add    $0x140,%eax
407d15:	03 f0                	add    %eax,%esi
407d17:	89 75 fc             	mov    %esi,-0x4(%ebp)
407d1a:	8b 45 fc             	mov    -0x4(%ebp),%eax
407d1d:	8b 55 08             	mov    0x8(%ebp),%edx
407d20:	89 10                	mov    %edx,(%eax)
407d22:	8b 55 0c             	mov    0xc(%ebp),%edx
407d25:	89 50 04             	mov    %edx,0x4(%eax)
407d28:	ba 94 7c 40 00       	mov    $0x407c94,%edx
407d2d:	8b c3                	mov    %ebx,%eax
407d2f:	e8 04 1d 00 00       	call   0x409a38
407d34:	5e                   	pop    %esi
407d35:	5b                   	pop    %ebx
407d36:	59                   	pop    %ecx
407d37:	5d                   	pop    %ebp
407d38:	c2 08 00             	ret    $0x8
407d3b:	90                   	nop
407d3c:	56                   	push   %esi
407d3d:	8b 70 44             	mov    0x44(%eax),%esi
407d40:	8b 4e 1c             	mov    0x1c(%esi),%ecx
407d43:	8b 76 18             	mov    0x18(%esi),%esi
407d46:	e3 0a                	jecxz  0x407d52
407d48:	51                   	push   %ecx
407d49:	ad                   	lods   %ds:(%esi),%eax
407d4a:	e8 25 d6 ff ff       	call   0x405374
407d4f:	59                   	pop    %ecx
407d50:	e2 f6                	loop   0x407d48
407d52:	5e                   	pop    %esi
407d53:	c3                   	ret
407d54:	53                   	push   %ebx
407d55:	56                   	push   %esi
407d56:	51                   	push   %ecx
407d57:	8b f2                	mov    %edx,%esi
407d59:	8b d8                	mov    %eax,%ebx
407d5b:	8b 43 44             	mov    0x44(%ebx),%eax
407d5e:	8b d6                	mov    %esi,%edx
407d60:	e8 9f 25 00 00       	call   0x40a304
407d65:	89 04 24             	mov    %eax,(%esp)
407d68:	8b 04 24             	mov    (%esp),%eax
407d6b:	5a                   	pop    %edx
407d6c:	5e                   	pop    %esi
407d6d:	5b                   	pop    %ebx
407d6e:	c3                   	ret
407d6f:	90                   	nop
407d70:	53                   	push   %ebx
407d71:	56                   	push   %esi
407d72:	51                   	push   %ecx
407d73:	8b f1                	mov    %ecx,%esi
407d75:	8b d8                	mov    %eax,%ebx
407d77:	85 d2                	test   %edx,%edx
407d79:	7e 07                	jle    0x407d82
407d7b:	8b c3                	mov    %ebx,%eax
407d7d:	e8 fe 42 00 00       	call   0x40c080
407d82:	85 f6                	test   %esi,%esi
407d84:	7e 09                	jle    0x407d8f
407d86:	8b c3                	mov    %ebx,%eax
407d88:	8b d6                	mov    %esi,%edx
407d8a:	e8 d1 42 00 00       	call   0x40c060
407d8f:	89 1c 24             	mov    %ebx,(%esp)
407d92:	8b 04 24             	mov    (%esp),%eax
407d95:	5a                   	pop    %edx
407d96:	5e                   	pop    %esi
407d97:	5b                   	pop    %ebx
407d98:	c3                   	ret
407d99:	8d 40 00             	lea    0x0(%eax),%eax
407d9c:	8b 4a 0c             	mov    0xc(%edx),%ecx
407d9f:	51                   	push   %ecx
407da0:	8b 4a 08             	mov    0x8(%edx),%ecx
407da3:	51                   	push   %ecx
407da4:	8b 4a 04             	mov    0x4(%edx),%ecx
407da7:	51                   	push   %ecx
407da8:	8b 12                	mov    (%edx),%edx
407daa:	52                   	push   %edx
407dab:	50                   	push   %eax
407dac:	e8 df cb ff ff       	call   0x404990
407db1:	c3                   	ret
407db2:	8b c0                	mov    %eax,%eax
407db4:	53                   	push   %ebx
407db5:	56                   	push   %esi
407db6:	57                   	push   %edi
407db7:	55                   	push   %ebp
407db8:	83 c4 80             	add    $0xffffff80,%esp
407dbb:	8b f9                	mov    %ecx,%edi
407dbd:	8b f2                	mov    %edx,%esi
407dbf:	8b d8                	mov    %eax,%ebx
407dc1:	c6 04 24 00          	movb   $0x0,(%esp)
407dc5:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
407dc9:	74 0d                	je     0x407dd8
407dcb:	8b 43 30             	mov    0x30(%ebx),%eax
407dce:	f6 40 35 02          	testb  $0x2,0x35(%eax)
407dd2:	75 04                	jne    0x407dd8
407dd4:	80 63 35 fe          	andb   $0xfe,0x35(%ebx)
407dd8:	8a 43 35             	mov    0x35(%ebx),%al
407ddb:	22 05 98 82 40 00    	and    0x408298,%al
407de1:	8a 15 9c 82 40 00    	mov    0x40829c,%dl
407de7:	3a d0                	cmp    %al,%dl
407de9:	0f 84 9b 04 00 00    	je     0x40828a
407def:	8b 46 04             	mov    0x4(%esi),%eax
407df2:	83 f8 14             	cmp    $0x14,%eax
407df5:	7f 11                	jg     0x407e08
407df7:	74 69                	je     0x407e62
407df9:	83 e8 0c             	sub    $0xc,%eax
407dfc:	74 2b                	je     0x407e29
407dfe:	83 e8 03             	sub    $0x3,%eax
407e01:	74 5f                	je     0x407e62
407e03:	e9 82 04 00 00       	jmp    0x40828a
407e08:	2d 85 00 00 00       	sub    $0x85,%eax
407e0d:	74 49                	je     0x407e58
407e0f:	05 71 ff ff ff       	add    $0xffffff71,%eax
407e14:	83 e8 02             	sub    $0x2,%eax
407e17:	0f 83 6d 04 00 00    	jae    0x40828a
407e1d:	8b c3                	mov    %ebx,%eax
407e1f:	e8 48 3c 00 00       	call   0x40ba6c
407e24:	e9 61 04 00 00       	jmp    0x40828a
407e29:	f6 43 34 20          	testb  $0x20,0x34(%ebx)
407e2d:	0f 84 57 04 00 00    	je     0x40828a
407e33:	8b c3                	mov    %ebx,%eax
407e35:	e8 32 3c 00 00       	call   0x40ba6c
407e3a:	8b 46 0c             	mov    0xc(%esi),%eax
407e3d:	50                   	push   %eax
407e3e:	8b 46 08             	mov    0x8(%esi),%eax
407e41:	50                   	push   %eax
407e42:	6a 0c                	push   $0xc
407e44:	8b 43 1c             	mov    0x1c(%ebx),%eax
407e47:	50                   	push   %eax
407e48:	e8 27 d1 ff ff       	call   0x404f74
407e4d:	89 07                	mov    %eax,(%edi)
407e4f:	c6 04 24 01          	movb   $0x1,(%esp)
407e53:	e9 32 04 00 00       	jmp    0x40828a
407e58:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
407e5c:	0f 84 28 04 00 00    	je     0x40828a
407e62:	f6 83 2b 01 00 00 10 	testb  $0x10,0x12b(%ebx)
407e69:	0f 85 1b 04 00 00    	jne    0x40828a
407e6f:	c6 04 24 01          	movb   $0x1,(%esp)
407e73:	8b 43 30             	mov    0x30(%ebx),%eax
407e76:	85 c0                	test   %eax,%eax
407e78:	74 43                	je     0x407ebd
407e7a:	f6 43 36 02          	testb  $0x2,0x36(%ebx)
407e7e:	75 3d                	jne    0x407ebd
407e80:	f6 40 35 02          	testb  $0x2,0x35(%eax)
407e84:	74 37                	je     0x407ebd
407e86:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407e8d:	75 2e                	jne    0x407ebd
407e8f:	8d 54 24 20          	lea    0x20(%esp),%edx
407e93:	8b c3                	mov    %ebx,%eax
407e95:	e8 62 3a 00 00       	call   0x40b8fc
407e9a:	6a ff                	push   $0xffffffff
407e9c:	8d 44 24 24          	lea    0x24(%esp),%eax
407ea0:	50                   	push   %eax
407ea1:	8b 43 30             	mov    0x30(%ebx),%eax
407ea4:	8b 40 1c             	mov    0x1c(%eax),%eax
407ea7:	50                   	push   %eax
407ea8:	e8 03 cc ff ff       	call   0x404ab0
407ead:	6a 00                	push   $0x0
407eaf:	8b 43 1c             	mov    0x1c(%ebx),%eax
407eb2:	50                   	push   %eax
407eb3:	e8 98 cc ff ff       	call   0x404b50
407eb8:	e9 cd 03 00 00       	jmp    0x40828a
407ebd:	83 7e 04 0f          	cmpl   $0xf,0x4(%esi)
407ec1:	0f 85 c3 03 00 00    	jne    0x40828a
407ec7:	33 c0                	xor    %eax,%eax
407ec9:	89 44 24 08          	mov    %eax,0x8(%esp)
407ecd:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407ed4:	0f 85 89 00 00 00    	jne    0x407f63
407eda:	6a 00                	push   $0x0
407edc:	6a 00                	push   $0x0
407ede:	6a 00                	push   $0x0
407ee0:	6a 00                	push   $0x0
407ee2:	e8 01 ca ff ff       	call   0x4048e8
407ee7:	8b f8                	mov    %eax,%edi
407ee9:	89 bb ce 00 00 00    	mov    %edi,0xce(%ebx)
407eef:	6a ff                	push   $0xffffffff
407ef1:	57                   	push   %edi
407ef2:	8b 43 1c             	mov    0x1c(%ebx),%eax
407ef5:	50                   	push   %eax
407ef6:	e8 8d cb ff ff       	call   0x404a88
407efb:	48                   	dec    %eax
407efc:	7f 11                	jg     0x407f0f
407efe:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
407f04:	50                   	push   %eax
407f05:	e8 f6 c9 ff ff       	call   0x404900
407f0a:	e9 7b 03 00 00       	jmp    0x40828a
407f0f:	8d 44 24 40          	lea    0x40(%esp),%eax
407f13:	50                   	push   %eax
407f14:	8b 43 1c             	mov    0x1c(%ebx),%eax
407f17:	50                   	push   %eax
407f18:	e8 a3 ca ff ff       	call   0x4049c0
407f1d:	8b f8                	mov    %eax,%edi
407f1f:	57                   	push   %edi
407f20:	e8 ab c9 ff ff       	call   0x4048d0
407f25:	8b e8                	mov    %eax,%ebp
407f27:	8d 44 24 30          	lea    0x30(%esp),%eax
407f2b:	50                   	push   %eax
407f2c:	8b 06                	mov    (%esi),%eax
407f2e:	50                   	push   %eax
407f2f:	e8 04 cb ff ff       	call   0x404a38
407f34:	8b 44 24 3c          	mov    0x3c(%esp),%eax
407f38:	50                   	push   %eax
407f39:	8b 44 24 3c          	mov    0x3c(%esp),%eax
407f3d:	50                   	push   %eax
407f3e:	57                   	push   %edi
407f3f:	e8 84 c9 ff ff       	call   0x4048c8
407f44:	50                   	push   %eax
407f45:	55                   	push   %ebp
407f46:	e8 0d ca ff ff       	call   0x404958
407f4b:	89 44 24 08          	mov    %eax,0x8(%esp)
407f4f:	66 c7 83 34 01 00 00 	movw   $0x0,0x134(%ebx)
407f56:	00 00
407f58:	66 c7 83 36 01 00 00 	movw   $0x0,0x136(%ebx)
407f5f:	00 00
407f61:	eb 12                	jmp    0x407f75
407f63:	8b 6e 08             	mov    0x8(%esi),%ebp
407f66:	8b 43 30             	mov    0x30(%ebx),%eax
407f69:	8b 80 ce 00 00 00    	mov    0xce(%eax),%eax
407f6f:	89 83 ce 00 00 00    	mov    %eax,0xce(%ebx)
407f75:	80 8b 2b 01 00 00 10 	orb    $0x10,0x12b(%ebx)
407f7c:	89 ab 98 00 00 00    	mov    %ebp,0x98(%ebx)
407f82:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407f89:	74 06                	je     0x407f91
407f8b:	f6 43 35 02          	testb  $0x2,0x35(%ebx)
407f8f:	74 0b                	je     0x407f9c
407f91:	6a 00                	push   $0x0
407f93:	55                   	push   %ebp
407f94:	6a 14                	push   $0x14
407f96:	53                   	push   %ebx
407f97:	e8 a0 45 00 00       	call   0x40c53c
407f9c:	6a 00                	push   $0x0
407f9e:	55                   	push   %ebp
407f9f:	6a 0f                	push   $0xf
407fa1:	53                   	push   %ebx
407fa2:	e8 95 45 00 00       	call   0x40c53c
407fa7:	6a 05                	push   $0x5
407fa9:	8b 43 1c             	mov    0x1c(%ebx),%eax
407fac:	50                   	push   %eax
407fad:	e8 de ca ff ff       	call   0x404a90
407fb2:	8b f0                	mov    %eax,%esi
407fb4:	6a 01                	push   $0x1
407fb6:	56                   	push   %esi
407fb7:	e8 d4 ca ff ff       	call   0x404a90
407fbc:	8b f0                	mov    %eax,%esi
407fbe:	85 f6                	test   %esi,%esi
407fc0:	0f 84 35 02 00 00    	je     0x4081fb
407fc6:	56                   	push   %esi
407fc7:	e8 04 cb ff ff       	call   0x404ad0
407fcc:	85 c0                	test   %eax,%eax
407fce:	0f 84 15 02 00 00    	je     0x4081e9
407fd4:	6a 00                	push   $0x0
407fd6:	6a 00                	push   $0x0
407fd8:	6a 00                	push   $0x0
407fda:	6a 00                	push   $0x0
407fdc:	e8 07 c9 ff ff       	call   0x4048e8
407fe1:	8b f8                	mov    %eax,%edi
407fe3:	57                   	push   %edi
407fe4:	56                   	push   %esi
407fe5:	e8 be ca ff ff       	call   0x404aa8
407fea:	48                   	dec    %eax
407feb:	7f 48                	jg     0x408035
407fed:	8d 44 24 20          	lea    0x20(%esp),%eax