418146:	81 e1 f3 c2 ff ff    	and    $0xffffc2f3,%ecx
41814c:	f6 c3 04             	test   $0x4,%bl
41814f:	89 4e 0c             	mov    %ecx,0xc(%esi)
418152:	74 10                	je     0x418164
418154:	83 c9 04             	or     $0x4,%ecx
418157:	8d 46 14             	lea    0x14(%esi),%eax
41815a:	89 4e 0c             	mov    %ecx,0xc(%esi)
41815d:	bf 02 00 00 00       	mov    $0x2,%edi
418162:	eb 44                	jmp    0x4181a8
418164:	8b 44 24 18          	mov    0x18(%esp),%eax
418168:	85 c0                	test   %eax,%eax
41816a:	75 36                	jne    0x4181a2
41816c:	57                   	push   %edi
41816d:	e8 4e 43 ff ff       	call   0x40c4c0
418172:	83 c4 04             	add    $0x4,%esp
418175:	85 c0                	test   %eax,%eax
418177:	75 1e                	jne    0x418197
418179:	a1 64 74 43 00       	mov    0x437464,%eax
41817e:	56                   	push   %esi
41817f:	40                   	inc    %eax
418180:	83 cd ff             	or     $0xffffffff,%ebp
418183:	a3 64 74 43 00       	mov    %eax,0x437464
418188:	e8 c3 73 ff ff       	call   0x40f550
41818d:	83 c4 04             	add    $0x4,%esp
418190:	8b c5                	mov    %ebp,%eax
418192:	5f                   	pop    %edi
418193:	5e                   	pop    %esi
418194:	5d                   	pop    %ebp
418195:	5b                   	pop    %ebx
418196:	c3                   	ret
418197:	8b 4e 0c             	mov    0xc(%esi),%ecx
41819a:	81 c9 08 04 00 00    	or     $0x408,%ecx
4181a0:	eb 03                	jmp    0x4181a5
4181a2:	80 cd 05             	or     $0x5,%ch
4181a5:	89 4e 0c             	mov    %ecx,0xc(%esi)
4181a8:	56                   	push   %esi
4181a9:	89 7e 18             	mov    %edi,0x18(%esi)
4181ac:	89 46 08             	mov    %eax,0x8(%esi)
4181af:	89 06                	mov    %eax,(%esi)
4181b1:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4181b8:	e8 93 73 ff ff       	call   0x40f550
4181bd:	83 c4 04             	add    $0x4,%esp
4181c0:	8b c5                	mov    %ebp,%eax
4181c2:	5f                   	pop    %edi
4181c3:	5e                   	pop    %esi
4181c4:	5d                   	pop    %ebp
4181c5:	5b                   	pop    %ebx
4181c6:	c3                   	ret
4181c7:	90                   	nop
4181c8:	90                   	nop
4181c9:	90                   	nop
4181ca:	90                   	nop
4181cb:	90                   	nop
4181cc:	90                   	nop
4181cd:	90                   	nop
4181ce:	90                   	nop
4181cf:	90                   	nop
4181d0:	56                   	push   %esi
4181d1:	8b 74 24 0c          	mov    0xc(%esp),%esi
4181d5:	57                   	push   %edi
4181d6:	56                   	push   %esi
4181d7:	e8 04 73 ff ff       	call   0x40f4e0
4181dc:	8b 44 24 10          	mov    0x10(%esp),%eax
4181e0:	83 c4 04             	add    $0x4,%esp
4181e3:	56                   	push   %esi
4181e4:	50                   	push   %eax
4181e5:	e8 16 00 00 00       	call   0x418200
4181ea:	83 c4 08             	add    $0x8,%esp
4181ed:	8b f8                	mov    %eax,%edi
4181ef:	56                   	push   %esi
4181f0:	e8 5b 73 ff ff       	call   0x40f550
4181f5:	83 c4 04             	add    $0x4,%esp
4181f8:	66 8b c7             	mov    %di,%ax
4181fb:	5f                   	pop    %edi
4181fc:	5e                   	pop    %esi
4181fd:	c3                   	ret
4181fe:	90                   	nop
4181ff:	90                   	nop
418200:	83 ec 08             	sub    $0x8,%esp
418203:	56                   	push   %esi
418204:	8b 74 24 14          	mov    0x14(%esp),%esi
418208:	57                   	push   %edi
418209:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
41820d:	0f 85 18 01 00 00    	jne    0x41832b
418213:	8b 46 10             	mov    0x10(%esi),%eax
418216:	83 f8 ff             	cmp    $0xffffffff,%eax
418219:	74 17                	je     0x418232
41821b:	8b c8                	mov    %eax,%ecx
41821d:	c1 f9 05             	sar    $0x5,%ecx
418220:	83 e0 1f             	and    $0x1f,%eax
418223:	8d 14 c0             	lea    (%eax,%eax,8),%edx
418226:	8b 04 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%eax
41822d:	8d 04 90             	lea    (%eax,%edx,4),%eax
418230:	eb 05                	jmp    0x418237
418232:	b8 e8 1d 43 00       	mov    $0x431de8,%eax
418237:	f6 40 04 80          	testb  $0x80,0x4(%eax)
41823b:	0f 84 ea 00 00 00    	je     0x41832b
418241:	8b 7c 24 14          	mov    0x14(%esp),%edi
418245:	8d 4c 24 08          	lea    0x8(%esp),%ecx
418249:	57                   	push   %edi
41824a:	51                   	push   %ecx
41824b:	e8 50 9f ff ff       	call   0x4121a0
418250:	83 c4 08             	add    $0x8,%esp
418253:	83 f8 ff             	cmp    $0xffffffff,%eax
418256:	75 15                	jne    0x41826d
418258:	e8 33 54 ff ff       	call   0x40d690
41825d:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
418263:	66 0d ff ff          	or     $0xffff,%ax
418267:	5f                   	pop    %edi
418268:	5e                   	pop    %esi
418269:	83 c4 08             	add    $0x8,%esp
41826c:	c3                   	ret
41826d:	83 f8 01             	cmp    $0x1,%eax
418270:	8b 46 04             	mov    0x4(%esi),%eax
418273:	75 3c                	jne    0x4182b1
418275:	48                   	dec    %eax
418276:	89 46 04             	mov    %eax,0x4(%esi)
418279:	78 18                	js     0x418293
41827b:	8b 16                	mov    (%esi),%edx
41827d:	8a 44 24 08          	mov    0x8(%esp),%al
418281:	88 02                	mov    %al,(%edx)
418283:	8b 44 24 08          	mov    0x8(%esp),%eax
418287:	8b 0e                	mov    (%esi),%ecx
418289:	25 ff 00 00 00       	and    $0xff,%eax
41828e:	41                   	inc    %ecx
41828f:	89 0e                	mov    %ecx,(%esi)
418291:	eb 0f                	jmp    0x4182a2
418293:	0f be 4c 24 08       	movsbl 0x8(%esp),%ecx
418298:	56                   	push   %esi
418299:	51                   	push   %ecx
41829a:	e8 91 83 ff ff       	call   0x410630
41829f:	83 c4 08             	add    $0x8,%esp
4182a2:	83 f8 ff             	cmp    $0xffffffff,%eax
4182a5:	75 71                	jne    0x418318
4182a7:	66 0d ff ff          	or     $0xffff,%ax
4182ab:	5f                   	pop    %edi
4182ac:	5e                   	pop    %esi
4182ad:	83 c4 08             	add    $0x8,%esp
4182b0:	c3                   	ret
4182b1:	48                   	dec    %eax
4182b2:	89 46 04             	mov    %eax,0x4(%esi)
4182b5:	78 18                	js     0x4182cf
4182b7:	8b 16                	mov    (%esi),%edx
4182b9:	8a 44 24 08          	mov    0x8(%esp),%al
4182bd:	88 02                	mov    %al,(%edx)
4182bf:	8b 44 24 08          	mov    0x8(%esp),%eax
4182c3:	8b 0e                	mov    (%esi),%ecx
4182c5:	25 ff 00 00 00       	and    $0xff,%eax
4182ca:	41                   	inc    %ecx
4182cb:	89 0e                	mov    %ecx,(%esi)
4182cd:	eb 0f                	jmp    0x4182de
4182cf:	0f be 4c 24 08       	movsbl 0x8(%esp),%ecx
4182d4:	56                   	push   %esi
4182d5:	51                   	push   %ecx
4182d6:	e8 55 83 ff ff       	call   0x410630
4182db:	83 c4 08             	add    $0x8,%esp
4182de:	83 f8 ff             	cmp    $0xffffffff,%eax
4182e1:	74 3e                	je     0x418321
4182e3:	8b 46 04             	mov    0x4(%esi),%eax
4182e6:	48                   	dec    %eax
4182e7:	89 46 04             	mov    %eax,0x4(%esi)
4182ea:	78 18                	js     0x418304
4182ec:	8b 16                	mov    (%esi),%edx
4182ee:	8a 44 24 09          	mov    0x9(%esp),%al
4182f2:	88 02                	mov    %al,(%edx)
4182f4:	8b 44 24 09          	mov    0x9(%esp),%eax
4182f8:	8b 0e                	mov    (%esi),%ecx
4182fa:	25 ff 00 00 00       	and    $0xff,%eax
4182ff:	41                   	inc    %ecx
418300:	89 0e                	mov    %ecx,(%esi)
418302:	eb 0f                	jmp    0x418313
418304:	0f be 4c 24 09       	movsbl 0x9(%esp),%ecx
418309:	56                   	push   %esi
41830a:	51                   	push   %ecx
41830b:	e8 20 83 ff ff       	call   0x410630
418310:	83 c4 08             	add    $0x8,%esp
418313:	83 f8 ff             	cmp    $0xffffffff,%eax
418316:	74 09                	je     0x418321
418318:	66 8b c7             	mov    %di,%ax
41831b:	5f                   	pop    %edi
41831c:	5e                   	pop    %esi
41831d:	83 c4 08             	add    $0x8,%esp
418320:	c3                   	ret
418321:	66 0d ff ff          	or     $0xffff,%ax
418325:	5f                   	pop    %edi
418326:	5e                   	pop    %esi
418327:	83 c4 08             	add    $0x8,%esp
41832a:	c3                   	ret
41832b:	8b 46 04             	mov    0x4(%esi),%eax
41832e:	83 c0 fe             	add    $0xfffffffe,%eax
418331:	89 46 04             	mov    %eax,0x4(%esi)
418334:	78 16                	js     0x41834c
418336:	8b 16                	mov    (%esi),%edx
418338:	8b 44 24 14          	mov    0x14(%esp),%eax
41833c:	66 89 02             	mov    %ax,(%edx)
41833f:	8b 0e                	mov    (%esi),%ecx
418341:	83 c1 02             	add    $0x2,%ecx
418344:	89 0e                	mov    %ecx,(%esi)
418346:	5f                   	pop    %edi
418347:	5e                   	pop    %esi
418348:	83 c4 08             	add    $0x8,%esp
41834b:	c3                   	ret
41834c:	8b 44 24 14          	mov    0x14(%esp),%eax
418350:	56                   	push   %esi
418351:	25 ff ff 00 00       	and    $0xffff,%eax
418356:	50                   	push   %eax
418357:	e8 84 09 00 00       	call   0x418ce0
41835c:	83 c4 08             	add    $0x8,%esp
41835f:	5f                   	pop    %edi
418360:	5e                   	pop    %esi
418361:	83 c4 08             	add    $0x8,%esp
418364:	c3                   	ret
418365:	90                   	nop
418366:	90                   	nop
418367:	90                   	nop
418368:	90                   	nop
418369:	90                   	nop
41836a:	90                   	nop
41836b:	90                   	nop
41836c:	90                   	nop
41836d:	90                   	nop
41836e:	90                   	nop
41836f:	90                   	nop
418370:	56                   	push   %esi
418371:	8b 74 24 0c          	mov    0xc(%esp),%esi
418375:	57                   	push   %edi
418376:	56                   	push   %esi
418377:	e8 64 71 ff ff       	call   0x40f4e0
41837c:	8b 44 24 10          	mov    0x10(%esp),%eax
418380:	83 c4 04             	add    $0x4,%esp
418383:	56                   	push   %esi
418384:	50                   	push   %eax
418385:	e8 16 00 00 00       	call   0x4183a0
41838a:	83 c4 08             	add    $0x8,%esp
41838d:	8b f8                	mov    %eax,%edi
41838f:	56                   	push   %esi
418390:	e8 bb 71 ff ff       	call   0x40f550
418395:	83 c4 04             	add    $0x4,%esp
418398:	66 8b c7             	mov    %di,%ax
41839b:	5f                   	pop    %edi
41839c:	5e                   	pop    %esi
41839d:	c3                   	ret
41839e:	90                   	nop
41839f:	90                   	nop
4183a0:	56                   	push   %esi
4183a1:	57                   	push   %edi
4183a2:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4183a6:	66 81 ff ff ff       	cmp    $0xffff,%di
4183ab:	0f 84 05 01 00 00    	je     0x4184b6
4183b1:	8b 74 24 10          	mov    0x10(%esp),%esi
4183b5:	8b 46 0c             	mov    0xc(%esi),%eax
4183b8:	a8 01                	test   $0x1,%al
4183ba:	75 10                	jne    0x4183cc
4183bc:	a8 80                	test   $0x80,%al
4183be:	0f 84 f2 00 00 00    	je     0x4184b6
4183c4:	a8 02                	test   $0x2,%al
4183c6:	0f 85 ea 00 00 00    	jne    0x4184b6
4183cc:	8b 46 08             	mov    0x8(%esi),%eax
4183cf:	85 c0                	test   %eax,%eax
4183d1:	75 09                	jne    0x4183dc
4183d3:	56                   	push   %esi
4183d4:	e8 37 9d ff ff       	call   0x412110
4183d9:	83 c4 04             	add    $0x4,%esp
4183dc:	8b 46 0c             	mov    0xc(%esi),%eax
4183df:	a8 40                	test   $0x40,%al
4183e1:	0f 85 98 00 00 00    	jne    0x41847f
4183e7:	8b 4e 10             	mov    0x10(%esi),%ecx
4183ea:	83 f9 ff             	cmp    $0xffffffff,%ecx
4183ed:	74 17                	je     0x418406
4183ef:	8b d1                	mov    %ecx,%edx
4183f1:	c1 fa 05             	sar    $0x5,%edx
4183f4:	83 e1 1f             	and    $0x1f,%ecx
4183f7:	8b 14 95 a0 89 43 00 	mov    0x4389a0(,%edx,4),%edx
4183fe:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
418401:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
418404:	eb 05                	jmp    0x41840b
418406:	b9 e8 1d 43 00       	mov    $0x431de8,%ecx
41840b:	f6 41 04 80          	testb  $0x80,0x4(%ecx)
41840f:	74 6e                	je     0x41847f
418411:	8d 44 24 0c          	lea    0xc(%esp),%eax
418415:	57                   	push   %edi
418416:	50                   	push   %eax
418417:	e8 84 9d ff ff       	call   0x4121a0
41841c:	83 c4 08             	add    $0x8,%esp
41841f:	83 f8 ff             	cmp    $0xffffffff,%eax
418422:	75 12                	jne    0x418436
418424:	e8 67 52 ff ff       	call   0x40d690
418429:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41842f:	66 0d ff ff          	or     $0xffff,%ax
418433:	5f                   	pop    %edi
418434:	5e                   	pop    %esi
418435:	c3                   	ret
418436:	8b 0e                	mov    (%esi),%ecx
418438:	8b 56 08             	mov    0x8(%esi),%edx
41843b:	3b ca                	cmp    %edx,%ecx
41843d:	75 0b                	jne    0x41844a
41843f:	8b 56 04             	mov    0x4(%esi),%edx
418442:	85 d2                	test   %edx,%edx
418444:	75 70                	jne    0x4184b6
418446:	03 c8                	add    %eax,%ecx
418448:	89 0e                	mov    %ecx,(%esi)
41844a:	83 f8 01             	cmp    $0x1,%eax
41844d:	74 0d                	je     0x41845c
41844f:	8b 16                	mov    (%esi),%edx
418451:	4a                   	dec    %edx
418452:	89 16                	mov    %edx,(%esi)
418454:	8b ca                	mov    %edx,%ecx
418456:	8a 54 24 0d          	mov    0xd(%esp),%dl
41845a:	88 11                	mov    %dl,(%ecx)
41845c:	8b 0e                	mov    (%esi),%ecx
41845e:	8a 54 24 0c          	mov    0xc(%esp),%dl
418462:	49                   	dec    %ecx
418463:	89 0e                	mov    %ecx,(%esi)
418465:	88 11                	mov    %dl,(%ecx)
418467:	8b 4e 04             	mov    0x4(%esi),%ecx
41846a:	03 c8                	add    %eax,%ecx
41846c:	8b 46 0c             	mov    0xc(%esi),%eax
41846f:	24 ef                	and    $0xef,%al
418471:	89 4e 04             	mov    %ecx,0x4(%esi)
418474:	0c 01                	or     $0x1,%al
418476:	89 46 0c             	mov    %eax,0xc(%esi)
418479:	66 8b c7             	mov    %di,%ax
41847c:	5f                   	pop    %edi
41847d:	5e                   	pop    %esi
41847e:	c3                   	ret
41847f:	8b 0e                	mov    (%esi),%ecx
418481:	8b 56 08             	mov    0x8(%esi),%edx
418484:	3b ca                	cmp    %edx,%ecx
418486:	75 0c                	jne    0x418494
418488:	8b 56 04             	mov    0x4(%esi),%edx
41848b:	85 d2                	test   %edx,%edx
41848d:	75 27                	jne    0x4184b6
41848f:	83 c1 02             	add    $0x2,%ecx
418492:	89 0e                	mov    %ecx,(%esi)
418494:	8b 4e 04             	mov    0x4(%esi),%ecx
418497:	24 ef                	and    $0xef,%al
418499:	0c 01                	or     $0x1,%al
41849b:	83 c1 02             	add    $0x2,%ecx
41849e:	89 46 0c             	mov    %eax,0xc(%esi)
4184a1:	8b 06                	mov    (%esi),%eax
4184a3:	83 c0 fe             	add    $0xfffffffe,%eax
4184a6:	89 4e 04             	mov    %ecx,0x4(%esi)
4184a9:	89 06                	mov    %eax,(%esi)
4184ab:	66 89 38             	mov    %di,(%eax)
4184ae:	8b 0e                	mov    (%esi),%ecx
4184b0:	66 8b 01             	mov    (%ecx),%ax
4184b3:	5f                   	pop    %edi
4184b4:	5e                   	pop    %esi
4184b5:	c3                   	ret
4184b6:	5f                   	pop    %edi