405834:	8b ff                	mov    %edi,%edi
405836:	55                   	push   %ebp
405837:	8b ec                	mov    %esp,%ebp
405839:	56                   	push   %esi
40583a:	8b 75 08             	mov    0x8(%ebp),%esi
40583d:	0f be 06             	movsbl (%esi),%eax
405840:	50                   	push   %eax
405841:	e8 df 4c 00 00       	call   0x40a525
405846:	83 f8 65             	cmp    $0x65,%eax
405849:	eb 0c                	jmp    0x405857
40584b:	46                   	inc    %esi
40584c:	0f b6 06             	movzbl (%esi),%eax
40584f:	50                   	push   %eax
405850:	e8 22 4b 00 00       	call   0x40a377
405855:	85 c0                	test   %eax,%eax
405857:	59                   	pop    %ecx
405858:	75 f1                	jne    0x40584b
40585a:	0f be 06             	movsbl (%esi),%eax
40585d:	50                   	push   %eax
40585e:	e8 c2 4c 00 00       	call   0x40a525
405863:	59                   	pop    %ecx
405864:	83 f8 78             	cmp    $0x78,%eax
405867:	75 03                	jne    0x40586c
405869:	83 c6 02             	add    $0x2,%esi
40586c:	8b 45 0c             	mov    0xc(%ebp),%eax
40586f:	8a 0e                	mov    (%esi),%cl
405871:	8b 00                	mov    (%eax),%eax
405873:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
405879:	8b 00                	mov    (%eax),%eax
40587b:	8a 00                	mov    (%eax),%al
40587d:	88 06                	mov    %al,(%esi)
40587f:	46                   	inc    %esi
405880:	8a 06                	mov    (%esi),%al
405882:	88 0e                	mov    %cl,(%esi)
405884:	8a c8                	mov    %al,%cl
405886:	8a 06                	mov    (%esi),%al
405888:	46                   	inc    %esi
405889:	84 c0                	test   %al,%al
40588b:	75 f3                	jne    0x405880
40588d:	5e                   	pop    %esi
40588e:	5d                   	pop    %ebp
40588f:	c3                   	ret
405890:	8b ff                	mov    %edi,%edi
405892:	55                   	push   %ebp
405893:	8b ec                	mov    %esp,%ebp
405895:	51                   	push   %ecx
405896:	53                   	push   %ebx
405897:	56                   	push   %esi
405898:	8b f1                	mov    %ecx,%esi
40589a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40589d:	57                   	push   %edi
40589e:	6a 0a                	push   $0xa
4058a0:	51                   	push   %ecx
4058a1:	8b 7e 0c             	mov    0xc(%esi),%edi
4058a4:	8b 1f                	mov    (%edi),%ebx
4058a6:	83 27 00             	andl   $0x0,(%edi)
4058a9:	8b 46 10             	mov    0x10(%esi),%eax
4058ac:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4058b0:	83 e8 02             	sub    $0x2,%eax
4058b3:	50                   	push   %eax
4058b4:	e8 b7 4c 00 00       	call   0x40a570
4058b9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4058bc:	83 c4 0c             	add    $0xc,%esp
4058bf:	89 01                	mov    %eax,(%ecx)
4058c1:	8b 46 0c             	mov    0xc(%esi),%eax
4058c4:	83 38 22             	cmpl   $0x22,(%eax)
4058c7:	74 0f                	je     0x4058d8
4058c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058cc:	3b 46 10             	cmp    0x10(%esi),%eax
4058cf:	72 07                	jb     0x4058d8
4058d1:	89 46 10             	mov    %eax,0x10(%esi)
4058d4:	b0 01                	mov    $0x1,%al
4058d6:	eb 02                	jmp    0x4058da
4058d8:	32 c0                	xor    %al,%al
4058da:	83 3f 00             	cmpl   $0x0,(%edi)
4058dd:	75 06                	jne    0x4058e5
4058df:	85 db                	test   %ebx,%ebx
4058e1:	74 02                	je     0x4058e5
4058e3:	89 1f                	mov    %ebx,(%edi)
4058e5:	5f                   	pop    %edi
4058e6:	5e                   	pop    %esi
4058e7:	5b                   	pop    %ebx
4058e8:	8b e5                	mov    %ebp,%esp
4058ea:	5d                   	pop    %ebp
4058eb:	c2 04 00             	ret    $0x4
4058ee:	8b ff                	mov    %edi,%edi
4058f0:	56                   	push   %esi
4058f1:	8b f1                	mov    %ecx,%esi
4058f3:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
4058f9:	e8 9f 49 00 00       	call   0x40a29d
4058fe:	84 c0                	test   %al,%al
405900:	75 05                	jne    0x405907
405902:	83 c8 ff             	or     $0xffffffff,%eax
405905:	5e                   	pop    %esi
405906:	c3                   	ret
405907:	53                   	push   %ebx
405908:	33 db                	xor    %ebx,%ebx
40590a:	39 5e 10             	cmp    %ebx,0x10(%esi)
40590d:	0f 85 cf 00 00 00    	jne    0x4059e2
405913:	e8 ef 23 00 00       	call   0x407d07
405918:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40591e:	e8 0b 23 00 00       	call   0x407c2e
405923:	83 c8 ff             	or     $0xffffffff,%eax
405926:	e9 cd 00 00 00       	jmp    0x4059f8
40592b:	89 5e 38             	mov    %ebx,0x38(%esi)
40592e:	89 5e 1c             	mov    %ebx,0x1c(%esi)
405931:	e9 86 00 00 00       	jmp    0x4059bc
405936:	83 46 10 02          	addl   $0x2,0x10(%esi)
40593a:	39 5e 18             	cmp    %ebx,0x18(%esi)
40593d:	0f 8c 90 00 00 00    	jl     0x4059d3
405943:	ff 76 1c             	push   0x1c(%esi)
405946:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40594a:	8b ce                	mov    %esi,%ecx
40594c:	50                   	push   %eax
40594d:	e8 77 fe ff ff       	call   0x4057c9
405952:	89 46 1c             	mov    %eax,0x1c(%esi)
405955:	83 f8 08             	cmp    $0x8,%eax
405958:	74 b9                	je     0x405913
40595a:	83 f8 07             	cmp    $0x7,%eax
40595d:	77 c4                	ja     0x405923
40595f:	ff 24 85 fe 59 40 00 	jmp    *0x4059fe(,%eax,4)
405966:	8b ce                	mov    %esi,%ecx
405968:	e8 0e 02 00 00       	call   0x405b7b
40596d:	eb 45                	jmp    0x4059b4
40596f:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
405973:	89 5e 24             	mov    %ebx,0x24(%esi)
405976:	88 5e 30             	mov    %bl,0x30(%esi)
405979:	89 5e 20             	mov    %ebx,0x20(%esi)
40597c:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40597f:	88 5e 3c             	mov    %bl,0x3c(%esi)
405982:	eb 38                	jmp    0x4059bc
405984:	8b ce                	mov    %esi,%ecx
405986:	e8 b3 01 00 00       	call   0x405b3e
40598b:	eb 27                	jmp    0x4059b4
40598d:	8b ce                	mov    %esi,%ecx
40598f:	e8 23 06 00 00       	call   0x405fb7
405994:	eb 1e                	jmp    0x4059b4
405996:	89 5e 28             	mov    %ebx,0x28(%esi)
405999:	eb 21                	jmp    0x4059bc
40599b:	8b ce                	mov    %esi,%ecx
40599d:	e8 13 02 00 00       	call   0x405bb5
4059a2:	eb 10                	jmp    0x4059b4
4059a4:	8b ce                	mov    %esi,%ecx
4059a6:	e8 33 02 00 00       	call   0x405bde
4059ab:	eb 07                	jmp    0x4059b4
4059ad:	8b ce                	mov    %esi,%ecx
4059af:	e8 a6 03 00 00       	call   0x405d5a
4059b4:	84 c0                	test   %al,%al
4059b6:	0f 84 67 ff ff ff    	je     0x405923
4059bc:	8b 46 10             	mov    0x10(%esi),%eax
4059bf:	0f b7 00             	movzwl (%eax),%eax
4059c2:	66 89 46 32          	mov    %ax,0x32(%esi)
4059c6:	66 85 c0             	test   %ax,%ax
4059c9:	0f 85 67 ff ff ff    	jne    0x405936
4059cf:	83 46 10 02          	addl   $0x2,0x10(%esi)
4059d3:	8b ce                	mov    %esi,%ecx
4059d5:	e8 7b 0b 00 00       	call   0x406555
4059da:	84 c0                	test   %al,%al
4059dc:	0f 84 41 ff ff ff    	je     0x405923
4059e2:	ff 86 50 04 00 00    	incl   0x450(%esi)
4059e8:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
4059ef:	0f 85 36 ff ff ff    	jne    0x40592b
4059f5:	8b 46 18             	mov    0x18(%esi),%eax
4059f8:	5b                   	pop    %ebx
4059f9:	5e                   	pop    %esi
4059fa:	c3                   	ret
4059fb:	8d 49 00             	lea    0x0(%ecx),%ecx
4059fe:	66 59                	pop    %cx
405a00:	40                   	inc    %eax
405a01:	00 6f 59             	add    %ch,0x59(%edi)
405a04:	40                   	inc    %eax
405a05:	00 84 59 40 00 8d 59 	add    %al,0x598d0040(%ecx,%ebx,2)
405a0c:	40                   	inc    %eax
405a0d:	00 96 59 40 00 9b    	add    %dl,-0x64ffbfa7(%esi)
405a13:	59                   	pop    %ecx
405a14:	40                   	inc    %eax
405a15:	00 a4 59 40 00 ad 59 	add    %ah,0x59ad0040(%ecx,%ebx,2)
405a1c:	40                   	inc    %eax
405a1d:	00 8b ff 56 8b f1    	add    %cl,-0xe74a901(%ebx)
405a23:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
405a29:	e8 6f 48 00 00       	call   0x40a29d
405a2e:	84 c0                	test   %al,%al
405a30:	75 05                	jne    0x405a37
405a32:	83 c8 ff             	or     $0xffffffff,%eax
405a35:	5e                   	pop    %esi
405a36:	c3                   	ret
405a37:	53                   	push   %ebx
405a38:	33 db                	xor    %ebx,%ebx
405a3a:	39 5e 10             	cmp    %ebx,0x10(%esi)
405a3d:	0f 85 c0 00 00 00    	jne    0x405b03
405a43:	e8 bf 22 00 00       	call   0x407d07
405a48:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405a4e:	e8 db 21 00 00       	call   0x407c2e
405a53:	83 c8 ff             	or     $0xffffffff,%eax
405a56:	e9 be 00 00 00       	jmp    0x405b19
405a5b:	89 5e 38             	mov    %ebx,0x38(%esi)
405a5e:	89 5e 1c             	mov    %ebx,0x1c(%esi)
405a61:	e9 86 00 00 00       	jmp    0x405aec
405a66:	83 46 10 02          	addl   $0x2,0x10(%esi)
405a6a:	39 5e 18             	cmp    %ebx,0x18(%esi)
405a6d:	0f 8c 90 00 00 00    	jl     0x405b03
405a73:	ff 76 1c             	push   0x1c(%esi)
405a76:	0f b7 46 32          	movzwl 0x32(%esi),%eax
405a7a:	8b ce                	mov    %esi,%ecx
405a7c:	50                   	push   %eax
405a7d:	e8 7e fd ff ff       	call   0x405800
405a82:	89 46 1c             	mov    %eax,0x1c(%esi)
405a85:	83 f8 08             	cmp    $0x8,%eax
405a88:	74 b9                	je     0x405a43
405a8a:	83 f8 07             	cmp    $0x7,%eax
405a8d:	77 c4                	ja     0x405a53
405a8f:	ff 24 85 1e 5b 40 00 	jmp    *0x405b1e(,%eax,4)
405a96:	8b ce                	mov    %esi,%ecx
405a98:	e8 de 00 00 00       	call   0x405b7b
405a9d:	eb 45                	jmp    0x405ae4
405a9f:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
405aa3:	89 5e 24             	mov    %ebx,0x24(%esi)
405aa6:	88 5e 30             	mov    %bl,0x30(%esi)
405aa9:	89 5e 20             	mov    %ebx,0x20(%esi)
405aac:	89 5e 2c             	mov    %ebx,0x2c(%esi)
405aaf:	88 5e 3c             	mov    %bl,0x3c(%esi)
405ab2:	eb 38                	jmp    0x405aec
405ab4:	8b ce                	mov    %esi,%ecx
405ab6:	e8 83 00 00 00       	call   0x405b3e
405abb:	eb 27                	jmp    0x405ae4
405abd:	8b ce                	mov    %esi,%ecx
405abf:	e8 f3 04 00 00       	call   0x405fb7
405ac4:	eb 1e                	jmp    0x405ae4
405ac6:	89 5e 28             	mov    %ebx,0x28(%esi)
405ac9:	eb 21                	jmp    0x405aec
405acb:	8b ce                	mov    %esi,%ecx
405acd:	e8 e3 00 00 00       	call   0x405bb5
405ad2:	eb 10                	jmp    0x405ae4
405ad4:	8b ce                	mov    %esi,%ecx
405ad6:	e8 03 01 00 00       	call   0x405bde
405adb:	eb 07                	jmp    0x405ae4
405add:	8b ce                	mov    %esi,%ecx
405adf:	e8 76 02 00 00       	call   0x405d5a
405ae4:	84 c0                	test   %al,%al
405ae6:	0f 84 67 ff ff ff    	je     0x405a53
405aec:	8b 46 10             	mov    0x10(%esi),%eax
405aef:	0f b7 00             	movzwl (%eax),%eax
405af2:	66 89 46 32          	mov    %ax,0x32(%esi)
405af6:	66 85 c0             	test   %ax,%ax
405af9:	0f 85 67 ff ff ff    	jne    0x405a66
405aff:	83 46 10 02          	addl   $0x2,0x10(%esi)
405b03:	ff 86 50 04 00 00    	incl   0x450(%esi)
405b09:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
405b10:	0f 85 45 ff ff ff    	jne    0x405a5b
405b16:	8b 46 18             	mov    0x18(%esi),%eax
405b19:	5b                   	pop    %ebx
405b1a:	5e                   	pop    %esi
405b1b:	c3                   	ret
405b1c:	8b ff                	mov    %edi,%edi
405b1e:	96                   	xchg   %eax,%esi
405b1f:	5a                   	pop    %edx
405b20:	40                   	inc    %eax
405b21:	00 9f 5a 40 00 b4    	add    %bl,-0x4bffbfa6(%edi)
405b27:	5a                   	pop    %edx
405b28:	40                   	inc    %eax
405b29:	00 bd 5a 40 00 c6    	add    %bh,-0x39ffbfa6(%ebp)
405b2f:	5a                   	pop    %edx
405b30:	40                   	inc    %eax
405b31:	00 cb                	add    %cl,%bl
405b33:	5a                   	pop    %edx
405b34:	40                   	inc    %eax
405b35:	00 d4                	add    %dl,%ah
405b37:	5a                   	pop    %edx
405b38:	40                   	inc    %eax
405b39:	00 dd                	add    %bl,%ch
405b3b:	5a                   	pop    %edx
405b3c:	40                   	inc    %eax
405b3d:	00 0f                	add    %cl,(%edi)
405b3f:	b7 41                	mov    $0x41,%bh
405b41:	32 83 e8 20 74 2d    	xor    0x2d7420e8(%ebx),%al
405b47:	83 e8 03             	sub    $0x3,%eax
405b4a:	74 22                	je     0x405b6e
405b4c:	83 e8 08             	sub    $0x8,%eax
405b4f:	74 17                	je     0x405b68
405b51:	48                   	dec    %eax
405b52:	83 e8 01             	sub    $0x1,%eax
405b55:	74 0b                	je     0x405b62
405b57:	83 e8 03             	sub    $0x3,%eax
405b5a:	75 1c                	jne    0x405b78
405b5c:	83 49 20 08          	orl    $0x8,0x20(%ecx)
405b60:	eb 16                	jmp    0x405b78
405b62:	83 49 20 04          	orl    $0x4,0x20(%ecx)
405b66:	eb 10                	jmp    0x405b78
405b68:	83 49 20 01          	orl    $0x1,0x20(%ecx)
405b6c:	eb 0a                	jmp    0x405b78
405b6e:	83 49 20 20          	orl    $0x20,0x20(%ecx)
405b72:	eb 04                	jmp    0x405b78
405b74:	83 49 20 02          	orl    $0x2,0x20(%ecx)
405b78:	b0 01                	mov    $0x1,%al
405b7a:	c3                   	ret
405b7b:	e8 1a 00 00 00       	call   0x405b9a
405b80:	84 c0                	test   %al,%al
405b82:	75 13                	jne    0x405b97
405b84:	e8 7e 21 00 00       	call   0x407d07
405b89:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405b8f:	e8 9a 20 00 00       	call   0x407c2e
405b94:	32 c0                	xor    %al,%al
405b96:	c3                   	ret
405b97:	b0 01                	mov    $0x1,%al
405b99:	c3                   	ret
405b9a:	8d 51 18             	lea    0x18(%ecx),%edx
405b9d:	c6 41 3c 01          	movb   $0x1,0x3c(%ecx)
405ba1:	52                   	push   %edx
405ba2:	0f b7 51 32          	movzwl 0x32(%ecx),%edx
405ba6:	81 c1 48 04 00 00    	add    $0x448,%ecx
405bac:	52                   	push   %edx
405bad:	e8 c5 09 00 00       	call   0x406577
405bb2:	b0 01                	mov    $0x1,%al
405bb4:	c3                   	ret
405bb5:	66 83 79 32 2a       	cmpw   $0x2a,0x32(%ecx)
405bba:	74 0a                	je     0x405bc6
405bbc:	8d 41 28             	lea    0x28(%ecx),%eax
405bbf:	50                   	push   %eax
405bc0:	e8 cb fc ff ff       	call   0x405890
405bc5:	c3                   	ret
405bc6:	83 41 14 04          	addl   $0x4,0x14(%ecx)
405bca:	8b 41 14             	mov    0x14(%ecx),%eax
405bcd:	8b 40 fc             	mov    -0x4(%eax),%eax
405bd0:	89 41 28             	mov    %eax,0x28(%ecx)
405bd3:	85 c0                	test   %eax,%eax
405bd5:	79 04                	jns    0x405bdb
405bd7:	83 49 28 ff          	orl    $0xffffffff,0x28(%ecx)
405bdb:	b0 01                	mov    $0x1,%al
405bdd:	c3                   	ret
405bde:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
405be2:	83 f8 46             	cmp    $0x46,%eax
405be5:	75 1a                	jne    0x405c01
405be7:	8b 01                	mov    (%ecx),%eax
405be9:	83 e0 08             	and    $0x8,%eax
405bec:	83 c8 00             	or     $0x0,%eax
405bef:	0f 85 62 01 00 00    	jne    0x405d57
405bf5:	c7 41 1c 07 00 00 00 	movl   $0x7,0x1c(%ecx)
405bfc:	e9 59 01 00 00       	jmp    0x405d5a
405c01:	83 f8 4e             	cmp    $0x4e,%eax
405c04:	75 26                	jne    0x405c2c
405c06:	8b 01                	mov    (%ecx),%eax
405c08:	6a 08                	push   $0x8
405c0a:	5a                   	pop    %edx
405c0b:	23 c2                	and    %edx,%eax
405c0d:	83 c8 00             	or     $0x0,%eax
405c10:	0f 85 41 01 00 00    	jne    0x405d57
405c16:	89 51 1c             	mov    %edx,0x1c(%ecx)
405c19:	e8 e9 20 00 00       	call   0x407d07
405c1e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405c24:	e8 05 20 00 00       	call   0x407c2e