4e81e1:	8b 7e 04             	mov    0x4(%esi),%edi
4e81e4:	85 ff                	test   %edi,%edi
4e81e6:	0f 84 0b 02 00 00    	je     0x4e83f7
4e81ec:	85 db                	test   %ebx,%ebx
4e81ee:	0f 84 03 02 00 00    	je     0x4e83f7
4e81f4:	ff 74 24 2c          	push   0x2c(%esp)
4e81f8:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4e81fb:	89 44 24 14          	mov    %eax,0x14(%esp)
4e81ff:	e8 0c fc ff ff       	call   0x4e7e10
4e8204:	8b 44 24 24          	mov    0x24(%esp),%eax
4e8208:	83 c4 04             	add    $0x4,%esp
4e820b:	3b c6                	cmp    %esi,%eax
4e820d:	74 08                	je     0x4e8217
4e820f:	3b c5                	cmp    %ebp,%eax
4e8211:	74 04                	je     0x4e8217
4e8213:	8b f0                	mov    %eax,%esi
4e8215:	eb 16                	jmp    0x4e822d
4e8217:	ff 74 24 2c          	push   0x2c(%esp)
4e821b:	e8 b0 f9 ff ff       	call   0x4e7bd0
4e8220:	8b f0                	mov    %eax,%esi
4e8222:	83 c4 04             	add    $0x4,%esp
4e8225:	85 f6                	test   %esi,%esi
4e8227:	0f 84 b2 01 00 00    	je     0x4e83df
4e822d:	8b cf                	mov    %edi,%ecx
4e822f:	2b cb                	sub    %ebx,%ecx
4e8231:	75 37                	jne    0x4e826a
4e8233:	83 ff 08             	cmp    $0x8,%edi
4e8236:	75 32                	jne    0x4e826a
4e8238:	6a 10                	push   $0x10
4e823a:	56                   	push   %esi
4e823b:	e8 60 23 ff ff       	call   0x4da5a0
4e8240:	83 c4 08             	add    $0x8,%esp
4e8243:	85 c0                	test   %eax,%eax
4e8245:	0f 84 94 01 00 00    	je     0x4e83df
4e824b:	8b 7c 24 24          	mov    0x24(%esp),%edi
4e824f:	c7 46 04 10 00 00 00 	movl   $0x10,0x4(%esi)
4e8256:	ff 75 00             	push   0x0(%ebp)
4e8259:	ff 37                	push   (%edi)
4e825b:	ff 36                	push   (%esi)
4e825d:	e8 1e 9c f2 ff       	call   0x411e80
4e8262:	83 c4 0c             	add    $0xc,%esp
4e8265:	e9 4e 01 00 00       	jmp    0x4e83b8
4e826a:	83 ff 10             	cmp    $0x10,%edi
4e826d:	0f 8c 17 01 00 00    	jl     0x4e838a
4e8273:	83 fb 10             	cmp    $0x10,%ebx
4e8276:	0f 8c 0e 01 00 00    	jl     0x4e838a
4e827c:	8d 41 01             	lea    0x1(%ecx),%eax
4e827f:	83 f8 02             	cmp    $0x2,%eax
4e8282:	0f 87 02 01 00 00    	ja     0x4e838a
4e8288:	85 c9                	test   %ecx,%ecx
4e828a:	78 03                	js     0x4e828f
4e828c:	57                   	push   %edi
4e828d:	eb 08                	jmp    0x4e8297
4e828f:	33 c0                	xor    %eax,%eax
4e8291:	83 f9 ff             	cmp    $0xffffffff,%ecx
4e8294:	75 09                	jne    0x4e829f
4e8296:	53                   	push   %ebx
4e8297:	e8 54 1c ff ff       	call   0x4d9ef0
4e829c:	83 c4 04             	add    $0x4,%esp
4e829f:	ff 74 24 2c          	push   0x2c(%esp)
4e82a3:	8d 48 ff             	lea    -0x1(%eax),%ecx
4e82a6:	bd 01 00 00 00       	mov    $0x1,%ebp
4e82ab:	d3 e5                	shl    %cl,%ebp
4e82ad:	e8 1e f9 ff ff       	call   0x4e7bd0
4e82b2:	83 c4 04             	add    $0x4,%esp
4e82b5:	89 44 24 14          	mov    %eax,0x14(%esp)
4e82b9:	85 c0                	test   %eax,%eax
4e82bb:	0f 84 1e 01 00 00    	je     0x4e83df
4e82c1:	3b fd                	cmp    %ebp,%edi
4e82c3:	7f 66                	jg     0x4e832b
4e82c5:	3b dd                	cmp    %ebp,%ebx
4e82c7:	7f 62                	jg     0x4e832b
4e82c9:	8d 0c ad 00 00 00 00 	lea    0x0(,%ebp,4),%ecx
4e82d0:	51                   	push   %ecx
4e82d1:	50                   	push   %eax
4e82d2:	e8 c9 22 ff ff       	call   0x4da5a0
4e82d7:	83 c4 08             	add    $0x8,%esp
4e82da:	85 c0                	test   %eax,%eax
4e82dc:	0f 84 fd 00 00 00    	je     0x4e83df
4e82e2:	8d 04 ad 00 00 00 00 	lea    0x0(,%ebp,4),%eax
4e82e9:	50                   	push   %eax
4e82ea:	56                   	push   %esi
4e82eb:	e8 b0 22 ff ff       	call   0x4da5a0
4e82f0:	83 c4 08             	add    $0x8,%esp
4e82f3:	85 c0                	test   %eax,%eax
4e82f5:	0f 84 e4 00 00 00    	je     0x4e83df
4e82fb:	8b 44 24 14          	mov    0x14(%esp),%eax
4e82ff:	2b dd                	sub    %ebp,%ebx
4e8301:	2b fd                	sub    %ebp,%edi
4e8303:	ff 30                	push   (%eax)
4e8305:	53                   	push   %ebx
4e8306:	57                   	push   %edi
4e8307:	8b 7c 24 30          	mov    0x30(%esp),%edi
4e830b:	55                   	push   %ebp
4e830c:	8b 6c 24 38          	mov    0x38(%esp),%ebp
4e8310:	ff 75 00             	push   0x0(%ebp)
4e8313:	ff 37                	push   (%edi)
4e8315:	ff 36                	push   (%esi)
4e8317:	e8 84 06 00 00       	call   0x4e89a0
4e831c:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4e8320:	83 c4 1c             	add    $0x1c,%esp
4e8323:	89 46 04             	mov    %eax,0x4(%esi)
4e8326:	e9 8d 00 00 00       	jmp    0x4e83b8
4e832b:	8d 0c ed 00 00 00 00 	lea    0x0(,%ebp,8),%ecx
4e8332:	51                   	push   %ecx
4e8333:	50                   	push   %eax
4e8334:	e8 67 22 ff ff       	call   0x4da5a0
4e8339:	83 c4 08             	add    $0x8,%esp
4e833c:	85 c0                	test   %eax,%eax
4e833e:	0f 84 9b 00 00 00    	je     0x4e83df
4e8344:	8d 04 ed 00 00 00 00 	lea    0x0(,%ebp,8),%eax
4e834b:	50                   	push   %eax
4e834c:	56                   	push   %esi
4e834d:	e8 4e 22 ff ff       	call   0x4da5a0
4e8352:	83 c4 08             	add    $0x8,%esp
4e8355:	85 c0                	test   %eax,%eax
4e8357:	0f 84 82 00 00 00    	je     0x4e83df
4e835d:	8b 44 24 14          	mov    0x14(%esp),%eax
4e8361:	2b dd                	sub    %ebp,%ebx
4e8363:	2b fd                	sub    %ebp,%edi
4e8365:	ff 30                	push   (%eax)
4e8367:	53                   	push   %ebx
4e8368:	57                   	push   %edi
4e8369:	8b 7c 24 30          	mov    0x30(%esp),%edi
4e836d:	55                   	push   %ebp
4e836e:	8b 6c 24 38          	mov    0x38(%esp),%ebp
4e8372:	ff 75 00             	push   0x0(%ebp)
4e8375:	ff 37                	push   (%edi)
4e8377:	ff 36                	push   (%esi)
4e8379:	e8 a2 01 00 00       	call   0x4e8520
4e837e:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4e8382:	83 c4 1c             	add    $0x1c,%esp
4e8385:	89 46 04             	mov    %eax,0x4(%esi)
4e8388:	eb 2e                	jmp    0x4e83b8
4e838a:	8b 44 24 10          	mov    0x10(%esp),%eax
4e838e:	50                   	push   %eax
4e838f:	56                   	push   %esi
4e8390:	e8 0b 22 ff ff       	call   0x4da5a0
4e8395:	83 c4 08             	add    $0x8,%esp
4e8398:	85 c0                	test   %eax,%eax
4e839a:	74 43                	je     0x4e83df
4e839c:	8b 44 24 10          	mov    0x10(%esp),%eax
4e83a0:	53                   	push   %ebx
4e83a1:	89 46 04             	mov    %eax,0x4(%esi)
4e83a4:	ff 75 00             	push   0x0(%ebp)
4e83a7:	57                   	push   %edi
4e83a8:	8b 7c 24 30          	mov    0x30(%esp),%edi
4e83ac:	ff 37                	push   (%edi)
4e83ae:	ff 36                	push   (%esi)
4e83b0:	e8 6b 00 00 00       	call   0x4e8420
4e83b5:	83 c4 14             	add    $0x14,%esp
4e83b8:	8b 47 0c             	mov    0xc(%edi),%eax
4e83bb:	33 45 0c             	xor    0xc(%ebp),%eax
4e83be:	89 46 0c             	mov    %eax,0xc(%esi)
4e83c1:	8b 44 24 20          	mov    0x20(%esp),%eax
4e83c5:	3b c6                	cmp    %esi,%eax
4e83c7:	74 0e                	je     0x4e83d7
4e83c9:	56                   	push   %esi
4e83ca:	50                   	push   %eax
4e83cb:	e8 10 17 ff ff       	call   0x4d9ae0
4e83d0:	83 c4 08             	add    $0x8,%esp
4e83d3:	85 c0                	test   %eax,%eax
4e83d5:	74 08                	je     0x4e83df
4e83d7:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
4e83de:	00
4e83df:	ff 74 24 2c          	push   0x2c(%esp)
4e83e3:	e8 e8 f6 ff ff       	call   0x4e7ad0
4e83e8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4e83ec:	83 c4 04             	add    $0x4,%esp
4e83ef:	5f                   	pop    %edi
4e83f0:	5e                   	pop    %esi
4e83f1:	5d                   	pop    %ebp
4e83f2:	5b                   	pop    %ebx
4e83f3:	83 c4 0c             	add    $0xc,%esp
4e83f6:	c3                   	ret
4e83f7:	6a 00                	push   $0x0
4e83f9:	ff 74 24 24          	push   0x24(%esp)
4e83fd:	e8 de 1c ff ff       	call   0x4da0e0
4e8402:	83 c4 08             	add    $0x8,%esp
4e8405:	b8 01 00 00 00       	mov    $0x1,%eax
4e840a:	5f                   	pop    %edi
4e840b:	5e                   	pop    %esi
4e840c:	5d                   	pop    %ebp
4e840d:	5b                   	pop    %ebx
4e840e:	83 c4 0c             	add    $0xc,%esp
4e8411:	c3                   	ret
4e8412:	cc                   	int3
4e8413:	cc                   	int3
4e8414:	cc                   	int3
4e8415:	cc                   	int3
4e8416:	cc                   	int3
4e8417:	cc                   	int3
4e8418:	cc                   	int3
4e8419:	cc                   	int3
4e841a:	cc                   	int3
4e841b:	cc                   	int3
4e841c:	cc                   	int3
4e841d:	cc                   	int3
4e841e:	cc                   	int3
4e841f:	cc                   	int3
4e8420:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4e8424:	8b d1                	mov    %ecx,%edx
4e8426:	53                   	push   %ebx
4e8427:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4e842b:	55                   	push   %ebp
4e842c:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4e8430:	56                   	push   %esi
4e8431:	8b 74 24 18          	mov    0x18(%esp),%esi
4e8435:	3b f1                	cmp    %ecx,%esi
4e8437:	57                   	push   %edi
4e8438:	8b 7c 24 14          	mov    0x14(%esp),%edi
4e843c:	0f 4d d6             	cmovge %esi,%edx
4e843f:	0f 4d dd             	cmovge %ebp,%ebx
4e8442:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4e8446:	0f 4d 6c 24 20       	cmovge 0x20(%esp),%ebp
4e844b:	0f 4d f1             	cmovge %ecx,%esi
4e844e:	89 5c 24 24          	mov    %ebx,0x24(%esp)
4e8452:	8d 04 97             	lea    (%edi,%edx,4),%eax
4e8455:	89 44 24 14          	mov    %eax,0x14(%esp)
4e8459:	85 f6                	test   %esi,%esi
4e845b:	7f 12                	jg     0x4e846f
4e845d:	6a 00                	push   $0x0
4e845f:	52                   	push   %edx
4e8460:	53                   	push   %ebx
4e8461:	57                   	push   %edi
4e8462:	e8 89 87 f2 ff       	call   0x410bf0
4e8467:	83 c4 10             	add    $0x10,%esp
4e846a:	5f                   	pop    %edi
4e846b:	5e                   	pop    %esi
4e846c:	5d                   	pop    %ebp
4e846d:	5b                   	pop    %ebx
4e846e:	c3                   	ret
4e846f:	ff 75 00             	push   0x0(%ebp)
4e8472:	52                   	push   %edx
4e8473:	53                   	push   %ebx
4e8474:	57                   	push   %edi
4e8475:	e8 76 87 f2 ff       	call   0x410bf0
4e847a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4e847e:	4e                   	dec    %esi
4e847f:	83 c4 10             	add    $0x10,%esp
4e8482:	89 01                	mov    %eax,(%ecx)
4e8484:	85 f6                	test   %esi,%esi
4e8486:	0f 8e 8e 00 00 00    	jle    0x4e851a
4e848c:	8d 5d 08             	lea    0x8(%ebp),%ebx
4e848f:	83 c7 08             	add    $0x8,%edi
4e8492:	8d 69 08             	lea    0x8(%ecx),%ebp
4e8495:	ff 73 fc             	push   -0x4(%ebx)
4e8498:	8d 47 fc             	lea    -0x4(%edi),%eax
4e849b:	ff 74 24 20          	push   0x20(%esp)
4e849f:	ff 74 24 2c          	push   0x2c(%esp)
4e84a3:	50                   	push   %eax
4e84a4:	e8 57 84 f2 ff       	call   0x410900
4e84a9:	4e                   	dec    %esi
4e84aa:	89 45 fc             	mov    %eax,-0x4(%ebp)
4e84ad:	83 c4 10             	add    $0x10,%esp
4e84b0:	85 f6                	test   %esi,%esi
4e84b2:	7e 66                	jle    0x4e851a
4e84b4:	ff 33                	push   (%ebx)
4e84b6:	ff 74 24 20          	push   0x20(%esp)
4e84ba:	ff 74 24 2c          	push   0x2c(%esp)
4e84be:	57                   	push   %edi
4e84bf:	e8 3c 84 f2 ff       	call   0x410900
4e84c4:	4e                   	dec    %esi
4e84c5:	89 45 00             	mov    %eax,0x0(%ebp)
4e84c8:	83 c4 10             	add    $0x10,%esp
4e84cb:	85 f6                	test   %esi,%esi
4e84cd:	7e 4b                	jle    0x4e851a
4e84cf:	ff 73 04             	push   0x4(%ebx)
4e84d2:	8d 47 04             	lea    0x4(%edi),%eax
4e84d5:	ff 74 24 20          	push   0x20(%esp)
4e84d9:	ff 74 24 2c          	push   0x2c(%esp)
4e84dd:	50                   	push   %eax
4e84de:	e8 1d 84 f2 ff       	call   0x410900
4e84e3:	4e                   	dec    %esi
4e84e4:	89 45 04             	mov    %eax,0x4(%ebp)
4e84e7:	83 c4 10             	add    $0x10,%esp
4e84ea:	85 f6                	test   %esi,%esi
4e84ec:	7e 2c                	jle    0x4e851a
4e84ee:	ff 73 08             	push   0x8(%ebx)
4e84f1:	8d 47 08             	lea    0x8(%edi),%eax
4e84f4:	ff 74 24 20          	push   0x20(%esp)
4e84f8:	ff 74 24 2c          	push   0x2c(%esp)
4e84fc:	50                   	push   %eax
4e84fd:	e8 fe 83 f2 ff       	call   0x410900
4e8502:	89 45 08             	mov    %eax,0x8(%ebp)
4e8505:	4e                   	dec    %esi
4e8506:	83 c4 10             	add    $0x10,%esp
4e8509:	83 c7 10             	add    $0x10,%edi
4e850c:	83 c5 10             	add    $0x10,%ebp
4e850f:	83 c3 10             	add    $0x10,%ebx
4e8512:	85 f6                	test   %esi,%esi
4e8514:	0f 8f 7b ff ff ff    	jg     0x4e8495
4e851a:	5f                   	pop    %edi
4e851b:	5e                   	pop    %esi
4e851c:	5d                   	pop    %ebp
4e851d:	5b                   	pop    %ebx
4e851e:	c3                   	ret
4e851f:	cc                   	int3
4e8520:	b8 1c 00 00 00       	mov    $0x1c,%eax
4e8525:	e8 86 92 0e 00       	call   0x5d17b0
4e852a:	53                   	push   %ebx
4e852b:	8b 5c 24 38          	mov    0x38(%esp),%ebx
4e852f:	55                   	push   %ebp
4e8530:	8b 6c 24 34          	mov    0x34(%esp),%ebp
4e8534:	57                   	push   %edi
4e8535:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
4e8539:	8d 04 6d 00 00 00 00 	lea    0x0(,%ebp,2),%eax
4e8540:	89 44 24 18          	mov    %eax,0x18(%esp)
4e8544:	83 fd 08             	cmp    $0x8,%ebp
4e8547:	7d 24                	jge    0x4e856d
4e8549:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4e854d:	8d 04 2b             	lea    (%ebx,%ebp,1),%eax
4e8550:	50                   	push   %eax
4e8551:	ff 74 24 38          	push   0x38(%esp)
4e8555:	8d 04 2f             	lea    (%edi,%ebp,1),%eax
4e8558:	50                   	push   %eax
4e8559:	ff 74 24 3c          	push   0x3c(%esp)
4e855d:	51                   	push   %ecx
4e855e:	e8 bd fe ff ff       	call   0x4e8420
4e8563:	83 c4 14             	add    $0x14,%esp
4e8566:	5f                   	pop    %edi
4e8567:	5d                   	pop    %ebp
4e8568:	5b                   	pop    %ebx
4e8569:	83 c4 1c             	add    $0x1c,%esp
4e856c:	c3                   	ret
4e856d:	8b 4c 24 30          	mov    0x30(%esp),%ecx
4e8571:	8d 04 ad 00 00 00 00 	lea    0x0(,%ebp,4),%eax
4e8578:	56                   	push   %esi
4e8579:	8b d5                	mov    %ebp,%edx
4e857b:	89 44 24 10          	mov    %eax,0x10(%esp)
4e857f:	2b d7                	sub    %edi,%edx
4e8581:	03 c1                	add    %ecx,%eax
4e8583:	52                   	push   %edx
4e8584:	57                   	push   %edi
4e8585:	50                   	push   %eax
4e8586:	51                   	push   %ecx
4e8587:	89 54 24 28          	mov    %edx,0x28(%esp)
4e858b:	e8 e0 1d ff ff       	call   0x4da370
4e8590:	8b 4c 24 48          	mov    0x48(%esp),%ecx
4e8594:	8b d3                	mov    %ebx,%edx
4e8596:	2b d5                	sub    %ebp,%edx
4e8598:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
4e859f:	00
4e85a0:	52                   	push   %edx
4e85a1:	8b f0                	mov    %eax,%esi
4e85a3:	89 54 24 28          	mov    %edx,0x28(%esp)
4e85a7:	8b 44 24 24          	mov    0x24(%esp),%eax
4e85ab:	53                   	push   %ebx
4e85ac:	03 c1                	add    %ecx,%eax
4e85ae:	51                   	push   %ecx