40c07b:	66 85 ff             	test   %di,%di
40c07e:	74 0e                	je     0x40c08e
40c080:	66 89 3a             	mov    %di,(%edx)
40c083:	83 c2 02             	add    $0x2,%edx
40c086:	83 c1 02             	add    $0x2,%ecx
40c089:	4e                   	dec    %esi
40c08a:	48                   	dec    %eax
40c08b:	43                   	inc    %ebx
40c08c:	eb cf                	jmp    0x40c05d
40c08e:	85 f6                	test   %esi,%esi
40c090:	0f 84 34 0f 01 00    	je     0x41cfca
40c096:	33 c0                	xor    %eax,%eax
40c098:	66 89 02             	mov    %ax,(%edx)
40c09b:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40c09e:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c0a1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c0a4:	66 8b 30             	mov    (%eax),%si
40c0a7:	83 c0 02             	add    $0x2,%eax
40c0aa:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c0ad:	8b cf                	mov    %edi,%ecx
40c0af:	e8 7a 2b 00 00       	call   0x40ec2e
40c0b4:	8b f8                	mov    %eax,%edi
40c0b6:	89 7d d8             	mov    %edi,-0x28(%ebp)
40c0b9:	66 83 fe 3a          	cmp    $0x3a,%si
40c0bd:	74 36                	je     0x40c0f5
40c0bf:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40c0c2:	2b cb                	sub    %ebx,%ecx
40c0c4:	d1 f9                	sar    $1,%ecx
40c0c6:	8b 45 08             	mov    0x8(%ebp),%eax
40c0c9:	89 08                	mov    %ecx,(%eax)
40c0cb:	8b f7                	mov    %edi,%esi
40c0cd:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c0d0:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c0d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c0da:	e8 15 03 00 00       	call   0x40c3f4
40c0df:	8b c6                	mov    %esi,%eax
40c0e1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c0e4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c0eb:	59                   	pop    %ecx
40c0ec:	5f                   	pop    %edi
40c0ed:	5e                   	pop    %esi
40c0ee:	5b                   	pop    %ebx
40c0ef:	8b e5                	mov    %ebp,%esp
40c0f1:	5d                   	pop    %ebp
40c0f2:	c2 08 00             	ret    $0x8
40c0f5:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40c0fc:	74 c1                	je     0x40c0bf
40c0fe:	85 ff                	test   %edi,%edi
40c100:	74 bd                	je     0x40c0bf
40c102:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c105:	0f b7 08             	movzwl (%eax),%ecx
40c108:	83 f9 7e             	cmp    $0x7e,%ecx
40c10b:	0f 84 de 00 00 00    	je     0x40c1ef
40c111:	83 f9 2a             	cmp    $0x2a,%ecx
40c114:	0f 84 ee 0e 01 00    	je     0x41d008
40c11a:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40c121:	8b f0                	mov    %eax,%esi
40c123:	89 75 9c             	mov    %esi,-0x64(%ebp)
40c126:	8b d6                	mov    %esi,%edx
40c128:	0f b7 08             	movzwl (%eax),%ecx
40c12b:	66 85 c9             	test   %cx,%cx
40c12e:	74 0f                	je     0x40c13f
40c130:	83 f9 3d             	cmp    $0x3d,%ecx
40c133:	74 0a                	je     0x40c13f
40c135:	8d 42 02             	lea    0x2(%edx),%eax
40c138:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c13b:	8b d0                	mov    %eax,%edx
40c13d:	eb e9                	jmp    0x40c128
40c13f:	66 83 38 00          	cmpw   $0x0,(%eax)
40c143:	0f 84 d1 0e 01 00    	je     0x41d01a
40c149:	8b da                	mov    %edx,%ebx
40c14b:	2b de                	sub    %esi,%ebx
40c14d:	d1 fb                	sar    $1,%ebx
40c14f:	0f 84 cd 0e 01 00    	je     0x41d022
40c155:	8d 42 02             	lea    0x2(%edx),%eax
40c158:	8b f0                	mov    %eax,%esi
40c15a:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40c15d:	8b d0                	mov    %eax,%edx
40c15f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c162:	0f b7 08             	movzwl (%eax),%ecx
40c165:	66 85 c9             	test   %cx,%cx
40c168:	74 0b                	je     0x40c175
40c16a:	66 3b 4d 0c          	cmp    0xc(%ebp),%cx
40c16e:	74 05                	je     0x40c175
40c170:	8d 42 02             	lea    0x2(%edx),%eax
40c173:	eb e8                	jmp    0x40c15d
40c175:	66 83 38 00          	cmpw   $0x0,(%eax)
40c179:	8b 45 08             	mov    0x8(%ebp),%eax
40c17c:	0f 84 7b 0e 01 00    	je     0x41cffd
40c182:	8d 4a 02             	lea    0x2(%edx),%ecx
40c185:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c188:	2b d6                	sub    %esi,%edx
40c18a:	d1 fa                	sar    $1,%edx
40c18c:	89 55 cc             	mov    %edx,-0x34(%ebp)
40c18f:	2b 4d d0             	sub    -0x30(%ebp),%ecx
40c192:	d1 f9                	sar    $1,%ecx
40c194:	89 08                	mov    %ecx,(%eax)
40c196:	66 83 3f 00          	cmpw   $0x0,(%edi)
40c19a:	74 46                	je     0x40c1e2
40c19c:	57                   	push   %edi
40c19d:	ba 00 20 00 00       	mov    $0x2000,%edx
40c1a2:	8b 75 c8             	mov    -0x38(%ebp),%esi
40c1a5:	8b ce                	mov    %esi,%ecx
40c1a7:	e8 f4 31 00 00       	call   0x40f3a0
40c1ac:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c1af:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c1b2:	53                   	push   %ebx
40c1b3:	ff 75 9c             	push   -0x64(%ebp)
40c1b6:	56                   	push   %esi
40c1b7:	ff 15 28 a4 44 00    	call   *0x44a428
40c1bd:	83 c4 0c             	add    $0xc,%esp
40c1c0:	85 c0                	test   %eax,%eax
40c1c2:	0f 84 54 01 00 00    	je     0x40c31c
40c1c8:	0f b7 06             	movzwl (%esi),%eax
40c1cb:	66 89 07             	mov    %ax,(%edi)
40c1ce:	83 c7 02             	add    $0x2,%edi
40c1d1:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c1d4:	83 c6 02             	add    $0x2,%esi
40c1d7:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c1da:	66 85 c0             	test   %ax,%ax
40c1dd:	75 d3                	jne    0x40c1b2
40c1df:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c1e2:	8b f7                	mov    %edi,%esi
40c1e4:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c1e7:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c1ea:	e9 e4 fe ff ff       	jmp    0x40c0d3
40c1ef:	83 c0 02             	add    $0x2,%eax
40c1f2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c1f5:	6a 00                	push   $0x0
40c1f7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c1fa:	51                   	push   %ecx
40c1fb:	50                   	push   %eax
40c1fc:	ff 15 38 a4 44 00    	call   *0x44a438
40c202:	83 c4 0c             	add    $0xc,%esp
40c205:	8b f8                	mov    %eax,%edi
40c207:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c20a:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40c20d:	85 ff                	test   %edi,%edi
40c20f:	79 19                	jns    0x40c22a
40c211:	8b cb                	mov    %ebx,%ecx
40c213:	8d 51 02             	lea    0x2(%ecx),%edx
40c216:	66 8b 01             	mov    (%ecx),%ax
40c219:	83 c1 02             	add    $0x2,%ecx
40c21c:	66 85 c0             	test   %ax,%ax
40c21f:	75 f5                	jne    0x40c216
40c221:	2b ca                	sub    %edx,%ecx
40c223:	d1 f9                	sar    $1,%ecx
40c225:	03 f9                	add    %ecx,%edi
40c227:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c22a:	8b cb                	mov    %ebx,%ecx
40c22c:	8d 51 02             	lea    0x2(%ecx),%edx
40c22f:	90                   	nop
40c230:	66 8b 01             	mov    (%ecx),%ax
40c233:	83 c1 02             	add    $0x2,%ecx
40c236:	66 85 c0             	test   %ax,%ax
40c239:	75 f5                	jne    0x40c230
40c23b:	2b ca                	sub    %edx,%ecx
40c23d:	d1 f9                	sar    $1,%ecx
40c23f:	3b f9                	cmp    %ecx,%edi
40c241:	0f 8d 76 01 00 00    	jge    0x40c3bd
40c247:	8b cf                	mov    %edi,%ecx
40c249:	85 c9                	test   %ecx,%ecx
40c24b:	0f 88 9a 0d 01 00    	js     0x41cfeb
40c251:	8b cb                	mov    %ebx,%ecx
40c253:	8d 51 02             	lea    0x2(%ecx),%edx
40c256:	66 8b 01             	mov    (%ecx),%ax
40c259:	83 c1 02             	add    $0x2,%ecx
40c25c:	66 85 c0             	test   %ax,%ax
40c25f:	75 f5                	jne    0x40c256
40c261:	2b ca                	sub    %edx,%ecx
40c263:	d1 f9                	sar    $1,%ecx
40c265:	3b f9                	cmp    %ecx,%edi
40c267:	0f 8d 69 01 00 00    	jge    0x40c3d6
40c26d:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c270:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c273:	66 83 38 2c          	cmpw   $0x2c,(%eax)
40c277:	0f 85 26 01 00 00    	jne    0x40c3a3
40c27d:	83 c0 02             	add    $0x2,%eax
40c280:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c283:	6a 00                	push   $0x0
40c285:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c288:	51                   	push   %ecx
40c289:	50                   	push   %eax
40c28a:	ff 15 38 a4 44 00    	call   *0x44a438
40c290:	83 c4 0c             	add    $0xc,%esp
40c293:	8b f0                	mov    %eax,%esi
40c295:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c298:	85 f6                	test   %esi,%esi
40c29a:	0f 88 d7 00 00 00    	js     0x40c377
40c2a0:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c2a3:	8d 3c 7b             	lea    (%ebx,%edi,2),%edi
40c2a6:	8b cf                	mov    %edi,%ecx
40c2a8:	8d 51 02             	lea    0x2(%ecx),%edx
40c2ab:	eb 03                	jmp    0x40c2b0
40c2ad:	8d 49 00             	lea    0x0(%ecx),%ecx
40c2b0:	66 8b 01             	mov    (%ecx),%ax
40c2b3:	83 c1 02             	add    $0x2,%ecx
40c2b6:	66 85 c0             	test   %ax,%ax
40c2b9:	75 f5                	jne    0x40c2b0
40c2bb:	2b ca                	sub    %edx,%ecx
40c2bd:	d1 f9                	sar    $1,%ecx
40c2bf:	3b f1                	cmp    %ecx,%esi
40c2c1:	0f 8d 86 00 00 00    	jge    0x40c34d
40c2c7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c2ca:	8b d3                	mov    %ebx,%edx
40c2cc:	8d 4a 02             	lea    0x2(%edx),%ecx
40c2cf:	90                   	nop
40c2d0:	66 8b 02             	mov    (%edx),%ax
40c2d3:	83 c2 02             	add    $0x2,%edx
40c2d6:	66 85 c0             	test   %ax,%ax
40c2d9:	75 f5                	jne    0x40c2d0
40c2db:	2b d1                	sub    %ecx,%edx
40c2dd:	d1 fa                	sar    $1,%edx
40c2df:	56                   	push   %esi
40c2e0:	57                   	push   %edi
40c2e1:	42                   	inc    %edx
40c2e2:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c2e5:	8b cf                	mov    %edi,%ecx
40c2e7:	e8 ac 5f 00 00       	call   0x412298
40c2ec:	66 83 3c 77 00       	cmpw   $0x0,(%edi,%esi,2)
40c2f1:	0f 85 fb 0c 01 00    	jne    0x41cff2
40c2f7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c2fa:	0f b7 08             	movzwl (%eax),%ecx
40c2fd:	8d 50 02             	lea    0x2(%eax),%edx
40c300:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40c303:	8b 45 08             	mov    0x8(%ebp),%eax
40c306:	66 3b 4d 0c          	cmp    0xc(%ebp),%cx
40c30a:	0f 85 ed 0c 01 00    	jne    0x41cffd
40c310:	2b 55 d0             	sub    -0x30(%ebp),%edx
40c313:	d1 fa                	sar    $1,%edx
40c315:	89 10                	mov    %edx,(%eax)
40c317:	e9 c6 fe ff ff       	jmp    0x40c1e2
40c31c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40c31f:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
40c322:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
40c325:	50                   	push   %eax
40c326:	ff 75 b4             	push   -0x4c(%ebp)
40c329:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
40c32d:	0f 85 0f 0d 01 00    	jne    0x41d042
40c333:	57                   	push   %edi
40c334:	e8 03 b9 00 00       	call   0x417c3c
40c339:	83 c4 0c             	add    $0xc,%esp
40c33c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40c33f:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
40c342:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c345:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c348:	e9 65 fe ff ff       	jmp    0x40c1b2
40c34d:	8b f7                	mov    %edi,%esi
40c34f:	8d 4e 02             	lea    0x2(%esi),%ecx
40c352:	66 8b 06             	mov    (%esi),%ax
40c355:	83 c6 02             	add    $0x2,%esi
40c358:	66 85 c0             	test   %ax,%ax
40c35b:	75 f5                	jne    0x40c352
40c35d:	2b f1                	sub    %ecx,%esi
40c35f:	d1 fe                	sar    $1,%esi
40c361:	e9 61 ff ff ff       	jmp    0x40c2c7
40c366:	8b 75 e0             	mov    -0x20(%ebp),%esi
40c369:	8b 45 08             	mov    0x8(%ebp),%eax
40c36c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40c372:	e9 5c fd ff ff       	jmp    0x40c0d3
40c377:	8d 0c 7b             	lea    (%ebx,%edi,2),%ecx
40c37a:	8d 51 02             	lea    0x2(%ecx),%edx
40c37d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c380:	66 8b 01             	mov    (%ecx),%ax
40c383:	83 c1 02             	add    $0x2,%ecx
40c386:	66 85 c0             	test   %ax,%ax
40c389:	75 f5                	jne    0x40c380
40c38b:	2b ca                	sub    %edx,%ecx
40c38d:	d1 f9                	sar    $1,%ecx
40c38f:	03 f1                	add    %ecx,%esi
40c391:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c394:	85 f6                	test   %esi,%esi
40c396:	0f 89 04 ff ff ff    	jns    0x40c2a0
40c39c:	33 f6                	xor    %esi,%esi
40c39e:	e9 fd fe ff ff       	jmp    0x40c2a0
40c3a3:	8d 3c 7b             	lea    (%ebx,%edi,2),%edi
40c3a6:	8b f7                	mov    %edi,%esi
40c3a8:	8d 4e 02             	lea    0x2(%esi),%ecx
40c3ab:	eb 03                	jmp    0x40c3b0
40c3ad:	8d 49 00             	lea    0x0(%ecx),%ecx
40c3b0:	66 8b 06             	mov    (%esi),%ax
40c3b3:	83 c6 02             	add    $0x2,%esi
40c3b6:	66 85 c0             	test   %ax,%ax
40c3b9:	75 f5                	jne    0x40c3b0
40c3bb:	eb a0                	jmp    0x40c35d
40c3bd:	8b cb                	mov    %ebx,%ecx
40c3bf:	8d 51 02             	lea    0x2(%ecx),%edx
40c3c2:	66 8b 01             	mov    (%ecx),%ax
40c3c5:	83 c1 02             	add    $0x2,%ecx
40c3c8:	66 85 c0             	test   %ax,%ax
40c3cb:	75 f5                	jne    0x40c3c2
40c3cd:	2b ca                	sub    %edx,%ecx
40c3cf:	d1 f9                	sar    $1,%ecx
40c3d1:	e9 73 fe ff ff       	jmp    0x40c249
40c3d6:	8b fb                	mov    %ebx,%edi
40c3d8:	8d 4f 02             	lea    0x2(%edi),%ecx
40c3db:	eb 03                	jmp    0x40c3e0
40c3dd:	8d 49 00             	lea    0x0(%ecx),%ecx
40c3e0:	66 8b 07             	mov    (%edi),%ax
40c3e3:	83 c7 02             	add    $0x2,%edi
40c3e6:	66 85 c0             	test   %ax,%ax
40c3e9:	75 f5                	jne    0x40c3e0
40c3eb:	2b f9                	sub    %ecx,%edi
40c3ed:	d1 ff                	sar    $1,%edi
40c3ef:	e9 79 fe ff ff       	jmp    0x40c26d
40c3f4:	8b cf                	mov    %edi,%ecx
40c3f6:	e8 65 18 00 00       	call   0x40dc60
40c3fb:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40c3fe:	e8 5d 18 00 00       	call   0x40dc60
40c403:	c3                   	ret
40c404:	cc                   	int3
40c405:	cc                   	int3
40c406:	cc                   	int3
40c407:	cc                   	int3
40c408:	cc                   	int3
40c409:	cc                   	int3
40c40a:	cc                   	int3
40c40b:	cc                   	int3
40c40c:	cc                   	int3
40c40d:	cc                   	int3
40c40e:	cc                   	int3
40c40f:	cc                   	int3
40c410:	8b ff                	mov    %edi,%edi
40c412:	55                   	push   %ebp
40c413:	8b ec                	mov    %esp,%ebp
40c415:	83 ec 14             	sub    $0x14,%esp
40c418:	53                   	push   %ebx
40c419:	56                   	push   %esi
40c41a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c41d:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40c424:	57                   	push   %edi
40c425:	33 c9                	xor    %ecx,%ecx
40c427:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c42a:	e8 61 f7 ff ff       	call   0x40bb90
40c42f:	8b d8                	mov    %eax,%ebx
40c431:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40c434:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40c43a:	66 83 39 00          	cmpw   $0x0,(%ecx)
40c43e:	74 2d                	je     0x40c46d
40c440:	b9 01 00 00 00       	mov    $0x1,%ecx
40c445:	e8 26 08 00 00       	call   0x40cc70
40c44a:	3d 00 40 00 00       	cmp    $0x4000,%eax
40c44f:	74 2b                	je     0x40c47c
40c451:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c454:	8b ce                	mov    %esi,%ecx
40c456:	e8 75 1a 00 00       	call   0x40ded0
40c45b:	85 c0                	test   %eax,%eax
40c45d:	0f 85 e7 00 00 00    	jne    0x40c54a
40c463:	50                   	push   %eax
40c464:	33 d2                	xor    %edx,%edx