403c9c:	89 65 e8             	mov    %esp,-0x18(%ebp)
403c9f:	ff 75 f8             	push   -0x8(%ebp)
403ca2:	8b 45 fc             	mov    -0x4(%ebp),%eax
403ca5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403cac:	89 45 f8             	mov    %eax,-0x8(%ebp)
403caf:	8d 45 f0             	lea    -0x10(%ebp),%eax
403cb2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403cb8:	c3                   	ret
403cb9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403cbc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403cc3:	59                   	pop    %ecx
403cc4:	5f                   	pop    %edi
403cc5:	5f                   	pop    %edi
403cc6:	5e                   	pop    %esi
403cc7:	5b                   	pop    %ebx
403cc8:	8b e5                	mov    %ebp,%esp
403cca:	5d                   	pop    %ebp
403ccb:	51                   	push   %ecx
403ccc:	c3                   	ret
403ccd:	cc                   	int3
403cce:	cc                   	int3
403ccf:	cc                   	int3
403cd0:	8b ff                	mov    %edi,%edi
403cd2:	55                   	push   %ebp
403cd3:	8b ec                	mov    %esp,%ebp
403cd5:	83 ec 18             	sub    $0x18,%esp
403cd8:	53                   	push   %ebx
403cd9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
403cdc:	56                   	push   %esi
403cdd:	8b 73 08             	mov    0x8(%ebx),%esi
403ce0:	33 35 04 b0 40 00    	xor    0x40b004,%esi
403ce6:	57                   	push   %edi
403ce7:	8b 06                	mov    (%esi),%eax
403ce9:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
403ced:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
403cf4:	8d 7b 10             	lea    0x10(%ebx),%edi
403cf7:	83 f8 fe             	cmp    $0xfffffffe,%eax
403cfa:	74 0d                	je     0x403d09
403cfc:	8b 4e 04             	mov    0x4(%esi),%ecx
403cff:	03 cf                	add    %edi,%ecx
403d01:	33 0c 38             	xor    (%eax,%edi,1),%ecx
403d04:	e8 e7 e6 ff ff       	call   0x4023f0
403d09:	8b 4e 0c             	mov    0xc(%esi),%ecx
403d0c:	8b 46 08             	mov    0x8(%esi),%eax
403d0f:	03 cf                	add    %edi,%ecx
403d11:	33 0c 38             	xor    (%eax,%edi,1),%ecx
403d14:	e8 d7 e6 ff ff       	call   0x4023f0
403d19:	8b 45 08             	mov    0x8(%ebp),%eax
403d1c:	f6 40 04 66          	testb  $0x66,0x4(%eax)
403d20:	0f 85 16 01 00 00    	jne    0x403e3c
403d26:	8b 4d 10             	mov    0x10(%ebp),%ecx
403d29:	8d 55 e8             	lea    -0x18(%ebp),%edx
403d2c:	89 53 fc             	mov    %edx,-0x4(%ebx)
403d2f:	8b 5b 0c             	mov    0xc(%ebx),%ebx
403d32:	89 45 e8             	mov    %eax,-0x18(%ebp)
403d35:	89 4d ec             	mov    %ecx,-0x14(%ebp)
403d38:	83 fb fe             	cmp    $0xfffffffe,%ebx
403d3b:	74 5f                	je     0x403d9c
403d3d:	8d 49 00             	lea    0x0(%ecx),%ecx
403d40:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
403d43:	8b 4c 86 14          	mov    0x14(%esi,%eax,4),%ecx
403d47:	8d 44 86 10          	lea    0x10(%esi,%eax,4),%eax
403d4b:	89 45 f0             	mov    %eax,-0x10(%ebp)
403d4e:	8b 00                	mov    (%eax),%eax
403d50:	89 45 f8             	mov    %eax,-0x8(%ebp)
403d53:	85 c9                	test   %ecx,%ecx
403d55:	74 14                	je     0x403d6b
403d57:	8b d7                	mov    %edi,%edx
403d59:	e8 60 2b 00 00       	call   0x4068be
403d5e:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
403d62:	85 c0                	test   %eax,%eax
403d64:	7c 40                	jl     0x403da6
403d66:	7f 47                	jg     0x403daf
403d68:	8b 45 f8             	mov    -0x8(%ebp),%eax
403d6b:	8b d8                	mov    %eax,%ebx
403d6d:	83 f8 fe             	cmp    $0xfffffffe,%eax
403d70:	75 ce                	jne    0x403d40
403d72:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
403d76:	74 24                	je     0x403d9c
403d78:	8b 06                	mov    (%esi),%eax
403d7a:	83 f8 fe             	cmp    $0xfffffffe,%eax
403d7d:	74 0d                	je     0x403d8c
403d7f:	8b 4e 04             	mov    0x4(%esi),%ecx
403d82:	03 cf                	add    %edi,%ecx
403d84:	33 0c 38             	xor    (%eax,%edi,1),%ecx
403d87:	e8 64 e6 ff ff       	call   0x4023f0
403d8c:	8b 4e 0c             	mov    0xc(%esi),%ecx
403d8f:	8b 56 08             	mov    0x8(%esi),%edx
403d92:	03 cf                	add    %edi,%ecx
403d94:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
403d97:	e8 54 e6 ff ff       	call   0x4023f0
403d9c:	8b 45 f4             	mov    -0xc(%ebp),%eax
403d9f:	5f                   	pop    %edi
403da0:	5e                   	pop    %esi
403da1:	5b                   	pop    %ebx
403da2:	8b e5                	mov    %ebp,%esp
403da4:	5d                   	pop    %ebp
403da5:	c3                   	ret
403da6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
403dad:	eb c9                	jmp    0x403d78
403daf:	8b 4d 08             	mov    0x8(%ebp),%ecx
403db2:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
403db8:	75 29                	jne    0x403de3
403dba:	83 3d e0 0a 89 00 00 	cmpl   $0x0,0x890ae0
403dc1:	74 20                	je     0x403de3
403dc3:	68 e0 0a 89 00       	push   $0x890ae0
403dc8:	e8 63 12 00 00       	call   0x405030
403dcd:	83 c4 04             	add    $0x4,%esp
403dd0:	85 c0                	test   %eax,%eax
403dd2:	74 0f                	je     0x403de3
403dd4:	8b 55 08             	mov    0x8(%ebp),%edx
403dd7:	6a 01                	push   $0x1
403dd9:	52                   	push   %edx
403dda:	ff 15 e0 0a 89 00    	call   *0x890ae0
403de0:	83 c4 08             	add    $0x8,%esp
403de3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403de6:	e8 03 2b 00 00       	call   0x4068ee
403deb:	8b 45 0c             	mov    0xc(%ebp),%eax
403dee:	39 58 0c             	cmp    %ebx,0xc(%eax)
403df1:	74 12                	je     0x403e05
403df3:	68 04 b0 40 00       	push   $0x40b004
403df8:	57                   	push   %edi
403df9:	8b d3                	mov    %ebx,%edx
403dfb:	8b c8                	mov    %eax,%ecx
403dfd:	e8 06 2b 00 00       	call   0x406908
403e02:	8b 45 0c             	mov    0xc(%ebp),%eax
403e05:	8b 4d f8             	mov    -0x8(%ebp),%ecx
403e08:	89 48 0c             	mov    %ecx,0xc(%eax)
403e0b:	8b 06                	mov    (%esi),%eax
403e0d:	83 f8 fe             	cmp    $0xfffffffe,%eax
403e10:	74 0d                	je     0x403e1f
403e12:	8b 4e 04             	mov    0x4(%esi),%ecx
403e15:	03 cf                	add    %edi,%ecx
403e17:	33 0c 38             	xor    (%eax,%edi,1),%ecx
403e1a:	e8 d1 e5 ff ff       	call   0x4023f0
403e1f:	8b 4e 0c             	mov    0xc(%esi),%ecx
403e22:	8b 56 08             	mov    0x8(%esi),%edx
403e25:	03 cf                	add    %edi,%ecx
403e27:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
403e2a:	e8 c1 e5 ff ff       	call   0x4023f0
403e2f:	8b 45 f0             	mov    -0x10(%ebp),%eax
403e32:	8b 48 08             	mov    0x8(%eax),%ecx
403e35:	8b d7                	mov    %edi,%edx
403e37:	e8 99 2a 00 00       	call   0x4068d5
403e3c:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
403e41:	39 53 0c             	cmp    %edx,0xc(%ebx)
403e44:	0f 84 52 ff ff ff    	je     0x403d9c
403e4a:	68 04 b0 40 00       	push   $0x40b004
403e4f:	57                   	push   %edi
403e50:	8b cb                	mov    %ebx,%ecx
403e52:	e8 b1 2a 00 00       	call   0x406908
403e57:	e9 1c ff ff ff       	jmp    0x403d78
403e5c:	8b ff                	mov    %edi,%edi
403e5e:	55                   	push   %ebp
403e5f:	8b ec                	mov    %esp,%ebp
403e61:	83 ec 10             	sub    $0x10,%esp
403e64:	a1 04 b0 40 00       	mov    0x40b004,%eax
403e69:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
403e6d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403e71:	53                   	push   %ebx
403e72:	57                   	push   %edi
403e73:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
403e78:	bb 00 00 ff ff       	mov    $0xffff0000,%ebx
403e7d:	3b c7                	cmp    %edi,%eax
403e7f:	74 0d                	je     0x403e8e
403e81:	85 c3                	test   %eax,%ebx
403e83:	74 09                	je     0x403e8e
403e85:	f7 d0                	not    %eax
403e87:	a3 08 b0 40 00       	mov    %eax,0x40b008
403e8c:	eb 60                	jmp    0x403eee
403e8e:	56                   	push   %esi
403e8f:	8d 45 f8             	lea    -0x8(%ebp),%eax
403e92:	50                   	push   %eax
403e93:	ff 15 e0 10 40 00    	call   *0x4010e0
403e99:	8b 75 fc             	mov    -0x4(%ebp),%esi
403e9c:	33 75 f8             	xor    -0x8(%ebp),%esi
403e9f:	ff 15 48 10 40 00    	call   *0x401048
403ea5:	33 f0                	xor    %eax,%esi
403ea7:	ff 15 c4 10 40 00    	call   *0x4010c4
403ead:	33 f0                	xor    %eax,%esi
403eaf:	ff 15 4c 10 40 00    	call   *0x40104c
403eb5:	33 f0                	xor    %eax,%esi
403eb7:	8d 45 f0             	lea    -0x10(%ebp),%eax
403eba:	50                   	push   %eax
403ebb:	ff 15 dc 10 40 00    	call   *0x4010dc
403ec1:	8b 45 f4             	mov    -0xc(%ebp),%eax
403ec4:	33 45 f0             	xor    -0x10(%ebp),%eax
403ec7:	33 f0                	xor    %eax,%esi
403ec9:	3b f7                	cmp    %edi,%esi
403ecb:	75 07                	jne    0x403ed4
403ecd:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
403ed2:	eb 0b                	jmp    0x403edf
403ed4:	85 f3                	test   %esi,%ebx
403ed6:	75 07                	jne    0x403edf
403ed8:	8b c6                	mov    %esi,%eax
403eda:	c1 e0 10             	shl    $0x10,%eax
403edd:	0b f0                	or     %eax,%esi
403edf:	89 35 04 b0 40 00    	mov    %esi,0x40b004
403ee5:	f7 d6                	not    %esi
403ee7:	89 35 08 b0 40 00    	mov    %esi,0x40b008
403eed:	5e                   	pop    %esi
403eee:	5f                   	pop    %edi
403eef:	5b                   	pop    %ebx
403ef0:	c9                   	leave
403ef1:	c3                   	ret
403ef2:	83 25 dc 0a 89 00 00 	andl   $0x0,0x890adc
403ef9:	c3                   	ret
403efa:	2d a4 03 00 00       	sub    $0x3a4,%eax
403eff:	74 22                	je     0x403f23
403f01:	83 e8 04             	sub    $0x4,%eax
403f04:	74 17                	je     0x403f1d
403f06:	83 e8 0d             	sub    $0xd,%eax
403f09:	74 0c                	je     0x403f17
403f0b:	48                   	dec    %eax
403f0c:	74 03                	je     0x403f11
403f0e:	33 c0                	xor    %eax,%eax
403f10:	c3                   	ret
403f11:	b8 04 04 00 00       	mov    $0x404,%eax
403f16:	c3                   	ret
403f17:	b8 12 04 00 00       	mov    $0x412,%eax
403f1c:	c3                   	ret
403f1d:	b8 04 08 00 00       	mov    $0x804,%eax
403f22:	c3                   	ret
403f23:	b8 11 04 00 00       	mov    $0x411,%eax
403f28:	c3                   	ret
403f29:	8b ff                	mov    %edi,%edi
403f2b:	56                   	push   %esi
403f2c:	57                   	push   %edi
403f2d:	8b f0                	mov    %eax,%esi
403f2f:	68 01 01 00 00       	push   $0x101
403f34:	33 ff                	xor    %edi,%edi
403f36:	8d 46 1c             	lea    0x1c(%esi),%eax
403f39:	57                   	push   %edi
403f3a:	50                   	push   %eax
403f3b:	e8 e0 29 00 00       	call   0x406920
403f40:	33 c0                	xor    %eax,%eax
403f42:	0f b7 c8             	movzwl %ax,%ecx
403f45:	8b c1                	mov    %ecx,%eax
403f47:	89 7e 04             	mov    %edi,0x4(%esi)
403f4a:	89 7e 08             	mov    %edi,0x8(%esi)
403f4d:	89 7e 0c             	mov    %edi,0xc(%esi)
403f50:	c1 e1 10             	shl    $0x10,%ecx
403f53:	0b c1                	or     %ecx,%eax
403f55:	8d 7e 10             	lea    0x10(%esi),%edi
403f58:	ab                   	stos   %eax,%es:(%edi)
403f59:	ab                   	stos   %eax,%es:(%edi)
403f5a:	ab                   	stos   %eax,%es:(%edi)
403f5b:	b9 28 b1 40 00       	mov    $0x40b128,%ecx
403f60:	83 c4 0c             	add    $0xc,%esp
403f63:	8d 46 1c             	lea    0x1c(%esi),%eax
403f66:	2b ce                	sub    %esi,%ecx
403f68:	bf 01 01 00 00       	mov    $0x101,%edi
403f6d:	8a 14 01             	mov    (%ecx,%eax,1),%dl
403f70:	88 10                	mov    %dl,(%eax)
403f72:	40                   	inc    %eax
403f73:	4f                   	dec    %edi
403f74:	75 f7                	jne    0x403f6d
403f76:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
403f7c:	be 00 01 00 00       	mov    $0x100,%esi
403f81:	8a 14 08             	mov    (%eax,%ecx,1),%dl
403f84:	88 10                	mov    %dl,(%eax)
403f86:	40                   	inc    %eax
403f87:	4e                   	dec    %esi
403f88:	75 f7                	jne    0x403f81
403f8a:	5f                   	pop    %edi
403f8b:	5e                   	pop    %esi
403f8c:	c3                   	ret
403f8d:	8b ff                	mov    %edi,%edi
403f8f:	55                   	push   %ebp
403f90:	8b ec                	mov    %esp,%ebp
403f92:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
403f98:	a1 04 b0 40 00       	mov    0x40b004,%eax
403f9d:	33 c5                	xor    %ebp,%eax
403f9f:	89 45 fc             	mov    %eax,-0x4(%ebp)
403fa2:	53                   	push   %ebx
403fa3:	57                   	push   %edi
403fa4:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
403faa:	50                   	push   %eax
403fab:	ff 76 04             	push   0x4(%esi)
403fae:	ff 15 e4 10 40 00    	call   *0x4010e4
403fb4:	bf 00 01 00 00       	mov    $0x100,%edi
403fb9:	85 c0                	test   %eax,%eax
403fbb:	0f 84 fb 00 00 00    	je     0x4040bc
403fc1:	33 c0                	xor    %eax,%eax
403fc3:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
403fca:	40                   	inc    %eax
403fcb:	3b c7                	cmp    %edi,%eax
403fcd:	72 f4                	jb     0x403fc3
403fcf:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
403fd5:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
403fdc:	84 c0                	test   %al,%al
403fde:	74 2e                	je     0x40400e
403fe0:	8d 9d ef fa ff ff    	lea    -0x511(%ebp),%ebx
403fe6:	0f b6 c8             	movzbl %al,%ecx
403fe9:	0f b6 03             	movzbl (%ebx),%eax
403fec:	3b c8                	cmp    %eax,%ecx
403fee:	77 16                	ja     0x404006
403ff0:	2b c1                	sub    %ecx,%eax
403ff2:	40                   	inc    %eax
403ff3:	50                   	push   %eax
403ff4:	8d 94 0d fc fe ff ff 	lea    -0x104(%ebp,%ecx,1),%edx
403ffb:	6a 20                	push   $0x20
403ffd:	52                   	push   %edx
403ffe:	e8 1d 29 00 00       	call   0x406920
404003:	83 c4 0c             	add    $0xc,%esp
404006:	43                   	inc    %ebx
404007:	8a 03                	mov    (%ebx),%al
404009:	43                   	inc    %ebx
40400a:	84 c0                	test   %al,%al
40400c:	75 d8                	jne    0x403fe6
40400e:	6a 00                	push   $0x0
404010:	ff 76 0c             	push   0xc(%esi)
404013:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
404019:	ff 76 04             	push   0x4(%esi)
40401c:	50                   	push   %eax
40401d:	57                   	push   %edi
40401e:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404024:	50                   	push   %eax
404025:	6a 01                	push   $0x1
404027:	6a 00                	push   $0x0
404029:	e8 30 2f 00 00       	call   0x406f5e
40402e:	33 db                	xor    %ebx,%ebx
404030:	53                   	push   %ebx
404031:	ff 76 04             	push   0x4(%esi)
404034:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40403a:	57                   	push   %edi
40403b:	50                   	push   %eax
40403c:	57                   	push   %edi
40403d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404043:	50                   	push   %eax
404044:	57                   	push   %edi
404045:	ff 76 0c             	push   0xc(%esi)
404048:	53                   	push   %ebx
404049:	e8 11 2d 00 00       	call   0x406d5f
40404e:	83 c4 44             	add    $0x44,%esp
404051:	53                   	push   %ebx
404052:	ff 76 04             	push   0x4(%esi)
404055:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40405b:	57                   	push   %edi
40405c:	50                   	push   %eax
40405d:	57                   	push   %edi
40405e:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404064:	50                   	push   %eax
404065:	68 00 02 00 00       	push   $0x200
40406a:	ff 76 0c             	push   0xc(%esi)
40406d:	53                   	push   %ebx
40406e:	e8 ec 2c 00 00       	call   0x406d5f
404073:	83 c4 24             	add    $0x24,%esp
404076:	33 c0                	xor    %eax,%eax
404078:	0f b7 8c 45 fc fa ff 	movzwl -0x504(%ebp,%eax,2),%ecx