40d13c:	6a 00                	push   $0x0
40d13e:	e8 c1 94 ff ff       	call   0x406604
40d143:	89 46 14             	mov    %eax,0x14(%esi)
40d146:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40d14d:	b2 01                	mov    $0x1,%dl
40d14f:	a1 7c 7f 40 00       	mov    0x407f7c,%eax
40d154:	e8 73 66 ff ff       	call   0x4037cc
40d159:	89 46 20             	mov    %eax,0x20(%esi)
40d15c:	8b c6                	mov    %esi,%eax
40d15e:	84 db                	test   %bl,%bl
40d160:	74 0f                	je     0x40d171
40d162:	e8 0d 6a ff ff       	call   0x403b74
40d167:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40d16e:	83 c4 0c             	add    $0xc,%esp
40d171:	8b c6                	mov    %esi,%eax
40d173:	5e                   	pop    %esi
40d174:	5b                   	pop    %ebx
40d175:	c3                   	ret
40d176:	8b c0                	mov    %eax,%eax
40d178:	53                   	push   %ebx
40d179:	56                   	push   %esi
40d17a:	e8 05 6a ff ff       	call   0x403b84
40d17f:	8b da                	mov    %edx,%ebx
40d181:	8b f0                	mov    %eax,%esi
40d183:	8b c6                	mov    %esi,%eax
40d185:	e8 7a 00 00 00       	call   0x40d204
40d18a:	8b d3                	mov    %ebx,%edx
40d18c:	80 e2 fc             	and    $0xfc,%dl
40d18f:	8b c6                	mov    %esi,%eax
40d191:	e8 56 66 ff ff       	call   0x4037ec
40d196:	8b 46 10             	mov    0x10(%esi),%eax
40d199:	50                   	push   %eax
40d19a:	e8 55 94 ff ff       	call   0x4065f4
40d19f:	8b 46 14             	mov    0x14(%esi),%eax
40d1a2:	50                   	push   %eax
40d1a3:	e8 4c 94 ff ff       	call   0x4065f4
40d1a8:	8b 46 20             	mov    0x20(%esi),%eax
40d1ab:	e8 4c 66 ff ff       	call   0x4037fc
40d1b0:	84 db                	test   %bl,%bl
40d1b2:	7e 07                	jle    0x40d1bb
40d1b4:	8b c6                	mov    %esi,%eax
40d1b6:	e8 b1 69 ff ff       	call   0x403b6c
40d1bb:	5e                   	pop    %esi
40d1bc:	5b                   	pop    %ebx
40d1bd:	c3                   	ret
40d1be:	8b c0                	mov    %eax,%eax
40d1c0:	8b 40 10             	mov    0x10(%eax),%eax
40d1c3:	50                   	push   %eax
40d1c4:	e8 bb 95 ff ff       	call   0x406784
40d1c9:	c3                   	ret
40d1ca:	8b c0                	mov    %eax,%eax
40d1cc:	8b 40 10             	mov    0x10(%eax),%eax
40d1cf:	50                   	push   %eax
40d1d0:	e8 c7 95 ff ff       	call   0x40679c
40d1d5:	c3                   	ret
40d1d6:	8b c0                	mov    %eax,%eax
40d1d8:	8b 40 14             	mov    0x14(%eax),%eax
40d1db:	50                   	push   %eax
40d1dc:	e8 bb 95 ff ff       	call   0x40679c
40d1e1:	c3                   	ret
40d1e2:	8b c0                	mov    %eax,%eax
40d1e4:	8b 50 18             	mov    0x18(%eax),%edx
40d1e7:	52                   	push   %edx
40d1e8:	8b 40 10             	mov    0x10(%eax),%eax
40d1eb:	50                   	push   %eax
40d1ec:	e8 eb 95 ff ff       	call   0x4067dc
40d1f1:	c3                   	ret
40d1f2:	8b c0                	mov    %eax,%eax
40d1f4:	8b 50 18             	mov    0x18(%eax),%edx
40d1f7:	52                   	push   %edx
40d1f8:	8b 40 14             	mov    0x14(%eax),%eax
40d1fb:	50                   	push   %eax
40d1fc:	e8 db 95 ff ff       	call   0x4067dc
40d201:	c3                   	ret
40d202:	8b c0                	mov    %eax,%eax
40d204:	53                   	push   %ebx
40d205:	56                   	push   %esi
40d206:	57                   	push   %edi
40d207:	55                   	push   %ebp
40d208:	83 c4 f8             	add    $0xfffffff8,%esp
40d20b:	8b e8                	mov    %eax,%ebp
40d20d:	b3 01                	mov    $0x1,%bl
40d20f:	e8 68 94 ff ff       	call   0x40667c
40d214:	8b f8                	mov    %eax,%edi
40d216:	3b 7d 24             	cmp    0x24(%ebp),%edi
40d219:	0f 84 84 00 00 00    	je     0x40d2a3
40d21f:	8b c5                	mov    %ebp,%eax
40d221:	e8 9a ff ff ff       	call   0x40d1c0
40d226:	8b 45 28             	mov    0x28(%ebp),%eax
40d229:	89 44 24 04          	mov    %eax,0x4(%esp)
40d22d:	8b d4                	mov    %esp,%edx
40d22f:	8b 45 20             	mov    0x20(%ebp),%eax
40d232:	e8 d5 fd ff ff       	call   0x40d00c
40d237:	8b 04 24             	mov    (%esp),%eax
40d23a:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d23e:	0f 97 c3             	seta   %bl
40d241:	84 db                	test   %bl,%bl
40d243:	74 24                	je     0x40d269
40d245:	8d 45 0c             	lea    0xc(%ebp),%eax
40d248:	e8 13 fd ff ff       	call   0x40cf60
40d24d:	eb 1a                	jmp    0x40d269
40d24f:	8d 45 0c             	lea    0xc(%ebp),%eax
40d252:	ba ff ff 00 00       	mov    $0xffff,%edx
40d257:	e8 24 fd ff ff       	call   0x40cf80
40d25c:	8b f0                	mov    %eax,%esi
40d25e:	85 f6                	test   %esi,%esi
40d260:	74 07                	je     0x40d269
40d262:	8b c5                	mov    %ebp,%eax
40d264:	e8 8b ff ff ff       	call   0x40d1f4
40d269:	8d 45 0c             	lea    0xc(%ebp),%eax
40d26c:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40d271:	e8 0a fd ff ff       	call   0x40cf80
40d276:	3d ff ff 00 00       	cmp    $0xffff,%eax
40d27b:	75 d2                	jne    0x40d24f
40d27d:	8b c5                	mov    %ebp,%eax
40d27f:	e8 3c ff ff ff       	call   0x40d1c0
40d284:	84 db                	test   %bl,%bl
40d286:	74 08                	je     0x40d290
40d288:	8d 45 0c             	lea    0xc(%ebp),%eax
40d28b:	e8 dc fc ff ff       	call   0x40cf6c
40d290:	89 7d 24             	mov    %edi,0x24(%ebp)
40d293:	8d 45 28             	lea    0x28(%ebp),%eax
40d296:	e8 c5 fc ff ff       	call   0x40cf60
40d29b:	48                   	dec    %eax
40d29c:	3b 44 24 04          	cmp    0x4(%esp),%eax
40d2a0:	0f 94 c3             	sete   %bl
40d2a3:	ff 45 1c             	incl   0x1c(%ebp)
40d2a6:	8b c3                	mov    %ebx,%eax
40d2a8:	59                   	pop    %ecx
40d2a9:	5a                   	pop    %edx
40d2aa:	5d                   	pop    %ebp
40d2ab:	5f                   	pop    %edi
40d2ac:	5e                   	pop    %esi
40d2ad:	5b                   	pop    %ebx
40d2ae:	c3                   	ret
40d2af:	90                   	nop
40d2b0:	53                   	push   %ebx
40d2b1:	51                   	push   %ecx
40d2b2:	8b d8                	mov    %eax,%ebx
40d2b4:	8b d4                	mov    %esp,%edx
40d2b6:	8b 43 20             	mov    0x20(%ebx),%eax
40d2b9:	e8 4e fd ff ff       	call   0x40d00c
40d2be:	ff 4b 1c             	decl   0x1c(%ebx)
40d2c1:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40d2c5:	75 20                	jne    0x40d2e7
40d2c7:	33 c0                	xor    %eax,%eax
40d2c9:	89 43 24             	mov    %eax,0x24(%ebx)
40d2cc:	8d 43 0c             	lea    0xc(%ebx),%eax
40d2cf:	ba ff ff 00 00       	mov    $0xffff,%edx
40d2d4:	e8 a7 fc ff ff       	call   0x40cf80
40d2d9:	8b c3                	mov    %ebx,%eax
40d2db:	e8 f8 fe ff ff       	call   0x40d1d8
40d2e0:	8b c3                	mov    %ebx,%eax
40d2e2:	e8 e5 fe ff ff       	call   0x40d1cc
40d2e7:	8b 04 24             	mov    (%esp),%eax
40d2ea:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d2ee:	75 0a                	jne    0x40d2fa
40d2f0:	8b d4                	mov    %esp,%edx
40d2f2:	8b 43 20             	mov    0x20(%ebx),%eax
40d2f5:	e8 a6 fd ff ff       	call   0x40d0a0
40d2fa:	5a                   	pop    %edx
40d2fb:	5b                   	pop    %ebx
40d2fc:	c3                   	ret
40d2fd:	8d 40 00             	lea    0x0(%eax),%eax
40d300:	53                   	push   %ebx
40d301:	56                   	push   %esi
40d302:	57                   	push   %edi
40d303:	51                   	push   %ecx
40d304:	8b f8                	mov    %eax,%edi
40d306:	8b d4                	mov    %esp,%edx
40d308:	8b 47 20             	mov    0x20(%edi),%eax
40d30b:	e8 fc fc ff ff       	call   0x40d00c
40d310:	8b 04 24             	mov    (%esp),%eax
40d313:	ff 40 0c             	incl   0xc(%eax)
40d316:	8b 04 24             	mov    (%esp),%eax
40d319:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40d31d:	0f 97 c3             	seta   %bl
40d320:	e8 57 93 ff ff       	call   0x40667c
40d325:	3b 47 24             	cmp    0x24(%edi),%eax
40d328:	74 40                	je     0x40d36a
40d32a:	84 db                	test   %bl,%bl
40d32c:	75 3c                	jne    0x40d36a
40d32e:	8b c7                	mov    %edi,%eax
40d330:	e8 af fe ff ff       	call   0x40d1e4
40d335:	eb 27                	jmp    0x40d35e
40d337:	8d 47 0c             	lea    0xc(%edi),%eax
40d33a:	e8 21 fc ff ff       	call   0x40cf60
40d33f:	8b f0                	mov    %eax,%esi
40d341:	81 fe ff ff 00 00    	cmp    $0xffff,%esi
40d347:	75 07                	jne    0x40d350
40d349:	8b c7                	mov    %edi,%eax
40d34b:	e8 88 fe ff ff       	call   0x40d1d8
40d350:	6a 00                	push   $0x0
40d352:	e8 a1 fa ff ff       	call   0x40cdf8
40d357:	8b c7                	mov    %edi,%eax
40d359:	e8 86 fe ff ff       	call   0x40d1e4
40d35e:	8d 47 0c             	lea    0xc(%edi),%eax
40d361:	e8 06 fc ff ff       	call   0x40cf6c
40d366:	85 c0                	test   %eax,%eax
40d368:	7e cd                	jle    0x40d337
40d36a:	5a                   	pop    %edx
40d36b:	5f                   	pop    %edi
40d36c:	5e                   	pop    %esi
40d36d:	5b                   	pop    %ebx
40d36e:	c3                   	ret
40d36f:	90                   	nop
40d370:	53                   	push   %ebx
40d371:	51                   	push   %ecx
40d372:	8b d8                	mov    %eax,%ebx
40d374:	8b d4                	mov    %esp,%edx
40d376:	8b 43 20             	mov    0x20(%ebx),%eax
40d379:	e8 8e fc ff ff       	call   0x40d00c
40d37e:	8b 04 24             	mov    (%esp),%eax
40d381:	ff 48 0c             	decl   0xc(%eax)
40d384:	8b 04 24             	mov    (%esp),%eax
40d387:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d38b:	75 48                	jne    0x40d3d5
40d38d:	8b d4                	mov    %esp,%edx
40d38f:	8b 43 20             	mov    0x20(%ebx),%eax
40d392:	e8 09 fd ff ff       	call   0x40d0a0
40d397:	e8 e0 92 ff ff       	call   0x40667c
40d39c:	3b 43 24             	cmp    0x24(%ebx),%eax
40d39f:	74 34                	je     0x40d3d5
40d3a1:	8d 43 0c             	lea    0xc(%ebx),%eax
40d3a4:	e8 b7 fb ff ff       	call   0x40cf60
40d3a9:	8b c8                	mov    %eax,%ecx
40d3ab:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40d3b1:	75 09                	jne    0x40d3bc
40d3b3:	8b c3                	mov    %ebx,%eax
40d3b5:	e8 1e fe ff ff       	call   0x40d1d8
40d3ba:	eb 19                	jmp    0x40d3d5
40d3bc:	85 c9                	test   %ecx,%ecx
40d3be:	7f 15                	jg     0x40d3d5
40d3c0:	8b c1                	mov    %ecx,%eax
40d3c2:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40d3c7:	99                   	cltd
40d3c8:	f7 f9                	idiv   %ecx
40d3ca:	85 d2                	test   %edx,%edx
40d3cc:	75 07                	jne    0x40d3d5
40d3ce:	8b c3                	mov    %ebx,%eax
40d3d0:	e8 03 fe ff ff       	call   0x40d1d8
40d3d5:	5a                   	pop    %edx
40d3d6:	5b                   	pop    %ebx
40d3d7:	c3                   	ret
40d3d8:	8b 10                	mov    (%eax),%edx
40d3da:	33 c9                	xor    %ecx,%ecx
40d3dc:	89 08                	mov    %ecx,(%eax)
40d3de:	8b c2                	mov    %edx,%eax
40d3e0:	e8 17 64 ff ff       	call   0x4037fc
40d3e5:	c3                   	ret
40d3e6:	8b c0                	mov    %eax,%eax
40d3e8:	53                   	push   %ebx
40d3e9:	56                   	push   %esi
40d3ea:	57                   	push   %edi
40d3eb:	8b f9                	mov    %ecx,%edi
40d3ed:	8b f2                	mov    %edx,%esi
40d3ef:	8b d8                	mov    %eax,%ebx
40d3f1:	85 db                	test   %ebx,%ebx
40d3f3:	74 0b                	je     0x40d400
40d3f5:	57                   	push   %edi
40d3f6:	56                   	push   %esi
40d3f7:	53                   	push   %ebx
40d3f8:	8b 03                	mov    (%ebx),%eax
40d3fa:	ff 10                	call   *(%eax)
40d3fc:	85 c0                	test   %eax,%eax
40d3fe:	74 04                	je     0x40d404
40d400:	33 c0                	xor    %eax,%eax
40d402:	eb 02                	jmp    0x40d406
40d404:	b0 01                	mov    $0x1,%al
40d406:	5f                   	pop    %edi
40d407:	5e                   	pop    %esi
40d408:	5b                   	pop    %ebx
40d409:	c3                   	ret
40d40a:	8b c0                	mov    %eax,%eax
40d40c:	55                   	push   %ebp
40d40d:	8b ec                	mov    %esp,%ebp
40d40f:	6a 00                	push   $0x0
40d411:	53                   	push   %ebx
40d412:	56                   	push   %esi
40d413:	57                   	push   %edi
40d414:	8b f9                	mov    %ecx,%edi
40d416:	8b f2                	mov    %edx,%esi
40d418:	8b d8                	mov    %eax,%ebx
40d41a:	33 c0                	xor    %eax,%eax
40d41c:	55                   	push   %ebp
40d41d:	68 83 d4 40 00       	push   $0x40d483
40d422:	64 ff 30             	push   %fs:(%eax)
40d425:	64 89 20             	mov    %esp,%fs:(%eax)
40d428:	85 db                	test   %ebx,%ebx
40d42a:	74 39                	je     0x40d465
40d42c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d42f:	e8 44 88 ff ff       	call   0x405c78
40d434:	8b c8                	mov    %eax,%ecx
40d436:	ba 94 d4 40 00       	mov    $0x40d494,%edx
40d43b:	8b c3                	mov    %ebx,%eax
40d43d:	e8 6e 64 ff ff       	call   0x4038b0
40d442:	84 c0                	test   %al,%al
40d444:	74 10                	je     0x40d456
40d446:	8b cf                	mov    %edi,%ecx
40d448:	8b d6                	mov    %esi,%edx
40d44a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d44d:	e8 96 ff ff ff       	call   0x40d3e8
40d452:	84 c0                	test   %al,%al
40d454:	75 13                	jne    0x40d469
40d456:	8b cf                	mov    %edi,%ecx
40d458:	8b d6                	mov    %esi,%edx
40d45a:	8b c3                	mov    %ebx,%eax
40d45c:	e8 4f 64 ff ff       	call   0x4038b0
40d461:	84 c0                	test   %al,%al
40d463:	75 04                	jne    0x40d469
40d465:	33 c0                	xor    %eax,%eax
40d467:	eb 02                	jmp    0x40d46b
40d469:	b0 01                	mov    $0x1,%al
40d46b:	8b d8                	mov    %eax,%ebx
40d46d:	33 c0                	xor    %eax,%eax
40d46f:	5a                   	pop    %edx
40d470:	59                   	pop    %ecx
40d471:	59                   	pop    %ecx
40d472:	64 89 10             	mov    %edx,%fs:(%eax)
40d475:	68 8a d4 40 00       	push   $0x40d48a
40d47a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d47d:	e8 f6 87 ff ff       	call   0x405c78
40d482:	c3                   	ret
40d483:	e9 c4 6a ff ff       	jmp    0x403f4c
40d488:	eb f0                	jmp    0x40d47a
40d48a:	8b c3                	mov    %ebx,%eax
40d48c:	5f                   	pop    %edi
40d48d:	5e                   	pop    %esi
40d48e:	5b                   	pop    %ebx
40d48f:	59                   	pop    %ecx
40d490:	5d                   	pop    %ebp
40d491:	c3                   	ret
40d49a:	00 00                	add    %al,(%eax)
40d49c:	c0 00 00             	rolb   $0x0,(%eax)
40d49f:	00 00                	add    %al,(%eax)
40d4a1:	00 00                	add    %al,(%eax)
40d4a3:	46                   	inc    %esi
40d4a4:	55                   	push   %ebp
40d4a5:	8b ec                	mov    %esp,%ebp
40d4a7:	83 c4 f4             	add    $0xfffffff4,%esp
40d4aa:	53                   	push   %ebx
40d4ab:	8b d8                	mov    %eax,%ebx
40d4ad:	52                   	push   %edx
40d4ae:	e8 e1 92 ff ff       	call   0x406794
40d4b3:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d4b6:	33 c0                	xor    %eax,%eax
40d4b8:	55                   	push   %ebp
40d4b9:	68 16 d5 40 00       	push   $0x40d516
40d4be:	64 ff 30             	push   %fs:(%eax)
40d4c1:	64 89 20             	mov    %esp,%fs:(%eax)