415185:	51                   	push   %ecx
415186:	a1 0c 30 42 00       	mov    0x42300c,%eax
41518b:	33 c5                	xor    %ebp,%eax
41518d:	89 45 fc             	mov    %eax,-0x4(%ebp)
415190:	8b 4d 08             	mov    0x8(%ebp),%ecx
415193:	53                   	push   %ebx
415194:	8b 5d 0c             	mov    0xc(%ebp),%ebx
415197:	3b d9                	cmp    %ecx,%ebx
415199:	76 6c                	jbe    0x415207
41519b:	8b 45 10             	mov    0x10(%ebp),%eax
41519e:	56                   	push   %esi
41519f:	57                   	push   %edi
4151a0:	8d 14 01             	lea    (%ecx,%eax,1),%edx
4151a3:	8b f2                	mov    %edx,%esi
4151a5:	8b f9                	mov    %ecx,%edi
4151a7:	3b f3                	cmp    %ebx,%esi
4151a9:	77 28                	ja     0x4151d3
4151ab:	eb 03                	jmp    0x4151b0
4151ad:	8d 49 00             	lea    0x0(%ecx),%ecx
4151b0:	8b 4d 14             	mov    0x14(%ebp),%ecx
4151b3:	57                   	push   %edi
4151b4:	56                   	push   %esi
4151b5:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4151bb:	ff 55 14             	call   *0x14(%ebp)
4151be:	83 c4 08             	add    $0x8,%esp
4151c1:	85 c0                	test   %eax,%eax
4151c3:	7e 02                	jle    0x4151c7
4151c5:	8b fe                	mov    %esi,%edi
4151c7:	8b 45 10             	mov    0x10(%ebp),%eax
4151ca:	03 f0                	add    %eax,%esi
4151cc:	3b f3                	cmp    %ebx,%esi
4151ce:	76 e0                	jbe    0x4151b0
4151d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4151d3:	8b f0                	mov    %eax,%esi
4151d5:	8b d3                	mov    %ebx,%edx
4151d7:	3b fb                	cmp    %ebx,%edi
4151d9:	74 21                	je     0x4151fc
4151db:	85 c0                	test   %eax,%eax
4151dd:	74 1d                	je     0x4151fc
4151df:	2b fb                	sub    %ebx,%edi
4151e1:	8a 02                	mov    (%edx),%al
4151e3:	8d 52 01             	lea    0x1(%edx),%edx
4151e6:	8a 4c 17 ff          	mov    -0x1(%edi,%edx,1),%cl
4151ea:	88 44 17 ff          	mov    %al,-0x1(%edi,%edx,1)
4151ee:	88 4a ff             	mov    %cl,-0x1(%edx)
4151f1:	83 ee 01             	sub    $0x1,%esi
4151f4:	75 eb                	jne    0x4151e1
4151f6:	8b 45 10             	mov    0x10(%ebp),%eax
4151f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4151fc:	2b d8                	sub    %eax,%ebx
4151fe:	8d 14 01             	lea    (%ecx,%eax,1),%edx
415201:	3b d9                	cmp    %ecx,%ebx
415203:	77 9e                	ja     0x4151a3
415205:	5f                   	pop    %edi
415206:	5e                   	pop    %esi
415207:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41520a:	33 cd                	xor    %ebp,%ecx
41520c:	5b                   	pop    %ebx
41520d:	e8 44 dd fe ff       	call   0x402f56
415212:	8b e5                	mov    %ebp,%esp
415214:	5d                   	pop    %ebp
415215:	c3                   	ret
415216:	cc                   	int3
415217:	cc                   	int3
415218:	cc                   	int3
415219:	cc                   	int3
41521a:	cc                   	int3
41521b:	cc                   	int3
41521c:	cc                   	int3
41521d:	cc                   	int3
41521e:	cc                   	int3
41521f:	cc                   	int3
415220:	8b ff                	mov    %edi,%edi
415222:	55                   	push   %ebp
415223:	8b ec                	mov    %esp,%ebp
415225:	8b 45 0c             	mov    0xc(%ebp),%eax
415228:	57                   	push   %edi
415229:	8b 7d 08             	mov    0x8(%ebp),%edi
41522c:	3b f8                	cmp    %eax,%edi
41522e:	74 26                	je     0x415256
415230:	56                   	push   %esi
415231:	8b 75 10             	mov    0x10(%ebp),%esi
415234:	85 f6                	test   %esi,%esi
415236:	74 1d                	je     0x415255
415238:	2b f8                	sub    %eax,%edi
41523a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
415240:	8a 08                	mov    (%eax),%cl
415242:	8d 40 01             	lea    0x1(%eax),%eax
415245:	8a 54 07 ff          	mov    -0x1(%edi,%eax,1),%dl
415249:	88 4c 07 ff          	mov    %cl,-0x1(%edi,%eax,1)
41524d:	88 50 ff             	mov    %dl,-0x1(%eax)
415250:	83 ee 01             	sub    $0x1,%esi
415253:	75 eb                	jne    0x415240
415255:	5e                   	pop    %esi
415256:	5f                   	pop    %edi
415257:	5d                   	pop    %ebp
415258:	c3                   	ret
415259:	cc                   	int3
41525a:	cc                   	int3
41525b:	cc                   	int3
41525c:	cc                   	int3
41525d:	cc                   	int3
41525e:	cc                   	int3
41525f:	cc                   	int3
415260:	8b ff                	mov    %edi,%edi
415262:	55                   	push   %ebp
415263:	8b ec                	mov    %esp,%ebp
415265:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
41526b:	a1 0c 30 42 00       	mov    0x42300c,%eax
415270:	33 c5                	xor    %ebp,%eax
415272:	89 45 fc             	mov    %eax,-0x4(%ebp)
415275:	8b 4d 08             	mov    0x8(%ebp),%ecx
415278:	8b 55 0c             	mov    0xc(%ebp),%edx
41527b:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
415281:	56                   	push   %esi
415282:	8b 75 14             	mov    0x14(%ebp),%esi
415285:	89 b5 00 ff ff ff    	mov    %esi,-0x100(%ebp)
41528b:	57                   	push   %edi
41528c:	8b 7d 10             	mov    0x10(%ebp),%edi
41528f:	89 bd 04 ff ff ff    	mov    %edi,-0xfc(%ebp)
415295:	85 c9                	test   %ecx,%ecx
415297:	75 24                	jne    0x4152bd
415299:	85 d2                	test   %edx,%edx
41529b:	74 20                	je     0x4152bd
41529d:	e8 65 2a ff ff       	call   0x407d07
4152a2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4152a8:	e8 81 29 ff ff       	call   0x407c2e
4152ad:	5f                   	pop    %edi
4152ae:	5e                   	pop    %esi
4152af:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4152b2:	33 cd                	xor    %ebp,%ecx
4152b4:	e8 9d dc fe ff       	call   0x402f56
4152b9:	8b e5                	mov    %ebp,%esp
4152bb:	5d                   	pop    %ebp
4152bc:	c3                   	ret
4152bd:	85 ff                	test   %edi,%edi
4152bf:	74 dc                	je     0x41529d
4152c1:	85 f6                	test   %esi,%esi
4152c3:	74 d8                	je     0x41529d
4152c5:	c7 85 f8 fe ff ff 00 	movl   $0x0,-0x108(%ebp)
4152cc:	00 00 00
4152cf:	83 fa 02             	cmp    $0x2,%edx
4152d2:	0f 82 12 03 00 00    	jb     0x4155ea
4152d8:	4a                   	dec    %edx
4152d9:	0f af d7             	imul   %edi,%edx
4152dc:	53                   	push   %ebx
4152dd:	03 d1                	add    %ecx,%edx
4152df:	89 95 08 ff ff ff    	mov    %edx,-0xf8(%ebp)
4152e5:	8b c2                	mov    %edx,%eax
4152e7:	33 d2                	xor    %edx,%edx
4152e9:	2b c1                	sub    %ecx,%eax
4152eb:	f7 f7                	div    %edi
4152ed:	8d 58 01             	lea    0x1(%eax),%ebx
4152f0:	83 fb 08             	cmp    $0x8,%ebx
4152f3:	77 16                	ja     0x41530b
4152f5:	56                   	push   %esi
4152f6:	57                   	push   %edi
4152f7:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
4152fd:	51                   	push   %ecx
4152fe:	e8 7d fe ff ff       	call   0x415180
415303:	83 c4 10             	add    $0x10,%esp
415306:	e9 b7 02 00 00       	jmp    0x4155c2
41530b:	d1 eb                	shr    $1,%ebx
41530d:	0f af df             	imul   %edi,%ebx
415310:	03 d9                	add    %ecx,%ebx
415312:	53                   	push   %ebx
415313:	51                   	push   %ecx
415314:	8b ce                	mov    %esi,%ecx
415316:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
41531c:	ff 15 a8 b1 41 00    	call   *0x41b1a8
415322:	ff d6                	call   *%esi
415324:	83 c4 08             	add    $0x8,%esp
415327:	85 c0                	test   %eax,%eax
415329:	7e 10                	jle    0x41533b
41532b:	57                   	push   %edi
41532c:	53                   	push   %ebx
41532d:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
415333:	e8 e8 fe ff ff       	call   0x415220
415338:	83 c4 0c             	add    $0xc,%esp
41533b:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
415341:	8b ce                	mov    %esi,%ecx
415343:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
415349:	ff 15 a8 b1 41 00    	call   *0x41b1a8
41534f:	ff d6                	call   *%esi
415351:	83 c4 08             	add    $0x8,%esp
415354:	85 c0                	test   %eax,%eax
415356:	7e 15                	jle    0x41536d
415358:	57                   	push   %edi
415359:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
41535f:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
415365:	e8 b6 fe ff ff       	call   0x415220
41536a:	83 c4 0c             	add    $0xc,%esp
41536d:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
415373:	8b ce                	mov    %esi,%ecx
415375:	53                   	push   %ebx
415376:	ff 15 a8 b1 41 00    	call   *0x41b1a8
41537c:	ff d6                	call   *%esi
41537e:	83 c4 08             	add    $0x8,%esp
415381:	85 c0                	test   %eax,%eax
415383:	7e 10                	jle    0x415395
415385:	57                   	push   %edi
415386:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
41538c:	53                   	push   %ebx
41538d:	e8 8e fe ff ff       	call   0x415220
415392:	83 c4 0c             	add    $0xc,%esp
415395:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
41539b:	8b f8                	mov    %eax,%edi
41539d:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
4153a3:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4153a9:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
4153af:	90                   	nop
4153b0:	3b de                	cmp    %esi,%ebx
4153b2:	76 37                	jbe    0x4153eb
4153b4:	03 f2                	add    %edx,%esi
4153b6:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
4153bc:	3b f3                	cmp    %ebx,%esi
4153be:	73 25                	jae    0x4153e5
4153c0:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
4153c6:	53                   	push   %ebx
4153c7:	56                   	push   %esi
4153c8:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4153ce:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
4153d4:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4153da:	83 c4 08             	add    $0x8,%esp
4153dd:	85 c0                	test   %eax,%eax
4153df:	7e d3                	jle    0x4153b4
4153e1:	3b de                	cmp    %esi,%ebx
4153e3:	77 3d                	ja     0x415422
4153e5:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
4153eb:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
4153f1:	03 f2                	add    %edx,%esi
4153f3:	3b f0                	cmp    %eax,%esi
4153f5:	77 1f                	ja     0x415416
4153f7:	53                   	push   %ebx
4153f8:	56                   	push   %esi
4153f9:	8b cf                	mov    %edi,%ecx
4153fb:	ff 15 a8 b1 41 00    	call   *0x41b1a8
415401:	ff d7                	call   *%edi
415403:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
415409:	83 c4 08             	add    $0x8,%esp
41540c:	85 c0                	test   %eax,%eax
41540e:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
415414:	7e db                	jle    0x4153f1
415416:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
41541c:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
415422:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
415428:	eb 06                	jmp    0x415430
41542a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
415430:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
415436:	2b fa                	sub    %edx,%edi
415438:	3b fb                	cmp    %ebx,%edi
41543a:	76 19                	jbe    0x415455
41543c:	53                   	push   %ebx
41543d:	57                   	push   %edi
41543e:	8b ce                	mov    %esi,%ecx
415440:	ff 15 a8 b1 41 00    	call   *0x41b1a8
415446:	ff d6                	call   *%esi
415448:	83 c4 08             	add    $0x8,%esp
41544b:	85 c0                	test   %eax,%eax
41544d:	7f e1                	jg     0x415430
41544f:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
415455:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
41545b:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
415461:	3b fe                	cmp    %esi,%edi
415463:	72 5e                	jb     0x4154c3
415465:	89 95 e8 fe ff ff    	mov    %edx,-0x118(%ebp)
41546b:	89 bd e4 fe ff ff    	mov    %edi,-0x11c(%ebp)
415471:	3b f7                	cmp    %edi,%esi
415473:	74 33                	je     0x4154a8
415475:	8b de                	mov    %esi,%ebx
415477:	8b d7                	mov    %edi,%edx
415479:	8b b5 e8 fe ff ff    	mov    -0x118(%ebp),%esi
41547f:	2b df                	sub    %edi,%ebx
415481:	8a 02                	mov    (%edx),%al
415483:	8d 52 01             	lea    0x1(%edx),%edx
415486:	8a 4c 13 ff          	mov    -0x1(%ebx,%edx,1),%cl
41548a:	88 44 13 ff          	mov    %al,-0x1(%ebx,%edx,1)
41548e:	88 4a ff             	mov    %cl,-0x1(%edx)
415491:	83 ee 01             	sub    $0x1,%esi
415494:	75 eb                	jne    0x415481
415496:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
41549c:	8b 9d f0 fe ff ff    	mov    -0x110(%ebp),%ebx
4154a2:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4154a8:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
4154ae:	3b df                	cmp    %edi,%ebx
4154b0:	0f 85 fa fe ff ff    	jne    0x4153b0
4154b6:	8b de                	mov    %esi,%ebx
4154b8:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
4154be:	e9 ed fe ff ff       	jmp    0x4153b0
4154c3:	03 fa                	add    %edx,%edi
4154c5:	3b df                	cmp    %edi,%ebx
4154c7:	73 32                	jae    0x4154fb
4154c9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4154d0:	2b fa                	sub    %edx,%edi
4154d2:	3b fb                	cmp    %ebx,%edi
4154d4:	76 25                	jbe    0x4154fb
4154d6:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
4154dc:	53                   	push   %ebx
4154dd:	57                   	push   %edi
4154de:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4154e4:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
4154ea:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4154f0:	83 c4 08             	add    $0x8,%esp
4154f3:	85 c0                	test   %eax,%eax
4154f5:	74 d9                	je     0x4154d0
4154f7:	3b df                	cmp    %edi,%ebx
4154f9:	72 2f                	jb     0x41552a
4154fb:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
415501:	2b fa                	sub    %edx,%edi
415503:	3b bd fc fe ff ff    	cmp    -0x104(%ebp),%edi
415509:	76 19                	jbe    0x415524
41550b:	53                   	push   %ebx
41550c:	57                   	push   %edi
41550d:	8b ce                	mov    %esi,%ecx
41550f:	ff 15 a8 b1 41 00    	call   *0x41b1a8
415515:	ff d6                	call   *%esi
415517:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
41551d:	83 c4 08             	add    $0x8,%esp
415520:	85 c0                	test   %eax,%eax
415522:	74 dd                	je     0x415501
415524:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
41552a:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
415530:	8b c7                	mov    %edi,%eax
415532:	8b 9d fc fe ff ff    	mov    -0x104(%ebp),%ebx
415538:	8b ca                	mov    %edx,%ecx
41553a:	2b ce                	sub    %esi,%ecx
41553c:	2b c3                	sub    %ebx,%eax
41553e:	3b c1                	cmp    %ecx,%eax
415540:	7c 39                	jl     0x41557b
415542:	3b df                	cmp    %edi,%ebx
415544:	73 18                	jae    0x41555e
415546:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
41554c:	89 9c 85 0c ff ff ff 	mov    %ebx,-0xf4(%ebp,%eax,4)
415553:	89 7c 85 84          	mov    %edi,-0x7c(%ebp,%eax,4)
415557:	40                   	inc    %eax
415558:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
41555e:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
415564:	3b f2                	cmp    %edx,%esi
415566:	73 4c                	jae    0x4155b4
415568:	8b ce                	mov    %esi,%ecx
41556a:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
415570:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
415576:	e9 6a fd ff ff       	jmp    0x4152e5
41557b:	3b f2                	cmp    %edx,%esi
41557d:	73 18                	jae    0x415597
41557f:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
415585:	89 b4 85 0c ff ff ff 	mov    %esi,-0xf4(%ebp,%eax,4)
41558c:	89 54 85 84          	mov    %edx,-0x7c(%ebp,%eax,4)
415590:	40                   	inc    %eax
415591:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)