40fcdc:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fce1:	33 c5                	xor    %ebp,%eax
40fce3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fce6:	56                   	push   %esi
40fce7:	57                   	push   %edi
40fce8:	8b 7d 08             	mov    0x8(%ebp),%edi
40fceb:	e8 51 ad ff ff       	call   0x40aa41
40fcf0:	8b f0                	mov    %eax,%esi
40fcf2:	8b d7                	mov    %edi,%edx
40fcf4:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40fcfa:	e8 86 ff ff ff       	call   0x40fc85
40fcff:	8b f8                	mov    %eax,%edi
40fd01:	6a 78                	push   $0x78
40fd03:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd06:	50                   	push   %eax
40fd07:	8b 46 14             	mov    0x14(%esi),%eax
40fd0a:	f7 d8                	neg    %eax
40fd0c:	1b c0                	sbb    %eax,%eax
40fd0e:	25 05 f0 ff ff       	and    $0xfffff005,%eax
40fd13:	05 02 10 00 00       	add    $0x1002,%eax
40fd18:	50                   	push   %eax
40fd19:	57                   	push   %edi
40fd1a:	ff 15 50 a1 41 00    	call   *0x41a150
40fd20:	85 c0                	test   %eax,%eax
40fd22:	75 06                	jne    0x40fd2a
40fd24:	21 46 08             	and    %eax,0x8(%esi)
40fd27:	40                   	inc    %eax
40fd28:	eb 32                	jmp    0x40fd5c
40fd2a:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd2d:	50                   	push   %eax
40fd2e:	ff 76 04             	push   0x4(%esi)
40fd31:	e8 42 5d 00 00       	call   0x415a78
40fd36:	59                   	pop    %ecx
40fd37:	59                   	pop    %ecx
40fd38:	85 c0                	test   %eax,%eax
40fd3a:	75 15                	jne    0x40fd51
40fd3c:	57                   	push   %edi
40fd3d:	e8 1f ff ff ff       	call   0x40fc61
40fd42:	59                   	pop    %ecx
40fd43:	85 c0                	test   %eax,%eax
40fd45:	74 0a                	je     0x40fd51
40fd47:	83 4e 08 04          	orl    $0x4,0x8(%esi)
40fd4b:	89 7e 1c             	mov    %edi,0x1c(%esi)
40fd4e:	89 7e 18             	mov    %edi,0x18(%esi)
40fd51:	8b 46 08             	mov    0x8(%esi),%eax
40fd54:	c1 e8 02             	shr    $0x2,%eax
40fd57:	f7 d0                	not    %eax
40fd59:	83 e0 01             	and    $0x1,%eax
40fd5c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd5f:	5f                   	pop    %edi
40fd60:	33 cd                	xor    %ebp,%ecx
40fd62:	5e                   	pop    %esi
40fd63:	e8 be 68 ff ff       	call   0x406626
40fd68:	c9                   	leave
40fd69:	c2 04 00             	ret    $0x4
40fd6c:	8b ff                	mov    %edi,%edi
40fd6e:	55                   	push   %ebp
40fd6f:	8b ec                	mov    %esp,%ebp
40fd71:	83 ec 7c             	sub    $0x7c,%esp
40fd74:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fd79:	33 c5                	xor    %ebp,%eax
40fd7b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd7e:	56                   	push   %esi
40fd7f:	6a 78                	push   $0x78
40fd81:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd84:	50                   	push   %eax
40fd85:	8b 45 08             	mov    0x8(%ebp),%eax
40fd88:	25 ff 03 00 00       	and    $0x3ff,%eax
40fd8d:	6a 01                	push   $0x1
40fd8f:	0d 00 04 00 00       	or     $0x400,%eax
40fd94:	50                   	push   %eax
40fd95:	8b f1                	mov    %ecx,%esi
40fd97:	ff 15 50 a1 41 00    	call   *0x41a150
40fd9d:	85 c0                	test   %eax,%eax
40fd9f:	75 04                	jne    0x40fda5
40fda1:	33 c0                	xor    %eax,%eax
40fda3:	eb 2e                	jmp    0x40fdd3
40fda5:	8d 55 84             	lea    -0x7c(%ebp),%edx
40fda8:	e8 d8 fe ff ff       	call   0x40fc85
40fdad:	39 45 08             	cmp    %eax,0x8(%ebp)
40fdb0:	74 1e                	je     0x40fdd0
40fdb2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40fdb6:	74 18                	je     0x40fdd0
40fdb8:	8b 36                	mov    (%esi),%esi
40fdba:	57                   	push   %edi
40fdbb:	8b d6                	mov    %esi,%edx
40fdbd:	e8 f7 fe ff ff       	call   0x40fcb9
40fdc2:	56                   	push   %esi
40fdc3:	8b f8                	mov    %eax,%edi
40fdc5:	e8 96 61 ff ff       	call   0x405f60
40fdca:	59                   	pop    %ecx
40fdcb:	3b f8                	cmp    %eax,%edi
40fdcd:	5f                   	pop    %edi
40fdce:	74 d1                	je     0x40fda1
40fdd0:	33 c0                	xor    %eax,%eax
40fdd2:	40                   	inc    %eax
40fdd3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fdd6:	33 cd                	xor    %ebp,%ecx
40fdd8:	5e                   	pop    %esi
40fdd9:	e8 48 68 ff ff       	call   0x406626
40fdde:	c9                   	leave
40fddf:	c3                   	ret
40fde0:	8b ff                	mov    %edi,%edi
40fde2:	55                   	push   %ebp
40fde3:	8b ec                	mov    %esp,%ebp
40fde5:	83 ec 7c             	sub    $0x7c,%esp
40fde8:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fded:	33 c5                	xor    %ebp,%eax
40fdef:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fdf2:	53                   	push   %ebx
40fdf3:	56                   	push   %esi
40fdf4:	57                   	push   %edi
40fdf5:	8b 7d 08             	mov    0x8(%ebp),%edi
40fdf8:	e8 44 ac ff ff       	call   0x40aa41
40fdfd:	8b f0                	mov    %eax,%esi
40fdff:	8b d7                	mov    %edi,%edx
40fe01:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40fe07:	e8 79 fe ff ff       	call   0x40fc85
40fe0c:	8b 1d 50 a1 41 00    	mov    0x41a150,%ebx
40fe12:	8b f8                	mov    %eax,%edi
40fe14:	6a 78                	push   $0x78
40fe16:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe19:	50                   	push   %eax
40fe1a:	8b 46 14             	mov    0x14(%esi),%eax
40fe1d:	f7 d8                	neg    %eax
40fe1f:	1b c0                	sbb    %eax,%eax
40fe21:	25 05 f0 ff ff       	and    $0xfffff005,%eax
40fe26:	05 02 10 00 00       	add    $0x1002,%eax
40fe2b:	50                   	push   %eax
40fe2c:	57                   	push   %edi
40fe2d:	ff d3                	call   *%ebx
40fe2f:	85 c0                	test   %eax,%eax
40fe31:	75 0c                	jne    0x40fe3f
40fe33:	83 66 08 00          	andl   $0x0,0x8(%esi)
40fe37:	33 c0                	xor    %eax,%eax
40fe39:	40                   	inc    %eax
40fe3a:	e9 62 01 00 00       	jmp    0x40ffa1
40fe3f:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe42:	50                   	push   %eax
40fe43:	ff 76 04             	push   0x4(%esi)
40fe46:	e8 2d 5c 00 00       	call   0x415a78
40fe4b:	59                   	pop    %ecx
40fe4c:	59                   	pop    %ecx
40fe4d:	85 c0                	test   %eax,%eax
40fe4f:	0f 85 91 00 00 00    	jne    0x40fee6
40fe55:	6a 78                	push   $0x78
40fe57:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe5a:	50                   	push   %eax
40fe5b:	8b 46 10             	mov    0x10(%esi),%eax
40fe5e:	f7 d8                	neg    %eax
40fe60:	1b c0                	sbb    %eax,%eax
40fe62:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40fe67:	05 01 10 00 00       	add    $0x1001,%eax
40fe6c:	50                   	push   %eax
40fe6d:	57                   	push   %edi
40fe6e:	ff d3                	call   *%ebx
40fe70:	85 c0                	test   %eax,%eax
40fe72:	74 bf                	je     0x40fe33
40fe74:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe77:	50                   	push   %eax
40fe78:	ff 36                	push   (%esi)
40fe7a:	e8 f9 5b 00 00       	call   0x415a78
40fe7f:	59                   	pop    %ecx
40fe80:	59                   	pop    %ecx
40fe81:	85 c0                	test   %eax,%eax
40fe83:	75 0c                	jne    0x40fe91
40fe85:	81 4e 08 04 03 00 00 	orl    $0x304,0x8(%esi)
40fe8c:	89 7e 18             	mov    %edi,0x18(%esi)
40fe8f:	eb 52                	jmp    0x40fee3
40fe91:	f6 46 08 02          	testb  $0x2,0x8(%esi)
40fe95:	75 4f                	jne    0x40fee6
40fe97:	8b 46 0c             	mov    0xc(%esi),%eax
40fe9a:	85 c0                	test   %eax,%eax
40fe9c:	74 2c                	je     0x40feca
40fe9e:	50                   	push   %eax
40fe9f:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fea2:	50                   	push   %eax
40fea3:	ff 36                	push   (%esi)
40fea5:	e8 28 5d 00 00       	call   0x415bd2
40feaa:	83 c4 0c             	add    $0xc,%esp
40fead:	85 c0                	test   %eax,%eax
40feaf:	75 19                	jne    0x40feca
40feb1:	ff 36                	push   (%esi)
40feb3:	83 4e 08 02          	orl    $0x2,0x8(%esi)
40feb7:	89 7e 1c             	mov    %edi,0x1c(%esi)
40feba:	e8 a1 60 ff ff       	call   0x405f60
40febf:	59                   	pop    %ecx
40fec0:	3b 46 0c             	cmp    0xc(%esi),%eax
40fec3:	75 21                	jne    0x40fee6
40fec5:	89 7e 18             	mov    %edi,0x18(%esi)
40fec8:	eb 1c                	jmp    0x40fee6
40feca:	8b 56 08             	mov    0x8(%esi),%edx
40fecd:	f6 c2 01             	test   $0x1,%dl
40fed0:	75 14                	jne    0x40fee6
40fed2:	57                   	push   %edi
40fed3:	e8 89 fd ff ff       	call   0x40fc61
40fed8:	59                   	pop    %ecx
40fed9:	85 c0                	test   %eax,%eax
40fedb:	74 09                	je     0x40fee6
40fedd:	83 ca 01             	or     $0x1,%edx
40fee0:	89 56 08             	mov    %edx,0x8(%esi)
40fee3:	89 7e 1c             	mov    %edi,0x1c(%esi)
40fee6:	8b 4e 08             	mov    0x8(%esi),%ecx
40fee9:	b8 00 03 00 00       	mov    $0x300,%eax
40feee:	23 c8                	and    %eax,%ecx
40fef0:	3b c8                	cmp    %eax,%ecx
40fef2:	0f 84 9e 00 00 00    	je     0x40ff96
40fef8:	6a 78                	push   $0x78
40fefa:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fefd:	50                   	push   %eax
40fefe:	8b 46 10             	mov    0x10(%esi),%eax
40ff01:	f7 d8                	neg    %eax
40ff03:	1b c0                	sbb    %eax,%eax
40ff05:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40ff0a:	05 01 10 00 00       	add    $0x1001,%eax
40ff0f:	50                   	push   %eax
40ff10:	57                   	push   %edi
40ff11:	ff d3                	call   *%ebx
40ff13:	85 c0                	test   %eax,%eax
40ff15:	0f 84 18 ff ff ff    	je     0x40fe33
40ff1b:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ff1e:	50                   	push   %eax
40ff1f:	ff 36                	push   (%esi)
40ff21:	e8 52 5b 00 00       	call   0x415a78
40ff26:	59                   	pop    %ecx
40ff27:	33 db                	xor    %ebx,%ebx
40ff29:	59                   	pop    %ecx
40ff2a:	85 c0                	test   %eax,%eax
40ff2c:	75 2f                	jne    0x40ff5d
40ff2e:	81 4e 08 00 02 00 00 	orl    $0x200,0x8(%esi)
40ff35:	8b 46 08             	mov    0x8(%esi),%eax
40ff38:	39 5e 10             	cmp    %ebx,0x10(%esi)
40ff3b:	74 0a                	je     0x40ff47
40ff3d:	0d 00 01 00 00       	or     $0x100,%eax
40ff42:	89 46 08             	mov    %eax,0x8(%esi)
40ff45:	eb 47                	jmp    0x40ff8e
40ff47:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40ff4a:	74 3b                	je     0x40ff87
40ff4c:	ff 36                	push   (%esi)
40ff4e:	e8 0d 60 ff ff       	call   0x405f60
40ff53:	59                   	pop    %ecx
40ff54:	3b 46 0c             	cmp    0xc(%esi),%eax
40ff57:	75 2e                	jne    0x40ff87
40ff59:	6a 01                	push   $0x1
40ff5b:	eb 1c                	jmp    0x40ff79
40ff5d:	39 5e 10             	cmp    %ebx,0x10(%esi)
40ff60:	75 34                	jne    0x40ff96
40ff62:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40ff65:	74 2f                	je     0x40ff96
40ff67:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ff6a:	50                   	push   %eax
40ff6b:	ff 36                	push   (%esi)
40ff6d:	e8 06 5b 00 00       	call   0x415a78
40ff72:	59                   	pop    %ecx
40ff73:	59                   	pop    %ecx
40ff74:	85 c0                	test   %eax,%eax
40ff76:	75 1e                	jne    0x40ff96
40ff78:	53                   	push   %ebx
40ff79:	57                   	push   %edi
40ff7a:	8b ce                	mov    %esi,%ecx
40ff7c:	e8 eb fd ff ff       	call   0x40fd6c
40ff81:	59                   	pop    %ecx
40ff82:	59                   	pop    %ecx
40ff83:	85 c0                	test   %eax,%eax
40ff85:	74 0f                	je     0x40ff96
40ff87:	81 4e 08 00 01 00 00 	orl    $0x100,0x8(%esi)
40ff8e:	39 5e 18             	cmp    %ebx,0x18(%esi)
40ff91:	75 03                	jne    0x40ff96
40ff93:	89 7e 18             	mov    %edi,0x18(%esi)
40ff96:	8b 46 08             	mov    0x8(%esi),%eax
40ff99:	c1 e8 02             	shr    $0x2,%eax
40ff9c:	f7 d0                	not    %eax
40ff9e:	83 e0 01             	and    $0x1,%eax
40ffa1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ffa4:	5f                   	pop    %edi
40ffa5:	5e                   	pop    %esi
40ffa6:	33 cd                	xor    %ebp,%ecx
40ffa8:	5b                   	pop    %ebx
40ffa9:	e8 78 66 ff ff       	call   0x406626
40ffae:	c9                   	leave
40ffaf:	c2 04 00             	ret    $0x4
40ffb2:	8b ff                	mov    %edi,%edi
40ffb4:	55                   	push   %ebp
40ffb5:	8b ec                	mov    %esp,%ebp
40ffb7:	83 ec 7c             	sub    $0x7c,%esp
40ffba:	a1 68 b2 42 00       	mov    0x42b268,%eax
40ffbf:	33 c5                	xor    %ebp,%eax
40ffc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ffc4:	56                   	push   %esi
40ffc5:	57                   	push   %edi
40ffc6:	8b 7d 08             	mov    0x8(%ebp),%edi
40ffc9:	e8 73 aa ff ff       	call   0x40aa41
40ffce:	8b f0                	mov    %eax,%esi
40ffd0:	8b d7                	mov    %edi,%edx
40ffd2:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40ffd8:	e8 a8 fc ff ff       	call   0x40fc85
40ffdd:	8b f8                	mov    %eax,%edi
40ffdf:	6a 78                	push   $0x78
40ffe1:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ffe4:	50                   	push   %eax
40ffe5:	8b 46 10             	mov    0x10(%esi),%eax
40ffe8:	f7 d8                	neg    %eax
40ffea:	1b c0                	sbb    %eax,%eax
40ffec:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40fff1:	05 01 10 00 00       	add    $0x1001,%eax
40fff6:	50                   	push   %eax
40fff7:	57                   	push   %edi
40fff8:	ff 15 50 a1 41 00    	call   *0x41a150
40fffe:	85 c0                	test   %eax,%eax
410000:	75 06                	jne    0x410008
410002:	21 46 08             	and    %eax,0x8(%esi)
410005:	40                   	inc    %eax
410006:	eb 5b                	jmp    0x410063
410008:	8d 45 84             	lea    -0x7c(%ebp),%eax
41000b:	50                   	push   %eax
41000c:	ff 36                	push   (%esi)
41000e:	e8 65 5a 00 00       	call   0x415a78
410013:	59                   	pop    %ecx
410014:	59                   	pop    %ecx
410015:	85 c0                	test   %eax,%eax
410017:	75 09                	jne    0x410022
410019:	39 46 10             	cmp    %eax,0x10(%esi)
41001c:	75 30                	jne    0x41004e
41001e:	6a 01                	push   $0x1
410020:	eb 1e                	jmp    0x410040
410022:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
410026:	75 30                	jne    0x410058
410028:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
41002c:	74 2a                	je     0x410058
41002e:	8d 45 84             	lea    -0x7c(%ebp),%eax
410031:	50                   	push   %eax
410032:	ff 36                	push   (%esi)
410034:	e8 3f 5a 00 00       	call   0x415a78
410039:	59                   	pop    %ecx
41003a:	59                   	pop    %ecx
41003b:	85 c0                	test   %eax,%eax
41003d:	75 19                	jne    0x410058
41003f:	50                   	push   %eax
410040:	57                   	push   %edi
410041:	8b ce                	mov    %esi,%ecx
410043:	e8 24 fd ff ff       	call   0x40fd6c
410048:	59                   	pop    %ecx
410049:	59                   	pop    %ecx
41004a:	85 c0                	test   %eax,%eax
41004c:	74 0a                	je     0x410058
41004e:	83 4e 08 04          	orl    $0x4,0x8(%esi)
410052:	89 7e 18             	mov    %edi,0x18(%esi)
410055:	89 7e 1c             	mov    %edi,0x1c(%esi)
410058:	8b 46 08             	mov    0x8(%esi),%eax
41005b:	c1 e8 02             	shr    $0x2,%eax