40edd8:	ff ff ff
40eddb:	83 c8 ff             	or     $0xffffffff,%eax
40edde:	eb 1a                	jmp    0x40edfa
40ede0:	0f b7 0f             	movzwl (%edi),%ecx
40ede3:	f6 c1 04             	test   $0x4,%cl
40ede6:	0f 85 33 f0 00 00    	jne    0x41de1f
40edec:	8b 45 08             	mov    0x8(%ebp),%eax
40edef:	89 35 d8 e0 42 00    	mov    %esi,0x42e0d8
40edf5:	66 89 08             	mov    %cx,(%eax)
40edf8:	8b c6                	mov    %esi,%eax
40edfa:	5f                   	pop    %edi
40edfb:	5e                   	pop    %esi
40edfc:	5b                   	pop    %ebx
40edfd:	8b e5                	mov    %ebp,%esp
40edff:	5d                   	pop    %ebp
40ee00:	c2 04 00             	ret    $0x4
40ee03:	8b ff                	mov    %edi,%edi
40ee05:	55                   	push   %ebp
40ee06:	8b ec                	mov    %esp,%ebp
40ee08:	81 ec b0 02 00 00    	sub    $0x2b0,%esp
40ee0e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40ee13:	33 c5                	xor    %ebp,%eax
40ee15:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ee18:	8b 45 10             	mov    0x10(%ebp),%eax
40ee1b:	53                   	push   %ebx
40ee1c:	56                   	push   %esi
40ee1d:	8b 75 0c             	mov    0xc(%ebp),%esi
40ee20:	89 8d 90 fd ff ff    	mov    %ecx,-0x270(%ebp)
40ee26:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ee29:	57                   	push   %edi
40ee2a:	8b fa                	mov    %edx,%edi
40ee2c:	89 8d 80 fd ff ff    	mov    %ecx,-0x280(%ebp)
40ee32:	33 d2                	xor    %edx,%edx
40ee34:	89 b5 84 fd ff ff    	mov    %esi,-0x27c(%ebp)
40ee3a:	8b da                	mov    %edx,%ebx
40ee3c:	89 85 78 fd ff ff    	mov    %eax,-0x288(%ebp)
40ee42:	89 11                	mov    %edx,(%ecx)
40ee44:	38 15 55 67 43 00    	cmp    %dl,0x436755
40ee4a:	74 06                	je     0x40ee52
40ee4c:	66 83 3f 7e          	cmpw   $0x7e,(%edi)
40ee50:	74 55                	je     0x40eea7
40ee52:	0f b7 07             	movzwl (%edi),%eax
40ee55:	66 85 c0             	test   %ax,%ax
40ee58:	74 1f                	je     0x40ee79
40ee5a:	50                   	push   %eax
40ee5b:	56                   	push   %esi
40ee5c:	ff 15 04 a4 44 00    	call   *0x44a404
40ee62:	59                   	pop    %ecx
40ee63:	59                   	pop    %ecx
40ee64:	85 c0                	test   %eax,%eax
40ee66:	75 24                	jne    0x40ee8c
40ee68:	8b 85 80 fd ff ff    	mov    -0x280(%ebp),%eax
40ee6e:	33 c9                	xor    %ecx,%ecx
40ee70:	39 08                	cmp    %ecx,(%eax)
40ee72:	b8 b8 20 40 00       	mov    $0x4020b8,%eax
40ee77:	75 02                	jne    0x40ee7b
40ee79:	8b c3                	mov    %ebx,%eax
40ee7b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ee7e:	5f                   	pop    %edi
40ee7f:	5e                   	pop    %esi
40ee80:	33 cd                	xor    %ebp,%ecx
40ee82:	5b                   	pop    %ebx
40ee83:	e8 a8 7c 00 00       	call   0x416b30
40ee88:	c9                   	leave
40ee89:	c2 0c 00             	ret    $0xc
40ee8c:	8b 9d 78 fd ff ff    	mov    -0x288(%ebp),%ebx
40ee92:	2b c6                	sub    %esi,%eax
40ee94:	d1 f8                	sar    $1,%eax
40ee96:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
40ee99:	8b 85 80 fd ff ff    	mov    -0x280(%ebp),%eax
40ee9f:	ff 00                	incl   (%eax)
40eea1:	85 db                	test   %ebx,%ebx
40eea3:	75 d4                	jne    0x40ee79
40eea5:	eb c1                	jmp    0x40ee68
40eea7:	8d 47 fe             	lea    -0x2(%edi),%eax
40eeaa:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
40eeb0:	83 c7 02             	add    $0x2,%edi
40eeb3:	89 95 94 fd ff ff    	mov    %edx,-0x26c(%ebp)
40eeb9:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
40eebf:	66 39 17             	cmp    %dx,(%edi)
40eec2:	0f 84 69 ef 00 00    	je     0x41de31
40eec8:	ba ce ff 00 00       	mov    $0xffce,%edx
40eecd:	8d 8d 98 fd ff ff    	lea    -0x268(%ebp),%ecx
40eed3:	e8 2d 2b 00 00       	call   0x411a05
40eed8:	8b b5 98 fd ff ff    	mov    -0x268(%ebp),%esi
40eede:	89 b5 7c fd ff ff    	mov    %esi,-0x284(%ebp)
40eee4:	85 f6                	test   %esi,%esi
40eee6:	0f 84 45 ef 00 00    	je     0x41de31
40eeec:	0f b7 07             	movzwl (%edi),%eax
40eeef:	8b cf                	mov    %edi,%ecx
40eef1:	89 8d 98 fd ff ff    	mov    %ecx,-0x268(%ebp)
40eef7:	6a 24                	push   $0x24
40eef9:	5a                   	pop    %edx
40eefa:	66 85 c0             	test   %ax,%ax
40eefd:	74 34                	je     0x40ef33
40eeff:	8b d0                	mov    %eax,%edx
40ef01:	6a 24                	push   $0x24
40ef03:	58                   	pop    %eax
40ef04:	66 3b d0             	cmp    %ax,%dx
40ef07:	74 21                	je     0x40ef2a
40ef09:	52                   	push   %edx
40ef0a:	ff 15 10 a4 44 00    	call   *0x44a410
40ef10:	59                   	pop    %ecx
40ef11:	0f b7 c0             	movzwl %ax,%eax
40ef14:	50                   	push   %eax
40ef15:	68 a8 25 40 00       	push   $0x4025a8
40ef1a:	ff 15 04 a4 44 00    	call   *0x44a404
40ef20:	59                   	pop    %ecx
40ef21:	59                   	pop    %ecx
40ef22:	85 c0                	test   %eax,%eax
40ef24:	0f 85 b3 02 00 00    	jne    0x40f1dd
40ef2a:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
40ef30:	6a 24                	push   $0x24
40ef32:	5a                   	pop    %edx
40ef33:	33 c0                	xor    %eax,%eax
40ef35:	89 85 9c fd ff ff    	mov    %eax,-0x264(%ebp)
40ef3b:	0f b7 07             	movzwl (%edi),%eax
40ef3e:	66 85 c0             	test   %ax,%ax
40ef41:	0f 84 4a 04 00 00    	je     0x40f391
40ef47:	66 3b c2             	cmp    %dx,%ax
40ef4a:	0f 84 30 ef 00 00    	je     0x41de80
40ef50:	50                   	push   %eax
40ef51:	ff b5 84 fd ff ff    	push   -0x27c(%ebp)
40ef57:	ff 15 04 a4 44 00    	call   *0x44a404
40ef5d:	59                   	pop    %ecx
40ef5e:	59                   	pop    %ecx
40ef5f:	85 c0                	test   %eax,%eax
40ef61:	0f 84 da 03 00 00    	je     0x40f341
40ef67:	0f b7 07             	movzwl (%edi),%eax
40ef6a:	50                   	push   %eax
40ef6b:	ff b5 84 fd ff ff    	push   -0x27c(%ebp)
40ef71:	ff 15 04 a4 44 00    	call   *0x44a404
40ef77:	59                   	pop    %ecx
40ef78:	59                   	pop    %ecx
40ef79:	85 c0                	test   %eax,%eax
40ef7b:	0f 84 a4 ef 00 00    	je     0x41df25
40ef81:	2b 85 84 fd ff ff    	sub    -0x27c(%ebp),%eax
40ef87:	8b 9d 78 fd ff ff    	mov    -0x288(%ebp),%ebx
40ef8d:	d1 f8                	sar    $1,%eax
40ef8f:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
40ef92:	85 db                	test   %ebx,%ebx
40ef94:	74 16                	je     0x40efac
40ef96:	6a 22                	push   $0x22
40ef98:	58                   	pop    %eax
40ef99:	66 39 03             	cmp    %ax,(%ebx)
40ef9c:	0f 84 02 03 00 00    	je     0x40f2a4
40efa2:	66 83 3f 30          	cmpw   $0x30,(%edi)
40efa6:	0f 84 b8 02 00 00    	je     0x40f264
40efac:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
40efb2:	8b 95 9c fd ff ff    	mov    -0x264(%ebp),%edx
40efb8:	2b bd 88 fd ff ff    	sub    -0x278(%ebp),%edi
40efbe:	8b 8d 80 fd ff ff    	mov    -0x280(%ebp),%ecx
40efc4:	83 c7 02             	add    $0x2,%edi
40efc7:	d1 ff                	sar    $1,%edi
40efc9:	4f                   	dec    %edi
40efca:	89 39                	mov    %edi,(%ecx)
40efcc:	85 db                	test   %ebx,%ebx
40efce:	0f 84 fc 01 00 00    	je     0x40f1d0
40efd4:	33 c9                	xor    %ecx,%ecx
40efd6:	66 39 0b             	cmp    %cx,(%ebx)
40efd9:	0f 84 f1 01 00 00    	je     0x40f1d0
40efdf:	a9 00 c0 00 00       	test   $0xc000,%eax
40efe4:	75 16                	jne    0x40effc
40efe6:	8b cb                	mov    %ebx,%ecx
40efe8:	e8 c3 bc ff ff       	call   0x40acb0
40efed:	8b d8                	mov    %eax,%ebx
40efef:	56                   	push   %esi
40eff0:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40eff6:	59                   	pop    %ecx
40eff7:	e9 a5 fe ff ff       	jmp    0x40eea1
40effc:	33 c0                	xor    %eax,%eax
40effe:	66 89 06             	mov    %ax,(%esi)
40f001:	85 d2                	test   %edx,%edx
40f003:	0f 85 64 ef 00 00    	jne    0x41df6d
40f009:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
40f00f:	50                   	push   %eax
40f010:	56                   	push   %esi
40f011:	68 ce ff 00 00       	push   $0xffce
40f016:	53                   	push   %ebx
40f017:	ff 15 a4 a0 44 00    	call   *0x44a0a4
40f01d:	8b f8                	mov    %eax,%edi
40f01f:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
40f025:	6a 20                	push   $0x20
40f027:	59                   	pop    %ecx
40f028:	23 c1                	and    %ecx,%eax
40f02a:	ba ce ff 00 00       	mov    $0xffce,%edx
40f02f:	50                   	push   %eax
40f030:	8b ce                	mov    %esi,%ecx
40f032:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
40f038:	e8 ca 11 00 00       	call   0x410207
40f03d:	6a 5c                	push   $0x5c
40f03f:	56                   	push   %esi
40f040:	ff 15 04 a4 44 00    	call   *0x44a404
40f046:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f04c:	59                   	pop    %ecx
40f04d:	59                   	pop    %ecx
40f04e:	85 c0                	test   %eax,%eax
40f050:	0f 84 63 ef 00 00    	je     0x41dfb9
40f056:	83 c0 02             	add    $0x2,%eax
40f059:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f05f:	85 ff                	test   %edi,%edi
40f061:	0f 84 69 01 00 00    	je     0x40f1d0
40f067:	b8 04 01 00 00       	mov    $0x104,%eax
40f06c:	c6 45 b0 01          	movb   $0x1,-0x50(%ebp)
40f070:	50                   	push   %eax
40f071:	33 db                	xor    %ebx,%ebx
40f073:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40f076:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
40f07c:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40f07f:	53                   	push   %ebx
40f080:	50                   	push   %eax
40f081:	e8 37 8f 00 00       	call   0x417fbd
40f086:	33 c0                	xor    %eax,%eax
40f088:	8d 8d a4 fd ff ff    	lea    -0x25c(%ebp),%ecx
40f08e:	83 c4 0c             	add    $0xc,%esp
40f091:	38 45 b0             	cmp    %al,-0x50(%ebp)
40f094:	0f 94 c0             	sete   %al
40f097:	48                   	dec    %eax
40f098:	25 c6 fd 00 00       	and    $0xfdc6,%eax
40f09d:	05 08 02 00 00       	add    $0x208,%eax
40f0a2:	50                   	push   %eax
40f0a3:	e8 48 f3 ff ff       	call   0x40e3f0
40f0a8:	85 c0                	test   %eax,%eax
40f0aa:	0f 88 1a ef 00 00    	js     0x41dfca
40f0b0:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f0b3:	8b fa                	mov    %edx,%edi
40f0b5:	85 d2                	test   %edx,%edx
40f0b7:	0f 84 2e ef 00 00    	je     0x41dfeb
40f0bd:	8b 9d a0 fd ff ff    	mov    -0x260(%ebp),%ebx
40f0c3:	8b c3                	mov    %ebx,%eax
40f0c5:	25 00 40 00 00       	and    $0x4000,%eax
40f0ca:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
40f0d0:	0f 85 20 ef 00 00    	jne    0x41dff6
40f0d6:	f7 c3 00 80 00 00    	test   $0x8000,%ebx
40f0dc:	0f 84 3f f1 00 00    	je     0x41e221
40f0e2:	8b c2                	mov    %edx,%eax
40f0e4:	85 d2                	test   %edx,%edx
40f0e6:	0f 84 42 f1 00 00    	je     0x41e22e
40f0ec:	3b f8                	cmp    %eax,%edi
40f0ee:	0f 85 45 f1 00 00    	jne    0x41e239
40f0f4:	f6 c3 01             	test   $0x1,%bl
40f0f7:	0f 85 90 00 00 00    	jne    0x40f18d
40f0fd:	83 bd 7c fd ff ff 00 	cmpl   $0x0,-0x284(%ebp)
40f104:	0f 85 5e f1 00 00    	jne    0x41e268
40f10a:	8d 4e 04             	lea    0x4(%esi),%ecx
40f10d:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
40f113:	f6 c3 02             	test   $0x2,%bl
40f116:	0f 85 eb 01 00 00    	jne    0x40f307
40f11c:	51                   	push   %ecx
40f11d:	ba ce ff 00 00       	mov    $0xffce,%edx
40f122:	8b ce                	mov    %esi,%ecx
40f124:	e8 77 02 00 00       	call   0x40f3a0
40f129:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
40f12f:	8b ce                	mov    %esi,%ecx
40f131:	83 e8 04             	sub    $0x4,%eax
40f134:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
40f13a:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f140:	f6 c3 04             	test   $0x4,%bl
40f143:	75 1f                	jne    0x40f164
40f145:	50                   	push   %eax
40f146:	8b c1                	mov    %ecx,%eax
40f148:	ba ce ff 00 00       	mov    $0xffce,%edx
40f14d:	2b c6                	sub    %esi,%eax
40f14f:	d1 f8                	sar    $1,%eax
40f151:	2b d0                	sub    %eax,%edx
40f153:	e8 48 02 00 00       	call   0x40f3a0
40f158:	8b 85 88 fd ff ff    	mov    -0x278(%ebp),%eax
40f15e:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f164:	6a 2e                	push   $0x2e
40f166:	50                   	push   %eax
40f167:	ff 15 04 a4 44 00    	call   *0x44a404
40f16d:	59                   	pop    %ecx
40f16e:	59                   	pop    %ecx
40f16f:	85 c0                	test   %eax,%eax
40f171:	0f 84 ff f0 00 00    	je     0x41e276
40f177:	f6 c3 10             	test   $0x10,%bl
40f17a:	75 05                	jne    0x40f181
40f17c:	33 c9                	xor    %ecx,%ecx
40f17e:	66 89 08             	mov    %cx,(%eax)
40f181:	f6 c3 08             	test   $0x8,%bl
40f184:	0f 84 88 01 00 00    	je     0x40f312
40f18a:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f18d:	85 d2                	test   %edx,%edx
40f18f:	0f 84 f5 f0 00 00    	je     0x41e28a
40f195:	8b c7                	mov    %edi,%eax
40f197:	8b cf                	mov    %edi,%ecx
40f199:	2b c2                	sub    %edx,%eax
40f19b:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40f19e:	d1 f8                	sar    $1,%eax
40f1a0:	56                   	push   %esi
40f1a1:	2b d0                	sub    %eax,%edx
40f1a3:	e8 f8 01 00 00       	call   0x40f3a0
40f1a8:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f1ab:	85 d2                	test   %edx,%edx
40f1ad:	0f 84 e2 f0 00 00    	je     0x41e295
40f1b3:	8b ca                	mov    %edx,%ecx
40f1b5:	e8 f6 ba ff ff       	call   0x40acb0
40f1ba:	8b d8                	mov    %eax,%ebx
40f1bc:	33 c9                	xor    %ecx,%ecx
40f1be:	8b 45 ac             	mov    -0x54(%ebp),%eax
40f1c1:	89 4d ac             	mov    %ecx,-0x54(%ebp)
40f1c4:	85 c0                	test   %eax,%eax
40f1c6:	74 08                	je     0x40f1d0
40f1c8:	50                   	push   %eax
40f1c9:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40f1cf:	59                   	pop    %ecx
40f1d0:	85 f6                	test   %esi,%esi
40f1d2:	0f 85 17 fe ff ff    	jne    0x40efef
40f1d8:	e9 c4 fc ff ff       	jmp    0x40eea1
40f1dd:	0f b7 07             	movzwl (%edi),%eax
40f1e0:	50                   	push   %eax
40f1e1:	ff b5 84 fd ff ff    	push   -0x27c(%ebp)
40f1e7:	ff 15 04 a4 44 00    	call   *0x44a404
40f1ed:	59                   	pop    %ecx
40f1ee:	59                   	pop    %ecx
40f1ef:	85 c0                	test   %eax,%eax
40f1f1:	0f 85 39 01 00 00    	jne    0x40f330
40f1f7:	0f b7 07             	movzwl (%edi),%eax
40f1fa:	50                   	push   %eax
40f1fb:	ff 15 10 a4 44 00    	call   *0x44a410
40f201:	0f b7 c0             	movzwl %ax,%eax
40f204:	59                   	pop    %ecx
40f205:	83 f8 70             	cmp    $0x70,%eax
40f208:	0f 84 ef 00 00 00    	je     0x40f2fd
40f20e:	0f 87 58 01 00 00    	ja     0x40f36c
40f214:	83 e8 61             	sub    $0x61,%eax
40f217:	0f 84 3b 01 00 00    	je     0x40f358
40f21d:	83 e8 03             	sub    $0x3,%eax
40f220:	0f 84 cd 00 00 00    	je     0x40f2f3
40f226:	48                   	dec    %eax
40f227:	83 e8 01             	sub    $0x1,%eax
40f22a:	0f 84 32 01 00 00    	je     0x40f362
40f230:	83 e8 08             	sub    $0x8,%eax
40f233:	0f 85 ec ec 00 00    	jne    0x41df25
40f239:	b9 08 80 00 00       	mov    $0x8008,%ecx
40f23e:	83 c7 02             	add    $0x2,%edi
40f241:	0b cb                	or     %ebx,%ecx
40f243:	8b d9                	mov    %ecx,%ebx
40f245:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
40f24b:	0f b7 07             	movzwl (%edi),%eax
40f24e:	8b d0                	mov    %eax,%edx
40f250:	66 85 c0             	test   %ax,%ax
40f253:	0f 85 a8 fc ff ff    	jne    0x40ef01
40f259:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
40f25f:	e9 c6 fc ff ff       	jmp    0x40ef2a
40f264:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
40f26a:	8b 95 9c fd ff ff    	mov    -0x264(%ebp),%edx
40f270:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
40f276:	85 c9                	test   %ecx,%ecx
40f278:	0f 84 3a fd ff ff    	je     0x40efb8