4c6113:	eb 5f                	jmp    0x4c6174
4c6115:	80 7d d0 00          	cmpb   $0x0,-0x30(%ebp)
4c6119:	74 59                	je     0x4c6174
4c611b:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
4c611f:	83 6d fc 02          	subl   $0x2,-0x4(%ebp)
4c6123:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c6126:	d1 f8                	sar    $1,%eax
4c6128:	79 03                	jns    0x4c612d
4c612a:	83 d0 00             	adc    $0x0,%eax
4c612d:	89 45 f0             	mov    %eax,-0x10(%ebp)
4c6130:	8b 7d f0             	mov    -0x10(%ebp),%edi
4c6133:	57                   	push   %edi
4c6134:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c6137:	50                   	push   %eax
4c6138:	68 ff ff ff 00       	push   $0xffffff
4c613d:	8b c6                	mov    %esi,%eax
4c613f:	e8 7c 2b f6 ff       	call   0x428cc0
4c6144:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4c6147:	8b d7                	mov    %edi,%edx
4c6149:	e8 42 2d fc ff       	call   0x488e90
4c614e:	ff 4d f4             	decl   -0xc(%ebp)
4c6151:	ff 4d f0             	decl   -0x10(%ebp)
4c6154:	ff 4d fc             	decl   -0x4(%ebp)
4c6157:	8b 7d f0             	mov    -0x10(%ebp),%edi
4c615a:	57                   	push   %edi
4c615b:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c615e:	50                   	push   %eax
4c615f:	8b 43 10             	mov    0x10(%ebx),%eax
4c6162:	50                   	push   %eax
4c6163:	8b c6                	mov    %esi,%eax
4c6165:	e8 56 2b f6 ff       	call   0x428cc0
4c616a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4c616d:	8b d7                	mov    %edi,%edx
4c616f:	e8 1c 2d fc ff       	call   0x488e90
4c6174:	5f                   	pop    %edi
4c6175:	5e                   	pop    %esi
4c6176:	5b                   	pop    %ebx
4c6177:	8b e5                	mov    %ebp,%esp
4c6179:	5d                   	pop    %ebp
4c617a:	c2 0c 00             	ret    $0xc
4c617d:	8d 40 00             	lea    0x0(%eax),%eax
4c6180:	a8 04                	test   $0x4,%al
4c6182:	74 03                	je     0x4c6187
4c6184:	b0 03                	mov    $0x3,%al
4c6186:	c3                   	ret
4c6187:	a8 02                	test   $0x2,%al
4c6189:	74 04                	je     0x4c618f
4c618b:	b0 04                	mov    $0x4,%al
4c618d:	eb 02                	jmp    0x4c6191
4c618f:	33 c0                	xor    %eax,%eax
4c6191:	c3                   	ret
4c6192:	8b c0                	mov    %eax,%eax
4c6194:	55                   	push   %ebp
4c6195:	8b ec                	mov    %esp,%ebp
4c6197:	83 c4 d8             	add    $0xffffffd8,%esp
4c619a:	53                   	push   %ebx
4c619b:	56                   	push   %esi
4c619c:	57                   	push   %edi
4c619d:	8b f1                	mov    %ecx,%esi
4c619f:	8d 7d e9             	lea    -0x17(%ebp),%edi
4c61a2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61a3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61a4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61a5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61a6:	8b da                	mov    %edx,%ebx
4c61a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4c61ab:	8b 7d 08             	mov    0x8(%ebp),%edi
4c61ae:	8b 47 04             	mov    0x4(%edi),%eax
4c61b1:	8b d0                	mov    %eax,%edx
4c61b3:	81 e2 01 10 00 00    	and    $0x1001,%edx
4c61b9:	81 fa 01 10 00 00    	cmp    $0x1001,%edx
4c61bf:	74 27                	je     0x4c61e8
4c61c1:	3d 00 10 00 00       	cmp    $0x1000,%eax
4c61c6:	74 20                	je     0x4c61e8
4c61c8:	8b d0                	mov    %eax,%edx
4c61ca:	81 e2 04 10 00 00    	and    $0x1004,%edx
4c61d0:	81 fa 04 10 00 00    	cmp    $0x1004,%edx
4c61d6:	74 10                	je     0x4c61e8
4c61d8:	25 02 10 00 00       	and    $0x1002,%eax
4c61dd:	3d 02 10 00 00       	cmp    $0x1002,%eax
4c61e2:	0f 85 0a 02 00 00    	jne    0x4c63f2
4c61e8:	8b 45 f5             	mov    -0xb(%ebp),%eax
4c61eb:	3b 45 f1             	cmp    -0xf(%ebp),%eax
4c61ee:	7d 44                	jge    0x4c6234
4c61f0:	57                   	push   %edi
4c61f1:	8d 75 e9             	lea    -0x17(%ebp),%esi
4c61f4:	8d 7d d9             	lea    -0x27(%ebp),%edi
4c61f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61f9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61fa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c61fb:	5f                   	pop    %edi
4c61fc:	83 45 dd 02          	addl   $0x2,-0x23(%ebp)
4c6200:	83 e8 02             	sub    $0x2,%eax
4c6203:	89 45 e5             	mov    %eax,-0x1b(%ebp)
4c6206:	68 ff ff ff 00       	push   $0xffffff
4c620b:	6a 01                	push   $0x1
4c620d:	8d 55 e9             	lea    -0x17(%ebp),%edx
4c6210:	b9 d0 d8 dc 00       	mov    $0xdcd8d0,%ecx
4c6215:	8b c3                	mov    %ebx,%eax
4c6217:	e8 24 d7 ff ff       	call   0x4c3940
4c621c:	68 ff ff ff 00       	push   $0xffffff
4c6221:	6a 01                	push   $0x1
4c6223:	8d 55 d9             	lea    -0x27(%ebp),%edx
4c6226:	b9 d0 d8 dc 00       	mov    $0xdcd8d0,%ecx
4c622b:	8b c3                	mov    %ebx,%eax
4c622d:	e8 0e d7 ff ff       	call   0x4c3940
4c6232:	eb 16                	jmp    0x4c624a
4c6234:	68 ff ff ff 00       	push   $0xffffff
4c6239:	6a 00                	push   $0x0
4c623b:	8d 55 e9             	lea    -0x17(%ebp),%edx
4c623e:	b9 d0 d8 dc 00       	mov    $0xdcd8d0,%ecx
4c6243:	8b c3                	mov    %ebx,%eax
4c6245:	e8 f6 d6 ff ff       	call   0x4c3940
4c624a:	57                   	push   %edi
4c624b:	8d 75 e9             	lea    -0x17(%ebp),%esi
4c624e:	8d 7d d9             	lea    -0x27(%ebp),%edi
4c6251:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c6252:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c6253:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c6254:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c6255:	5f                   	pop    %edi
4c6256:	8b 45 e1             	mov    -0x1f(%ebp),%eax
4c6259:	48                   	dec    %eax
4c625a:	89 45 d9             	mov    %eax,-0x27(%ebp)
4c625d:	ff 45 dd             	incl   -0x23(%ebp)
4c6260:	8b 15 dc b2 6a 00    	mov    0x6ab2dc,%edx
4c6266:	8b 43 10             	mov    0x10(%ebx),%eax
4c6269:	e8 16 1d f6 ff       	call   0x427f84
4c626e:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c6271:	49                   	dec    %ecx
4c6272:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c6275:	83 c2 02             	add    $0x2,%edx
4c6278:	8b c3                	mov    %ebx,%eax
4c627a:	e8 55 25 f6 ff       	call   0x4287d4
4c627f:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c6282:	49                   	dec    %ecx
4c6283:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c6286:	83 ea 03             	sub    $0x3,%edx
4c6289:	8b c3                	mov    %ebx,%eax
4c628b:	e8 e4 24 f6 ff       	call   0x428774
4c6290:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c6293:	83 e9 03             	sub    $0x3,%ecx
4c6296:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c6299:	4a                   	dec    %edx
4c629a:	8b c3                	mov    %ebx,%eax
4c629c:	e8 d3 24 f6 ff       	call   0x428774
4c62a1:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c62a4:	4a                   	dec    %edx
4c62a5:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c62a8:	8b c3                	mov    %ebx,%eax
4c62aa:	e8 c5 24 f6 ff       	call   0x428774
4c62af:	ba ff ff ff 00       	mov    $0xffffff,%edx
4c62b4:	8b 43 10             	mov    0x10(%ebx),%eax
4c62b7:	e8 c8 1c f6 ff       	call   0x427f84
4c62bc:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c62bf:	83 e9 02             	sub    $0x2,%ecx
4c62c2:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c62c5:	42                   	inc    %edx
4c62c6:	8b c3                	mov    %ebx,%eax
4c62c8:	e8 07 25 f6 ff       	call   0x4287d4
4c62cd:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c62d0:	83 e9 03             	sub    $0x3,%ecx
4c62d3:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c62d6:	8b c3                	mov    %ebx,%eax
4c62d8:	e8 97 24 f6 ff       	call   0x428774
4c62dd:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c62e0:	83 c1 02             	add    $0x2,%ecx
4c62e3:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c62e6:	8b c3                	mov    %ebx,%eax
4c62e8:	e8 87 24 f6 ff       	call   0x428774
4c62ed:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c62f0:	83 c2 02             	add    $0x2,%edx
4c62f3:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c62f6:	8b c3                	mov    %ebx,%eax
4c62f8:	e8 77 24 f6 ff       	call   0x428774
4c62fd:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c6300:	83 ea 03             	sub    $0x3,%edx
4c6303:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c6306:	8b c3                	mov    %ebx,%eax
4c6308:	e8 67 24 f6 ff       	call   0x428774
4c630d:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c6310:	83 c1 02             	add    $0x2,%ecx
4c6313:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c6316:	4a                   	dec    %edx
4c6317:	8b c3                	mov    %ebx,%eax
4c6319:	e8 56 24 f6 ff       	call   0x428774
4c631e:	ba e0 e0 e0 00       	mov    $0xe0e0e0,%edx
4c6323:	8b 43 10             	mov    0x10(%ebx),%eax
4c6326:	e8 59 1c f6 ff       	call   0x427f84
4c632b:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c632e:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c6331:	8b c3                	mov    %ebx,%eax
4c6333:	e8 9c 24 f6 ff       	call   0x4287d4
4c6338:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c633b:	41                   	inc    %ecx
4c633c:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c633f:	8b c3                	mov    %ebx,%eax
4c6341:	e8 2e 24 f6 ff       	call   0x428774
4c6346:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c6349:	49                   	dec    %ecx
4c634a:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c634d:	83 c2 02             	add    $0x2,%edx
4c6350:	8b c3                	mov    %ebx,%eax
4c6352:	e8 1d 24 f6 ff       	call   0x428774
4c6357:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c635a:	4a                   	dec    %edx
4c635b:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c635e:	8b c3                	mov    %ebx,%eax
4c6360:	e8 6f 24 f6 ff       	call   0x4287d4
4c6365:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c6368:	83 ea 02             	sub    $0x2,%edx
4c636b:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c636e:	8b c3                	mov    %ebx,%eax
4c6370:	e8 ff 23 f6 ff       	call   0x428774
4c6375:	8b 4d ed             	mov    -0x13(%ebp),%ecx
4c6378:	83 c1 02             	add    $0x2,%ecx
4c637b:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c637e:	8b c3                	mov    %ebx,%eax
4c6380:	e8 ef 23 f6 ff       	call   0x428774
4c6385:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c6388:	49                   	dec    %ecx
4c6389:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c638c:	8b c3                	mov    %ebx,%eax
4c638e:	e8 41 24 f6 ff       	call   0x4287d4
4c6393:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c6396:	83 e9 02             	sub    $0x2,%ecx
4c6399:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c639c:	8b c3                	mov    %ebx,%eax
4c639e:	e8 d1 23 f6 ff       	call   0x428774
4c63a3:	8b 55 e9             	mov    -0x17(%ebp),%edx
4c63a6:	83 c2 02             	add    $0x2,%edx
4c63a9:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c63ac:	8b c3                	mov    %ebx,%eax
4c63ae:	e8 c1 23 f6 ff       	call   0x428774
4c63b3:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c63b6:	83 e9 02             	sub    $0x2,%ecx
4c63b9:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c63bc:	4a                   	dec    %edx
4c63bd:	8b c3                	mov    %ebx,%eax
4c63bf:	e8 10 24 f6 ff       	call   0x4287d4
4c63c4:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c63c7:	49                   	dec    %ecx
4c63c8:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c63cb:	83 ea 02             	sub    $0x2,%edx
4c63ce:	8b c3                	mov    %ebx,%eax
4c63d0:	e8 9f 23 f6 ff       	call   0x428774
4c63d5:	8b 4d f5             	mov    -0xb(%ebp),%ecx
4c63d8:	49                   	dec    %ecx
4c63d9:	8b 55 f1             	mov    -0xf(%ebp),%edx
4c63dc:	8b c3                	mov    %ebx,%eax
4c63de:	e8 91 23 f6 ff       	call   0x428774
4c63e3:	6a fe                	push   $0xfffffffe
4c63e5:	6a fe                	push   $0xfffffffe
4c63e7:	8d 45 e9             	lea    -0x17(%ebp),%eax
4c63ea:	50                   	push   %eax
4c63eb:	e8 98 17 f4 ff       	call   0x407b88
4c63f0:	eb 0d                	jmp    0x4c63ff
4c63f2:	6a fe                	push   $0xfffffffe
4c63f4:	6a fe                	push   $0xfffffffe
4c63f6:	8d 45 e9             	lea    -0x17(%ebp),%eax
4c63f9:	50                   	push   %eax
4c63fa:	e8 89 17 f4 ff       	call   0x407b88
4c63ff:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
4c6403:	0f 84 13 05 00 00    	je     0x4c691c
4c6409:	f6 47 20 01          	testb  $0x1,0x20(%edi)
4c640d:	0f 95 45 fb          	setne  -0x5(%ebp)
4c6411:	8b c7                	mov    %edi,%eax
4c6413:	e8 5c 60 fc ff       	call   0x48c474
4c6418:	8b f0                	mov    %eax,%esi
4c641a:	8a 47 08             	mov    0x8(%edi),%al
4c641d:	34 01                	xor    $0x1,%al
4c641f:	88 45 fa             	mov    %al,-0x6(%ebp)
4c6422:	80 7d fa 00          	cmpb   $0x0,-0x6(%ebp)
4c6426:	74 0a                	je     0x4c6432
4c6428:	8b 45 e9             	mov    -0x17(%ebp),%eax
4c642b:	03 c6                	add    %esi,%eax
4c642d:	89 45 f1             	mov    %eax,-0xf(%ebp)
4c6430:	eb 08                	jmp    0x4c643a
4c6432:	8b 45 ed             	mov    -0x13(%ebp),%eax
4c6435:	03 c6                	add    %esi,%eax
4c6437:	89 45 f5             	mov    %eax,-0xb(%ebp)
4c643a:	83 7f 1c 01          	cmpl   $0x1,0x1c(%edi)
4c643e:	0f 84 c7 03 00 00    	je     0x4c680b
4c6444:	56                   	push   %esi
4c6445:	57                   	push   %edi
4c6446:	8d 75 e9             	lea    -0x17(%ebp),%esi
4c6449:	8d 7d d9             	lea    -0x27(%ebp),%edi
4c644c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c644d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c644e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c644f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4c6450:	5f                   	pop    %edi
4c6451:	5e                   	pop    %esi
4c6452:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
4c6456:	75 22                	jne    0x4c647a
4c6458:	80 7d fa 00          	cmpb   $0x0,-0x6(%ebp)
4c645c:	74 0f                	je     0x4c646d
4c645e:	6a 00                	push   $0x0
4c6460:	6a ff                	push   $0xffffffff
4c6462:	8d 45 d9             	lea    -0x27(%ebp),%eax
4c6465:	50                   	push   %eax
4c6466:	e8 0d 18 f4 ff       	call   0x407c78
4c646b:	eb 0d                	jmp    0x4c647a
4c646d:	6a ff                	push   $0xffffffff
4c646f:	6a 00                	push   $0x0
4c6471:	8d 45 d9             	lea    -0x27(%ebp),%eax
4c6474:	50                   	push   %eax
4c6475:	e8 fe 17 f4 ff       	call   0x407c78
4c647a:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
4c647e:	75 22                	jne    0x4c64a2
4c6480:	80 7d fa 00          	cmpb   $0x0,-0x6(%ebp)
4c6484:	74 0f                	je     0x4c6495
4c6486:	6a 00                	push   $0x0
4c6488:	6a ff                	push   $0xffffffff
4c648a:	8d 45 d9             	lea    -0x27(%ebp),%eax
4c648d:	50                   	push   %eax
4c648e:	e8 e5 17 f4 ff       	call   0x407c78
4c6493:	eb 0d                	jmp    0x4c64a2
4c6495:	6a ff                	push   $0xffffffff
4c6497:	6a 00                	push   $0x0
4c6499:	8d 45 d9             	lea    -0x27(%ebp),%eax
4c649c:	50                   	push   %eax
4c649d:	e8 d6 17 f4 ff       	call   0x407c78
4c64a2:	80 7d fa 00          	cmpb   $0x0,-0x6(%ebp)
4c64a6:	0f 84 b2 01 00 00    	je     0x4c665e
4c64ac:	83 45 dd 04          	addl   $0x4,-0x23(%ebp)
4c64b0:	83 6d e5 02          	subl   $0x2,-0x1b(%ebp)
4c64b4:	ff 45 d9             	incl   -0x27(%ebp)
4c64b7:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
4c64bb:	74 0e                	je     0x4c64cb
4c64bd:	83 ee 02             	sub    $0x2,%esi
4c64c0:	01 75 dd             	add    %esi,-0x23(%ebp)
4c64c3:	83 45 d9 04          	addl   $0x4,-0x27(%ebp)
4c64c7:	83 6d e1 04          	subl   $0x4,-0x1f(%ebp)
4c64cb:	8b 75 dd             	mov    -0x23(%ebp),%esi
4c64ce:	e9 78 01 00 00       	jmp    0x4c664b
4c64d3:	68 ff ff ff 00       	push   $0xffffff
4c64d8:	8b ce                	mov    %esi,%ecx
4c64da:	8b 55 d9             	mov    -0x27(%ebp),%edx
4c64dd:	8b c3                	mov    %ebx,%eax
4c64df:	e8 70 27 f6 ff       	call   0x428c54
4c64e4:	68 ff ff ff 00       	push   $0xffffff
4c64e9:	8d 4e 01             	lea    0x1(%esi),%ecx
4c64ec:	8b 55 d9             	mov    -0x27(%ebp),%edx
4c64ef:	8b c3                	mov    %ebx,%eax
4c64f1:	e8 5e 27 f6 ff       	call   0x428c54
4c64f6:	68 ff ff ff 00       	push   $0xffffff
4c64fb:	8b 55 d9             	mov    -0x27(%ebp),%edx
4c64fe:	42                   	inc    %edx