40abbb:	56                   	push   %esi
40abbc:	e8 fc 09 00 00       	call   0x40b5bd
40abc1:	56                   	push   %esi
40abc2:	e8 cd 07 00 00       	call   0x40b394
40abc7:	56                   	push   %esi
40abc8:	e8 24 6c 00 00       	call   0x4117f1
40abcd:	56                   	push   %esi
40abce:	e8 3b 51 00 00       	call   0x40fd0e
40abd3:	56                   	push   %esi
40abd4:	e8 b2 32 00 00       	call   0x40de8b
40abd9:	83 c4 18             	add    $0x18,%esp
40abdc:	5e                   	pop    %esi
40abdd:	c3                   	ret
40abde:	55                   	push   %ebp
40abdf:	8b ec                	mov    %esp,%ebp
40abe1:	56                   	push   %esi
40abe2:	8b 75 08             	mov    0x8(%ebp),%esi
40abe5:	eb 0b                	jmp    0x40abf2
40abe7:	8b 06                	mov    (%esi),%eax
40abe9:	85 c0                	test   %eax,%eax
40abeb:	74 02                	je     0x40abef
40abed:	ff d0                	call   *%eax
40abef:	83 c6 04             	add    $0x4,%esi
40abf2:	3b 75 0c             	cmp    0xc(%ebp),%esi
40abf5:	72 f0                	jb     0x40abe7
40abf7:	5e                   	pop    %esi
40abf8:	5d                   	pop    %ebp
40abf9:	c3                   	ret
40abfa:	55                   	push   %ebp
40abfb:	8b ec                	mov    %esp,%ebp
40abfd:	56                   	push   %esi
40abfe:	8b 75 08             	mov    0x8(%ebp),%esi
40ac01:	33 c0                	xor    %eax,%eax
40ac03:	eb 0f                	jmp    0x40ac14
40ac05:	85 c0                	test   %eax,%eax
40ac07:	75 10                	jne    0x40ac19
40ac09:	8b 0e                	mov    (%esi),%ecx
40ac0b:	85 c9                	test   %ecx,%ecx
40ac0d:	74 02                	je     0x40ac11
40ac0f:	ff d1                	call   *%ecx
40ac11:	83 c6 04             	add    $0x4,%esi
40ac14:	3b 75 0c             	cmp    0xc(%ebp),%esi
40ac17:	72 ec                	jb     0x40ac05
40ac19:	5e                   	pop    %esi
40ac1a:	5d                   	pop    %ebp
40ac1b:	c3                   	ret
40ac1c:	6a 08                	push   $0x8
40ac1e:	e8 84 d8 ff ff       	call   0x4084a7
40ac23:	59                   	pop    %ecx
40ac24:	c3                   	ret
40ac25:	6a 08                	push   $0x8
40ac27:	e8 df d9 ff ff       	call   0x40860b
40ac2c:	59                   	pop    %ecx
40ac2d:	c3                   	ret
40ac2e:	6a 1c                	push   $0x1c
40ac30:	68 b0 e4 41 00       	push   $0x41e4b0
40ac35:	e8 76 01 00 00       	call   0x40adb0
40ac3a:	6a 08                	push   $0x8
40ac3c:	e8 66 d8 ff ff       	call   0x4084a7
40ac41:	59                   	pop    %ecx
40ac42:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac46:	83 3d d8 20 42 00 01 	cmpl   $0x1,0x4220d8
40ac4d:	0f 84 c9 00 00 00    	je     0x40ad1c
40ac53:	c7 05 00 21 42 00 01 	movl   $0x1,0x422100
40ac5a:	00 00 00
40ac5d:	8a 45 10             	mov    0x10(%ebp),%al
40ac60:	a2 fc 20 42 00       	mov    %al,0x4220fc
40ac65:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40ac69:	0f 85 9c 00 00 00    	jne    0x40ad0b
40ac6f:	ff 35 28 2b 42 00    	push   0x422b28
40ac75:	8b 35 5c 90 41 00    	mov    0x41905c,%esi
40ac7b:	ff d6                	call   *%esi
40ac7d:	8b d8                	mov    %eax,%ebx
40ac7f:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40ac82:	85 db                	test   %ebx,%ebx
40ac84:	74 74                	je     0x40acfa
40ac86:	ff 35 24 2b 42 00    	push   0x422b24
40ac8c:	ff d6                	call   *%esi
40ac8e:	8b f8                	mov    %eax,%edi
40ac90:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ac93:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac96:	89 7d dc             	mov    %edi,-0x24(%ebp)
40ac99:	83 ef 04             	sub    $0x4,%edi
40ac9c:	89 7d dc             	mov    %edi,-0x24(%ebp)
40ac9f:	3b fb                	cmp    %ebx,%edi
40aca1:	72 57                	jb     0x40acfa
40aca3:	6a 00                	push   $0x0
40aca5:	ff 15 58 90 41 00    	call   *0x419058
40acab:	39 07                	cmp    %eax,(%edi)
40acad:	74 ea                	je     0x40ac99
40acaf:	3b fb                	cmp    %ebx,%edi
40acb1:	72 47                	jb     0x40acfa
40acb3:	ff 37                	push   (%edi)
40acb5:	ff d6                	call   *%esi
40acb7:	8b f0                	mov    %eax,%esi
40acb9:	6a 00                	push   $0x0
40acbb:	ff 15 58 90 41 00    	call   *0x419058
40acc1:	89 07                	mov    %eax,(%edi)
40acc3:	ff d6                	call   *%esi
40acc5:	ff 35 28 2b 42 00    	push   0x422b28
40accb:	8b 35 5c 90 41 00    	mov    0x41905c,%esi
40acd1:	ff d6                	call   *%esi
40acd3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40acd6:	ff 35 24 2b 42 00    	push   0x422b24
40acdc:	ff d6                	call   *%esi
40acde:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40ace1:	39 4d e4             	cmp    %ecx,-0x1c(%ebp)
40ace4:	75 05                	jne    0x40aceb
40ace6:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40ace9:	74 ae                	je     0x40ac99
40aceb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40acee:	8b d9                	mov    %ecx,%ebx
40acf0:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40acf3:	89 45 e0             	mov    %eax,-0x20(%ebp)
40acf6:	8b f8                	mov    %eax,%edi
40acf8:	eb 9c                	jmp    0x40ac96
40acfa:	68 ac 91 41 00       	push   $0x4191ac
40acff:	68 9c 91 41 00       	push   $0x41919c
40ad04:	e8 d5 fe ff ff       	call   0x40abde
40ad09:	59                   	pop    %ecx
40ad0a:	59                   	pop    %ecx
40ad0b:	68 b4 91 41 00       	push   $0x4191b4
40ad10:	68 b0 91 41 00       	push   $0x4191b0
40ad15:	e8 c4 fe ff ff       	call   0x40abde
40ad1a:	59                   	pop    %ecx
40ad1b:	59                   	pop    %ecx
40ad1c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad23:	e8 20 00 00 00       	call   0x40ad48
40ad28:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ad2c:	75 29                	jne    0x40ad57
40ad2e:	c7 05 d8 20 42 00 01 	movl   $0x1,0x4220d8
40ad35:	00 00 00
40ad38:	6a 08                	push   $0x8
40ad3a:	e8 cc d8 ff ff       	call   0x40860b
40ad3f:	59                   	pop    %ecx
40ad40:	ff 75 08             	push   0x8(%ebp)
40ad43:	e8 6d fd ff ff       	call   0x40aab5
40ad48:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ad4c:	74 08                	je     0x40ad56
40ad4e:	6a 08                	push   $0x8
40ad50:	e8 b6 d8 ff ff       	call   0x40860b
40ad55:	59                   	pop    %ecx
40ad56:	c3                   	ret
40ad57:	e8 99 00 00 00       	call   0x40adf5
40ad5c:	c3                   	ret
40ad5d:	55                   	push   %ebp
40ad5e:	8b ec                	mov    %esp,%ebp
40ad60:	6a 00                	push   $0x0
40ad62:	6a 00                	push   $0x0
40ad64:	ff 75 08             	push   0x8(%ebp)
40ad67:	e8 c2 fe ff ff       	call   0x40ac2e
40ad6c:	83 c4 0c             	add    $0xc,%esp
40ad6f:	5d                   	pop    %ebp
40ad70:	c3                   	ret
40ad71:	55                   	push   %ebp
40ad72:	8b ec                	mov    %esp,%ebp
40ad74:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ad78:	75 15                	jne    0x40ad8f
40ad7a:	e8 fe d3 ff ff       	call   0x40817d
40ad7f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ad85:	e8 6b 08 00 00       	call   0x40b5f5
40ad8a:	83 c8 ff             	or     $0xffffffff,%eax
40ad8d:	5d                   	pop    %ebp
40ad8e:	c3                   	ret
40ad8f:	ff 75 08             	push   0x8(%ebp)
40ad92:	6a 00                	push   $0x0
40ad94:	ff 35 54 27 42 00    	push   0x422754
40ad9a:	ff 15 a8 90 41 00    	call   *0x4190a8
40ada0:	5d                   	pop    %ebp
40ada1:	c3                   	ret
40ada2:	cc                   	int3
40ada3:	cc                   	int3
40ada4:	cc                   	int3
40ada5:	cc                   	int3
40ada6:	cc                   	int3
40ada7:	cc                   	int3
40ada8:	cc                   	int3
40ada9:	cc                   	int3
40adaa:	cc                   	int3
40adab:	cc                   	int3
40adac:	cc                   	int3
40adad:	cc                   	int3
40adae:	cc                   	int3
40adaf:	cc                   	int3
40adb0:	68 10 ae 40 00       	push   $0x40ae10
40adb5:	64 ff 35 00 00 00 00 	push   %fs:0x0
40adbc:	8b 44 24 10          	mov    0x10(%esp),%eax
40adc0:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40adc4:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40adc8:	2b e0                	sub    %eax,%esp
40adca:	53                   	push   %ebx
40adcb:	56                   	push   %esi
40adcc:	57                   	push   %edi
40adcd:	a1 90 08 42 00       	mov    0x420890,%eax
40add2:	31 45 fc             	xor    %eax,-0x4(%ebp)
40add5:	33 c5                	xor    %ebp,%eax
40add7:	50                   	push   %eax
40add8:	89 65 e8             	mov    %esp,-0x18(%ebp)
40addb:	ff 75 f8             	push   -0x8(%ebp)
40adde:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ade1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ade8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40adeb:	8d 45 f0             	lea    -0x10(%ebp),%eax
40adee:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40adf4:	c3                   	ret
40adf5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40adf8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40adff:	59                   	pop    %ecx
40ae00:	5f                   	pop    %edi
40ae01:	5f                   	pop    %edi
40ae02:	5e                   	pop    %esi
40ae03:	5b                   	pop    %ebx
40ae04:	8b e5                	mov    %ebp,%esp
40ae06:	5d                   	pop    %ebp
40ae07:	51                   	push   %ecx
40ae08:	c3                   	ret
40ae09:	cc                   	int3
40ae0a:	cc                   	int3
40ae0b:	cc                   	int3
40ae0c:	cc                   	int3
40ae0d:	cc                   	int3
40ae0e:	cc                   	int3
40ae0f:	cc                   	int3
40ae10:	55                   	push   %ebp
40ae11:	8b ec                	mov    %esp,%ebp
40ae13:	83 ec 18             	sub    $0x18,%esp
40ae16:	53                   	push   %ebx
40ae17:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ae1a:	56                   	push   %esi
40ae1b:	57                   	push   %edi
40ae1c:	8b 7b 08             	mov    0x8(%ebx),%edi
40ae1f:	33 3d 90 08 42 00    	xor    0x420890,%edi
40ae25:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40ae29:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40ae30:	8b 07                	mov    (%edi),%eax
40ae32:	8d 73 10             	lea    0x10(%ebx),%esi
40ae35:	83 f8 fe             	cmp    $0xfffffffe,%eax
40ae38:	74 0d                	je     0x40ae47
40ae3a:	8b 4f 04             	mov    0x4(%edi),%ecx
40ae3d:	03 ce                	add    %esi,%ecx
40ae3f:	33 0c 30             	xor    (%eax,%esi,1),%ecx
40ae42:	e8 f2 98 ff ff       	call   0x404739
40ae47:	8b 4f 0c             	mov    0xc(%edi),%ecx
40ae4a:	8b 47 08             	mov    0x8(%edi),%eax
40ae4d:	03 ce                	add    %esi,%ecx
40ae4f:	33 0c 30             	xor    (%eax,%esi,1),%ecx
40ae52:	e8 e2 98 ff ff       	call   0x404739
40ae57:	8b 45 08             	mov    0x8(%ebp),%eax
40ae5a:	f6 40 04 66          	testb  $0x66,0x4(%eax)
40ae5e:	0f 85 d0 00 00 00    	jne    0x40af34
40ae64:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ae67:	8b 45 10             	mov    0x10(%ebp),%eax
40ae6a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ae6d:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ae70:	89 43 fc             	mov    %eax,-0x4(%ebx)
40ae73:	8b 43 0c             	mov    0xc(%ebx),%eax
40ae76:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ae79:	83 f8 fe             	cmp    $0xfffffffe,%eax
40ae7c:	0f 84 ee 00 00 00    	je     0x40af70
40ae82:	8d 04 40             	lea    (%eax,%eax,2),%eax
40ae85:	8d 40 04             	lea    0x4(%eax),%eax
40ae88:	8b 4c 87 04          	mov    0x4(%edi,%eax,4),%ecx
40ae8c:	8b 1c 87             	mov    (%edi,%eax,4),%ebx
40ae8f:	8d 04 87             	lea    (%edi,%eax,4),%eax
40ae92:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ae95:	85 c9                	test   %ecx,%ecx
40ae97:	74 7b                	je     0x40af14
40ae99:	8b d6                	mov    %esi,%edx
40ae9b:	e8 52 6a 00 00       	call   0x4118f2
40aea0:	b1 01                	mov    $0x1,%cl
40aea2:	88 4d ff             	mov    %cl,-0x1(%ebp)
40aea5:	85 c0                	test   %eax,%eax
40aea7:	0f 88 7e 00 00 00    	js     0x40af2b
40aead:	7e 68                	jle    0x40af17
40aeaf:	8b 45 08             	mov    0x8(%ebp),%eax
40aeb2:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40aeb8:	75 28                	jne    0x40aee2
40aeba:	83 3d 1c a3 41 00 00 	cmpl   $0x0,0x41a31c
40aec1:	74 1f                	je     0x40aee2
40aec3:	68 1c a3 41 00       	push   $0x41a31c
40aec8:	e8 33 68 00 00       	call   0x411700
40aecd:	83 c4 04             	add    $0x4,%esp
40aed0:	85 c0                	test   %eax,%eax
40aed2:	74 0e                	je     0x40aee2
40aed4:	6a 01                	push   $0x1
40aed6:	ff 75 08             	push   0x8(%ebp)
40aed9:	ff 15 1c a3 41 00    	call   *0x41a31c
40aedf:	83 c4 08             	add    $0x8,%esp
40aee2:	8b 55 08             	mov    0x8(%ebp),%edx
40aee5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40aee8:	e8 35 6a 00 00       	call   0x411922
40aeed:	8b 45 0c             	mov    0xc(%ebp),%eax
40aef0:	8b 55 f8             	mov    -0x8(%ebp),%edx
40aef3:	39 50 0c             	cmp    %edx,0xc(%eax)
40aef6:	74 10                	je     0x40af08
40aef8:	68 90 08 42 00       	push   $0x420890
40aefd:	56                   	push   %esi
40aefe:	8b c8                	mov    %eax,%ecx
40af00:	e8 36 6a 00 00       	call   0x41193b
40af05:	8b 45 0c             	mov    0xc(%ebp),%eax
40af08:	89 58 0c             	mov    %ebx,0xc(%eax)
40af0b:	8b 07                	mov    (%edi),%eax
40af0d:	83 f8 fe             	cmp    $0xfffffffe,%eax
40af10:	74 75                	je     0x40af87
40af12:	eb 66                	jmp    0x40af7a
40af14:	8a 4d ff             	mov    -0x1(%ebp),%cl
40af17:	8b c3                	mov    %ebx,%eax
40af19:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40af1c:	83 fb fe             	cmp    $0xfffffffe,%ebx
40af1f:	0f 85 5d ff ff ff    	jne    0x40ae82
40af25:	84 c9                	test   %cl,%cl
40af27:	74 47                	je     0x40af70
40af29:	eb 21                	jmp    0x40af4c
40af2b:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40af32:	eb 18                	jmp    0x40af4c
40af34:	83 7b 0c fe          	cmpl   $0xfffffffe,0xc(%ebx)
40af38:	74 36                	je     0x40af70
40af3a:	68 90 08 42 00       	push   $0x420890
40af3f:	56                   	push   %esi
40af40:	8b cb                	mov    %ebx,%ecx
40af42:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
40af47:	e8 ef 69 00 00       	call   0x41193b
40af4c:	8b 07                	mov    (%edi),%eax
40af4e:	83 f8 fe             	cmp    $0xfffffffe,%eax
40af51:	74 0d                	je     0x40af60
40af53:	8b 4f 04             	mov    0x4(%edi),%ecx
40af56:	03 ce                	add    %esi,%ecx
40af58:	33 0c 30             	xor    (%eax,%esi,1),%ecx
40af5b:	e8 d9 97 ff ff       	call   0x404739
40af60:	8b 4f 0c             	mov    0xc(%edi),%ecx
40af63:	8b 57 08             	mov    0x8(%edi),%edx
40af66:	03 ce                	add    %esi,%ecx
40af68:	33 0c 32             	xor    (%edx,%esi,1),%ecx
40af6b:	e8 c9 97 ff ff       	call   0x404739
40af70:	8b 45 f4             	mov    -0xc(%ebp),%eax
40af73:	5f                   	pop    %edi
40af74:	5e                   	pop    %esi
40af75:	5b                   	pop    %ebx
40af76:	8b e5                	mov    %ebp,%esp
40af78:	5d                   	pop    %ebp
40af79:	c3                   	ret
40af7a:	8b 4f 04             	mov    0x4(%edi),%ecx
40af7d:	03 ce                	add    %esi,%ecx
40af7f:	33 0c 30             	xor    (%eax,%esi,1),%ecx
40af82:	e8 b2 97 ff ff       	call   0x404739
40af87:	8b 4f 0c             	mov    0xc(%edi),%ecx
40af8a:	8b 47 08             	mov    0x8(%edi),%eax
40af8d:	03 ce                	add    %esi,%ecx
40af8f:	33 0c 30             	xor    (%eax,%esi,1),%ecx
40af92:	e8 a2 97 ff ff       	call   0x404739