4ce1f3:	50                   	push   %eax
4ce1f4:	33 ed                	xor    %ebp,%ebp
4ce1f6:	33 ff                	xor    %edi,%edi
4ce1f8:	e8 13 04 fe ff       	call   0x4ae610
4ce1fd:	83 c4 04             	add    $0x4,%esp
4ce200:	85 c0                	test   %eax,%eax
4ce202:	7e 53                	jle    0x4ce257
4ce204:	57                   	push   %edi
4ce205:	ff 74 24 20          	push   0x20(%esp)
4ce209:	e8 22 05 fe ff       	call   0x4ae730
4ce20e:	83 c4 08             	add    $0x8,%esp
4ce211:	89 44 24 28          	mov    %eax,0x28(%esp)
4ce215:	8b 44 24 3c          	mov    0x3c(%esp),%eax
4ce219:	ff 74 24 44          	push   0x44(%esp)
4ce21d:	8b 40 10             	mov    0x10(%eax),%eax
4ce220:	6a ff                	push   $0xffffffff
4ce222:	ff d0                	call   *%eax
4ce224:	50                   	push   %eax
4ce225:	8d 44 24 34          	lea    0x34(%esp),%eax
4ce229:	6a 00                	push   $0x0
4ce22b:	50                   	push   %eax
4ce22c:	e8 5f f6 ff ff       	call   0x4cd890
4ce231:	83 c4 14             	add    $0x14,%esp
4ce234:	83 f8 ff             	cmp    $0xffffffff,%eax
4ce237:	74 3b                	je     0x4ce274
4ce239:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4ce23e:	2b c8                	sub    %eax,%ecx
4ce240:	3b e9                	cmp    %ecx,%ebp
4ce242:	7f 30                	jg     0x4ce274
4ce244:	ff 74 24 1c          	push   0x1c(%esp)
4ce248:	03 e8                	add    %eax,%ebp
4ce24a:	47                   	inc    %edi
4ce24b:	e8 c0 03 fe ff       	call   0x4ae610
4ce250:	83 c4 04             	add    $0x4,%esp
4ce253:	3b f8                	cmp    %eax,%edi
4ce255:	7c ad                	jl     0x4ce204
4ce257:	ff 74 24 14          	push   0x14(%esp)
4ce25b:	8b 7c 24 28          	mov    0x28(%esp),%edi
4ce25f:	55                   	push   %ebp
4ce260:	57                   	push   %edi
4ce261:	e8 3a 3a fe ff       	call   0x4b1ca0
4ce266:	8b d0                	mov    %eax,%edx
4ce268:	83 c4 0c             	add    $0xc,%esp
4ce26b:	89 54 24 2c          	mov    %edx,0x2c(%esp)
4ce26f:	83 fa ff             	cmp    $0xffffffff,%edx
4ce272:	75 0b                	jne    0x4ce27f
4ce274:	5f                   	pop    %edi
4ce275:	5e                   	pop    %esi
4ce276:	5d                   	pop    %ebp
4ce277:	83 c8 ff             	or     $0xffffffff,%eax
4ce27a:	5b                   	pop    %ebx
4ce27b:	83 c4 20             	add    $0x20,%esp
4ce27e:	c3                   	ret
4ce27f:	83 e3 10             	and    $0x10,%ebx
4ce282:	74 1a                	je     0x4ce29e
4ce284:	ff 74 24 10          	push   0x10(%esp)
4ce288:	52                   	push   %edx
4ce289:	57                   	push   %edi
4ce28a:	e8 11 3a fe ff       	call   0x4b1ca0
4ce28f:	8b 54 24 38          	mov    0x38(%esp),%edx
4ce293:	8b c8                	mov    %eax,%ecx
4ce295:	83 c4 0c             	add    $0xc,%esp
4ce298:	89 4c 24 24          	mov    %ecx,0x24(%esp)
4ce29c:	eb 06                	jmp    0x4ce2a4
4ce29e:	8b ca                	mov    %edx,%ecx
4ce2a0:	89 54 24 24          	mov    %edx,0x24(%esp)
4ce2a4:	8b 44 24 38          	mov    0x38(%esp),%eax
4ce2a8:	85 c0                	test   %eax,%eax
4ce2aa:	0f 84 83 00 00 00    	je     0x4ce333
4ce2b0:	83 f9 ff             	cmp    $0xffffffff,%ecx
4ce2b3:	74 7e                	je     0x4ce333
4ce2b5:	85 db                	test   %ebx,%ebx
4ce2b7:	74 14                	je     0x4ce2cd
4ce2b9:	56                   	push   %esi
4ce2ba:	ff 74 24 14          	push   0x14(%esp)
4ce2be:	52                   	push   %edx
4ce2bf:	57                   	push   %edi
4ce2c0:	50                   	push   %eax
4ce2c1:	e8 5a 3a fe ff       	call   0x4b1d20
4ce2c6:	8b 44 24 4c          	mov    0x4c(%esp),%eax
4ce2ca:	83 c4 14             	add    $0x14,%esp
4ce2cd:	ff 74 24 20          	push   0x20(%esp)
4ce2d1:	ff 74 24 18          	push   0x18(%esp)
4ce2d5:	55                   	push   %ebp
4ce2d6:	57                   	push   %edi
4ce2d7:	50                   	push   %eax
4ce2d8:	e8 43 3a fe ff       	call   0x4b1d20
4ce2dd:	8b 44 24 50          	mov    0x50(%esp),%eax
4ce2e1:	83 c4 14             	add    $0x14,%esp
4ce2e4:	ff 74 24 44          	push   0x44(%esp)
4ce2e8:	8b 40 10             	mov    0x10(%eax),%eax
4ce2eb:	ff 74 24 1c          	push   0x1c(%esp)
4ce2ef:	ff d0                	call   *%eax
4ce2f1:	8b 74 24 40          	mov    0x40(%esp),%esi
4ce2f5:	50                   	push   %eax
4ce2f6:	55                   	push   %ebp
4ce2f7:	56                   	push   %esi
4ce2f8:	ff 74 24 30          	push   0x30(%esp)
4ce2fc:	e8 1f fc ff ff       	call   0x4cdf20
4ce301:	83 c4 18             	add    $0x18,%esp
4ce304:	83 ff 02             	cmp    $0x2,%edi
4ce307:	0f 85 bd 00 00 00    	jne    0x4ce3ca
4ce30d:	56                   	push   %esi
4ce30e:	e8 ed 39 fe ff       	call   0x4b1d00
4ce313:	83 c4 04             	add    $0x4,%esp
4ce316:	85 db                	test   %ebx,%ebx
4ce318:	0f 84 ac 00 00 00    	je     0x4ce3ca
4ce31e:	56                   	push   %esi
4ce31f:	e8 dc 39 fe ff       	call   0x4b1d00
4ce324:	8b 44 24 28          	mov    0x28(%esp),%eax
4ce328:	83 c4 04             	add    $0x4,%esp
4ce32b:	5f                   	pop    %edi
4ce32c:	5e                   	pop    %esi
4ce32d:	5d                   	pop    %ebp
4ce32e:	5b                   	pop    %ebx
4ce32f:	83 c4 20             	add    $0x20,%esp
4ce332:	c3                   	ret
4ce333:	5f                   	pop    %edi
4ce334:	5e                   	pop    %esi
4ce335:	5d                   	pop    %ebp
4ce336:	8b c1                	mov    %ecx,%eax
4ce338:	5b                   	pop    %ebx
4ce339:	83 c4 20             	add    $0x20,%esp
4ce33c:	c3                   	ret
4ce33d:	8b 42 10             	mov    0x10(%edx),%eax
4ce340:	f6 c3 10             	test   $0x10,%bl
4ce343:	0f 84 8d 00 00 00    	je     0x4ce3d6
4ce349:	51                   	push   %ecx
4ce34a:	6a ff                	push   $0xffffffff
4ce34c:	ff d0                	call   *%eax
4ce34e:	50                   	push   %eax
4ce34f:	6a 00                	push   $0x0
4ce351:	ff 74 24 44          	push   0x44(%esp)
4ce355:	e8 36 f5 ff ff       	call   0x4cd890
4ce35a:	83 c4 14             	add    $0x14,%esp
4ce35d:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4ce361:	85 c0                	test   %eax,%eax
4ce363:	75 0a                	jne    0x4ce36f
4ce365:	5f                   	pop    %edi
4ce366:	5e                   	pop    %esi
4ce367:	5d                   	pop    %ebp
4ce368:	33 c0                	xor    %eax,%eax
4ce36a:	5b                   	pop    %ebx
4ce36b:	83 c4 20             	add    $0x20,%esp
4ce36e:	c3                   	ret
4ce36f:	8b 7c 24 24          	mov    0x24(%esp),%edi
4ce373:	55                   	push   %ebp
4ce374:	50                   	push   %eax
4ce375:	57                   	push   %edi
4ce376:	e8 25 39 fe ff       	call   0x4b1ca0
4ce37b:	8b 5c 24 44          	mov    0x44(%esp),%ebx
4ce37f:	83 c4 0c             	add    $0xc,%esp
4ce382:	89 44 24 24          	mov    %eax,0x24(%esp)
4ce386:	85 db                	test   %ebx,%ebx
4ce388:	74 63                	je     0x4ce3ed
4ce38a:	83 f8 ff             	cmp    $0xffffffff,%eax
4ce38d:	74 5e                	je     0x4ce3ed
4ce38f:	56                   	push   %esi
4ce390:	55                   	push   %ebp
4ce391:	ff 74 24 34          	push   0x34(%esp)
4ce395:	57                   	push   %edi
4ce396:	53                   	push   %ebx
4ce397:	e8 84 39 fe ff       	call   0x4b1d20
4ce39c:	8b 44 24 50          	mov    0x50(%esp),%eax
4ce3a0:	83 c4 14             	add    $0x14,%esp
4ce3a3:	ff 74 24 44          	push   0x44(%esp)
4ce3a7:	8b 40 10             	mov    0x10(%eax),%eax
4ce3aa:	6a ff                	push   $0xffffffff
4ce3ac:	ff d0                	call   *%eax
4ce3ae:	50                   	push   %eax
4ce3af:	53                   	push   %ebx
4ce3b0:	ff 74 24 44          	push   0x44(%esp)
4ce3b4:	e8 d7 f4 ff ff       	call   0x4cd890
4ce3b9:	83 c4 14             	add    $0x14,%esp
4ce3bc:	83 ff 02             	cmp    $0x2,%edi
4ce3bf:	75 09                	jne    0x4ce3ca
4ce3c1:	53                   	push   %ebx
4ce3c2:	e8 39 39 fe ff       	call   0x4b1d00
4ce3c7:	83 c4 04             	add    $0x4,%esp
4ce3ca:	8b 44 24 24          	mov    0x24(%esp),%eax
4ce3ce:	5f                   	pop    %edi
4ce3cf:	5e                   	pop    %esi
4ce3d0:	5d                   	pop    %ebp
4ce3d1:	5b                   	pop    %ebx
4ce3d2:	83 c4 20             	add    $0x20,%esp
4ce3d5:	c3                   	ret
4ce3d6:	0b f1                	or     %ecx,%esi
4ce3d8:	56                   	push   %esi
4ce3d9:	55                   	push   %ebp
4ce3da:	ff d0                	call   *%eax
4ce3dc:	50                   	push   %eax
4ce3dd:	ff 74 24 44          	push   0x44(%esp)
4ce3e1:	ff 74 24 44          	push   0x44(%esp)
4ce3e5:	e8 a6 f4 ff ff       	call   0x4cd890
4ce3ea:	83 c4 14             	add    $0x14,%esp
4ce3ed:	5f                   	pop    %edi
4ce3ee:	5e                   	pop    %esi
4ce3ef:	5d                   	pop    %ebp
4ce3f0:	5b                   	pop    %ebx
4ce3f1:	83 c4 20             	add    $0x20,%esp
4ce3f4:	c3                   	ret
4ce3f5:	cc                   	int3
4ce3f6:	cc                   	int3
4ce3f7:	cc                   	int3
4ce3f8:	cc                   	int3
4ce3f9:	cc                   	int3
4ce3fa:	cc                   	int3
4ce3fb:	cc                   	int3
4ce3fc:	cc                   	int3
4ce3fd:	cc                   	int3
4ce3fe:	cc                   	int3
4ce3ff:	cc                   	int3
4ce400:	8b 44 24 04          	mov    0x4(%esp),%eax
4ce404:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4ce408:	53                   	push   %ebx
4ce409:	56                   	push   %esi
4ce40a:	8b 10                	mov    (%eax),%edx
4ce40c:	8b 59 04             	mov    0x4(%ecx),%ebx
4ce40f:	8b f3                	mov    %ebx,%esi
4ce411:	8b 09                	mov    (%ecx),%ecx
4ce413:	57                   	push   %edi
4ce414:	8b 78 04             	mov    0x4(%eax),%edi
4ce417:	3b fb                	cmp    %ebx,%edi
4ce419:	0f 4c f7             	cmovl  %edi,%esi
4ce41c:	83 ee 04             	sub    $0x4,%esi
4ce41f:	72 11                	jb     0x4ce432
4ce421:	8b 02                	mov    (%edx),%eax
4ce423:	3b 01                	cmp    (%ecx),%eax
4ce425:	75 10                	jne    0x4ce437
4ce427:	83 c2 04             	add    $0x4,%edx
4ce42a:	83 c1 04             	add    $0x4,%ecx
4ce42d:	83 ee 04             	sub    $0x4,%esi
4ce430:	73 ef                	jae    0x4ce421
4ce432:	83 fe fc             	cmp    $0xfffffffc,%esi
4ce435:	74 34                	je     0x4ce46b
4ce437:	8a 02                	mov    (%edx),%al
4ce439:	3a 01                	cmp    (%ecx),%al
4ce43b:	75 27                	jne    0x4ce464
4ce43d:	83 fe fd             	cmp    $0xfffffffd,%esi
4ce440:	74 29                	je     0x4ce46b
4ce442:	8a 42 01             	mov    0x1(%edx),%al
4ce445:	3a 41 01             	cmp    0x1(%ecx),%al
4ce448:	75 1a                	jne    0x4ce464
4ce44a:	83 fe fe             	cmp    $0xfffffffe,%esi
4ce44d:	74 1c                	je     0x4ce46b
4ce44f:	8a 42 02             	mov    0x2(%edx),%al
4ce452:	3a 41 02             	cmp    0x2(%ecx),%al
4ce455:	75 0d                	jne    0x4ce464
4ce457:	83 fe ff             	cmp    $0xffffffff,%esi
4ce45a:	74 0f                	je     0x4ce46b
4ce45c:	8a 42 03             	mov    0x3(%edx),%al
4ce45f:	3a 41 03             	cmp    0x3(%ecx),%al
4ce462:	74 07                	je     0x4ce46b
4ce464:	1b c0                	sbb    %eax,%eax
4ce466:	83 c8 01             	or     $0x1,%eax
4ce469:	eb 02                	jmp    0x4ce46d
4ce46b:	33 c0                	xor    %eax,%eax
4ce46d:	85 c0                	test   %eax,%eax
4ce46f:	75 04                	jne    0x4ce475
4ce471:	2b fb                	sub    %ebx,%edi
4ce473:	8b c7                	mov    %edi,%eax
4ce475:	5f                   	pop    %edi
4ce476:	5e                   	pop    %esi
4ce477:	5b                   	pop    %ebx
4ce478:	c3                   	ret
4ce479:	cc                   	int3
4ce47a:	cc                   	int3
4ce47b:	cc                   	int3
4ce47c:	cc                   	int3
4ce47d:	cc                   	int3
4ce47e:	cc                   	int3
4ce47f:	cc                   	int3
4ce480:	56                   	push   %esi
4ce481:	8b 74 24 08          	mov    0x8(%esp),%esi
4ce485:	85 f6                	test   %esi,%esi
4ce487:	74 24                	je     0x4ce4ad
4ce489:	8b 46 04             	mov    0x4(%esi),%eax
4ce48c:	85 c0                	test   %eax,%eax
4ce48e:	74 14                	je     0x4ce4a4
4ce490:	ff 76 08             	push   0x8(%esi)
4ce493:	50                   	push   %eax
4ce494:	e8 b7 1e fd ff       	call   0x4a0350
4ce499:	ff 76 04             	push   0x4(%esi)
4ce49c:	e8 8f 1c fd ff       	call   0x4a0130
4ce4a1:	83 c4 0c             	add    $0xc,%esp
4ce4a4:	56                   	push   %esi
4ce4a5:	e8 86 1c fd ff       	call   0x4a0130
4ce4aa:	83 c4 04             	add    $0x4,%esp
4ce4ad:	5e                   	pop    %esi
4ce4ae:	c3                   	ret
4ce4af:	cc                   	int3
4ce4b0:	56                   	push   %esi
4ce4b1:	8b 74 24 0c          	mov    0xc(%esp),%esi
4ce4b5:	57                   	push   %edi
4ce4b6:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4ce4ba:	8b 0f                	mov    (%edi),%ecx
4ce4bc:	3b ce                	cmp    %esi,%ecx
4ce4be:	73 1a                	jae    0x4ce4da
4ce4c0:	39 77 08             	cmp    %esi,0x8(%edi)
4ce4c3:	72 1c                	jb     0x4ce4e1
4ce4c5:	8b c6                	mov    %esi,%eax
4ce4c7:	2b c1                	sub    %ecx,%eax
4ce4c9:	50                   	push   %eax
4ce4ca:	8b 47 04             	mov    0x4(%edi),%eax
4ce4cd:	03 c1                	add    %ecx,%eax
4ce4cf:	6a 00                	push   $0x0
4ce4d1:	50                   	push   %eax
4ce4d2:	e8 29 55 11 00       	call   0x5e3a00
4ce4d7:	83 c4 0c             	add    $0xc,%esp
4ce4da:	89 37                	mov    %esi,(%edi)
4ce4dc:	8b c6                	mov    %esi,%eax
4ce4de:	5f                   	pop    %edi
4ce4df:	5e                   	pop    %esi
4ce4e0:	c3                   	ret
4ce4e1:	81 fe fc ff ff 5f    	cmp    $0x5ffffffc,%esi
4ce4e7:	76 1a                	jbe    0x4ce503
4ce4e9:	6a 71                	push   $0x71
4ce4eb:	68 90 d4 6a 00       	push   $0x6ad490
4ce4f0:	6a 41                	push   $0x41
4ce4f2:	6a 64                	push   $0x64
4ce4f4:	6a 07                	push   $0x7
4ce4f6:	e8 a5 2f fd ff       	call   0x4a14a0
4ce4fb:	83 c4 14             	add    $0x14,%esp
4ce4fe:	33 c0                	xor    %eax,%eax
4ce500:	5f                   	pop    %edi
4ce501:	5e                   	pop    %esi
4ce502:	c3                   	ret
4ce503:	8d 4e 03             	lea    0x3(%esi),%ecx
4ce506:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
4ce50b:	f7 e1                	mul    %ecx
4ce50d:	8b 47 04             	mov    0x4(%edi),%eax
4ce510:	53                   	push   %ebx
4ce511:	8b da                	mov    %edx,%ebx
4ce513:	d1 eb                	shr    $1,%ebx
4ce515:	c1 e3 02             	shl    $0x2,%ebx
4ce518:	85 c0                	test   %eax,%eax
4ce51a:	75 12                	jne    0x4ce52e
4ce51c:	6a 76                	push   $0x76
4ce51e:	68 90 d4 6a 00       	push   $0x6ad490
4ce523:	53                   	push   %ebx
4ce524:	e8 87 1c fd ff       	call   0x4a01b0
4ce529:	83 c4 0c             	add    $0xc,%esp
4ce52c:	eb 11                	jmp    0x4ce53f
4ce52e:	6a 78                	push   $0x78
4ce530:	68 90 d4 6a 00       	push   $0x6ad490
4ce535:	53                   	push   %ebx
4ce536:	50                   	push   %eax
4ce537:	e8 e4 1c fd ff       	call   0x4a0220
4ce53c:	83 c4 10             	add    $0x10,%esp
4ce53f:	8b d0                	mov    %eax,%edx