47a00b:	73 05                	jae    0x47a012
47a00d:	8b c3                	mov    %ebx,%eax
47a00f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47a012:	3b c2                	cmp    %edx,%eax
47a014:	0f 87 c9 00 00 00    	ja     0x47a0e3
47a01a:	50                   	push   %eax
47a01b:	ff 31                	push   (%ecx)
47a01d:	52                   	push   %edx
47a01e:	ff 75 f0             	push   -0x10(%ebp)
47a021:	e8 b5 01 00 00       	call   0x47a1db
47a026:	8b 4d 18             	mov    0x18(%ebp),%ecx
47a029:	83 c4 10             	add    $0x10,%esp
47a02c:	8b 45 f8             	mov    -0x8(%ebp),%eax
47a02f:	2b d8                	sub    %eax,%ebx
47a031:	8b 55 fc             	mov    -0x4(%ebp),%edx
47a034:	29 41 08             	sub    %eax,0x8(%ecx)
47a037:	01 01                	add    %eax,(%ecx)
47a039:	2b d0                	sub    %eax,%edx
47a03b:	e9 8d 00 00 00       	jmp    0x47a0cd
47a040:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
47a043:	72 62                	jb     0x47a0a7
47a045:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
47a04a:	3b d8                	cmp    %eax,%ebx
47a04c:	76 05                	jbe    0x47a053
47a04e:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a051:	eb 05                	jmp    0x47a058
47a053:	8b c3                	mov    %ebx,%eax
47a055:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47a058:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
47a05c:	74 0d                	je     0x47a06b
47a05e:	33 d2                	xor    %edx,%edx
47a060:	f7 75 f4             	divl   -0xc(%ebp)
47a063:	8b 45 f8             	mov    -0x8(%ebp),%eax
47a066:	2b c2                	sub    %edx,%eax
47a068:	8b 55 fc             	mov    -0x4(%ebp),%edx
47a06b:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a06e:	3b c2                	cmp    %edx,%eax
47a070:	77 71                	ja     0x47a0e3
47a072:	ff 75 f8             	push   -0x8(%ebp)
47a075:	8b 41 04             	mov    0x4(%ecx),%eax
47a078:	ff 75 f0             	push   -0x10(%ebp)
47a07b:	83 61 08 00          	andl   $0x0,0x8(%ecx)
47a07f:	51                   	push   %ecx
47a080:	89 01                	mov    %eax,(%ecx)
47a082:	e8 ab c6 00 00       	call   0x486732
47a087:	59                   	pop    %ecx
47a088:	50                   	push   %eax
47a089:	e8 94 f2 00 00       	call   0x489322
47a08e:	83 c4 0c             	add    $0xc,%esp
47a091:	85 c0                	test   %eax,%eax
47a093:	0f 84 84 00 00 00    	je     0x47a11d
47a099:	78 6b                	js     0x47a106
47a09b:	8b 55 fc             	mov    -0x4(%ebp),%edx
47a09e:	2b d8                	sub    %eax,%ebx
47a0a0:	8b 4d 18             	mov    0x18(%ebp),%ecx
47a0a3:	2b d0                	sub    %eax,%edx
47a0a5:	eb 26                	jmp    0x47a0cd
47a0a7:	51                   	push   %ecx
47a0a8:	e8 85 e2 00 00       	call   0x488332
47a0ad:	59                   	pop    %ecx
47a0ae:	83 f8 ff             	cmp    $0xffffffff,%eax
47a0b1:	74 5c                	je     0x47a10f
47a0b3:	8b 55 fc             	mov    -0x4(%ebp),%edx
47a0b6:	85 d2                	test   %edx,%edx
47a0b8:	74 29                	je     0x47a0e3
47a0ba:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a0bd:	4b                   	dec    %ebx
47a0be:	4a                   	dec    %edx
47a0bf:	88 01                	mov    %al,(%ecx)
47a0c1:	8b 4d 18             	mov    0x18(%ebp),%ecx
47a0c4:	8b 41 18             	mov    0x18(%ecx),%eax
47a0c7:	89 45 f4             	mov    %eax,-0xc(%ebp)
47a0ca:	33 c0                	xor    %eax,%eax
47a0cc:	40                   	inc    %eax
47a0cd:	01 45 f0             	add    %eax,-0x10(%ebp)
47a0d0:	85 db                	test   %ebx,%ebx
47a0d2:	89 55 fc             	mov    %edx,-0x4(%ebp)
47a0d5:	0f 85 13 ff ff ff    	jne    0x479fee
47a0db:	8b 45 14             	mov    0x14(%ebp),%eax
47a0de:	e9 96 fe ff ff       	jmp    0x479f79
47a0e3:	83 ff ff             	cmp    $0xffffffff,%edi
47a0e6:	74 0e                	je     0x47a0f6
47a0e8:	57                   	push   %edi
47a0e9:	6a 00                	push   $0x0
47a0eb:	ff 75 08             	push   0x8(%ebp)
47a0ee:	e8 bd 1a ff ff       	call   0x46bbb0
47a0f3:	83 c4 0c             	add    $0xc,%esp
47a0f6:	e8 3a fe ff ff       	call   0x479f35
47a0fb:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
47a101:	e9 6c fe ff ff       	jmp    0x479f72
47a106:	6a 10                	push   $0x10
47a108:	8b 45 ec             	mov    -0x14(%ebp),%eax
47a10b:	59                   	pop    %ecx
47a10c:	f0 09 08             	lock or %ecx,(%eax)
47a10f:	2b f3                	sub    %ebx,%esi
47a111:	33 d2                	xor    %edx,%edx
47a113:	8b c6                	mov    %esi,%eax
47a115:	f7 75 10             	divl   0x10(%ebp)
47a118:	e9 5c fe ff ff       	jmp    0x479f79
47a11d:	6a 08                	push   $0x8
47a11f:	eb e7                	jmp    0x47a108
47a121:	8b ff                	mov    %edi,%edi
47a123:	55                   	push   %ebp
47a124:	8b ec                	mov    %esp,%ebp
47a126:	ff 75 14             	push   0x14(%ebp)
47a129:	ff 75 10             	push   0x10(%ebp)
47a12c:	ff 75 0c             	push   0xc(%ebp)
47a12f:	6a ff                	push   $0xffffffff
47a131:	ff 75 08             	push   0x8(%ebp)
47a134:	e8 05 00 00 00       	call   0x47a13e
47a139:	83 c4 14             	add    $0x14,%esp
47a13c:	5d                   	pop    %ebp
47a13d:	c3                   	ret
47a13e:	6a 0c                	push   $0xc
47a140:	68 e8 16 4c 00       	push   $0x4c16e8
47a145:	e8 f6 05 ff ff       	call   0x46a740
47a14a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
47a14e:	74 32                	je     0x47a182
47a150:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
47a154:	74 2c                	je     0x47a182
47a156:	8b 75 18             	mov    0x18(%ebp),%esi
47a159:	85 f6                	test   %esi,%esi
47a15b:	75 37                	jne    0x47a194
47a15d:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
47a161:	74 0f                	je     0x47a172
47a163:	ff 75 0c             	push   0xc(%ebp)
47a166:	56                   	push   %esi
47a167:	ff 75 08             	push   0x8(%ebp)
47a16a:	e8 41 1a ff ff       	call   0x46bbb0
47a16f:	83 c4 0c             	add    $0xc,%esp
47a172:	e8 be fd ff ff       	call   0x479f35
47a177:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a17d:	e8 9f f4 ff ff       	call   0x479621
47a182:	33 c0                	xor    %eax,%eax
47a184:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a187:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
47a18e:	59                   	pop    %ecx
47a18f:	5f                   	pop    %edi
47a190:	5e                   	pop    %esi
47a191:	5b                   	pop    %ebx
47a192:	c9                   	leave
47a193:	c3                   	ret
47a194:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
47a198:	56                   	push   %esi
47a199:	e8 4e fc ff ff       	call   0x479dec
47a19e:	59                   	pop    %ecx
47a19f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
47a1a3:	56                   	push   %esi
47a1a4:	ff 75 14             	push   0x14(%ebp)
47a1a7:	ff 75 10             	push   0x10(%ebp)
47a1aa:	ff 75 0c             	push   0xc(%ebp)
47a1ad:	ff 75 08             	push   0x8(%ebp)
47a1b0:	e8 93 fd ff ff       	call   0x479f48
47a1b5:	83 c4 14             	add    $0x14,%esp
47a1b8:	8b f8                	mov    %eax,%edi
47a1ba:	89 7d e4             	mov    %edi,-0x1c(%ebp)
47a1bd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
47a1c4:	e8 0a 00 00 00       	call   0x47a1d3
47a1c9:	8b c7                	mov    %edi,%eax
47a1cb:	eb b7                	jmp    0x47a184
47a1cd:	8b 75 18             	mov    0x18(%ebp),%esi
47a1d0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
47a1d3:	56                   	push   %esi
47a1d4:	e8 27 fc ff ff       	call   0x479e00
47a1d9:	59                   	pop    %ecx
47a1da:	c3                   	ret
47a1db:	8b ff                	mov    %edi,%edi
47a1dd:	55                   	push   %ebp
47a1de:	8b ec                	mov    %esp,%ebp
47a1e0:	56                   	push   %esi
47a1e1:	8b 75 14             	mov    0x14(%ebp),%esi
47a1e4:	85 f6                	test   %esi,%esi
47a1e6:	75 04                	jne    0x47a1ec
47a1e8:	33 c0                	xor    %eax,%eax
47a1ea:	eb 6d                	jmp    0x47a259
47a1ec:	8b 45 08             	mov    0x8(%ebp),%eax
47a1ef:	85 c0                	test   %eax,%eax
47a1f1:	75 13                	jne    0x47a206
47a1f3:	e8 3d fd ff ff       	call   0x479f35
47a1f8:	6a 16                	push   $0x16
47a1fa:	5e                   	pop    %esi
47a1fb:	89 30                	mov    %esi,(%eax)
47a1fd:	e8 1f f4 ff ff       	call   0x479621
47a202:	8b c6                	mov    %esi,%eax
47a204:	eb 53                	jmp    0x47a259
47a206:	57                   	push   %edi
47a207:	8b 7d 10             	mov    0x10(%ebp),%edi
47a20a:	85 ff                	test   %edi,%edi
47a20c:	74 14                	je     0x47a222
47a20e:	39 75 0c             	cmp    %esi,0xc(%ebp)
47a211:	72 0f                	jb     0x47a222
47a213:	56                   	push   %esi
47a214:	57                   	push   %edi
47a215:	50                   	push   %eax
47a216:	e8 05 14 ff ff       	call   0x46b620
47a21b:	83 c4 0c             	add    $0xc,%esp
47a21e:	33 c0                	xor    %eax,%eax
47a220:	eb 36                	jmp    0x47a258
47a222:	ff 75 0c             	push   0xc(%ebp)
47a225:	6a 00                	push   $0x0
47a227:	50                   	push   %eax
47a228:	e8 83 19 ff ff       	call   0x46bbb0
47a22d:	83 c4 0c             	add    $0xc,%esp
47a230:	85 ff                	test   %edi,%edi
47a232:	75 09                	jne    0x47a23d
47a234:	e8 fc fc ff ff       	call   0x479f35
47a239:	6a 16                	push   $0x16
47a23b:	eb 0c                	jmp    0x47a249
47a23d:	39 75 0c             	cmp    %esi,0xc(%ebp)
47a240:	73 13                	jae    0x47a255
47a242:	e8 ee fc ff ff       	call   0x479f35
47a247:	6a 22                	push   $0x22
47a249:	5e                   	pop    %esi
47a24a:	89 30                	mov    %esi,(%eax)
47a24c:	e8 d0 f3 ff ff       	call   0x479621
47a251:	8b c6                	mov    %esi,%eax
47a253:	eb 03                	jmp    0x47a258
47a255:	6a 16                	push   $0x16
47a257:	58                   	pop    %eax
47a258:	5f                   	pop    %edi
47a259:	5e                   	pop    %esi
47a25a:	5d                   	pop    %ebp
47a25b:	c3                   	ret
47a25c:	8b ff                	mov    %edi,%edi
47a25e:	55                   	push   %ebp
47a25f:	8b ec                	mov    %esp,%ebp
47a261:	56                   	push   %esi
47a262:	8b 75 08             	mov    0x8(%ebp),%esi
47a265:	57                   	push   %edi
47a266:	8b 7d 0c             	mov    0xc(%ebp),%edi
47a269:	0f b7 0e             	movzwl (%esi),%ecx
47a26c:	8d 76 02             	lea    0x2(%esi),%esi
47a26f:	8d 41 bf             	lea    -0x41(%ecx),%eax
47a272:	83 f8 19             	cmp    $0x19,%eax
47a275:	77 03                	ja     0x47a27a
47a277:	83 c1 20             	add    $0x20,%ecx
47a27a:	0f b7 17             	movzwl (%edi),%edx
47a27d:	83 c7 02             	add    $0x2,%edi
47a280:	8d 42 bf             	lea    -0x41(%edx),%eax
47a283:	83 f8 19             	cmp    $0x19,%eax
47a286:	77 03                	ja     0x47a28b
47a288:	83 c2 20             	add    $0x20,%edx
47a28b:	8b c1                	mov    %ecx,%eax
47a28d:	2b c2                	sub    %edx,%eax
47a28f:	75 04                	jne    0x47a295
47a291:	85 c9                	test   %ecx,%ecx
47a293:	75 d4                	jne    0x47a269
47a295:	5f                   	pop    %edi
47a296:	5e                   	pop    %esi
47a297:	5d                   	pop    %ebp
47a298:	c3                   	ret
47a299:	8b ff                	mov    %edi,%edi
47a29b:	55                   	push   %ebp
47a29c:	8b ec                	mov    %esp,%ebp
47a29e:	8b 45 08             	mov    0x8(%ebp),%eax
47a2a1:	b9 00 01 00 00       	mov    $0x100,%ecx
47a2a6:	66 3b c1             	cmp    %cx,%ax
47a2a9:	73 20                	jae    0x47a2cb
47a2ab:	0f b6 c8             	movzbl %al,%ecx
47a2ae:	f6 04 4d 5a 2e 4a 00 	testb  $0x1,0x4a2e5a(,%ecx,2)
47a2b5:	01
47a2b6:	74 0e                	je     0x47a2c6
47a2b8:	8b 45 0c             	mov    0xc(%ebp),%eax
47a2bb:	8b 00                	mov    (%eax),%eax
47a2bd:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
47a2c3:	8a 04 01             	mov    (%ecx,%eax,1),%al
47a2c6:	0f b6 c0             	movzbl %al,%eax
47a2c9:	5d                   	pop    %ebp
47a2ca:	c3                   	ret
47a2cb:	ff 75 0c             	push   0xc(%ebp)
47a2ce:	50                   	push   %eax
47a2cf:	e8 ba f4 00 00       	call   0x48978e
47a2d4:	59                   	pop    %ecx
47a2d5:	59                   	pop    %ecx
47a2d6:	5d                   	pop    %ebp
47a2d7:	c3                   	ret
47a2d8:	8b ff                	mov    %edi,%edi
47a2da:	55                   	push   %ebp
47a2db:	8b ec                	mov    %esp,%ebp
47a2dd:	83 3d c0 87 4c 00 00 	cmpl   $0x0,0x4c87c0
47a2e4:	75 29                	jne    0x47a30f
47a2e6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
47a2ea:	75 17                	jne    0x47a303
47a2ec:	e8 44 fc ff ff       	call   0x479f35
47a2f1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a2f7:	e8 25 f3 ff ff       	call   0x479621
47a2fc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
47a301:	5d                   	pop    %ebp
47a302:	c3                   	ret
47a303:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
47a307:	74 e3                	je     0x47a2ec
47a309:	5d                   	pop    %ebp
47a30a:	e9 4d ff ff ff       	jmp    0x47a25c
47a30f:	6a 00                	push   $0x0
47a311:	ff 75 0c             	push   0xc(%ebp)
47a314:	ff 75 08             	push   0x8(%ebp)
47a317:	e8 05 00 00 00       	call   0x47a321
47a31c:	83 c4 0c             	add    $0xc,%esp
47a31f:	5d                   	pop    %ebp
47a320:	c3                   	ret
47a321:	8b ff                	mov    %edi,%edi
47a323:	55                   	push   %ebp
47a324:	8b ec                	mov    %esp,%ebp
47a326:	83 ec 10             	sub    $0x10,%esp
47a329:	56                   	push   %esi
47a32a:	8b 75 08             	mov    0x8(%ebp),%esi
47a32d:	85 f6                	test   %esi,%esi
47a32f:	75 1a                	jne    0x47a34b
47a331:	e8 ff fb ff ff       	call   0x479f35
47a336:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a33c:	e8 e0 f2 ff ff       	call   0x479621
47a341:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
47a346:	e9 8b 00 00 00       	jmp    0x47a3d6
47a34b:	57                   	push   %edi
47a34c:	8b 7d 0c             	mov    0xc(%ebp),%edi
47a34f:	85 ff                	test   %edi,%edi
47a351:	75 17                	jne    0x47a36a
47a353:	e8 dd fb ff ff       	call   0x479f35
47a358:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a35e:	e8 be f2 ff ff       	call   0x479621
47a363:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
47a368:	eb 6b                	jmp    0x47a3d5
47a36a:	ff 75 10             	push   0x10(%ebp)
47a36d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47a370:	e8 9c f7 ff ff       	call   0x479b11
47a375:	8b 45 f4             	mov    -0xc(%ebp),%eax
47a378:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
47a37f:	75 0d                	jne    0x47a38e
47a381:	57                   	push   %edi
47a382:	56                   	push   %esi
47a383:	e8 d4 fe ff ff       	call   0x47a25c
47a388:	59                   	pop    %ecx
47a389:	59                   	pop    %ecx
47a38a:	8b c8                	mov    %eax,%ecx
47a38c:	eb 35                	jmp    0x47a3c3
47a38e:	53                   	push   %ebx
47a38f:	0f b7 06             	movzwl (%esi),%eax
47a392:	8d 4d f4             	lea    -0xc(%ebp),%ecx
47a395:	51                   	push   %ecx
47a396:	50                   	push   %eax
47a397:	8d 76 02             	lea    0x2(%esi),%esi
47a39a:	e8 fa fe ff ff       	call   0x47a299
47a39f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
47a3a2:	0f b7 d8             	movzwl %ax,%ebx
47a3a5:	0f b7 07             	movzwl (%edi),%eax
47a3a8:	8d 7f 02             	lea    0x2(%edi),%edi
47a3ab:	51                   	push   %ecx
47a3ac:	50                   	push   %eax
47a3ad:	e8 e7 fe ff ff       	call   0x47a299
47a3b2:	0f b7 c0             	movzwl %ax,%eax