406710:	e8 20 07 00 00       	call   0x406e35
406715:	85 c0                	test   %eax,%eax
406717:	0f 88 f8 03 00 00    	js     0x406b15
40671d:	33 db                	xor    %ebx,%ebx
40671f:	8b f3                	mov    %ebx,%esi
406721:	ff 34 f5 30 17 40 00 	push   0x401730(,%esi,8)
406728:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
40672e:	50                   	push   %eax
40672f:	ff 15 8c f0 40 00    	call   *0x40f08c
406735:	85 c0                	test   %eax,%eax
406737:	74 10                	je     0x406749
406739:	46                   	inc    %esi
40673a:	83 fe 04             	cmp    $0x4,%esi
40673d:	72 e2                	jb     0x406721
40673f:	b8 09 00 02 80       	mov    $0x80020009,%eax
406744:	e9 cc 03 00 00       	jmp    0x406b15
406749:	0f b7 34 f5 34 17 40 	movzwl 0x401734(,%esi,8),%esi
406750:	00
406751:	8b cf                	mov    %edi,%ecx
406753:	e8 da 0e 00 00       	call   0x407632
406758:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
40675e:	8b cf                	mov    %edi,%ecx
406760:	50                   	push   %eax
406761:	e8 cf 06 00 00       	call   0x406e35
406766:	85 c0                	test   %eax,%eax
406768:	0f 88 a7 03 00 00    	js     0x406b15
40676e:	8b c6                	mov    %esi,%eax
406770:	6a 02                	push   $0x2
406772:	5f                   	pop    %edi
406773:	83 e8 08             	sub    $0x8,%eax
406776:	0f 84 36 03 00 00    	je     0x406ab2
40677c:	83 e8 09             	sub    $0x9,%eax
40677f:	0f 84 b3 01 00 00    	je     0x406938
406785:	2b c7                	sub    %edi,%eax
406787:	0f 84 33 01 00 00    	je     0x4068c0
40678d:	2d f5 3f 00 00       	sub    $0x3ff5,%eax
406792:	0f 85 66 03 00 00    	jne    0x406afe
406798:	8d 8d ec df ff ff    	lea    -0x2014(%ebp),%ecx
40679e:	8d 51 02             	lea    0x2(%ecx),%edx
4067a1:	66 8b 01             	mov    (%ecx),%ax
4067a4:	03 cf                	add    %edi,%ecx
4067a6:	66 3b c3             	cmp    %bx,%ax
4067a9:	75 f6                	jne    0x4067a1
4067ab:	2b ca                	sub    %edx,%ecx
4067ad:	89 9d e8 de ff ff    	mov    %ebx,-0x2118(%ebp)
4067b3:	d1 f9                	sar    $1,%ecx
4067b5:	8d 41 02             	lea    0x2(%ecx),%eax
4067b8:	f7 e7                	mul    %edi
4067ba:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4067bd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4067c1:	3b d3                	cmp    %ebx,%edx
4067c3:	0f 87 68 03 00 00    	ja     0x406b31
4067c9:	72 09                	jb     0x4067d4
4067cb:	83 f8 ff             	cmp    $0xffffffff,%eax
4067ce:	0f 87 5d 03 00 00    	ja     0x406b31
4067d4:	3d 00 01 00 00       	cmp    $0x100,%eax
4067d9:	76 14                	jbe    0x4067ef
4067db:	50                   	push   %eax
4067dc:	8d 8d e8 de ff ff    	lea    -0x2118(%ebp),%ecx
4067e2:	e8 e7 fa ff ff       	call   0x4062ce
4067e7:	8b b5 e8 de ff ff    	mov    -0x2118(%ebp),%esi
4067ed:	eb 0c                	jmp    0x4067fb
4067ef:	8d b5 ec de ff ff    	lea    -0x2114(%ebp),%esi
4067f5:	89 b5 e8 de ff ff    	mov    %esi,-0x2118(%ebp)
4067fb:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4067fe:	eb 20                	jmp    0x406820
406800:	b8 06 68 40 00       	mov    $0x406806,%eax
406805:	c3                   	ret
406806:	33 db                	xor    %ebx,%ebx
406808:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40680b:	8b 85 d8 de ff ff    	mov    -0x2128(%ebp),%eax
406811:	8b b5 e8 de ff ff    	mov    -0x2118(%ebp),%esi
406817:	6a 02                	push   $0x2
406819:	5f                   	pop    %edi
40681a:	89 85 d0 de ff ff    	mov    %eax,-0x2130(%ebp)
406820:	85 f6                	test   %esi,%esi
406822:	74 7b                	je     0x40689f
406824:	66 83 bd ec df ff ff 	cmpw   $0x0,-0x2014(%ebp)
40682b:	00
40682c:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
406832:	89 85 e4 de ff ff    	mov    %eax,-0x211c(%ebp)
406838:	74 40                	je     0x40687a
40683a:	50                   	push   %eax
40683b:	ff 15 f8 f0 40 00    	call   *0x40f0f8
406841:	8b c8                	mov    %eax,%ecx
406843:	8b 85 e4 de ff ff    	mov    -0x211c(%ebp),%eax
406849:	0f b7 10             	movzwl (%eax),%edx
40684c:	83 fa 5c             	cmp    $0x5c,%edx
40684f:	75 1c                	jne    0x40686d
406851:	6a 30                	push   $0x30
406853:	58                   	pop    %eax
406854:	66 39 01             	cmp    %ax,(%ecx)
406857:	8b 85 e4 de ff ff    	mov    -0x211c(%ebp),%eax
40685d:	75 0e                	jne    0x40686d
40685f:	33 c0                	xor    %eax,%eax
406861:	51                   	push   %ecx
406862:	66 89 06             	mov    %ax,(%esi)
406865:	ff 15 f8 f0 40 00    	call   *0x40f0f8
40686b:	eb 05                	jmp    0x406872
40686d:	66 89 16             	mov    %dx,(%esi)
406870:	03 c7                	add    %edi,%eax
406872:	83 c6 02             	add    $0x2,%esi
406875:	66 39 18             	cmp    %bx,(%eax)
406878:	eb b8                	jmp    0x406832
40687a:	8b 8d dc de ff ff    	mov    -0x2124(%ebp),%ecx
406880:	33 c0                	xor    %eax,%eax
406882:	89 06                	mov    %eax,(%esi)
406884:	ff b5 e8 de ff ff    	push   -0x2118(%ebp)
40688a:	ff b5 e0 de ff ff    	push   -0x2120(%ebp)
406890:	e8 92 fd ff ff       	call   0x406627
406895:	8b b5 e8 de ff ff    	mov    -0x2118(%ebp),%esi
40689b:	8b f8                	mov    %eax,%edi
40689d:	eb 03                	jmp    0x4068a2
40689f:	6a 0e                	push   $0xe
4068a1:	5f                   	pop    %edi
4068a2:	8d 85 ec de ff ff    	lea    -0x2114(%ebp),%eax
4068a8:	3b f0                	cmp    %eax,%esi
4068aa:	0f 84 41 02 00 00    	je     0x406af1
4068b0:	8d 8d e8 de ff ff    	lea    -0x2118(%ebp),%ecx
4068b6:	e8 fd f9 ff ff       	call   0x4062b8
4068bb:	e9 31 02 00 00       	jmp    0x406af1
4068c0:	8d 85 e4 de ff ff    	lea    -0x211c(%ebp),%eax
4068c6:	89 9d e4 de ff ff    	mov    %ebx,-0x211c(%ebp)
4068cc:	50                   	push   %eax
4068cd:	53                   	push   %ebx
4068ce:	53                   	push   %ebx
4068cf:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
4068d5:	89 9d d8 de ff ff    	mov    %ebx,-0x2128(%ebp)
4068db:	50                   	push   %eax
4068dc:	ff 15 d4 f0 40 00    	call   *0x40f0d4
4068e2:	8b f0                	mov    %eax,%esi
4068e4:	85 f6                	test   %esi,%esi
4068e6:	79 12                	jns    0x4068fa
4068e8:	8d 8d d8 de ff ff    	lea    -0x2128(%ebp),%ecx
4068ee:	e8 99 fd ff ff       	call   0x40668c
4068f3:	8b c6                	mov    %esi,%eax
4068f5:	e9 1b 02 00 00       	jmp    0x406b15
4068fa:	8b 85 e4 de ff ff    	mov    -0x211c(%ebp),%eax
406900:	6a 04                	push   $0x4
406902:	89 85 d4 de ff ff    	mov    %eax,-0x212c(%ebp)
406908:	8d 85 d4 de ff ff    	lea    -0x212c(%ebp),%eax
40690e:	50                   	push   %eax
40690f:	8b 85 dc de ff ff    	mov    -0x2124(%ebp),%eax
406915:	6a 04                	push   $0x4
406917:	53                   	push   %ebx
406918:	ff b5 e0 de ff ff    	push   -0x2120(%ebp)
40691e:	ff 30                	push   (%eax)
406920:	ff 15 10 f0 40 00    	call   *0x40f010
406926:	8d 8d d8 de ff ff    	lea    -0x2128(%ebp),%ecx
40692c:	8b f8                	mov    %eax,%edi
40692e:	e8 59 fd ff ff       	call   0x40668c
406933:	e9 b9 01 00 00       	jmp    0x406af1
406938:	8d 8d ec df ff ff    	lea    -0x2014(%ebp),%ecx
40693e:	8d 51 02             	lea    0x2(%ecx),%edx
406941:	66 8b 01             	mov    (%ecx),%ax
406944:	03 cf                	add    %edi,%ecx
406946:	66 3b c3             	cmp    %bx,%ax
406949:	75 f6                	jne    0x406941
40694b:	2b ca                	sub    %edx,%ecx
40694d:	d1 f9                	sar    $1,%ecx
40694f:	89 8d e4 de ff ff    	mov    %ecx,-0x211c(%ebp)
406955:	89 8d cc de ff ff    	mov    %ecx,-0x2134(%ebp)
40695b:	f6 c1 01             	test   $0x1,%cl
40695e:	0f 85 85 00 00 00    	jne    0x4069e9
406964:	8b c1                	mov    %ecx,%eax
406966:	89 9d e8 de ff ff    	mov    %ebx,-0x2118(%ebp)
40696c:	99                   	cltd
40696d:	2b c2                	sub    %edx,%eax
40696f:	8b f8                	mov    %eax,%edi
406971:	d1 ff                	sar    $1,%edi
406973:	89 bd d4 de ff ff    	mov    %edi,-0x212c(%ebp)
406979:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
406980:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406984:	81 ff 00 01 00 00    	cmp    $0x100,%edi
40698a:	76 3c                	jbe    0x4069c8
40698c:	57                   	push   %edi
40698d:	8d 8d e8 de ff ff    	lea    -0x2118(%ebp),%ecx
406993:	e8 36 f9 ff ff       	call   0x4062ce
406998:	8b 85 e8 de ff ff    	mov    -0x2118(%ebp),%eax
40699e:	eb 34                	jmp    0x4069d4
4069a0:	b8 a6 69 40 00       	mov    $0x4069a6,%eax
4069a5:	c3                   	ret
4069a6:	8b 8d d8 de ff ff    	mov    -0x2128(%ebp),%ecx
4069ac:	33 db                	xor    %ebx,%ebx
4069ae:	8b b5 cc de ff ff    	mov    -0x2134(%ebp),%esi
4069b4:	8b bd d4 de ff ff    	mov    -0x212c(%ebp),%edi
4069ba:	8b 85 e8 de ff ff    	mov    -0x2118(%ebp),%eax
4069c0:	89 8d d0 de ff ff    	mov    %ecx,-0x2130(%ebp)
4069c6:	eb 12                	jmp    0x4069da
4069c8:	8d 85 ec de ff ff    	lea    -0x2114(%ebp),%eax
4069ce:	89 85 e8 de ff ff    	mov    %eax,-0x2118(%ebp)
4069d4:	8b b5 e4 de ff ff    	mov    -0x211c(%ebp),%esi
4069da:	85 c0                	test   %eax,%eax
4069dc:	75 15                	jne    0x4069f3
4069de:	8d 8d e8 de ff ff    	lea    -0x2118(%ebp),%ecx
4069e4:	e8 cf f8 ff ff       	call   0x4062b8
4069e9:	b8 05 40 00 80       	mov    $0x80004005,%eax
4069ee:	e9 22 01 00 00       	jmp    0x406b15
4069f3:	57                   	push   %edi
4069f4:	53                   	push   %ebx
4069f5:	50                   	push   %eax
4069f6:	e8 e6 39 00 00       	call   0x40a3e1
4069fb:	83 c4 0c             	add    $0xc,%esp
4069fe:	85 f6                	test   %esi,%esi
406a00:	7e 75                	jle    0x406a77
406a02:	8b fb                	mov    %ebx,%edi
406a04:	0f b7 8c 7d ec df ff 	movzwl -0x2014(%ebp,%edi,2),%ecx
406a0b:	ff
406a0c:	8b c7                	mov    %edi,%eax
406a0e:	99                   	cltd
406a0f:	2b c2                	sub    %edx,%eax
406a11:	8b d1                	mov    %ecx,%edx
406a13:	d1 f8                	sar    $1,%eax
406a15:	03 85 e8 de ff ff    	add    -0x2118(%ebp),%eax
406a1b:	89 85 cc de ff ff    	mov    %eax,-0x2134(%ebp)
406a21:	8b c1                	mov    %ecx,%eax
406a23:	6a 30                	push   $0x30
406a25:	59                   	pop    %ecx
406a26:	66 3b c1             	cmp    %cx,%ax
406a29:	72 28                	jb     0x406a53
406a2b:	83 f8 39             	cmp    $0x39,%eax
406a2e:	76 1e                	jbe    0x406a4e
406a30:	83 f8 40             	cmp    $0x40,%eax
406a33:	76 1e                	jbe    0x406a53
406a35:	83 f8 46             	cmp    $0x46,%eax
406a38:	76 0f                	jbe    0x406a49
406a3a:	83 f8 60             	cmp    $0x60,%eax
406a3d:	76 14                	jbe    0x406a53
406a3f:	83 fa 66             	cmp    $0x66,%edx
406a42:	77 0f                	ja     0x406a53
406a44:	80 ea 57             	sub    $0x57,%dl
406a47:	eb 0c                	jmp    0x406a55
406a49:	80 ea 37             	sub    $0x37,%dl
406a4c:	eb 07                	jmp    0x406a55
406a4e:	80 ea 30             	sub    $0x30,%dl
406a51:	eb 02                	jmp    0x406a55
406a53:	8a d3                	mov    %bl,%dl
406a55:	8b c7                	mov    %edi,%eax
406a57:	83 e0 01             	and    $0x1,%eax
406a5a:	c1 e0 02             	shl    $0x2,%eax
406a5d:	6a 04                	push   $0x4
406a5f:	59                   	pop    %ecx
406a60:	2b c8                	sub    %eax,%ecx
406a62:	8b 85 cc de ff ff    	mov    -0x2134(%ebp),%eax
406a68:	d2 e2                	shl    %cl,%dl
406a6a:	08 10                	or     %dl,(%eax)
406a6c:	47                   	inc    %edi
406a6d:	3b fe                	cmp    %esi,%edi
406a6f:	7c 93                	jl     0x406a04
406a71:	8b bd d4 de ff ff    	mov    -0x212c(%ebp),%edi
406a77:	8b 85 dc de ff ff    	mov    -0x2124(%ebp),%eax
406a7d:	57                   	push   %edi
406a7e:	ff b5 e8 de ff ff    	push   -0x2118(%ebp)
406a84:	6a 03                	push   $0x3
406a86:	53                   	push   %ebx
406a87:	ff b5 e0 de ff ff    	push   -0x2120(%ebp)
406a8d:	ff 30                	push   (%eax)
406a8f:	ff 15 10 f0 40 00    	call   *0x40f010
406a95:	8b f8                	mov    %eax,%edi
406a97:	8d 85 ec de ff ff    	lea    -0x2114(%ebp),%eax
406a9d:	39 85 e8 de ff ff    	cmp    %eax,-0x2118(%ebp)
406aa3:	74 4c                	je     0x406af1
406aa5:	8d 8d e8 de ff ff    	lea    -0x2118(%ebp),%ecx
406aab:	e8 08 f8 ff ff       	call   0x4062b8
406ab0:	eb 3f                	jmp    0x406af1
406ab2:	8d 8d ec df ff ff    	lea    -0x2014(%ebp),%ecx
406ab8:	8d 51 02             	lea    0x2(%ecx),%edx
406abb:	66 8b 01             	mov    (%ecx),%ax
406abe:	03 cf                	add    %edi,%ecx
406ac0:	66 3b c3             	cmp    %bx,%ax
406ac3:	75 f6                	jne    0x406abb
406ac5:	2b ca                	sub    %edx,%ecx
406ac7:	d1 f9                	sar    $1,%ecx
406ac9:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
406ad0:	50                   	push   %eax
406ad1:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
406ad7:	50                   	push   %eax
406ad8:	8b 85 dc de ff ff    	mov    -0x2124(%ebp),%eax
406ade:	6a 01                	push   $0x1
406ae0:	53                   	push   %ebx
406ae1:	ff b5 e0 de ff ff    	push   -0x2120(%ebp)
406ae7:	ff 30                	push   (%eax)
406ae9:	ff 15 10 f0 40 00    	call   *0x40f010
406aef:	8b f8                	mov    %eax,%edi
406af1:	85 ff                	test   %edi,%edi
406af3:	74 09                	je     0x406afe
406af5:	8b cf                	mov    %edi,%ecx
406af7:	e8 29 03 00 00       	call   0x406e25
406afc:	eb 17                	jmp    0x406b15
406afe:	ff b5 c8 de ff ff    	push   -0x2138(%ebp)
406b04:	8b 8d d0 de ff ff    	mov    -0x2130(%ebp),%ecx
406b0a:	e8 26 03 00 00       	call   0x406e35
406b0f:	85 c0                	test   %eax,%eax
406b11:	78 02                	js     0x406b15
406b13:	33 c0                	xor    %eax,%eax
406b15:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406b18:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406b1f:	59                   	pop    %ecx
406b20:	5f                   	pop    %edi
406b21:	5e                   	pop    %esi
406b22:	5b                   	pop    %ebx
406b23:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406b26:	33 cd                	xor    %ebp,%ecx
406b28:	e8 33 2d 00 00       	call   0x409860
406b2d:	c9                   	leave
406b2e:	c2 0c 00             	ret    $0xc
406b31:	b9 57 00 07 80       	mov    $0x80070057,%ecx
406b36:	e8 11 00 00 00       	call   0x406b4c
406b3b:	cc                   	int3
406b3c:	8b ff                	mov    %edi,%edi
406b3e:	55                   	push   %ebp
406b3f:	8b ec                	mov    %esp,%ebp
406b41:	8b 45 08             	mov    0x8(%ebp),%eax
406b44:	89 01                	mov    %eax,(%ecx)
406b46:	8b c1                	mov    %ecx,%eax
406b48:	5d                   	pop    %ebp
406b49:	c2 04 00             	ret    $0x4
406b4c:	8b ff                	mov    %edi,%edi
406b4e:	55                   	push   %ebp
406b4f:	8b ec                	mov    %esp,%ebp
406b51:	51                   	push   %ecx
406b52:	51                   	push   %ecx
406b53:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406b56:	e8 e1 ff ff ff       	call   0x406b3c
406b5b:	68 70 af 40 00       	push   $0x40af70
406b60:	8b c1                	mov    %ecx,%eax
406b62:	50                   	push   %eax
406b63:	e8 2e 32 00 00       	call   0x409d96
406b68:	cc                   	int3
406b69:	85 c9                	test   %ecx,%ecx
406b6b:	74 2c                	je     0x406b99
406b6d:	83 f9 0c             	cmp    $0xc,%ecx
406b70:	74 20                	je     0x406b92
406b72:	83 f9 16             	cmp    $0x16,%ecx
406b75:	74 14                	je     0x406b8b
406b77:	83 f9 22             	cmp    $0x22,%ecx
406b7a:	74 0f                	je     0x406b8b
406b7c:	83 f9 50             	cmp    $0x50,%ecx
406b7f:	74 18                	je     0x406b99
406b81:	b9 05 40 00 80       	mov    $0x80004005,%ecx
406b86:	e9 c1 ff ff ff       	jmp    0x406b4c
406b8b:	b9 57 00 07 80       	mov    $0x80070057,%ecx
406b90:	eb f4                	jmp    0x406b86
406b92:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
406b97:	eb ed                	jmp    0x406b86
406b99:	8b c1                	mov    %ecx,%eax
406b9b:	c3                   	ret
406b9c:	8b ff                	mov    %edi,%edi
406b9e:	55                   	push   %ebp
406b9f:	8b ec                	mov    %esp,%ebp