40ecbf:	8b 49 4c             	mov    0x4c(%ecx),%ecx
40ecc2:	8b 01                	mov    (%ecx),%eax
40ecc4:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ecc7:	52                   	push   %edx
40ecc8:	68 0c 4e 49 00       	push   $0x494e0c
40eccd:	51                   	push   %ecx
40ecce:	ff 10                	call   *(%eax)
40ecd0:	85 c0                	test   %eax,%eax
40ecd2:	7c 0c                	jl     0x40ece0
40ecd4:	6a 01                	push   $0x1
40ecd6:	ff 75 fc             	push   -0x4(%ebp)
40ecd9:	8b ce                	mov    %esi,%ecx
40ecdb:	e8 c4 e0 06 00       	call   0x47cda4
40ece0:	83 3e 00             	cmpl   $0x0,(%esi)
40ece3:	74 19                	je     0x40ecfe
40ece5:	ff 75 1c             	push   0x1c(%ebp)
40ece8:	8b ce                	mov    %esi,%ecx
40ecea:	ff 75 18             	push   0x18(%ebp)
40eced:	ff 75 14             	push   0x14(%ebp)
40ecf0:	ff 75 10             	push   0x10(%ebp)
40ecf3:	ff 75 0c             	push   0xc(%ebp)
40ecf6:	ff 75 08             	push   0x8(%ebp)
40ecf9:	e8 bf e0 06 00       	call   0x47cdbd
40ecfe:	5e                   	pop    %esi
40ecff:	c9                   	leave
40ed00:	c2 18 00             	ret    $0x18
40ed03:	55                   	push   %ebp
40ed04:	8b ec                	mov    %esp,%ebp
40ed06:	8b 45 0c             	mov    0xc(%ebp),%eax
40ed09:	f6 c4 40             	test   $0x40,%ah
40ed0c:	74 08                	je     0x40ed16
40ed0e:	25 ff bf 00 00       	and    $0xbfff,%eax
40ed13:	83 c8 40             	or     $0x40,%eax
40ed16:	6a 08                	push   $0x8
40ed18:	5a                   	pop    %edx
40ed19:	66 3b c2             	cmp    %dx,%ax
40ed1c:	75 03                	jne    0x40ed21
40ed1e:	6a 0e                	push   $0xe
40ed20:	58                   	pop    %eax
40ed21:	84 e4                	test   %ah,%ah
40ed23:	79 07                	jns    0x40ed2c
40ed25:	25 ff 7f 00 00       	and    $0x7fff,%eax
40ed2a:	eb 10                	jmp    0x40ed3c
40ed2c:	33 d2                	xor    %edx,%edx
40ed2e:	66 3d 09 00          	cmp    $0x9,%ax
40ed32:	0f 94 c2             	sete   %dl
40ed35:	8d 14 95 04 00 00 00 	lea    0x4(,%edx,4),%edx
40ed3c:	56                   	push   %esi
40ed3d:	8b 31                	mov    (%ecx),%esi
40ed3f:	57                   	push   %edi
40ed40:	ff 75 10             	push   0x10(%ebp)
40ed43:	88 45 0e             	mov    %al,0xe(%ebp)
40ed46:	33 c0                	xor    %eax,%eax
40ed48:	8d 7d 0e             	lea    0xe(%ebp),%edi
40ed4b:	57                   	push   %edi
40ed4c:	50                   	push   %eax
40ed4d:	50                   	push   %eax
40ed4e:	52                   	push   %edx
40ed4f:	ff 75 08             	push   0x8(%ebp)
40ed52:	88 45 0f             	mov    %al,0xf(%ebp)
40ed55:	ff 56 60             	call   *0x60(%esi)
40ed58:	5f                   	pop    %edi
40ed59:	5e                   	pop    %esi
40ed5a:	5d                   	pop    %ebp
40ed5b:	c2 0c 00             	ret    $0xc
40ed5e:	55                   	push   %ebp
40ed5f:	8b ec                	mov    %esp,%ebp
40ed61:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed64:	8b 01                	mov    (%ecx),%eax
40ed66:	8d 55 20             	lea    0x20(%ebp),%edx
40ed69:	52                   	push   %edx
40ed6a:	ff 75 1c             	push   0x1c(%ebp)
40ed6d:	ff 75 18             	push   0x18(%ebp)
40ed70:	ff 75 14             	push   0x14(%ebp)
40ed73:	ff 75 10             	push   0x10(%ebp)
40ed76:	ff 75 0c             	push   0xc(%ebp)
40ed79:	ff 50 60             	call   *0x60(%eax)
40ed7c:	5d                   	pop    %ebp
40ed7d:	c3                   	ret
40ed7e:	8b 01                	mov    (%ecx),%eax
40ed80:	6a 00                	push   $0x0
40ed82:	ff 74 24 10          	push   0x10(%esp)
40ed86:	ff 74 24 10          	push   0x10(%esp)
40ed8a:	6a 02                	push   $0x2
40ed8c:	ff 74 24 14          	push   0x14(%esp)
40ed90:	51                   	push   %ecx
40ed91:	ff 50 68             	call   *0x68(%eax)
40ed94:	83 c4 18             	add    $0x18,%esp
40ed97:	c2 0c 00             	ret    $0xc
40ed9a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ed9e:	8b 01                	mov    (%ecx),%eax
40eda0:	8d 54 24 10          	lea    0x10(%esp),%edx
40eda4:	52                   	push   %edx
40eda5:	ff 74 24 10          	push   0x10(%esp)
40eda9:	ff 74 24 10          	push   0x10(%esp)
40edad:	ff 50 64             	call   *0x64(%eax)
40edb0:	c3                   	ret
40edb1:	b8 24 36 48 00       	mov    $0x483624,%eax
40edb6:	e8 c1 8e 00 00       	call   0x417c7c
40edbb:	51                   	push   %ecx
40edbc:	51                   	push   %ecx
40edbd:	8b 4d 08             	mov    0x8(%ebp),%ecx
40edc0:	8b 01                	mov    (%ecx),%eax
40edc2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40edc6:	53                   	push   %ebx
40edc7:	56                   	push   %esi
40edc8:	57                   	push   %edi
40edc9:	89 65 f0             	mov    %esp,-0x10(%ebp)
40edcc:	8d 55 14             	lea    0x14(%ebp),%edx
40edcf:	52                   	push   %edx
40edd0:	ff 75 10             	push   0x10(%ebp)
40edd3:	ff 75 0c             	push   0xc(%ebp)
40edd6:	ff 50 64             	call   *0x64(%eax)
40edd9:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
40ede0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ede3:	8b 45 08             	mov    0x8(%ebp),%eax
40ede6:	5f                   	pop    %edi
40ede7:	5e                   	pop    %esi
40ede8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40edef:	5b                   	pop    %ebx
40edf0:	c9                   	leave
40edf1:	c3                   	ret
40edf2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40edf5:	e8 1f 11 03 00       	call   0x43ff19
40edfa:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40edfe:	b8 e0 ed 40 00       	mov    $0x40ede0,%eax
40ee03:	c3                   	ret
40ee04:	b8 2e 36 48 00       	mov    $0x48362e,%eax
40ee09:	e8 6e 8e 00 00       	call   0x417c7c
40ee0e:	83 ec 14             	sub    $0x14,%esp
40ee11:	53                   	push   %ebx
40ee12:	56                   	push   %esi
40ee13:	8b f1                	mov    %ecx,%esi
40ee15:	8b 46 68             	mov    0x68(%esi),%eax
40ee18:	57                   	push   %edi
40ee19:	33 ff                	xor    %edi,%edi
40ee1b:	39 7e 70             	cmp    %edi,0x70(%esi)
40ee1e:	89 65 f0             	mov    %esp,-0x10(%ebp)
40ee21:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ee24:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ee27:	75 13                	jne    0x40ee3c
40ee29:	6a f0                	push   $0xfffffff0
40ee2b:	ff 76 20             	push   0x20(%esi)
40ee2e:	ff 15 14 08 4b 00    	call   *0x4b0814
40ee34:	25 00 00 00 10       	and    $0x10000000,%eax
40ee39:	09 45 ec             	or     %eax,-0x14(%ebp)
40ee3c:	8b 06                	mov    (%esi),%eax
40ee3e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ee41:	51                   	push   %ecx
40ee42:	6a 0b                	push   $0xb
40ee44:	68 fe fd ff ff       	push   $0xfffffdfe
40ee49:	8b ce                	mov    %esi,%ecx
40ee4b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ee4e:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
40ee55:	ff 50 6c             	call   *0x6c(%eax)
40ee58:	39 7d e8             	cmp    %edi,-0x18(%ebp)
40ee5b:	75 17                	jne    0x40ee74
40ee5d:	80 4d ef 08          	orb    $0x8,-0x11(%ebp)
40ee61:	eb 11                	jmp    0x40ee74
40ee63:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ee66:	e8 ae 10 03 00       	call   0x43ff19
40ee6b:	b8 71 ee 40 00       	mov    $0x40ee71,%eax
40ee70:	c3                   	ret
40ee71:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ee74:	8b 16                	mov    (%esi),%edx
40ee76:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40ee7a:	6a 02                	push   $0x2
40ee7c:	58                   	pop    %eax
40ee7d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ee80:	51                   	push   %ecx
40ee81:	50                   	push   %eax
40ee82:	68 08 fe ff ff       	push   $0xfffffe08
40ee87:	8b ce                	mov    %esi,%ecx
40ee89:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ee8c:	ff 52 6c             	call   *0x6c(%edx)
40ee8f:	66 83 7d e8 01       	cmpw   $0x1,-0x18(%ebp)
40ee94:	75 04                	jne    0x40ee9a
40ee96:	80 4d ee 80          	orb    $0x80,-0x12(%ebp)
40ee9a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ee9d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40eea0:	5f                   	pop    %edi
40eea1:	5e                   	pop    %esi
40eea2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40eea9:	5b                   	pop    %ebx
40eeaa:	c9                   	leave
40eeab:	c3                   	ret
40eeac:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40eeaf:	e8 65 10 03 00       	call   0x43ff19
40eeb4:	b8 9a ee 40 00       	mov    $0x40ee9a,%eax
40eeb9:	c3                   	ret
40eeba:	b8 38 36 48 00       	mov    $0x483638,%eax
40eebf:	e8 b8 8d 00 00       	call   0x417c7c
40eec4:	83 ec 10             	sub    $0x10,%esp
40eec7:	53                   	push   %ebx
40eec8:	56                   	push   %esi
40eec9:	57                   	push   %edi
40eeca:	89 65 f0             	mov    %esp,-0x10(%ebp)
40eecd:	8b f1                	mov    %ecx,%esi
40eecf:	6a ec                	push   $0xffffffec
40eed1:	ff 76 20             	push   0x20(%esi)
40eed4:	ff 15 14 08 4b 00    	call   *0x4b0814
40eeda:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40eede:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40eee2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40eee5:	51                   	push   %ecx
40eee6:	6a 02                	push   $0x2
40eee8:	89 45 ec             	mov    %eax,-0x14(%ebp)
40eeeb:	8b 06                	mov    (%esi),%eax
40eeed:	68 f8 fd ff ff       	push   $0xfffffdf8
40eef2:	8b ce                	mov    %esi,%ecx
40eef4:	ff 50 6c             	call   *0x6c(%eax)
40eef7:	66 83 7d e8 01       	cmpw   $0x1,-0x18(%ebp)
40eefc:	75 04                	jne    0x40ef02
40eefe:	80 4d ed 02          	orb    $0x2,-0x13(%ebp)
40ef02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ef05:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ef08:	5f                   	pop    %edi
40ef09:	5e                   	pop    %esi
40ef0a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ef11:	5b                   	pop    %ebx
40ef12:	c9                   	leave
40ef13:	c3                   	ret
40ef14:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ef17:	e8 fd 0f 03 00       	call   0x43ff19
40ef1c:	b8 02 ef 40 00       	mov    $0x40ef02,%eax
40ef21:	c3                   	ret
40ef22:	53                   	push   %ebx
40ef23:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40ef27:	56                   	push   %esi
40ef28:	8b f1                	mov    %ecx,%esi
40ef2a:	8b c3                	mov    %ebx,%eax
40ef2c:	f7 d0                	not    %eax
40ef2e:	23 46 68             	and    0x68(%esi),%eax
40ef31:	57                   	push   %edi
40ef32:	8b 7c 24 14          	mov    0x14(%esp),%edi
40ef36:	0b c7                	or     %edi,%eax
40ef38:	23 46 64             	and    0x64(%esi),%eax
40ef3b:	89 46 68             	mov    %eax,0x68(%esi)
40ef3e:	b8 00 00 00 08       	mov    $0x8000000,%eax
40ef43:	85 d8                	test   %ebx,%eax
40ef45:	75 04                	jne    0x40ef4b
40ef47:	85 f8                	test   %edi,%eax
40ef49:	74 24                	je     0x40ef6f
40ef4b:	8b 0e                	mov    (%esi),%ecx
40ef4d:	8b d7                	mov    %edi,%edx
40ef4f:	f7 d2                	not    %edx
40ef51:	23 d0                	and    %eax,%edx
40ef53:	52                   	push   %edx
40ef54:	6a 0b                	push   $0xb
40ef56:	68 fe fd ff ff       	push   $0xfffffdfe
40ef5b:	56                   	push   %esi
40ef5c:	ff 51 74             	call   *0x74(%ecx)
40ef5f:	83 c4 10             	add    $0x10,%esp
40ef62:	85 c0                	test   %eax,%eax
40ef64:	74 09                	je     0x40ef6f
40ef66:	b8 ff ff ff f7       	mov    $0xf7ffffff,%eax
40ef6b:	23 d8                	and    %eax,%ebx
40ef6d:	23 f8                	and    %eax,%edi
40ef6f:	b8 00 00 80 00       	mov    $0x800000,%eax
40ef74:	85 d8                	test   %ebx,%eax
40ef76:	75 04                	jne    0x40ef7c
40ef78:	85 f8                	test   %edi,%eax
40ef7a:	74 22                	je     0x40ef9e
40ef7c:	8b 0e                	mov    (%esi),%ecx
40ef7e:	8b d7                	mov    %edi,%edx
40ef80:	23 d0                	and    %eax,%edx
40ef82:	52                   	push   %edx
40ef83:	6a 02                	push   $0x2
40ef85:	68 08 fe ff ff       	push   $0xfffffe08
40ef8a:	56                   	push   %esi
40ef8b:	ff 51 74             	call   *0x74(%ecx)
40ef8e:	83 c4 10             	add    $0x10,%esp
40ef91:	85 c0                	test   %eax,%eax
40ef93:	74 09                	je     0x40ef9e
40ef95:	b8 ff ff 7f ff       	mov    $0xff7fffff,%eax
40ef9a:	23 d8                	and    %eax,%ebx
40ef9c:	23 f8                	and    %eax,%edi
40ef9e:	8b 76 20             	mov    0x20(%esi),%esi
40efa1:	85 f6                	test   %esi,%esi
40efa3:	74 0e                	je     0x40efb3
40efa5:	ff 74 24 18          	push   0x18(%esp)
40efa9:	57                   	push   %edi
40efaa:	53                   	push   %ebx
40efab:	56                   	push   %esi
40efac:	e8 dc 41 03 00       	call   0x44318d
40efb1:	eb 03                	jmp    0x40efb6
40efb3:	33 c0                	xor    %eax,%eax
40efb5:	40                   	inc    %eax
40efb6:	5f                   	pop    %edi
40efb7:	5e                   	pop    %esi
40efb8:	5b                   	pop    %ebx
40efb9:	c2 0c 00             	ret    $0xc
40efbc:	55                   	push   %ebp
40efbd:	8b ec                	mov    %esp,%ebp
40efbf:	56                   	push   %esi
40efc0:	b8 00 02 00 00       	mov    $0x200,%eax
40efc5:	85 45 08             	test   %eax,0x8(%ebp)
40efc8:	57                   	push   %edi
40efc9:	8b 7d 0c             	mov    0xc(%ebp),%edi
40efcc:	8b f1                	mov    %ecx,%esi
40efce:	75 04                	jne    0x40efd4
40efd0:	85 f8                	test   %edi,%eax
40efd2:	74 23                	je     0x40eff7
40efd4:	8b 0e                	mov    (%esi),%ecx
40efd6:	8b d7                	mov    %edi,%edx
40efd8:	23 d0                	and    %eax,%edx
40efda:	52                   	push   %edx
40efdb:	6a 02                	push   $0x2
40efdd:	68 f8 fd ff ff       	push   $0xfffffdf8
40efe2:	56                   	push   %esi
40efe3:	ff 51 74             	call   *0x74(%ecx)
40efe6:	83 c4 10             	add    $0x10,%esp
40efe9:	85 c0                	test   %eax,%eax
40efeb:	74 0a                	je     0x40eff7
40efed:	b8 ff fd ff ff       	mov    $0xfffffdff,%eax
40eff2:	21 45 08             	and    %eax,0x8(%ebp)
40eff5:	23 f8                	and    %eax,%edi
40eff7:	8b 76 20             	mov    0x20(%esi),%esi
40effa:	85 f6                	test   %esi,%esi
40effc:	74 0f                	je     0x40f00d
40effe:	ff 75 10             	push   0x10(%ebp)
40f001:	57                   	push   %edi
40f002:	ff 75 08             	push   0x8(%ebp)
40f005:	56                   	push   %esi
40f006:	e8 9c 41 03 00       	call   0x4431a7
40f00b:	eb 03                	jmp    0x40f010
40f00d:	33 c0                	xor    %eax,%eax
40f00f:	40                   	inc    %eax
40f010:	5f                   	pop    %edi
40f011:	5e                   	pop    %esi
40f012:	5d                   	pop    %ebp
40f013:	c2 0c 00             	ret    $0xc
40f016:	56                   	push   %esi
40f017:	ff 74 24 08          	push   0x8(%esp)
40f01b:	8b f1                	mov    %ecx,%esi
40f01d:	8b 06                	mov    (%esi),%eax
40f01f:	6a 08                	push   $0x8
40f021:	68 fa fd ff ff       	push   $0xfffffdfa
40f026:	56                   	push   %esi
40f027:	ff 50 74             	call   *0x74(%eax)
40f02a:	83 c4 10             	add    $0x10,%esp
40f02d:	85 c0                	test   %eax,%eax
40f02f:	75 14                	jne    0x40f045
40f031:	ff 74 24 08          	push   0x8(%esp)
40f035:	8b 06                	mov    (%esi),%eax
40f037:	6a 08                	push   $0x8
40f039:	68 fb fd ff ff       	push   $0xfffffdfb
40f03e:	56                   	push   %esi
40f03f:	ff 50 74             	call   *0x74(%eax)
40f042:	83 c4 10             	add    $0x10,%esp