41c04c:	81 e1 18 01 00 00    	and    $0x118,%ecx
41c052:	31 0e                	xor    %ecx,(%esi)
41c054:	5f                   	pop    %edi
41c055:	8b c6                	mov    %esi,%eax
41c057:	5e                   	pop    %esi
41c058:	c9                   	leave
41c059:	c2 04 00             	ret    $0x4
41c05c:	8b ff                	mov    %edi,%edi
41c05e:	55                   	push   %ebp
41c05f:	8b ec                	mov    %esp,%ebp
41c061:	83 ec 10             	sub    $0x10,%esp
41c064:	56                   	push   %esi
41c065:	8b f1                	mov    %ecx,%esi
41c067:	8b 16                	mov    (%esi),%edx
41c069:	f6 c2 02             	test   $0x2,%dl
41c06c:	75 0b                	jne    0x41c079
41c06e:	8d 45 f0             	lea    -0x10(%ebp),%eax
41c071:	50                   	push   %eax
41c072:	e8 f9 fe ff ff       	call   0x41bf70
41c077:	8b 10                	mov    (%eax),%edx
41c079:	33 c0                	xor    %eax,%eax
41c07b:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
41c07f:	51                   	push   %ecx
41c080:	89 45 f8             	mov    %eax,-0x8(%ebp)
41c083:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
41c087:	51                   	push   %ecx
41c088:	50                   	push   %eax
41c089:	8d 45 f8             	lea    -0x8(%ebp),%eax
41c08c:	50                   	push   %eax
41c08d:	8b c2                	mov    %edx,%eax
41c08f:	8d 4e 08             	lea    0x8(%esi),%ecx
41c092:	c1 e8 08             	shr    $0x8,%eax
41c095:	c1 ea 07             	shr    $0x7,%edx
41c098:	83 e0 01             	and    $0x1,%eax
41c09b:	83 e2 01             	and    $0x1,%edx
41c09e:	50                   	push   %eax
41c09f:	52                   	push   %edx
41c0a0:	ba 9e bb 0d 01       	mov    $0x10dbb9e,%edx
41c0a5:	e8 5c 39 ff ff       	call   0x40fa06
41c0aa:	5e                   	pop    %esi
41c0ab:	c9                   	leave
41c0ac:	c2 0c 00             	ret    $0xc
41c0af:	8b ff                	mov    %edi,%edi
41c0b1:	55                   	push   %ebp
41c0b2:	8b ec                	mov    %esp,%ebp
41c0b4:	56                   	push   %esi
41c0b5:	57                   	push   %edi
41c0b6:	ff 75 0c             	push   0xc(%ebp)
41c0b9:	b9 9e bb 0d 01       	mov    $0x10dbb9e,%ecx
41c0be:	e8 f3 34 ff ff       	call   0x40f5b6
41c0c3:	8b 7d 08             	mov    0x8(%ebp),%edi
41c0c6:	8b d0                	mov    %eax,%edx
41c0c8:	8b f2                	mov    %edx,%esi
41c0ca:	25 80 00 00 00       	and    $0x80,%eax
41c0cf:	83 e6 40             	and    $0x40,%esi
41c0d2:	c1 e6 02             	shl    $0x2,%esi
41c0d5:	83 27 00             	andl   $0x0,(%edi)
41c0d8:	83 67 04 00          	andl   $0x0,0x4(%edi)
41c0dc:	8b 0f                	mov    (%edi),%ecx
41c0de:	81 e1 7f fe ff ff    	and    $0xfffffe7f,%ecx
41c0e4:	0b f1                	or     %ecx,%esi
41c0e6:	0b f0                	or     %eax,%esi
41c0e8:	81 e2 3f ff ff ff    	and    $0xffffff3f,%edx
41c0ee:	74 08                	je     0x41c0f8
41c0f0:	83 fa 02             	cmp    $0x2,%edx
41c0f3:	0f 94 c0             	sete   %al
41c0f6:	eb 02                	jmp    0x41c0fa
41c0f8:	b0 01                	mov    $0x1,%al
41c0fa:	0f b6 d0             	movzbl %al,%edx
41c0fd:	83 e6 ef             	and    $0xffffffef,%esi
41c100:	c1 e2 04             	shl    $0x4,%edx
41c103:	0b d6                	or     %esi,%edx
41c105:	0f b6 c8             	movzbl %al,%ecx
41c108:	83 e2 f7             	and    $0xfffffff7,%edx
41c10b:	c1 e1 03             	shl    $0x3,%ecx
41c10e:	0b d1                	or     %ecx,%edx
41c110:	8b c7                	mov    %edi,%eax
41c112:	89 17                	mov    %edx,(%edi)
41c114:	5f                   	pop    %edi
41c115:	5e                   	pop    %esi
41c116:	5d                   	pop    %ebp
41c117:	c2 08 00             	ret    $0x8
41c11a:	8b ff                	mov    %edi,%edi
41c11c:	51                   	push   %ecx
41c11d:	56                   	push   %esi
41c11e:	57                   	push   %edi
41c11f:	68 81 18 40 00       	push   $0x401881
41c124:	6a 10                	push   $0x10
41c126:	8b fa                	mov    %edx,%edi
41c128:	8b f1                	mov    %ecx,%esi
41c12a:	e8 f2 5e 00 00       	call   0x422021
41c12f:	59                   	pop    %ecx
41c130:	59                   	pop    %ecx
41c131:	85 c0                	test   %eax,%eax
41c133:	74 0a                	je     0x41c13f
41c135:	57                   	push   %edi
41c136:	8b c8                	mov    %eax,%ecx
41c138:	e8 b1 1a 00 00       	call   0x41dbee
41c13d:	eb 02                	jmp    0x41c141
41c13f:	33 c0                	xor    %eax,%eax
41c141:	89 06                	mov    %eax,(%esi)
41c143:	8b c6                	mov    %esi,%eax
41c145:	5f                   	pop    %edi
41c146:	5e                   	pop    %esi
41c147:	59                   	pop    %ecx
41c148:	c3                   	ret
41c149:	8b ff                	mov    %edi,%edi
41c14b:	55                   	push   %ebp
41c14c:	8b ec                	mov    %esp,%ebp
41c14e:	56                   	push   %esi
41c14f:	8b 75 10             	mov    0x10(%ebp),%esi
41c152:	33 c0                	xor    %eax,%eax
41c154:	38 05 12 5e 42 00    	cmp    %al,0x425e12
41c15a:	57                   	push   %edi
41c15b:	56                   	push   %esi
41c15c:	6a ff                	push   $0xffffffff
41c15e:	68 00 5d 42 00       	push   $0x425d00
41c163:	52                   	push   %edx
41c164:	8b f9                	mov    %ecx,%edi
41c166:	0f 94 c0             	sete   %al
41c169:	57                   	push   %edi
41c16a:	0d 00 00 80 00       	or     $0x800000,%eax
41c16f:	50                   	push   %eax
41c170:	68 00 04 00 00       	push   $0x400
41c175:	ff 15 28 61 42 00    	call   *0x426128
41c17b:	83 f8 ff             	cmp    $0xffffffff,%eax
41c17e:	74 0a                	je     0x41c18a
41c180:	83 3e 01             	cmpl   $0x1,(%esi)
41c183:	7c 05                	jl     0x41c18a
41c185:	8d 04 47             	lea    (%edi,%eax,2),%eax
41c188:	eb 02                	jmp    0x41c18c
41c18a:	33 c0                	xor    %eax,%eax
41c18c:	5f                   	pop    %edi
41c18d:	5e                   	pop    %esi
41c18e:	5d                   	pop    %ebp
41c18f:	c2 0c 00             	ret    $0xc
41c192:	8b ff                	mov    %edi,%edi
41c194:	55                   	push   %ebp
41c195:	8b ec                	mov    %esp,%ebp
41c197:	56                   	push   %esi
41c198:	8b 75 10             	mov    0x10(%ebp),%esi
41c19b:	33 c0                	xor    %eax,%eax
41c19d:	38 05 12 5e 42 00    	cmp    %al,0x425e12
41c1a3:	57                   	push   %edi
41c1a4:	56                   	push   %esi
41c1a5:	6a ff                	push   $0xffffffff
41c1a7:	ff 75 08             	push   0x8(%ebp)
41c1aa:	8b f9                	mov    %ecx,%edi
41c1ac:	0f 94 c0             	sete   %al
41c1af:	52                   	push   %edx
41c1b0:	57                   	push   %edi
41c1b1:	0d 00 00 40 00       	or     $0x400000,%eax
41c1b6:	50                   	push   %eax
41c1b7:	68 00 04 00 00       	push   $0x400
41c1bc:	ff 15 28 61 42 00    	call   *0x426128
41c1c2:	83 f8 ff             	cmp    $0xffffffff,%eax
41c1c5:	74 0a                	je     0x41c1d1
41c1c7:	83 3e 01             	cmpl   $0x1,(%esi)
41c1ca:	7c 05                	jl     0x41c1d1
41c1cc:	8d 04 47             	lea    (%edi,%eax,2),%eax
41c1cf:	eb 02                	jmp    0x41c1d3
41c1d1:	33 c0                	xor    %eax,%eax
41c1d3:	5f                   	pop    %edi
41c1d4:	5e                   	pop    %esi
41c1d5:	5d                   	pop    %ebp
41c1d6:	c2 0c 00             	ret    $0xc
41c1d9:	8b ff                	mov    %edi,%edi
41c1db:	55                   	push   %ebp
41c1dc:	8b ec                	mov    %esp,%ebp
41c1de:	83 ec 1c             	sub    $0x1c,%esp
41c1e1:	66 83 3d 00 5d 42 00 	cmpw   $0x0,0x425d00
41c1e8:	00
41c1e9:	53                   	push   %ebx
41c1ea:	56                   	push   %esi
41c1eb:	57                   	push   %edi
41c1ec:	88 55 ff             	mov    %dl,-0x1(%ebp)
41c1ef:	0f 84 7d 01 00 00    	je     0x41c372
41c1f5:	8d 45 f0             	lea    -0x10(%ebp),%eax
41c1f8:	50                   	push   %eax
41c1f9:	8d 45 f8             	lea    -0x8(%ebp),%eax
41c1fc:	50                   	push   %eax
41c1fd:	68 b0 00 00 00       	push   $0xb0
41c202:	ff 35 04 5e 42 00    	push   0x425e04
41c208:	ff 15 bc 62 42 00    	call   *0x4262bc
41c20e:	33 f6                	xor    %esi,%esi
41c210:	56                   	push   %esi
41c211:	56                   	push   %esi
41c212:	6a 0e                	push   $0xe
41c214:	ff 35 04 5e 42 00    	push   0x425e04
41c21a:	ff 15 bc 62 42 00    	call   *0x4262bc
41c220:	39 75 f8             	cmp    %esi,-0x8(%ebp)
41c223:	75 0c                	jne    0x41c231
41c225:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41c228:	2b c8                	sub    %eax,%ecx
41c22a:	f7 d9                	neg    %ecx
41c22c:	1b c9                	sbb    %ecx,%ecx
41c22e:	21 4d f0             	and    %ecx,-0x10(%ebp)
41c231:	56                   	push   %esi
41c232:	56                   	push   %esi
41c233:	68 bd 00 00 00       	push   $0xbd
41c238:	ff 35 04 5e 42 00    	push   0x425e04
41c23e:	ff 15 bc 62 42 00    	call   *0x4262bc
41c244:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41c247:	85 c0                	test   %eax,%eax
41c249:	0f 84 23 01 00 00    	je     0x41c372
41c24f:	50                   	push   %eax
41c250:	ff 15 e8 60 42 00    	call   *0x4260e8
41c256:	8b d8                	mov    %eax,%ebx
41c258:	85 db                	test   %ebx,%ebx
41c25a:	0f 84 12 01 00 00    	je     0x41c372
41c260:	8b 7d f0             	mov    -0x10(%ebp),%edi
41c263:	8b cf                	mov    %edi,%ecx
41c265:	2b 4d f8             	sub    -0x8(%ebp),%ecx
41c268:	39 7d f8             	cmp    %edi,-0x8(%ebp)
41c26b:	89 75 ec             	mov    %esi,-0x14(%ebp)
41c26e:	1b c0                	sbb    %eax,%eax
41c270:	89 75 f4             	mov    %esi,-0xc(%ebp)
41c273:	23 c1                	and    %ecx,%eax
41c275:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41c279:	89 45 e8             	mov    %eax,-0x18(%ebp)
41c27c:	74 52                	je     0x41c2d0
41c27e:	39 7d f8             	cmp    %edi,-0x8(%ebp)
41c281:	74 01                	je     0x41c284
41c283:	4f                   	dec    %edi
41c284:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c287:	8b d7                	mov    %edi,%edx
41c289:	50                   	push   %eax
41c28a:	51                   	push   %ecx
41c28b:	51                   	push   %ecx
41c28c:	8b cb                	mov    %ebx,%ecx
41c28e:	e8 b6 fe ff ff       	call   0x41c149
41c293:	80 3d 11 5e 42 00 00 	cmpb   $0x0,0x425e11
41c29a:	8b f0                	mov    %eax,%esi
41c29c:	74 7e                	je     0x41c31c
41c29e:	85 f6                	test   %esi,%esi
41c2a0:	75 7a                	jne    0x41c31c
41c2a2:	ff 35 04 5e 42 00    	push   0x425e04
41c2a8:	ff 15 90 62 42 00    	call   *0x426290
41c2ae:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41c2b1:	8b d0                	mov    %eax,%edx
41c2b3:	8b c1                	mov    %ecx,%eax
41c2b5:	2b c7                	sub    %edi,%eax
41c2b7:	2b f9                	sub    %ecx,%edi
41c2b9:	03 d0                	add    %eax,%edx
41c2bb:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c2be:	50                   	push   %eax
41c2bf:	51                   	push   %ecx
41c2c0:	51                   	push   %ecx
41c2c1:	8d 0c 7b             	lea    (%ebx,%edi,2),%ecx
41c2c4:	e8 80 fe ff ff       	call   0x41c149
41c2c9:	33 ff                	xor    %edi,%edi
41c2cb:	8b f0                	mov    %eax,%esi
41c2cd:	47                   	inc    %edi
41c2ce:	eb 4f                	jmp    0x41c31f
41c2d0:	ff 35 04 5e 42 00    	push   0x425e04
41c2d6:	8d 34 7b             	lea    (%ebx,%edi,2),%esi
41c2d9:	ff 15 90 62 42 00    	call   *0x426290
41c2df:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41c2e2:	2b c7                	sub    %edi,%eax
41c2e4:	51                   	push   %ecx
41c2e5:	51                   	push   %ecx
41c2e6:	68 00 5d 42 00       	push   $0x425d00
41c2eb:	8b d0                	mov    %eax,%edx
41c2ed:	8b ce                	mov    %esi,%ecx
41c2ef:	e8 9e fe ff ff       	call   0x41c192
41c2f4:	80 3d 11 5e 42 00 00 	cmpb   $0x0,0x425e11
41c2fb:	8b f0                	mov    %eax,%esi
41c2fd:	74 1d                	je     0x41c31c
41c2ff:	85 f6                	test   %esi,%esi
41c301:	75 19                	jne    0x41c31c
41c303:	8b 55 e8             	mov    -0x18(%ebp),%edx
41c306:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c309:	50                   	push   %eax
41c30a:	51                   	push   %ecx
41c30b:	68 00 5d 42 00       	push   $0x425d00
41c310:	8d 14 17             	lea    (%edi,%edx,1),%edx
41c313:	8b cb                	mov    %ebx,%ecx
41c315:	e8 78 fe ff ff       	call   0x41c192
41c31a:	eb ad                	jmp    0x41c2c9
41c31c:	8b 7d ec             	mov    -0x14(%ebp),%edi
41c31f:	ff 75 e4             	push   -0x1c(%ebp)
41c322:	ff 15 f0 60 42 00    	call   *0x4260f0
41c328:	85 f6                	test   %esi,%esi
41c32a:	75 4d                	jne    0x41c379
41c32c:	f6 05 a0 4e 42 00 20 	testb  $0x20,0x424ea0
41c333:	75 3d                	jne    0x41c372
41c335:	ff 35 3c 4f 42 00    	push   0x424f3c
41c33b:	ff 15 dc 61 42 00    	call   *0x4261dc
41c341:	8b 0d 00 5e 42 00    	mov    0x425e00,%ecx
41c347:	8b f0                	mov    %eax,%esi
41c349:	85 c9                	test   %ecx,%ecx
41c34b:	75 06                	jne    0x41c353
41c34d:	8b 0d 0c 5e 42 00    	mov    0x425e0c,%ecx
41c353:	8b 15 f0 42 42 00    	mov    0x4242f0,%edx
41c359:	6a 40                	push   $0x40
41c35b:	68 00 5d 42 00       	push   $0x425d00
41c360:	ff 35 fc 42 42 00    	push   0x4242fc
41c366:	e8 a8 18 ff ff       	call   0x40dc13
41c36b:	56                   	push   %esi
41c36c:	ff 15 dc 61 42 00    	call   *0x4261dc
41c372:	32 c0                	xor    %al,%al
41c374:	5f                   	pop    %edi
41c375:	5e                   	pop    %esi
41c376:	5b                   	pop    %ebx
41c377:	c9                   	leave
41c378:	c3                   	ret
41c379:	8b 45 f4             	mov    -0xc(%ebp),%eax
41c37c:	2b f3                	sub    %ebx,%esi
41c37e:	d1 fe                	sar    $1,%esi
41c380:	03 c6                	add    %esi,%eax
41c382:	89 75 f8             	mov    %esi,-0x8(%ebp)
41c385:	50                   	push   %eax
41c386:	56                   	push   %esi
41c387:	68 b1 00 00 00       	push   $0xb1
41c38c:	ff 35 04 5e 42 00    	push   0x425e04
41c392:	ff 15 bc 62 42 00    	call   *0x4262bc
41c398:	f6 05 a0 4e 42 00 20 	testb  $0x20,0x424ea0
41c39f:	75 15                	jne    0x41c3b6
41c3a1:	6a 00                	push   $0x0
41c3a3:	6a 00                	push   $0x0
41c3a5:	68 b7 00 00 00       	push   $0xb7
41c3aa:	ff 35 04 5e 42 00    	push   0x425e04
41c3b0:	ff 15 bc 62 42 00    	call   *0x4262bc
41c3b6:	85 ff                	test   %edi,%edi
41c3b8:	74 16                	je     0x41c3d0
41c3ba:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41c3be:	74 08                	je     0x41c3c8
41c3c0:	8b 0d 60 42 42 00    	mov    0x424260,%ecx
41c3c6:	eb 0d                	jmp    0x41c3d5
41c3c8:	8b 0d 5c 42 42 00    	mov    0x42425c,%ecx
41c3ce:	eb 05                	jmp    0x41c3d5
41c3d0:	b9 94 1f 40 00       	mov    $0x401f94,%ecx
41c3d5:	e8 81 13 ff ff       	call   0x40d75b
41c3da:	b0 01                	mov    $0x1,%al
41c3dc:	eb 96                	jmp    0x41c374
41c3de:	8b ff                	mov    %edi,%edi
41c3e0:	55                   	push   %ebp
41c3e1:	8b ec                	mov    %esp,%ebp
41c3e3:	51                   	push   %ecx
41c3e4:	51                   	push   %ecx
41c3e5:	56                   	push   %esi
41c3e6:	57                   	push   %edi
41c3e7:	8d 45 fc             	lea    -0x4(%ebp),%eax
41c3ea:	33 f6                	xor    %esi,%esi
41c3ec:	50                   	push   %eax
41c3ed:	8d 45 f8             	lea    -0x8(%ebp),%eax
41c3f0:	89 75 f8             	mov    %esi,-0x8(%ebp)
41c3f3:	50                   	push   %eax
41c3f4:	68 b0 00 00 00       	push   $0xb0
41c3f9:	ff 35 04 5e 42 00    	push   0x425e04