40df81:	85 c0                	test   %eax,%eax
40df83:	8b 45 fc             	mov    -0x4(%ebp),%eax
40df86:	8b 00                	mov    (%eax),%eax
40df88:	0f 85 98 00 00 00    	jne    0x40e026
40df8e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40df91:	66 83 ff 3e          	cmp    $0x3e,%di
40df95:	0f 85 46 fb 00 00    	jne    0x41dae1
40df9b:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40dfa1:	66 8b 01             	mov    (%ecx),%ax
40dfa4:	8d 51 02             	lea    0x2(%ecx),%edx
40dfa7:	89 55 f8             	mov    %edx,-0x8(%ebp)
40dfaa:	66 3b 02             	cmp    (%edx),%ax
40dfad:	75 72                	jne    0x40e021
40dfaf:	66 83 ff 3c          	cmp    $0x3c,%di
40dfb3:	0f 84 33 fb 00 00    	je     0x41daec
40dfb9:	8b 7d fc             	mov    -0x4(%ebp),%edi
40dfbc:	8b ca                	mov    %edx,%ecx
40dfbe:	8b 07                	mov    (%edi),%eax
40dfc0:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)
40dfc7:	83 c1 02             	add    $0x2,%ecx
40dfca:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40dfcd:	66 83 39 26          	cmpw   $0x26,(%ecx)
40dfd1:	74 69                	je     0x40e03c
40dfd3:	e8 59 c9 ff ff       	call   0x40a931
40dfd8:	8b 0f                	mov    (%edi),%ecx
40dfda:	89 41 04             	mov    %eax,0x4(%ecx)
40dfdd:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40dfe2:	66 83 38 00          	cmpw   $0x0,(%eax)
40dfe6:	0f 84 3b ff ff ff    	je     0x40df27
40dfec:	33 c9                	xor    %ecx,%ecx
40dfee:	e8 7d ec ff ff       	call   0x40cc70
40dff3:	8b 3f                	mov    (%edi),%edi
40dff5:	83 c7 14             	add    $0x14,%edi
40dff8:	ff 45 f4             	incl   -0xc(%ebp)
40dffb:	89 7d fc             	mov    %edi,-0x4(%ebp)
40dffe:	e9 fd fe ff ff       	jmp    0x40df00
40e003:	39 75 f4             	cmp    %esi,-0xc(%ebp)
40e006:	75 0b                	jne    0x40e013
40e008:	6a 00                	push   $0x0
40e00a:	33 d2                	xor    %edx,%edx
40e00c:	33 c9                	xor    %ecx,%ecx
40e00e:	e8 fd ee ff ff       	call   0x40cf10
40e013:	5f                   	pop    %edi
40e014:	b8 01 00 00 00       	mov    $0x1,%eax
40e019:	5e                   	pop    %esi
40e01a:	8b e5                	mov    %ebp,%esp
40e01c:	5d                   	pop    %ebp
40e01d:	8b e3                	mov    %ebx,%esp
40e01f:	5b                   	pop    %ebx
40e020:	c3                   	ret
40e021:	8b 7d fc             	mov    -0x4(%ebp),%edi
40e024:	eb a1                	jmp    0x40dfc7
40e026:	0f b7 0d f0 4a 44 00 	movzwl 0x444af0,%ecx
40e02d:	83 e9 30             	sub    $0x30,%ecx
40e030:	89 08                	mov    %ecx,(%eax)
40e032:	b9 f2 4a 44 00       	mov    $0x444af2,%ecx
40e037:	e9 65 ff ff ff       	jmp    0x40dfa1
40e03c:	8b d1                	mov    %ecx,%edx
40e03e:	8d 42 02             	lea    0x2(%edx),%eax
40e041:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e044:	66 8b 02             	mov    (%edx),%ax
40e047:	83 c2 02             	add    $0x2,%edx
40e04a:	66 85 c0             	test   %ax,%ax
40e04d:	75 f5                	jne    0x40e044
40e04f:	2b 55 fc             	sub    -0x4(%ebp),%edx
40e052:	d1 fa                	sar    $1,%edx
40e054:	83 fa 02             	cmp    $0x2,%edx
40e057:	75 27                	jne    0x40e080
40e059:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
40e05d:	50                   	push   %eax
40e05e:	ff 15 34 a4 44 00    	call   *0x44a434
40e064:	83 c4 04             	add    $0x4,%esp
40e067:	85 c0                	test   %eax,%eax
40e069:	74 15                	je     0x40e080
40e06b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40e06e:	e8 3d cc ff ff       	call   0x40acb0
40e073:	8b 0f                	mov    (%edi),%ecx
40e075:	89 41 04             	mov    %eax,0x4(%ecx)
40e078:	85 c0                	test   %eax,%eax
40e07a:	0f 85 5d ff ff ff    	jne    0x40dfdd
40e080:	e8 d4 a8 01 00       	call   0x428959
40e085:	e9 53 ff ff ff       	jmp    0x40dfdd
40e08a:	cc                   	int3
40e08b:	cc                   	int3
40e08c:	cc                   	int3
40e08d:	cc                   	int3
40e08e:	cc                   	int3
40e08f:	cc                   	int3
40e090:	68 30 de 40 00       	push   $0x40de30
40e095:	68 90 e0 40 00       	push   $0x40e090
40e09a:	6a 32                	push   $0x32
40e09c:	5a                   	pop    %edx
40e09d:	b9 f4 22 40 00       	mov    $0x4022f4,%ecx
40e0a2:	e8 29 ec ff ff       	call   0x40ccd0
40e0a7:	c3                   	ret
40e0a8:	cc                   	int3
40e0a9:	cc                   	int3
40e0aa:	cc                   	int3
40e0ab:	cc                   	int3
40e0ac:	cc                   	int3
40e0ad:	cc                   	int3
40e0ae:	cc                   	int3
40e0af:	cc                   	int3
40e0b0:	81 3d 00 67 43 00 00 	cmpl   $0x4000,0x436700
40e0b7:	40 00 00
40e0ba:	56                   	push   %esi
40e0bb:	0f 85 a6 00 00 00    	jne    0x40e167
40e0c1:	68 f0 4a 44 00       	push   $0x444af0
40e0c6:	68 08 23 40 00       	push   $0x402308
40e0cb:	ff 15 40 a4 44 00    	call   *0x44a440
40e0d1:	83 c4 08             	add    $0x8,%esp
40e0d4:	85 c0                	test   %eax,%eax
40e0d6:	0f 84 27 01 00 00    	je     0x40e203
40e0dc:	68 f0 4a 44 00       	push   $0x444af0
40e0e1:	68 18 23 40 00       	push   $0x402318
40e0e6:	ff 15 40 a4 44 00    	call   *0x44a440
40e0ec:	83 c4 08             	add    $0x8,%esp
40e0ef:	85 c0                	test   %eax,%eax
40e0f1:	0f 84 0c 01 00 00    	je     0x40e203
40e0f7:	68 f0 4a 44 00       	push   $0x444af0
40e0fc:	68 10 23 40 00       	push   $0x402310
40e101:	ff 15 40 a4 44 00    	call   *0x44a440
40e107:	83 c4 08             	add    $0x8,%esp
40e10a:	85 c0                	test   %eax,%eax
40e10c:	0f 84 d2 00 00 00    	je     0x40e1e4
40e112:	68 f0 4a 44 00       	push   $0x444af0
40e117:	68 2c 23 40 00       	push   $0x40232c
40e11c:	ff 15 40 a4 44 00    	call   *0x44a440
40e122:	83 c4 08             	add    $0x8,%esp
40e125:	85 c0                	test   %eax,%eax
40e127:	0f 84 b7 00 00 00    	je     0x40e1e4
40e12d:	68 f0 4a 44 00       	push   $0x444af0
40e132:	68 24 23 40 00       	push   $0x402324
40e137:	ff 15 40 a4 44 00    	call   *0x44a440
40e13d:	83 c4 08             	add    $0x8,%esp
40e140:	85 c0                	test   %eax,%eax
40e142:	74 1d                	je     0x40e161
40e144:	68 f0 4a 44 00       	push   $0x444af0
40e149:	68 50 23 40 00       	push   $0x402350
40e14e:	ff 15 40 a4 44 00    	call   *0x44a440
40e154:	83 c4 08             	add    $0x8,%esp
40e157:	85 c0                	test   %eax,%eax
40e159:	74 06                	je     0x40e161
40e15b:	5e                   	pop    %esi
40e15c:	e9 af e2 ff ff       	jmp    0x40c410
40e161:	5e                   	pop    %esi
40e162:	e9 59 ca ff ff       	jmp    0x40abc0
40e167:	66 a1 f0 4a 44 00    	mov    0x444af0,%ax
40e16d:	66 83 f8 28          	cmp    $0x28,%ax
40e171:	75 77                	jne    0x40e1ea
40e173:	b9 50 00 00 00       	mov    $0x50,%ecx
40e178:	e8 53 fb ff ff       	call   0x40dcd0
40e17d:	8b f0                	mov    %eax,%esi
40e17f:	85 f6                	test   %esi,%esi
40e181:	0f 84 20 bb 00 00    	je     0x419ca7
40e187:	66 83 3d f0 4a 44 00 	cmpw   $0x28,0x444af0
40e18e:	28
40e18f:	75 68                	jne    0x40e1f9
40e191:	c7 06 33 00 00 00    	movl   $0x33,(%esi)
40e197:	eb 07                	jmp    0x40e1a0
40e199:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40e1a0:	b9 10 00 00 00       	mov    $0x10,%ecx
40e1a5:	e8 c6 ea ff ff       	call   0x40cc70
40e1aa:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40e1b1:	0a
40e1b2:	74 ec                	je     0x40e1a0
40e1b4:	6a 00                	push   $0x0
40e1b6:	33 d2                	xor    %edx,%edx
40e1b8:	33 c9                	xor    %ecx,%ecx
40e1ba:	e8 51 ed ff ff       	call   0x40cf10
40e1bf:	b9 33 00 00 00       	mov    $0x33,%ecx
40e1c4:	e8 fb c6 ff ff       	call   0x40a8c4
40e1c9:	89 46 38             	mov    %eax,0x38(%esi)
40e1cc:	83 3e 3b             	cmpl   $0x3b,(%esi)
40e1cf:	74 0f                	je     0x40e1e0
40e1d1:	b9 10 00 00 00       	mov    $0x10,%ecx
40e1d6:	e8 95 ea ff ff       	call   0x40cc70
40e1db:	83 f8 29             	cmp    $0x29,%eax
40e1de:	75 10                	jne    0x40e1f0
40e1e0:	8b c6                	mov    %esi,%eax
40e1e2:	5e                   	pop    %esi
40e1e3:	c3                   	ret
40e1e4:	5e                   	pop    %esi
40e1e5:	e9 b6 c4 ff ff       	jmp    0x40a6a0
40e1ea:	66 83 f8 40          	cmp    $0x40,%ax
40e1ee:	74 83                	je     0x40e173
40e1f0:	e8 64 a7 01 00       	call   0x428959
40e1f5:	33 c0                	xor    %eax,%eax
40e1f7:	5e                   	pop    %esi
40e1f8:	c3                   	ret
40e1f9:	c7 06 3b 00 00 00    	movl   $0x3b,(%esi)
40e1ff:	33 c9                	xor    %ecx,%ecx
40e201:	eb c1                	jmp    0x40e1c4
40e203:	5e                   	pop    %esi
40e204:	e9 0c 48 00 00       	jmp    0x412a15
40e209:	cc                   	int3
40e20a:	cc                   	int3
40e20b:	cc                   	int3
40e20c:	cc                   	int3
40e20d:	cc                   	int3
40e20e:	cc                   	int3
40e20f:	cc                   	int3
40e210:	68 90 e0 40 00       	push   $0x40e090
40e215:	68 10 e2 40 00       	push   $0x40e210
40e21a:	6a 31                	push   $0x31
40e21c:	5a                   	pop    %edx
40e21d:	b9 f8 22 40 00       	mov    $0x4022f8,%ecx
40e222:	e8 a9 ea ff ff       	call   0x40ccd0
40e227:	c3                   	ret
40e228:	cc                   	int3
40e229:	cc                   	int3
40e22a:	cc                   	int3
40e22b:	cc                   	int3
40e22c:	cc                   	int3
40e22d:	cc                   	int3
40e22e:	cc                   	int3
40e22f:	cc                   	int3
40e230:	68 10 e2 40 00       	push   $0x40e210
40e235:	68 30 e2 40 00       	push   $0x40e230
40e23a:	6a 30                	push   $0x30
40e23c:	5a                   	pop    %edx
40e23d:	b9 00 23 40 00       	mov    $0x402300,%ecx
40e242:	e8 89 ea ff ff       	call   0x40ccd0
40e247:	c3                   	ret
40e248:	33 d2                	xor    %edx,%edx
40e24a:	b8 35 c4 00 00       	mov    $0xc435,%eax
40e24f:	42                   	inc    %edx
40e250:	3b c8                	cmp    %eax,%ecx
40e252:	0f 87 e2 f8 00 00    	ja     0x41db3a
40e258:	74 14                	je     0x40e26e
40e25a:	83 f9 2a             	cmp    $0x2a,%ecx
40e25d:	74 0f                	je     0x40e26e
40e25f:	81 f9 2b c4 00 00    	cmp    $0xc42b,%ecx
40e265:	0f 87 a6 f8 00 00    	ja     0x41db11
40e26b:	8b c2                	mov    %edx,%eax
40e26d:	c3                   	ret
40e26e:	33 d2                	xor    %edx,%edx
40e270:	eb f9                	jmp    0x40e26b
40e272:	8b ff                	mov    %edi,%edi
40e274:	53                   	push   %ebx
40e275:	56                   	push   %esi
40e276:	57                   	push   %edi
40e277:	8b f9                	mov    %ecx,%edi
40e279:	ba 00 80 00 00       	mov    $0x8000,%edx
40e27e:	51                   	push   %ecx
40e27f:	8b 0f                	mov    (%edi),%ecx
40e281:	e8 0a 23 00 00       	call   0x410590
40e286:	83 cb ff             	or     $0xffffffff,%ebx
40e289:	8b f0                	mov    %eax,%esi
40e28b:	3b f3                	cmp    %ebx,%esi
40e28d:	0f 84 ea f8 00 00    	je     0x41db7d
40e293:	6a 00                	push   $0x0
40e295:	6a 00                	push   $0x0
40e297:	ff 77 08             	push   0x8(%edi)
40e29a:	56                   	push   %esi
40e29b:	ff 15 2c a4 44 00    	call   *0x44a42c
40e2a1:	59                   	pop    %ecx
40e2a2:	50                   	push   %eax
40e2a3:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40e2a9:	8b c6                	mov    %esi,%eax
40e2ab:	5f                   	pop    %edi
40e2ac:	5e                   	pop    %esi
40e2ad:	5b                   	pop    %ebx
40e2ae:	c3                   	ret
40e2af:	8b ff                	mov    %edi,%edi
40e2b1:	56                   	push   %esi
40e2b2:	8b 35 30 67 43 00    	mov    0x436730,%esi
40e2b8:	85 f6                	test   %esi,%esi
40e2ba:	74 0e                	je     0x40e2ca
40e2bc:	6a 00                	push   $0x0
40e2be:	8b ce                	mov    %esi,%ecx
40e2c0:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40e2c6:	ff d6                	call   *%esi
40e2c8:	5e                   	pop    %esi
40e2c9:	c3                   	ret
40e2ca:	a1 c8 e0 42 00       	mov    0x42e0c8,%eax
40e2cf:	83 f8 ff             	cmp    $0xffffffff,%eax
40e2d2:	75 1b                	jne    0x40e2ef
40e2d4:	68 04 27 40 00       	push   $0x402704
40e2d9:	ff 15 74 a1 44 00    	call   *0x44a174
40e2df:	8b 35 30 67 43 00    	mov    0x436730,%esi
40e2e5:	a3 c8 e0 42 00       	mov    %eax,0x42e0c8
40e2ea:	83 f8 ff             	cmp    $0xffffffff,%eax
40e2ed:	74 18                	je     0x40e307
40e2ef:	85 c0                	test   %eax,%eax
40e2f1:	74 14                	je     0x40e307
40e2f3:	68 20 27 40 00       	push   $0x402720
40e2f8:	50                   	push   %eax
40e2f9:	ff 15 68 a1 44 00    	call   *0x44a168
40e2ff:	8b f0                	mov    %eax,%esi
40e301:	89 35 30 67 43 00    	mov    %esi,0x436730
40e307:	85 f6                	test   %esi,%esi
40e309:	75 b1                	jne    0x40e2bc
40e30b:	e9 f3 f8 00 00       	jmp    0x41dc03
40e310:	ff 35 ac 25 43 00    	push   0x4325ac
40e316:	6a 01                	push   $0x1
40e318:	ff 15 2c a4 44 00    	call   *0x44a42c
40e31e:	83 c4 04             	add    $0x4,%esp
40e321:	50                   	push   %eax
40e322:	ff 15 14 a0 44 00    	call   *0x44a014
40e328:	68 ac 25 43 00       	push   $0x4325ac
40e32d:	6a 01                	push   $0x1
40e32f:	ff 15 2c a4 44 00    	call   *0x44a42c
40e335:	83 c4 04             	add    $0x4,%esp
40e338:	50                   	push   %eax
40e339:	ff 15 10 a0 44 00    	call   *0x44a010
40e33f:	85 c0                	test   %eax,%eax
40e341:	74 14                	je     0x40e357
40e343:	8b 0d e0 e0 42 00    	mov    0x42e0e0,%ecx
40e349:	8b c1                	mov    %ecx,%eax
40e34b:	8b 15 ac 25 43 00    	mov    0x4325ac,%edx
40e351:	23 c2                	and    %edx,%eax
40e353:	3b c1                	cmp    %ecx,%eax
40e355:	75 65                	jne    0x40e3bc
40e357:	68 b0 25 43 00       	push   $0x4325b0
40e35c:	6a 00                	push   $0x0
40e35e:	ff 15 2c a4 44 00    	call   *0x44a42c
40e364:	83 c4 04             	add    $0x4,%esp
40e367:	50                   	push   %eax
40e368:	ff 15 10 a0 44 00    	call   *0x44a010
40e36e:	85 c0                	test   %eax,%eax
40e370:	74 49                	je     0x40e3bb
40e372:	8b 0d b0 25 43 00    	mov    0x4325b0,%ecx
40e378:	8b c1                	mov    %ecx,%eax
40e37a:	83 e0 17             	and    $0x17,%eax
40e37d:	3c 07                	cmp    $0x7,%al
40e37f:	74 1f                	je     0x40e3a0
40e381:	83 e1 ef             	and    $0xffffffef,%ecx
40e384:	83 c9 07             	or     $0x7,%ecx
40e387:	51                   	push   %ecx
40e388:	6a 00                	push   $0x0
40e38a:	89 0d b0 25 43 00    	mov    %ecx,0x4325b0
40e390:	ff 15 2c a4 44 00    	call   *0x44a42c
40e396:	83 c4 04             	add    $0x4,%esp
40e399:	50                   	push   %eax
40e39a:	ff 15 14 a0 44 00    	call   *0x44a014
40e3a0:	56                   	push   %esi
40e3a1:	8b 35 b4 25 43 00    	mov    0x4325b4,%esi
40e3a7:	85 f6                	test   %esi,%esi
40e3a9:	74 0f                	je     0x40e3ba
40e3ab:	68 3c 23 40 00       	push   $0x40233c
40e3b0:	8b ce                	mov    %esi,%ecx
40e3b2:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40e3b8:	ff d6                	call   *%esi
40e3ba:	5e                   	pop    %esi
40e3bb:	c3                   	ret
40e3bc:	0b d1                	or     %ecx,%edx
40e3be:	52                   	push   %edx
40e3bf:	6a 01                	push   $0x1
40e3c1:	89 15 ac 25 43 00    	mov    %edx,0x4325ac