404ba3:	83 c4 0c             	add    $0xc,%esp
404ba6:	8d 45 b8             	lea    -0x48(%ebp),%eax
404ba9:	6a 20                	push   $0x20
404bab:	50                   	push   %eax
404bac:	68 58 04 00 00       	push   $0x458
404bb1:	6a 00                	push   $0x0
404bb3:	ff 15 20 f1 40 00    	call   *0x40f120
404bb9:	85 c0                	test   %eax,%eax
404bbb:	75 04                	jne    0x404bc1
404bbd:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
404bc1:	ff 76 04             	push   0x4(%esi)
404bc4:	8d 45 b8             	lea    -0x48(%ebp),%eax
404bc7:	50                   	push   %eax
404bc8:	68 18 18 40 00       	push   $0x401818
404bcd:	e8 e8 dc ff ff       	call   0x4028ba
404bd2:	83 c4 0c             	add    $0xc,%esp
404bd5:	33 d2                	xor    %edx,%edx
404bd7:	8b ca                	mov    %edx,%ecx
404bd9:	8b 04 8b             	mov    (%ebx,%ecx,4),%eax
404bdc:	bf 5c 24 40 00       	mov    $0x40245c,%edi
404be1:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
404be4:	8b bd ac fe ff ff    	mov    -0x154(%ebp),%edi
404bea:	75 7e                	jne    0x404c6a
404bec:	41                   	inc    %ecx
404bed:	83 f9 04             	cmp    $0x4,%ecx
404bf0:	75 e7                	jne    0x404bd9
404bf2:	88 95 b6 fe ff ff    	mov    %dl,-0x14a(%ebp)
404bf8:	8b da                	mov    %edx,%ebx
404bfa:	33 ff                	xor    %edi,%edi
404bfc:	89 9d a8 fe ff ff    	mov    %ebx,-0x158(%ebp)
404c02:	3b 9d 98 fe ff ff    	cmp    -0x168(%ebp),%ebx
404c08:	73 5a                	jae    0x404c64
404c0a:	8b 95 a0 fe ff ff    	mov    -0x160(%ebp),%edx
404c10:	6b cb 48             	imul   $0x48,%ebx,%ecx
404c13:	83 c2 44             	add    $0x44,%edx
404c16:	03 d1                	add    %ecx,%edx
404c18:	8b 02                	mov    (%edx),%eax
404c1a:	85 c0                	test   %eax,%eax
404c1c:	74 34                	je     0x404c52
404c1e:	8b 18                	mov    (%eax),%ebx
404c20:	8b cf                	mov    %edi,%ecx
404c22:	89 9d 88 fe ff ff    	mov    %ebx,-0x178(%ebp)
404c28:	3b d9                	cmp    %ecx,%ebx
404c2a:	8b 9d a8 fe ff ff    	mov    -0x158(%ebp),%ebx
404c30:	76 20                	jbe    0x404c52
404c32:	83 c0 08             	add    $0x8,%eax
404c35:	8b 5e fc             	mov    -0x4(%esi),%ebx
404c38:	39 18                	cmp    %ebx,(%eax)
404c3a:	8b 9d a8 fe ff ff    	mov    -0x158(%ebp),%ebx
404c40:	0f 84 a9 00 00 00    	je     0x404cef
404c46:	41                   	inc    %ecx
404c47:	83 c0 18             	add    $0x18,%eax
404c4a:	3b 8d 88 fe ff ff    	cmp    -0x178(%ebp),%ecx
404c50:	72 e3                	jb     0x404c35
404c52:	43                   	inc    %ebx
404c53:	83 c2 48             	add    $0x48,%edx
404c56:	89 9d a8 fe ff ff    	mov    %ebx,-0x158(%ebp)
404c5c:	3b 9d 98 fe ff ff    	cmp    -0x168(%ebp),%ebx
404c62:	72 b4                	jb     0x404c18
404c64:	8b bd ac fe ff ff    	mov    -0x154(%ebp),%edi
404c6a:	68 c4 13 40 00       	push   $0x4013c4
404c6f:	e8 46 dc ff ff       	call   0x4028ba
404c74:	47                   	inc    %edi
404c75:	81 c6 f8 07 00 00    	add    $0x7f8,%esi
404c7b:	59                   	pop    %ecx
404c7c:	89 bd ac fe ff ff    	mov    %edi,-0x154(%ebp)
404c82:	3b bd a4 fe ff ff    	cmp    -0x15c(%ebp),%edi
404c88:	0f 82 0a fc ff ff    	jb     0x404898
404c8e:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
404c94:	8b b5 84 fe ff ff    	mov    -0x17c(%ebp),%esi
404c9a:	83 bd a0 fe ff ff 00 	cmpl   $0x0,-0x160(%ebp)
404ca1:	74 12                	je     0x404cb5
404ca3:	ff b5 a0 fe ff ff    	push   -0x160(%ebp)
404ca9:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
404caf:	ff 15 ac f0 40 00    	call   *0x40f0ac
404cb5:	56                   	push   %esi
404cb6:	ff 15 b0 f0 40 00    	call   *0x40f0b0
404cbc:	33 c0                	xor    %eax,%eax
404cbe:	8b f0                	mov    %eax,%esi
404cc0:	89 b5 ac fe ff ff    	mov    %esi,-0x154(%ebp)
404cc6:	8b 85 90 fe ff ff    	mov    -0x170(%ebp),%eax
404ccc:	83 c7 30             	add    $0x30,%edi
404ccf:	40                   	inc    %eax
404cd0:	89 bd 8c fe ff ff    	mov    %edi,-0x174(%ebp)
404cd6:	89 85 90 fe ff ff    	mov    %eax,-0x170(%ebp)
404cdc:	3b 85 9c fe ff ff    	cmp    -0x164(%ebp),%eax
404ce2:	0f 82 f5 f9 ff ff    	jb     0x4046dd
404ce8:	8b c6                	mov    %esi,%eax
404cea:	e9 91 00 00 00       	jmp    0x404d80
404cef:	80 bd b6 fe ff ff 00 	cmpb   $0x0,-0x14a(%ebp)
404cf6:	75 31                	jne    0x404d29
404cf8:	6a 20                	push   $0x20
404cfa:	8d 45 b8             	lea    -0x48(%ebp),%eax
404cfd:	50                   	push   %eax
404cfe:	68 59 04 00 00       	push   $0x459
404d03:	57                   	push   %edi
404d04:	ff 15 20 f1 40 00    	call   *0x40f120
404d0a:	85 c0                	test   %eax,%eax
404d0c:	75 04                	jne    0x404d12
404d0e:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
404d12:	8d 45 b8             	lea    -0x48(%ebp),%eax
404d15:	50                   	push   %eax
404d16:	68 50 18 40 00       	push   $0x401850
404d1b:	e8 9a db ff ff       	call   0x4028ba
404d20:	59                   	pop    %ecx
404d21:	59                   	pop    %ecx
404d22:	c6 85 b6 fe ff ff 01 	movb   $0x1,-0x14a(%ebp)
404d29:	8b 85 a0 fe ff ff    	mov    -0x160(%ebp),%eax
404d2f:	6b cb 48             	imul   $0x48,%ebx,%ecx
404d32:	8b 5c 01 44          	mov    0x44(%ecx,%eax,1),%ebx
404d36:	81 c3 20 60 00 00    	add    $0x6020,%ebx
404d3c:	eb 27                	jmp    0x404d65
404d3e:	53                   	push   %ebx
404d3f:	68 80 18 40 00       	push   $0x401880
404d44:	e8 71 db ff ff       	call   0x4028ba
404d49:	59                   	pop    %ecx
404d4a:	59                   	pop    %ecx
404d4b:	8b cb                	mov    %ebx,%ecx
404d4d:	8d 51 02             	lea    0x2(%ecx),%edx
404d50:	66 8b 01             	mov    (%ecx),%ax
404d53:	83 c1 02             	add    $0x2,%ecx
404d56:	66 3b c7             	cmp    %di,%ax
404d59:	75 f5                	jne    0x404d50
404d5b:	2b ca                	sub    %edx,%ecx
404d5d:	d1 f9                	sar    $1,%ecx
404d5f:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
404d62:	83 c3 02             	add    $0x2,%ebx
404d65:	66 39 3b             	cmp    %di,(%ebx)
404d68:	75 d4                	jne    0x404d3e
404d6a:	8b 9d a8 fe ff ff    	mov    -0x158(%ebp),%ebx
404d70:	43                   	inc    %ebx
404d71:	e9 86 fe ff ff       	jmp    0x404bfc
404d76:	6a 1a                	push   $0x1a
404d78:	59                   	pop    %ecx
404d79:	e8 e1 dc ff ff       	call   0x402a5f
404d7e:	33 c0                	xor    %eax,%eax
404d80:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404d83:	5f                   	pop    %edi
404d84:	5e                   	pop    %esi
404d85:	33 cd                	xor    %ebp,%ecx
404d87:	5b                   	pop    %ebx
404d88:	e8 43 3d 00 00       	call   0x408ad0
404d8d:	c9                   	leave
404d8e:	c3                   	ret
404d8f:	8b ff                	mov    %edi,%edi
404d91:	55                   	push   %ebp
404d92:	8b ec                	mov    %esp,%ebp
404d94:	81 ec cc 00 00 00    	sub    $0xcc,%esp
404d9a:	a1 04 a0 40 00       	mov    0x40a004,%eax
404d9f:	33 c5                	xor    %ebp,%eax
404da1:	89 45 fc             	mov    %eax,-0x4(%ebp)
404da4:	53                   	push   %ebx
404da5:	56                   	push   %esi
404da6:	8b f2                	mov    %edx,%esi
404da8:	57                   	push   %edi
404da9:	6a 2a                	push   $0x2a
404dab:	5a                   	pop    %edx
404dac:	83 f9 06             	cmp    $0x6,%ecx
404daf:	0f 85 8c 01 00 00    	jne    0x404f41
404db5:	8b 46 08             	mov    0x8(%esi),%eax
404db8:	33 ff                	xor    %edi,%edi
404dba:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
404dc0:	66 39 10             	cmp    %dx,(%eax)
404dc3:	75 06                	jne    0x404dcb
404dc5:	89 bd 64 ff ff ff    	mov    %edi,-0x9c(%ebp)
404dcb:	8b 4e 0c             	mov    0xc(%esi),%ecx
404dce:	66 39 11             	cmp    %dx,(%ecx)
404dd1:	75 09                	jne    0x404ddc
404dd3:	83 8d 68 ff ff ff ff 	orl    $0xffffffff,-0x98(%ebp)
404dda:	eb 0b                	jmp    0x404de7
404ddc:	e8 95 ee ff ff       	call   0x403c76
404de1:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
404de7:	8b 4e 10             	mov    0x10(%esi),%ecx
404dea:	e8 87 ee ff ff       	call   0x403c76
404def:	51                   	push   %ecx
404df0:	8b 4e 14             	mov    0x14(%esi),%ecx
404df3:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
404df9:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
404dff:	89 bd 6c ff ff ff    	mov    %edi,-0x94(%ebp)
404e05:	e8 c8 e1 ff ff       	call   0x402fd2
404e0a:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
404e10:	8b f0                	mov    %eax,%esi
404e12:	85 db                	test   %ebx,%ebx
404e14:	0f 84 24 01 00 00    	je     0x404f3e
404e1a:	85 f6                	test   %esi,%esi
404e1c:	75 68                	jne    0x404e86
404e1e:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404e24:	3c 01                	cmp    $0x1,%al
404e26:	74 65                	je     0x404e8d
404e28:	76 48                	jbe    0x404e72
404e2a:	3c 03                	cmp    $0x3,%al
404e2c:	76 34                	jbe    0x404e62
404e2e:	3c 05                	cmp    $0x5,%al
404e30:	75 40                	jne    0x404e72
404e32:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
404e38:	c7 85 70 ff ff ff 04 	movl   $0x4,-0x90(%ebp)
404e3f:	00 00 00
404e42:	50                   	push   %eax
404e43:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
404e49:	50                   	push   %eax
404e4a:	57                   	push   %edi
404e4b:	6a 17                	push   $0x17
404e4d:	53                   	push   %ebx
404e4e:	ff 15 c0 f0 40 00    	call   *0x40f0c0
404e54:	8b f0                	mov    %eax,%esi
404e56:	85 f6                	test   %esi,%esi
404e58:	75 25                	jne    0x404e7f
404e5a:	6a 10                	push   $0x10
404e5c:	8d 5d 80             	lea    -0x80(%ebp),%ebx
404e5f:	5e                   	pop    %esi
404e60:	eb 72                	jmp    0x404ed4
404e62:	8b f3                	mov    %ebx,%esi
404e64:	8d 4e 01             	lea    0x1(%esi),%ecx
404e67:	8a 06                	mov    (%esi),%al
404e69:	46                   	inc    %esi
404e6a:	84 c0                	test   %al,%al
404e6c:	75 f9                	jne    0x404e67
404e6e:	2b f1                	sub    %ecx,%esi
404e70:	eb 62                	jmp    0x404ed4
404e72:	68 5a 04 00 00       	push   $0x45a
404e77:	e8 13 db ff ff       	call   0x40298f
404e7c:	59                   	pop    %ecx
404e7d:	8b f7                	mov    %edi,%esi
404e7f:	53                   	push   %ebx
404e80:	ff 15 b0 f0 40 00    	call   *0x40f0b0
404e86:	8b c6                	mov    %esi,%eax
404e88:	e9 bd 00 00 00       	jmp    0x404f4a
404e8d:	6a 04                	push   $0x4
404e8f:	5e                   	pop    %esi
404e90:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
404e96:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
404e9c:	50                   	push   %eax
404e9d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
404ea3:	50                   	push   %eax
404ea4:	57                   	push   %edi
404ea5:	6a 02                	push   $0x2
404ea7:	53                   	push   %ebx
404ea8:	ff 15 c0 f0 40 00    	call   *0x40f0c0
404eae:	8b f8                	mov    %eax,%edi
404eb0:	85 ff                	test   %edi,%edi
404eb2:	74 0e                	je     0x404ec2
404eb4:	53                   	push   %ebx
404eb5:	ff 15 b0 f0 40 00    	call   *0x40f0b0
404ebb:	8b c7                	mov    %edi,%eax
404ebd:	e9 88 00 00 00       	jmp    0x404f4a
404ec2:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
404ec8:	8d 9d 60 ff ff ff    	lea    -0xa0(%ebp),%ebx
404ece:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
404ed4:	6a 0a                	push   $0xa
404ed6:	59                   	pop    %ecx
404ed7:	33 c0                	xor    %eax,%eax
404ed9:	8d bd 38 ff ff ff    	lea    -0xc8(%ebp),%edi
404edf:	f3 ab                	rep stos %eax,%es:(%edi)
404ee1:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404ee7:	88 85 48 ff ff ff    	mov    %al,-0xb8(%ebp)
404eed:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
404ef3:	50                   	push   %eax
404ef4:	6a 00                	push   $0x0
404ef6:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
404efc:	c7 85 38 ff ff ff 01 	movl   $0x1,-0xc8(%ebp)
404f03:	00 00 00
404f06:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
404f0c:	89 b5 4c ff ff ff    	mov    %esi,-0xb4(%ebp)
404f12:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
404f18:	ff 15 7c f0 40 00    	call   *0x40f07c
404f1e:	8b f0                	mov    %eax,%esi
404f20:	85 f6                	test   %esi,%esi
404f22:	0f 85 5e ff ff ff    	jne    0x404e86
404f28:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
404f2e:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
404f34:	e8 52 e1 ff ff       	call   0x40308b
404f39:	e9 48 ff ff ff       	jmp    0x404e86
404f3e:	6a 2a                	push   $0x2a
404f40:	5a                   	pop    %edx
404f41:	8b ca                	mov    %edx,%ecx
404f43:	e8 17 db ff ff       	call   0x402a5f
404f48:	33 c0                	xor    %eax,%eax
404f4a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404f4d:	5f                   	pop    %edi
404f4e:	5e                   	pop    %esi
404f4f:	33 cd                	xor    %ebp,%ecx
404f51:	5b                   	pop    %ebx
404f52:	e8 79 3b 00 00       	call   0x408ad0
404f57:	c9                   	leave
404f58:	c3                   	ret
404f59:	8b ff                	mov    %edi,%edi
404f5b:	55                   	push   %ebp
404f5c:	8b ec                	mov    %esp,%ebp
404f5e:	81 ec dc 00 00 00    	sub    $0xdc,%esp
404f64:	a1 04 a0 40 00       	mov    0x40a004,%eax
404f69:	33 c5                	xor    %ebp,%eax
404f6b:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f6e:	53                   	push   %ebx
404f6f:	8b da                	mov    %edx,%ebx
404f71:	56                   	push   %esi
404f72:	57                   	push   %edi
404f73:	83 f9 09             	cmp    $0x9,%ecx
404f76:	74 0f                	je     0x404f87
404f78:	6a 1e                	push   $0x1e
404f7a:	59                   	pop    %ecx
404f7b:	e8 df da ff ff       	call   0x402a5f
404f80:	33 c0                	xor    %eax,%eax
404f82:	e9 42 02 00 00       	jmp    0x4051c9
404f87:	8b 43 08             	mov    0x8(%ebx),%eax
404f8a:	6a 2a                	push   $0x2a
404f8c:	5a                   	pop    %edx
404f8d:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
404f93:	66 39 10             	cmp    %dx,(%eax)
404f96:	75 07                	jne    0x404f9f
404f98:	83 a5 5c ff ff ff 00 	andl   $0x0,-0xa4(%ebp)
404f9f:	8b 4b 0c             	mov    0xc(%ebx),%ecx
404fa2:	66 39 11             	cmp    %dx,(%ecx)
404fa5:	75 09                	jne    0x404fb0
404fa7:	83 8d 60 ff ff ff ff 	orl    $0xffffffff,-0xa0(%ebp)
404fae:	eb 0b                	jmp    0x404fbb
404fb0:	e8 c1 ec ff ff       	call   0x403c76
404fb5:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
404fbb:	8b 4b 10             	mov    0x10(%ebx),%ecx
404fbe:	e8 b3 ec ff ff       	call   0x403c76
404fc3:	8b 4b 14             	mov    0x14(%ebx),%ecx
404fc6:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
404fcc:	e8 a5 ec ff ff       	call   0x403c76
404fd1:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
404fd8:	8d 95 70 ff ff ff    	lea    -0x90(%ebp),%edx
404fde:	51                   	push   %ecx
404fdf:	8b 4b 18             	mov    0x18(%ebx),%ecx
404fe2:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
404fe8:	e8 e5 df ff ff       	call   0x402fd2
404fed:	8b f8                	mov    %eax,%edi
404fef:	85 ff                	test   %edi,%edi
404ff1:	0f 85 d0 01 00 00    	jne    0x4051c7
404ff7:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404ffd:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
405003:	3c 01                	cmp    $0x1,%al
405005:	74 73                	je     0x40507a
405007:	76 5f                	jbe    0x405068
405009:	3c 03                	cmp    $0x3,%al
40500b:	76 3d                	jbe    0x40504a
40500d:	3c 05                	cmp    $0x5,%al
40500f:	75 57                	jne    0x405068
405011:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
405017:	c7 85 68 ff ff ff 04 	movl   $0x4,-0x98(%ebp)
40501e:	00 00 00
405021:	50                   	push   %eax
405022:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405028:	50                   	push   %eax
405029:	57                   	push   %edi
40502a:	6a 17                	push   $0x17
40502c:	56                   	push   %esi
40502d:	ff 15 c0 f0 40 00    	call   *0x40f0c0