41e044:	8b 75 f4             	mov    -0xc(%ebp),%esi
41e047:	39 7d fc             	cmp    %edi,-0x4(%ebp)
41e04a:	74 08                	je     0x41e054
41e04c:	ff 75 fc             	push   -0x4(%ebp)
41e04f:	e8 45 59 fe ff       	call   0x403999
41e054:	5f                   	pop    %edi
41e055:	8b c6                	mov    %esi,%eax
41e057:	5e                   	pop    %esi
41e058:	8b e5                	mov    %ebp,%esp
41e05a:	5d                   	pop    %ebp
41e05b:	c2 0c 00             	ret    $0xc
41e05e:	55                   	push   %ebp
41e05f:	8b ec                	mov    %esp,%ebp
41e061:	83 ec 4c             	sub    $0x4c,%esp
41e064:	a1 08 a0 46 00       	mov    0x46a008,%eax
41e069:	33 c5                	xor    %ebp,%eax
41e06b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e06e:	8b 55 08             	mov    0x8(%ebp),%edx
41e071:	33 c0                	xor    %eax,%eax
41e073:	53                   	push   %ebx
41e074:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e077:	56                   	push   %esi
41e078:	57                   	push   %edi
41e079:	6a 06                	push   $0x6
41e07b:	59                   	pop    %ecx
41e07c:	6a 0a                	push   $0xa
41e07e:	8d 7d b4             	lea    -0x4c(%ebp),%edi
41e081:	33 f6                	xor    %esi,%esi
41e083:	f3 ab                	rep stos %eax,%es:(%edi)
41e085:	59                   	pop    %ecx
41e086:	6a 01                	push   $0x1
41e088:	8d 7d d4             	lea    -0x2c(%ebp),%edi
41e08b:	89 75 cc             	mov    %esi,-0x34(%ebp)
41e08e:	f3 ab                	rep stos %eax,%es:(%edi)
41e090:	52                   	push   %edx
41e091:	89 75 d0             	mov    %esi,-0x30(%ebp)
41e094:	ff 15 7c b3 44 00    	call   *0x44b37c
41e09a:	89 03                	mov    %eax,(%ebx)
41e09c:	85 c0                	test   %eax,%eax
41e09e:	75 40                	jne    0x41e0e0
41e0a0:	ff 15 e8 b0 44 00    	call   *0x44b0e8
41e0a6:	0f b7 f0             	movzwl %ax,%esi
41e0a9:	81 ce 00 00 07 80    	or     $0x80070000,%esi
41e0af:	85 c0                	test   %eax,%eax
41e0b1:	0f 4e f0             	cmovle %eax,%esi
41e0b4:	b8 05 40 00 80       	mov    $0x80004005,%eax
41e0b9:	85 f6                	test   %esi,%esi
41e0bb:	0f 49 f0             	cmovns %eax,%esi
41e0be:	56                   	push   %esi
41e0bf:	68 e8 00 00 00       	push   $0xe8
41e0c4:	68 40 9b 45 00       	push   $0x459b40
41e0c9:	e8 05 57 fe ff       	call   0x4037d3
41e0ce:	68 44 9c 45 00       	push   $0x459c44
41e0d3:	56                   	push   %esi
41e0d4:	e8 56 20 02 00       	call   0x44012f
41e0d9:	59                   	pop    %ecx
41e0da:	59                   	pop    %ecx
41e0db:	e9 82 00 00 00       	jmp    0x41e162
41e0e0:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41e0e3:	51                   	push   %ecx
41e0e4:	6a 18                	push   $0x18
41e0e6:	50                   	push   %eax
41e0e7:	ff 15 bc b0 44 00    	call   *0x44b0bc
41e0ed:	b8 00 00 00 80       	mov    $0x80000000,%eax
41e0f2:	89 43 04             	mov    %eax,0x4(%ebx)
41e0f5:	89 43 08             	mov    %eax,0x8(%ebx)
41e0f8:	8b 45 b8             	mov    -0x48(%ebp),%eax
41e0fb:	89 43 0c             	mov    %eax,0xc(%ebx)
41e0fe:	8b 45 bc             	mov    -0x44(%ebp),%eax
41e101:	89 43 10             	mov    %eax,0x10(%ebx)
41e104:	8d 45 cc             	lea    -0x34(%ebp),%eax
41e107:	50                   	push   %eax
41e108:	ff 15 88 b3 44 00    	call   *0x44b388
41e10e:	85 c0                	test   %eax,%eax
41e110:	74 50                	je     0x41e162
41e112:	6a 02                	push   $0x2
41e114:	ff 75 d0             	push   -0x30(%ebp)
41e117:	ff 75 cc             	push   -0x34(%ebp)
41e11a:	ff 15 70 b3 44 00    	call   *0x44b370
41e120:	85 c0                	test   %eax,%eax
41e122:	74 3e                	je     0x41e162
41e124:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
41e127:	c7 45 d4 28 00 00 00 	movl   $0x28,-0x2c(%ebp)
41e12e:	51                   	push   %ecx
41e12f:	50                   	push   %eax
41e130:	ff 15 6c b3 44 00    	call   *0x44b36c
41e136:	85 c0                	test   %eax,%eax
41e138:	74 28                	je     0x41e162
41e13a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e13d:	2b 43 0c             	sub    0xc(%ebx),%eax
41e140:	2b 45 e8             	sub    -0x18(%ebp),%eax
41e143:	99                   	cltd
41e144:	2b c2                	sub    %edx,%eax
41e146:	d1 f8                	sar    $1,%eax
41e148:	03 45 e8             	add    -0x18(%ebp),%eax
41e14b:	89 43 04             	mov    %eax,0x4(%ebx)
41e14e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e151:	2b 45 ec             	sub    -0x14(%ebp),%eax
41e154:	2b 43 10             	sub    0x10(%ebx),%eax
41e157:	99                   	cltd
41e158:	2b c2                	sub    %edx,%eax
41e15a:	d1 f8                	sar    $1,%eax
41e15c:	03 45 ec             	add    -0x14(%ebp),%eax
41e15f:	89 43 08             	mov    %eax,0x8(%ebx)
41e162:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41e165:	8b c6                	mov    %esi,%eax
41e167:	5f                   	pop    %edi
41e168:	5e                   	pop    %esi
41e169:	33 cd                	xor    %ebp,%ecx
41e16b:	5b                   	pop    %ebx
41e16c:	e8 c5 fc 00 00       	call   0x42de36
41e171:	8b e5                	mov    %ebp,%esp
41e173:	5d                   	pop    %ebp
41e174:	c2 08 00             	ret    $0x8
41e177:	55                   	push   %ebp
41e178:	8b ec                	mov    %esp,%ebp
41e17a:	83 ec 58             	sub    $0x58,%esp
41e17d:	33 c0                	xor    %eax,%eax
41e17f:	56                   	push   %esi
41e180:	57                   	push   %edi
41e181:	8d 7d ec             	lea    -0x14(%ebp),%edi
41e184:	ab                   	stos   %eax,%es:(%edi)
41e185:	6a 0a                	push   $0xa
41e187:	59                   	pop    %ecx
41e188:	6a 07                	push   $0x7
41e18a:	ab                   	stos   %eax,%es:(%edi)
41e18b:	ab                   	stos   %eax,%es:(%edi)
41e18c:	ab                   	stos   %eax,%es:(%edi)
41e18d:	ab                   	stos   %eax,%es:(%edi)
41e18e:	33 c0                	xor    %eax,%eax
41e190:	8d 7d a8             	lea    -0x58(%ebp),%edi
41e193:	f3 ab                	rep stos %eax,%es:(%edi)
41e195:	59                   	pop    %ecx
41e196:	8d 7d d0             	lea    -0x30(%ebp),%edi
41e199:	f3 ab                	rep stos %eax,%es:(%edi)
41e19b:	8b 7d 08             	mov    0x8(%ebp),%edi
41e19e:	8d 45 ec             	lea    -0x14(%ebp),%eax
41e1a1:	50                   	push   %eax
41e1a2:	ff 77 04             	push   0x4(%edi)
41e1a5:	e8 b4 fe ff ff       	call   0x41e05e
41e1aa:	8b f0                	mov    %eax,%esi
41e1ac:	85 f6                	test   %esi,%esi
41e1ae:	79 12                	jns    0x41e1c2
41e1b0:	68 c4 9b 45 00       	push   $0x459bc4
41e1b5:	56                   	push   %esi
41e1b6:	e8 74 1f 02 00       	call   0x44012f
41e1bb:	59                   	pop    %ecx
41e1bc:	59                   	pop    %ecx
41e1bd:	e9 32 01 00 00       	jmp    0x41e2f4
41e1c2:	8b 47 04             	mov    0x4(%edi),%eax
41e1c5:	53                   	push   %ebx
41e1c6:	68 00 7f 00 00       	push   $0x7f00
41e1cb:	33 db                	xor    %ebx,%ebx
41e1cd:	c7 45 ac 1b e3 41 00 	movl   $0x41e31b,-0x54(%ebp)
41e1d4:	53                   	push   %ebx
41e1d5:	89 45 b8             	mov    %eax,-0x48(%ebp)
41e1d8:	ff 15 78 b3 44 00    	call   *0x44b378
41e1de:	89 45 c0             	mov    %eax,-0x40(%ebp)
41e1e1:	8d 45 a8             	lea    -0x58(%ebp),%eax
41e1e4:	50                   	push   %eax
41e1e5:	c7 45 cc e4 9b 45 00 	movl   $0x459be4,-0x34(%ebp)
41e1ec:	ff 15 98 b3 44 00    	call   *0x44b398
41e1f2:	66 85 c0             	test   %ax,%ax
41e1f5:	75 38                	jne    0x41e22f
41e1f7:	ff 15 e8 b0 44 00    	call   *0x44b0e8
41e1fd:	0f b7 f0             	movzwl %ax,%esi
41e200:	81 ce 00 00 07 80    	or     $0x80070000,%esi
41e206:	85 c0                	test   %eax,%eax
41e208:	0f 4e f0             	cmovle %eax,%esi
41e20b:	b8 05 40 00 80       	mov    $0x80004005,%eax
41e210:	85 f6                	test   %esi,%esi
41e212:	0f 49 f0             	cmovns %eax,%esi
41e215:	56                   	push   %esi
41e216:	68 85 00 00 00       	push   $0x85
41e21b:	68 40 9b 45 00       	push   $0x459b40
41e220:	e8 ae 55 fe ff       	call   0x4037d3
41e225:	68 0c 9c 45 00       	push   $0x459c0c
41e22a:	e9 bc 00 00 00       	jmp    0x41e2eb
41e22f:	8d 45 ec             	lea    -0x14(%ebp),%eax
41e232:	50                   	push   %eax
41e233:	ff 77 04             	push   0x4(%edi)
41e236:	53                   	push   %ebx
41e237:	53                   	push   %ebx
41e238:	ff 75 fc             	push   -0x4(%ebp)
41e23b:	ff 75 f8             	push   -0x8(%ebp)
41e23e:	ff 75 f4             	push   -0xc(%ebp)
41e241:	ff 75 f0             	push   -0x10(%ebp)
41e244:	68 00 00 00 90       	push   $0x90000000
41e249:	ff 77 08             	push   0x8(%edi)
41e24c:	ff 75 cc             	push   -0x34(%ebp)
41e24f:	68 80 00 00 00       	push   $0x80
41e254:	ff 15 90 b3 44 00    	call   *0x44b390
41e25a:	8b d8                	mov    %eax,%ebx
41e25c:	85 db                	test   %ebx,%ebx
41e25e:	75 35                	jne    0x41e295
41e260:	ff 15 e8 b0 44 00    	call   *0x44b0e8
41e266:	0f b7 f0             	movzwl %ax,%esi
41e269:	81 ce 00 00 07 80    	or     $0x80070000,%esi
41e26f:	85 c0                	test   %eax,%eax
41e271:	0f 4e f0             	cmovle %eax,%esi
41e274:	b8 05 40 00 80       	mov    $0x80004005,%eax
41e279:	85 f6                	test   %esi,%esi
41e27b:	0f 49 f0             	cmovns %eax,%esi
41e27e:	56                   	push   %esi
41e27f:	68 8b 00 00 00       	push   $0x8b
41e284:	68 40 9b 45 00       	push   $0x459b40
41e289:	e8 45 55 fe ff       	call   0x4037d3
41e28e:	68 28 9c 45 00       	push   $0x459c28
41e293:	eb 56                	jmp    0x41e2eb
41e295:	8b 47 0c             	mov    0xc(%edi),%eax
41e298:	89 18                	mov    %ebx,(%eax)
41e29a:	ff 37                	push   (%edi)
41e29c:	ff 15 28 b2 44 00    	call   *0x44b228
41e2a2:	eb 28                	jmp    0x41e2cc
41e2a4:	83 f8 ff             	cmp    $0xffffffff,%eax
41e2a7:	74 38                	je     0x41e2e1
41e2a9:	8d 45 d0             	lea    -0x30(%ebp),%eax
41e2ac:	50                   	push   %eax
41e2ad:	53                   	push   %ebx
41e2ae:	ff 15 74 b3 44 00    	call   *0x44b374
41e2b4:	85 c0                	test   %eax,%eax
41e2b6:	75 14                	jne    0x41e2cc
41e2b8:	8d 45 d0             	lea    -0x30(%ebp),%eax
41e2bb:	50                   	push   %eax
41e2bc:	ff 15 a4 b3 44 00    	call   *0x44b3a4
41e2c2:	8d 45 d0             	lea    -0x30(%ebp),%eax
41e2c5:	50                   	push   %eax
41e2c6:	ff 15 a0 b3 44 00    	call   *0x44b3a0
41e2cc:	33 c0                	xor    %eax,%eax
41e2ce:	50                   	push   %eax
41e2cf:	50                   	push   %eax
41e2d0:	50                   	push   %eax
41e2d1:	8d 45 d0             	lea    -0x30(%ebp),%eax
41e2d4:	50                   	push   %eax
41e2d5:	ff 15 4c b3 44 00    	call   *0x44b34c
41e2db:	85 c0                	test   %eax,%eax
41e2dd:	75 c5                	jne    0x41e2a4
41e2df:	eb 12                	jmp    0x41e2f3
41e2e1:	be ff ff 00 80       	mov    $0x8000ffff,%esi
41e2e6:	68 4c c0 44 00       	push   $0x44c04c
41e2eb:	56                   	push   %esi
41e2ec:	e8 3e 1e 02 00       	call   0x44012f
41e2f1:	59                   	pop    %ecx
41e2f2:	59                   	pop    %ecx
41e2f3:	5b                   	pop    %ebx
41e2f4:	ff 77 04             	push   0x4(%edi)
41e2f7:	68 e4 9b 45 00       	push   $0x459be4
41e2fc:	ff 15 94 b3 44 00    	call   *0x44b394
41e302:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
41e306:	74 09                	je     0x41e311
41e308:	ff 75 ec             	push   -0x14(%ebp)
41e30b:	ff 15 b0 b0 44 00    	call   *0x44b0b0
41e311:	5f                   	pop    %edi
41e312:	8b c6                	mov    %esi,%eax
41e314:	5e                   	pop    %esi
41e315:	8b e5                	mov    %ebp,%esp
41e317:	5d                   	pop    %ebp
41e318:	c2 04 00             	ret    $0x4
41e31b:	55                   	push   %ebp
41e31c:	8b ec                	mov    %esp,%ebp
41e31e:	56                   	push   %esi
41e31f:	57                   	push   %edi
41e320:	8b 7d 08             	mov    0x8(%ebp),%edi
41e323:	6a eb                	push   $0xffffffeb
41e325:	57                   	push   %edi
41e326:	ff 15 84 b3 44 00    	call   *0x44b384
41e32c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41e32f:	8b f0                	mov    %eax,%esi
41e331:	6a 02                	push   $0x2
41e333:	58                   	pop    %eax
41e334:	89 75 08             	mov    %esi,0x8(%ebp)
41e337:	2b c8                	sub    %eax,%ecx
41e339:	0f 84 a5 00 00 00    	je     0x41e3e4
41e33f:	83 e9 12             	sub    $0x12,%ecx
41e342:	74 52                	je     0x41e396
41e344:	8b 75 14             	mov    0x14(%ebp),%esi
41e347:	83 e9 6d             	sub    $0x6d,%ecx
41e34a:	74 2f                	je     0x41e37b
41e34c:	83 e9 01             	sub    $0x1,%ecx
41e34f:	74 09                	je     0x41e35a
41e351:	2b c8                	sub    %eax,%ecx
41e353:	75 31                	jne    0x41e386
41e355:	e9 94 00 00 00       	jmp    0x41e3ee
41e35a:	56                   	push   %esi
41e35b:	ff 75 10             	push   0x10(%ebp)
41e35e:	68 82 00 00 00       	push   $0x82
41e363:	57                   	push   %edi
41e364:	ff 15 9c b3 44 00    	call   *0x44b39c
41e36a:	6a 00                	push   $0x0
41e36c:	6a eb                	push   $0xffffffeb
41e36e:	57                   	push   %edi
41e36f:	8b f0                	mov    %eax,%esi
41e371:	ff 15 80 b3 44 00    	call   *0x44b380
41e377:	8b c6                	mov    %esi,%eax
41e379:	eb 73                	jmp    0x41e3ee
41e37b:	ff 36                	push   (%esi)
41e37d:	6a eb                	push   $0xffffffeb
41e37f:	57                   	push   %edi
41e380:	ff 15 80 b3 44 00    	call   *0x44b380
41e386:	56                   	push   %esi
41e387:	ff 75 10             	push   0x10(%ebp)
41e38a:	ff 75 0c             	push   0xc(%ebp)
41e38d:	57                   	push   %edi
41e38e:	ff 15 9c b3 44 00    	call   *0x44b39c
41e394:	eb 58                	jmp    0x41e3ee
41e396:	53                   	push   %ebx
41e397:	ff 75 10             	push   0x10(%ebp)
41e39a:	ff 15 ac b0 44 00    	call   *0x44b0ac
41e3a0:	ff 36                	push   (%esi)
41e3a2:	8b 3d b4 b0 44 00    	mov    0x44b0b4,%edi
41e3a8:	8b d8                	mov    %eax,%ebx
41e3aa:	53                   	push   %ebx
41e3ab:	ff d7                	call   *%edi
41e3ad:	68 20 00 cc 00       	push   $0xcc0020
41e3b2:	8b f0                	mov    %eax,%esi
41e3b4:	33 c9                	xor    %ecx,%ecx
41e3b6:	8b 45 08             	mov    0x8(%ebp),%eax
41e3b9:	ff 70 10             	push   0x10(%eax)
41e3bc:	ff 70 0c             	push   0xc(%eax)
41e3bf:	51                   	push   %ecx
41e3c0:	51                   	push   %ecx
41e3c1:	53                   	push   %ebx
41e3c2:	ff 70 10             	push   0x10(%eax)
41e3c5:	ff 70 0c             	push   0xc(%eax)
41e3c8:	51                   	push   %ecx
41e3c9:	51                   	push   %ecx
41e3ca:	ff 75 10             	push   0x10(%ebp)
41e3cd:	ff 15 b8 b0 44 00    	call   *0x44b0b8
41e3d3:	56                   	push   %esi
41e3d4:	53                   	push   %ebx
41e3d5:	ff d7                	call   *%edi
41e3d7:	53                   	push   %ebx
41e3d8:	ff 15 c0 b0 44 00    	call   *0x44b0c0
41e3de:	33 c0                	xor    %eax,%eax
41e3e0:	40                   	inc    %eax
41e3e1:	5b                   	pop    %ebx
41e3e2:	eb 0a                	jmp    0x41e3ee
41e3e4:	6a 00                	push   $0x0
41e3e6:	ff 15 5c b3 44 00    	call   *0x44b35c
41e3ec:	33 c0                	xor    %eax,%eax
41e3ee:	5f                   	pop    %edi
41e3ef:	5e                   	pop    %esi
41e3f0:	5d                   	pop    %ebp
41e3f1:	c2 10 00             	ret    $0x10
41e3f4:	55                   	push   %ebp
41e3f5:	8b ec                	mov    %esp,%ebp
41e3f7:	83 ec 1c             	sub    $0x1c,%esp
41e3fa:	56                   	push   %esi
41e3fb:	57                   	push   %edi
41e3fc:	33 c0                	xor    %eax,%eax