41338a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
413390:	8a 0c 10             	mov    (%eax,%edx,1),%cl
413393:	8d 52 01             	lea    0x1(%edx),%edx
413396:	8b b5 04 ff ff ff    	mov    -0xfc(%ebp),%esi
41339c:	8a 42 ff             	mov    -0x1(%edx),%al
41339f:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
4133a3:	8b c6                	mov    %esi,%eax
4133a5:	88 4a ff             	mov    %cl,-0x1(%edx)
4133a8:	83 eb 01             	sub    $0x1,%ebx
4133ab:	75 e3                	jne    0x413390
4133ad:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4133b3:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
4133b9:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
4133bf:	2b cf                	sub    %edi,%ecx
4133c1:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
4133c7:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
4133cd:	3b ce                	cmp    %esi,%ecx
4133cf:	0f 87 60 ff ff ff    	ja     0x413335
4133d5:	e9 79 03 00 00       	jmp    0x413753
4133da:	d1 e8                	shr    $1,%eax
4133dc:	8b cb                	mov    %ebx,%ecx
4133de:	0f af c7             	imul   %edi,%eax
4133e1:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4133e7:	8d 3c 30             	lea    (%eax,%esi,1),%edi
4133ea:	57                   	push   %edi
4133eb:	56                   	push   %esi
4133ec:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
4133f2:	ff 15 50 c2 41 00    	call   *0x41c250
4133f8:	ff d3                	call   *%ebx
4133fa:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
413400:	83 c4 08             	add    $0x8,%esp
413403:	85 c0                	test   %eax,%eax
413405:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41340b:	7e 4d                	jle    0x41345a
41340d:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
413413:	89 bd f0 fe ff ff    	mov    %edi,-0x110(%ebp)
413419:	3b c7                	cmp    %edi,%eax
41341b:	74 3d                	je     0x41345a
41341d:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
413423:	8b f7                	mov    %edi,%esi
413425:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
41342b:	eb 03                	jmp    0x413430
41342d:	8d 49 00             	lea    0x0(%ecx),%ecx
413430:	8a 06                	mov    (%esi),%al
413432:	8b d6                	mov    %esi,%edx
413434:	2b d7                	sub    %edi,%edx
413436:	8a 0a                	mov    (%edx),%cl
413438:	88 02                	mov    %al,(%edx)
41343a:	88 0e                	mov    %cl,(%esi)
41343c:	46                   	inc    %esi
41343d:	83 eb 01             	sub    $0x1,%ebx
413440:	75 ee                	jne    0x413430
413442:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
413448:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41344e:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
413454:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41345a:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
413460:	8b cb                	mov    %ebx,%ecx
413462:	50                   	push   %eax
413463:	ff 15 50 c2 41 00    	call   *0x41c250
413469:	ff d3                	call   *%ebx
41346b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413471:	83 c4 08             	add    $0x8,%esp
413474:	85 c0                	test   %eax,%eax
413476:	7e 49                	jle    0x4134c1
413478:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41347e:	89 b5 ec fe ff ff    	mov    %esi,-0x114(%ebp)
413484:	8b f2                	mov    %edx,%esi
413486:	3b c2                	cmp    %edx,%eax
413488:	74 37                	je     0x4134c1
41348a:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
413490:	2b c2                	sub    %edx,%eax
413492:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
413498:	8b d0                	mov    %eax,%edx
41349a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4134a0:	8a 06                	mov    (%esi),%al
4134a2:	8d 76 01             	lea    0x1(%esi),%esi
4134a5:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4134a9:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
4134ad:	88 4e ff             	mov    %cl,-0x1(%esi)
4134b0:	83 eb 01             	sub    $0x1,%ebx
4134b3:	75 eb                	jne    0x4134a0
4134b5:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4134bb:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4134c1:	52                   	push   %edx
4134c2:	57                   	push   %edi
4134c3:	8b cb                	mov    %ebx,%ecx
4134c5:	ff 15 50 c2 41 00    	call   *0x41c250
4134cb:	ff d3                	call   *%ebx
4134cd:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4134d3:	83 c4 08             	add    $0x8,%esp
4134d6:	85 c0                	test   %eax,%eax
4134d8:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4134de:	7e 35                	jle    0x413515
4134e0:	8b d8                	mov    %eax,%ebx
4134e2:	8b f2                	mov    %edx,%esi
4134e4:	3b fa                	cmp    %edx,%edi
4134e6:	74 2d                	je     0x413515
4134e8:	8b c7                	mov    %edi,%eax
4134ea:	2b c2                	sub    %edx,%eax
4134ec:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
4134f2:	8b d0                	mov    %eax,%edx
4134f4:	8a 06                	mov    (%esi),%al
4134f6:	8d 76 01             	lea    0x1(%esi),%esi
4134f9:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4134fd:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
413501:	88 4e ff             	mov    %cl,-0x1(%esi)
413504:	83 eb 01             	sub    $0x1,%ebx
413507:	75 eb                	jne    0x4134f4
413509:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41350f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413515:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
41351b:	8b da                	mov    %edx,%ebx
41351d:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
413523:	3b fe                	cmp    %esi,%edi
413525:	76 3e                	jbe    0x413565
413527:	eb 07                	jmp    0x413530
413529:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
413530:	03 f0                	add    %eax,%esi
413532:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
413538:	3b f7                	cmp    %edi,%esi
41353a:	73 23                	jae    0x41355f
41353c:	8b 8d f8 fe ff ff    	mov    -0x108(%ebp),%ecx
413542:	57                   	push   %edi
413543:	56                   	push   %esi
413544:	ff 15 50 c2 41 00    	call   *0x41c250
41354a:	ff 95 f8 fe ff ff    	call   *-0x108(%ebp)
413550:	83 c4 08             	add    $0x8,%esp
413553:	85 c0                	test   %eax,%eax
413555:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41355b:	7e d3                	jle    0x413530
41355d:	eb 42                	jmp    0x4135a1
41355f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413565:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41356b:	eb 03                	jmp    0x413570
41356d:	8d 49 00             	lea    0x0(%ecx),%ecx
413570:	03 f0                	add    %eax,%esi
413572:	3b f2                	cmp    %edx,%esi
413574:	77 1f                	ja     0x413595
413576:	57                   	push   %edi
413577:	56                   	push   %esi
413578:	8b cb                	mov    %ebx,%ecx
41357a:	ff 15 50 c2 41 00    	call   *0x41c250
413580:	ff d3                	call   *%ebx
413582:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413588:	83 c4 08             	add    $0x8,%esp
41358b:	85 c0                	test   %eax,%eax
41358d:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
413593:	7e db                	jle    0x413570
413595:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
41359b:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
4135a1:	8b b5 f8 fe ff ff    	mov    -0x108(%ebp),%esi
4135a7:	eb 07                	jmp    0x4135b0
4135a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4135b0:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4135b6:	8b cb                	mov    %ebx,%ecx
4135b8:	2b d8                	sub    %eax,%ebx
4135ba:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
4135c0:	3b df                	cmp    %edi,%ebx
4135c2:	76 1f                	jbe    0x4135e3
4135c4:	57                   	push   %edi
4135c5:	53                   	push   %ebx
4135c6:	8b ce                	mov    %esi,%ecx
4135c8:	ff 15 50 c2 41 00    	call   *0x41c250
4135ce:	ff d6                	call   *%esi
4135d0:	83 c4 08             	add    $0x8,%esp
4135d3:	85 c0                	test   %eax,%eax
4135d5:	7f d9                	jg     0x4135b0
4135d7:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4135dd:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
4135e3:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4135e9:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
4135ef:	3b de                	cmp    %esi,%ebx
4135f1:	72 4a                	jb     0x41363d
4135f3:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
4135f9:	8b d3                	mov    %ebx,%edx
4135fb:	74 2b                	je     0x413628
4135fd:	2b f3                	sub    %ebx,%esi
4135ff:	8b d8                	mov    %eax,%ebx
413601:	8a 02                	mov    (%edx),%al
413603:	8d 52 01             	lea    0x1(%edx),%edx
413606:	8a 4c 16 ff          	mov    -0x1(%esi,%edx,1),%cl
41360a:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
41360e:	88 4a ff             	mov    %cl,-0x1(%edx)
413611:	83 eb 01             	sub    $0x1,%ebx
413614:	75 eb                	jne    0x413601
413616:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
41361c:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
413622:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
413628:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
41362e:	3b fb                	cmp    %ebx,%edi
413630:	0f 85 ed fe ff ff    	jne    0x413523
413636:	8b fe                	mov    %esi,%edi
413638:	e9 e6 fe ff ff       	jmp    0x413523
41363d:	3b f9                	cmp    %ecx,%edi
41363f:	73 3c                	jae    0x41367d
413641:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
413647:	eb 07                	jmp    0x413650
413649:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
413650:	2b c8                	sub    %eax,%ecx
413652:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
413658:	3b cf                	cmp    %edi,%ecx
41365a:	76 21                	jbe    0x41367d
41365c:	57                   	push   %edi
41365d:	51                   	push   %ecx
41365e:	8b cb                	mov    %ebx,%ecx
413660:	ff 15 50 c2 41 00    	call   *0x41c250
413666:	ff d3                	call   *%ebx
413668:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
41366e:	83 c4 08             	add    $0x8,%esp
413671:	85 c0                	test   %eax,%eax
413673:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
413679:	74 d5                	je     0x413650
41367b:	eb 44                	jmp    0x4136c1
41367d:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
413683:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
413689:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
413690:	2b c8                	sub    %eax,%ecx
413692:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
413698:	3b ce                	cmp    %esi,%ecx
41369a:	76 1f                	jbe    0x4136bb
41369c:	57                   	push   %edi
41369d:	51                   	push   %ecx
41369e:	8b cb                	mov    %ebx,%ecx
4136a0:	ff 15 50 c2 41 00    	call   *0x41c250
4136a6:	ff d3                	call   *%ebx
4136a8:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
4136ae:	83 c4 08             	add    $0x8,%esp
4136b1:	85 c0                	test   %eax,%eax
4136b3:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4136b9:	74 d5                	je     0x413690
4136bb:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4136c1:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4136c7:	8b ca                	mov    %edx,%ecx
4136c9:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
4136cf:	2b ce                	sub    %esi,%ecx
4136d1:	8b c7                	mov    %edi,%eax
4136d3:	2b 85 fc fe ff ff    	sub    -0x104(%ebp),%eax
4136d9:	3b c1                	cmp    %ecx,%eax
4136db:	7c 3d                	jl     0x41371a
4136dd:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4136e3:	3b c7                	cmp    %edi,%eax
4136e5:	73 18                	jae    0x4136ff
4136e7:	8b 8d e8 fe ff ff    	mov    -0x118(%ebp),%ecx
4136ed:	89 44 8d 84          	mov    %eax,-0x7c(%ebp,%ecx,4)
4136f1:	89 bc 8d 0c ff ff ff 	mov    %edi,-0xf4(%ebp,%ecx,4)
4136f8:	41                   	inc    %ecx
4136f9:	89 8d e8 fe ff ff    	mov    %ecx,-0x118(%ebp)
4136ff:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
413705:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
41370b:	3b f1                	cmp    %ecx,%esi
41370d:	73 44                	jae    0x413753
41370f:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
413715:	e9 f8 fb ff ff       	jmp    0x413312
41371a:	3b f2                	cmp    %edx,%esi
41371c:	73 18                	jae    0x413736
41371e:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
413724:	89 74 85 84          	mov    %esi,-0x7c(%ebp,%eax,4)
413728:	89 94 85 0c ff ff ff 	mov    %edx,-0xf4(%ebp,%eax,4)
41372f:	40                   	inc    %eax
413730:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
413736:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
41373c:	3b f7                	cmp    %edi,%esi
41373e:	73 0d                	jae    0x41374d
413740:	8b cf                	mov    %edi,%ecx
413742:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
413748:	e9 bf fb ff ff       	jmp    0x41330c
41374d:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
413753:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
413759:	83 e8 01             	sub    $0x1,%eax
41375c:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
413762:	0f 88 76 fb ff ff    	js     0x4132de
413768:	8b 74 85 84          	mov    -0x7c(%ebp,%eax,4),%esi
41376c:	8b 8c 85 0c ff ff ff 	mov    -0xf4(%ebp,%eax,4),%ecx
413773:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
413779:	e9 8e fb ff ff       	jmp    0x41330c
41377e:	8b ff                	mov    %edi,%edi
413780:	55                   	push   %ebp
413781:	8b ec                	mov    %esp,%ebp
413783:	8b 4d 08             	mov    0x8(%ebp),%ecx
413786:	53                   	push   %ebx
413787:	8b 5d 10             	mov    0x10(%ebp),%ebx
41378a:	56                   	push   %esi
41378b:	8b 75 14             	mov    0x14(%ebp),%esi
41378e:	85 f6                	test   %esi,%esi
413790:	75 1e                	jne    0x4137b0
413792:	85 c9                	test   %ecx,%ecx
413794:	75 1e                	jne    0x4137b4
413796:	39 75 0c             	cmp    %esi,0xc(%ebp)
413799:	74 27                	je     0x4137c2
41379b:	e8 33 b5 ff ff       	call   0x40ecd3
4137a0:	6a 16                	push   $0x16
4137a2:	5e                   	pop    %esi
4137a3:	89 30                	mov    %esi,(%eax)
4137a5:	e8 6c b4 ff ff       	call   0x40ec16
4137aa:	8b c6                	mov    %esi,%eax
4137ac:	5e                   	pop    %esi
4137ad:	5b                   	pop    %ebx
4137ae:	5d                   	pop    %ebp
4137af:	c3                   	ret
4137b0:	85 c9                	test   %ecx,%ecx
4137b2:	74 e7                	je     0x41379b
4137b4:	8b 45 0c             	mov    0xc(%ebp),%eax
4137b7:	85 c0                	test   %eax,%eax
4137b9:	74 e0                	je     0x41379b
4137bb:	85 f6                	test   %esi,%esi
4137bd:	75 07                	jne    0x4137c6
4137bf:	c6 01 00             	movb   $0x0,(%ecx)
4137c2:	33 c0                	xor    %eax,%eax
4137c4:	eb e6                	jmp    0x4137ac
4137c6:	85 db                	test   %ebx,%ebx
4137c8:	75 04                	jne    0x4137ce
4137ca:	88 19                	mov    %bl,(%ecx)
4137cc:	eb cd                	jmp    0x41379b
4137ce:	2b d9                	sub    %ecx,%ebx
4137d0:	8b d1                	mov    %ecx,%edx
4137d2:	57                   	push   %edi
4137d3:	8b f8                	mov    %eax,%edi
4137d5:	83 fe ff             	cmp    $0xffffffff,%esi
4137d8:	75 11                	jne    0x4137eb
4137da:	8a 04 13             	mov    (%ebx,%edx,1),%al
4137dd:	88 02                	mov    %al,(%edx)
4137df:	42                   	inc    %edx
4137e0:	84 c0                	test   %al,%al
4137e2:	74 27                	je     0x41380b
4137e4:	83 ef 01             	sub    $0x1,%edi
4137e7:	75 f1                	jne    0x4137da
4137e9:	eb 20                	jmp    0x41380b
4137eb:	8b ce                	mov    %esi,%ecx
4137ed:	8a 04 13             	mov    (%ebx,%edx,1),%al
4137f0:	88 02                	mov    %al,(%edx)
4137f2:	42                   	inc    %edx
4137f3:	84 c0                	test   %al,%al
4137f5:	74 0a                	je     0x413801
4137f7:	83 ef 01             	sub    $0x1,%edi
4137fa:	74 05                	je     0x413801
4137fc:	83 e9 01             	sub    $0x1,%ecx
4137ff:	75 ec                	jne    0x4137ed
413801:	85 c9                	test   %ecx,%ecx
413803:	8b 4d 08             	mov    0x8(%ebp),%ecx
413806:	75 03                	jne    0x41380b
413808:	c6 02 00             	movb   $0x0,(%edx)
41380b:	85 ff                	test   %edi,%edi
41380d:	5f                   	pop    %edi
41380e:	75 b2                	jne    0x4137c2
413810:	83 fe ff             	cmp    $0xffffffff,%esi
413813:	75 0d                	jne    0x413822
413815:	8b 45 0c             	mov    0xc(%ebp),%eax
413818:	6a 50                	push   $0x50
41381a:	c6 44 01 ff 00       	movb   $0x0,-0x1(%ecx,%eax,1)