402058:	5f                   	pop    %edi
402059:	5e                   	pop    %esi
40205a:	c3                   	ret
40205b:	cc                   	int3
40205c:	cc                   	int3
40205d:	cc                   	int3
40205e:	cc                   	int3
40205f:	cc                   	int3
402060:	57                   	push   %edi
402061:	8b 7c 24 0c          	mov    0xc(%esp),%edi
402065:	8b 07                	mov    (%edi),%eax
402067:	85 c0                	test   %eax,%eax
402069:	75 02                	jne    0x40206d
40206b:	5f                   	pop    %edi
40206c:	c3                   	ret
40206d:	56                   	push   %esi
40206e:	8b 74 24 0c          	mov    0xc(%esp),%esi
402072:	8b 4e 20             	mov    0x20(%esi),%ecx
402075:	51                   	push   %ecx
402076:	50                   	push   %eax
402077:	e8 1b 15 03 00       	call   0x433597
40207c:	83 c4 08             	add    $0x8,%esp
40207f:	85 c0                	test   %eax,%eax
402081:	75 18                	jne    0x40209b
402083:	8b 56 28             	mov    0x28(%esi),%edx
402086:	52                   	push   %edx
402087:	e8 84 ff ff ff       	call   0x402010
40208c:	83 c4 04             	add    $0x4,%esp
40208f:	89 47 04             	mov    %eax,0x4(%edi)
402092:	85 c0                	test   %eax,%eax
402094:	74 05                	je     0x40209b
402096:	5e                   	pop    %esi
402097:	33 c0                	xor    %eax,%eax
402099:	5f                   	pop    %edi
40209a:	c3                   	ret
40209b:	5e                   	pop    %esi
40209c:	b8 01 00 00 00       	mov    $0x1,%eax
4020a1:	5f                   	pop    %edi
4020a2:	c3                   	ret
4020a3:	cc                   	int3
4020a4:	cc                   	int3
4020a5:	cc                   	int3
4020a6:	cc                   	int3
4020a7:	cc                   	int3
4020a8:	cc                   	int3
4020a9:	cc                   	int3
4020aa:	cc                   	int3
4020ab:	cc                   	int3
4020ac:	cc                   	int3
4020ad:	cc                   	int3
4020ae:	cc                   	int3
4020af:	cc                   	int3
4020b0:	83 ec 08             	sub    $0x8,%esp
4020b3:	8b 44 24 0c          	mov    0xc(%esp),%eax
4020b7:	8d 0c 24             	lea    (%esp),%ecx
4020ba:	51                   	push   %ecx
4020bb:	68 60 20 40 00       	push   $0x402060
4020c0:	89 44 24 08          	mov    %eax,0x8(%esp)
4020c4:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
4020cb:	00
4020cc:	e8 ef fa ff ff       	call   0x401bc0
4020d1:	8b 44 24 0c          	mov    0xc(%esp),%eax
4020d5:	83 c4 10             	add    $0x10,%esp
4020d8:	c3                   	ret
4020d9:	cc                   	int3
4020da:	cc                   	int3
4020db:	cc                   	int3
4020dc:	cc                   	int3
4020dd:	cc                   	int3
4020de:	cc                   	int3
4020df:	cc                   	int3
4020e0:	8b 54 24 04          	mov    0x4(%esp),%edx
4020e4:	81 ec 30 08 00 00    	sub    $0x830,%esp
4020ea:	8d 04 24             	lea    (%esp),%eax
4020ed:	50                   	push   %eax
4020ee:	6a 00                	push   $0x0
4020f0:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4020f4:	51                   	push   %ecx
4020f5:	52                   	push   %edx
4020f6:	e8 75 f5 ff ff       	call   0x401670
4020fb:	83 c4 10             	add    $0x10,%esp
4020fe:	85 c0                	test   %eax,%eax
402100:	75 47                	jne    0x402149
402102:	8b 04 24             	mov    (%esp),%eax
402105:	83 f8 02             	cmp    $0x2,%eax
402108:	74 3f                	je     0x402149
40210a:	83 f8 01             	cmp    $0x1,%eax
40210d:	75 09                	jne    0x402118
40210f:	33 c0                	xor    %eax,%eax
402111:	81 c4 30 08 00 00    	add    $0x830,%esp
402117:	c3                   	ret
402118:	85 c0                	test   %eax,%eax
40211a:	75 2d                	jne    0x402149
40211c:	8a 44 24 14          	mov    0x14(%esp),%al
402120:	a8 04                	test   $0x4,%al
402122:	74 0c                	je     0x402130
402124:	b8 04 00 00 00       	mov    $0x4,%eax
402129:	81 c4 30 08 00 00    	add    $0x830,%esp
40212f:	c3                   	ret
402130:	a8 01                	test   $0x1,%al
402132:	74 0c                	je     0x402140
402134:	b8 02 00 00 00       	mov    $0x2,%eax
402139:	81 c4 30 08 00 00    	add    $0x830,%esp
40213f:	c3                   	ret
402140:	a8 02                	test   $0x2,%al
402142:	b8 03 00 00 00       	mov    $0x3,%eax
402147:	75 05                	jne    0x40214e
402149:	b8 01 00 00 00       	mov    $0x1,%eax
40214e:	81 c4 30 08 00 00    	add    $0x830,%esp
402154:	c3                   	ret
402155:	cc                   	int3
402156:	cc                   	int3
402157:	cc                   	int3
402158:	cc                   	int3
402159:	cc                   	int3
40215a:	cc                   	int3
40215b:	cc                   	int3
40215c:	cc                   	int3
40215d:	cc                   	int3
40215e:	cc                   	int3
40215f:	cc                   	int3
402160:	53                   	push   %ebx
402161:	8b 5c 24 10          	mov    0x10(%esp),%ebx
402165:	56                   	push   %esi
402166:	8b 74 24 0c          	mov    0xc(%esp),%esi
40216a:	33 c0                	xor    %eax,%eax
40216c:	57                   	push   %edi
40216d:	8b 7c 24 14          	mov    0x14(%esp),%edi
402171:	85 f6                	test   %esi,%esi
402173:	75 04                	jne    0x402179
402175:	89 03                	mov    %eax,(%ebx)
402177:	eb 0a                	jmp    0x402183
402179:	57                   	push   %edi
40217a:	56                   	push   %esi
40217b:	e8 30 4e 00 00       	call   0x406fb0
402180:	83 c4 08             	add    $0x8,%esp
402183:	8b 4c 24 20          	mov    0x20(%esp),%ecx
402187:	85 c9                	test   %ecx,%ecx
402189:	74 02                	je     0x40218d
40218b:	89 01                	mov    %eax,(%ecx)
40218d:	85 c0                	test   %eax,%eax
40218f:	75 04                	jne    0x402195
402191:	33 f6                	xor    %esi,%esi
402193:	eb 39                	jmp    0x4021ce
402195:	68 e8 be 45 00       	push   $0x45bee8
40219a:	50                   	push   %eax
40219b:	e8 20 40 00 00       	call   0x4061c0
4021a0:	83 c4 08             	add    $0x8,%esp
4021a3:	85 c0                	test   %eax,%eax
4021a5:	75 19                	jne    0x4021c0
4021a7:	68 e8 be 45 00       	push   $0x45bee8
4021ac:	56                   	push   %esi
4021ad:	e8 0e 40 00 00       	call   0x4061c0
4021b2:	83 c4 08             	add    $0x8,%esp
4021b5:	85 c0                	test   %eax,%eax
4021b7:	75 07                	jne    0x4021c0
4021b9:	5f                   	pop    %edi
4021ba:	5e                   	pop    %esi
4021bb:	83 c8 ff             	or     $0xffffffff,%eax
4021be:	5b                   	pop    %ebx
4021bf:	c3                   	ret
4021c0:	50                   	push   %eax
4021c1:	e8 5f e9 02 00       	call   0x430b25
4021c6:	8b f0                	mov    %eax,%esi
4021c8:	83 c4 04             	add    $0x4,%esp
4021cb:	83 e6 01             	and    $0x1,%esi
4021ce:	57                   	push   %edi
4021cf:	e8 0c ff ff ff       	call   0x4020e0
4021d4:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4021d8:	83 c4 04             	add    $0x4,%esp
4021db:	85 c9                	test   %ecx,%ecx
4021dd:	74 02                	je     0x4021e1
4021df:	89 01                	mov    %eax,(%ecx)
4021e1:	83 f8 01             	cmp    $0x1,%eax
4021e4:	75 09                	jne    0x4021ef
4021e6:	5f                   	pop    %edi
4021e7:	5e                   	pop    %esi
4021e8:	b8 f8 ff ff ff       	mov    $0xfffffff8,%eax
4021ed:	5b                   	pop    %ebx
4021ee:	c3                   	ret
4021ef:	85 f6                	test   %esi,%esi
4021f1:	74 0c                	je     0x4021ff
4021f3:	85 c0                	test   %eax,%eax
4021f5:	74 0c                	je     0x402203
4021f7:	5f                   	pop    %edi
4021f8:	33 c0                	xor    %eax,%eax
4021fa:	5e                   	pop    %esi
4021fb:	89 03                	mov    %eax,(%ebx)
4021fd:	5b                   	pop    %ebx
4021fe:	c3                   	ret
4021ff:	85 c0                	test   %eax,%eax
402201:	74 f4                	je     0x4021f7
402203:	5f                   	pop    %edi
402204:	b8 01 00 00 00       	mov    $0x1,%eax
402209:	89 03                	mov    %eax,(%ebx)
40220b:	5e                   	pop    %esi
40220c:	33 c0                	xor    %eax,%eax
40220e:	5b                   	pop    %ebx
40220f:	c3                   	ret
402210:	51                   	push   %ecx
402211:	53                   	push   %ebx
402212:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
402216:	8b 43 28             	mov    0x28(%ebx),%eax
402219:	85 c0                	test   %eax,%eax
40221b:	75 08                	jne    0x402225
40221d:	b8 01 00 00 00       	mov    $0x1,%eax
402222:	5b                   	pop    %ebx
402223:	59                   	pop    %ecx
402224:	c3                   	ret
402225:	56                   	push   %esi
402226:	8b 74 24 14          	mov    0x14(%esp),%esi
40222a:	57                   	push   %edi
40222b:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40222f:	51                   	push   %ecx
402230:	8d 54 24 18          	lea    0x18(%esp),%edx
402234:	52                   	push   %edx
402235:	8b 16                	mov    (%esi),%edx
402237:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40223b:	51                   	push   %ecx
40223c:	50                   	push   %eax
40223d:	52                   	push   %edx
40223e:	e8 1d ff ff ff       	call   0x402160
402243:	8b f8                	mov    %eax,%edi
402245:	83 c4 14             	add    $0x14,%esp
402248:	85 ff                	test   %edi,%edi
40224a:	74 0d                	je     0x402259
40224c:	89 7e 14             	mov    %edi,0x14(%esi)
40224f:	5f                   	pop    %edi
402250:	5e                   	pop    %esi
402251:	b8 01 00 00 00       	mov    $0x1,%eax
402256:	5b                   	pop    %ebx
402257:	59                   	pop    %ecx
402258:	c3                   	ret
402259:	8b 46 20             	mov    0x20(%esi),%eax
40225c:	48                   	dec    %eax
40225d:	83 f8 07             	cmp    $0x7,%eax
402260:	0f 87 41 01 00 00    	ja     0x4023a7
402266:	ff 24 85 b8 23 40 00 	jmp    *0x4023b8(,%eax,4)
40226d:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
402272:	0f 84 25 01 00 00    	je     0x40239d
402278:	5f                   	pop    %edi
402279:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
402280:	5e                   	pop    %esi
402281:	33 c0                	xor    %eax,%eax
402283:	5b                   	pop    %ebx
402284:	59                   	pop    %ecx
402285:	c3                   	ret
402286:	8b 46 1c             	mov    0x1c(%esi),%eax
402289:	85 c0                	test   %eax,%eax
40228b:	0f 84 0c 01 00 00    	je     0x40239d
402291:	8b 4b 20             	mov    0x20(%ebx),%ecx
402294:	51                   	push   %ecx
402295:	50                   	push   %eax
402296:	e8 fc 12 03 00       	call   0x433597
40229b:	83 c4 08             	add    $0x8,%esp
40229e:	85 c0                	test   %eax,%eax
4022a0:	0f 85 f7 00 00 00    	jne    0x40239d
4022a6:	b8 01 00 00 00       	mov    $0x1,%eax
4022ab:	eb 04                	jmp    0x4022b1
4022ad:	8b 44 24 18          	mov    0x18(%esp),%eax
4022b1:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
4022b6:	0f 84 e1 00 00 00    	je     0x40239d
4022bc:	85 c0                	test   %eax,%eax
4022be:	0f 84 d9 00 00 00    	je     0x40239d
4022c4:	8b 56 18             	mov    0x18(%esi),%edx
4022c7:	8b 43 28             	mov    0x28(%ebx),%eax
4022ca:	52                   	push   %edx
4022cb:	6a 01                	push   $0x1
4022cd:	50                   	push   %eax
4022ce:	e8 cd 39 00 00       	call   0x405ca0
4022d3:	83 c4 0c             	add    $0xc,%esp
4022d6:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
4022da:	0f 85 bd 00 00 00    	jne    0x40239d
4022e0:	5f                   	pop    %edi
4022e1:	89 46 10             	mov    %eax,0x10(%esi)
4022e4:	5e                   	pop    %esi
4022e5:	b8 01 00 00 00       	mov    $0x1,%eax
4022ea:	5b                   	pop    %ebx
4022eb:	59                   	pop    %ecx
4022ec:	c3                   	ret
4022ed:	8b 46 1c             	mov    0x1c(%esi),%eax
4022f0:	85 c0                	test   %eax,%eax
4022f2:	0f 84 a5 00 00 00    	je     0x40239d
4022f8:	8b 4b 20             	mov    0x20(%ebx),%ecx
4022fb:	51                   	push   %ecx
4022fc:	50                   	push   %eax
4022fd:	e8 95 12 03 00       	call   0x433597
402302:	83 c4 08             	add    $0x8,%esp
402305:	85 c0                	test   %eax,%eax
402307:	0f 85 90 00 00 00    	jne    0x40239d
40230d:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
402312:	0f 84 85 00 00 00    	je     0x40239d
402318:	83 7e 20 06          	cmpl   $0x6,0x20(%esi)
40231c:	75 14                	jne    0x402332
40231e:	8b 56 18             	mov    0x18(%esi),%edx
402321:	8b 43 28             	mov    0x28(%ebx),%eax
402324:	52                   	push   %edx
402325:	6a 01                	push   $0x1
402327:	50                   	push   %eax
402328:	e8 03 f6 ff ff       	call   0x401930
40232d:	83 c4 0c             	add    $0xc,%esp
402330:	8b f8                	mov    %eax,%edi
402332:	83 7e 20 05          	cmpl   $0x5,0x20(%esi)
402336:	75 14                	jne    0x40234c
402338:	8b 4e 18             	mov    0x18(%esi),%ecx
40233b:	8b 53 28             	mov    0x28(%ebx),%edx
40233e:	51                   	push   %ecx
40233f:	6a 01                	push   $0x1
402341:	52                   	push   %edx
402342:	e8 c9 f5 ff ff       	call   0x401910
402347:	83 c4 0c             	add    $0xc,%esp
40234a:	8b f8                	mov    %eax,%edi
40234c:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
402350:	75 4b                	jne    0x40239d
402352:	89 7e 10             	mov    %edi,0x10(%esi)
402355:	5f                   	pop    %edi
402356:	5e                   	pop    %esi
402357:	b8 01 00 00 00       	mov    $0x1,%eax
40235c:	5b                   	pop    %ebx
40235d:	59                   	pop    %ecx
40235e:	c3                   	ret
40235f:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
402364:	74 37                	je     0x40239d
402366:	8b 46 18             	mov    0x18(%esi),%eax
402369:	8b 4e 24             	mov    0x24(%esi),%ecx
40236c:	50                   	push   %eax
40236d:	8b 46 28             	mov    0x28(%esi),%eax
402370:	99                   	cltd
402371:	52                   	push   %edx
402372:	8b 53 28             	mov    0x28(%ebx),%edx
402375:	50                   	push   %eax
402376:	6a 00                	push   $0x0
402378:	51                   	push   %ecx
402379:	6a 01                	push   $0x1
40237b:	52                   	push   %edx
40237c:	e8 2f 37 00 00       	call   0x405ab0
402381:	83 c4 1c             	add    $0x1c,%esp
402384:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
402388:	75 03                	jne    0x40238d
40238a:	89 46 10             	mov    %eax,0x10(%esi)
40238d:	8b 76 2c             	mov    0x2c(%esi),%esi
402390:	85 f6                	test   %esi,%esi
402392:	74 09                	je     0x40239d
402394:	6a 00                	push   $0x0
402396:	56                   	push   %esi
402397:	ff 15 40 34 47 00    	call   *0x473440
40239d:	5f                   	pop    %edi
40239e:	5e                   	pop    %esi
40239f:	b8 01 00 00 00       	mov    $0x1,%eax
4023a4:	5b                   	pop    %ebx