40d130:	80 7f 14 02          	cmpb   $0x2,0x14(%edi)
40d134:	75 09                	jne    0x40d13f
40d136:	8b 07                	mov    (%edi),%eax
40d138:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40d13f:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
40d143:	74 0b                	je     0x40d150
40d145:	8b 77 18             	mov    0x18(%edi),%esi
40d148:	e8 88 00 00 00       	call   0x40d1d5
40d14d:	89 70 10             	mov    %esi,0x10(%eax)
40d150:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
40d154:	74 0d                	je     0x40d163
40d156:	8b 77 20             	mov    0x20(%edi),%esi
40d159:	8b cf                	mov    %edi,%ecx
40d15b:	e8 75 00 00 00       	call   0x40d1d5
40d160:	89 70 14             	mov    %esi,0x14(%eax)
40d163:	5f                   	pop    %edi
40d164:	5e                   	pop    %esi
40d165:	c3                   	ret
40d166:	8b ff                	mov    %edi,%edi
40d168:	56                   	push   %esi
40d169:	8b f1                	mov    %ecx,%esi
40d16b:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
40d16f:	75 19                	jne    0x40d18a
40d171:	ff 15 08 11 43 00    	call   *0x431108
40d177:	83 66 04 00          	andl   $0x0,0x4(%esi)
40d17b:	50                   	push   %eax
40d17c:	c6 46 08 01          	movb   $0x1,0x8(%esi)
40d180:	ff 15 78 11 43 00    	call   *0x431178
40d186:	33 c0                	xor    %eax,%eax
40d188:	5e                   	pop    %esi
40d189:	c3                   	ret
40d18a:	8b 46 04             	mov    0x4(%esi),%eax
40d18d:	5e                   	pop    %esi
40d18e:	c3                   	ret
40d18f:	8b ff                	mov    %edi,%edi
40d191:	55                   	push   %ebp
40d192:	8b ec                	mov    %esp,%ebp
40d194:	51                   	push   %ecx
40d195:	56                   	push   %esi
40d196:	57                   	push   %edi
40d197:	8b f9                	mov    %ecx,%edi
40d199:	ff 15 08 11 43 00    	call   *0x431108
40d19f:	80 7f 08 00          	cmpb   $0x0,0x8(%edi)
40d1a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d1a6:	75 0b                	jne    0x40d1b3
40d1a8:	33 c0                	xor    %eax,%eax
40d1aa:	c6 47 08 01          	movb   $0x1,0x8(%edi)
40d1ae:	89 47 04             	mov    %eax,0x4(%edi)
40d1b1:	eb 03                	jmp    0x40d1b6
40d1b3:	8b 47 04             	mov    0x4(%edi),%eax
40d1b6:	50                   	push   %eax
40d1b7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d1ba:	50                   	push   %eax
40d1bb:	e8 2b f3 00 00       	call   0x41c4eb
40d1c0:	59                   	pop    %ecx
40d1c1:	59                   	pop    %ecx
40d1c2:	ff 75 fc             	push   -0x4(%ebp)
40d1c5:	8b f0                	mov    %eax,%esi
40d1c7:	89 37                	mov    %esi,(%edi)
40d1c9:	ff 15 78 11 43 00    	call   *0x431178
40d1cf:	5f                   	pop    %edi
40d1d0:	8b c6                	mov    %esi,%eax
40d1d2:	5e                   	pop    %esi
40d1d3:	c9                   	leave
40d1d4:	c3                   	ret
40d1d5:	8b ff                	mov    %edi,%edi
40d1d7:	56                   	push   %esi
40d1d8:	8b f1                	mov    %ecx,%esi
40d1da:	83 3e 00             	cmpl   $0x0,(%esi)
40d1dd:	75 09                	jne    0x40d1e8
40d1df:	e8 ab ff ff ff       	call   0x40d18f
40d1e4:	85 c0                	test   %eax,%eax
40d1e6:	74 04                	je     0x40d1ec
40d1e8:	8b 06                	mov    (%esi),%eax
40d1ea:	5e                   	pop    %esi
40d1eb:	c3                   	ret
40d1ec:	e8 a0 ec 00 00       	call   0x41be91
40d1f1:	cc                   	int3
40d1f2:	8b ff                	mov    %edi,%edi
40d1f4:	55                   	push   %ebp
40d1f5:	8b ec                	mov    %esp,%ebp
40d1f7:	81 ec 28 03 00 00    	sub    $0x328,%esp
40d1fd:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40d202:	33 c5                	xor    %ebp,%eax
40d204:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d207:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40d20b:	57                   	push   %edi
40d20c:	74 09                	je     0x40d217
40d20e:	ff 75 08             	push   0x8(%ebp)
40d211:	e8 54 d2 ff ff       	call   0x40a46a
40d216:	59                   	pop    %ecx
40d217:	6a 50                	push   $0x50
40d219:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40d21f:	6a 00                	push   $0x0
40d221:	50                   	push   %eax
40d222:	e8 99 e1 ff ff       	call   0x40b3c0
40d227:	68 cc 02 00 00       	push   $0x2cc
40d22c:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40d232:	6a 00                	push   $0x0
40d234:	50                   	push   %eax
40d235:	e8 86 e1 ff ff       	call   0x40b3c0
40d23a:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40d240:	83 c4 18             	add    $0x18,%esp
40d243:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40d249:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40d24f:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40d255:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d25b:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40d261:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
40d267:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
40d26d:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40d273:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
40d279:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40d280:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
40d287:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
40d28e:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
40d295:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
40d29c:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40d2a3:	9c                   	pushf
40d2a4:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
40d2aa:	8b 45 04             	mov    0x4(%ebp),%eax
40d2ad:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40d2b3:	8d 45 04             	lea    0x4(%ebp),%eax
40d2b6:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40d2bc:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
40d2c3:	00 01 00
40d2c6:	8b 40 fc             	mov    -0x4(%eax),%eax
40d2c9:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40d2cf:	8b 45 0c             	mov    0xc(%ebp),%eax
40d2d2:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40d2d8:	8b 45 10             	mov    0x10(%ebp),%eax
40d2db:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
40d2e1:	8b 45 04             	mov    0x4(%ebp),%eax
40d2e4:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40d2ea:	ff 15 94 11 43 00    	call   *0x431194
40d2f0:	6a 00                	push   $0x0
40d2f2:	8b f8                	mov    %eax,%edi
40d2f4:	ff 15 9c 11 43 00    	call   *0x43119c
40d2fa:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
40d300:	50                   	push   %eax
40d301:	ff 15 98 11 43 00    	call   *0x431198
40d307:	85 c0                	test   %eax,%eax
40d309:	75 13                	jne    0x40d31e
40d30b:	85 ff                	test   %edi,%edi
40d30d:	75 0f                	jne    0x40d31e
40d30f:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40d313:	74 09                	je     0x40d31e
40d315:	ff 75 08             	push   0x8(%ebp)
40d318:	e8 4d d1 ff ff       	call   0x40a46a
40d31d:	59                   	pop    %ecx
40d31e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d321:	33 cd                	xor    %ebp,%ecx
40d323:	5f                   	pop    %edi
40d324:	e8 7e c9 ff ff       	call   0x409ca7
40d329:	c9                   	leave
40d32a:	c3                   	ret
40d32b:	8b ff                	mov    %edi,%edi
40d32d:	55                   	push   %ebp
40d32e:	8b ec                	mov    %esp,%ebp
40d330:	8b 45 08             	mov    0x8(%ebp),%eax
40d333:	a3 80 f6 43 00       	mov    %eax,0x43f680
40d338:	5d                   	pop    %ebp
40d339:	c3                   	ret
40d33a:	8b ff                	mov    %edi,%edi
40d33c:	55                   	push   %ebp
40d33d:	8b ec                	mov    %esp,%ebp
40d33f:	83 ec 28             	sub    $0x28,%esp
40d342:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d345:	6a 00                	push   $0x0
40d347:	e8 96 fd ff ff       	call   0x40d0e2
40d34c:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d34f:	50                   	push   %eax
40d350:	ff 75 18             	push   0x18(%ebp)
40d353:	ff 75 14             	push   0x14(%ebp)
40d356:	ff 75 10             	push   0x10(%ebp)
40d359:	ff 75 0c             	push   0xc(%ebp)
40d35c:	ff 75 08             	push   0x8(%ebp)
40d35f:	e8 0d 00 00 00       	call   0x40d371
40d364:	83 c4 18             	add    $0x18,%esp
40d367:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d36a:	e8 bb fd ff ff       	call   0x40d12a
40d36f:	c9                   	leave
40d370:	c3                   	ret
40d371:	8b ff                	mov    %edi,%edi
40d373:	55                   	push   %ebp
40d374:	8b ec                	mov    %esp,%ebp
40d376:	56                   	push   %esi
40d377:	57                   	push   %edi
40d378:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40d37b:	8b 07                	mov    (%edi),%eax
40d37d:	85 c0                	test   %eax,%eax
40d37f:	75 0b                	jne    0x40d38c
40d381:	8b cf                	mov    %edi,%ecx
40d383:	e8 07 fe ff ff       	call   0x40d18f
40d388:	85 c0                	test   %eax,%eax
40d38a:	74 2a                	je     0x40d3b6
40d38c:	8b b0 5c 03 00 00    	mov    0x35c(%eax),%esi
40d392:	85 f6                	test   %esi,%esi
40d394:	74 20                	je     0x40d3b6
40d396:	ff 75 18             	push   0x18(%ebp)
40d399:	ff 75 14             	push   0x14(%ebp)
40d39c:	ff 75 10             	push   0x10(%ebp)
40d39f:	ff 75 0c             	push   0xc(%ebp)
40d3a2:	ff 75 08             	push   0x8(%ebp)
40d3a5:	8b ce                	mov    %esi,%ecx
40d3a7:	ff 15 68 12 43 00    	call   *0x431268
40d3ad:	ff d6                	call   *%esi
40d3af:	83 c4 14             	add    $0x14,%esp
40d3b2:	5f                   	pop    %edi
40d3b3:	5e                   	pop    %esi
40d3b4:	5d                   	pop    %ebp
40d3b5:	c3                   	ret
40d3b6:	8b cf                	mov    %edi,%ecx
40d3b8:	e8 a9 fd ff ff       	call   0x40d166
40d3bd:	ff 75 18             	push   0x18(%ebp)
40d3c0:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
40d3c6:	ff 75 14             	push   0x14(%ebp)
40d3c9:	8b 34 85 80 f6 43 00 	mov    0x43f680(,%eax,4),%esi
40d3d0:	83 e1 1f             	and    $0x1f,%ecx
40d3d3:	ff 75 10             	push   0x10(%ebp)
40d3d6:	33 35 c0 d0 43 00    	xor    0x43d0c0,%esi
40d3dc:	ff 75 0c             	push   0xc(%ebp)
40d3df:	d3 ce                	ror    %cl,%esi
40d3e1:	ff 75 08             	push   0x8(%ebp)
40d3e4:	85 f6                	test   %esi,%esi
40d3e6:	75 bd                	jne    0x40d3a5
40d3e8:	e8 2e 00 00 00       	call   0x40d41b
40d3ed:	cc                   	int3
40d3ee:	33 c0                	xor    %eax,%eax
40d3f0:	50                   	push   %eax
40d3f1:	50                   	push   %eax
40d3f2:	50                   	push   %eax
40d3f3:	50                   	push   %eax
40d3f4:	50                   	push   %eax
40d3f5:	e8 40 ff ff ff       	call   0x40d33a
40d3fa:	83 c4 14             	add    $0x14,%esp
40d3fd:	c3                   	ret
40d3fe:	8b ff                	mov    %edi,%edi
40d400:	56                   	push   %esi
40d401:	33 f6                	xor    %esi,%esi
40d403:	56                   	push   %esi
40d404:	56                   	push   %esi
40d405:	56                   	push   %esi
40d406:	56                   	push   %esi
40d407:	56                   	push   %esi
40d408:	e8 2d ff ff ff       	call   0x40d33a
40d40d:	83 c4 14             	add    $0x14,%esp
40d410:	56                   	push   %esi
40d411:	56                   	push   %esi
40d412:	56                   	push   %esi
40d413:	56                   	push   %esi
40d414:	56                   	push   %esi
40d415:	e8 01 00 00 00       	call   0x40d41b
40d41a:	cc                   	int3
40d41b:	6a 17                	push   $0x17
40d41d:	ff 15 a4 11 43 00    	call   *0x4311a4
40d423:	85 c0                	test   %eax,%eax
40d425:	74 05                	je     0x40d42c
40d427:	6a 05                	push   $0x5
40d429:	59                   	pop    %ecx
40d42a:	cd 29                	int    $0x29
40d42c:	56                   	push   %esi
40d42d:	6a 01                	push   $0x1
40d42f:	be 17 04 00 c0       	mov    $0xc0000417,%esi
40d434:	56                   	push   %esi
40d435:	6a 02                	push   $0x2
40d437:	e8 b6 fd ff ff       	call   0x40d1f2
40d43c:	83 c4 0c             	add    $0xc,%esp
40d43f:	56                   	push   %esi
40d440:	ff 15 dc 10 43 00    	call   *0x4310dc
40d446:	50                   	push   %eax
40d447:	ff 15 ac 11 43 00    	call   *0x4311ac
40d44d:	5e                   	pop    %esi
40d44e:	c3                   	ret
40d44f:	8b ff                	mov    %edi,%edi
40d451:	55                   	push   %ebp
40d452:	8b ec                	mov    %esp,%ebp
40d454:	56                   	push   %esi
40d455:	8b 35 c0 d0 43 00    	mov    0x43d0c0,%esi
40d45b:	57                   	push   %edi
40d45c:	8b 3d 80 f6 43 00    	mov    0x43f680,%edi
40d462:	ff 75 08             	push   0x8(%ebp)
40d465:	33 fe                	xor    %esi,%edi
40d467:	e8 57 fc ff ff       	call   0x40d0c3
40d46c:	59                   	pop    %ecx
40d46d:	83 e6 1f             	and    $0x1f,%esi
40d470:	a3 80 f6 43 00       	mov    %eax,0x43f680
40d475:	8b ce                	mov    %esi,%ecx
40d477:	d3 cf                	ror    %cl,%edi
40d479:	8b c7                	mov    %edi,%eax
40d47b:	5f                   	pop    %edi
40d47c:	5e                   	pop    %esi
40d47d:	5d                   	pop    %ebp
40d47e:	c3                   	ret
40d47f:	6a 0c                	push   $0xc
40d481:	68 18 ab 43 00       	push   $0x43ab18
40d486:	e8 45 d0 ff ff       	call   0x40a4d0
40d48b:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40d48f:	8b 45 08             	mov    0x8(%ebp),%eax
40d492:	ff 30                	push   (%eax)
40d494:	e8 38 05 01 00       	call   0x41d9d1
40d499:	59                   	pop    %ecx
40d49a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d49e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d4a1:	e8 3b 20 00 00       	call   0x40f4e1
40d4a6:	8b f0                	mov    %eax,%esi
40d4a8:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40d4ab:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d4b2:	e8 17 00 00 00       	call   0x40d4ce
40d4b7:	8b c6                	mov    %esi,%eax
40d4b9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d4bc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d4c3:	59                   	pop    %ecx
40d4c4:	5f                   	pop    %edi
40d4c5:	5e                   	pop    %esi
40d4c6:	5b                   	pop    %ebx
40d4c7:	c9                   	leave
40d4c8:	c2 0c 00             	ret    $0xc
40d4cb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40d4ce:	8b 45 10             	mov    0x10(%ebp),%eax
40d4d1:	ff 30                	push   (%eax)
40d4d3:	e8 0d 05 01 00       	call   0x41d9e5
40d4d8:	59                   	pop    %ecx
40d4d9:	c3                   	ret
40d4da:	8b ff                	mov    %edi,%edi
40d4dc:	55                   	push   %ebp
40d4dd:	8b ec                	mov    %esp,%ebp
40d4df:	81 ec 74 04 00 00    	sub    $0x474,%esp
40d4e5:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40d4ea:	33 c5                	xor    %ebp,%eax
40d4ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d4ef:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40d4f3:	8b 45 10             	mov    0x10(%ebp),%eax
40d4f6:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d4f9:	53                   	push   %ebx
40d4fa:	56                   	push   %esi
40d4fb:	8b 75 14             	mov    0x14(%ebp),%esi
40d4fe:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40d504:	75 23                	jne    0x40d529
40d506:	51                   	push   %ecx
40d507:	33 db                	xor    %ebx,%ebx
40d509:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
40d50d:	53                   	push   %ebx
40d50e:	53                   	push   %ebx
40d50f:	53                   	push   %ebx
40d510:	53                   	push   %ebx
40d511:	53                   	push   %ebx
40d512:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
40d519:	e8 53 fe ff ff       	call   0x40d371
40d51e:	83 c4 18             	add    $0x18,%esp