523033:	0f 42 c2             	cmovb  %edx,%eax
523036:	50                   	push   %eax
523037:	ff 75 f0             	push   -0x10(%ebp)
52303a:	51                   	push   %ecx
52303b:	e8 bd f3 f0 ff       	call   0x4323fd
523040:	83 c4 0c             	add    $0xc,%esp
523043:	85 c0                	test   %eax,%eax
523045:	75 11                	jne    0x523058
523047:	8b 4d e8             	mov    -0x18(%ebp),%ecx
52304a:	8b 01                	mov    (%ecx),%eax
52304c:	3b c7                	cmp    %edi,%eax
52304e:	72 08                	jb     0x523058
523050:	77 06                	ja     0x523058
523052:	33 c0                	xor    %eax,%eax
523054:	85 c0                	test   %eax,%eax
523056:	74 04                	je     0x52305c
523058:	c6 45 e0 01          	movb   $0x1,-0x20(%ebp)
52305c:	83 7e 74 10          	cmpl   $0x10,0x74(%esi)
523060:	8d 56 60             	lea    0x60(%esi),%edx
523063:	8d 4b 60             	lea    0x60(%ebx),%ecx
523066:	8d 7a 10             	lea    0x10(%edx),%edi
523069:	72 02                	jb     0x52306d
52306b:	8b 12                	mov    (%edx),%edx
52306d:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
523071:	8d 41 10             	lea    0x10(%ecx),%eax
523074:	89 45 f0             	mov    %eax,-0x10(%ebp)
523077:	72 02                	jb     0x52307b
523079:	8b 09                	mov    (%ecx),%ecx
52307b:	8b 5d f0             	mov    -0x10(%ebp),%ebx
52307e:	8b 3f                	mov    (%edi),%edi
523080:	8b c7                	mov    %edi,%eax
523082:	39 3b                	cmp    %edi,(%ebx)
523084:	0f 42 03             	cmovb  (%ebx),%eax
523087:	50                   	push   %eax
523088:	52                   	push   %edx
523089:	51                   	push   %ecx
52308a:	e8 6e f3 f0 ff       	call   0x4323fd
52308f:	8b c8                	mov    %eax,%ecx
523091:	83 c4 0c             	add    $0xc,%esp
523094:	85 c9                	test   %ecx,%ecx
523096:	75 11                	jne    0x5230a9
523098:	8b cb                	mov    %ebx,%ecx
52309a:	8b 01                	mov    (%ecx),%eax
52309c:	3b f8                	cmp    %eax,%edi
52309e:	76 05                	jbe    0x5230a5
5230a0:	83 c9 ff             	or     $0xffffffff,%ecx
5230a3:	eb 04                	jmp    0x5230a9
5230a5:	1b c9                	sbb    %ecx,%ecx
5230a7:	f7 d9                	neg    %ecx
5230a9:	8b 45 e0             	mov    -0x20(%ebp),%eax
5230ac:	85 c9                	test   %ecx,%ecx
5230ae:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
5230b1:	ba 01 00 00 00       	mov    $0x1,%edx
5230b6:	0f b6 c0             	movzbl %al,%eax
5230b9:	0f 44 d0             	cmove  %eax,%edx
5230bc:	8d 46 78             	lea    0x78(%esi),%eax
5230bf:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
5230c3:	8d 78 10             	lea    0x10(%eax),%edi
5230c6:	89 55 f0             	mov    %edx,-0x10(%ebp)
5230c9:	8d 4b 78             	lea    0x78(%ebx),%ecx
5230cc:	89 45 e0             	mov    %eax,-0x20(%ebp)
5230cf:	72 05                	jb     0x5230d6
5230d1:	8b 00                	mov    (%eax),%eax
5230d3:	89 45 e0             	mov    %eax,-0x20(%ebp)
5230d6:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
5230da:	8d 41 10             	lea    0x10(%ecx),%eax
5230dd:	89 45 e8             	mov    %eax,-0x18(%ebp)
5230e0:	72 02                	jb     0x5230e4
5230e2:	8b 09                	mov    (%ecx),%ecx
5230e4:	8b 10                	mov    (%eax),%edx
5230e6:	8b 3f                	mov    (%edi),%edi
5230e8:	3b d7                	cmp    %edi,%edx
5230ea:	8b c7                	mov    %edi,%eax
5230ec:	0f 42 c2             	cmovb  %edx,%eax
5230ef:	50                   	push   %eax
5230f0:	ff 75 e0             	push   -0x20(%ebp)
5230f3:	51                   	push   %ecx
5230f4:	e8 04 f3 f0 ff       	call   0x4323fd
5230f9:	83 c4 0c             	add    $0xc,%esp
5230fc:	85 c0                	test   %eax,%eax
5230fe:	75 11                	jne    0x523111
523100:	8b 4d e8             	mov    -0x18(%ebp),%ecx
523103:	8b 01                	mov    (%ecx),%eax
523105:	3b c7                	cmp    %edi,%eax
523107:	72 08                	jb     0x523111
523109:	77 06                	ja     0x523111
52310b:	33 c0                	xor    %eax,%eax
52310d:	85 c0                	test   %eax,%eax
52310f:	74 04                	je     0x523115
523111:	b0 01                	mov    $0x1,%al
523113:	eb 03                	jmp    0x523118
523115:	8b 45 f0             	mov    -0x10(%ebp),%eax
523118:	8b 8b 90 00 00 00    	mov    0x90(%ebx),%ecx
52311e:	3b 8e 90 00 00 00    	cmp    0x90(%esi),%ecx
523124:	b9 01 00 00 00       	mov    $0x1,%ecx
523129:	0f b6 c0             	movzbl %al,%eax
52312c:	0f 44 c8             	cmove  %eax,%ecx
52312f:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
523135:	3b 86 94 00 00 00    	cmp    0x94(%esi),%eax
52313b:	75 08                	jne    0x523145
52313d:	84 c9                	test   %cl,%cl
52313f:	0f 84 a3 01 00 00    	je     0x5232e8
523145:	6a 5a                	push   $0x5a
523147:	68 70 d2 bd 00       	push   $0xbdd270
52314c:	8d 8d d4 03 00 00    	lea    0x3d4(%ebp),%ecx
523152:	c7 85 e8 03 00 00 0f 	movl   $0xf,0x3e8(%ebp)
523159:	00 00 00
52315c:	c7 85 e4 03 00 00 00 	movl   $0x0,0x3e4(%ebp)
523163:	00 00 00
523166:	c6 85 d4 03 00 00 00 	movb   $0x0,0x3d4(%ebp)
52316d:	e8 1f 15 ef ff       	call   0x414691
523172:	6a 0f                	push   $0xf
523174:	68 38 d3 bd 00       	push   $0xbdd338
523179:	8d 8d bc 03 00 00    	lea    0x3bc(%ebp),%ecx
52317f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
523186:	c7 85 d0 03 00 00 0f 	movl   $0xf,0x3d0(%ebp)
52318d:	00 00 00
523190:	c7 85 cc 03 00 00 00 	movl   $0x0,0x3cc(%ebp)
523197:	00 00 00
52319a:	c6 85 bc 03 00 00 00 	movb   $0x0,0x3bc(%ebp)
5231a1:	e8 eb 14 ef ff       	call   0x414691
5231a6:	6a 03                	push   $0x3
5231a8:	68 4c d3 bd 00       	push   $0xbdd34c
5231ad:	8d 8d a4 03 00 00    	lea    0x3a4(%ebp),%ecx
5231b3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
5231b7:	c7 85 b8 03 00 00 0f 	movl   $0xf,0x3b8(%ebp)
5231be:	00 00 00
5231c1:	c7 85 b4 03 00 00 00 	movl   $0x0,0x3b4(%ebp)
5231c8:	00 00 00
5231cb:	c6 85 a4 03 00 00 00 	movb   $0x0,0x3a4(%ebp)
5231d2:	e8 ba 14 ef ff       	call   0x414691
5231d7:	6a 31                	push   $0x31
5231d9:	68 50 d3 bd 00       	push   $0xbdd350
5231de:	8d 8d ec 03 00 00    	lea    0x3ec(%ebp),%ecx
5231e4:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
5231e8:	c7 85 00 04 00 00 0f 	movl   $0xf,0x400(%ebp)
5231ef:	00 00 00
5231f2:	c7 85 fc 03 00 00 00 	movl   $0x0,0x3fc(%ebp)
5231f9:	00 00 00
5231fc:	c6 85 ec 03 00 00 00 	movb   $0x0,0x3ec(%ebp)
523203:	e8 89 14 ef ff       	call   0x414691
523208:	68 e6 00 00 00       	push   $0xe6
52320d:	8d 85 d4 03 00 00    	lea    0x3d4(%ebp),%eax
523213:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
523217:	50                   	push   %eax
523218:	8d 85 bc 03 00 00    	lea    0x3bc(%ebp),%eax
52321e:	50                   	push   %eax
52321f:	8d 8d 58 03 00 00    	lea    0x358(%ebp),%ecx
523225:	e8 73 98 f0 ff       	call   0x42ca9d
52322a:	8b f0                	mov    %eax,%esi
52322c:	6a 00                	push   $0x0
52322e:	6a 00                	push   $0x0
523230:	8d 4d bc             	lea    -0x44(%ebp),%ecx
523233:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
523237:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
52323e:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
523245:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
52324c:	e8 31 be ef ff       	call   0x41f082
523251:	89 45 bc             	mov    %eax,-0x44(%ebp)
523254:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
52325b:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
523262:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
523269:	6a 08                	push   $0x8
52326b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
52326e:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
523272:	c7 45 b8 00 00 80 3f 	movl   $0x3f800000,-0x48(%ebp)
523279:	e8 d1 55 ef ff       	call   0x41884f
52327e:	8d 85 a4 03 00 00    	lea    0x3a4(%ebp),%eax
523284:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
523288:	50                   	push   %eax
523289:	8d 45 e8             	lea    -0x18(%ebp),%eax
52328c:	50                   	push   %eax
52328d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
523290:	e8 99 ac f0 ff       	call   0x42df2e
523295:	8b 45 e8             	mov    -0x18(%ebp),%eax
523298:	3b 45 bc             	cmp    -0x44(%ebp),%eax
52329b:	75 25                	jne    0x5232c2
52329d:	8d 85 a4 03 00 00    	lea    0x3a4(%ebp),%eax
5232a3:	89 45 e8             	mov    %eax,-0x18(%ebp)
5232a6:	8d 4d b8             	lea    -0x48(%ebp),%ecx
5232a9:	8d 45 ee             	lea    -0x12(%ebp),%eax
5232ac:	50                   	push   %eax
5232ad:	8d 45 e8             	lea    -0x18(%ebp),%eax
5232b0:	50                   	push   %eax
5232b1:	68 d9 d1 bd 00       	push   $0xbdd1d9
5232b6:	8d 45 d8             	lea    -0x28(%ebp),%eax
5232b9:	50                   	push   %eax
5232ba:	e8 35 91 f0 ff       	call   0x42c3f4
5232bf:	8b 45 d8             	mov    -0x28(%ebp),%eax
5232c2:	8d 48 20             	lea    0x20(%eax),%ecx
5232c5:	3b cb                	cmp    %ebx,%ecx
5232c7:	74 0a                	je     0x5232d3
5232c9:	6a ff                	push   $0xffffffff
5232cb:	6a 00                	push   $0x0
5232cd:	53                   	push   %ebx
5232ce:	e8 2c ad f1 ff       	call   0x43dfff
5232d3:	56                   	push   %esi
5232d4:	8d 45 b8             	lea    -0x48(%ebp),%eax
5232d7:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
5232db:	50                   	push   %eax
5232dc:	8d 85 ec 03 00 00    	lea    0x3ec(%ebp),%eax
5232e2:	50                   	push   %eax
5232e3:	e8 bc 3d ee ff       	call   0x4070a4
5232e8:	80 bb 98 00 00 00 00 	cmpb   $0x0,0x98(%ebx)
5232ef:	0f 84 d7 00 00 00    	je     0x5233cc
5232f5:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
5232f9:	72 04                	jb     0x5232ff
5232fb:	8b 0b                	mov    (%ebx),%ecx
5232fd:	eb 02                	jmp    0x523301
5232ff:	8b cb                	mov    %ebx,%ecx
523301:	8b 7b 10             	mov    0x10(%ebx),%edi
523304:	b8 07 00 00 00       	mov    $0x7,%eax
523309:	3b f8                	cmp    %eax,%edi
52330b:	0f 42 c7             	cmovb  %edi,%eax
52330e:	50                   	push   %eax
52330f:	68 dc d1 bd 00       	push   $0xbdd1dc
523314:	51                   	push   %ecx
523315:	e8 e3 f0 f0 ff       	call   0x4323fd
52331a:	83 c4 0c             	add    $0xc,%esp
52331d:	85 c0                	test   %eax,%eax
52331f:	0f 85 a7 00 00 00    	jne    0x5233cc
523325:	83 ff 07             	cmp    $0x7,%edi
523328:	0f 82 9e 00 00 00    	jb     0x5233cc
52332e:	0f 87 98 00 00 00    	ja     0x5233cc
523334:	6a 5a                	push   $0x5a
523336:	68 70 d2 bd 00       	push   $0xbdd270
52333b:	8d 8d ec 03 00 00    	lea    0x3ec(%ebp),%ecx
523341:	c7 85 00 04 00 00 0f 	movl   $0xf,0x400(%ebp)
523348:	00 00 00
52334b:	89 85 fc 03 00 00    	mov    %eax,0x3fc(%ebp)
523351:	88 85 ec 03 00 00    	mov    %al,0x3ec(%ebp)
523357:	e8 35 13 ef ff       	call   0x414691
52335c:	68 38 d3 bd 00       	push   $0xbdd338
523361:	8d 8d bc 03 00 00    	lea    0x3bc(%ebp),%ecx
523367:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
52336e:	e8 57 39 ef ff       	call   0x416cca
523373:	68 8c d3 bd 00       	push   $0xbdd38c
523378:	8d 8d d4 03 00 00    	lea    0x3d4(%ebp),%ecx
52337e:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
523382:	e8 43 39 ef ff       	call   0x416cca
523387:	68 eb 00 00 00       	push   $0xeb
52338c:	8d 85 ec 03 00 00    	lea    0x3ec(%ebp),%eax
523392:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
523396:	50                   	push   %eax
523397:	8d 85 bc 03 00 00    	lea    0x3bc(%ebp),%eax
52339d:	50                   	push   %eax
52339e:	8d 8d 58 03 00 00    	lea    0x358(%ebp),%ecx
5233a4:	e8 f4 96 f0 ff       	call   0x42ca9d
5233a9:	8b f0                	mov    %eax,%esi
5233ab:	8d 4d b8             	lea    -0x48(%ebp),%ecx
5233ae:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
5233b2:	e8 9e 88 f1 ff       	call   0x43bc55
5233b7:	56                   	push   %esi
5233b8:	8d 45 b8             	lea    -0x48(%ebp),%eax
5233bb:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
5233bf:	50                   	push   %eax
5233c0:	8d 85 d4 03 00 00    	lea    0x3d4(%ebp),%eax
5233c6:	50                   	push   %eax
5233c7:	e8 d8 3c ee ff       	call   0x4070a4
5233cc:	53                   	push   %ebx
5233cd:	8d 8d ac 01 00 00    	lea    0x1ac(%ebp),%ecx
5233d3:	e8 e5 02 f1 ff       	call   0x4336bd
5233d8:	8d 85 4c 02 00 00    	lea    0x24c(%ebp),%eax
5233de:	c7 85 54 03 00 00 04 	movl   $0x104,0x354(%ebp)
5233e5:	01 00 00
5233e8:	89 85 50 03 00 00    	mov    %eax,0x350(%ebp)
5233ee:	c6 85 4c 02 00 00 00 	movb   $0x0,0x24c(%ebp)
5233f5:	c7 85 48 02 00 00 04 	movl   $0xbd1d04,0x248(%ebp)
5233fc:	1d bd 00
5233ff:	8d 85 ac 01 00 00    	lea    0x1ac(%ebp),%eax
523405:	c7 45 fc 0e 00 00 00 	movl   $0xe,-0x4(%ebp)
52340c:	50                   	push   %eax
52340d:	8b ce                	mov    %esi,%ecx
52340f:	e8 35 47 ee ff       	call   0x407b49
523414:	8d be 9c 00 00 00    	lea    0x9c(%esi),%edi
52341a:	8d 85 48 02 00 00    	lea    0x248(%ebp),%eax
523420:	3b f8                	cmp    %eax,%edi
523422:	74 27                	je     0x52344b
523424:	ff b5 54 03 00 00    	push   0x354(%ebp)
52342a:	8b cf                	mov    %edi,%ecx
52342c:	e8 58 cf ee ff       	call   0x410389
523431:	ff b5 54 03 00 00    	push   0x354(%ebp)
523437:	ff b5 50 03 00 00    	push   0x350(%ebp)
52343d:	ff b7 08 01 00 00    	push   0x108(%edi)
523443:	e8 3a 12 ef ff       	call   0x414682
523448:	83 c4 0c             	add    $0xc,%esp
52344b:	8d 8d 48 02 00 00    	lea    0x248(%ebp),%ecx
523451:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
523458:	e8 9b b0 ee ff       	call   0x40e4f8
52345d:	8d 8d ac 01 00 00    	lea    0x1ac(%ebp),%ecx
523463:	e8 95 32 ef ff       	call   0x4166fd
523468:	8b 7d dc             	mov    -0x24(%ebp),%edi
52346b:	8a 45 ee             	mov    -0x12(%ebp),%al
52346e:	88 86 99 00 00 00    	mov    %al,0x99(%esi)
523474:	3b b7 c0 05 00 00    	cmp    0x5c0(%edi),%esi
52347a:	0f 85 ed 00 00 00    	jne    0x52356d
523480:	80 bb 99 00 00 00 00 	cmpb   $0x0,0x99(%ebx)
523487:	0f 85 80 00 00 00    	jne    0x52350d
52348d:	68 70 d2 bd 00       	push   $0xbdd270
523492:	8d 8d ec 03 00 00    	lea    0x3ec(%ebp),%ecx
523498:	e8 2d 38 ef ff       	call   0x416cca
52349d:	68 38 d3 bd 00       	push   $0xbdd338
5234a2:	8d 8d bc 03 00 00    	lea    0x3bc(%ebp),%ecx
5234a8:	c7 45 fc 0f 00 00 00 	movl   $0xf,-0x4(%ebp)
5234af:	e8 16 38 ef ff       	call   0x416cca
5234b4:	68 08 2b bd 00       	push   $0xbd2b08
5234b9:	8d 8d d4 03 00 00    	lea    0x3d4(%ebp),%ecx
5234bf:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
5234c3:	e8 02 38 ef ff       	call   0x416cca
5234c8:	68 f6 00 00 00       	push   $0xf6
5234cd:	8d 85 ec 03 00 00    	lea    0x3ec(%ebp),%eax
5234d3:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)
5234d7:	50                   	push   %eax
5234d8:	8d 85 bc 03 00 00    	lea    0x3bc(%ebp),%eax
5234de:	50                   	push   %eax
5234df:	8d 8d 58 03 00 00    	lea    0x358(%ebp),%ecx
5234e5:	e8 b3 95 f0 ff       	call   0x42ca9d
5234ea:	8b f0                	mov    %eax,%esi
5234ec:	8d 4d b8             	lea    -0x48(%ebp),%ecx
5234ef:	c6 45 fc 12          	movb   $0x12,-0x4(%ebp)
5234f3:	e8 5d 87 f1 ff       	call   0x43bc55
5234f8:	56                   	push   %esi
5234f9:	8d 45 b8             	lea    -0x48(%ebp),%eax
5234fc:	c6 45 fc 13          	movb   $0x13,-0x4(%ebp)
523500:	50                   	push   %eax
523501:	8d 85 d4 03 00 00    	lea    0x3d4(%ebp),%eax
523507:	50                   	push   %eax
523508:	e8 97 3b ee ff       	call   0x4070a4
52350d:	53                   	push   %ebx
52350e:	8d 4d 00             	lea    0x0(%ebp),%ecx
523511:	e8 a7 01 f1 ff       	call   0x4336bd
523516:	8d 85 a0 00 00 00    	lea    0xa0(%ebp),%eax
52351c:	c7 85 a8 01 00 00 04 	movl   $0x104,0x1a8(%ebp)
523523:	01 00 00
523526:	89 85 a4 01 00 00    	mov    %eax,0x1a4(%ebp)
52352c:	c6 85 a0 00 00 00 00 	movb   $0x0,0xa0(%ebp)
523533:	c7 85 9c 00 00 00 04 	movl   $0xbd1d04,0x9c(%ebp)
52353a:	1d bd 00
52353d:	8d 45 00             	lea    0x0(%ebp),%eax
523540:	c7 45 fc 14 00 00 00 	movl   $0x14,-0x4(%ebp)
523547:	50                   	push   %eax
523548:	8d 8f bc 05 00 00    	lea    0x5bc(%edi),%ecx
52354e:	e8 8a 45 f1 ff       	call   0x437add
523553:	8d 8d 9c 00 00 00    	lea    0x9c(%ebp),%ecx
523559:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
523560:	e8 93 af ee ff       	call   0x40e4f8
523565:	8d 4d 00             	lea    0x0(%ebp),%ecx
523568:	e8 90 31 ef ff       	call   0x4166fd
52356d:	8b cf                	mov    %edi,%ecx
52356f:	e8 77 b4 f1 ff       	call   0x43e9eb