40bc4e:	c3                   	ret
40bc4f:	33 c0                	xor    %eax,%eax
40bc51:	b9 68 6e 42 00       	mov    $0x426e68,%ecx
40bc56:	40                   	inc    %eax
40bc57:	87 01                	xchg   %eax,(%ecx)
40bc59:	c3                   	ret
40bc5a:	cc                   	int3
40bc5b:	cc                   	int3
40bc5c:	cc                   	int3
40bc5d:	cc                   	int3
40bc5e:	cc                   	int3
40bc5f:	cc                   	int3
40bc60:	8b ff                	mov    %edi,%edi
40bc62:	55                   	push   %ebp
40bc63:	8b ec                	mov    %esp,%ebp
40bc65:	83 ec 0c             	sub    $0xc,%esp
40bc68:	6a 04                	push   $0x4
40bc6a:	58                   	pop    %eax
40bc6b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bc6e:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40bc71:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bc74:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bc77:	50                   	push   %eax
40bc78:	8d 45 ff             	lea    -0x1(%ebp),%eax
40bc7b:	50                   	push   %eax
40bc7c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bc7f:	50                   	push   %eax
40bc80:	e8 3a ff ff ff       	call   0x40bbbf
40bc85:	c9                   	leave
40bc86:	c3                   	ret
40bc87:	8b ff                	mov    %edi,%edi
40bc89:	55                   	push   %ebp
40bc8a:	8b ec                	mov    %esp,%ebp
40bc8c:	56                   	push   %esi
40bc8d:	e8 77 2b 00 00       	call   0x40e809
40bc92:	8b 55 08             	mov    0x8(%ebp),%edx
40bc95:	8b f0                	mov    %eax,%esi
40bc97:	6a 00                	push   $0x0
40bc99:	58                   	pop    %eax
40bc9a:	8b 8e 50 03 00 00    	mov    0x350(%esi),%ecx
40bca0:	f6 c1 02             	test   $0x2,%cl
40bca3:	0f 94 c0             	sete   %al
40bca6:	40                   	inc    %eax
40bca7:	83 fa ff             	cmp    $0xffffffff,%edx
40bcaa:	74 33                	je     0x40bcdf
40bcac:	85 d2                	test   %edx,%edx
40bcae:	74 36                	je     0x40bce6
40bcb0:	83 fa 01             	cmp    $0x1,%edx
40bcb3:	74 1f                	je     0x40bcd4
40bcb5:	83 fa 02             	cmp    $0x2,%edx
40bcb8:	74 15                	je     0x40bccf
40bcba:	e8 14 30 00 00       	call   0x40ecd3
40bcbf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40bcc5:	e8 4c 2f 00 00       	call   0x40ec16
40bcca:	83 c8 ff             	or     $0xffffffff,%eax
40bccd:	eb 17                	jmp    0x40bce6
40bccf:	83 e1 fd             	and    $0xfffffffd,%ecx
40bcd2:	eb 03                	jmp    0x40bcd7
40bcd4:	83 c9 02             	or     $0x2,%ecx
40bcd7:	89 8e 50 03 00 00    	mov    %ecx,0x350(%esi)
40bcdd:	eb 07                	jmp    0x40bce6
40bcdf:	83 0d a0 66 42 00 ff 	orl    $0xffffffff,0x4266a0
40bce6:	5e                   	pop    %esi
40bce7:	5d                   	pop    %ebp
40bce8:	c3                   	ret
40bce9:	a1 6c 6e 42 00       	mov    0x426e6c,%eax
40bcee:	90                   	nop
40bcef:	c3                   	ret
40bcf0:	8b ff                	mov    %edi,%edi
40bcf2:	55                   	push   %ebp
40bcf3:	8b ec                	mov    %esp,%ebp
40bcf5:	8b 45 08             	mov    0x8(%ebp),%eax
40bcf8:	85 c0                	test   %eax,%eax
40bcfa:	74 1a                	je     0x40bd16
40bcfc:	83 f8 01             	cmp    $0x1,%eax
40bcff:	74 15                	je     0x40bd16
40bd01:	e8 cd 2f 00 00       	call   0x40ecd3
40bd06:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40bd0c:	e8 05 2f 00 00       	call   0x40ec16
40bd11:	83 c8 ff             	or     $0xffffffff,%eax
40bd14:	5d                   	pop    %ebp
40bd15:	c3                   	ret
40bd16:	b9 6c 6e 42 00       	mov    $0x426e6c,%ecx
40bd1b:	87 01                	xchg   %eax,(%ecx)
40bd1d:	5d                   	pop    %ebp
40bd1e:	c3                   	ret
40bd1f:	b8 70 6e 42 00       	mov    $0x426e70,%eax
40bd24:	c3                   	ret
40bd25:	6a 0c                	push   $0xc
40bd27:	68 c0 3e 42 00       	push   $0x423ec0
40bd2c:	e8 9f cc ff ff       	call   0x4089d0
40bd31:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40bd35:	8b 45 08             	mov    0x8(%ebp),%eax
40bd38:	ff 30                	push   (%eax)
40bd3a:	e8 c2 44 00 00       	call   0x410201
40bd3f:	59                   	pop    %ecx
40bd40:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bd44:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bd47:	e8 b8 01 00 00       	call   0x40bf04
40bd4c:	8b f0                	mov    %eax,%esi
40bd4e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40bd51:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bd58:	e8 17 00 00 00       	call   0x40bd74
40bd5d:	8b c6                	mov    %esi,%eax
40bd5f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bd62:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bd69:	59                   	pop    %ecx
40bd6a:	5f                   	pop    %edi
40bd6b:	5e                   	pop    %esi
40bd6c:	5b                   	pop    %ebx
40bd6d:	c9                   	leave
40bd6e:	c2 0c 00             	ret    $0xc
40bd71:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40bd74:	8b 45 10             	mov    0x10(%ebp),%eax
40bd77:	ff 30                	push   (%eax)
40bd79:	e8 d3 44 00 00       	call   0x410251
40bd7e:	59                   	pop    %ecx
40bd7f:	c3                   	ret
40bd80:	6a 0c                	push   $0xc
40bd82:	68 a0 3e 42 00       	push   $0x423ea0
40bd87:	e8 44 cc ff ff       	call   0x4089d0
40bd8c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40bd90:	8b 45 08             	mov    0x8(%ebp),%eax
40bd93:	ff 30                	push   (%eax)
40bd95:	e8 67 44 00 00       	call   0x410201
40bd9a:	59                   	pop    %ecx
40bd9b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bd9f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bda2:	e8 34 00 00 00       	call   0x40bddb
40bda7:	8b f0                	mov    %eax,%esi
40bda9:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40bdac:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bdb3:	e8 17 00 00 00       	call   0x40bdcf
40bdb8:	8b c6                	mov    %esi,%eax
40bdba:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bdbd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bdc4:	59                   	pop    %ecx
40bdc5:	5f                   	pop    %edi
40bdc6:	5e                   	pop    %esi
40bdc7:	5b                   	pop    %ebx
40bdc8:	c9                   	leave
40bdc9:	c2 0c 00             	ret    $0xc
40bdcc:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40bdcf:	8b 45 10             	mov    0x10(%ebp),%eax
40bdd2:	ff 30                	push   (%eax)
40bdd4:	e8 78 44 00 00       	call   0x410251
40bdd9:	59                   	pop    %ecx
40bdda:	c3                   	ret
40bddb:	8b ff                	mov    %edi,%edi
40bddd:	55                   	push   %ebp
40bdde:	8b ec                	mov    %esp,%ebp
40bde0:	83 ec 0c             	sub    $0xc,%esp
40bde3:	8b c1                	mov    %ecx,%eax
40bde5:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bde8:	53                   	push   %ebx
40bde9:	56                   	push   %esi
40bdea:	8b 00                	mov    (%eax),%eax
40bdec:	57                   	push   %edi
40bded:	8b 30                	mov    (%eax),%esi
40bdef:	85 f6                	test   %esi,%esi
40bdf1:	0f 84 05 01 00 00    	je     0x40befc
40bdf7:	a1 18 60 42 00       	mov    0x426018,%eax
40bdfc:	8b c8                	mov    %eax,%ecx
40bdfe:	8b 1e                	mov    (%esi),%ebx
40be00:	83 e1 1f             	and    $0x1f,%ecx
40be03:	8b 7e 04             	mov    0x4(%esi),%edi
40be06:	33 d8                	xor    %eax,%ebx
40be08:	8b 76 08             	mov    0x8(%esi),%esi
40be0b:	33 f8                	xor    %eax,%edi
40be0d:	33 f0                	xor    %eax,%esi
40be0f:	d3 cf                	ror    %cl,%edi
40be11:	d3 ce                	ror    %cl,%esi
40be13:	d3 cb                	ror    %cl,%ebx
40be15:	3b fe                	cmp    %esi,%edi
40be17:	0f 85 9d 00 00 00    	jne    0x40beba
40be1d:	2b f3                	sub    %ebx,%esi
40be1f:	b8 00 02 00 00       	mov    $0x200,%eax
40be24:	c1 fe 02             	sar    $0x2,%esi
40be27:	3b f0                	cmp    %eax,%esi
40be29:	77 02                	ja     0x40be2d
40be2b:	8b c6                	mov    %esi,%eax
40be2d:	8d 3c 30             	lea    (%eax,%esi,1),%edi
40be30:	85 ff                	test   %edi,%edi
40be32:	75 03                	jne    0x40be37
40be34:	6a 20                	push   $0x20
40be36:	5f                   	pop    %edi
40be37:	3b fe                	cmp    %esi,%edi
40be39:	72 1d                	jb     0x40be58
40be3b:	6a 04                	push   $0x4
40be3d:	57                   	push   %edi
40be3e:	53                   	push   %ebx
40be3f:	e8 cd 57 00 00       	call   0x411611
40be44:	6a 00                	push   $0x0
40be46:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be49:	e8 f5 2e 00 00       	call   0x40ed43
40be4e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be51:	83 c4 10             	add    $0x10,%esp
40be54:	85 c9                	test   %ecx,%ecx
40be56:	75 24                	jne    0x40be7c
40be58:	6a 04                	push   $0x4
40be5a:	8d 7e 04             	lea    0x4(%esi),%edi
40be5d:	57                   	push   %edi
40be5e:	53                   	push   %ebx
40be5f:	e8 ad 57 00 00       	call   0x411611
40be64:	6a 00                	push   $0x0
40be66:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be69:	e8 d5 2e 00 00       	call   0x40ed43
40be6e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be71:	83 c4 10             	add    $0x10,%esp
40be74:	85 c9                	test   %ecx,%ecx
40be76:	0f 84 80 00 00 00    	je     0x40befc
40be7c:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
40be7f:	8b d9                	mov    %ecx,%ebx
40be81:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be84:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
40be87:	a1 18 60 42 00       	mov    0x426018,%eax
40be8c:	8b 7d fc             	mov    -0x4(%ebp),%edi
40be8f:	8b cf                	mov    %edi,%ecx
40be91:	89 45 f4             	mov    %eax,-0xc(%ebp)
40be94:	8b c6                	mov    %esi,%eax
40be96:	2b c7                	sub    %edi,%eax
40be98:	83 c0 03             	add    $0x3,%eax
40be9b:	c1 e8 02             	shr    $0x2,%eax
40be9e:	3b f7                	cmp    %edi,%esi
40bea0:	1b d2                	sbb    %edx,%edx
40bea2:	f7 d2                	not    %edx
40bea4:	23 d0                	and    %eax,%edx
40bea6:	74 12                	je     0x40beba
40bea8:	8b 7d f4             	mov    -0xc(%ebp),%edi
40beab:	33 c0                	xor    %eax,%eax
40bead:	40                   	inc    %eax
40beae:	89 39                	mov    %edi,(%ecx)
40beb0:	8d 49 04             	lea    0x4(%ecx),%ecx
40beb3:	3b c2                	cmp    %edx,%eax
40beb5:	75 f6                	jne    0x40bead
40beb7:	8b 7d fc             	mov    -0x4(%ebp),%edi
40beba:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bebd:	8b 40 04             	mov    0x4(%eax),%eax
40bec0:	ff 30                	push   (%eax)
40bec2:	e8 66 f3 ff ff       	call   0x40b22d
40bec7:	53                   	push   %ebx
40bec8:	89 07                	mov    %eax,(%edi)
40beca:	e8 5e f3 ff ff       	call   0x40b22d
40becf:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40bed2:	8b 0b                	mov    (%ebx),%ecx
40bed4:	8b 09                	mov    (%ecx),%ecx
40bed6:	89 01                	mov    %eax,(%ecx)
40bed8:	8d 47 04             	lea    0x4(%edi),%eax
40bedb:	50                   	push   %eax
40bedc:	e8 4c f3 ff ff       	call   0x40b22d
40bee1:	8b 0b                	mov    (%ebx),%ecx
40bee3:	56                   	push   %esi
40bee4:	8b 09                	mov    (%ecx),%ecx
40bee6:	89 41 04             	mov    %eax,0x4(%ecx)
40bee9:	e8 3f f3 ff ff       	call   0x40b22d
40beee:	8b 0b                	mov    (%ebx),%ecx
40bef0:	83 c4 10             	add    $0x10,%esp
40bef3:	8b 09                	mov    (%ecx),%ecx
40bef5:	89 41 08             	mov    %eax,0x8(%ecx)
40bef8:	33 c0                	xor    %eax,%eax
40befa:	eb 03                	jmp    0x40beff
40befc:	83 c8 ff             	or     $0xffffffff,%eax
40beff:	5f                   	pop    %edi
40bf00:	5e                   	pop    %esi
40bf01:	5b                   	pop    %ebx
40bf02:	c9                   	leave
40bf03:	c3                   	ret
40bf04:	8b ff                	mov    %edi,%edi
40bf06:	55                   	push   %ebp
40bf07:	8b ec                	mov    %esp,%ebp
40bf09:	83 ec 14             	sub    $0x14,%esp
40bf0c:	53                   	push   %ebx
40bf0d:	8b d9                	mov    %ecx,%ebx
40bf0f:	57                   	push   %edi
40bf10:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40bf13:	8b 03                	mov    (%ebx),%eax
40bf15:	8b 38                	mov    (%eax),%edi
40bf17:	85 ff                	test   %edi,%edi
40bf19:	75 08                	jne    0x40bf23
40bf1b:	83 c8 ff             	or     $0xffffffff,%eax
40bf1e:	e9 b7 00 00 00       	jmp    0x40bfda
40bf23:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bf29:	8b ca                	mov    %edx,%ecx
40bf2b:	56                   	push   %esi
40bf2c:	8b 37                	mov    (%edi),%esi
40bf2e:	83 e1 1f             	and    $0x1f,%ecx
40bf31:	8b 7f 04             	mov    0x4(%edi),%edi
40bf34:	33 f2                	xor    %edx,%esi
40bf36:	33 fa                	xor    %edx,%edi
40bf38:	d3 ce                	ror    %cl,%esi
40bf3a:	d3 cf                	ror    %cl,%edi
40bf3c:	85 f6                	test   %esi,%esi
40bf3e:	0f 84 93 00 00 00    	je     0x40bfd7
40bf44:	83 fe ff             	cmp    $0xffffffff,%esi
40bf47:	0f 84 8a 00 00 00    	je     0x40bfd7
40bf4d:	89 55 fc             	mov    %edx,-0x4(%ebp)
40bf50:	89 7d f4             	mov    %edi,-0xc(%ebp)
40bf53:	89 75 f8             	mov    %esi,-0x8(%ebp)
40bf56:	83 ef 04             	sub    $0x4,%edi
40bf59:	3b fe                	cmp    %esi,%edi
40bf5b:	72 54                	jb     0x40bfb1
40bf5d:	8b 07                	mov    (%edi),%eax
40bf5f:	3b 45 fc             	cmp    -0x4(%ebp),%eax
40bf62:	74 f2                	je     0x40bf56
40bf64:	33 c2                	xor    %edx,%eax
40bf66:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bf69:	d3 c8                	ror    %cl,%eax
40bf6b:	8b c8                	mov    %eax,%ecx
40bf6d:	89 17                	mov    %edx,(%edi)
40bf6f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40bf72:	ff 15 50 c2 41 00    	call   *0x41c250
40bf78:	ff 55 f0             	call   *-0x10(%ebp)
40bf7b:	8b 03                	mov    (%ebx),%eax
40bf7d:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bf83:	8b ca                	mov    %edx,%ecx
40bf85:	83 e1 1f             	and    $0x1f,%ecx
40bf88:	8b 00                	mov    (%eax),%eax
40bf8a:	8b 18                	mov    (%eax),%ebx
40bf8c:	8b 40 04             	mov    0x4(%eax),%eax
40bf8f:	33 da                	xor    %edx,%ebx
40bf91:	d3 cb                	ror    %cl,%ebx
40bf93:	33 c2                	xor    %edx,%eax
40bf95:	d3 c8                	ror    %cl,%eax
40bf97:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40bf9a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bf9d:	8b 5d ec             	mov    -0x14(%ebp),%ebx
40bfa0:	75 05                	jne    0x40bfa7
40bfa2:	3b 45 f4             	cmp    -0xc(%ebp),%eax
40bfa5:	74 af                	je     0x40bf56
40bfa7:	8b 75 f0             	mov    -0x10(%ebp),%esi
40bfaa:	8b f8                	mov    %eax,%edi
40bfac:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bfaf:	eb a2                	jmp    0x40bf53
40bfb1:	83 fe ff             	cmp    $0xffffffff,%esi
40bfb4:	74 0d                	je     0x40bfc3
40bfb6:	56                   	push   %esi
40bfb7:	e8 87 2d 00 00       	call   0x40ed43
40bfbc:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bfc2:	59                   	pop    %ecx
40bfc3:	8b 03                	mov    (%ebx),%eax
40bfc5:	8b 00                	mov    (%eax),%eax
40bfc7:	89 10                	mov    %edx,(%eax)
40bfc9:	8b 03                	mov    (%ebx),%eax
40bfcb:	8b 00                	mov    (%eax),%eax
40bfcd:	89 50 04             	mov    %edx,0x4(%eax)
40bfd0:	8b 03                	mov    (%ebx),%eax
40bfd2:	8b 00                	mov    (%eax),%eax
40bfd4:	89 50 08             	mov    %edx,0x8(%eax)
40bfd7:	33 c0                	xor    %eax,%eax
40bfd9:	5e                   	pop    %esi