41dd7b:	e8 50 ff fe ff       	call   0x40dcd0
41dd80:	8b c8                	mov    %eax,%ecx
41dd82:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
41dd88:	85 c9                	test   %ecx,%ecx
41dd8a:	75 12                	jne    0x41dd9e
41dd8c:	e8 91 bb 00 00       	call   0x429922
41dd91:	6a 01                	push   $0x1
41dd93:	68 30 0a 44 00       	push   $0x440a30
41dd98:	ff 15 30 a4 44 00    	call   *0x44a430
41dd9e:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
41dda4:	03 db                	add    %ebx,%ebx
41dda6:	8b d6                	mov    %esi,%edx
41dda8:	8b 40 38             	mov    0x38(%eax),%eax
41ddab:	03 c3                	add    %ebx,%eax
41ddad:	50                   	push   %eax
41ddae:	e8 ed 15 ff ff       	call   0x40f3a0
41ddb3:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
41ddb9:	8b 41 3c             	mov    0x3c(%ecx),%eax
41ddbc:	85 c0                	test   %eax,%eax
41ddbe:	74 12                	je     0x41ddd2
41ddc0:	8b d6                	mov    %esi,%edx
41ddc2:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
41ddc8:	50                   	push   %eax
41ddc9:	8b ce                	mov    %esi,%ecx
41ddcb:	e8 70 1e ff ff       	call   0x40fc40
41ddd0:	eb 06                	jmp    0x41ddd8
41ddd2:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
41ddd8:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
41ddde:	33 c9                	xor    %ecx,%ecx
41dde0:	89 70 3c             	mov    %esi,0x3c(%eax)
41dde3:	8b 40 38             	mov    0x38(%eax),%eax
41dde6:	66 89 0c 03          	mov    %cx,(%ebx,%eax,1)
41ddea:	e9 08 0d ff ff       	jmp    0x40eaf7
41ddef:	ff 15 e0 a1 44 00    	call   *0x44a1e0
41ddf5:	e9 63 0e ff ff       	jmp    0x40ec5d
41ddfa:	ff 15 f8 a3 44 00    	call   *0x44a3f8
41de00:	50                   	push   %eax
41de01:	e9 47 0f ff ff       	jmp    0x40ed4d
41de06:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
41de0b:	8d 44 24 0c          	lea    0xc(%esp),%eax
41de0f:	50                   	push   %eax
41de10:	ff 15 e0 a2 44 00    	call   *0x44a2e0
41de16:	ff 74 24 0c          	push   0xc(%esp)
41de1a:	e9 2e 0f ff ff       	jmp    0x40ed4d
41de1f:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
41de26:	0f 85 c0 0f ff ff    	jne    0x40edec
41de2c:	e9 95 0f ff ff       	jmp    0x40edc6
41de31:	8b bd 90 fd ff ff    	mov    -0x270(%ebp),%edi
41de37:	85 ff                	test   %edi,%edi
41de39:	0f 85 09 01 00 00    	jne    0x41df48
41de3f:	eb 10                	jmp    0x41de51
41de41:	50                   	push   %eax
41de42:	ff 15 e0 a3 44 00    	call   *0x44a3e0
41de48:	59                   	pop    %ecx
41de49:	56                   	push   %esi
41de4a:	ff 15 e0 a3 44 00    	call   *0x44a3e0
41de50:	59                   	pop    %ecx
41de51:	33 c0                	xor    %eax,%eax
41de53:	e9 23 10 ff ff       	jmp    0x40ee7b
41de58:	48                   	dec    %eax
41de59:	83 e8 01             	sub    $0x1,%eax
41de5c:	0f 85 c3 00 00 00    	jne    0x41df25
41de62:	b9 00 44 00 00       	mov    $0x4400,%ecx
41de67:	e9 d2 13 ff ff       	jmp    0x40f23e
41de6c:	b9 00 42 00 00       	mov    $0x4200,%ecx
41de71:	e9 c8 13 ff ff       	jmp    0x40f23e
41de76:	b9 20 80 00 00       	mov    $0x8020,%ecx
41de7b:	e9 be 13 ff ff       	jmp    0x40f23e
41de80:	83 c7 02             	add    $0x2,%edi
41de83:	6a 3a                	push   $0x3a
41de85:	57                   	push   %edi
41de86:	89 bd 94 fd ff ff    	mov    %edi,-0x26c(%ebp)
41de8c:	ff 15 b0 a3 44 00    	call   *0x44a3b0
41de92:	8b f8                	mov    %eax,%edi
41de94:	59                   	pop    %ecx
41de95:	59                   	pop    %ecx
41de96:	85 ff                	test   %edi,%edi
41de98:	0f 84 87 00 00 00    	je     0x41df25
41de9e:	2b 85 94 fd ff ff    	sub    -0x26c(%ebp),%eax
41dea4:	d1 f8                	sar    $1,%eax
41dea6:	40                   	inc    %eax
41dea7:	89 85 9c fd ff ff    	mov    %eax,-0x264(%ebp)
41dead:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
41deb0:	e8 1b fe fe ff       	call   0x40dcd0
41deb5:	8b c8                	mov    %eax,%ecx
41deb7:	89 8d 98 fd ff ff    	mov    %ecx,-0x268(%ebp)
41debd:	85 c9                	test   %ecx,%ecx
41debf:	75 0f                	jne    0x41ded0
41dec1:	8b bd 90 fd ff ff    	mov    -0x270(%ebp),%edi
41dec7:	85 ff                	test   %edi,%edi
41dec9:	75 7d                	jne    0x41df48
41decb:	e9 79 ff ff ff       	jmp    0x41de49
41ded0:	8b 95 9c fd ff ff    	mov    -0x264(%ebp),%edx
41ded6:	8d 42 ff             	lea    -0x1(%edx),%eax
41ded9:	50                   	push   %eax
41deda:	ff b5 94 fd ff ff    	push   -0x26c(%ebp)
41dee0:	e8 b3 43 ff ff       	call   0x412298
41dee5:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
41deeb:	e8 a0 3e ff ff       	call   0x411d90
41def0:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
41def6:	89 85 9c fd ff ff    	mov    %eax,-0x264(%ebp)
41defc:	e8 5f fd fe ff       	call   0x40dc60
41df01:	83 bd 9c fd ff ff 00 	cmpl   $0x0,-0x264(%ebp)
41df08:	75 07                	jne    0x41df11
41df0a:	83 8d 9c fd ff ff ff 	orl    $0xffffffff,-0x264(%ebp)
41df11:	83 c7 02             	add    $0x2,%edi
41df14:	81 cb 00 80 00 00    	or     $0x8000,%ebx
41df1a:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
41df20:	e9 42 10 ff ff       	jmp    0x40ef67
41df25:	8b bd 90 fd ff ff    	mov    -0x270(%ebp),%edi
41df2b:	85 ff                	test   %edi,%edi
41df2d:	0f 84 16 ff ff ff    	je     0x41de49
41df33:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
41df39:	6a 01                	push   $0x1
41df3b:	68 a8 23 00 40       	push   $0x400023a8
41df40:	e8 9f 99 fe ff       	call   0x4078e4
41df45:	83 c4 0c             	add    $0xc,%esp
41df48:	6a ff                	push   $0xffffffff
41df4a:	57                   	push   %edi
41df4b:	eb 03                	jmp    0x41df50
41df4d:	6a ff                	push   $0xffffffff
41df4f:	50                   	push   %eax
41df50:	ff 15 30 a4 44 00    	call   *0x44a430
41df56:	8b bd 90 fd ff ff    	mov    -0x270(%ebp),%edi
41df5c:	85 ff                	test   %edi,%edi
41df5e:	0f 84 e5 fe ff ff    	je     0x41de49
41df64:	eb e2                	jmp    0x41df48
41df66:	8b c3                	mov    %ebx,%eax
41df68:	e9 70 13 ff ff       	jmp    0x40f2dd
41df6d:	83 fa ff             	cmp    $0xffffffff,%edx
41df70:	74 3a                	je     0x41dfac
41df72:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
41df78:	50                   	push   %eax
41df79:	56                   	push   %esi
41df7a:	68 ce ff 00 00       	push   $0xffce
41df7f:	51                   	push   %ecx
41df80:	53                   	push   %ebx
41df81:	52                   	push   %edx
41df82:	ff 15 dc a1 44 00    	call   *0x44a1dc
41df88:	8b f8                	mov    %eax,%edi
41df8a:	85 ff                	test   %edi,%edi
41df8c:	74 22                	je     0x41dfb0
41df8e:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
41df94:	84 c0                	test   %al,%al
41df96:	0f 85 89 10 ff ff    	jne    0x40f025
41df9c:	0d 01 80 00 00       	or     $0x8001,%eax
41dfa1:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
41dfa7:	e9 79 10 ff ff       	jmp    0x40f025
41dfac:	8b f8                	mov    %eax,%edi
41dfae:	eb 02                	jmp    0x41dfb2
41dfb0:	33 c9                	xor    %ecx,%ecx
41dfb2:	8b d9                	mov    %ecx,%ebx
41dfb4:	e9 66 10 ff ff       	jmp    0x40f01f
41dfb9:	33 c0                	xor    %eax,%eax
41dfbb:	50                   	push   %eax
41dfbc:	56                   	push   %esi
41dfbd:	ff 15 04 a4 44 00    	call   *0x44a404
41dfc3:	59                   	pop    %ecx
41dfc4:	59                   	pop    %ecx
41dfc5:	e9 8f 10 ff ff       	jmp    0x40f059
41dfca:	8b 85 90 fd ff ff    	mov    -0x270(%ebp),%eax
41dfd0:	85 c0                	test   %eax,%eax
41dfd2:	0f 85 75 ff ff ff    	jne    0x41df4d
41dfd8:	8b 45 ac             	mov    -0x54(%ebp),%eax
41dfdb:	89 5d ac             	mov    %ebx,-0x54(%ebp)
41dfde:	85 c0                	test   %eax,%eax
41dfe0:	0f 84 63 fe ff ff    	je     0x41de49
41dfe6:	e9 56 fe ff ff       	jmp    0x41de41
41dfeb:	8d bd a4 fd ff ff    	lea    -0x25c(%ebp),%edi
41dff1:	e9 c7 10 ff ff       	jmp    0x40f0bd
41dff6:	8d 45 c0             	lea    -0x40(%ebp),%eax
41dff9:	50                   	push   %eax
41dffa:	33 c0                	xor    %eax,%eax
41dffc:	50                   	push   %eax
41dffd:	56                   	push   %esi
41dffe:	ff 15 fc a0 44 00    	call   *0x44a0fc
41e004:	85 c0                	test   %eax,%eax
41e006:	0f 84 07 02 00 00    	je     0x41e213
41e00c:	f7 c3 00 01 00 00    	test   $0x100,%ebx
41e012:	74 59                	je     0x41e06d
41e014:	8b 45 c0             	mov    -0x40(%ebp),%eax
41e017:	c7 85 88 fd ff ff 44 	movl   $0x403d44,-0x278(%ebp)
41e01e:	3d 40 00
41e021:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e024:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e027:	8b c2                	mov    %edx,%eax
41e029:	85 d2                	test   %edx,%edx
41e02b:	75 06                	jne    0x41e033
41e02d:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e033:	8b cf                	mov    %edi,%ecx
41e035:	2b c8                	sub    %eax,%ecx
41e037:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e03a:	d1 f9                	sar    $1,%ecx
41e03c:	48                   	dec    %eax
41e03d:	3b c8                	cmp    %eax,%ecx
41e03f:	7d 2f                	jge    0x41e070
41e041:	8b 85 88 fd ff ff    	mov    -0x278(%ebp),%eax
41e047:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41e04a:	85 48 fc             	test   %ecx,-0x4(%eax)
41e04d:	74 05                	je     0x41e054
41e04f:	0f b7 08             	movzwl (%eax),%ecx
41e052:	eb 03                	jmp    0x41e057
41e054:	6a 2d                	push   $0x2d
41e056:	59                   	pop    %ecx
41e057:	83 c0 08             	add    $0x8,%eax
41e05a:	66 89 0f             	mov    %cx,(%edi)
41e05d:	33 c9                	xor    %ecx,%ecx
41e05f:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
41e065:	83 c7 02             	add    $0x2,%edi
41e068:	66 39 08             	cmp    %cx,(%eax)
41e06b:	75 b7                	jne    0x41e024
41e06d:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e070:	f7 c3 00 02 00 00    	test   $0x200,%ebx
41e076:	0f 84 26 01 00 00    	je     0x41e1a2
41e07c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41e07f:	50                   	push   %eax
41e080:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41e083:	50                   	push   %eax
41e084:	ff 15 ec a2 44 00    	call   *0x44a2ec
41e08a:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
41e08e:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e091:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
41e097:	0f b7 45 e6          	movzwl -0x1a(%ebp),%eax
41e09b:	48                   	dec    %eax
41e09c:	89 85 64 fd ff ff    	mov    %eax,-0x29c(%ebp)
41e0a2:	0f b7 45 ea          	movzwl -0x16(%ebp),%eax
41e0a6:	89 85 60 fd ff ff    	mov    %eax,-0x2a0(%ebp)
41e0ac:	0f b7 45 ec          	movzwl -0x14(%ebp),%eax
41e0b0:	89 85 5c fd ff ff    	mov    %eax,-0x2a4(%ebp)
41e0b6:	0f b7 45 ee          	movzwl -0x12(%ebp),%eax
41e0ba:	89 85 58 fd ff ff    	mov    %eax,-0x2a8(%ebp)
41e0c0:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
41e0c4:	89 85 54 fd ff ff    	mov    %eax,-0x2ac(%ebp)
41e0ca:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
41e0ce:	89 85 6c fd ff ff    	mov    %eax,-0x294(%ebp)
41e0d4:	33 c0                	xor    %eax,%eax
41e0d6:	89 85 70 fd ff ff    	mov    %eax,-0x290(%ebp)
41e0dc:	89 85 74 fd ff ff    	mov    %eax,-0x28c(%ebp)
41e0e2:	8b c2                	mov    %edx,%eax
41e0e4:	85 d2                	test   %edx,%edx
41e0e6:	75 06                	jne    0x41e0ee
41e0e8:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e0ee:	3b f8                	cmp    %eax,%edi
41e0f0:	74 26                	je     0x41e118
41e0f2:	8b c2                	mov    %edx,%eax
41e0f4:	85 d2                	test   %edx,%edx
41e0f6:	75 06                	jne    0x41e0fe
41e0f8:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e0fe:	8b cf                	mov    %edi,%ecx
41e100:	2b c8                	sub    %eax,%ecx
41e102:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e105:	d1 f9                	sar    $1,%ecx
41e107:	48                   	dec    %eax
41e108:	3b c8                	cmp    %eax,%ecx
41e10a:	7d 0c                	jge    0x41e118
41e10c:	6a 20                	push   $0x20
41e10e:	58                   	pop    %eax
41e10f:	66 89 07             	mov    %ax,(%edi)
41e112:	83 c7 02             	add    $0x2,%edi
41e115:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e118:	85 d2                	test   %edx,%edx
41e11a:	75 06                	jne    0x41e122
41e11c:	8d 95 a4 fd ff ff    	lea    -0x25c(%ebp),%edx
41e122:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e125:	8b cf                	mov    %edi,%ecx
41e127:	2b ca                	sub    %edx,%ecx
41e129:	33 d2                	xor    %edx,%edx
41e12b:	d1 f9                	sar    $1,%ecx
41e12d:	2b c1                	sub    %ecx,%eax
41e12f:	8d 8d 54 fd ff ff    	lea    -0x2ac(%ebp),%ecx
41e135:	50                   	push   %eax
41e136:	57                   	push   %edi
41e137:	e8 18 87 fe ff       	call   0x406854
41e13c:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e13f:	8d 3c 47             	lea    (%edi,%eax,2),%edi
41e142:	8b c2                	mov    %edx,%eax
41e144:	85 d2                	test   %edx,%edx
41e146:	75 06                	jne    0x41e14e
41e148:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e14e:	3b f8                	cmp    %eax,%edi
41e150:	74 26                	je     0x41e178
41e152:	8b c2                	mov    %edx,%eax
41e154:	85 d2                	test   %edx,%edx
41e156:	75 06                	jne    0x41e15e
41e158:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e15e:	8b cf                	mov    %edi,%ecx
41e160:	2b c8                	sub    %eax,%ecx
41e162:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e165:	d1 f9                	sar    $1,%ecx
41e167:	48                   	dec    %eax
41e168:	3b c8                	cmp    %eax,%ecx
41e16a:	7d 0c                	jge    0x41e178
41e16c:	6a 20                	push   $0x20
41e16e:	58                   	pop    %eax
41e16f:	66 89 07             	mov    %ax,(%edi)
41e172:	83 c7 02             	add    $0x2,%edi
41e175:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e178:	85 d2                	test   %edx,%edx
41e17a:	75 06                	jne    0x41e182
41e17c:	8d 95 a4 fd ff ff    	lea    -0x25c(%ebp),%edx
41e182:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e185:	8b cf                	mov    %edi,%ecx
41e187:	2b ca                	sub    %edx,%ecx
41e189:	33 d2                	xor    %edx,%edx
41e18b:	d1 f9                	sar    $1,%ecx
41e18d:	2b c1                	sub    %ecx,%eax
41e18f:	8d 8d 54 fd ff ff    	lea    -0x2ac(%ebp),%ecx
41e195:	50                   	push   %eax
41e196:	57                   	push   %edi
41e197:	e8 74 b1 fe ff       	call   0x409310
41e19c:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e19f:	8d 3c 47             	lea    (%edi,%eax,2),%edi
41e1a2:	f7 c3 00 04 00 00    	test   $0x400,%ebx
41e1a8:	74 6c                	je     0x41e216
41e1aa:	8b c2                	mov    %edx,%eax
41e1ac:	85 d2                	test   %edx,%edx
41e1ae:	75 06                	jne    0x41e1b6
41e1b0:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e1b6:	3b f8                	cmp    %eax,%edi
41e1b8:	74 26                	je     0x41e1e0
41e1ba:	8b c2                	mov    %edx,%eax
41e1bc:	85 d2                	test   %edx,%edx
41e1be:	75 06                	jne    0x41e1c6
41e1c0:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
41e1c6:	8b cf                	mov    %edi,%ecx
41e1c8:	2b c8                	sub    %eax,%ecx
41e1ca:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e1cd:	d1 f9                	sar    $1,%ecx
41e1cf:	48                   	dec    %eax
41e1d0:	3b c8                	cmp    %eax,%ecx
41e1d2:	7d 0c                	jge    0x41e1e0
41e1d4:	6a 20                	push   $0x20
41e1d6:	58                   	pop    %eax
41e1d7:	66 89 07             	mov    %ax,(%edi)
41e1da:	83 c7 02             	add    $0x2,%edi
41e1dd:	8b 55 ac             	mov    -0x54(%ebp),%edx
41e1e0:	8b 45 e0             	mov    -0x20(%ebp),%eax
41e1e3:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e1e6:	8b 45 dc             	mov    -0x24(%ebp),%eax
41e1e9:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e1ec:	85 d2                	test   %edx,%edx
41e1ee:	75 06                	jne    0x41e1f6
41e1f0:	8d 95 a4 fd ff ff    	lea    -0x25c(%ebp),%edx
41e1f6:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41e1f9:	8b cf                	mov    %edi,%ecx
41e1fb:	2b ca                	sub    %edx,%ecx
41e1fd:	8d 55 ec             	lea    -0x14(%ebp),%edx
41e200:	d1 f9                	sar    $1,%ecx
41e202:	2b c1                	sub    %ecx,%eax
41e204:	33 c9                	xor    %ecx,%ecx