4065e5:	ff 15 5c 71 40 00    	call   *0x40715c
4065eb:	ff 75 c0             	push   -0x40(%ebp)
4065ee:	6a 40                	push   $0x40
4065f0:	ff 15 58 71 40 00    	call   *0x407158
4065f6:	85 c0                	test   %eax,%eax
4065f8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4065fb:	0f 84 00 09 00 00    	je     0x406f01
406601:	8b 45 f8             	mov    -0x8(%ebp),%eax
406604:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
406607:	c7 45 b8 05 00 00 00 	movl   $0x5,-0x48(%ebp)
40660e:	80 64 08 ff 00       	andb   $0x0,-0x1(%eax,%ecx,1)
406613:	eb 21                	jmp    0x406636
406615:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406619:	0f 84 45 08 00 00    	je     0x406e64
40661f:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406622:	8b 45 f4             	mov    -0xc(%ebp),%eax
406625:	ff 4d 94             	decl   -0x6c(%ebp)
406628:	0f b6 09             	movzbl (%ecx),%ecx
40662b:	c1 e0 08             	shl    $0x8,%eax
40662e:	0b c1                	or     %ecx,%eax
406630:	ff 45 90             	incl   -0x70(%ebp)
406633:	89 45 f4             	mov    %eax,-0xc(%ebp)
406636:	8b 45 b8             	mov    -0x48(%ebp),%eax
406639:	ff 4d b8             	decl   -0x48(%ebp)
40663c:	85 c0                	test   %eax,%eax
40663e:	75 d5                	jne    0x406615
406640:	8b 45 a0             	mov    -0x60(%ebp),%eax
406643:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406646:	23 45 e4             	and    -0x1c(%ebp),%eax
406649:	c7 85 7c ff ff ff 06 	movl   $0x6,-0x84(%ebp)
406650:	00 00 00
406653:	c1 e1 04             	shl    $0x4,%ecx
406656:	89 45 b4             	mov    %eax,-0x4c(%ebp)
406659:	03 c8                	add    %eax,%ecx
40665b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40665e:	8d 34 48             	lea    (%eax,%ecx,2),%esi
406661:	e9 6c 06 00 00       	jmp    0x406cd2
406666:	33 d2                	xor    %edx,%edx
406668:	39 55 c0             	cmp    %edx,-0x40(%ebp)
40666b:	75 6f                	jne    0x4066dc
40666d:	0f b6 45 a4          	movzbl -0x5c(%ebp),%eax
406671:	8b 75 a0             	mov    -0x60(%ebp),%esi
406674:	b1 08                	mov    $0x8,%cl
406676:	2a 4d c4             	sub    -0x3c(%ebp),%cl
406679:	23 75 e8             	and    -0x18(%ebp),%esi
40667c:	d3 e8                	shr    %cl,%eax
40667e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
406681:	d3 e6                	shl    %cl,%esi
406683:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406686:	03 c6                	add    %esi,%eax
406688:	8d 04 40             	lea    (%eax,%eax,2),%eax
40668b:	c1 e0 09             	shl    $0x9,%eax
40668e:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
406692:	8d 84 08 6c 0e 00 00 	lea    0xe6c(%eax,%ecx,1),%eax
406699:	89 45 a8             	mov    %eax,-0x58(%ebp)
40669c:	7d 05                	jge    0x4066a3
40669e:	89 55 c8             	mov    %edx,-0x38(%ebp)
4066a1:	eb 10                	jmp    0x4066b3
4066a3:	83 7d c8 0a          	cmpl   $0xa,-0x38(%ebp)
4066a7:	7d 06                	jge    0x4066af
4066a9:	83 6d c8 03          	subl   $0x3,-0x38(%ebp)
4066ad:	eb 04                	jmp    0x4066b3
4066af:	83 6d c8 06          	subl   $0x6,-0x38(%ebp)
4066b3:	39 55 cc             	cmp    %edx,-0x34(%ebp)
4066b6:	74 1c                	je     0x4066d4
4066b8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4066bb:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4066be:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4066c1:	72 03                	jb     0x4066c6
4066c3:	03 45 8c             	add    -0x74(%ebp),%eax
4066c6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4066c9:	33 db                	xor    %ebx,%ebx
4066cb:	43                   	inc    %ebx
4066cc:	8a 04 08             	mov    (%eax,%ecx,1),%al
4066cf:	88 45 a5             	mov    %al,-0x5b(%ebp)
4066d2:	eb 68                	jmp    0x40673c
4066d4:	33 db                	xor    %ebx,%ebx
4066d6:	43                   	inc    %ebx
4066d7:	e9 cd 01 00 00       	jmp    0x4068a9
4066dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4066df:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4066e2:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
4066e9:	c7 85 7c ff ff ff 07 	movl   $0x7,-0x84(%ebp)
4066f0:	00 00 00
4066f3:	8d b4 48 80 01 00 00 	lea    0x180(%eax,%ecx,2),%esi
4066fa:	e9 d3 05 00 00       	jmp    0x406cd2
4066ff:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406703:	0f 84 67 07 00 00    	je     0x406e70
406709:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40670c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40670f:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406713:	0f b6 09             	movzbl (%ecx),%ecx
406716:	ff 4d 94             	decl   -0x6c(%ebp)
406719:	c1 e0 08             	shl    $0x8,%eax
40671c:	0b c1                	or     %ecx,%eax
40671e:	ff 45 90             	incl   -0x70(%ebp)
406721:	89 45 f4             	mov    %eax,-0xc(%ebp)
406724:	8b 45 c0             	mov    -0x40(%ebp),%eax
406727:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40672a:	0f 85 ad 00 00 00    	jne    0x4067dd
406730:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
406736:	0f 8d 05 01 00 00    	jge    0x406841
40673c:	0f b6 45 a5          	movzbl -0x5b(%ebp),%eax
406740:	d0 65 a5             	shlb   $1,-0x5b(%ebp)
406743:	8b 4d a8             	mov    -0x58(%ebp),%ecx
406746:	c1 e8 07             	shr    $0x7,%eax
406749:	89 45 b8             	mov    %eax,-0x48(%ebp)
40674c:	40                   	inc    %eax
40674d:	c1 e0 08             	shl    $0x8,%eax
406750:	03 c3                	add    %ebx,%eax
406752:	8d 34 41             	lea    (%ecx,%eax,2),%esi
406755:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406758:	c1 e9 0b             	shr    $0xb,%ecx
40675b:	66 8b 06             	mov    (%esi),%ax
40675e:	89 75 ac             	mov    %esi,-0x54(%ebp)
406761:	0f b7 d0             	movzwl %ax,%edx
406764:	0f af ca             	imul   %edx,%ecx
406767:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
40676a:	73 1a                	jae    0x406786
40676c:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
406770:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406773:	b9 00 08 00 00       	mov    $0x800,%ecx
406778:	2b ca                	sub    %edx,%ecx
40677a:	c1 f9 05             	sar    $0x5,%ecx
40677d:	03 c8                	add    %eax,%ecx
40677f:	03 db                	add    %ebx,%ebx
406781:	66 89 0e             	mov    %cx,(%esi)
406784:	eb 1d                	jmp    0x4067a3
406786:	29 4d f0             	sub    %ecx,-0x10(%ebp)
406789:	29 4d f4             	sub    %ecx,-0xc(%ebp)
40678c:	66 8b c8             	mov    %ax,%cx
40678f:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
406796:	66 c1 e9 05          	shr    $0x5,%cx
40679a:	2b c1                	sub    %ecx,%eax
40679c:	8d 5c 1b 01          	lea    0x1(%ebx,%ebx,1),%ebx
4067a0:	66 89 06             	mov    %ax,(%esi)
4067a3:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4067aa:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4067ad:	0f 83 71 ff ff ff    	jae    0x406724
4067b3:	e9 47 ff ff ff       	jmp    0x4066ff
4067b8:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
4067bc:	0f 84 ba 06 00 00    	je     0x406e7c
4067c2:	8b 4d 90             	mov    -0x70(%ebp),%ecx
4067c5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4067c8:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
4067cc:	0f b6 09             	movzbl (%ecx),%ecx
4067cf:	ff 4d 94             	decl   -0x6c(%ebp)
4067d2:	c1 e0 08             	shl    $0x8,%eax
4067d5:	0b c1                	or     %ecx,%eax
4067d7:	ff 45 90             	incl   -0x70(%ebp)
4067da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4067dd:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4067e3:	7d 5c                	jge    0x406841
4067e5:	8b 45 a8             	mov    -0x58(%ebp),%eax
4067e8:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
4067eb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4067ee:	8d 34 02             	lea    (%edx,%eax,1),%esi
4067f1:	c1 e9 0b             	shr    $0xb,%ecx
4067f4:	66 8b 06             	mov    (%esi),%ax
4067f7:	89 75 ac             	mov    %esi,-0x54(%ebp)
4067fa:	0f b7 f8             	movzwl %ax,%edi
4067fd:	0f af cf             	imul   %edi,%ecx
406800:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406803:	73 16                	jae    0x40681b
406805:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406808:	b9 00 08 00 00       	mov    $0x800,%ecx
40680d:	2b cf                	sub    %edi,%ecx
40680f:	c1 f9 05             	sar    $0x5,%ecx
406812:	03 c8                	add    %eax,%ecx
406814:	03 db                	add    %ebx,%ebx
406816:	66 89 0e             	mov    %cx,(%esi)
406819:	eb 15                	jmp    0x406830
40681b:	29 4d f0             	sub    %ecx,-0x10(%ebp)
40681e:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406821:	66 8b c8             	mov    %ax,%cx
406824:	8d 5a 01             	lea    0x1(%edx),%ebx
406827:	66 c1 e9 05          	shr    $0x5,%cx
40682b:	2b c1                	sub    %ecx,%eax
40682d:	66 89 06             	mov    %ax,(%esi)
406830:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406837:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40683a:	73 a1                	jae    0x4067dd
40683c:	e9 77 ff ff ff       	jmp    0x4067b8
406841:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
406845:	8a 45 bc             	mov    -0x44(%ebp),%al
406848:	88 45 a4             	mov    %al,-0x5c(%ebp)
40684b:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
40684f:	0f 84 3f 06 00 00    	je     0x406e94
406855:	8b 4d 98             	mov    -0x68(%ebp),%ecx
406858:	8a 45 a4             	mov    -0x5c(%ebp),%al
40685b:	8b 55 f8             	mov    -0x8(%ebp),%edx
40685e:	ff 45 a0             	incl   -0x60(%ebp)
406861:	ff 45 98             	incl   -0x68(%ebp)
406864:	ff 4d 9c             	decl   -0x64(%ebp)
406867:	88 01                	mov    %al,(%ecx)
406869:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40686c:	88 04 11             	mov    %al,(%ecx,%edx,1)
40686f:	8d 41 01             	lea    0x1(%ecx),%eax
406872:	33 d2                	xor    %edx,%edx
406874:	f7 75 8c             	divl   -0x74(%ebp)
406877:	e9 95 01 00 00       	jmp    0x406a11
40687c:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406880:	0f 84 02 06 00 00    	je     0x406e88
406886:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406889:	8b 45 f4             	mov    -0xc(%ebp),%eax
40688c:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406890:	0f b6 09             	movzbl (%ecx),%ecx
406893:	ff 4d 94             	decl   -0x6c(%ebp)
406896:	c1 e0 08             	shl    $0x8,%eax
406899:	0b c1                	or     %ecx,%eax
40689b:	ff 45 90             	incl   -0x70(%ebp)
40689e:	89 45 f4             	mov    %eax,-0xc(%ebp)
4068a1:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4068a7:	7d 9c                	jge    0x406845
4068a9:	8b 45 a8             	mov    -0x58(%ebp),%eax
4068ac:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
4068af:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4068b2:	8d 34 02             	lea    (%edx,%eax,1),%esi
4068b5:	c1 e9 0b             	shr    $0xb,%ecx
4068b8:	66 8b 06             	mov    (%esi),%ax
4068bb:	89 75 ac             	mov    %esi,-0x54(%ebp)
4068be:	0f b7 f8             	movzwl %ax,%edi
4068c1:	0f af cf             	imul   %edi,%ecx
4068c4:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
4068c7:	73 16                	jae    0x4068df
4068c9:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4068cc:	b9 00 08 00 00       	mov    $0x800,%ecx
4068d1:	2b cf                	sub    %edi,%ecx
4068d3:	c1 f9 05             	sar    $0x5,%ecx
4068d6:	03 c8                	add    %eax,%ecx
4068d8:	03 db                	add    %ebx,%ebx
4068da:	66 89 0e             	mov    %cx,(%esi)
4068dd:	eb 15                	jmp    0x4068f4
4068df:	29 4d f0             	sub    %ecx,-0x10(%ebp)
4068e2:	29 4d f4             	sub    %ecx,-0xc(%ebp)
4068e5:	66 8b c8             	mov    %ax,%cx
4068e8:	8d 5a 01             	lea    0x1(%edx),%ebx
4068eb:	66 c1 e9 05          	shr    $0x5,%cx
4068ef:	2b c1                	sub    %ecx,%eax
4068f1:	66 89 06             	mov    %ax,(%esi)
4068f4:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4068fb:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4068fe:	73 a1                	jae    0x4068a1
406900:	e9 77 ff ff ff       	jmp    0x40687c
406905:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
406909:	75 1c                	jne    0x406927
40690b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40690e:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406911:	c7 85 7c ff ff ff 08 	movl   $0x8,-0x84(%ebp)
406918:	00 00 00
40691b:	8d b4 48 98 01 00 00 	lea    0x198(%eax,%ecx,2),%esi
406922:	e9 ab 03 00 00       	jmp    0x406cd2
406927:	8b 45 dc             	mov    -0x24(%ebp),%eax
40692a:	c7 45 80 16 00 00 00 	movl   $0x16,-0x80(%ebp)
406931:	89 45 e0             	mov    %eax,-0x20(%ebp)
406934:	8b 45 d8             	mov    -0x28(%ebp),%eax
406937:	89 45 dc             	mov    %eax,-0x24(%ebp)
40693a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40693d:	89 45 d8             	mov    %eax,-0x28(%ebp)
406940:	33 c0                	xor    %eax,%eax
406942:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406946:	0f 9d c0             	setge  %al
406949:	48                   	dec    %eax
40694a:	24 fd                	and    $0xfd,%al
40694c:	83 c0 0a             	add    $0xa,%eax
40694f:	89 45 c8             	mov    %eax,-0x38(%ebp)
406952:	8b 45 fc             	mov    -0x4(%ebp),%eax
406955:	05 64 06 00 00       	add    $0x664,%eax
40695a:	89 45 a8             	mov    %eax,-0x58(%ebp)
40695d:	8b 75 a8             	mov    -0x58(%ebp),%esi
406960:	c7 85 7c ff ff ff 12 	movl   $0x12,-0x84(%ebp)
406967:	00 00 00
40696a:	e9 63 03 00 00       	jmp    0x406cd2
40696f:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406973:	75 21                	jne    0x406996
406975:	8b 45 c8             	mov    -0x38(%ebp),%eax
406978:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40697b:	83 c0 0f             	add    $0xf,%eax
40697e:	c7 85 7c ff ff ff 09 	movl   $0x9,-0x84(%ebp)
406985:	00 00 00
406988:	c1 e0 04             	shl    $0x4,%eax
40698b:	03 45 b4             	add    -0x4c(%ebp),%eax
40698e:	8d 34 41             	lea    (%ecx,%eax,2),%esi
406991:	e9 3c 03 00 00       	jmp    0x406cd2
406996:	8b 45 fc             	mov    -0x4(%ebp),%eax
406999:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40699c:	c7 85 7c ff ff ff 0a 	movl   $0xa,-0x84(%ebp)
4069a3:	00 00 00
4069a6:	8d b4 48 b0 01 00 00 	lea    0x1b0(%eax,%ecx,2),%esi
4069ad:	e9 20 03 00 00       	jmp    0x406cd2
4069b2:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4069b6:	0f 85 b1 00 00 00    	jne    0x406a6d
4069bc:	83 7d a0 00          	cmpl   $0x0,-0x60(%ebp)
4069c0:	0f 84 3b 05 00 00    	je     0x406f01
4069c6:	33 c0                	xor    %eax,%eax
4069c8:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
4069cc:	0f 9d c0             	setge  %al
4069cf:	8d 44 00 09          	lea    0x9(%eax,%eax,1),%eax
4069d3:	89 45 c8             	mov    %eax,-0x38(%ebp)
4069d6:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
4069da:	0f 84 c0 04 00 00    	je     0x406ea0
4069e0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4069e3:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4069e6:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4069e9:	72 03                	jb     0x4069ee
4069eb:	03 45 8c             	add    -0x74(%ebp),%eax
4069ee:	8b 55 f8             	mov    -0x8(%ebp),%edx
4069f1:	8a 0c 10             	mov    (%eax,%edx,1),%cl
4069f4:	8b 45 ec             	mov    -0x14(%ebp),%eax
4069f7:	88 4d a4             	mov    %cl,-0x5c(%ebp)
4069fa:	88 0c 10             	mov    %cl,(%eax,%edx,1)
4069fd:	40                   	inc    %eax
4069fe:	33 d2                	xor    %edx,%edx
406a00:	f7 75 8c             	divl   -0x74(%ebp)
406a03:	8b 45 98             	mov    -0x68(%ebp),%eax
406a06:	ff 45 a0             	incl   -0x60(%ebp)
406a09:	ff 45 98             	incl   -0x68(%ebp)
406a0c:	ff 4d 9c             	decl   -0x64(%ebp)
406a0f:	88 08                	mov    %cl,(%eax)
406a11:	89 55 ec             	mov    %edx,-0x14(%ebp)
406a14:	c7 85 78 ff ff ff 02 	movl   $0x2,-0x88(%ebp)
406a1b:	00 00 00
406a1e:	e9 c7 fa ff ff       	jmp    0x4064ea
406a23:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406a27:	75 05                	jne    0x406a2e
406a29:	8b 45 d8             	mov    -0x28(%ebp),%eax
406a2c:	eb 36                	jmp    0x406a64
406a2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a31:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406a34:	c7 85 7c ff ff ff 0b 	movl   $0xb,-0x84(%ebp)
406a3b:	00 00 00
406a3e:	8d b4 48 c8 01 00 00 	lea    0x1c8(%eax,%ecx,2),%esi
406a45:	e9 88 02 00 00       	jmp    0x406cd2
406a4a:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406a4e:	75 05                	jne    0x406a55
406a50:	8b 45 dc             	mov    -0x24(%ebp),%eax
406a53:	eb 09                	jmp    0x406a5e
406a55:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406a58:	8b 45 e0             	mov    -0x20(%ebp),%eax
406a5b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406a5e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406a61:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406a64:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406a67:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406a6a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406a6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a70:	c7 45 80 15 00 00 00 	movl   $0x15,-0x80(%ebp)
406a77:	05 68 0a 00 00       	add    $0xa68,%eax
406a7c:	89 45 a8             	mov    %eax,-0x58(%ebp)
406a7f:	e9 d9 fe ff ff       	jmp    0x40695d