436904:	55                   	push   %ebp
436905:	8b ec                	mov    %esp,%ebp
436907:	ff 75 0c             	push   0xc(%ebp)
43690a:	6a 00                	push   $0x0
43690c:	ff 75 08             	push   0x8(%ebp)
43690f:	68 df 01 44 00       	push   $0x4401df
436914:	e8 d5 fe ff ff       	call   0x4367ee
436919:	83 c4 10             	add    $0x10,%esp
43691c:	5d                   	pop    %ebp
43691d:	c3                   	ret
43691e:	8b ff                	mov    %edi,%edi
436920:	55                   	push   %ebp
436921:	8b ec                	mov    %esp,%ebp
436923:	51                   	push   %ecx
436924:	56                   	push   %esi
436925:	8b 75 0c             	mov    0xc(%ebp),%esi
436928:	56                   	push   %esi
436929:	e8 e4 f8 ff ff       	call   0x436212
43692e:	89 45 0c             	mov    %eax,0xc(%ebp)
436931:	8b 46 0c             	mov    0xc(%esi),%eax
436934:	59                   	pop    %ecx
436935:	a8 82                	test   $0x82,%al
436937:	75 17                	jne    0x436950
436939:	e8 6a e0 ff ff       	call   0x4349a8
43693e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
436944:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
436948:	83 c8 ff             	or     $0xffffffff,%eax
43694b:	e9 2f 01 00 00       	jmp    0x436a7f
436950:	a8 40                	test   $0x40,%al
436952:	74 0d                	je     0x436961
436954:	e8 4f e0 ff ff       	call   0x4349a8
436959:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
43695f:	eb e3                	jmp    0x436944
436961:	53                   	push   %ebx
436962:	33 db                	xor    %ebx,%ebx
436964:	a8 01                	test   $0x1,%al
436966:	74 16                	je     0x43697e
436968:	89 5e 04             	mov    %ebx,0x4(%esi)
43696b:	a8 10                	test   $0x10,%al
43696d:	0f 84 87 00 00 00    	je     0x4369fa
436973:	8b 4e 08             	mov    0x8(%esi),%ecx
436976:	83 e0 fe             	and    $0xfffffffe,%eax
436979:	89 0e                	mov    %ecx,(%esi)
43697b:	89 46 0c             	mov    %eax,0xc(%esi)
43697e:	8b 46 0c             	mov    0xc(%esi),%eax
436981:	83 e0 ef             	and    $0xffffffef,%eax
436984:	83 c8 02             	or     $0x2,%eax
436987:	89 46 0c             	mov    %eax,0xc(%esi)
43698a:	89 5e 04             	mov    %ebx,0x4(%esi)
43698d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
436990:	a9 0c 01 00 00       	test   $0x10c,%eax
436995:	75 2c                	jne    0x4369c3
436997:	e8 ac 99 ff ff       	call   0x430348
43699c:	83 c0 20             	add    $0x20,%eax
43699f:	3b f0                	cmp    %eax,%esi
4369a1:	74 0c                	je     0x4369af
4369a3:	e8 a0 99 ff ff       	call   0x430348
4369a8:	83 c0 40             	add    $0x40,%eax
4369ab:	3b f0                	cmp    %eax,%esi
4369ad:	75 0d                	jne    0x4369bc
4369af:	ff 75 0c             	push   0xc(%ebp)
4369b2:	e8 a7 83 00 00       	call   0x43ed5e
4369b7:	59                   	pop    %ecx
4369b8:	85 c0                	test   %eax,%eax
4369ba:	75 07                	jne    0x4369c3
4369bc:	56                   	push   %esi
4369bd:	e8 b7 ad 00 00       	call   0x441779
4369c2:	59                   	pop    %ecx
4369c3:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
4369ca:	57                   	push   %edi
4369cb:	0f 84 80 00 00 00    	je     0x436a51
4369d1:	8b 46 08             	mov    0x8(%esi),%eax
4369d4:	8b 3e                	mov    (%esi),%edi
4369d6:	8d 48 01             	lea    0x1(%eax),%ecx
4369d9:	89 0e                	mov    %ecx,(%esi)
4369db:	8b 4e 18             	mov    0x18(%esi),%ecx
4369de:	2b f8                	sub    %eax,%edi
4369e0:	49                   	dec    %ecx
4369e1:	89 4e 04             	mov    %ecx,0x4(%esi)
4369e4:	3b fb                	cmp    %ebx,%edi
4369e6:	7e 1d                	jle    0x436a05
4369e8:	57                   	push   %edi
4369e9:	50                   	push   %eax
4369ea:	ff 75 0c             	push   0xc(%ebp)
4369ed:	e8 f3 32 00 00       	call   0x439ce5
4369f2:	83 c4 0c             	add    $0xc,%esp
4369f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4369f8:	eb 4d                	jmp    0x436a47
4369fa:	83 c8 20             	or     $0x20,%eax
4369fd:	89 46 0c             	mov    %eax,0xc(%esi)
436a00:	83 c8 ff             	or     $0xffffffff,%eax
436a03:	eb 79                	jmp    0x436a7e
436a05:	8b 4d 0c             	mov    0xc(%ebp),%ecx
436a08:	83 f9 ff             	cmp    $0xffffffff,%ecx
436a0b:	74 1b                	je     0x436a28
436a0d:	83 f9 fe             	cmp    $0xfffffffe,%ecx
436a10:	74 16                	je     0x436a28
436a12:	8b c1                	mov    %ecx,%eax
436a14:	83 e0 1f             	and    $0x1f,%eax
436a17:	8b d1                	mov    %ecx,%edx
436a19:	c1 fa 05             	sar    $0x5,%edx
436a1c:	c1 e0 06             	shl    $0x6,%eax
436a1f:	03 04 95 80 17 47 00 	add    0x471780(,%edx,4),%eax
436a26:	eb 05                	jmp    0x436a2d
436a28:	b8 68 f6 46 00       	mov    $0x46f668,%eax
436a2d:	f6 40 04 20          	testb  $0x20,0x4(%eax)
436a31:	74 14                	je     0x436a47
436a33:	6a 02                	push   $0x2
436a35:	53                   	push   %ebx
436a36:	53                   	push   %ebx
436a37:	51                   	push   %ecx
436a38:	e8 f6 3f 00 00       	call   0x43aa33
436a3d:	23 c2                	and    %edx,%eax
436a3f:	83 c4 10             	add    $0x10,%esp
436a42:	83 f8 ff             	cmp    $0xffffffff,%eax
436a45:	74 25                	je     0x436a6c
436a47:	8b 46 08             	mov    0x8(%esi),%eax
436a4a:	8a 4d 08             	mov    0x8(%ebp),%cl
436a4d:	88 08                	mov    %cl,(%eax)
436a4f:	eb 16                	jmp    0x436a67
436a51:	33 ff                	xor    %edi,%edi
436a53:	47                   	inc    %edi
436a54:	57                   	push   %edi
436a55:	8d 45 08             	lea    0x8(%ebp),%eax
436a58:	50                   	push   %eax
436a59:	ff 75 0c             	push   0xc(%ebp)
436a5c:	e8 84 32 00 00       	call   0x439ce5
436a61:	83 c4 0c             	add    $0xc,%esp
436a64:	89 45 fc             	mov    %eax,-0x4(%ebp)
436a67:	39 7d fc             	cmp    %edi,-0x4(%ebp)
436a6a:	74 09                	je     0x436a75
436a6c:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
436a70:	83 c8 ff             	or     $0xffffffff,%eax
436a73:	eb 08                	jmp    0x436a7d
436a75:	8b 45 08             	mov    0x8(%ebp),%eax
436a78:	25 ff 00 00 00       	and    $0xff,%eax
436a7d:	5f                   	pop    %edi
436a7e:	5b                   	pop    %ebx
436a7f:	5e                   	pop    %esi
436a80:	c9                   	leave
436a81:	c3                   	ret
436a82:	8b ff                	mov    %edi,%edi
436a84:	55                   	push   %ebp
436a85:	8b ec                	mov    %esp,%ebp
436a87:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
436a8b:	74 06                	je     0x436a93
436a8d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
436a91:	74 1a                	je     0x436aad
436a93:	50                   	push   %eax
436a94:	ff 75 08             	push   0x8(%ebp)
436a97:	e8 26 ad 00 00       	call   0x4417c2
436a9c:	59                   	pop    %ecx
436a9d:	59                   	pop    %ecx
436a9e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
436aa3:	66 3b c1             	cmp    %cx,%ax
436aa6:	75 05                	jne    0x436aad
436aa8:	83 0e ff             	orl    $0xffffffff,(%esi)
436aab:	5d                   	pop    %ebp
436aac:	c3                   	ret
436aad:	ff 06                	incl   (%esi)
436aaf:	5d                   	pop    %ebp
436ab0:	c3                   	ret
436ab1:	8b ff                	mov    %edi,%edi
436ab3:	55                   	push   %ebp
436ab4:	8b ec                	mov    %esp,%ebp
436ab6:	56                   	push   %esi
436ab7:	8b f0                	mov    %eax,%esi
436ab9:	eb 14                	jmp    0x436acf
436abb:	ff 75 08             	push   0x8(%ebp)
436abe:	8b 45 10             	mov    0x10(%ebp),%eax
436ac1:	ff 4d 0c             	decl   0xc(%ebp)
436ac4:	e8 b9 ff ff ff       	call   0x436a82
436ac9:	83 3e ff             	cmpl   $0xffffffff,(%esi)
436acc:	59                   	pop    %ecx
436acd:	74 06                	je     0x436ad5
436acf:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
436ad3:	7f e6                	jg     0x436abb
436ad5:	5e                   	pop    %esi
436ad6:	5d                   	pop    %ebp
436ad7:	c3                   	ret
436ad8:	8b ff                	mov    %edi,%edi
436ada:	55                   	push   %ebp
436adb:	8b ec                	mov    %esp,%ebp
436add:	51                   	push   %ecx
436ade:	f6 43 0c 40          	testb  $0x40,0xc(%ebx)
436ae2:	56                   	push   %esi
436ae3:	8b f0                	mov    %eax,%esi
436ae5:	8b 07                	mov    (%edi),%eax
436ae7:	89 45 fc             	mov    %eax,-0x4(%ebp)
436aea:	74 0d                	je     0x436af9
436aec:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
436af0:	75 07                	jne    0x436af9
436af2:	8b 45 0c             	mov    0xc(%ebp),%eax
436af5:	01 06                	add    %eax,(%esi)
436af7:	eb 43                	jmp    0x436b3c
436af9:	83 27 00             	andl   $0x0,(%edi)
436afc:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
436b00:	7e 35                	jle    0x436b37
436b02:	8b 45 08             	mov    0x8(%ebp),%eax
436b05:	0f b7 00             	movzwl (%eax),%eax
436b08:	ff 4d 0c             	decl   0xc(%ebp)
436b0b:	50                   	push   %eax
436b0c:	8b c3                	mov    %ebx,%eax
436b0e:	e8 6f ff ff ff       	call   0x436a82
436b13:	83 45 08 02          	addl   $0x2,0x8(%ebp)
436b17:	83 3e ff             	cmpl   $0xffffffff,(%esi)
436b1a:	59                   	pop    %ecx
436b1b:	75 0f                	jne    0x436b2c
436b1d:	83 3f 2a             	cmpl   $0x2a,(%edi)
436b20:	75 10                	jne    0x436b32
436b22:	6a 3f                	push   $0x3f
436b24:	8b c3                	mov    %ebx,%eax
436b26:	e8 57 ff ff ff       	call   0x436a82
436b2b:	59                   	pop    %ecx
436b2c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
436b30:	7f d0                	jg     0x436b02
436b32:	83 3f 00             	cmpl   $0x0,(%edi)
436b35:	75 05                	jne    0x436b3c
436b37:	8b 45 fc             	mov    -0x4(%ebp),%eax
436b3a:	89 07                	mov    %eax,(%edi)
436b3c:	5e                   	pop    %esi
436b3d:	c9                   	leave
436b3e:	c3                   	ret
436b3f:	8b ff                	mov    %edi,%edi
436b41:	55                   	push   %ebp
436b42:	8b ec                	mov    %esp,%ebp
436b44:	81 ec 78 04 00 00    	sub    $0x478,%esp
436b4a:	a1 a8 f6 46 00       	mov    0x46f6a8,%eax
436b4f:	33 c5                	xor    %ebp,%eax
436b51:	89 45 fc             	mov    %eax,-0x4(%ebp)
436b54:	8b 45 08             	mov    0x8(%ebp),%eax
436b57:	53                   	push   %ebx
436b58:	56                   	push   %esi
436b59:	8b 75 0c             	mov    0xc(%ebp),%esi
436b5c:	33 db                	xor    %ebx,%ebx
436b5e:	57                   	push   %edi
436b5f:	8b 7d 14             	mov    0x14(%ebp),%edi
436b62:	ff 75 10             	push   0x10(%ebp)
436b65:	8d 8d a8 fb ff ff    	lea    -0x458(%ebp),%ecx
436b6b:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
436b71:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
436b77:	89 9d bc fb ff ff    	mov    %ebx,-0x444(%ebp)
436b7d:	89 9d f8 fb ff ff    	mov    %ebx,-0x408(%ebp)
436b83:	89 9d d0 fb ff ff    	mov    %ebx,-0x430(%ebp)
436b89:	89 9d f4 fb ff ff    	mov    %ebx,-0x40c(%ebp)
436b8f:	89 9d d8 fb ff ff    	mov    %ebx,-0x428(%ebp)
436b95:	89 9d b8 fb ff ff    	mov    %ebx,-0x448(%ebp)
436b9b:	89 9d d4 fb ff ff    	mov    %ebx,-0x42c(%ebp)
436ba1:	e8 44 a0 ff ff       	call   0x430bea
436ba6:	e8 fd dd ff ff       	call   0x4349a8
436bab:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
436bb1:	39 9d dc fb ff ff    	cmp    %ebx,-0x424(%ebp)
436bb7:	75 2a                	jne    0x436be3
436bb9:	e8 ea dd ff ff       	call   0x4349a8
436bbe:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
436bc4:	e8 a5 d7 ff ff       	call   0x43436e
436bc9:	38 9d b4 fb ff ff    	cmp    %bl,-0x44c(%ebp)
436bcf:	74 0a                	je     0x436bdb
436bd1:	8b 85 b0 fb ff ff    	mov    -0x450(%ebp),%eax
436bd7:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
436bdb:	83 c8 ff             	or     $0xffffffff,%eax
436bde:	e9 f4 0a 00 00       	jmp    0x4376d7
436be3:	3b f3                	cmp    %ebx,%esi
436be5:	74 d2                	je     0x436bb9
436be7:	0f b7 0e             	movzwl (%esi),%ecx
436bea:	33 d2                	xor    %edx,%edx
436bec:	89 9d e8 fb ff ff    	mov    %ebx,-0x418(%ebp)
436bf2:	89 9d ec fb ff ff    	mov    %ebx,-0x414(%ebp)
436bf8:	89 9d c4 fb ff ff    	mov    %ebx,-0x43c(%ebp)
436bfe:	89 8d e4 fb ff ff    	mov    %ecx,-0x41c(%ebp)
436c04:	66 3b cb             	cmp    %bx,%cx
436c07:	0f 84 b1 0a 00 00    	je     0x4376be
436c0d:	6a 02                	push   $0x2
436c0f:	5b                   	pop    %ebx
436c10:	03 f3                	add    %ebx,%esi
436c12:	83 bd e8 fb ff ff 00 	cmpl   $0x0,-0x418(%ebp)
436c19:	89 b5 c0 fb ff ff    	mov    %esi,-0x440(%ebp)
436c1f:	0f 8c 99 0a 00 00    	jl     0x4376be
436c25:	8d 41 e0             	lea    -0x20(%ecx),%eax
436c28:	66 83 f8 58          	cmp    $0x58,%ax
436c2c:	77 0f                	ja     0x436c3d
436c2e:	0f b7 c1             	movzwl %cx,%eax
436c31:	0f be 80 68 8e 46 00 	movsbl 0x468e68(%eax),%eax
436c38:	83 e0 0f             	and    $0xf,%eax
436c3b:	eb 02                	jmp    0x436c3f
436c3d:	33 c0                	xor    %eax,%eax
436c3f:	0f be 84 c2 88 8e 46 	movsbl 0x468e88(%edx,%eax,8),%eax
436c46:	00
436c47:	6a 07                	push   $0x7
436c49:	c1 f8 04             	sar    $0x4,%eax
436c4c:	5a                   	pop    %edx
436c4d:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
436c53:	3b c2                	cmp    %edx,%eax
436c55:	0f 87 20 0a 00 00    	ja     0x43767b
436c5b:	ff 24 85 e7 76 43 00 	jmp    *0x4376e7(,%eax,4)
436c62:	33 c0                	xor    %eax,%eax
436c64:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
436c6b:	89 85 98 fb ff ff    	mov    %eax,-0x468(%ebp)
436c71:	89 85 b8 fb ff ff    	mov    %eax,-0x448(%ebp)
436c77:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
436c7d:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
436c83:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
436c89:	89 85 d4 fb ff ff    	mov    %eax,-0x42c(%ebp)
436c8f:	e9 e7 09 00 00       	jmp    0x43767b
436c94:	0f b7 c1             	movzwl %cx,%eax
436c97:	83 e8 20             	sub    $0x20,%eax
436c9a:	74 4a                	je     0x436ce6
436c9c:	83 e8 03             	sub    $0x3,%eax
436c9f:	74 36                	je     0x436cd7
436ca1:	83 e8 08             	sub    $0x8,%eax
436ca4:	74 25                	je     0x436ccb
436ca6:	2b c3                	sub    %ebx,%eax
436ca8:	74 15                	je     0x436cbf
436caa:	83 e8 03             	sub    $0x3,%eax
436cad:	0f 85 c8 09 00 00    	jne    0x43767b
436cb3:	83 8d f8 fb ff ff 08 	orl    $0x8,-0x408(%ebp)
436cba:	e9 bc 09 00 00       	jmp    0x43767b
436cbf:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
436cc6:	e9 b0 09 00 00       	jmp    0x43767b
436ccb:	83 8d f8 fb ff ff 01 	orl    $0x1,-0x408(%ebp)
436cd2:	e9 a4 09 00 00       	jmp    0x43767b
436cd7:	81 8d f8 fb ff ff 80 	orl    $0x80,-0x408(%ebp)
436cde:	00 00 00
436ce1:	e9 95 09 00 00       	jmp    0x43767b
436ce6:	09 9d f8 fb ff ff    	or     %ebx,-0x408(%ebp)
436cec:	e9 8a 09 00 00       	jmp    0x43767b
436cf1:	66 83 f9 2a          	cmp    $0x2a,%cx
436cf5:	75 2c                	jne    0x436d23
436cf7:	83 c7 04             	add    $0x4,%edi
436cfa:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
436d00:	8b 7f fc             	mov    -0x4(%edi),%edi
436d03:	89 bd d0 fb ff ff    	mov    %edi,-0x430(%ebp)
436d09:	85 ff                	test   %edi,%edi
436d0b:	0f 89 6a 09 00 00    	jns    0x43767b
436d11:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
436d18:	f7 9d d0 fb ff ff    	negl   -0x430(%ebp)
436d1e:	e9 58 09 00 00       	jmp    0x43767b
436d23:	8b 85 d0 fb ff ff    	mov    -0x430(%ebp),%eax
436d29:	6b c0 0a             	imul   $0xa,%eax,%eax
436d2c:	0f b7 c9             	movzwl %cx,%ecx
436d2f:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
436d33:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
436d39:	e9 3d 09 00 00       	jmp    0x43767b
436d3e:	83 a5 f4 fb ff ff 00 	andl   $0x0,-0x40c(%ebp)
436d45:	e9 31 09 00 00       	jmp    0x43767b
436d4a:	66 83 f9 2a          	cmp    $0x2a,%cx
436d4e:	75 26                	jne    0x436d76
436d50:	83 c7 04             	add    $0x4,%edi
436d53:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
436d59:	8b 7f fc             	mov    -0x4(%edi),%edi