45325e:	50                   	push   %eax
45325f:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
453264:	e8 c2 a8 01 00       	call   0x46db2b
453269:	84 c0                	test   %al,%al
45326b:	74 05                	je     0x453272
45326d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
453270:	eb 1e                	jmp    0x453290
453272:	68 00 dc 49 00       	push   $0x49dc00
453277:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45327a:	89 7d dc             	mov    %edi,-0x24(%ebp)
45327d:	e8 e1 37 fb ff       	call   0x406a63
453282:	8b df                	mov    %edi,%ebx
453284:	89 7d f0             	mov    %edi,-0x10(%ebp)
453287:	89 7d f4             	mov    %edi,-0xc(%ebp)
45328a:	89 7d f8             	mov    %edi,-0x8(%ebp)
45328d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
453290:	80 3d 34 16 4c 00 01 	cmpb   $0x1,0x4c1634
453297:	75 0f                	jne    0x4532a8
453299:	8b 06                	mov    (%esi),%eax
45329b:	57                   	push   %edi
45329c:	8b 48 04             	mov    0x4(%eax),%ecx
45329f:	6a 01                	push   $0x1
4532a1:	03 ce                	add    %esi,%ecx
4532a3:	e8 a4 9c ff ff       	call   0x44cf4c
4532a8:	8b 45 08             	mov    0x8(%ebp),%eax
4532ab:	39 78 08             	cmp    %edi,0x8(%eax)
4532ae:	0f 86 c6 00 00 00    	jbe    0x45337a
4532b4:	8b 40 04             	mov    0x4(%eax),%eax
4532b7:	8b 08                	mov    (%eax),%ecx
4532b9:	e8 c8 9f fb ff       	call   0x40d286
4532be:	83 f8 01             	cmp    $0x1,%eax
4532c1:	0f 85 b3 00 00 00    	jne    0x45337a
4532c7:	8b 7d 0c             	mov    0xc(%ebp),%edi
4532ca:	6a 05                	push   $0x5
4532cc:	50                   	push   %eax
4532cd:	57                   	push   %edi
4532ce:	e8 7d 8d fc ff       	call   0x41c050
4532d3:	6a 00                	push   $0x0
4532d5:	6a 01                	push   $0x1
4532d7:	6a 00                	push   $0x0
4532d9:	57                   	push   %edi
4532da:	e8 b1 e8 fb ff       	call   0x411b90
4532df:	8b f0                	mov    %eax,%esi
4532e1:	83 c4 1c             	add    $0x1c,%esp
4532e4:	8b ce                	mov    %esi,%ecx
4532e6:	e8 35 f9 fb ff       	call   0x412c20
4532eb:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4532ee:	33 c0                	xor    %eax,%eax
4532f0:	40                   	inc    %eax
4532f1:	50                   	push   %eax
4532f2:	50                   	push   %eax
4532f3:	6a 00                	push   $0x0
4532f5:	57                   	push   %edi
4532f6:	89 46 0c             	mov    %eax,0xc(%esi)
4532f9:	89 0e                	mov    %ecx,(%esi)
4532fb:	e8 90 e8 fb ff       	call   0x411b90
453300:	8b f0                	mov    %eax,%esi
453302:	83 c4 10             	add    $0x10,%esp
453305:	8b ce                	mov    %esi,%ecx
453307:	e8 14 f9 fb ff       	call   0x412c20
45330c:	8b 45 f0             	mov    -0x10(%ebp),%eax
45330f:	6a 02                	push   $0x2
453311:	6a 01                	push   $0x1
453313:	6a 00                	push   $0x0
453315:	57                   	push   %edi
453316:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
45331d:	89 06                	mov    %eax,(%esi)
45331f:	e8 6c e8 fb ff       	call   0x411b90
453324:	8b f0                	mov    %eax,%esi
453326:	83 c4 10             	add    $0x10,%esp
453329:	8b ce                	mov    %esi,%ecx
45332b:	e8 f0 f8 fb ff       	call   0x412c20
453330:	8b 45 f4             	mov    -0xc(%ebp),%eax
453333:	6a 03                	push   $0x3
453335:	6a 01                	push   $0x1
453337:	6a 00                	push   $0x0
453339:	57                   	push   %edi
45333a:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
453341:	89 06                	mov    %eax,(%esi)
453343:	e8 48 e8 fb ff       	call   0x411b90
453348:	8b f0                	mov    %eax,%esi
45334a:	83 c4 10             	add    $0x10,%esp
45334d:	8b ce                	mov    %esi,%ecx
45334f:	e8 cc f8 fb ff       	call   0x412c20
453354:	8b 45 f8             	mov    -0x8(%ebp),%eax
453357:	33 c9                	xor    %ecx,%ecx
453359:	41                   	inc    %ecx
45335a:	6a 04                	push   $0x4
45335c:	51                   	push   %ecx
45335d:	6a 00                	push   $0x0
45335f:	57                   	push   %edi
453360:	89 4e 0c             	mov    %ecx,0xc(%esi)
453363:	89 06                	mov    %eax,(%esi)
453365:	e8 26 e8 fb ff       	call   0x411b90
45336a:	8b f0                	mov    %eax,%esi
45336c:	83 c4 10             	add    $0x10,%esp
45336f:	8b ce                	mov    %esi,%ecx
453371:	e8 aa f8 fb ff       	call   0x412c20
453376:	89 1e                	mov    %ebx,(%esi)
453378:	eb 0f                	jmp    0x453389
45337a:	8b 75 0c             	mov    0xc(%ebp),%esi
45337d:	8b ce                	mov    %esi,%ecx
45337f:	e8 9c f8 fb ff       	call   0x412c20
453384:	8b 45 dc             	mov    -0x24(%ebp),%eax
453387:	89 06                	mov    %eax,(%esi)
453389:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45338c:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
453393:	e8 9f 97 fb ff       	call   0x40cb37
453398:	5f                   	pop    %edi
453399:	5e                   	pop    %esi
45339a:	33 c0                	xor    %eax,%eax
45339c:	5b                   	pop    %ebx
45339d:	c9                   	leave
45339e:	c2 08 00             	ret    $0x8
4533a1:	55                   	push   %ebp
4533a2:	8b ec                	mov    %esp,%ebp
4533a4:	83 ec 10             	sub    $0x10,%esp
4533a7:	53                   	push   %ebx
4533a8:	56                   	push   %esi
4533a9:	8b 75 0c             	mov    0xc(%ebp),%esi
4533ac:	57                   	push   %edi
4533ad:	6a 02                	push   $0x2
4533af:	6a 01                	push   $0x1
4533b1:	56                   	push   %esi
4533b2:	8b d9                	mov    %ecx,%ebx
4533b4:	33 ff                	xor    %edi,%edi
4533b6:	e8 95 8c fc ff       	call   0x41c050
4533bb:	8b 45 08             	mov    0x8(%ebp),%eax
4533be:	83 c4 0c             	add    $0xc,%esp
4533c1:	39 78 08             	cmp    %edi,0x8(%eax)
4533c4:	76 0c                	jbe    0x4533d2
4533c6:	8b 40 04             	mov    0x4(%eax),%eax
4533c9:	8b 08                	mov    (%eax),%ecx
4533cb:	e8 a7 81 ff ff       	call   0x44b577
4533d0:	8b f8                	mov    %eax,%edi
4533d2:	57                   	push   %edi
4533d3:	8d 45 08             	lea    0x8(%ebp),%eax
4533d6:	50                   	push   %eax
4533d7:	8d 45 0c             	lea    0xc(%ebp),%eax
4533da:	50                   	push   %eax
4533db:	e8 b7 a7 01 00       	call   0x46db97
4533e0:	33 ff                	xor    %edi,%edi
4533e2:	85 c0                	test   %eax,%eax
4533e4:	74 4b                	je     0x453431
4533e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4533e9:	33 db                	xor    %ebx,%ebx
4533eb:	57                   	push   %edi
4533ec:	43                   	inc    %ebx
4533ed:	89 45 f0             	mov    %eax,-0x10(%ebp)
4533f0:	53                   	push   %ebx
4533f1:	8d 45 f0             	lea    -0x10(%ebp),%eax
4533f4:	50                   	push   %eax
4533f5:	56                   	push   %esi
4533f6:	89 7d f8             	mov    %edi,-0x8(%ebp)
4533f9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4533fc:	e8 cf f5 fb ff       	call   0x4129d0
453401:	83 c4 10             	add    $0x10,%esp
453404:	8d 4d f0             	lea    -0x10(%ebp),%ecx
453407:	e8 14 f8 fb ff       	call   0x412c20
45340c:	8b 45 08             	mov    0x8(%ebp),%eax
45340f:	53                   	push   %ebx
453410:	89 45 f0             	mov    %eax,-0x10(%ebp)
453413:	53                   	push   %ebx
453414:	8d 45 f0             	lea    -0x10(%ebp),%eax
453417:	50                   	push   %eax
453418:	56                   	push   %esi
453419:	89 7d f8             	mov    %edi,-0x8(%ebp)
45341c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45341f:	e8 ac f5 fb ff       	call   0x4129d0
453424:	83 c4 10             	add    $0x10,%esp
453427:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45342a:	e8 f1 f7 fb ff       	call   0x412c20
45342f:	eb 1d                	jmp    0x45344e
453431:	8b 03                	mov    (%ebx),%eax
453433:	6a 00                	push   $0x0
453435:	8b 48 04             	mov    0x4(%eax),%ecx
453438:	47                   	inc    %edi
453439:	57                   	push   %edi
45343a:	03 cb                	add    %ebx,%ecx
45343c:	e8 0b 9b ff ff       	call   0x44cf4c
453441:	8b ce                	mov    %esi,%ecx
453443:	e8 d8 f7 fb ff       	call   0x412c20
453448:	83 26 00             	andl   $0x0,(%esi)
45344b:	89 7e 0c             	mov    %edi,0xc(%esi)
45344e:	5f                   	pop    %edi
45344f:	5e                   	pop    %esi
453450:	33 c0                	xor    %eax,%eax
453452:	5b                   	pop    %ebx
453453:	c9                   	leave
453454:	c2 08 00             	ret    $0x8
453457:	55                   	push   %ebp
453458:	8b ec                	mov    %esp,%ebp
45345a:	83 ec 38             	sub    $0x38,%esp
45345d:	8b 45 08             	mov    0x8(%ebp),%eax
453460:	53                   	push   %ebx
453461:	8b 40 04             	mov    0x4(%eax),%eax
453464:	56                   	push   %esi
453465:	8b 70 04             	mov    0x4(%eax),%esi
453468:	57                   	push   %edi
453469:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45346c:	33 ff                	xor    %edi,%edi
45346e:	6a 0e                	push   $0xe
453470:	8b ce                	mov    %esi,%ecx
453472:	89 7d f8             	mov    %edi,-0x8(%ebp)
453475:	e8 6a a1 fb ff       	call   0x40d5e4
45347a:	8b ce                	mov    %esi,%ecx
45347c:	84 c0                	test   %al,%al
45347e:	74 10                	je     0x453490
453480:	8d 45 c8             	lea    -0x38(%ebp),%eax
453483:	33 db                	xor    %ebx,%ebx
453485:	50                   	push   %eax
453486:	43                   	inc    %ebx
453487:	e8 11 72 ff ff       	call   0x44a69d
45348c:	8b c8                	mov    %eax,%ecx
45348e:	eb 27                	jmp    0x4534b7
453490:	6a 02                	push   $0x2
453492:	5b                   	pop    %ebx
453493:	e8 d4 5e fb ff       	call   0x40936c
453498:	8b 4e 08             	mov    0x8(%esi),%ecx
45349b:	8b 01                	mov    (%ecx),%eax
45349d:	89 45 d8             	mov    %eax,-0x28(%ebp)
4534a0:	8b 41 04             	mov    0x4(%ecx),%eax
4534a3:	89 45 dc             	mov    %eax,-0x24(%ebp)
4534a6:	8b 41 08             	mov    0x8(%ecx),%eax
4534a9:	89 45 e0             	mov    %eax,-0x20(%ebp)
4534ac:	8b 41 0c             	mov    0xc(%ecx),%eax
4534af:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4534b2:	ff 00                	incl   (%eax)
4534b4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4534b7:	8b 01                	mov    (%ecx),%eax
4534b9:	8b 71 04             	mov    0x4(%ecx),%esi
4534bc:	89 45 e8             	mov    %eax,-0x18(%ebp)
4534bf:	8b 41 08             	mov    0x8(%ecx),%eax
4534c2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4534c5:	8b 41 0c             	mov    0xc(%ecx),%eax
4534c8:	89 75 ec             	mov    %esi,-0x14(%ebp)
4534cb:	ff 00                	incl   (%eax)
4534cd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4534d0:	f6 c3 02             	test   $0x2,%bl
4534d3:	74 0b                	je     0x4534e0
4534d5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4534d8:	83 e3 fd             	and    $0xfffffffd,%ebx
4534db:	e8 57 96 fb ff       	call   0x40cb37
4534e0:	f6 c3 01             	test   $0x1,%bl
4534e3:	74 08                	je     0x4534ed
4534e5:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4534e8:	e8 4a 96 fb ff       	call   0x40cb37
4534ed:	85 f6                	test   %esi,%esi
4534ef:	74 37                	je     0x453528
4534f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4534f4:	8d 45 e8             	lea    -0x18(%ebp),%eax
4534f7:	50                   	push   %eax
4534f8:	8b cb                	mov    %ebx,%ecx
4534fa:	e8 ab e7 fa ff       	call   0x401caa
4534ff:	85 c0                	test   %eax,%eax
453501:	75 25                	jne    0x453528
453503:	8b 75 0c             	mov    0xc(%ebp),%esi
453506:	8b ce                	mov    %esi,%ecx
453508:	e8 13 f7 fb ff       	call   0x412c20
45350d:	33 c0                	xor    %eax,%eax
45350f:	40                   	inc    %eax
453510:	57                   	push   %edi
453511:	89 46 0c             	mov    %eax,0xc(%esi)
453514:	89 3e                	mov    %edi,(%esi)
453516:	50                   	push   %eax
453517:	8b 03                	mov    (%ebx),%eax
453519:	8b 48 04             	mov    0x4(%eax),%ecx
45351c:	03 cb                	add    %ebx,%ecx
45351e:	e8 29 9a ff ff       	call   0x44cf4c
453523:	83 ce ff             	or     $0xffffffff,%esi
453526:	eb 2d                	jmp    0x453555
453528:	8b 45 08             	mov    0x8(%ebp),%eax
45352b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45352e:	8b 40 04             	mov    0x4(%eax),%eax
453531:	51                   	push   %ecx
453532:	8b 08                	mov    (%eax),%ecx
453534:	e8 4d 9d fb ff       	call   0x40d286
453539:	50                   	push   %eax
45353a:	e8 b8 a6 01 00       	call   0x46dbf7
45353f:	8b 75 0c             	mov    0xc(%ebp),%esi
453542:	8b ce                	mov    %esi,%ecx
453544:	8b f8                	mov    %eax,%edi
453546:	e8 d5 f6 fb ff       	call   0x412c20
45354b:	33 c0                	xor    %eax,%eax
45354d:	40                   	inc    %eax
45354e:	89 46 0c             	mov    %eax,0xc(%esi)
453551:	89 3e                	mov    %edi,(%esi)
453553:	33 f6                	xor    %esi,%esi
453555:	8d 4d e8             	lea    -0x18(%ebp),%ecx
453558:	e8 da 95 fb ff       	call   0x40cb37
45355d:	5f                   	pop    %edi
45355e:	8b c6                	mov    %esi,%eax
453560:	5e                   	pop    %esi
453561:	5b                   	pop    %ebx
453562:	c9                   	leave
453563:	c2 08 00             	ret    $0x8
453566:	55                   	push   %ebp
453567:	8b ec                	mov    %esp,%ebp
453569:	83 e4 f8             	and    $0xfffffff8,%esp
45356c:	83 ec 2c             	sub    $0x2c,%esp
45356f:	53                   	push   %ebx
453570:	56                   	push   %esi
453571:	8b 75 08             	mov    0x8(%ebp),%esi
453574:	33 db                	xor    %ebx,%ebx
453576:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
45357a:	57                   	push   %edi
45357b:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
45357f:	76 11                	jbe    0x453592
453581:	8b 46 04             	mov    0x4(%esi),%eax
453584:	8b 48 04             	mov    0x4(%eax),%ecx
453587:	e8 eb 7f ff ff       	call   0x44b577
45358c:	8b d8                	mov    %eax,%ebx
45358e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
453592:	8b 4e 04             	mov    0x4(%esi),%ecx
453595:	6a 05                	push   $0x5
453597:	8b 39                	mov    (%ecx),%edi
453599:	8b cf                	mov    %edi,%ecx
45359b:	e8 44 a0 fb ff       	call   0x40d5e4
4535a0:	84 c0                	test   %al,%al
4535a2:	75 0f                	jne    0x4535b3
4535a4:	53                   	push   %ebx
4535a5:	6a 00                	push   $0x0
4535a7:	6a 00                	push   $0x0
4535a9:	e8 ec a6 01 00       	call   0x46dc9a
4535ae:	e9 26 01 00 00       	jmp    0x4536d9
4535b3:	6a 01                	push   $0x1
4535b5:	8b cf                	mov    %edi,%ecx
4535b7:	e8 63 8a fc ff       	call   0x41c01f
4535bc:	33 c9                	xor    %ecx,%ecx
4535be:	6a 06                	push   $0x6
4535c0:	8b f8                	mov    %eax,%edi
4535c2:	5a                   	pop    %edx
4535c3:	f7 e2                	mul    %edx
4535c5:	0f 90 c1             	seto   %cl
4535c8:	89 7c 24 18          	mov    %edi,0x18(%esp)
4535cc:	f7 d9                	neg    %ecx
4535ce:	0b c8                	or     %eax,%ecx
4535d0:	51                   	push   %ecx
4535d1:	e8 14 bf fc ff       	call   0x41f4ea
4535d6:	59                   	pop    %ecx
4535d7:	33 c9                	xor    %ecx,%ecx
4535d9:	8b d8                	mov    %eax,%ebx
4535db:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4535df:	85 ff                	test   %edi,%edi
4535e1:	0f 8e e0 00 00 00    	jle    0x4536c7
4535e7:	8b fb                	mov    %ebx,%edi
4535e9:	8b 46 04             	mov    0x4(%esi),%eax
4535ec:	6a 00                	push   $0x0
4535ee:	51                   	push   %ecx
4535ef:	6a 02                	push   $0x2