40a05f:	8b c7                	mov    %edi,%eax
40a061:	5f                   	pop    %edi
40a062:	5e                   	pop    %esi
40a063:	5b                   	pop    %ebx
40a064:	5d                   	pop    %ebp
40a065:	c2 04 00             	ret    $0x4
40a068:	cc                   	int3
40a069:	cc                   	int3
40a06a:	cc                   	int3
40a06b:	cc                   	int3
40a06c:	cc                   	int3
40a06d:	cc                   	int3
40a06e:	cc                   	int3
40a06f:	cc                   	int3
40a070:	8b 41 08             	mov    0x8(%ecx),%eax
40a073:	c3                   	ret
40a074:	cc                   	int3
40a075:	cc                   	int3
40a076:	cc                   	int3
40a077:	cc                   	int3
40a078:	cc                   	int3
40a079:	cc                   	int3
40a07a:	cc                   	int3
40a07b:	cc                   	int3
40a07c:	cc                   	int3
40a07d:	cc                   	int3
40a07e:	cc                   	int3
40a07f:	cc                   	int3
40a080:	33 c0                	xor    %eax,%eax
40a082:	40                   	inc    %eax
40a083:	f0 0f c1 41 08       	lock xadd %eax,0x8(%ecx)
40a088:	40                   	inc    %eax
40a089:	c3                   	ret
40a08a:	8b ff                	mov    %edi,%edi
40a08c:	55                   	push   %ebp
40a08d:	8b ec                	mov    %esp,%ebp
40a08f:	51                   	push   %ecx
40a090:	51                   	push   %ecx
40a091:	8b c1                	mov    %ecx,%eax
40a093:	53                   	push   %ebx
40a094:	57                   	push   %edi
40a095:	33 ff                	xor    %edi,%edi
40a097:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a09a:	8b 58 08             	mov    0x8(%eax),%ebx
40a09d:	47                   	inc    %edi
40a09e:	3b 58 0c             	cmp    0xc(%eax),%ebx
40a0a1:	73 6a                	jae    0x40a10d
40a0a3:	56                   	push   %esi
40a0a4:	85 ff                	test   %edi,%edi
40a0a6:	78 64                	js     0x40a10c
40a0a8:	8b 33                	mov    (%ebx),%esi
40a0aa:	85 f6                	test   %esi,%esi
40a0ac:	74 56                	je     0x40a104
40a0ae:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a0b2:	8b 7e 08             	mov    0x8(%esi),%edi
40a0b5:	85 ff                	test   %edi,%edi
40a0b7:	74 4b                	je     0x40a104
40a0b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a0bc:	8b cf                	mov    %edi,%ecx
40a0be:	50                   	push   %eax
40a0bf:	68 98 2b 40 00       	push   $0x402b98
40a0c4:	ff 76 0c             	push   0xc(%esi)
40a0c7:	ff 15 28 63 41 00    	call   *0x416328
40a0cd:	ff d7                	call   *%edi
40a0cf:	8b f8                	mov    %eax,%edi
40a0d1:	85 ff                	test   %edi,%edi
40a0d3:	78 15                	js     0x40a0ea
40a0d5:	8d 46 14             	lea    0x14(%esi),%eax
40a0d8:	50                   	push   %eax
40a0d9:	6a 05                	push   $0x5
40a0db:	6a 04                	push   $0x4
40a0dd:	ff 75 fc             	push   -0x4(%ebp)
40a0e0:	ff 36                	push   (%esi)
40a0e2:	ff 15 14 62 41 00    	call   *0x416214
40a0e8:	8b f8                	mov    %eax,%edi
40a0ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a0ed:	85 c9                	test   %ecx,%ecx
40a0ef:	74 10                	je     0x40a101
40a0f1:	8b 01                	mov    (%ecx),%eax
40a0f3:	51                   	push   %ecx
40a0f4:	8b 70 08             	mov    0x8(%eax),%esi
40a0f7:	8b ce                	mov    %esi,%ecx
40a0f9:	ff 15 28 63 41 00    	call   *0x416328
40a0ff:	ff d6                	call   *%esi
40a101:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a104:	83 c3 04             	add    $0x4,%ebx
40a107:	3b 58 0c             	cmp    0xc(%eax),%ebx
40a10a:	72 98                	jb     0x40a0a4
40a10c:	5e                   	pop    %esi
40a10d:	8b c7                	mov    %edi,%eax
40a10f:	5f                   	pop    %edi
40a110:	5b                   	pop    %ebx
40a111:	c9                   	leave
40a112:	c3                   	ret
40a113:	8b ff                	mov    %edi,%edi
40a115:	55                   	push   %ebp
40a116:	8b ec                	mov    %esp,%ebp
40a118:	81 ec 18 02 00 00    	sub    $0x218,%esp
40a11e:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40a123:	33 c5                	xor    %ebp,%eax
40a125:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a128:	53                   	push   %ebx
40a129:	33 c0                	xor    %eax,%eax
40a12b:	56                   	push   %esi
40a12c:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
40a132:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40a138:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40a13e:	57                   	push   %edi
40a13f:	50                   	push   %eax
40a140:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40a146:	50                   	push   %eax
40a147:	e8 b3 04 00 00       	call   0x40a5ff
40a14c:	8b b5 ec fd ff ff    	mov    -0x214(%ebp),%esi
40a152:	8b d8                	mov    %eax,%ebx
40a154:	85 db                	test   %ebx,%ebx
40a156:	0f 88 ee 00 00 00    	js     0x40a24a
40a15c:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40a162:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40a168:	51                   	push   %ecx
40a169:	33 db                	xor    %ebx,%ebx
40a16b:	53                   	push   %ebx
40a16c:	53                   	push   %ebx
40a16d:	89 9d e8 fd ff ff    	mov    %ebx,-0x218(%ebp)
40a173:	8b 38                	mov    (%eax),%edi
40a175:	53                   	push   %ebx
40a176:	6a ff                	push   $0xffffffff
40a178:	50                   	push   %eax
40a179:	8b 4f 24             	mov    0x24(%edi),%ecx
40a17c:	ff 15 28 63 41 00    	call   *0x416328
40a182:	ff 57 24             	call   *0x24(%edi)
40a185:	85 c0                	test   %eax,%eax
40a187:	0f 88 a1 00 00 00    	js     0x40a22e
40a18d:	39 9d e8 fd ff ff    	cmp    %ebx,-0x218(%ebp)
40a193:	0f 84 95 00 00 00    	je     0x40a22e
40a199:	56                   	push   %esi
40a19a:	ff 15 7c 61 41 00    	call   *0x41617c
40a1a0:	50                   	push   %eax
40a1a1:	56                   	push   %esi
40a1a2:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a1a8:	68 04 01 00 00       	push   $0x104
40a1ad:	50                   	push   %eax
40a1ae:	ff 15 b4 62 41 00    	call   *0x4162b4
40a1b4:	83 c4 10             	add    $0x10,%esp
40a1b7:	8b c8                	mov    %eax,%ecx
40a1b9:	e8 4e aa ff ff       	call   0x404c0c
40a1be:	33 c0                	xor    %eax,%eax
40a1c0:	8d bd f4 fd ff ff    	lea    -0x20c(%ebp),%edi
40a1c6:	8b df                	mov    %edi,%ebx
40a1c8:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
40a1cc:	66 39 85 f4 fd ff ff 	cmp    %ax,-0x20c(%ebp)
40a1d3:	74 2a                	je     0x40a1ff
40a1d5:	33 f6                	xor    %esi,%esi
40a1d7:	53                   	push   %ebx
40a1d8:	ff 15 f0 61 41 00    	call   *0x4161f0
40a1de:	0f b7 0b             	movzwl (%ebx),%ecx
40a1e1:	83 f9 5c             	cmp    $0x5c,%ecx
40a1e4:	74 0a                	je     0x40a1f0
40a1e6:	83 f9 2f             	cmp    $0x2f,%ecx
40a1e9:	74 05                	je     0x40a1f0
40a1eb:	83 f9 3a             	cmp    $0x3a,%ecx
40a1ee:	75 02                	jne    0x40a1f2
40a1f0:	8b f8                	mov    %eax,%edi
40a1f2:	8b d8                	mov    %eax,%ebx
40a1f4:	66 39 30             	cmp    %si,(%eax)
40a1f7:	75 de                	jne    0x40a1d7
40a1f9:	8b b5 ec fd ff ff    	mov    -0x214(%ebp),%esi
40a1ff:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a205:	2b f8                	sub    %eax,%edi
40a207:	d1 ff                	sar    $1,%edi
40a209:	81 ff 04 01 00 00    	cmp    $0x104,%edi
40a20f:	73 14                	jae    0x40a225
40a211:	03 ff                	add    %edi,%edi
40a213:	81 ff 08 02 00 00    	cmp    $0x208,%edi
40a219:	73 61                	jae    0x40a27c
40a21b:	33 c0                	xor    %eax,%eax
40a21d:	66 89 84 3d f4 fd ff 	mov    %ax,-0x20c(%ebp,%edi,1)
40a224:	ff
40a225:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a22b:	50                   	push   %eax
40a22c:	eb 01                	jmp    0x40a22f
40a22e:	53                   	push   %ebx
40a22f:	56                   	push   %esi
40a230:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40a236:	ff 15 9c 61 41 00    	call   *0x41619c
40a23c:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40a242:	8b d8                	mov    %eax,%ebx
40a244:	ff 15 b8 61 41 00    	call   *0x4161b8
40a24a:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40a250:	85 c0                	test   %eax,%eax
40a252:	74 10                	je     0x40a264
40a254:	8b 08                	mov    (%eax),%ecx
40a256:	50                   	push   %eax
40a257:	8b 79 08             	mov    0x8(%ecx),%edi
40a25a:	8b cf                	mov    %edi,%ecx
40a25c:	ff 15 28 63 41 00    	call   *0x416328
40a262:	ff d7                	call   *%edi
40a264:	56                   	push   %esi
40a265:	ff 15 b8 61 41 00    	call   *0x4161b8
40a26b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a26e:	8b c3                	mov    %ebx,%eax
40a270:	5f                   	pop    %edi
40a271:	5e                   	pop    %esi
40a272:	33 cd                	xor    %ebp,%ecx
40a274:	5b                   	pop    %ebx
40a275:	e8 76 7d 00 00       	call   0x411ff0
40a27a:	c9                   	leave
40a27b:	c3                   	ret
40a27c:	e8 b7 7e 00 00       	call   0x412138
40a281:	cc                   	int3
40a282:	8b ff                	mov    %edi,%edi
40a284:	55                   	push   %ebp
40a285:	8b ec                	mov    %esp,%ebp
40a287:	81 ec c0 01 00 00    	sub    $0x1c0,%esp
40a28d:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40a292:	33 c5                	xor    %ebp,%eax
40a294:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a297:	53                   	push   %ebx
40a298:	56                   	push   %esi
40a299:	33 db                	xor    %ebx,%ebx
40a29b:	89 95 58 fe ff ff    	mov    %edx,-0x1a8(%ebp)
40a2a1:	57                   	push   %edi
40a2a2:	8b fa                	mov    %edx,%edi
40a2a4:	8b c1                	mov    %ecx,%eax
40a2a6:	89 85 60 fe ff ff    	mov    %eax,-0x1a0(%ebp)
40a2ac:	8b f3                	mov    %ebx,%esi
40a2ae:	89 b5 5c fe ff ff    	mov    %esi,-0x1a4(%ebp)
40a2b4:	85 ff                	test   %edi,%edi
40a2b6:	74 36                	je     0x40a2ee
40a2b8:	ba 7c 27 40 00       	mov    $0x40277c,%edx
40a2bd:	e8 ce a8 ff ff       	call   0x404b90
40a2c2:	85 c0                	test   %eax,%eax
40a2c4:	75 28                	jne    0x40a2ee
40a2c6:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40a2cc:	50                   	push   %eax
40a2cd:	68 b0 2f 40 00       	push   $0x402fb0
40a2d2:	6a 01                	push   $0x1
40a2d4:	53                   	push   %ebx
40a2d5:	68 6c 27 40 00       	push   $0x40276c
40a2da:	ff 15 20 62 41 00    	call   *0x416220
40a2e0:	85 c0                	test   %eax,%eax
40a2e2:	0f 89 bd 00 00 00    	jns    0x40a3a5
40a2e8:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40a2ee:	8b c3                	mov    %ebx,%eax
40a2f0:	8b d8                	mov    %eax,%ebx
40a2f2:	85 f6                	test   %esi,%esi
40a2f4:	74 10                	je     0x40a306
40a2f6:	8b 0e                	mov    (%esi),%ecx
40a2f8:	56                   	push   %esi
40a2f9:	8b 71 08             	mov    0x8(%ecx),%esi
40a2fc:	8b ce                	mov    %esi,%ecx
40a2fe:	ff 15 28 63 41 00    	call   *0x416328
40a304:	ff d6                	call   *%esi
40a306:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a309:	8b c3                	mov    %ebx,%eax
40a30b:	5f                   	pop    %edi
40a30c:	5e                   	pop    %esi
40a30d:	33 cd                	xor    %ebp,%ecx
40a30f:	5b                   	pop    %ebx
40a310:	e8 db 7c 00 00       	call   0x411ff0
40a315:	c9                   	leave
40a316:	c2 04 00             	ret    $0x4
40a319:	8d 8d 64 fe ff ff    	lea    -0x19c(%ebp),%ecx
40a31f:	8b 77 04             	mov    0x4(%edi),%esi
40a322:	8d bd 64 fe ff ff    	lea    -0x19c(%ebp),%edi
40a328:	51                   	push   %ecx
40a329:	6a 01                	push   $0x1
40a32b:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
40a331:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a332:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a333:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a334:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a335:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a338:	74 34                	je     0x40a36e
40a33a:	83 f8 01             	cmp    $0x1,%eax
40a33d:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
40a343:	50                   	push   %eax
40a344:	8b 30                	mov    (%eax),%esi
40a346:	75 0e                	jne    0x40a356
40a348:	8b 4e 14             	mov    0x14(%esi),%ecx
40a34b:	ff 15 28 63 41 00    	call   *0x416328
40a351:	ff 56 14             	call   *0x14(%esi)
40a354:	eb 0c                	jmp    0x40a362
40a356:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40a359:	ff 15 28 63 41 00    	call   *0x416328
40a35f:	ff 56 1c             	call   *0x1c(%esi)
40a362:	85 c0                	test   %eax,%eax
40a364:	79 30                	jns    0x40a396
40a366:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40a36c:	eb 82                	jmp    0x40a2f0
40a36e:	83 f8 01             	cmp    $0x1,%eax
40a371:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
40a377:	50                   	push   %eax
40a378:	8b 30                	mov    (%eax),%esi
40a37a:	75 0e                	jne    0x40a38a
40a37c:	8b 4e 18             	mov    0x18(%esi),%ecx
40a37f:	ff 15 28 63 41 00    	call   *0x416328
40a385:	ff 56 18             	call   *0x18(%esi)
40a388:	eb 0c                	jmp    0x40a396
40a38a:	8b 4e 20             	mov    0x20(%esi),%ecx
40a38d:	ff 15 28 63 41 00    	call   *0x416328
40a393:	ff 56 20             	call   *0x20(%esi)
40a396:	8b bd 58 fe ff ff    	mov    -0x1a8(%ebp),%edi
40a39c:	83 c7 08             	add    $0x8,%edi
40a39f:	89 bd 58 fe ff ff    	mov    %edi,-0x1a8(%ebp)
40a3a5:	8b 07                	mov    (%edi),%eax
40a3a7:	85 c0                	test   %eax,%eax
40a3a9:	0f 85 6a ff ff ff    	jne    0x40a319
40a3af:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a3b2:	0f 85 3c 02 00 00    	jne    0x40a5f4
40a3b8:	6a 40                	push   $0x40
40a3ba:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40a3c0:	50                   	push   %eax
40a3c1:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
40a3c7:	ff 15 24 62 41 00    	call   *0x416224
40a3cd:	68 ec 2f 40 00       	push   $0x402fec
40a3d2:	be 80 00 00 00       	mov    $0x80,%esi
40a3d7:	89 9d 40 fe ff ff    	mov    %ebx,-0x1c0(%ebp)
40a3dd:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a3e3:	56                   	push   %esi
40a3e4:	50                   	push   %eax
40a3e5:	ff 15 b0 62 41 00    	call   *0x4162b0
40a3eb:	83 c4 0c             	add    $0xc,%esp
40a3ee:	8b c8                	mov    %eax,%ecx
40a3f0:	e8 17 a8 ff ff       	call   0x404c0c
40a3f5:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40a3fb:	50                   	push   %eax
40a3fc:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a402:	56                   	push   %esi
40a403:	50                   	push   %eax
40a404:	ff 15 ac 62 41 00    	call   *0x4162ac
40a40a:	83 c4 0c             	add    $0xc,%esp
40a40d:	8b c8                	mov    %eax,%ecx
40a40f:	e8 f8 a7 ff ff       	call   0x404c0c
40a414:	68 c0 2f 40 00       	push   $0x402fc0
40a419:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a41f:	56                   	push   %esi
40a420:	50                   	push   %eax
40a421:	ff 15 ac 62 41 00    	call   *0x4162ac
40a427:	83 c4 0c             	add    $0xc,%esp
40a42a:	8b c8                	mov    %eax,%ecx
40a42c:	e8 db a7 ff ff       	call   0x404c0c
40a431:	8d 8d 58 fe ff ff    	lea    -0x1a8(%ebp),%ecx
40a437:	89 9d 4c fe ff ff    	mov    %ebx,-0x1b4(%ebp)
40a43d:	51                   	push   %ecx
40a43e:	68 19 00 02 00       	push   $0x20019
40a443:	53                   	push   %ebx
40a444:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
40a44a:	89 9d 50 fe ff ff    	mov    %ebx,-0x1b0(%ebp)
40a450:	b8 00 00 00 80       	mov    $0x80000000,%eax
40a455:	89 9d 60 fe ff ff    	mov    %ebx,-0x1a0(%ebp)