403218:	8d 78 01             	lea    0x1(%eax),%edi
40321b:	eb 03                	jmp    0x403220
40321d:	8d 49 00             	lea    0x0(%ecx),%ecx
403220:	8a 10                	mov    (%eax),%dl
403222:	40                   	inc    %eax
403223:	84 d2                	test   %dl,%dl
403225:	75 f9                	jne    0x403220
403227:	2b c7                	sub    %edi,%eax
403229:	50                   	push   %eax
40322a:	56                   	push   %esi
40322b:	e8 e0 01 00 00       	call   0x403410
403230:	5f                   	pop    %edi
403231:	5e                   	pop    %esi
403232:	c2 04 00             	ret    $0x4
403235:	cc                   	int3
403236:	cc                   	int3
403237:	cc                   	int3
403238:	cc                   	int3
403239:	cc                   	int3
40323a:	cc                   	int3
40323b:	cc                   	int3
40323c:	cc                   	int3
40323d:	cc                   	int3
40323e:	cc                   	int3
40323f:	cc                   	int3
403240:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
403245:	56                   	push   %esi
403246:	57                   	push   %edi
403247:	8b 7c 24 10          	mov    0x10(%esp),%edi
40324b:	8b f1                	mov    %ecx,%esi
40324d:	74 27                	je     0x403276
40324f:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
403253:	72 21                	jb     0x403276
403255:	8d 46 04             	lea    0x4(%esi),%eax
403258:	53                   	push   %ebx
403259:	8b 18                	mov    (%eax),%ebx
40325b:	85 ff                	test   %edi,%edi
40325d:	76 0d                	jbe    0x40326c
40325f:	57                   	push   %edi
403260:	53                   	push   %ebx
403261:	6a 10                	push   $0x10
403263:	50                   	push   %eax
403264:	e8 2d 22 00 00       	call   0x405496
403269:	83 c4 10             	add    $0x10,%esp
40326c:	53                   	push   %ebx
40326d:	e8 c4 20 00 00       	call   0x405336
403272:	83 c4 04             	add    $0x4,%esp
403275:	5b                   	pop    %ebx
403276:	89 7e 14             	mov    %edi,0x14(%esi)
403279:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
403280:	c6 44 3e 04 00       	movb   $0x0,0x4(%esi,%edi,1)
403285:	5f                   	pop    %edi
403286:	5e                   	pop    %esi
403287:	c2 08 00             	ret    $0x8
40328a:	cc                   	int3
40328b:	cc                   	int3
40328c:	cc                   	int3
40328d:	cc                   	int3
40328e:	cc                   	int3
40328f:	cc                   	int3
403290:	8b 48 20             	mov    0x20(%eax),%ecx
403293:	83 39 00             	cmpl   $0x0,(%ecx)
403296:	74 06                	je     0x40329e
403298:	8b 50 30             	mov    0x30(%eax),%edx
40329b:	8b 02                	mov    (%edx),%eax
40329d:	c3                   	ret
40329e:	33 c0                	xor    %eax,%eax
4032a0:	c3                   	ret
4032a1:	cc                   	int3
4032a2:	cc                   	int3
4032a3:	cc                   	int3
4032a4:	cc                   	int3
4032a5:	cc                   	int3
4032a6:	cc                   	int3
4032a7:	cc                   	int3
4032a8:	cc                   	int3
4032a9:	cc                   	int3
4032aa:	cc                   	int3
4032ab:	cc                   	int3
4032ac:	cc                   	int3
4032ad:	cc                   	int3
4032ae:	cc                   	int3
4032af:	cc                   	int3
4032b0:	8b 48 24             	mov    0x24(%eax),%ecx
4032b3:	83 39 00             	cmpl   $0x0,(%ecx)
4032b6:	74 06                	je     0x4032be
4032b8:	8b 50 34             	mov    0x34(%eax),%edx
4032bb:	8b 02                	mov    (%edx),%eax
4032bd:	c3                   	ret
4032be:	33 c0                	xor    %eax,%eax
4032c0:	c3                   	ret
4032c1:	cc                   	int3
4032c2:	cc                   	int3
4032c3:	cc                   	int3
4032c4:	cc                   	int3
4032c5:	cc                   	int3
4032c6:	cc                   	int3
4032c7:	cc                   	int3
4032c8:	cc                   	int3
4032c9:	cc                   	int3
4032ca:	cc                   	int3
4032cb:	cc                   	int3
4032cc:	cc                   	int3
4032cd:	cc                   	int3
4032ce:	cc                   	int3
4032cf:	cc                   	int3
4032d0:	83 ec 0c             	sub    $0xc,%esp
4032d3:	53                   	push   %ebx
4032d4:	55                   	push   %ebp
4032d5:	56                   	push   %esi
4032d6:	8b f0                	mov    %eax,%esi
4032d8:	8b 5e 10             	mov    0x10(%esi),%ebx
4032db:	57                   	push   %edi
4032dc:	8b 7e 0c             	mov    0xc(%esi),%edi
4032df:	8b cb                	mov    %ebx,%ecx
4032e1:	2b cf                	sub    %edi,%ecx
4032e3:	b8 93 24 49 92       	mov    $0x92492493,%eax
4032e8:	f7 e9                	imul   %ecx
4032ea:	03 d1                	add    %ecx,%edx
4032ec:	c1 fa 04             	sar    $0x4,%edx
4032ef:	8b c2                	mov    %edx,%eax
4032f1:	c1 e8 1f             	shr    $0x1f,%eax
4032f4:	03 c2                	add    %edx,%eax
4032f6:	75 04                	jne    0x4032fc
4032f8:	33 ff                	xor    %edi,%edi
4032fa:	eb 35                	jmp    0x403331
4032fc:	3b fb                	cmp    %ebx,%edi
4032fe:	76 05                	jbe    0x403305
403300:	e8 46 1f 00 00       	call   0x40524b
403305:	8b 4c 24 28          	mov    0x28(%esp),%ecx
403309:	8b 06                	mov    (%esi),%eax
40330b:	85 c9                	test   %ecx,%ecx
40330d:	74 04                	je     0x403313
40330f:	3b c8                	cmp    %eax,%ecx
403311:	74 05                	je     0x403318
403313:	e8 33 1f 00 00       	call   0x40524b
403318:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40331c:	2b cf                	sub    %edi,%ecx
40331e:	b8 93 24 49 92       	mov    $0x92492493,%eax
403323:	f7 e9                	imul   %ecx
403325:	03 d1                	add    %ecx,%edx
403327:	c1 fa 04             	sar    $0x4,%edx
40332a:	8b fa                	mov    %edx,%edi
40332c:	c1 ef 1f             	shr    $0x1f,%edi
40332f:	03 fa                	add    %edx,%edi
403331:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
403335:	8b 54 24 28          	mov    0x28(%esp),%edx
403339:	8b 44 24 24          	mov    0x24(%esp),%eax
40333d:	51                   	push   %ecx
40333e:	52                   	push   %edx
40333f:	50                   	push   %eax
403340:	56                   	push   %esi
403341:	e8 ba 03 00 00       	call   0x403700
403346:	8b 5e 0c             	mov    0xc(%esi),%ebx
403349:	3b 5e 10             	cmp    0x10(%esi),%ebx
40334c:	76 05                	jbe    0x403353
40334e:	e8 f8 1e 00 00       	call   0x40524b
403353:	8b 36                	mov    (%esi),%esi
403355:	8b ee                	mov    %esi,%ebp
403357:	89 5c 24 18          	mov    %ebx,0x18(%esp)
40335b:	85 f6                	test   %esi,%esi
40335d:	75 20                	jne    0x40337f
40335f:	e8 e7 1e 00 00       	call   0x40524b
403364:	33 c0                	xor    %eax,%eax
403366:	8d 0c fd 00 00 00 00 	lea    0x0(,%edi,8),%ecx
40336d:	2b cf                	sub    %edi,%ecx
40336f:	8d 3c 8b             	lea    (%ebx,%ecx,4),%edi
403372:	3b 78 10             	cmp    0x10(%eax),%edi
403375:	77 13                	ja     0x40338a
403377:	85 f6                	test   %esi,%esi
403379:	74 08                	je     0x403383
40337b:	8b 36                	mov    (%esi),%esi
40337d:	eb 06                	jmp    0x403385
40337f:	8b 06                	mov    (%esi),%eax
403381:	eb e3                	jmp    0x403366
403383:	33 f6                	xor    %esi,%esi
403385:	3b 7e 0c             	cmp    0xc(%esi),%edi
403388:	73 05                	jae    0x40338f
40338a:	e8 bc 1e 00 00       	call   0x40524b
40338f:	8b 44 24 20          	mov    0x20(%esp),%eax
403393:	89 78 04             	mov    %edi,0x4(%eax)
403396:	5f                   	pop    %edi
403397:	5e                   	pop    %esi
403398:	89 28                	mov    %ebp,(%eax)
40339a:	5d                   	pop    %ebp
40339b:	5b                   	pop    %ebx
40339c:	83 c4 0c             	add    $0xc,%esp
40339f:	c2 10 00             	ret    $0x10
4033a2:	cc                   	int3
4033a3:	cc                   	int3
4033a4:	cc                   	int3
4033a5:	cc                   	int3
4033a6:	cc                   	int3
4033a7:	cc                   	int3
4033a8:	cc                   	int3
4033a9:	cc                   	int3
4033aa:	cc                   	int3
4033ab:	cc                   	int3
4033ac:	cc                   	int3
4033ad:	cc                   	int3
4033ae:	cc                   	int3
4033af:	cc                   	int3
4033b0:	83 ec 10             	sub    $0x10,%esp
4033b3:	85 c9                	test   %ecx,%ecx
4033b5:	77 12                	ja     0x4033c9
4033b7:	33 c9                	xor    %ecx,%ecx
4033b9:	8d 14 09             	lea    (%ecx,%ecx,1),%edx
4033bc:	52                   	push   %edx
4033bd:	e8 bb 24 00 00       	call   0x40587d
4033c2:	83 c4 04             	add    $0x4,%esp
4033c5:	83 c4 10             	add    $0x10,%esp
4033c8:	c3                   	ret
4033c9:	83 c8 ff             	or     $0xffffffff,%eax
4033cc:	33 d2                	xor    %edx,%edx
4033ce:	f7 f1                	div    %ecx
4033d0:	83 f8 02             	cmp    $0x2,%eax
4033d3:	73 e4                	jae    0x4033b9
4033d5:	8d 04 24             	lea    (%esp),%eax
4033d8:	50                   	push   %eax
4033d9:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4033dd:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
4033e4:	00
4033e5:	e8 b8 1a 00 00       	call   0x404ea2
4033ea:	68 80 9c 42 00       	push   $0x429c80
4033ef:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4033f3:	51                   	push   %ecx
4033f4:	c7 44 24 0c 08 a2 41 	movl   $0x41a208,0xc(%esp)
4033fb:	00
4033fc:	e8 b1 32 00 00       	call   0x4066b2
403401:	cc                   	int3
403402:	cc                   	int3
403403:	cc                   	int3
403404:	cc                   	int3
403405:	cc                   	int3
403406:	cc                   	int3
403407:	cc                   	int3
403408:	cc                   	int3
403409:	cc                   	int3
40340a:	cc                   	int3
40340b:	cc                   	int3
40340c:	cc                   	int3
40340d:	cc                   	int3
40340e:	cc                   	int3
40340f:	cc                   	int3
403410:	55                   	push   %ebp
403411:	8b 6c 24 08          	mov    0x8(%esp),%ebp
403415:	56                   	push   %esi
403416:	57                   	push   %edi
403417:	8b f1                	mov    %ecx,%esi
403419:	85 ed                	test   %ebp,%ebp
40341b:	74 46                	je     0x403463
40341d:	8b 56 18             	mov    0x18(%esi),%edx
403420:	8d 46 04             	lea    0x4(%esi),%eax
403423:	83 fa 10             	cmp    $0x10,%edx
403426:	72 04                	jb     0x40342c
403428:	8b 08                	mov    (%eax),%ecx
40342a:	eb 02                	jmp    0x40342e
40342c:	8b c8                	mov    %eax,%ecx
40342e:	3b e9                	cmp    %ecx,%ebp
403430:	72 31                	jb     0x403463
403432:	83 fa 10             	cmp    $0x10,%edx
403435:	72 04                	jb     0x40343b
403437:	8b 08                	mov    (%eax),%ecx
403439:	eb 02                	jmp    0x40343d
40343b:	8b c8                	mov    %eax,%ecx
40343d:	8b 7e 14             	mov    0x14(%esi),%edi
403440:	03 f9                	add    %ecx,%edi
403442:	3b fd                	cmp    %ebp,%edi
403444:	76 1d                	jbe    0x403463
403446:	83 fa 10             	cmp    $0x10,%edx
403449:	72 02                	jb     0x40344d
40344b:	8b 00                	mov    (%eax),%eax
40344d:	8b 4c 24 14          	mov    0x14(%esp),%ecx
403451:	51                   	push   %ecx
403452:	2b e8                	sub    %eax,%ebp
403454:	55                   	push   %ebp
403455:	56                   	push   %esi
403456:	8b ce                	mov    %esi,%ecx
403458:	e8 d3 fc ff ff       	call   0x403130
40345d:	5f                   	pop    %edi
40345e:	5e                   	pop    %esi
40345f:	5d                   	pop    %ebp
403460:	c2 08 00             	ret    $0x8
403463:	8b 7c 24 14          	mov    0x14(%esp),%edi
403467:	83 ff fe             	cmp    $0xfffffffe,%edi
40346a:	76 05                	jbe    0x403471
40346c:	e8 2b 13 00 00       	call   0x40479c
403471:	8b 46 18             	mov    0x18(%esi),%eax
403474:	3b c7                	cmp    %edi,%eax
403476:	73 20                	jae    0x403498
403478:	8b 56 14             	mov    0x14(%esi),%edx
40347b:	52                   	push   %edx
40347c:	57                   	push   %edi
40347d:	8b ce                	mov    %esi,%ecx
40347f:	e8 7c 06 00 00       	call   0x403b00
403484:	85 ff                	test   %edi,%edi
403486:	76 56                	jbe    0x4034de
403488:	8b 4e 18             	mov    0x18(%esi),%ecx
40348b:	53                   	push   %ebx
40348c:	8d 5e 04             	lea    0x4(%esi),%ebx
40348f:	83 f9 10             	cmp    $0x10,%ecx
403492:	72 2c                	jb     0x4034c0
403494:	8b 03                	mov    (%ebx),%eax
403496:	eb 2a                	jmp    0x4034c2
403498:	85 ff                	test   %edi,%edi
40349a:	75 ea                	jne    0x403486
40349c:	89 7e 14             	mov    %edi,0x14(%esi)
40349f:	83 f8 10             	cmp    $0x10,%eax
4034a2:	72 0e                	jb     0x4034b2
4034a4:	8b 46 04             	mov    0x4(%esi),%eax
4034a7:	5f                   	pop    %edi
4034a8:	c6 00 00             	movb   $0x0,(%eax)
4034ab:	8b c6                	mov    %esi,%eax
4034ad:	5e                   	pop    %esi
4034ae:	5d                   	pop    %ebp
4034af:	c2 08 00             	ret    $0x8
4034b2:	8d 46 04             	lea    0x4(%esi),%eax
4034b5:	5f                   	pop    %edi
4034b6:	c6 00 00             	movb   $0x0,(%eax)
4034b9:	8b c6                	mov    %esi,%eax
4034bb:	5e                   	pop    %esi
4034bc:	5d                   	pop    %ebp
4034bd:	c2 08 00             	ret    $0x8
4034c0:	8b c3                	mov    %ebx,%eax
4034c2:	57                   	push   %edi
4034c3:	55                   	push   %ebp
4034c4:	51                   	push   %ecx
4034c5:	50                   	push   %eax
4034c6:	e8 cb 1f 00 00       	call   0x405496
4034cb:	83 c4 10             	add    $0x10,%esp
4034ce:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
4034d2:	89 7e 14             	mov    %edi,0x14(%esi)
4034d5:	72 02                	jb     0x4034d9
4034d7:	8b 1b                	mov    (%ebx),%ebx
4034d9:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
4034dd:	5b                   	pop    %ebx
4034de:	5f                   	pop    %edi
4034df:	8b c6                	mov    %esi,%eax
4034e1:	5e                   	pop    %esi
4034e2:	5d                   	pop    %ebp
4034e3:	c2 08 00             	ret    $0x8
4034e6:	cc                   	int3
4034e7:	cc                   	int3
4034e8:	cc                   	int3
4034e9:	cc                   	int3
4034ea:	cc                   	int3
4034eb:	cc                   	int3
4034ec:	cc                   	int3
4034ed:	cc                   	int3
4034ee:	cc                   	int3