40c0fa:	96                   	xchg   %eax,%esi
40c0fb:	e8 18 fb ff ff       	call   0x40bc18
40c100:	61                   	popa
40c101:	c3                   	ret
40c102:	8b c0                	mov    %eax,%eax
40c104:	e8 47 00 00 00       	call   0x40c150
40c109:	8b 50 24             	mov    0x24(%eax),%edx
40c10c:	81 e2 00 00 c4 00    	and    $0xc40000,%edx
40c112:	0f 95 c2             	setne  %dl
40c115:	8b 40 28             	mov    0x28(%eax),%eax
40c118:	25 00 02 00 00       	and    $0x200,%eax
40c11d:	0f 95 c0             	setne  %al
40c120:	08 d0                	or     %dl,%al
40c122:	c3                   	ret
40c123:	90                   	nop
40c124:	f6 40 34 02          	testb  $0x2,0x34(%eax)
40c128:	0f 94 c0             	sete   %al
40c12b:	c3                   	ret
40c12c:	53                   	push   %ebx
40c12d:	89 c3                	mov    %eax,%ebx
40c12f:	e8 f0 ff ff ff       	call   0x40c124
40c134:	38 d0                	cmp    %dl,%al
40c136:	74 14                	je     0x40c14c
40c138:	d0 e0                	shl    $1,%al
40c13a:	80 63 34 fd          	andb   $0xfd,0x34(%ebx)
40c13e:	08 43 34             	or     %al,0x34(%ebx)
40c141:	93                   	xchg   %eax,%ebx
40c142:	ba a0 84 40 00       	mov    $0x4084a0,%edx
40c147:	e8 ec d8 ff ff       	call   0x409a38
40c14c:	5b                   	pop    %ebx
40c14d:	c3                   	ret
40c14e:	8b c0                	mov    %eax,%eax
40c150:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c153:	e3 25                	jecxz  0x40c17a
40c155:	53                   	push   %ebx
40c156:	93                   	xchg   %eax,%ebx
40c157:	6a e6                	push   $0xffffffe6
40c159:	51                   	push   %ecx
40c15a:	6a ec                	push   $0xffffffec
40c15c:	51                   	push   %ecx
40c15d:	6a f0                	push   $0xfffffff0
40c15f:	51                   	push   %ecx
40c160:	e8 47 8e ff ff       	call   0x404fac
40c165:	89 43 24             	mov    %eax,0x24(%ebx)
40c168:	e8 3f 8e ff ff       	call   0x404fac
40c16d:	89 43 28             	mov    %eax,0x28(%ebx)
40c170:	e8 27 8e ff ff       	call   0x404f9c
40c175:	89 43 20             	mov    %eax,0x20(%ebx)
40c178:	93                   	xchg   %eax,%ebx
40c179:	5b                   	pop    %ebx
40c17a:	c3                   	ret
40c17b:	90                   	nop
40c17c:	f6 80 13 01 00 00 08 	testb  $0x8,0x113(%eax)
40c183:	74 08                	je     0x40c18d
40c185:	f6 40 37 20          	testb  $0x20,0x37(%eax)
40c189:	0f 95 c0             	setne  %al
40c18c:	c3                   	ret
40c18d:	6a 00                	push   $0x0
40c18f:	6a 00                	push   $0x0
40c191:	68 f0 00 00 00       	push   $0xf0
40c196:	50                   	push   %eax
40c197:	e8 a0 03 00 00       	call   0x40c53c
40c19c:	c3                   	ret
40c19d:	8d 40 00             	lea    0x0(%eax),%eax
40c1a0:	f6 80 13 01 00 00 08 	testb  $0x8,0x113(%eax)
40c1a7:	74 0f                	je     0x40c1b8
40c1a9:	c0 e2 05             	shl    $0x5,%dl
40c1ac:	80 60 37 df          	andb   $0xdf,0x37(%eax)
40c1b0:	08 50 37             	or     %dl,0x37(%eax)
40c1b3:	e9 b4 f8 ff ff       	jmp    0x40ba6c
40c1b8:	6a 00                	push   $0x0
40c1ba:	0f b6 d2             	movzbl %dl,%edx
40c1bd:	52                   	push   %edx
40c1be:	68 f1 00 00 00       	push   $0xf1
40c1c3:	50                   	push   %eax
40c1c4:	e8 73 03 00 00       	call   0x40c53c
40c1c9:	c3                   	ret
40c1ca:	8b c0                	mov    %eax,%eax
40c1cc:	ff 70 24             	push   0x24(%eax)
40c1cf:	50                   	push   %eax
40c1d0:	80 60 26 fe          	andb   $0xfe,0x26(%eax)
40c1d4:	e8 53 fd ff ff       	call   0x40bf2c
40c1d9:	58                   	pop    %eax
40c1da:	8f 40 24             	pop    0x24(%eax)
40c1dd:	c3                   	ret
40c1de:	8b c0                	mov    %eax,%eax
40c1e0:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c1e3:	0f b7 49 48          	movzwl 0x48(%ecx),%ecx
40c1e7:	e3 11                	jecxz  0x40c1fa
40c1e9:	31 d2                	xor    %edx,%edx
40c1eb:	52                   	push   %edx
40c1ec:	52                   	push   %edx
40c1ed:	8d 54 24 04          	lea    0x4(%esp),%edx
40c1f1:	52                   	push   %edx
40c1f2:	51                   	push   %ecx
40c1f3:	50                   	push   %eax
40c1f4:	e8 43 03 00 00       	call   0x40c53c
40c1f9:	59                   	pop    %ecx
40c1fa:	91                   	xchg   %eax,%ecx
40c1fb:	c3                   	ret
40c1fc:	31 d2                	xor    %edx,%edx
40c1fe:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c201:	0f b7 49 44          	movzwl 0x44(%ecx),%ecx
40c205:	e3 1b                	jecxz  0x40c222
40c207:	66 81 f9 b0 00       	cmp    $0xb0,%cx
40c20c:	75 16                	jne    0x40c224
40c20e:	52                   	push   %edx
40c20f:	52                   	push   %edx
40c210:	89 e2                	mov    %esp,%edx
40c212:	52                   	push   %edx
40c213:	83 c2 04             	add    $0x4,%edx
40c216:	52                   	push   %edx
40c217:	51                   	push   %ecx
40c218:	50                   	push   %eax
40c219:	e8 1e 03 00 00       	call   0x40c53c
40c21e:	59                   	pop    %ecx
40c21f:	5a                   	pop    %edx
40c220:	29 d1                	sub    %edx,%ecx
40c222:	91                   	xchg   %eax,%ecx
40c223:	c3                   	ret
40c224:	52                   	push   %edx
40c225:	52                   	push   %edx
40c226:	51                   	push   %ecx
40c227:	50                   	push   %eax
40c228:	e8 0f 03 00 00       	call   0x40c53c
40c22d:	c3                   	ret
40c22e:	8b c0                	mov    %eax,%eax
40c230:	6a 00                	push   $0x0
40c232:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c235:	0f b7 49 2a          	movzwl 0x2a(%ecx),%ecx
40c239:	e3 0a                	jecxz  0x40c245
40c23b:	6a 00                	push   $0x0
40c23d:	51                   	push   %ecx
40c23e:	50                   	push   %eax
40c23f:	e8 f8 02 00 00       	call   0x40c53c
40c244:	50                   	push   %eax
40c245:	58                   	pop    %eax
40c246:	c3                   	ret
40c247:	90                   	nop
40c248:	52                   	push   %edx
40c249:	51                   	push   %ecx
40c24a:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c24d:	0f b7 49 4c          	movzwl 0x4c(%ecx),%ecx
40c251:	e3 08                	jecxz  0x40c25b
40c253:	51                   	push   %ecx
40c254:	50                   	push   %eax
40c255:	e8 e2 02 00 00       	call   0x40c53c
40c25a:	c3                   	ret
40c25b:	59                   	pop    %ecx
40c25c:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c25f:	0f b7 49 4e          	movzwl 0x4e(%ecx),%ecx
40c263:	e3 05                	jecxz  0x40c26a
40c265:	5a                   	pop    %edx
40c266:	6a 00                	push   $0x0
40c268:	eb 09                	jmp    0x40c273
40c26a:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c26d:	0f b7 49 50          	movzwl 0x50(%ecx),%ecx
40c271:	e3 10                	jecxz  0x40c283
40c273:	52                   	push   %edx
40c274:	eb dd                	jmp    0x40c253
40c276:	89 90 d2 00 00 00    	mov    %edx,0xd2(%eax)
40c27c:	e8 eb f7 ff ff       	call   0x40ba6c
40c281:	59                   	pop    %ecx
40c282:	c3                   	ret
40c283:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c286:	0f b7 49 52          	movzwl 0x52(%ecx),%ecx
40c28a:	e3 ea                	jecxz  0x40c276
40c28c:	52                   	push   %edx
40c28d:	54                   	push   %esp
40c28e:	6a 00                	push   $0x0
40c290:	51                   	push   %ecx
40c291:	50                   	push   %eax
40c292:	e8 a5 02 00 00       	call   0x40c53c
40c297:	59                   	pop    %ecx
40c298:	59                   	pop    %ecx
40c299:	c3                   	ret
40c29a:	8b c0                	mov    %eax,%eax
40c29c:	53                   	push   %ebx
40c29d:	93                   	xchg   %eax,%ebx
40c29e:	56                   	push   %esi
40c29f:	be e8 c2 40 00       	mov    $0x40c2e8,%esi
40c2a4:	31 c0                	xor    %eax,%eax
40c2a6:	66 ad                	lods   %ds:(%esi),%ax
40c2a8:	85 c0                	test   %eax,%eax
40c2aa:	74 4c                	je     0x40c2f8
40c2ac:	38 d0                	cmp    %dl,%al
40c2ae:	75 f6                	jne    0x40c2a6
40c2b0:	84 63 3c             	test   %ah,0x3c(%ebx)
40c2b3:	74 43                	je     0x40c2f8
40c2b5:	84 c9                	test   %cl,%cl
40c2b7:	75 2a                	jne    0x40c2e3
40c2b9:	88 e6                	mov    %ah,%dh
40c2bb:	52                   	push   %edx
40c2bc:	93                   	xchg   %eax,%ebx
40c2bd:	e8 7e fc ff ff       	call   0x40bf40
40c2c2:	96                   	xchg   %eax,%esi
40c2c3:	58                   	pop    %eax
40c2c4:	3c 09                	cmp    $0x9,%al
40c2c6:	75 0e                	jne    0x40c2d6
40c2c8:	50                   	push   %eax
40c2c9:	6a 10                	push   $0x10
40c2cb:	e8 90 87 ff ff       	call   0x404a60
40c2d0:	5a                   	pop    %edx
40c2d1:	80 e4 80             	and    $0x80,%ah
40c2d4:	08 f4                	or     %dh,%ah
40c2d6:	00 e4                	add    %ah,%ah
40c2d8:	19 d2                	sbb    %edx,%edx
40c2da:	01 d2                	add    %edx,%edx
40c2dc:	42                   	inc    %edx
40c2dd:	96                   	xchg   %eax,%esi
40c2de:	e8 95 c3 ff ff       	call   0x408678
40c2e3:	b0 01                	mov    $0x1,%al
40c2e5:	5e                   	pop    %esi
40c2e6:	5b                   	pop    %ebx
40c2e7:	c3                   	ret
40c2e8:	09 01                	or     %eax,(%ecx)
40c2ea:	25 82 27 02 26       	and    $0x26022782,%eax
40c2ef:	84 28                	test   %ch,(%eax)
40c2f1:	04 21                	add    $0x21,%al
40c2f3:	88 22                	mov    %ah,(%edx)
40c2f5:	08 00                	or     %al,(%eax)
40c2f7:	00 31                	add    %dh,(%ecx)
40c2f9:	c0 5e 5b c3          	rcrb   $0xc3,0x5b(%esi)
40c2fd:	c3                   	ret
40c2fe:	8b c0                	mov    %eax,%eax
40c300:	50                   	push   %eax
40c301:	e8 3a fc ff ff       	call   0x40bf40
40c306:	85 c0                	test   %eax,%eax
40c308:	74 07                	je     0x40c311
40c30a:	c7 40 70 9c c2 40 00 	movl   $0x40c29c,0x70(%eax)
40c311:	58                   	pop    %eax
40c312:	c3                   	ret
40c313:	90                   	nop
40c314:	53                   	push   %ebx
40c315:	93                   	xchg   %eax,%ebx
40c316:	8b 83 d2 00 00 00    	mov    0xd2(%ebx),%eax
40c31c:	8b 4b 4c             	mov    0x4c(%ebx),%ecx
40c31f:	0f b7 49 4a          	movzwl 0x4a(%ecx),%ecx
40c323:	e3 1d                	jecxz  0x40c342
40c325:	31 c0                	xor    %eax,%eax
40c327:	99                   	cltd
40c328:	66 81 f9 0c 10       	cmp    $0x100c,%cx
40c32d:	75 04                	jne    0x40c333
40c32f:	40                   	inc    %eax
40c330:	40                   	inc    %eax
40c331:	eb 05                	jmp    0x40c338
40c333:	80 f9 bb             	cmp    $0xbb,%cl
40c336:	75 01                	jne    0x40c339
40c338:	4a                   	dec    %edx
40c339:	50                   	push   %eax
40c33a:	52                   	push   %edx
40c33b:	51                   	push   %ecx
40c33c:	53                   	push   %ebx
40c33d:	e8 fa 01 00 00       	call   0x40c53c
40c342:	5b                   	pop    %ebx
40c343:	c3                   	ret
40c344:	8b 48 4c             	mov    0x4c(%eax),%ecx
40c347:	0f b7 49 4e          	movzwl 0x4e(%ecx),%ecx
40c34b:	e3 33                	jecxz  0x40c380
40c34d:	51                   	push   %ecx
40c34e:	50                   	push   %eax
40c34f:	6a 00                	push   $0x0
40c351:	52                   	push   %edx
40c352:	51                   	push   %ecx
40c353:	50                   	push   %eax
40c354:	e8 e3 01 00 00       	call   0x40c53c
40c359:	5a                   	pop    %edx
40c35a:	59                   	pop    %ecx
40c35b:	66 81 f9 0c 13       	cmp    $0x130c,%cx
40c360:	75 1d                	jne    0x40c37f
40c362:	89 82 d2 00 00 00    	mov    %eax,0xd2(%edx)
40c368:	68 d9 fd ff ff       	push   $0xfffffdd9
40c36d:	52                   	push   %edx
40c36e:	ff 72 1c             	push   0x1c(%edx)
40c371:	54                   	push   %esp
40c372:	6a 00                	push   $0x0
40c374:	6a 4e                	push   $0x4e
40c376:	52                   	push   %edx
40c377:	e8 c0 01 00 00       	call   0x40c53c
40c37c:	83 c4 0c             	add    $0xc,%esp
40c37f:	c3                   	ret
40c380:	41                   	inc    %ecx
40c381:	e8 c2 fe ff ff       	call   0x40c248
40c386:	c3                   	ret
40c387:	90                   	nop
40c388:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
40c38e:	e3 12                	jecxz  0x40c3a2
40c390:	51                   	push   %ecx
40c391:	92                   	xchg   %eax,%edx
40c392:	89 ca                	mov    %ecx,%edx
40c394:	50                   	push   %eax
40c395:	e8 8e e4 ff ff       	call   0x40a828
40c39a:	58                   	pop    %eax
40c39b:	c6 40 49 01          	movb   $0x1,0x49(%eax)
40c39f:	59                   	pop    %ecx
40c3a0:	91                   	xchg   %eax,%ecx
40c3a1:	c3                   	ret
40c3a2:	8b 4a 1c             	mov    0x1c(%edx),%ecx
40c3a5:	41                   	inc    %ecx
40c3a6:	e2 f8                	loop   0x40c3a0
40c3a8:	e8 97 18 00 00       	call   0x40dc44
40c3ad:	50                   	push   %eax
40c3ae:	e8 95 86 ff ff       	call   0x404a48
40c3b3:	c3                   	ret
40c3b4:	53                   	push   %ebx
40c3b5:	56                   	push   %esi
40c3b6:	89 c3                	mov    %eax,%ebx
40c3b8:	e8 b7 18 00 00       	call   0x40dc74
40c3bd:	8b b3 ca 00 00 00    	mov    0xca(%ebx),%esi
40c3c3:	85 f6                	test   %esi,%esi
40c3c5:	75 45                	jne    0x40c40c
40c3c7:	31 c0                	xor    %eax,%eax
40c3c9:	e8 9e ac ff ff       	call   0x40706c
40c3ce:	89 83 ca 00 00 00    	mov    %eax,0xca(%ebx)
40c3d4:	89 58 18             	mov    %ebx,0x18(%eax)
40c3d7:	c7 40 41 88 c3 40 00 	movl   $0x40c388,0x41(%eax)
40c3de:	89 58 45             	mov    %ebx,0x45(%eax)
40c3e1:	96                   	xchg   %eax,%esi
40c3e2:	8b 8b a8 00 00 00    	mov    0xa8(%ebx),%ecx
40c3e8:	e3 22                	jecxz  0x40c40c
40c3ea:	8b 46 31             	mov    0x31(%esi),%eax
40c3ed:	89 ca                	mov    %ecx,%edx
40c3ef:	e8 b0 e0 ff ff       	call   0x40a4a4
40c3f4:	89 46 31             	mov    %eax,0x31(%esi)
40c3f7:	8b 8b ac 00 00 00    	mov    0xac(%ebx),%ecx
40c3fd:	e3 0d                	jecxz  0x40c40c
40c3ff:	8b 46 29             	mov    0x29(%esi),%eax
40c402:	89 ca                	mov    %ecx,%edx
40c404:	e8 9b e0 ff ff       	call   0x40a4a4
40c409:	89 46 29             	mov    %eax,0x29(%esi)
40c40c:	96                   	xchg   %eax,%esi
40c40d:	5e                   	pop    %esi
40c40e:	5b                   	pop    %ebx
40c40f:	c3                   	ret
40c410:	f6 40 34 40          	testb  $0x40,0x34(%eax)
40c414:	75 1f                	jne    0x40c435
40c416:	d0 e2                	shl    $1,%dl
40c418:	80 60 35 fd          	andb   $0xfd,0x35(%eax)
40c41c:	08 50 35             	or     %dl,0x35(%eax)
40c41f:	ba b4 7d 40 00       	mov    $0x407db4,%edx
40c424:	e8 0f d6 ff ff       	call   0x409a38
40c429:	8d 05 f4 99 40 00    	lea    0x4099f4,%eax
40c42f:	89 05 40 61 42 00    	mov    %eax,0x426140
40c435:	c3                   	ret
40c436:	8b c0                	mov    %eax,%eax
40c438:	8b 48 30             	mov    0x30(%eax),%ecx
40c43b:	e3 1e                	jecxz  0x40c45b
40c43d:	80 60 35 fe          	andb   $0xfe,0x35(%eax)
40c441:	84 d2                	test   %dl,%dl
40c443:	74 16                	je     0x40c45b