40d03c:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40d03f:	29 45 e4             	sub    %eax,-0x1c(%ebp)
40d042:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
40d046:	0f 8e da 00 00 00    	jle    0x40d126
40d04c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40d050:	0f 8e d0 00 00 00    	jle    0x40d126
40d056:	85 c9                	test   %ecx,%ecx
40d058:	79 0f                	jns    0x40d069
40d05a:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40d05d:	f7 d9                	neg    %ecx
40d05f:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
40d062:	33 c9                	xor    %ecx,%ecx
40d064:	89 4d c0             	mov    %ecx,-0x40(%ebp)
40d067:	eb 0b                	jmp    0x40d074
40d069:	89 4d c0             	mov    %ecx,-0x40(%ebp)
40d06c:	33 c9                	xor    %ecx,%ecx
40d06e:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40d071:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
40d074:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d077:	85 c0                	test   %eax,%eax
40d079:	79 10                	jns    0x40d08b
40d07b:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
40d07e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40d081:	2b c8                	sub    %eax,%ecx
40d083:	89 45 a0             	mov    %eax,-0x60(%ebp)
40d086:	89 4d 98             	mov    %ecx,-0x68(%ebp)
40d089:	eb 0c                	jmp    0x40d097
40d08b:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d08e:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d091:	89 4d a0             	mov    %ecx,-0x60(%ebp)
40d094:	89 45 98             	mov    %eax,-0x68(%ebp)
40d097:	8b 45 c0             	mov    -0x40(%ebp),%eax
40d09a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d09d:	03 4d a4             	add    -0x5c(%ebp),%ecx
40d0a0:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d0a3:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d0a6:	03 45 a8             	add    -0x58(%ebp),%eax
40d0a9:	68 20 00 cc 00       	push   $0xcc0020
40d0ae:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d0b1:	8b 45 a0             	mov    -0x60(%ebp),%eax
40d0b4:	03 45 d0             	add    -0x30(%ebp),%eax
40d0b7:	51                   	push   %ecx
40d0b8:	ff 75 c0             	push   -0x40(%ebp)
40d0bb:	03 c2                	add    %edx,%eax
40d0bd:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40d0c0:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d0c3:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d0c6:	50                   	push   %eax
40d0c7:	ff 75 e4             	push   -0x1c(%ebp)
40d0ca:	ff 75 9c             	push   -0x64(%ebp)
40d0cd:	ff 75 98             	push   -0x68(%ebp)
40d0d0:	ff 75 94             	push   -0x6c(%ebp)
40d0d3:	50                   	push   %eax
40d0d4:	ff 15 4c 30 43 00    	call   *0x43304c
40d0da:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d0dd:	0f b7 c8             	movzwl %ax,%ecx
40d0e0:	a1 48 26 43 00       	mov    0x432648,%eax
40d0e5:	8d 14 48             	lea    (%eax,%ecx,2),%edx
40d0e8:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
40d0ee:	66 8b 02             	mov    (%edx),%ax
40d0f1:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40d0f5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d0f8:	50                   	push   %eax
40d0f9:	e8 c4 f1 ff ff       	call   0x40c2c2
40d0fe:	8b 55 88             	mov    -0x78(%ebp),%edx
40d101:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d104:	51                   	push   %ecx
40d105:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40d108:	6a 01                	push   $0x1
40d10a:	50                   	push   %eax
40d10b:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d10e:	50                   	push   %eax
40d10f:	8b 45 b8             	mov    -0x48(%ebp),%eax
40d112:	8d 14 1a             	lea    (%edx,%ebx,1),%edx
40d115:	03 45 bc             	add    -0x44(%ebp),%eax
40d118:	03 45 d0             	add    -0x30(%ebp),%eax
40d11b:	6a 06                	push   $0x6
40d11d:	50                   	push   %eax
40d11e:	e8 66 2f 00 00       	call   0x410089
40d123:	8b 55 dc             	mov    -0x24(%ebp),%edx
40d126:	68 20 00 cc 00       	push   $0xcc0020
40d12b:	ff 75 d0             	push   -0x30(%ebp)
40d12e:	6a 00                	push   $0x0
40d130:	ff 75 d8             	push   -0x28(%ebp)
40d133:	52                   	push   %edx
40d134:	ff 75 e0             	push   -0x20(%ebp)
40d137:	ff 75 90             	push   -0x70(%ebp)
40d13a:	ff 75 8c             	push   -0x74(%ebp)
40d13d:	57                   	push   %edi
40d13e:	ff 15 4c 30 43 00    	call   *0x43304c
40d144:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40d147:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d14a:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d14d:	83 c0 fe             	add    $0xfffffffe,%eax
40d150:	03 c1                	add    %ecx,%eax
40d152:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40d155:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d158:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d15b:	6a 00                	push   $0x0
40d15d:	52                   	push   %edx
40d15e:	83 c0 fe             	add    $0xfffffffe,%eax
40d161:	89 4e 20             	mov    %ecx,0x20(%esi)
40d164:	51                   	push   %ecx
40d165:	03 c2                	add    %edx,%eax
40d167:	89 55 ec             	mov    %edx,-0x14(%ebp)
40d16a:	57                   	push   %edi
40d16b:	89 56 24             	mov    %edx,0x24(%esi)
40d16e:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d171:	ff 15 88 30 43 00    	call   *0x433088
40d177:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d17a:	48                   	dec    %eax
40d17b:	50                   	push   %eax
40d17c:	ff 75 e8             	push   -0x18(%ebp)
40d17f:	57                   	push   %edi
40d180:	ff 15 84 30 43 00    	call   *0x433084
40d186:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d189:	48                   	dec    %eax
40d18a:	50                   	push   %eax
40d18b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d18e:	48                   	dec    %eax
40d18f:	50                   	push   %eax
40d190:	57                   	push   %edi
40d191:	ff 15 84 30 43 00    	call   *0x433084
40d197:	ff 75 ec             	push   -0x14(%ebp)
40d19a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d19d:	48                   	dec    %eax
40d19e:	50                   	push   %eax
40d19f:	57                   	push   %edi
40d1a0:	ff 15 84 30 43 00    	call   *0x433084
40d1a6:	ff 75 ec             	push   -0x14(%ebp)
40d1a9:	ff 75 e8             	push   -0x18(%ebp)
40d1ac:	57                   	push   %edi
40d1ad:	ff 15 84 30 43 00    	call   *0x433084
40d1b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d1b6:	6a 00                	push   $0x0
40d1b8:	40                   	inc    %eax
40d1b9:	50                   	push   %eax
40d1ba:	ff 75 f0             	push   -0x10(%ebp)
40d1bd:	57                   	push   %edi
40d1be:	ff 15 88 30 43 00    	call   *0x433088
40d1c4:	ff 75 f4             	push   -0xc(%ebp)
40d1c7:	ff 75 f0             	push   -0x10(%ebp)
40d1ca:	57                   	push   %edi
40d1cb:	ff 15 84 30 43 00    	call   *0x433084
40d1d1:	ff 75 f4             	push   -0xc(%ebp)
40d1d4:	ff 75 e8             	push   -0x18(%ebp)
40d1d7:	57                   	push   %edi
40d1d8:	ff 15 84 30 43 00    	call   *0x433084
40d1de:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d1e1:	6a 00                	push   $0x0
40d1e3:	83 c0 02             	add    $0x2,%eax
40d1e6:	50                   	push   %eax
40d1e7:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d1ea:	40                   	inc    %eax
40d1eb:	50                   	push   %eax
40d1ec:	57                   	push   %edi
40d1ed:	ff 15 88 30 43 00    	call   *0x433088
40d1f3:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d1f6:	40                   	inc    %eax
40d1f7:	50                   	push   %eax
40d1f8:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d1fb:	40                   	inc    %eax
40d1fc:	50                   	push   %eax
40d1fd:	57                   	push   %edi
40d1fe:	ff 15 84 30 43 00    	call   *0x433084
40d204:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d207:	40                   	inc    %eax
40d208:	50                   	push   %eax
40d209:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d20c:	40                   	inc    %eax
40d20d:	50                   	push   %eax
40d20e:	57                   	push   %edi
40d20f:	ff 15 84 30 43 00    	call   *0x433084
40d215:	ff 45 e8             	incl   -0x18(%ebp)
40d218:	ff 45 ec             	incl   -0x14(%ebp)
40d21b:	ff 4d f0             	decl   -0x10(%ebp)
40d21e:	ff 4d f4             	decl   -0xc(%ebp)
40d221:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40d227:	85 c9                	test   %ecx,%ecx
40d229:	0f 84 96 00 00 00    	je     0x40d2c5
40d22f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d232:	0f b7 c0             	movzwl %ax,%eax
40d235:	8d 14 41             	lea    (%ecx,%eax,2),%edx
40d238:	8b 0d 14 19 43 00    	mov    0x431914,%ecx
40d23e:	66 8b 02             	mov    (%edx),%ax
40d241:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
40d245:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40d248:	50                   	push   %eax
40d249:	e8 74 f0 ff ff       	call   0x40c2c2
40d24e:	8b 55 c8             	mov    -0x38(%ebp),%edx
40d251:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40d254:	51                   	push   %ecx
40d255:	6a 01                	push   $0x1
40d257:	50                   	push   %eax
40d258:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d25b:	8b cf                	mov    %edi,%ecx
40d25d:	50                   	push   %eax
40d25e:	8b 45 b8             	mov    -0x48(%ebp),%eax
40d261:	8d 14 13             	lea    (%ebx,%edx,1),%edx
40d264:	03 45 cc             	add    -0x34(%ebp),%eax
40d267:	6a 06                	push   $0x6
40d269:	50                   	push   %eax
40d26a:	e8 1a 2e 00 00       	call   0x410089
40d26f:	ff 75 84             	push   -0x7c(%ebp)
40d272:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d275:	57                   	push   %edi
40d276:	89 46 28             	mov    %eax,0x28(%esi)
40d279:	ff 15 ac 30 43 00    	call   *0x4330ac
40d27f:	50                   	push   %eax
40d280:	ff 15 b4 30 43 00    	call   *0x4330b4
40d286:	ff 75 80             	push   -0x80(%ebp)
40d289:	57                   	push   %edi
40d28a:	ff 15 ac 30 43 00    	call   *0x4330ac
40d290:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
40d296:	ff 75 d8             	push   -0x28(%ebp)
40d299:	ff 15 ac 30 43 00    	call   *0x4330ac
40d29f:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
40d2a2:	8b cf                	mov    %edi,%ecx
40d2a4:	6a 01                	push   $0x1
40d2a6:	8b d3                	mov    %ebx,%edx
40d2a8:	e8 71 00 00 00       	call   0x40d31e
40d2ad:	57                   	push   %edi
40d2ae:	ff 35 10 19 43 00    	push   0x431910
40d2b4:	ff 15 08 33 43 00    	call   *0x433308
40d2ba:	66 89 5e 54          	mov    %bx,0x54(%esi)
40d2be:	c7 46 4c 01 00 00 00 	movl   $0x1,0x4c(%esi)
40d2c5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d2c8:	5f                   	pop    %edi
40d2c9:	5e                   	pop    %esi
40d2ca:	33 cd                	xor    %ebp,%ecx
40d2cc:	5b                   	pop    %ebx
40d2cd:	e8 5e 31 00 00       	call   0x410430
40d2d2:	c9                   	leave
40d2d3:	c2 04 00             	ret    $0x4
40d2d6:	8b ff                	mov    %edi,%edi
40d2d8:	56                   	push   %esi
40d2d9:	57                   	push   %edi
40d2da:	ff 35 10 19 43 00    	push   0x431910
40d2e0:	8b f9                	mov    %ecx,%edi
40d2e2:	ff 15 f0 32 43 00    	call   *0x4332f0
40d2e8:	68 20 00 cc 00       	push   $0xcc0020
40d2ed:	ff 77 28             	push   0x28(%edi)
40d2f0:	8b f0                	mov    %eax,%esi
40d2f2:	6a 00                	push   $0x0
40d2f4:	ff 77 60             	push   0x60(%edi)
40d2f7:	ff 77 1c             	push   0x1c(%edi)
40d2fa:	ff 77 18             	push   0x18(%edi)
40d2fd:	ff 77 24             	push   0x24(%edi)
40d300:	ff 77 20             	push   0x20(%edi)
40d303:	56                   	push   %esi
40d304:	ff 15 4c 30 43 00    	call   *0x43304c
40d30a:	56                   	push   %esi
40d30b:	ff 35 10 19 43 00    	push   0x431910
40d311:	ff 15 08 33 43 00    	call   *0x433308
40d317:	83 67 20 00          	andl   $0x0,0x20(%edi)
40d31b:	5f                   	pop    %edi
40d31c:	5e                   	pop    %esi
40d31d:	c3                   	ret
40d31e:	8b ff                	mov    %edi,%edi
40d320:	55                   	push   %ebp
40d321:	8b ec                	mov    %esp,%ebp
40d323:	81 ec 10 02 00 00    	sub    $0x210,%esp
40d329:	a1 64 10 41 00       	mov    0x411064,%eax
40d32e:	33 c5                	xor    %ebp,%eax
40d330:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d333:	a1 48 26 43 00       	mov    0x432648,%eax
40d338:	53                   	push   %ebx
40d339:	8b d9                	mov    %ecx,%ebx
40d33b:	0f b7 ca             	movzwl %dx,%ecx
40d33e:	56                   	push   %esi
40d33f:	57                   	push   %edi
40d340:	85 c0                	test   %eax,%eax
40d342:	0f 84 b8 01 00 00    	je     0x40d500
40d348:	33 ff                	xor    %edi,%edi
40d34a:	66 39 38             	cmp    %di,(%eax)
40d34d:	0f 84 ad 01 00 00    	je     0x40d500
40d353:	8b f1                	mov    %ecx,%esi
40d355:	33 d2                	xor    %edx,%edx
40d357:	03 f6                	add    %esi,%esi
40d359:	66 89 15 28 1b 43 00 	mov    %dx,0x431b28
40d360:	f7 05 18 19 43 00 00 	testl  $0x20000000,0x431918
40d367:	00 00 20
40d36a:	74 4c                	je     0x40d3b8
40d36c:	bf 04 01 00 00       	mov    $0x104,%edi
40d371:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d377:	57                   	push   %edi
40d378:	50                   	push   %eax
40d379:	6a 73                	push   $0x73
40d37b:	ff 35 0c 19 41 00    	push   0x41190c
40d381:	ff 15 20 33 43 00    	call   *0x433320
40d387:	a1 48 26 43 00       	mov    0x432648,%eax
40d38c:	0f b7 04 06          	movzwl (%esi,%eax,1),%eax
40d390:	50                   	push   %eax
40d391:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d397:	50                   	push   %eax
40d398:	68 34 18 40 00       	push   $0x401834
40d39d:	57                   	push   %edi
40d39e:	68 30 1d 43 00       	push   $0x431d30
40d3a3:	e8 00 66 ff ff       	call   0x4039a8
40d3a8:	83 c4 14             	add    $0x14,%esp
40d3ab:	85 c0                	test   %eax,%eax
40d3ad:	0f 88 76 01 00 00    	js     0x40d529
40d3b3:	e9 63 01 00 00       	jmp    0x40d51b
40d3b8:	0f b7 04 06          	movzwl (%esi,%eax,1),%eax
40d3bc:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40d3c2:	51                   	push   %ecx
40d3c3:	50                   	push   %eax
40d3c4:	ff 15 bc 30 43 00    	call   *0x4330bc
40d3ca:	8b 0d a4 16 41 00    	mov    0x4116a4,%ecx
40d3d0:	81 f9 b0 04 00 00    	cmp    $0x4b0,%ecx
40d3d6:	74 75                	je     0x40d44d
40d3d8:	57                   	push   %edi
40d3d9:	57                   	push   %edi
40d3da:	6a 02                	push   $0x2
40d3dc:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40d3e2:	50                   	push   %eax
40d3e3:	a1 48 26 43 00       	mov    0x432648,%eax
40d3e8:	6a 01                	push   $0x1
40d3ea:	03 c6                	add    %esi,%eax
40d3ec:	50                   	push   %eax
40d3ed:	68 00 04 00 00       	push   $0x400
40d3f2:	51                   	push   %ecx
40d3f3:	ff 15 b0 31 43 00    	call   *0x4331b0
40d3f9:	83 f8 01             	cmp    $0x1,%eax
40d3fc:	75 09                	jne    0x40d407
40d3fe:	0f b6 85 f0 fd ff ff 	movzbl -0x210(%ebp),%eax
40d405:	eb 17                	jmp    0x40d41e
40d407:	66 8b 85 f0 fd ff ff 	mov    -0x210(%ebp),%ax
40d40e:	0f b6 c8             	movzbl %al,%ecx
40d411:	0f b6 c4             	movzbl %ah,%eax
40d414:	66 c1 e1 08          	shl    $0x8,%cx
40d418:	66 0b c8             	or     %ax,%cx
40d41b:	0f b7 c1             	movzwl %cx,%eax
40d41e:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40d424:	0f b7 c0             	movzwl %ax,%eax
40d427:	51                   	push   %ecx
40d428:	50                   	push   %eax
40d429:	a1 48 26 43 00       	mov    0x432648,%eax
40d42e:	bf 04 01 00 00       	mov    $0x104,%edi
40d433:	0f b7 04 06          	movzwl (%esi,%eax,1),%eax
40d437:	50                   	push   %eax
40d438:	68 4c 18 40 00       	push   $0x40184c
40d43d:	57                   	push   %edi
40d43e:	68 30 1d 43 00       	push   $0x431d30
40d443:	e8 60 65 ff ff       	call   0x4039a8
40d448:	83 c4 18             	add    $0x18,%esp
40d44b:	eb 29                	jmp    0x40d476
40d44d:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d453:	bf 04 01 00 00       	mov    $0x104,%edi
40d458:	50                   	push   %eax