404c92:	57                   	push   %edi
404c93:	33 f6                	xor    %esi,%esi
404c95:	bf 28 ce 45 00       	mov    $0x45ce28,%edi
404c9a:	83 3c f5 b4 b8 40 00 	cmpl   $0x1,0x40b8b4(,%esi,8)
404ca1:	01
404ca2:	75 1e                	jne    0x404cc2
404ca4:	8d 04 f5 b0 b8 40 00 	lea    0x40b8b0(,%esi,8),%eax
404cab:	89 38                	mov    %edi,(%eax)
404cad:	68 a0 0f 00 00       	push   $0xfa0
404cb2:	ff 30                	push   (%eax)
404cb4:	83 c7 18             	add    $0x18,%edi
404cb7:	e8 70 06 00 00       	call   0x40532c
404cbc:	59                   	pop    %ecx
404cbd:	59                   	pop    %ecx
404cbe:	85 c0                	test   %eax,%eax
404cc0:	74 0c                	je     0x404cce
404cc2:	46                   	inc    %esi
404cc3:	83 fe 24             	cmp    $0x24,%esi
404cc6:	7c d2                	jl     0x404c9a
404cc8:	33 c0                	xor    %eax,%eax
404cca:	40                   	inc    %eax
404ccb:	5f                   	pop    %edi
404ccc:	5e                   	pop    %esi
404ccd:	c3                   	ret
404cce:	83 24 f5 b0 b8 40 00 	andl   $0x0,0x40b8b0(,%esi,8)
404cd5:	00
404cd6:	33 c0                	xor    %eax,%eax
404cd8:	eb f1                	jmp    0x404ccb
404cda:	8b ff                	mov    %edi,%edi
404cdc:	53                   	push   %ebx
404cdd:	8b 1d ac 10 40 00    	mov    0x4010ac,%ebx
404ce3:	56                   	push   %esi
404ce4:	be b0 b8 40 00       	mov    $0x40b8b0,%esi
404ce9:	57                   	push   %edi
404cea:	8b 3e                	mov    (%esi),%edi
404cec:	85 ff                	test   %edi,%edi
404cee:	74 13                	je     0x404d03
404cf0:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
404cf4:	74 0d                	je     0x404d03
404cf6:	57                   	push   %edi
404cf7:	ff d3                	call   *%ebx
404cf9:	57                   	push   %edi
404cfa:	e8 9f 0a 00 00       	call   0x40579e
404cff:	83 26 00             	andl   $0x0,(%esi)
404d02:	59                   	pop    %ecx
404d03:	83 c6 08             	add    $0x8,%esi
404d06:	81 fe d0 b9 40 00    	cmp    $0x40b9d0,%esi
404d0c:	7c dc                	jl     0x404cea
404d0e:	be b0 b8 40 00       	mov    $0x40b8b0,%esi
404d13:	5f                   	pop    %edi
404d14:	8b 06                	mov    (%esi),%eax
404d16:	85 c0                	test   %eax,%eax
404d18:	74 09                	je     0x404d23
404d1a:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
404d1e:	75 03                	jne    0x404d23
404d20:	50                   	push   %eax
404d21:	ff d3                	call   *%ebx
404d23:	83 c6 08             	add    $0x8,%esi
404d26:	81 fe d0 b9 40 00    	cmp    $0x40b9d0,%esi
404d2c:	7c e6                	jl     0x404d14
404d2e:	5e                   	pop    %esi
404d2f:	5b                   	pop    %ebx
404d30:	c3                   	ret
404d31:	8b ff                	mov    %edi,%edi
404d33:	55                   	push   %ebp
404d34:	8b ec                	mov    %esp,%ebp
404d36:	8b 45 08             	mov    0x8(%ebp),%eax
404d39:	ff 34 c5 b0 b8 40 00 	push   0x40b8b0(,%eax,8)
404d40:	ff 15 f4 10 40 00    	call   *0x4010f4
404d46:	5d                   	pop    %ebp
404d47:	c3                   	ret
404d48:	6a 0c                	push   $0xc
404d4a:	68 d8 a5 40 00       	push   $0x40a5d8
404d4f:	e8 20 ef ff ff       	call   0x403c74
404d54:	33 ff                	xor    %edi,%edi
404d56:	47                   	inc    %edi
404d57:	89 7d e4             	mov    %edi,-0x1c(%ebp)
404d5a:	33 db                	xor    %ebx,%ebx
404d5c:	39 1d dc cd 45 00    	cmp    %ebx,0x45cddc
404d62:	75 18                	jne    0x404d7c
404d64:	e8 81 e1 ff ff       	call   0x402eea
404d69:	6a 1e                	push   $0x1e
404d6b:	e8 cf df ff ff       	call   0x402d3f
404d70:	68 ff 00 00 00       	push   $0xff
404d75:	e8 11 dd ff ff       	call   0x402a8b
404d7a:	59                   	pop    %ecx
404d7b:	59                   	pop    %ecx
404d7c:	8b 75 08             	mov    0x8(%ebp),%esi
404d7f:	8d 34 f5 b0 b8 40 00 	lea    0x40b8b0(,%esi,8),%esi
404d86:	39 1e                	cmp    %ebx,(%esi)
404d88:	74 04                	je     0x404d8e
404d8a:	8b c7                	mov    %edi,%eax
404d8c:	eb 6e                	jmp    0x404dfc
404d8e:	6a 18                	push   $0x18
404d90:	e8 06 0b 00 00       	call   0x40589b
404d95:	59                   	pop    %ecx
404d96:	8b f8                	mov    %eax,%edi
404d98:	3b fb                	cmp    %ebx,%edi
404d9a:	75 0f                	jne    0x404dab
404d9c:	e8 b8 fd ff ff       	call   0x404b59
404da1:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
404da7:	33 c0                	xor    %eax,%eax
404da9:	eb 51                	jmp    0x404dfc
404dab:	6a 0a                	push   $0xa
404dad:	e8 59 00 00 00       	call   0x404e0b
404db2:	59                   	pop    %ecx
404db3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404db6:	39 1e                	cmp    %ebx,(%esi)
404db8:	75 2c                	jne    0x404de6
404dba:	68 a0 0f 00 00       	push   $0xfa0
404dbf:	57                   	push   %edi
404dc0:	e8 67 05 00 00       	call   0x40532c
404dc5:	59                   	pop    %ecx
404dc6:	59                   	pop    %ecx
404dc7:	85 c0                	test   %eax,%eax
404dc9:	75 17                	jne    0x404de2
404dcb:	57                   	push   %edi
404dcc:	e8 cd 09 00 00       	call   0x40579e
404dd1:	59                   	pop    %ecx
404dd2:	e8 82 fd ff ff       	call   0x404b59
404dd7:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
404ddd:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
404de0:	eb 0b                	jmp    0x404ded
404de2:	89 3e                	mov    %edi,(%esi)
404de4:	eb 07                	jmp    0x404ded
404de6:	57                   	push   %edi
404de7:	e8 b2 09 00 00       	call   0x40579e
404dec:	59                   	pop    %ecx
404ded:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404df4:	e8 09 00 00 00       	call   0x404e02
404df9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404dfc:	e8 b8 ee ff ff       	call   0x403cb9
404e01:	c3                   	ret
404e02:	6a 0a                	push   $0xa
404e04:	e8 28 ff ff ff       	call   0x404d31
404e09:	59                   	pop    %ecx
404e0a:	c3                   	ret
404e0b:	8b ff                	mov    %edi,%edi
404e0d:	55                   	push   %ebp
404e0e:	8b ec                	mov    %esp,%ebp
404e10:	8b 45 08             	mov    0x8(%ebp),%eax
404e13:	56                   	push   %esi
404e14:	8d 34 c5 b0 b8 40 00 	lea    0x40b8b0(,%eax,8),%esi
404e1b:	83 3e 00             	cmpl   $0x0,(%esi)
404e1e:	75 13                	jne    0x404e33
404e20:	50                   	push   %eax
404e21:	e8 22 ff ff ff       	call   0x404d48
404e26:	59                   	pop    %ecx
404e27:	85 c0                	test   %eax,%eax
404e29:	75 08                	jne    0x404e33
404e2b:	6a 11                	push   $0x11
404e2d:	e8 05 dc ff ff       	call   0x402a37
404e32:	59                   	pop    %ecx
404e33:	ff 36                	push   (%esi)
404e35:	ff 15 f8 10 40 00    	call   *0x4010f8
404e3b:	5e                   	pop    %esi
404e3c:	5d                   	pop    %ebp
404e3d:	c3                   	ret
404e3e:	8b ff                	mov    %edi,%edi
404e40:	55                   	push   %ebp
404e41:	8b ec                	mov    %esp,%ebp
404e43:	51                   	push   %ecx
404e44:	53                   	push   %ebx
404e45:	56                   	push   %esi
404e46:	57                   	push   %edi
404e47:	ff 35 08 0c 89 00    	push   0x890c08
404e4d:	e8 cd e8 ff ff       	call   0x40371f
404e52:	ff 35 04 0c 89 00    	push   0x890c04
404e58:	8b f8                	mov    %eax,%edi
404e5a:	89 7d fc             	mov    %edi,-0x4(%ebp)
404e5d:	e8 bd e8 ff ff       	call   0x40371f
404e62:	8b f0                	mov    %eax,%esi
404e64:	59                   	pop    %ecx
404e65:	59                   	pop    %ecx
404e66:	3b f7                	cmp    %edi,%esi
404e68:	0f 82 83 00 00 00    	jb     0x404ef1
404e6e:	8b de                	mov    %esi,%ebx
404e70:	2b df                	sub    %edi,%ebx
404e72:	8d 43 04             	lea    0x4(%ebx),%eax
404e75:	83 f8 04             	cmp    $0x4,%eax
404e78:	72 77                	jb     0x404ef1
404e7a:	57                   	push   %edi
404e7b:	e8 ff 25 00 00       	call   0x40747f
404e80:	8b f8                	mov    %eax,%edi
404e82:	8d 43 04             	lea    0x4(%ebx),%eax
404e85:	59                   	pop    %ecx
404e86:	3b f8                	cmp    %eax,%edi
404e88:	73 48                	jae    0x404ed2
404e8a:	b8 00 08 00 00       	mov    $0x800,%eax
404e8f:	3b f8                	cmp    %eax,%edi
404e91:	73 02                	jae    0x404e95
404e93:	8b c7                	mov    %edi,%eax
404e95:	03 c7                	add    %edi,%eax
404e97:	3b c7                	cmp    %edi,%eax
404e99:	72 0f                	jb     0x404eaa
404e9b:	50                   	push   %eax
404e9c:	ff 75 fc             	push   -0x4(%ebp)
404e9f:	e8 88 0a 00 00       	call   0x40592c
404ea4:	59                   	pop    %ecx
404ea5:	59                   	pop    %ecx
404ea6:	85 c0                	test   %eax,%eax
404ea8:	75 16                	jne    0x404ec0
404eaa:	8d 47 10             	lea    0x10(%edi),%eax
404ead:	3b c7                	cmp    %edi,%eax
404eaf:	72 40                	jb     0x404ef1
404eb1:	50                   	push   %eax
404eb2:	ff 75 fc             	push   -0x4(%ebp)
404eb5:	e8 72 0a 00 00       	call   0x40592c
404eba:	59                   	pop    %ecx
404ebb:	59                   	pop    %ecx
404ebc:	85 c0                	test   %eax,%eax
404ebe:	74 31                	je     0x404ef1
404ec0:	c1 fb 02             	sar    $0x2,%ebx
404ec3:	50                   	push   %eax
404ec4:	8d 34 98             	lea    (%eax,%ebx,4),%esi
404ec7:	e8 d8 e7 ff ff       	call   0x4036a4
404ecc:	59                   	pop    %ecx
404ecd:	a3 08 0c 89 00       	mov    %eax,0x890c08
404ed2:	ff 75 08             	push   0x8(%ebp)
404ed5:	e8 ca e7 ff ff       	call   0x4036a4
404eda:	89 06                	mov    %eax,(%esi)
404edc:	83 c6 04             	add    $0x4,%esi
404edf:	56                   	push   %esi
404ee0:	e8 bf e7 ff ff       	call   0x4036a4
404ee5:	59                   	pop    %ecx
404ee6:	a3 04 0c 89 00       	mov    %eax,0x890c04
404eeb:	8b 45 08             	mov    0x8(%ebp),%eax
404eee:	59                   	pop    %ecx
404eef:	eb 02                	jmp    0x404ef3
404ef1:	33 c0                	xor    %eax,%eax
404ef3:	5f                   	pop    %edi
404ef4:	5e                   	pop    %esi
404ef5:	5b                   	pop    %ebx
404ef6:	c9                   	leave
404ef7:	c3                   	ret
404ef8:	8b ff                	mov    %edi,%edi
404efa:	56                   	push   %esi
404efb:	6a 04                	push   $0x4
404efd:	6a 20                	push   $0x20
404eff:	e8 dc 09 00 00       	call   0x4058e0
404f04:	8b f0                	mov    %eax,%esi
404f06:	56                   	push   %esi
404f07:	e8 98 e7 ff ff       	call   0x4036a4
404f0c:	83 c4 0c             	add    $0xc,%esp
404f0f:	a3 08 0c 89 00       	mov    %eax,0x890c08
404f14:	a3 04 0c 89 00       	mov    %eax,0x890c04
404f19:	85 f6                	test   %esi,%esi
404f1b:	75 05                	jne    0x404f22
404f1d:	6a 18                	push   $0x18
404f1f:	58                   	pop    %eax
404f20:	5e                   	pop    %esi
404f21:	c3                   	ret
404f22:	83 26 00             	andl   $0x0,(%esi)
404f25:	33 c0                	xor    %eax,%eax
404f27:	5e                   	pop    %esi
404f28:	c3                   	ret
404f29:	6a 0c                	push   $0xc
404f2b:	68 f8 a5 40 00       	push   $0x40a5f8
404f30:	e8 3f ed ff ff       	call   0x403c74
404f35:	e8 69 db ff ff       	call   0x402aa3
404f3a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404f3e:	ff 75 08             	push   0x8(%ebp)
404f41:	e8 f8 fe ff ff       	call   0x404e3e
404f46:	59                   	pop    %ecx
404f47:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404f4a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404f51:	e8 09 00 00 00       	call   0x404f5f
404f56:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404f59:	e8 5b ed ff ff       	call   0x403cb9
404f5e:	c3                   	ret
404f5f:	e8 48 db ff ff       	call   0x402aac
404f64:	c3                   	ret
404f65:	8b ff                	mov    %edi,%edi
404f67:	55                   	push   %ebp
404f68:	8b ec                	mov    %esp,%ebp
404f6a:	ff 75 08             	push   0x8(%ebp)
404f6d:	e8 b7 ff ff ff       	call   0x404f29
404f72:	f7 d8                	neg    %eax
404f74:	1b c0                	sbb    %eax,%eax
404f76:	f7 d8                	neg    %eax
404f78:	59                   	pop    %ecx
404f79:	48                   	dec    %eax
404f7a:	5d                   	pop    %ebp
404f7b:	c3                   	ret
404f7c:	8b ff                	mov    %edi,%edi
404f7e:	56                   	push   %esi
404f7f:	57                   	push   %edi
404f80:	33 ff                	xor    %edi,%edi
404f82:	8d b7 d0 b9 40 00    	lea    0x40b9d0(%edi),%esi
404f88:	ff 36                	push   (%esi)
404f8a:	e8 15 e7 ff ff       	call   0x4036a4
404f8f:	83 c7 04             	add    $0x4,%edi
404f92:	59                   	pop    %ecx
404f93:	89 06                	mov    %eax,(%esi)
404f95:	83 ff 28             	cmp    $0x28,%edi
404f98:	72 e8                	jb     0x404f82
404f9a:	5f                   	pop    %edi
404f9b:	5e                   	pop    %esi
404f9c:	c3                   	ret
404f9d:	cc                   	int3
404f9e:	cc                   	int3
404f9f:	cc                   	int3
404fa0:	8b ff                	mov    %edi,%edi
404fa2:	55                   	push   %ebp
404fa3:	8b ec                	mov    %esp,%ebp
404fa5:	8b 4d 08             	mov    0x8(%ebp),%ecx
404fa8:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
404fad:	66 39 01             	cmp    %ax,(%ecx)
404fb0:	74 04                	je     0x404fb6
404fb2:	33 c0                	xor    %eax,%eax
404fb4:	5d                   	pop    %ebp
404fb5:	c3                   	ret
404fb6:	8b 41 3c             	mov    0x3c(%ecx),%eax
404fb9:	03 c1                	add    %ecx,%eax
404fbb:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
404fc1:	75 ef                	jne    0x404fb2
404fc3:	33 d2                	xor    %edx,%edx
404fc5:	b9 0b 01 00 00       	mov    $0x10b,%ecx
404fca:	66 39 48 18          	cmp    %cx,0x18(%eax)
404fce:	0f 94 c2             	sete   %dl
404fd1:	8b c2                	mov    %edx,%eax
404fd3:	5d                   	pop    %ebp
404fd4:	c3                   	ret
404fd5:	cc                   	int3
404fd6:	cc                   	int3
404fd7:	cc                   	int3
404fd8:	cc                   	int3
404fd9:	cc                   	int3
404fda:	cc                   	int3
404fdb:	cc                   	int3
404fdc:	cc                   	int3
404fdd:	cc                   	int3
404fde:	cc                   	int3
404fdf:	cc                   	int3
404fe0:	8b ff                	mov    %edi,%edi
404fe2:	55                   	push   %ebp
404fe3:	8b ec                	mov    %esp,%ebp
404fe5:	8b 45 08             	mov    0x8(%ebp),%eax
404fe8:	8b 48 3c             	mov    0x3c(%eax),%ecx
404feb:	03 c8                	add    %eax,%ecx
404fed:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
404ff1:	53                   	push   %ebx
404ff2:	56                   	push   %esi
404ff3:	0f b7 71 06          	movzwl 0x6(%ecx),%esi
404ff7:	33 d2                	xor    %edx,%edx
404ff9:	57                   	push   %edi
404ffa:	8d 44 08 18          	lea    0x18(%eax,%ecx,1),%eax
404ffe:	85 f6                	test   %esi,%esi
405000:	76 1b                	jbe    0x40501d
405002:	8b 7d 0c             	mov    0xc(%ebp),%edi