40c041:	85 c0                	test   %eax,%eax
40c043:	0f 84 fd 01 00 00    	je     0x40c246
40c049:	6a 20                	push   $0x20
40c04b:	5a                   	pop    %edx
40c04c:	eb 06                	jmp    0x40c054
40c04e:	81 c7 ff ff 00 00    	add    $0xffff,%edi
40c054:	a1 48 26 43 00       	mov    0x432648,%eax
40c059:	0f b7 cf             	movzwl %di,%ecx
40c05c:	66 39 14 48          	cmp    %dx,(%eax,%ecx,2)
40c060:	74 ec                	je     0x40c04e
40c062:	e9 d0 00 00 00       	jmp    0x40c137
40c067:	0f b7 05 38 13 41 00 	movzwl 0x411338,%eax
40c06e:	8d 4f 01             	lea    0x1(%edi),%ecx
40c071:	3b c8                	cmp    %eax,%ecx
40c073:	0f 87 e2 00 00 00    	ja     0x40c15b
40c079:	47                   	inc    %edi
40c07a:	66 3b 3d 3c 13 41 00 	cmp    0x41133c,%di
40c081:	77 12                	ja     0x40c095
40c083:	a1 48 26 43 00       	mov    0x432648,%eax
40c088:	0f b7 cf             	movzwl %di,%ecx
40c08b:	66 39 14 48          	cmp    %dx,(%eax,%ecx,2)
40c08f:	0f 85 c6 00 00 00    	jne    0x40c15b
40c095:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40c09c:	75 18                	jne    0x40c0b6
40c09e:	0f b7 05 c4 1f 43 00 	movzwl 0x431fc4,%eax
40c0a5:	8b d6                	mov    %esi,%edx
40c0a7:	6a 00                	push   $0x0
40c0a9:	6a 00                	push   $0x0
40c0ab:	50                   	push   %eax
40c0ac:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c0b1:	e8 61 06 00 00       	call   0x40c717
40c0b6:	0f b7 c7             	movzwl %di,%eax
40c0b9:	48                   	dec    %eax
40c0ba:	99                   	cltd
40c0bb:	f7 3d b0 10 41 00    	idivl  0x4110b0
40c0c1:	6a 00                	push   $0x0
40c0c3:	0f af 05 b0 10 41 00 	imul   0x4110b0,%eax
40c0ca:	6a 28                	push   $0x28
40c0cc:	68 00 01 00 00       	push   $0x100
40c0d1:	56                   	push   %esi
40c0d2:	66 a3 c4 1f 43 00    	mov    %ax,0x431fc4
40c0d8:	e9 e5 fa ff ff       	jmp    0x40bbc2
40c0dd:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c0e3:	8b cf                	mov    %edi,%ecx
40c0e5:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40c0ec:	2b ca                	sub    %edx,%ecx
40c0ee:	3b c8                	cmp    %eax,%ecx
40c0f0:	7c 69                	jl     0x40c15b
40c0f2:	2b fa                	sub    %edx,%edi
40c0f4:	66 3b 3d 80 26 43 00 	cmp    0x432680,%di
40c0fb:	73 5e                	jae    0x40c15b
40c0fd:	51                   	push   %ecx
40c0fe:	f7 da                	neg    %edx
40c100:	56                   	push   %esi
40c101:	89 54 24 18          	mov    %edx,0x18(%esp)
40c105:	ff 15 48 32 43 00    	call   *0x433248
40c10b:	8b 54 24 14          	mov    0x14(%esp),%edx
40c10f:	8b c8                	mov    %eax,%ecx
40c111:	e8 69 04 00 00       	call   0x40c57f
40c116:	85 c0                	test   %eax,%eax
40c118:	0f 84 28 01 00 00    	je     0x40c246
40c11e:	6a 20                	push   $0x20
40c120:	5a                   	pop    %edx
40c121:	eb 06                	jmp    0x40c129
40c123:	81 c7 ff ff 00 00    	add    $0xffff,%edi
40c129:	a1 48 26 43 00       	mov    0x432648,%eax
40c12e:	0f b7 cf             	movzwl %di,%ecx
40c131:	66 39 14 48          	cmp    %dx,(%eax,%ecx,2)
40c135:	74 ec                	je     0x40c123
40c137:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40c13e:	66 89 3d c4 1f 43 00 	mov    %di,0x431fc4
40c145:	74 0a                	je     0x40c151
40c147:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c14c:	e8 85 11 00 00       	call   0x40d2d6
40c151:	c7 05 5c 1f 43 00 01 	movl   $0x1,0x431f5c
40c158:	00 00 00
40c15b:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40c162:	75 18                	jne    0x40c17c
40c164:	0f b7 05 c4 1f 43 00 	movzwl 0x431fc4,%eax
40c16b:	8b d6                	mov    %esi,%edx
40c16d:	6a 00                	push   $0x0
40c16f:	6a 00                	push   $0x0
40c171:	50                   	push   %eax
40c172:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c177:	e8 9b 05 00 00       	call   0x40c717
40c17c:	6a 20                	push   $0x20
40c17e:	5a                   	pop    %edx
40c17f:	eb 0f                	jmp    0x40c190
40c181:	66 3b 3d 80 26 43 00 	cmp    0x432680,%di
40c188:	76 14                	jbe    0x40c19e
40c18a:	81 c7 ff ff 00 00    	add    $0xffff,%edi
40c190:	a1 48 26 43 00       	mov    0x432648,%eax
40c195:	0f b7 cf             	movzwl %di,%ecx
40c198:	66 39 14 48          	cmp    %dx,(%eax,%ecx,2)
40c19c:	74 e3                	je     0x40c181
40c19e:	83 3d 5c 1f 43 00 00 	cmpl   $0x0,0x431f5c
40c1a5:	75 19                	jne    0x40c1c0
40c1a7:	83 3d bc 1f 43 00 01 	cmpl   $0x1,0x431fbc
40c1ae:	75 10                	jne    0x40c1c0
40c1b0:	6a 00                	push   $0x0
40c1b2:	8b d7                	mov    %edi,%edx
40c1b4:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c1b9:	e8 9e 0c 00 00       	call   0x40ce5c
40c1be:	eb 49                	jmp    0x40c209
40c1c0:	ff 35 10 19 43 00    	push   0x431910
40c1c6:	83 25 b0 1f 43 00 00 	andl   $0x0,0x431fb0
40c1cd:	ff 15 f0 32 43 00    	call   *0x4332f0
40c1d3:	8b f0                	mov    %eax,%esi
40c1d5:	8b d7                	mov    %edi,%edx
40c1d7:	6a 01                	push   $0x1
40c1d9:	8b ce                	mov    %esi,%ecx
40c1db:	e8 3e 11 00 00       	call   0x40d31e
40c1e0:	56                   	push   %esi
40c1e1:	ff 35 10 19 43 00    	push   0x431910
40c1e7:	ff 15 08 33 43 00    	call   *0x433308
40c1ed:	8b 74 24 0c          	mov    0xc(%esp),%esi
40c1f1:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c1f6:	6a 01                	push   $0x1
40c1f8:	6a 01                	push   $0x1
40c1fa:	57                   	push   %edi
40c1fb:	8b d6                	mov    %esi,%edx
40c1fd:	e8 15 05 00 00       	call   0x40c717
40c202:	66 89 3d c4 1f 43 00 	mov    %di,0x431fc4
40c209:	6a 6c                	push   $0x6c
40c20b:	56                   	push   %esi
40c20c:	ff 15 48 32 43 00    	call   *0x433248
40c212:	50                   	push   %eax
40c213:	ff 15 14 33 43 00    	call   *0x433314
40c219:	68 cc 00 00 00       	push   $0xcc
40c21e:	56                   	push   %esi
40c21f:	8b f8                	mov    %eax,%edi
40c221:	ff 15 48 32 43 00    	call   *0x433248
40c227:	50                   	push   %eax
40c228:	ff 15 14 33 43 00    	call   *0x433314
40c22e:	6a 01                	push   $0x1
40c230:	6a 00                	push   $0x0
40c232:	57                   	push   %edi
40c233:	8b f0                	mov    %eax,%esi
40c235:	ff 15 fc 31 43 00    	call   *0x4331fc
40c23b:	6a 01                	push   $0x1
40c23d:	6a 00                	push   $0x0
40c23f:	56                   	push   %esi
40c240:	ff 15 fc 31 43 00    	call   *0x4331fc
40c246:	33 c0                	xor    %eax,%eax
40c248:	8b 8c 24 94 02 00 00 	mov    0x294(%esp),%ecx
40c24f:	5f                   	pop    %edi
40c250:	5e                   	pop    %esi
40c251:	33 cc                	xor    %esp,%ecx
40c253:	e8 d8 41 00 00       	call   0x410430
40c258:	8b e5                	mov    %ebp,%esp
40c25a:	5d                   	pop    %ebp
40c25b:	c2 10 00             	ret    $0x10
40c25e:	8b ff                	mov    %edi,%edi
40c260:	55                   	push   %ebp
40c261:	8b ec                	mov    %esp,%ebp
40c263:	83 ec 44             	sub    $0x44,%esp
40c266:	a1 64 10 41 00       	mov    0x411064,%eax
40c26b:	33 c5                	xor    %ebp,%eax
40c26d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c270:	53                   	push   %ebx
40c271:	56                   	push   %esi
40c272:	8b c1                	mov    %ecx,%eax
40c274:	57                   	push   %edi
40c275:	50                   	push   %eax
40c276:	89 45 bc             	mov    %eax,-0x44(%ebp)
40c279:	ff 15 f0 32 43 00    	call   *0x4332f0
40c27f:	ff 35 cc 1f 43 00    	push   0x431fcc
40c285:	8b d8                	mov    %eax,%ebx
40c287:	53                   	push   %ebx
40c288:	ff 15 ac 30 43 00    	call   *0x4330ac
40c28e:	8b f0                	mov    %eax,%esi
40c290:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c293:	50                   	push   %eax
40c294:	53                   	push   %ebx
40c295:	ff 15 98 30 43 00    	call   *0x433098
40c29b:	0f b6 7d f8          	movzbl -0x8(%ebp),%edi
40c29f:	56                   	push   %esi
40c2a0:	53                   	push   %ebx
40c2a1:	ff 15 ac 30 43 00    	call   *0x4330ac
40c2a7:	53                   	push   %ebx
40c2a8:	ff 75 bc             	push   -0x44(%ebp)
40c2ab:	ff 15 08 33 43 00    	call   *0x433308
40c2b1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c2b4:	8b c7                	mov    %edi,%eax
40c2b6:	5f                   	pop    %edi
40c2b7:	5e                   	pop    %esi
40c2b8:	33 cd                	xor    %ebp,%ecx
40c2ba:	5b                   	pop    %ebx
40c2bb:	e8 70 41 00 00       	call   0x410430
40c2c0:	c9                   	leave
40c2c1:	c3                   	ret
40c2c2:	8b ff                	mov    %edi,%edi
40c2c4:	55                   	push   %ebp
40c2c5:	8b ec                	mov    %esp,%ebp
40c2c7:	83 ec 28             	sub    $0x28,%esp
40c2ca:	a1 64 10 41 00       	mov    0x411064,%eax
40c2cf:	33 c5                	xor    %ebp,%eax
40c2d1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c2d4:	53                   	push   %ebx
40c2d5:	56                   	push   %esi
40c2d6:	8b f2                	mov    %edx,%esi
40c2d8:	33 db                	xor    %ebx,%ebx
40c2da:	33 d2                	xor    %edx,%edx
40c2dc:	42                   	inc    %edx
40c2dd:	f7 05 18 19 43 00 00 	testl  $0x20000000,0x431918
40c2e4:	00 00 20
40c2e7:	57                   	push   %edi
40c2e8:	8b 7d 08             	mov    0x8(%ebp),%edi
40c2eb:	74 4f                	je     0x40c33c
40c2ed:	e8 6c ff ff ff       	call   0x40c25e
40c2f2:	6a 01                	push   $0x1
40c2f4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c2f7:	51                   	push   %ecx
40c2f8:	50                   	push   %eax
40c2f9:	ff 15 78 30 43 00    	call   *0x433078
40c2ff:	85 c0                	test   %eax,%eax
40c301:	74 04                	je     0x40c307
40c303:	0f b7 5d dc          	movzwl -0x24(%ebp),%ebx
40c307:	6a 01                	push   $0x1
40c309:	57                   	push   %edi
40c30a:	6a 01                	push   $0x1
40c30c:	56                   	push   %esi
40c30d:	6a 00                	push   $0x0
40c30f:	0f b7 c3             	movzwl %bx,%eax
40c312:	50                   	push   %eax
40c313:	ff 15 d0 31 43 00    	call   *0x4331d0
40c319:	33 db                	xor    %ebx,%ebx
40c31b:	8b d0                	mov    %eax,%edx
40c31d:	43                   	inc    %ebx
40c31e:	3b d3                	cmp    %ebx,%edx
40c320:	74 1a                	je     0x40c33c
40c322:	53                   	push   %ebx
40c323:	57                   	push   %edi
40c324:	53                   	push   %ebx
40c325:	56                   	push   %esi
40c326:	6a 00                	push   $0x0
40c328:	6a 00                	push   $0x0
40c32a:	ff 15 d0 31 43 00    	call   *0x4331d0
40c330:	8b d0                	mov    %eax,%edx
40c332:	3b d3                	cmp    %ebx,%edx
40c334:	74 06                	je     0x40c33c
40c336:	0f b6 06             	movzbl (%esi),%eax
40c339:	66 89 07             	mov    %ax,(%edi)
40c33c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40c33f:	8b c2                	mov    %edx,%eax
40c341:	5f                   	pop    %edi
40c342:	5e                   	pop    %esi
40c343:	33 cd                	xor    %ebp,%ecx
40c345:	5b                   	pop    %ebx
40c346:	e8 e5 40 00 00       	call   0x410430
40c34b:	c9                   	leave
40c34c:	c2 04 00             	ret    $0x4
40c34f:	8b ff                	mov    %edi,%edi
40c351:	55                   	push   %ebp
40c352:	8b ec                	mov    %esp,%ebp
40c354:	83 ec 24             	sub    $0x24,%esp
40c357:	a1 64 10 41 00       	mov    0x411064,%eax
40c35c:	33 c5                	xor    %ebp,%eax
40c35e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c361:	53                   	push   %ebx
40c362:	56                   	push   %esi
40c363:	57                   	push   %edi
40c364:	8b 7d 08             	mov    0x8(%ebp),%edi
40c367:	8b f2                	mov    %edx,%esi
40c369:	33 db                	xor    %ebx,%ebx
40c36b:	e8 ee fe ff ff       	call   0x40c25e
40c370:	6a 01                	push   $0x1
40c372:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40c375:	51                   	push   %ecx
40c376:	50                   	push   %eax
40c377:	ff 15 78 30 43 00    	call   *0x433078
40c37d:	85 c0                	test   %eax,%eax
40c37f:	74 04                	je     0x40c385
40c381:	0f b7 5d e0          	movzwl -0x20(%ebp),%ebx
40c385:	6a 00                	push   $0x0
40c387:	6a 00                	push   $0x0
40c389:	6a 01                	push   $0x1
40c38b:	57                   	push   %edi
40c38c:	6a 01                	push   $0x1
40c38e:	56                   	push   %esi
40c38f:	68 00 04 00 00       	push   $0x400
40c394:	0f b7 c3             	movzwl %bx,%eax
40c397:	50                   	push   %eax
40c398:	ff 15 b0 31 43 00    	call   *0x4331b0
40c39e:	8b c8                	mov    %eax,%ecx
40c3a0:	85 c9                	test   %ecx,%ecx
40c3a2:	75 1e                	jne    0x40c3c2
40c3a4:	50                   	push   %eax
40c3a5:	50                   	push   %eax
40c3a6:	6a 01                	push   $0x1
40c3a8:	57                   	push   %edi
40c3a9:	6a 01                	push   $0x1
40c3ab:	56                   	push   %esi
40c3ac:	68 00 04 00 00       	push   $0x400
40c3b1:	50                   	push   %eax
40c3b2:	ff 15 b0 31 43 00    	call   *0x4331b0
40c3b8:	8b c8                	mov    %eax,%ecx
40c3ba:	85 c9                	test   %ecx,%ecx
40c3bc:	75 04                	jne    0x40c3c2
40c3be:	8a 06                	mov    (%esi),%al
40c3c0:	88 07                	mov    %al,(%edi)
40c3c2:	8b c1                	mov    %ecx,%eax
40c3c4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c3c7:	5f                   	pop    %edi
40c3c8:	5e                   	pop    %esi
40c3c9:	33 cd                	xor    %ebp,%ecx
40c3cb:	5b                   	pop    %ebx
40c3cc:	e8 5f 40 00 00       	call   0x410430
40c3d1:	c9                   	leave
40c3d2:	c2 04 00             	ret    $0x4
40c3d5:	8b ff                	mov    %edi,%edi
40c3d7:	55                   	push   %ebp
40c3d8:	8b ec                	mov    %esp,%ebp
40c3da:	53                   	push   %ebx
40c3db:	56                   	push   %esi
40c3dc:	0f b7 35 c4 1f 43 00 	movzwl 0x431fc4,%esi
40c3e3:	8b d9                	mov    %ecx,%ebx
40c3e5:	57                   	push   %edi
40c3e6:	6a 6c                	push   $0x6c
40c3e8:	53                   	push   %ebx
40c3e9:	8b fa                	mov    %edx,%edi
40c3eb:	ff 15 14 33 43 00    	call   *0x433314
40c3f1:	85 ff                	test   %edi,%edi
40c3f3:	74 79                	je     0x40c46e
40c3f5:	83 ff 01             	cmp    $0x1,%edi
40c3f8:	74 6c                	je     0x40c466
40c3fa:	83 ff 02             	cmp    $0x2,%edi
40c3fd:	74 62                	je     0x40c461
40c3ff:	83 ff 03             	cmp    $0x3,%edi
40c402:	74 2a                	je     0x40c42e
40c404:	8d 47 fc             	lea    -0x4(%edi),%eax
40c407:	83 f8 01             	cmp    $0x1,%eax
40c40a:	0f 87 f9 00 00 00    	ja     0x40c509
40c410:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c416:	0f af 55 08          	imul   0x8(%ebp),%edx
40c41a:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40c421:	2b d0                	sub    %eax,%edx
40c423:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40c42a:	03 d0                	add    %eax,%edx
40c42c:	eb 48                	jmp    0x40c476
40c42e:	33 d2                	xor    %edx,%edx
40c430:	51                   	push   %ecx
40c431:	8b cb                	mov    %ebx,%ecx
40c433:	e8 d8 00 00 00       	call   0x40c510
40c438:	85 c0                	test   %eax,%eax
40c43a:	0f 84 c9 00 00 00    	je     0x40c509
40c440:	0f b7 35 c4 1f 43 00 	movzwl 0x431fc4,%esi
40c447:	8b 15 48 26 43 00    	mov    0x432648,%edx
40c44d:	8b c6                	mov    %esi,%eax
40c44f:	6a 20                	push   $0x20