40aedd:	0f 85 50 01 00 00    	jne    0x40b033
40aee3:	8b d3                	mov    %ebx,%edx
40aee5:	83 c6 01             	add    $0x1,%esi
40aee8:	0f 84 c9 1d 01 00    	je     0x41ccb7
40aeee:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40aef4:	0f 87 bd 1d 01 00    	ja     0x41ccb7
40aefa:	8b c3                	mov    %ebx,%eax
40aefc:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40af01:	2b fe                	sub    %esi,%edi
40af03:	2b d3                	sub    %ebx,%edx
40af05:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
40af08:	85 c9                	test   %ecx,%ecx
40af0a:	74 14                	je     0x40af20
40af0c:	0f b7 0c 02          	movzwl (%edx,%eax,1),%ecx
40af10:	66 85 c9             	test   %cx,%cx
40af13:	74 0b                	je     0x40af20
40af15:	66 89 08             	mov    %cx,(%eax)
40af18:	83 c0 02             	add    $0x2,%eax
40af1b:	83 ee 01             	sub    $0x1,%esi
40af1e:	75 e5                	jne    0x40af05
40af20:	85 f6                	test   %esi,%esi
40af22:	0f 84 87 1d 01 00    	je     0x41ccaf
40af28:	33 c9                	xor    %ecx,%ecx
40af2a:	66 89 08             	mov    %cx,(%eax)
40af2d:	66 8b 85 b4 fb ff ff 	mov    -0x44c(%ebp),%ax
40af34:	a8 01                	test   $0x1,%al
40af36:	0f 85 f4 01 00 00    	jne    0x40b130
40af3c:	a8 02                	test   $0x2,%al
40af3e:	0f 85 28 02 00 00    	jne    0x40b16c
40af44:	8b cb                	mov    %ebx,%ecx
40af46:	8d 51 02             	lea    0x2(%ecx),%edx
40af49:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40af50:	66 8b 01             	mov    (%ecx),%ax
40af53:	83 c1 02             	add    $0x2,%ecx
40af56:	66 85 c0             	test   %ax,%ax
40af59:	75 f5                	jne    0x40af50
40af5b:	2b ca                	sub    %edx,%ecx
40af5d:	d1 f9                	sar    $1,%ecx
40af5f:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
40af62:	83 c3 02             	add    $0x2,%ebx
40af65:	0f 85 46 ff ff ff    	jne    0x40aeb1
40af6b:	8b bd b0 fb ff ff    	mov    -0x450(%ebp),%edi
40af71:	8b cf                	mov    %edi,%ecx
40af73:	e8 38 02 00 00       	call   0x40b1b0
40af78:	85 c0                	test   %eax,%eax
40af7a:	74 07                	je     0x40af83
40af7c:	8b c8                	mov    %eax,%ecx
40af7e:	e8 a3 fd ff ff       	call   0x40ad26
40af83:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40af8a:	8b b5 a4 fb ff ff    	mov    -0x45c(%ebp),%esi
40af90:	57                   	push   %edi
40af91:	81 fe 50 aa 40 00    	cmp    $0x40aa50,%esi
40af97:	74 2b                	je     0x40afc4
40af99:	81 fe c0 c6 40 00    	cmp    $0x40c6c0,%esi
40af9f:	0f 84 87 00 00 00    	je     0x40b02c
40afa5:	81 fe c0 9d 40 00    	cmp    $0x409dc0,%esi
40afab:	0f 84 e7 00 00 00    	je     0x40b098
40afb1:	81 fe 70 97 40 00    	cmp    $0x409770,%esi
40afb7:	0f 85 e5 00 00 00    	jne    0x40b0a2
40afbd:	e8 ae e7 ff ff       	call   0x409770
40afc2:	eb 05                	jmp    0x40afc9
40afc4:	e8 87 fa ff ff       	call   0x40aa50
40afc9:	8b f0                	mov    %eax,%esi
40afcb:	89 b5 ac fb ff ff    	mov    %esi,-0x454(%ebp)
40afd1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40afd8:	e8 9e 01 00 00       	call   0x40b17b
40afdd:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40afe3:	e8 fe b1 00 00       	call   0x4161e6
40afe8:	8b c6                	mov    %esi,%eax
40afea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40afed:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40aff4:	59                   	pop    %ecx
40aff5:	5f                   	pop    %edi
40aff6:	5e                   	pop    %esi
40aff7:	5b                   	pop    %ebx
40aff8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40affb:	33 cd                	xor    %ebp,%ecx
40affd:	e8 2e bb 00 00       	call   0x416b30
40b002:	8b e5                	mov    %ebp,%esp
40b004:	5d                   	pop    %ebp
40b005:	c3                   	ret
40b006:	85 db                	test   %ebx,%ebx
40b008:	0f 84 83 fe ff ff    	je     0x40ae91
40b00e:	6a 04                	push   $0x4
40b010:	68 a8 22 40 00       	push   $0x4022a8
40b015:	53                   	push   %ebx
40b016:	ff 15 9c a3 44 00    	call   *0x44a39c
40b01c:	83 c4 0c             	add    $0xc,%esp
40b01f:	85 c0                	test   %eax,%eax
40b021:	0f 85 82 fe ff ff    	jne    0x40aea9
40b027:	e9 65 fe ff ff       	jmp    0x40ae91
40b02c:	e8 8f 16 00 00       	call   0x40c6c0
40b031:	eb 96                	jmp    0x40afc9
40b033:	b9 00 10 00 00       	mov    $0x1000,%ecx
40b038:	33 c0                	xor    %eax,%eax
40b03a:	bf d0 67 43 00       	mov    $0x4367d0,%edi
40b03f:	f3 ab                	rep stos %eax,%es:(%edi)
40b041:	8b fb                	mov    %ebx,%edi
40b043:	8d 4f 02             	lea    0x2(%edi),%ecx
40b046:	66 8b 07             	mov    (%edi),%ax
40b049:	83 c7 02             	add    $0x2,%edi
40b04c:	66 85 c0             	test   %ax,%ax
40b04f:	75 f5                	jne    0x40b046
40b051:	2b f9                	sub    %ecx,%edi
40b053:	d1 ff                	sar    $1,%edi
40b055:	33 d2                	xor    %edx,%edx
40b057:	33 c0                	xor    %eax,%eax
40b059:	85 ff                	test   %edi,%edi
40b05b:	7e 1a                	jle    0x40b077
40b05d:	8d 49 00             	lea    0x0(%ecx),%ecx
40b060:	0f b7 0c 43          	movzwl (%ebx,%eax,2),%ecx
40b064:	83 f9 22             	cmp    $0x22,%ecx
40b067:	74 09                	je     0x40b072
40b069:	66 89 0c 55 d0 67 43 	mov    %cx,0x4367d0(,%edx,2)
40b070:	00
40b071:	42                   	inc    %edx
40b072:	40                   	inc    %eax
40b073:	3b c7                	cmp    %edi,%eax
40b075:	7c e9                	jl     0x40b060
40b077:	03 d2                	add    %edx,%edx
40b079:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
40b07f:	0f 83 0e 01 00 00    	jae    0x40b193
40b085:	33 c0                	xor    %eax,%eax
40b087:	66 89 82 d0 67 43 00 	mov    %ax,0x4367d0(%edx)
40b08e:	ba d0 67 43 00       	mov    $0x4367d0,%edx
40b093:	e9 4d fe ff ff       	jmp    0x40aee5
40b098:	e8 23 ed ff ff       	call   0x409dc0
40b09d:	e9 27 ff ff ff       	jmp    0x40afc9
40b0a2:	81 fe 40 29 41 00    	cmp    $0x412940,%esi
40b0a8:	74 7c                	je     0x40b126
40b0aa:	8b ce                	mov    %esi,%ecx
40b0ac:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40b0b2:	ff d6                	call   *%esi
40b0b4:	e9 10 ff ff ff       	jmp    0x40afc9
40b0b9:	66 8b 08             	mov    (%eax),%cx
40b0bc:	e8 51 5a 00 00       	call   0x410b12
40b0c1:	85 c0                	test   %eax,%eax
40b0c3:	0f 84 80 1b 01 00    	je     0x41cc49
40b0c9:	8b 47 38             	mov    0x38(%edi),%eax
40b0cc:	66 8b 08             	mov    (%eax),%cx
40b0cf:	e8 73 ce ff ff       	call   0x407f47
40b0d4:	85 c0                	test   %eax,%eax
40b0d6:	0f 85 8e 1b 01 00    	jne    0x41cc6a
40b0dc:	8b 47 38             	mov    0x38(%edi),%eax
40b0df:	0f b7 00             	movzwl (%eax),%eax
40b0e2:	50                   	push   %eax
40b0e3:	ff 15 18 a4 44 00    	call   *0x44a418
40b0e9:	83 c4 04             	add    $0x4,%esp
40b0ec:	66 83 e8 40          	sub    $0x40,%ax
40b0f0:	0f b7 f0             	movzwl %ax,%esi
40b0f3:	8b 4f 38             	mov    0x38(%edi),%ecx
40b0f6:	8d 51 02             	lea    0x2(%ecx),%edx
40b0f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b100:	66 8b 01             	mov    (%ecx),%ax
40b103:	83 c1 02             	add    $0x2,%ecx
40b106:	66 85 c0             	test   %ax,%ax
40b109:	75 f5                	jne    0x40b100
40b10b:	2b ca                	sub    %edx,%ecx
40b10d:	d1 f9                	sar    $1,%ecx
40b10f:	83 f9 02             	cmp    $0x2,%ecx
40b112:	0f 84 5d 1b 01 00    	je     0x41cc75
40b118:	8b cf                	mov    %edi,%ecx
40b11a:	e8 cf 70 00 00       	call   0x4121ee
40b11f:	8b f0                	mov    %eax,%esi
40b121:	e9 b7 fe ff ff       	jmp    0x40afdd
40b126:	e8 15 78 00 00       	call   0x412940
40b12b:	e9 99 fe ff ff       	jmp    0x40afc9
40b130:	66 83 7b 02 3a       	cmpw   $0x3a,0x2(%ebx)
40b135:	0f 85 01 fe ff ff    	jne    0x40af3c
40b13b:	66 8b 0b             	mov    (%ebx),%cx
40b13e:	e8 cf 59 00 00       	call   0x410b12
40b143:	85 c0                	test   %eax,%eax
40b145:	74 51                	je     0x40b198
40b147:	83 bd a8 fb ff ff 04 	cmpl   $0x4,-0x458(%ebp)
40b14e:	74 10                	je     0x40b160
40b150:	66 8b 0b             	mov    (%ebx),%cx
40b153:	e8 ef cd ff ff       	call   0x407f47
40b158:	85 c0                	test   %eax,%eax
40b15a:	0f 85 69 1b 01 00    	jne    0x41ccc9
40b160:	66 8b 85 b4 fb ff ff 	mov    -0x44c(%ebp),%ax
40b167:	e9 d0 fd ff ff       	jmp    0x40af3c
40b16c:	66 83 3b 2f          	cmpw   $0x2f,(%ebx)
40b170:	0f 85 ce fd ff ff    	jne    0x40af44
40b176:	e9 59 1b 01 00       	jmp    0x41ccd4
40b17b:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40b182:	74 01                	je     0x40b185
40b184:	c3                   	ret
40b185:	80 3d 5c 67 43 00 00 	cmpb   $0x0,0x43675c
40b18c:	74 f6                	je     0x40b184
40b18e:	e9 67 1b 01 00       	jmp    0x41ccfa
40b193:	e8 e0 ba 00 00       	call   0x416c78
40b198:	6a 00                	push   $0x0
40b19a:	6a 0f                	push   $0xf
40b19c:	e9 3a 1b 01 00       	jmp    0x41ccdb
40b1a1:	cc                   	int3
40b1a2:	cc                   	int3
40b1a3:	cc                   	int3
40b1a4:	cc                   	int3
40b1a5:	cc                   	int3
40b1a6:	cc                   	int3
40b1a7:	cc                   	int3
40b1a8:	cc                   	int3
40b1a9:	cc                   	int3
40b1aa:	cc                   	int3
40b1ab:	cc                   	int3
40b1ac:	cc                   	int3
40b1ad:	cc                   	int3
40b1ae:	cc                   	int3
40b1af:	cc                   	int3
40b1b0:	8b ff                	mov    %edi,%edi
40b1b2:	55                   	push   %ebp
40b1b3:	8b ec                	mov    %esp,%ebp
40b1b5:	83 ec 08             	sub    $0x8,%esp
40b1b8:	53                   	push   %ebx
40b1b9:	56                   	push   %esi
40b1ba:	8b f1                	mov    %ecx,%esi
40b1bc:	33 db                	xor    %ebx,%ebx
40b1be:	57                   	push   %edi
40b1bf:	89 75 f8             	mov    %esi,-0x8(%ebp)
40b1c2:	8b 46 38             	mov    0x38(%esi),%eax
40b1c5:	85 c0                	test   %eax,%eax
40b1c7:	74 16                	je     0x40b1df
40b1c9:	8b d8                	mov    %eax,%ebx
40b1cb:	8d 4b 02             	lea    0x2(%ebx),%ecx
40b1ce:	8b ff                	mov    %edi,%edi
40b1d0:	66 8b 03             	mov    (%ebx),%ax
40b1d3:	83 c3 02             	add    $0x2,%ebx
40b1d6:	66 85 c0             	test   %ax,%ax
40b1d9:	75 f5                	jne    0x40b1d0
40b1db:	2b d9                	sub    %ecx,%ebx
40b1dd:	d1 fb                	sar    $1,%ebx
40b1df:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40b1e2:	85 c9                	test   %ecx,%ecx
40b1e4:	74 1c                	je     0x40b202
40b1e6:	8d 51 02             	lea    0x2(%ecx),%edx
40b1e9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b1f0:	66 8b 01             	mov    (%ecx),%ax
40b1f3:	83 c1 02             	add    $0x2,%ecx
40b1f6:	66 85 c0             	test   %ax,%ax
40b1f9:	75 f5                	jne    0x40b1f0
40b1fb:	2b ca                	sub    %edx,%ecx
40b1fd:	43                   	inc    %ebx
40b1fe:	d1 f9                	sar    $1,%ecx
40b200:	03 d9                	add    %ecx,%ebx
40b202:	43                   	inc    %ebx
40b203:	8d 0c 1b             	lea    (%ebx,%ebx,1),%ecx
40b206:	e8 c5 2a 00 00       	call   0x40dcd0
40b20b:	8b f8                	mov    %eax,%edi
40b20d:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b210:	85 ff                	test   %edi,%edi
40b212:	0f 84 a1 01 00 00    	je     0x40b3b9
40b218:	8b 76 38             	mov    0x38(%esi),%esi
40b21b:	85 db                	test   %ebx,%ebx
40b21d:	74 49                	je     0x40b268
40b21f:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b225:	0f 87 fa 1a 01 00    	ja     0x41cd25
40b22b:	8b cf                	mov    %edi,%ecx
40b22d:	8b d3                	mov    %ebx,%edx
40b22f:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40b234:	2b fb                	sub    %ebx,%edi
40b236:	2b f0                	sub    %eax,%esi
40b238:	8d 04 17             	lea    (%edi,%edx,1),%eax
40b23b:	85 c0                	test   %eax,%eax
40b23d:	74 19                	je     0x40b258
40b23f:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
40b243:	66 85 c0             	test   %ax,%ax
40b246:	74 10                	je     0x40b258
40b248:	66 89 01             	mov    %ax,(%ecx)
40b24b:	83 c1 02             	add    $0x2,%ecx
40b24e:	83 ea 01             	sub    $0x1,%edx
40b251:	75 e5                	jne    0x40b238
40b253:	e9 c5 1a 01 00       	jmp    0x41cd1d
40b258:	85 d2                	test   %edx,%edx
40b25a:	0f 84 bd 1a 01 00    	je     0x41cd1d
40b260:	8b 7d fc             	mov    -0x4(%ebp),%edi
40b263:	33 c0                	xor    %eax,%eax
40b265:	66 89 01             	mov    %ax,(%ecx)
40b268:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b26b:	83 78 3c 00          	cmpl   $0x0,0x3c(%eax)
40b26f:	0f 84 22 01 00 00    	je     0x40b397
40b275:	33 d2                	xor    %edx,%edx
40b277:	85 db                	test   %ebx,%ebx
40b279:	0f 84 b8 1a 01 00    	je     0x41cd37
40b27f:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b285:	0f 87 ac 1a 01 00    	ja     0x41cd37
40b28b:	85 d2                	test   %edx,%edx
40b28d:	0f 88 b3 1a 01 00    	js     0x41cd46
40b293:	33 d2                	xor    %edx,%edx
40b295:	8b cb                	mov    %ebx,%ecx
40b297:	8b c7                	mov    %edi,%eax
40b299:	85 db                	test   %ebx,%ebx
40b29b:	0f 84 a0 1a 01 00    	je     0x41cd41
40b2a1:	66 39 10             	cmp    %dx,(%eax)
40b2a4:	74 0d                	je     0x40b2b3
40b2a6:	83 c0 02             	add    $0x2,%eax
40b2a9:	83 e9 01             	sub    $0x1,%ecx
40b2ac:	75 f3                	jne    0x40b2a1
40b2ae:	e9 8e 1a 01 00       	jmp    0x41cd41
40b2b3:	85 c9                	test   %ecx,%ecx
40b2b5:	0f 84 86 1a 01 00    	je     0x41cd41
40b2bb:	8b f3                	mov    %ebx,%esi
40b2bd:	2b f1                	sub    %ecx,%esi
40b2bf:	85 d2                	test   %edx,%edx
40b2c1:	78 3d                	js     0x40b300
40b2c3:	8b cb                	mov    %ebx,%ecx
40b2c5:	8d 14 77             	lea    (%edi,%esi,2),%edx
40b2c8:	2b ce                	sub    %esi,%ecx
40b2ca:	0f 84 e1 00 00 00    	je     0x40b3b1
40b2d0:	8b c1                	mov    %ecx,%eax
40b2d2:	bf 4c 23 40 00       	mov    $0x40234c,%edi
40b2d7:	2b c3                	sub    %ebx,%eax
40b2d9:	05 fe ff ff 7f       	add    $0x7ffffffe,%eax
40b2de:	03 c6                	add    %esi,%eax
40b2e0:	2b fa                	sub    %edx,%edi
40b2e2:	85 c0                	test   %eax,%eax
40b2e4:	74 0d                	je     0x40b2f3
40b2e6:	0f b7 34 17          	movzwl (%edi,%edx,1),%esi
40b2ea:	66 85 f6             	test   %si,%si
40b2ed:	0f 85 ae 00 00 00    	jne    0x40b3a1
40b2f3:	85 c9                	test   %ecx,%ecx
40b2f5:	0f 84 b6 00 00 00    	je     0x40b3b1
40b2fb:	33 c0                	xor    %eax,%eax
40b2fd:	66 89 02             	mov    %ax,(%edx)
40b300:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b303:	33 f6                	xor    %esi,%esi
40b305:	8b 78 3c             	mov    0x3c(%eax),%edi
40b308:	85 db                	test   %ebx,%ebx
40b30a:	0f 84 3d 1a 01 00    	je     0x41cd4d
40b310:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b316:	0f 87 31 1a 01 00    	ja     0x41cd4d
40b31c:	85 f6                	test   %esi,%esi
40b31e:	0f 88 99 00 00 00    	js     0x40b3bd
40b324:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b327:	33 f6                	xor    %esi,%esi
40b329:	8b cb                	mov    %ebx,%ecx
40b32b:	85 db                	test   %ebx,%ebx
40b32d:	0f 84 24 1a 01 00    	je     0x41cd57
40b333:	66 39 30             	cmp    %si,(%eax)
40b336:	74 0d                	je     0x40b345
40b338:	83 c0 02             	add    $0x2,%eax
40b33b:	83 e9 01             	sub    $0x1,%ecx
40b33e:	75 f3                	jne    0x40b333
40b340:	e9 12 1a 01 00       	jmp    0x41cd57
40b345:	85 c9                	test   %ecx,%ecx
40b347:	0f 84 0a 1a 01 00    	je     0x41cd57
40b34d:	8b d3                	mov    %ebx,%edx
40b34f:	2b d1                	sub    %ecx,%edx
40b351:	85 f6                	test   %esi,%esi
40b353:	78 42                	js     0x40b397
40b355:	8b 45 fc             	mov    -0x4(%ebp),%eax