4073b6:	8b 55 14             	mov    0x14(%ebp),%edx
4073b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4073bc:	89 02                	mov    %eax,(%edx)
4073be:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
4073c5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4073c8:	8b e5                	mov    %ebp,%esp
4073ca:	5d                   	pop    %ebp
4073cb:	c3                   	ret
4073cc:	cc                   	int3
4073cd:	cc                   	int3
4073ce:	cc                   	int3
4073cf:	cc                   	int3
4073d0:	55                   	push   %ebp
4073d1:	8b ec                	mov    %esp,%ebp
4073d3:	83 ec 18             	sub    $0x18,%esp
4073d6:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4073dd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4073e1:	74 06                	je     0x4073e9
4073e3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4073e7:	75 08                	jne    0x4073f1
4073e9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4073ec:	e9 8f 00 00 00       	jmp    0x407480
4073f1:	8b 45 08             	mov    0x8(%ebp),%eax
4073f4:	50                   	push   %eax
4073f5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4073f8:	51                   	push   %ecx
4073f9:	e8 c2 b1 ff ff       	call   0x4025c0
4073fe:	8b 50 4c             	mov    0x4c(%eax),%edx
407401:	ff d2                	call   *%edx
407403:	6a 01                	push   $0x1
407405:	8d 45 e8             	lea    -0x18(%ebp),%eax
407408:	50                   	push   %eax
407409:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40740c:	51                   	push   %ecx
40740d:	e8 ae b1 ff ff       	call   0x4025c0
407412:	8b 50 54             	mov    0x54(%eax),%edx
407415:	ff d2                	call   *%edx
407417:	85 c0                	test   %eax,%eax
407419:	75 62                	jne    0x40747d
40741b:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
40741f:	83 c0 02             	add    $0x2,%eax
407422:	50                   	push   %eax
407423:	e8 58 f4 ff ff       	call   0x406880
407428:	83 c4 04             	add    $0x4,%esp
40742b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40742e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407432:	74 3b                	je     0x40746f
407434:	0f b7 4d f0          	movzwl -0x10(%ebp),%ecx
407438:	51                   	push   %ecx
407439:	8b 55 f4             	mov    -0xc(%ebp),%edx
40743c:	52                   	push   %edx
40743d:	8b 45 fc             	mov    -0x4(%ebp),%eax
407440:	50                   	push   %eax
407441:	e8 7a b1 ff ff       	call   0x4025c0
407446:	8b 48 10             	mov    0x10(%eax),%ecx
407449:	ff d1                	call   *%ecx
40744b:	83 c4 0c             	add    $0xc,%esp
40744e:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
407452:	99                   	cltd
407453:	2b c2                	sub    %edx,%eax
407455:	d1 f8                	sar    $1,%eax
407457:	33 d2                	xor    %edx,%edx
407459:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40745c:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
407460:	8b 55 0c             	mov    0xc(%ebp),%edx
407463:	8b 45 fc             	mov    -0x4(%ebp),%eax
407466:	89 02                	mov    %eax,(%edx)
407468:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40746f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407472:	51                   	push   %ecx
407473:	e8 48 b1 ff ff       	call   0x4025c0
407478:	8b 50 5c             	mov    0x5c(%eax),%edx
40747b:	ff d2                	call   *%edx
40747d:	8b 45 f8             	mov    -0x8(%ebp),%eax
407480:	8b e5                	mov    %ebp,%esp
407482:	5d                   	pop    %ebp
407483:	c3                   	ret
407484:	cc                   	int3
407485:	cc                   	int3
407486:	cc                   	int3
407487:	cc                   	int3
407488:	cc                   	int3
407489:	cc                   	int3
40748a:	cc                   	int3
40748b:	cc                   	int3
40748c:	cc                   	int3
40748d:	cc                   	int3
40748e:	cc                   	int3
40748f:	cc                   	int3
407490:	55                   	push   %ebp
407491:	8b ec                	mov    %esp,%ebp
407493:	83 ec 18             	sub    $0x18,%esp
407496:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40749d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4074a1:	74 06                	je     0x4074a9
4074a3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4074a7:	75 08                	jne    0x4074b1
4074a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4074ac:	e9 a5 00 00 00       	jmp    0x407556
4074b1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4074b5:	75 14                	jne    0x4074cb
4074b7:	8b 45 08             	mov    0x8(%ebp),%eax
4074ba:	50                   	push   %eax
4074bb:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4074be:	51                   	push   %ecx
4074bf:	e8 fc b0 ff ff       	call   0x4025c0
4074c4:	8b 50 50             	mov    0x50(%eax),%edx
4074c7:	ff d2                	call   *%edx
4074c9:	eb 18                	jmp    0x4074e3
4074cb:	8b 45 08             	mov    0x8(%ebp),%eax
4074ce:	89 45 ec             	mov    %eax,-0x14(%ebp)
4074d1:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
4074d5:	66 89 4d e8          	mov    %cx,-0x18(%ebp)
4074d9:	8b 55 0c             	mov    0xc(%ebp),%edx
4074dc:	83 c2 02             	add    $0x2,%edx
4074df:	66 89 55 ea          	mov    %dx,-0x16(%ebp)
4074e3:	6a 01                	push   $0x1
4074e5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4074e8:	50                   	push   %eax
4074e9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4074ec:	51                   	push   %ecx
4074ed:	e8 ce b0 ff ff       	call   0x4025c0
4074f2:	8b 50 58             	mov    0x58(%eax),%edx
4074f5:	ff d2                	call   *%edx
4074f7:	85 c0                	test   %eax,%eax
4074f9:	75 58                	jne    0x407553
4074fb:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
4074ff:	50                   	push   %eax
407500:	e8 db f4 ff ff       	call   0x4069e0
407505:	83 c4 04             	add    $0x4,%esp
407508:	89 45 fc             	mov    %eax,-0x4(%ebp)
40750b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40750f:	74 34                	je     0x407545
407511:	0f b7 4d f0          	movzwl -0x10(%ebp),%ecx
407515:	51                   	push   %ecx
407516:	8b 55 f4             	mov    -0xc(%ebp),%edx
407519:	52                   	push   %edx
40751a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40751d:	50                   	push   %eax
40751e:	e8 9d b0 ff ff       	call   0x4025c0
407523:	8b 48 10             	mov    0x10(%eax),%ecx
407526:	ff d1                	call   *%ecx
407528:	83 c4 0c             	add    $0xc,%esp
40752b:	0f b7 55 f0          	movzwl -0x10(%ebp),%edx
40752f:	8b 45 fc             	mov    -0x4(%ebp),%eax
407532:	c6 04 10 00          	movb   $0x0,(%eax,%edx,1)
407536:	8b 4d 10             	mov    0x10(%ebp),%ecx
407539:	8b 55 fc             	mov    -0x4(%ebp),%edx
40753c:	89 11                	mov    %edx,(%ecx)
40753e:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
407545:	8d 45 f0             	lea    -0x10(%ebp),%eax
407548:	50                   	push   %eax
407549:	e8 72 b0 ff ff       	call   0x4025c0
40754e:	8b 48 60             	mov    0x60(%eax),%ecx
407551:	ff d1                	call   *%ecx
407553:	8b 45 f8             	mov    -0x8(%ebp),%eax
407556:	8b e5                	mov    %ebp,%esp
407558:	5d                   	pop    %ebp
407559:	c3                   	ret
40755a:	cc                   	int3
40755b:	cc                   	int3
40755c:	cc                   	int3
40755d:	cc                   	int3
40755e:	cc                   	int3
40755f:	cc                   	int3
407560:	55                   	push   %ebp
407561:	8b ec                	mov    %esp,%ebp
407563:	8b 45 0c             	mov    0xc(%ebp),%eax
407566:	50                   	push   %eax
407567:	6a 00                	push   $0x0
407569:	8b 4d 08             	mov    0x8(%ebp),%ecx
40756c:	51                   	push   %ecx
40756d:	e8 1e ff ff ff       	call   0x407490
407572:	83 c4 0c             	add    $0xc,%esp
407575:	5d                   	pop    %ebp
407576:	c3                   	ret
407577:	cc                   	int3
407578:	cc                   	int3
407579:	cc                   	int3
40757a:	cc                   	int3
40757b:	cc                   	int3
40757c:	cc                   	int3
40757d:	cc                   	int3
40757e:	cc                   	int3
40757f:	cc                   	int3
407580:	55                   	push   %ebp
407581:	8b ec                	mov    %esp,%ebp
407583:	83 ec 08             	sub    $0x8,%esp
407586:	56                   	push   %esi
407587:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40758e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407592:	74 0c                	je     0x4075a0
407594:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407598:	74 06                	je     0x4075a0
40759a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40759e:	75 08                	jne    0x4075a8
4075a0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4075a3:	e9 9b 00 00 00       	jmp    0x407643
4075a8:	8b 45 08             	mov    0x8(%ebp),%eax
4075ab:	50                   	push   %eax
4075ac:	e8 af f4 ff ff       	call   0x406a60
4075b1:	83 c4 04             	add    $0x4,%esp
4075b4:	8b f0                	mov    %eax,%esi
4075b6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4075b9:	51                   	push   %ecx
4075ba:	e8 a1 f4 ff ff       	call   0x406a60
4075bf:	83 c4 04             	add    $0x4,%esp
4075c2:	8d 54 06 01          	lea    0x1(%esi,%eax,1),%edx
4075c6:	52                   	push   %edx
4075c7:	e8 34 f4 ff ff       	call   0x406a00
4075cc:	83 c4 04             	add    $0x4,%esp
4075cf:	89 45 fc             	mov    %eax,-0x4(%ebp)
4075d2:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4075d6:	74 68                	je     0x407640
4075d8:	8b 45 08             	mov    0x8(%ebp),%eax
4075db:	50                   	push   %eax
4075dc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075df:	51                   	push   %ecx
4075e0:	e8 db af ff ff       	call   0x4025c0
4075e5:	8b 50 2c             	mov    0x2c(%eax),%edx
4075e8:	ff d2                	call   *%edx
4075ea:	83 c4 08             	add    $0x8,%esp
4075ed:	8b 45 08             	mov    0x8(%ebp),%eax
4075f0:	50                   	push   %eax
4075f1:	e8 6a f4 ff ff       	call   0x406a60
4075f6:	83 c4 04             	add    $0x4,%esp
4075f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4075fc:	0f b7 54 41 fe       	movzwl -0x2(%ecx,%eax,2),%edx
407601:	83 fa 5c             	cmp    $0x5c,%edx
407604:	74 16                	je     0x40761c
407606:	68 74 60 41 00       	push   $0x416074
40760b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40760e:	50                   	push   %eax
40760f:	e8 ac af ff ff       	call   0x4025c0
407614:	8b 48 30             	mov    0x30(%eax),%ecx
407617:	ff d1                	call   *%ecx
407619:	83 c4 08             	add    $0x8,%esp
40761c:	8b 55 0c             	mov    0xc(%ebp),%edx
40761f:	52                   	push   %edx
407620:	8b 45 fc             	mov    -0x4(%ebp),%eax
407623:	50                   	push   %eax
407624:	e8 97 af ff ff       	call   0x4025c0
407629:	8b 48 30             	mov    0x30(%eax),%ecx
40762c:	ff d1                	call   *%ecx
40762e:	83 c4 08             	add    $0x8,%esp
407631:	8b 55 10             	mov    0x10(%ebp),%edx
407634:	8b 45 fc             	mov    -0x4(%ebp),%eax
407637:	89 02                	mov    %eax,(%edx)
407639:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
407640:	8b 45 f8             	mov    -0x8(%ebp),%eax
407643:	5e                   	pop    %esi
407644:	8b e5                	mov    %ebp,%esp
407646:	5d                   	pop    %ebp
407647:	c3                   	ret
407648:	cc                   	int3
407649:	cc                   	int3
40764a:	cc                   	int3
40764b:	cc                   	int3
40764c:	cc                   	int3
40764d:	cc                   	int3
40764e:	cc                   	int3
40764f:	cc                   	int3
407650:	55                   	push   %ebp
407651:	8b ec                	mov    %esp,%ebp
407653:	83 ec 08             	sub    $0x8,%esp
407656:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40765d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407661:	74 06                	je     0x407669
407663:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407667:	75 05                	jne    0x40766e
407669:	8b 45 f8             	mov    -0x8(%ebp),%eax
40766c:	eb 4c                	jmp    0x4076ba
40766e:	8b 45 08             	mov    0x8(%ebp),%eax
407671:	50                   	push   %eax
407672:	e8 e9 f3 ff ff       	call   0x406a60
407677:	83 c4 04             	add    $0x4,%esp
40767a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40767d:	eb 09                	jmp    0x407688
40767f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407682:	83 e9 01             	sub    $0x1,%ecx
407685:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407688:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40768c:	76 29                	jbe    0x4076b7
40768e:	8b 55 fc             	mov    -0x4(%ebp),%edx
407691:	8b 45 08             	mov    0x8(%ebp),%eax
407694:	0f b7 0c 50          	movzwl (%eax,%edx,2),%ecx
407698:	83 f9 5c             	cmp    $0x5c,%ecx
40769b:	75 18                	jne    0x4076b5
40769d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4076a0:	8b 45 08             	mov    0x8(%ebp),%eax
4076a3:	8d 4c 50 02          	lea    0x2(%eax,%edx,2),%ecx
4076a7:	8b 55 0c             	mov    0xc(%ebp),%edx
4076aa:	89 0a                	mov    %ecx,(%edx)
4076ac:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4076b3:	eb 02                	jmp    0x4076b7
4076b5:	eb c8                	jmp    0x40767f
4076b7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4076ba:	8b e5                	mov    %ebp,%esp
4076bc:	5d                   	pop    %ebp
4076bd:	c3                   	ret
4076be:	cc                   	int3
4076bf:	cc                   	int3
4076c0:	55                   	push   %ebp
4076c1:	8b ec                	mov    %esp,%ebp
4076c3:	83 ec 14             	sub    $0x14,%esp
4076c6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4076ca:	75 07                	jne    0x4076d3
4076cc:	33 c0                	xor    %eax,%eax
4076ce:	e9 a7 00 00 00       	jmp    0x40777a
4076d3:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4076da:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4076de:	75 0f                	jne    0x4076ef
4076e0:	8b 45 08             	mov    0x8(%ebp),%eax
4076e3:	50                   	push   %eax
4076e4:	e8 37 f3 ff ff       	call   0x406a20
4076e9:	83 c4 04             	add    $0x4,%esp
4076ec:	89 45 0c             	mov    %eax,0xc(%ebp)
4076ef:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4076f6:	eb 09                	jmp    0x407701
4076f8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4076fb:	83 c1 01             	add    $0x1,%ecx
4076fe:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407701:	8b 55 f8             	mov    -0x8(%ebp),%edx
407704:	3b 55 0c             	cmp    0xc(%ebp),%edx
407707:	7d 6c                	jge    0x407775
407709:	8b 45 08             	mov    0x8(%ebp),%eax
40770c:	03 45 f8             	add    -0x8(%ebp),%eax
40770f:	0f be 08             	movsbl (%eax),%ecx
407712:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407715:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
407719:	74 18                	je     0x407733
40771b:	8b 55 08             	mov    0x8(%ebp),%edx
40771e:	03 55 f8             	add    -0x8(%ebp),%edx
407721:	0f b6 02             	movzbl (%edx),%eax
407724:	50                   	push   %eax
407725:	e8 16 f4 ff ff       	call   0x406b40
40772a:	83 c4 04             	add    $0x4,%esp
40772d:	0f be c8             	movsbl %al,%ecx
407730:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407733:	8b 55 fc             	mov    -0x4(%ebp),%edx
407736:	33 55 f0             	xor    -0x10(%ebp),%edx
407739:	89 55 fc             	mov    %edx,-0x4(%ebp)
40773c:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
407743:	eb 09                	jmp    0x40774e
407745:	8b 45 f4             	mov    -0xc(%ebp),%eax
407748:	83 e8 01             	sub    $0x1,%eax
40774b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40774e:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
407752:	7c 1f                	jl     0x407773
407754:	8b 4d fc             	mov    -0x4(%ebp),%ecx