46deca:	85 c0                	test   %eax,%eax
46decc:	78 1f                	js     0x46deed
46dece:	8b 47 04             	mov    0x4(%edi),%eax
46ded1:	8b 48 08             	mov    0x8(%eax),%ecx
46ded4:	e8 c3 bd f9 ff       	call   0x409c9c
46ded9:	83 f8 02             	cmp    $0x2,%eax
46dedc:	7f 0f                	jg     0x46deed
46dede:	8b 47 04             	mov    0x4(%edi),%eax
46dee1:	8b 48 08             	mov    0x8(%eax),%ecx
46dee4:	e8 b3 bd f9 ff       	call   0x409c9c
46dee9:	89 44 24 0c          	mov    %eax,0xc(%esp)
46deed:	83 fb 04             	cmp    $0x4,%ebx
46def0:	72 16                	jb     0x46df08
46def2:	8b 4f 04             	mov    0x4(%edi),%ecx
46def5:	8b 49 0c             	mov    0xc(%ecx),%ecx
46def8:	e8 9f bd f9 ff       	call   0x409c9c
46defd:	83 f8 01             	cmp    $0x1,%eax
46df00:	75 06                	jne    0x46df08
46df02:	8a d8                	mov    %al,%bl
46df04:	33 c0                	xor    %eax,%eax
46df06:	eb 04                	jmp    0x46df0c
46df08:	33 c0                	xor    %eax,%eax
46df0a:	8a d8                	mov    %al,%bl
46df0c:	88 5c 24 10          	mov    %bl,0x10(%esp)
46df10:	66 39 06             	cmp    %ax,(%esi)
46df13:	74 2d                	je     0x46df42
46df15:	50                   	push   %eax
46df16:	6a 01                	push   $0x1
46df18:	8d 54 24 38          	lea    0x38(%esp),%edx
46df1c:	8b ce                	mov    %esi,%ecx
46df1e:	e8 7c 79 ff ff       	call   0x46589f
46df23:	59                   	pop    %ecx
46df24:	59                   	pop    %ecx
46df25:	84 c0                	test   %al,%al
46df27:	75 24                	jne    0x46df4d
46df29:	8b 75 0c             	mov    0xc(%ebp),%esi
46df2c:	8b ce                	mov    %esi,%ecx
46df2e:	e8 ed ba f9 ff       	call   0x409a20
46df33:	83 26 00             	andl   $0x0,(%esi)
46df36:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46df3d:	e9 7b 01 00 00       	jmp    0x46e0bd
46df42:	8d 44 24 30          	lea    0x30(%esp),%eax
46df46:	50                   	push   %eax
46df47:	ff 15 58 f2 48 00    	call   *0x48f258
46df4d:	8d 44 24 14          	lea    0x14(%esp),%eax
46df51:	50                   	push   %eax
46df52:	8d 44 24 34          	lea    0x34(%esp),%eax
46df56:	50                   	push   %eax
46df57:	ff 15 b0 f2 48 00    	call   *0x48f2b0
46df5d:	8d 44 24 14          	lea    0x14(%esp),%eax
46df61:	50                   	push   %eax
46df62:	50                   	push   %eax
46df63:	ff 15 b4 f2 48 00    	call   *0x48f2b4
46df69:	8b 47 04             	mov    0x4(%edi),%eax
46df6c:	8b 30                	mov    (%eax),%esi
46df6e:	8b ce                	mov    %esi,%ecx
46df70:	e8 22 ba f9 ff       	call   0x409997
46df75:	8b 4e 08             	mov    0x8(%esi),%ecx
46df78:	8d 54 24 20          	lea    0x20(%esp),%edx
46df7c:	8b 01                	mov    (%ecx),%eax
46df7e:	89 44 24 20          	mov    %eax,0x20(%esp)
46df82:	8b 41 04             	mov    0x4(%ecx),%eax
46df85:	89 44 24 24          	mov    %eax,0x24(%esp)
46df89:	8b 41 08             	mov    0x8(%ecx),%eax
46df8c:	89 44 24 28          	mov    %eax,0x28(%esp)
46df90:	8b 41 0c             	mov    0xc(%ecx),%eax
46df93:	8b ca                	mov    %edx,%ecx
46df95:	89 44 24 2c          	mov    %eax,0x2c(%esp)
46df99:	ff 00                	incl   (%eax)
46df9b:	e8 0e 69 f9 ff       	call   0x4048ae
46dfa0:	8d 84 24 40 02 00 00 	lea    0x240(%esp),%eax
46dfa7:	50                   	push   %eax
46dfa8:	8d 44 24 44          	lea    0x44(%esp),%eax
46dfac:	50                   	push   %eax
46dfad:	8d 84 24 48 04 00 00 	lea    0x448(%esp),%eax
46dfb4:	50                   	push   %eax
46dfb5:	8d 84 24 4c 06 01 00 	lea    0x1064c(%esp),%eax
46dfbc:	50                   	push   %eax
46dfbd:	ff 74 24 30          	push   0x30(%esp)
46dfc1:	e8 68 63 fb ff       	call   0x42432e
46dfc6:	83 c4 14             	add    $0x14,%esp
46dfc9:	8d 84 24 40 04 00 00 	lea    0x440(%esp),%eax
46dfd0:	50                   	push   %eax
46dfd1:	8d 84 24 44 06 01 00 	lea    0x10644(%esp),%eax
46dfd8:	50                   	push   %eax
46dfd9:	e8 ef 4f fb ff       	call   0x422fcd
46dfde:	8d 84 24 48 02 00 00 	lea    0x248(%esp),%eax
46dfe5:	50                   	push   %eax
46dfe6:	8d 44 24 4c          	lea    0x4c(%esp),%eax
46dfea:	50                   	push   %eax
46dfeb:	e8 dd 4f fb ff       	call   0x422fcd
46dff0:	83 c4 10             	add    $0x10,%esp
46dff3:	8d 84 24 40 06 00 00 	lea    0x640(%esp),%eax
46dffa:	50                   	push   %eax
46dffb:	68 ff 7f 00 00       	push   $0x7fff
46e000:	ff 15 34 f3 48 00    	call   *0x48f334
46e006:	8b 3d 08 f2 48 00    	mov    0x48f208,%edi
46e00c:	8d 84 24 40 06 01 00 	lea    0x10640(%esp),%eax
46e013:	50                   	push   %eax
46e014:	ff d7                	call   *%edi
46e016:	85 c0                	test   %eax,%eax
46e018:	74 2e                	je     0x46e048
46e01a:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e01e:	e8 b0 6c ff ff       	call   0x464cd3
46e023:	8b 74 24 0c          	mov    0xc(%esp),%esi
46e027:	84 c0                	test   %al,%al
46e029:	74 4f                	je     0x46e07a
46e02b:	56                   	push   %esi
46e02c:	8d 54 24 18          	lea    0x18(%esp),%edx
46e030:	8d 4c 24 44          	lea    0x44(%esp),%ecx
46e034:	e8 88 65 ff ff       	call   0x4645c1
46e039:	59                   	pop    %ecx
46e03a:	84 c0                	test   %al,%al
46e03c:	75 20                	jne    0x46e05e
46e03e:	8d 84 24 40 06 00 00 	lea    0x640(%esp),%eax
46e045:	50                   	push   %eax
46e046:	ff d7                	call   *%edi
46e048:	8b 75 0c             	mov    0xc(%ebp),%esi
46e04b:	8b ce                	mov    %esi,%ecx
46e04d:	e8 ce b9 f9 ff       	call   0x409a20
46e052:	83 26 00             	andl   $0x0,(%esi)
46e055:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46e05c:	eb 56                	jmp    0x46e0b4
46e05e:	84 db                	test   %bl,%bl
46e060:	74 48                	je     0x46e0aa
46e062:	8d 44 24 40          	lea    0x40(%esp),%eax
46e066:	50                   	push   %eax
46e067:	ff d7                	call   *%edi
46e069:	8d 44 24 40          	lea    0x40(%esp),%eax
46e06d:	68 98 a5 4b 00       	push   $0x4ba598
46e072:	50                   	push   %eax
46e073:	e8 84 4f fb ff       	call   0x422ffc
46e078:	59                   	pop    %ecx
46e079:	59                   	pop    %ecx
46e07a:	ff 74 24 10          	push   0x10(%esp)
46e07e:	8b 4c 24 20          	mov    0x20(%esp),%ecx
46e082:	8d 44 24 18          	lea    0x18(%esp),%eax
46e086:	56                   	push   %esi
46e087:	50                   	push   %eax
46e088:	8d 44 24 4c          	lea    0x4c(%esp),%eax
46e08c:	50                   	push   %eax
46e08d:	e8 cb 12 00 00       	call   0x46f35d
46e092:	84 c0                	test   %al,%al
46e094:	75 14                	jne    0x46e0aa
46e096:	8b 75 0c             	mov    0xc(%ebp),%esi
46e099:	8b ce                	mov    %esi,%ecx
46e09b:	e8 80 b9 f9 ff       	call   0x409a20
46e0a0:	83 26 00             	andl   $0x0,(%esi)
46e0a3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46e0aa:	8d 84 24 40 06 00 00 	lea    0x640(%esp),%eax
46e0b1:	50                   	push   %eax
46e0b2:	ff d7                	call   *%edi
46e0b4:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46e0b8:	e8 a7 79 f9 ff       	call   0x405a64
46e0bd:	5f                   	pop    %edi
46e0be:	5e                   	pop    %esi
46e0bf:	33 c0                	xor    %eax,%eax
46e0c1:	5b                   	pop    %ebx
46e0c2:	8b e5                	mov    %ebp,%esp
46e0c4:	5d                   	pop    %ebp
46e0c5:	c2 08 00             	ret    $0x8
46e0c8:	55                   	push   %ebp
46e0c9:	8b ec                	mov    %esp,%ebp
46e0cb:	6a 00                	push   $0x0
46e0cd:	ff 75 0c             	push   0xc(%ebp)
46e0d0:	ff 75 08             	push   0x8(%ebp)
46e0d3:	e8 cd 13 00 00       	call   0x46f4a5
46e0d8:	5d                   	pop    %ebp
46e0d9:	c2 08 00             	ret    $0x8
46e0dc:	55                   	push   %ebp
46e0dd:	8b ec                	mov    %esp,%ebp
46e0df:	6a 01                	push   $0x1
46e0e1:	ff 75 0c             	push   0xc(%ebp)
46e0e4:	ff 75 08             	push   0x8(%ebp)
46e0e7:	e8 b9 13 00 00       	call   0x46f4a5
46e0ec:	5d                   	pop    %ebp
46e0ed:	c2 08 00             	ret    $0x8
46e0f0:	55                   	push   %ebp
46e0f1:	8b ec                	mov    %esp,%ebp
46e0f3:	83 e4 f8             	and    $0xfffffff8,%esp
46e0f6:	83 ec 14             	sub    $0x14,%esp
46e0f9:	8d 4c 24 04          	lea    0x4(%esp),%ecx
46e0fd:	53                   	push   %ebx
46e0fe:	56                   	push   %esi
46e0ff:	57                   	push   %edi
46e100:	e8 c2 96 f9 ff       	call   0x4077c7
46e105:	8b 5d 08             	mov    0x8(%ebp),%ebx
46e108:	8b 43 04             	mov    0x4(%ebx),%eax
46e10b:	8b 30                	mov    (%eax),%esi
46e10d:	8b ce                	mov    %esi,%ecx
46e10f:	e8 83 b8 f9 ff       	call   0x409997
46e114:	8b 4e 08             	mov    0x8(%esi),%ecx
46e117:	8d 54 24 10          	lea    0x10(%esp),%edx
46e11b:	e8 8e 67 f9 ff       	call   0x4048ae
46e120:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46e124:	e8 4a 5d ff ff       	call   0x463e73
46e129:	84 c0                	test   %al,%al
46e12b:	75 12                	jne    0x46e13f
46e12d:	8b 75 0c             	mov    0xc(%ebp),%esi
46e130:	8b ce                	mov    %esi,%ecx
46e132:	e8 e9 b8 f9 ff       	call   0x409a20
46e137:	83 26 00             	andl   $0x0,(%esi)
46e13a:	e9 83 00 00 00       	jmp    0x46e1c2
46e13f:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
46e143:	74 40                	je     0x46e185
46e145:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46e149:	75 11                	jne    0x46e15c
46e14b:	8b 4b 04             	mov    0x4(%ebx),%ecx
46e14e:	6a 29                	push   $0x29
46e150:	8b 49 08             	mov    0x8(%ecx),%ecx
46e153:	e8 56 bc f9 ff       	call   0x409dae
46e158:	84 c0                	test   %al,%al
46e15a:	75 29                	jne    0x46e185
46e15c:	8b 43 04             	mov    0x4(%ebx),%eax
46e15f:	8b 70 08             	mov    0x8(%eax),%esi
46e162:	8b ce                	mov    %esi,%ecx
46e164:	e8 2e b8 f9 ff       	call   0x409997
46e169:	8b 46 08             	mov    0x8(%esi),%eax
46e16c:	8b 38                	mov    (%eax),%edi
46e16e:	8b 43 04             	mov    0x4(%ebx),%eax
46e171:	8b 70 04             	mov    0x4(%eax),%esi
46e174:	8b ce                	mov    %esi,%ecx
46e176:	e8 1c b8 f9 ff       	call   0x409997
46e17b:	ff 74 24 10          	push   0x10(%esp)
46e17f:	33 db                	xor    %ebx,%ebx
46e181:	53                   	push   %ebx
46e182:	57                   	push   %edi
46e183:	eb 15                	jmp    0x46e19a
46e185:	8b 43 04             	mov    0x4(%ebx),%eax
46e188:	8b 70 04             	mov    0x4(%eax),%esi
46e18b:	8b ce                	mov    %esi,%ecx
46e18d:	e8 05 b8 f9 ff       	call   0x409997
46e192:	ff 74 24 10          	push   0x10(%esp)
46e196:	33 db                	xor    %ebx,%ebx
46e198:	53                   	push   %ebx
46e199:	53                   	push   %ebx
46e19a:	8b 46 08             	mov    0x8(%esi),%eax
46e19d:	8b 35 98 f2 48 00    	mov    0x48f298,%esi
46e1a3:	ff 30                	push   (%eax)
46e1a5:	ff d6                	call   *%esi
46e1a7:	85 c0                	test   %eax,%eax
46e1a9:	74 0b                	je     0x46e1b6
46e1ab:	ff 74 24 10          	push   0x10(%esp)
46e1af:	53                   	push   %ebx
46e1b0:	53                   	push   %ebx
46e1b1:	53                   	push   %ebx
46e1b2:	ff d6                	call   *%esi
46e1b4:	eb 13                	jmp    0x46e1c9
46e1b6:	8b 75 0c             	mov    0xc(%ebp),%esi
46e1b9:	8b ce                	mov    %esi,%ecx
46e1bb:	e8 60 b8 f9 ff       	call   0x409a20
46e1c0:	89 1e                	mov    %ebx,(%esi)
46e1c2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46e1c9:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46e1cd:	e8 92 78 f9 ff       	call   0x405a64
46e1d2:	5f                   	pop    %edi
46e1d3:	5e                   	pop    %esi
46e1d4:	33 c0                	xor    %eax,%eax
46e1d6:	5b                   	pop    %ebx
46e1d7:	8b e5                	mov    %ebp,%esp
46e1d9:	5d                   	pop    %ebp
46e1da:	c2 08 00             	ret    $0x8
46e1dd:	55                   	push   %ebp
46e1de:	8b ec                	mov    %esp,%ebp
46e1e0:	83 ec 18             	sub    $0x18,%esp
46e1e3:	53                   	push   %ebx
46e1e4:	56                   	push   %esi
46e1e5:	57                   	push   %edi
46e1e6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e1e9:	e8 d9 95 f9 ff       	call   0x4077c7
46e1ee:	68 fe ff 01 00       	push   $0x1fffe
46e1f3:	e8 fe 2d fb ff       	call   0x420ff6
46e1f8:	59                   	pop    %ecx
46e1f9:	50                   	push   %eax
46e1fa:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46e1fd:	e8 8c 71 f9 ff       	call   0x40538e
46e202:	8b 7d 08             	mov    0x8(%ebp),%edi
46e205:	8b 47 04             	mov    0x4(%edi),%eax
46e208:	8b 30                	mov    (%eax),%esi
46e20a:	8b ce                	mov    %esi,%ecx
46e20c:	e8 86 b7 f9 ff       	call   0x409997
46e211:	8b 4e 08             	mov    0x8(%esi),%ecx
46e214:	8d 55 e8             	lea    -0x18(%ebp),%edx
46e217:	e8 92 66 f9 ff       	call   0x4048ae
46e21c:	8b 47 04             	mov    0x4(%edi),%eax
46e21f:	8b 70 0c             	mov    0xc(%eax),%esi
46e222:	8b ce                	mov    %esi,%ecx
46e224:	e8 6e b7 f9 ff       	call   0x409997
46e229:	8b 46 08             	mov    0x8(%esi),%eax
46e22c:	8b 18                	mov    (%eax),%ebx
46e22e:	8b 47 04             	mov    0x4(%edi),%eax
46e231:	8b 70 08             	mov    0x8(%eax),%esi
46e234:	8b ce                	mov    %esi,%ecx
46e236:	e8 5c b7 f9 ff       	call   0x409997
46e23b:	8b 46 08             	mov    0x8(%esi),%eax
46e23e:	8b 38                	mov    (%eax),%edi
46e240:	8b 45 08             	mov    0x8(%ebp),%eax
46e243:	8b 40 04             	mov    0x4(%eax),%eax
46e246:	8b 70 04             	mov    0x4(%eax),%esi
46e249:	8b ce                	mov    %esi,%ecx
46e24b:	e8 47 b7 f9 ff       	call   0x409997
46e250:	ff 75 e8             	push   -0x18(%ebp)
46e253:	8b 46 08             	mov    0x8(%esi),%eax
46e256:	68 ff ff 00 00       	push   $0xffff
46e25b:	ff 75 f8             	push   -0x8(%ebp)
46e25e:	53                   	push   %ebx
46e25f:	57                   	push   %edi
46e260:	ff 30                	push   (%eax)
46e262:	ff 15 94 f2 48 00    	call   *0x48f294
46e268:	ff 75 f8             	push   -0x8(%ebp)
46e26b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46e26e:	e8 85 b9 f9 ff       	call   0x409bf8
46e273:	8b 45 fc             	mov    -0x4(%ebp),%eax
46e276:	5f                   	pop    %edi
46e277:	5e                   	pop    %esi
46e278:	5b                   	pop    %ebx
46e279:	ff 08                	decl   (%eax)
46e27b:	75 10                	jne    0x46e28d
46e27d:	50                   	push   %eax
46e27e:	e8 e9 2d fb ff       	call   0x42106c
46e283:	ff 75 f8             	push   -0x8(%ebp)
46e286:	e8 e1 2d fb ff       	call   0x42106c
46e28b:	59                   	pop    %ecx
46e28c:	59                   	pop    %ecx
46e28d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e290:	e8 cf 77 f9 ff       	call   0x405a64
46e295:	33 c0                	xor    %eax,%eax
46e297:	8b e5                	mov    %ebp,%esp
46e299:	5d                   	pop    %ebp
46e29a:	c2 08 00             	ret    $0x8
46e29d:	55                   	push   %ebp
46e29e:	8b ec                	mov    %esp,%ebp
46e2a0:	83 e4 f8             	and    $0xfffffff8,%esp
46e2a3:	83 ec 74             	sub    $0x74,%esp
46e2a6:	53                   	push   %ebx
46e2a7:	56                   	push   %esi
46e2a8:	89 4c 24 20          	mov    %ecx,0x20(%esp)
46e2ac:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
46e2b0:	57                   	push   %edi
46e2b1:	e8 11 95 f9 ff       	call   0x4077c7
46e2b6:	8b 7d 08             	mov    0x8(%ebp),%edi
46e2b9:	8b 47 04             	mov    0x4(%edi),%eax
46e2bc:	8b 30                	mov    (%eax),%esi
46e2be:	8b ce                	mov    %esi,%ecx
46e2c0:	e8 d2 b6 f9 ff       	call   0x409997
46e2c5:	8b 4e 08             	mov    0x8(%esi),%ecx
46e2c8:	8d 54 24 50          	lea    0x50(%esp),%edx
46e2cc:	e8 dd 65 f9 ff       	call   0x4048ae
46e2d1:	68 fe ff 00 00       	push   $0xfffe
46e2d6:	e8 1b 2d fb ff       	call   0x420ff6