4351d9:	33 c5                	xor    %ebp,%eax
4351db:	89 45 ec             	mov    %eax,-0x14(%ebp)
4351de:	53                   	push   %ebx
4351df:	56                   	push   %esi
4351e0:	57                   	push   %edi
4351e1:	50                   	push   %eax
4351e2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4351e5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4351eb:	8b f1                	mov    %ecx,%esi
4351ed:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4351f1:	8b c6                	mov    %esi,%eax
4351f3:	72 02                	jb     0x4351f7
4351f5:	8b 06                	mov    (%esi),%eax
4351f7:	50                   	push   %eax
4351f8:	ff 15 bc e1 49 00    	call   *0x49e1bc
4351fe:	83 f8 ff             	cmp    $0xffffffff,%eax
435201:	74 11                	je     0x435214
435203:	a9 00 04 00 00       	test   $0x400,%eax
435208:	74 0a                	je     0x435214
43520a:	b8 01 00 00 00       	mov    $0x1,%eax
43520f:	e9 0a 02 00 00       	jmp    0x43541e
435214:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
435218:	74 50                	je     0x43526a
43521a:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
43521e:	8b c6                	mov    %esi,%eax
435220:	72 02                	jb     0x435224
435222:	8b 06                	mov    (%esi),%eax
435224:	6a 00                	push   $0x0
435226:	68 80 00 00 00       	push   $0x80
43522b:	6a 03                	push   $0x3
43522d:	6a 00                	push   $0x0
43522f:	6a 03                	push   $0x3
435231:	68 00 00 00 c0       	push   $0xc0000000
435236:	50                   	push   %eax
435237:	ff 15 48 e1 49 00    	call   *0x49e148
43523d:	8b f8                	mov    %eax,%edi
43523f:	83 ff ff             	cmp    $0xffffffff,%edi
435242:	74 26                	je     0x43526a
435244:	8d 45 88             	lea    -0x78(%ebp),%eax
435247:	50                   	push   %eax
435248:	57                   	push   %edi
435249:	ff 15 c8 e1 49 00    	call   *0x49e1c8
43524f:	85 c0                	test   %eax,%eax
435251:	74 17                	je     0x43526a
435253:	57                   	push   %edi
435254:	ff 15 64 e0 49 00    	call   *0x49e064
43525a:	83 7d b0 01          	cmpl   $0x1,-0x50(%ebp)
43525e:	76 0a                	jbe    0x43526a
435260:	b8 03 00 00 00       	mov    $0x3,%eax
435265:	e9 b4 01 00 00       	jmp    0x43541e
43526a:	56                   	push   %esi
43526b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
43526e:	e8 fd e2 fc ff       	call   0x403570
435273:	56                   	push   %esi
435274:	8d 4d bc             	lea    -0x44(%ebp),%ecx
435277:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43527e:	e8 ed e2 fc ff       	call   0x403570
435283:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
435286:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
43528a:	e8 41 1e ff ff       	call   0x4270d0
43528f:	84 c0                	test   %al,%al
435291:	0f 84 94 00 00 00    	je     0x43532b
435297:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
43529e:	00 00
4352a0:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
4352a4:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4352a7:	8b 7d d4             	mov    -0x2c(%ebp),%edi
4352aa:	8d 75 bc             	lea    -0x44(%ebp),%esi
4352ad:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4352b0:	0f 43 cf             	cmovae %edi,%ecx
4352b3:	83 7d d0 08          	cmpl   $0x8,-0x30(%ebp)
4352b7:	8b 55 cc             	mov    -0x34(%ebp),%edx
4352ba:	0f 43 f3             	cmovae %ebx,%esi
4352bd:	3b 55 e4             	cmp    -0x1c(%ebp),%edx
4352c0:	75 21                	jne    0x4352e3
4352c2:	85 d2                	test   %edx,%edx
4352c4:	74 6b                	je     0x435331
4352c6:	2b f1                	sub    %ecx,%esi
4352c8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
4352cf:	00
4352d0:	66 8b 04 0e          	mov    (%esi,%ecx,1),%ax
4352d4:	66 3b 01             	cmp    (%ecx),%ax
4352d7:	75 0a                	jne    0x4352e3
4352d9:	83 c1 02             	add    $0x2,%ecx
4352dc:	83 ea 01             	sub    $0x1,%edx
4352df:	75 ef                	jne    0x4352d0
4352e1:	eb 4e                	jmp    0x435331
4352e3:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
4352e7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4352ea:	0f 43 c7             	cmovae %edi,%eax
4352ed:	50                   	push   %eax
4352ee:	ff 15 bc e1 49 00    	call   *0x49e1bc
4352f4:	83 f8 ff             	cmp    $0xffffffff,%eax
4352f7:	74 0b                	je     0x435304
4352f9:	a9 00 04 00 00       	test   $0x400,%eax
4352fe:	0f 85 9e 00 00 00    	jne    0x4353a2
435304:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
435308:	8d 45 d4             	lea    -0x2c(%ebp),%eax
43530b:	ff 75 e4             	push   -0x1c(%ebp)
43530e:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
435312:	8d 4d bc             	lea    -0x44(%ebp),%ecx
435315:	50                   	push   %eax
435316:	e8 e5 da fc ff       	call   0x402e00
43531b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
43531e:	e8 ad 1d ff ff       	call   0x4270d0
435323:	84 c0                	test   %al,%al
435325:	0f 85 75 ff ff ff    	jne    0x4352a0
43532b:	8b 7d d4             	mov    -0x2c(%ebp),%edi
43532e:	8b 5d bc             	mov    -0x44(%ebp),%ebx
435331:	8b 4d d0             	mov    -0x30(%ebp),%ecx
435334:	83 f9 08             	cmp    $0x8,%ecx
435337:	72 32                	jb     0x43536b
435339:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
435340:	8b c3                	mov    %ebx,%eax
435342:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
435348:	72 14                	jb     0x43535e
43534a:	8b 58 fc             	mov    -0x4(%eax),%ebx
43534d:	83 c1 23             	add    $0x23,%ecx
435350:	2b c3                	sub    %ebx,%eax
435352:	83 c0 fc             	add    $0xfffffffc,%eax
435355:	83 f8 1f             	cmp    $0x1f,%eax
435358:	0f 87 dc 00 00 00    	ja     0x43543a
43535e:	51                   	push   %ecx
43535f:	53                   	push   %ebx
435360:	e8 a3 46 03 00       	call   0x469a08
435365:	8b 7d d4             	mov    -0x2c(%ebp),%edi
435368:	83 c4 08             	add    $0x8,%esp
43536b:	8b 45 e8             	mov    -0x18(%ebp),%eax
43536e:	83 f8 08             	cmp    $0x8,%eax
435371:	0f 82 a5 00 00 00    	jb     0x43541c
435377:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
43537e:	8b c7                	mov    %edi,%eax
435380:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
435386:	0f 82 86 00 00 00    	jb     0x435412
43538c:	8b 78 fc             	mov    -0x4(%eax),%edi
43538f:	83 c1 23             	add    $0x23,%ecx
435392:	2b c7                	sub    %edi,%eax
435394:	83 c0 fc             	add    $0xfffffffc,%eax
435397:	83 f8 1f             	cmp    $0x1f,%eax
43539a:	0f 87 9a 00 00 00    	ja     0x43543a
4353a0:	eb 70                	jmp    0x435412
4353a2:	8b 45 d0             	mov    -0x30(%ebp),%eax
4353a5:	83 f8 08             	cmp    $0x8,%eax
4353a8:	72 2b                	jb     0x4353d5
4353aa:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
4353b1:	8b c3                	mov    %ebx,%eax
4353b3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4353b9:	72 10                	jb     0x4353cb
4353bb:	8b 58 fc             	mov    -0x4(%eax),%ebx
4353be:	83 c1 23             	add    $0x23,%ecx
4353c1:	2b c3                	sub    %ebx,%eax
4353c3:	83 c0 fc             	add    $0xfffffffc,%eax
4353c6:	83 f8 1f             	cmp    $0x1f,%eax
4353c9:	77 6f                	ja     0x43543a
4353cb:	51                   	push   %ecx
4353cc:	53                   	push   %ebx
4353cd:	e8 36 46 03 00       	call   0x469a08
4353d2:	83 c4 08             	add    $0x8,%esp
4353d5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4353d8:	83 f9 08             	cmp    $0x8,%ecx
4353db:	72 2e                	jb     0x43540b
4353dd:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4353e0:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4353e7:	8b c2                	mov    %edx,%eax
4353e9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4353ef:	72 10                	jb     0x435401
4353f1:	8b 50 fc             	mov    -0x4(%eax),%edx
4353f4:	83 c1 23             	add    $0x23,%ecx
4353f7:	2b c2                	sub    %edx,%eax
4353f9:	83 c0 fc             	add    $0xfffffffc,%eax
4353fc:	83 f8 1f             	cmp    $0x1f,%eax
4353ff:	77 39                	ja     0x43543a
435401:	51                   	push   %ecx
435402:	52                   	push   %edx
435403:	e8 00 46 03 00       	call   0x469a08
435408:	83 c4 08             	add    $0x8,%esp
43540b:	b8 02 00 00 00       	mov    $0x2,%eax
435410:	eb 0c                	jmp    0x43541e
435412:	51                   	push   %ecx
435413:	57                   	push   %edi
435414:	e8 ef 45 03 00       	call   0x469a08
435419:	83 c4 08             	add    $0x8,%esp
43541c:	33 c0                	xor    %eax,%eax
43541e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
435421:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
435428:	59                   	pop    %ecx
435429:	5f                   	pop    %edi
43542a:	5e                   	pop    %esi
43542b:	5b                   	pop    %ebx
43542c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43542f:	33 cd                	xor    %ebp,%ecx
435431:	e8 94 45 03 00       	call   0x4699ca
435436:	8b e5                	mov    %ebp,%esp
435438:	5d                   	pop    %ebp
435439:	c3                   	ret
43543a:	e8 f2 41 04 00       	call   0x479631
43543f:	cc                   	int3
435440:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
435444:	53                   	push   %ebx
435445:	56                   	push   %esi
435446:	57                   	push   %edi
435447:	8b d9                	mov    %ecx,%ebx
435449:	72 02                	jb     0x43544d
43544b:	8b 19                	mov    (%ecx),%ebx
43544d:	8b 41 10             	mov    0x10(%ecx),%eax
435450:	83 f8 01             	cmp    $0x1,%eax
435453:	72 54                	jb     0x4354a9
435455:	48                   	dec    %eax
435456:	83 c9 ff             	or     $0xffffffff,%ecx
435459:	3b c1                	cmp    %ecx,%eax
43545b:	0f 42 c8             	cmovb  %eax,%ecx
43545e:	8d 3c 4b             	lea    (%ebx,%ecx,2),%edi
435461:	8b f7                	mov    %edi,%esi
435463:	81 ee c0 f2 4a 00    	sub    $0x4af2c0,%esi
435469:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
435470:	66 83 3f 2e          	cmpw   $0x2e,(%edi)
435474:	75 27                	jne    0x43549d
435476:	ba 01 00 00 00       	mov    $0x1,%edx
43547b:	b8 c0 f2 4a 00       	mov    $0x4af2c0,%eax
435480:	66 8b 0c 06          	mov    (%esi,%eax,1),%cx
435484:	66 3b 08             	cmp    (%eax),%cx
435487:	75 14                	jne    0x43549d
435489:	83 c0 02             	add    $0x2,%eax
43548c:	83 ea 01             	sub    $0x1,%edx
43548f:	75 ef                	jne    0x435480
435491:	2b fb                	sub    %ebx,%edi
435493:	d1 ff                	sar    $1,%edi
435495:	8b c7                	mov    %edi,%eax
435497:	5f                   	pop    %edi
435498:	5e                   	pop    %esi
435499:	5b                   	pop    %ebx
43549a:	c2 08 00             	ret    $0x8
43549d:	3b fb                	cmp    %ebx,%edi
43549f:	74 08                	je     0x4354a9
4354a1:	83 ef 02             	sub    $0x2,%edi
4354a4:	83 ee 02             	sub    $0x2,%esi
4354a7:	eb c7                	jmp    0x435470
4354a9:	5f                   	pop    %edi
4354aa:	5e                   	pop    %esi
4354ab:	83 c8 ff             	or     $0xffffffff,%eax
4354ae:	5b                   	pop    %ebx
4354af:	c2 08 00             	ret    $0x8
4354b2:	cc                   	int3
4354b3:	cc                   	int3
4354b4:	cc                   	int3
4354b5:	cc                   	int3
4354b6:	cc                   	int3
4354b7:	cc                   	int3
4354b8:	cc                   	int3
4354b9:	cc                   	int3
4354ba:	cc                   	int3
4354bb:	cc                   	int3
4354bc:	cc                   	int3
4354bd:	cc                   	int3
4354be:	cc                   	int3
4354bf:	cc                   	int3
4354c0:	56                   	push   %esi
4354c1:	8b f1                	mov    %ecx,%esi
4354c3:	57                   	push   %edi
4354c4:	8b 56 08             	mov    0x8(%esi),%edx
4354c7:	8b 46 04             	mov    0x4(%esi),%eax
4354ca:	4a                   	dec    %edx
4354cb:	23 56 0c             	and    0xc(%esi),%edx
4354ce:	8b 3c 90             	mov    (%eax,%edx,4),%edi
4354d1:	8b 4f 20             	mov    0x20(%edi),%ecx
4354d4:	83 f9 08             	cmp    $0x8,%ecx
4354d7:	72 2e                	jb     0x435507
4354d9:	8b 47 0c             	mov    0xc(%edi),%eax
4354dc:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4354e3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4354e9:	72 12                	jb     0x4354fd
4354eb:	8b 50 fc             	mov    -0x4(%eax),%edx
4354ee:	83 c1 23             	add    $0x23,%ecx
4354f1:	2b c2                	sub    %edx,%eax
4354f3:	83 c0 fc             	add    $0xfffffffc,%eax
4354f6:	83 f8 1f             	cmp    $0x1f,%eax
4354f9:	77 32                	ja     0x43552d
4354fb:	8b c2                	mov    %edx,%eax
4354fd:	51                   	push   %ecx
4354fe:	50                   	push   %eax
4354ff:	e8 04 45 03 00       	call   0x469a08
435504:	83 c4 08             	add    $0x8,%esp
435507:	33 c0                	xor    %eax,%eax
435509:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
435510:	c7 47 20 07 00 00 00 	movl   $0x7,0x20(%edi)
435517:	66 89 47 0c          	mov    %ax,0xc(%edi)
43551b:	83 46 10 ff          	addl   $0xffffffff,0x10(%esi)
43551f:	75 06                	jne    0x435527
435521:	5f                   	pop    %edi
435522:	89 46 0c             	mov    %eax,0xc(%esi)
435525:	5e                   	pop    %esi
435526:	c3                   	ret
435527:	ff 46 0c             	incl   0xc(%esi)
43552a:	5f                   	pop    %edi
43552b:	5e                   	pop    %esi
43552c:	c3                   	ret
43552d:	e8 ff 40 04 00       	call   0x479631
435532:	cc                   	int3
435533:	cc                   	int3
435534:	cc                   	int3
435535:	cc                   	int3
435536:	cc                   	int3
435537:	cc                   	int3
435538:	cc                   	int3
435539:	cc                   	int3
43553a:	cc                   	int3
43553b:	cc                   	int3
43553c:	cc                   	int3
43553d:	cc                   	int3
43553e:	cc                   	int3
43553f:	cc                   	int3
435540:	53                   	push   %ebx
435541:	56                   	push   %esi
435542:	8b f1                	mov    %ecx,%esi
435544:	57                   	push   %edi
435545:	8b 4e 10             	mov    0x10(%esi),%ecx
435548:	85 c9                	test   %ecx,%ecx
43554a:	74 78                	je     0x4355c4
43554c:	0f 1f 40 00          	nopl   0x0(%eax)
435550:	8b 46 0c             	mov    0xc(%esi),%eax
435553:	48                   	dec    %eax
435554:	03 c8                	add    %eax,%ecx
435556:	8b 46 08             	mov    0x8(%esi),%eax
435559:	48                   	dec    %eax
43555a:	23 c8                	and    %eax,%ecx
43555c:	8b 46 04             	mov    0x4(%esi),%eax
43555f:	8b 3c 88             	mov    (%eax,%ecx,4),%edi
435562:	8b 4f 20             	mov    0x20(%edi),%ecx
435565:	83 f9 08             	cmp    $0x8,%ecx
435568:	72 32                	jb     0x43559c
43556a:	8b 47 0c             	mov    0xc(%edi),%eax
43556d:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
435574:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
43557a:	72 16                	jb     0x435592
43557c:	8b 50 fc             	mov    -0x4(%eax),%edx
43557f:	83 c1 23             	add    $0x23,%ecx
435582:	2b c2                	sub    %edx,%eax
435584:	83 c0 fc             	add    $0xfffffffc,%eax
435587:	83 f8 1f             	cmp    $0x1f,%eax
43558a:	0f 87 9f 00 00 00    	ja     0x43562f
435590:	8b c2                	mov    %edx,%eax
435592:	51                   	push   %ecx
435593:	50                   	push   %eax
435594:	e8 6f 44 03 00       	call   0x469a08
435599:	83 c4 08             	add    $0x8,%esp
43559c:	33 c0                	xor    %eax,%eax
43559e:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
4355a5:	c7 47 20 07 00 00 00 	movl   $0x7,0x20(%edi)
4355ac:	66 89 47 0c          	mov    %ax,0xc(%edi)
4355b0:	8b 4e 10             	mov    0x10(%esi),%ecx