40909c:	56                   	push   %esi
40909d:	57                   	push   %edi
40909e:	8b f9                	mov    %ecx,%edi
4090a0:	8b 47 04             	mov    0x4(%edi),%eax
4090a3:	8b 37                	mov    (%edi),%esi
4090a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4090a8:	8b 10                	mov    (%eax),%edx
4090aa:	8b 47 08             	mov    0x8(%edi),%eax
4090ad:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090b0:	74 22                	je     0x4090d4
4090b2:	8d 46 20             	lea    0x20(%esi),%eax
4090b5:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
4090b9:	72 02                	jb     0x4090bd
4090bb:	8b 00                	mov    (%eax),%eax
4090bd:	6a 00                	push   $0x0
4090bf:	52                   	push   %edx
4090c0:	68 f7 01 00 00       	push   $0x1f7
4090c5:	50                   	push   %eax
4090c6:	8d 46 10             	lea    0x10(%esi),%eax
4090c9:	50                   	push   %eax
4090ca:	e8 c0 f5 ff ff       	call   0x40868f
4090cf:	8b 45 fc             	mov    -0x4(%ebp),%eax
4090d2:	8b 10                	mov    (%eax),%edx
4090d4:	8b 4e 4c             	mov    0x4c(%esi),%ecx
4090d7:	8b 01                	mov    (%ecx),%eax
4090d9:	8b 70 14             	mov    0x14(%eax),%esi
4090dc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4090df:	ff 30                	push   (%eax)
4090e1:	52                   	push   %edx
4090e2:	51                   	push   %ecx
4090e3:	8b ce                	mov    %esi,%ecx
4090e5:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4090eb:	ff d6                	call   *%esi
4090ed:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4090f4:	8b f0                	mov    %eax,%esi
4090f6:	74 0b                	je     0x409103
4090f8:	56                   	push   %esi
4090f9:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4090fe:	e8 4b f5 ff ff       	call   0x40864e
409103:	85 f6                	test   %esi,%esi
409105:	79 23                	jns    0x40912a
409107:	a1 00 d0 40 00       	mov    0x40d000,%eax
40910c:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
409111:	74 17                	je     0x40912a
409113:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
409117:	72 11                	jb     0x40912a
409119:	56                   	push   %esi
40911a:	ff 37                	push   (%edi)
40911c:	ff 70 14             	push   0x14(%eax)
40911f:	ff 70 10             	push   0x10(%eax)
409122:	6a 1f                	push   $0x1f
409124:	59                   	pop    %ecx
409125:	e8 46 f6 ff ff       	call   0x408770
40912a:	5f                   	pop    %edi
40912b:	5e                   	pop    %esi
40912c:	8b e5                	mov    %ebp,%esp
40912e:	5d                   	pop    %ebp
40912f:	8b e3                	mov    %ebx,%esp
409131:	5b                   	pop    %ebx
409132:	c3                   	ret
409133:	8b ff                	mov    %edi,%edi
409135:	55                   	push   %ebp
409136:	8b ec                	mov    %esp,%ebp
409138:	51                   	push   %ecx
409139:	51                   	push   %ecx
40913a:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409141:	56                   	push   %esi
409142:	57                   	push   %edi
409143:	8b f9                	mov    %ecx,%edi
409145:	8b 47 04             	mov    0x4(%edi),%eax
409148:	8b 37                	mov    (%edi),%esi
40914a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40914d:	8b 10                	mov    (%eax),%edx
40914f:	8b 47 08             	mov    0x8(%edi),%eax
409152:	89 45 f8             	mov    %eax,-0x8(%ebp)
409155:	74 22                	je     0x409179
409157:	8d 46 20             	lea    0x20(%esi),%eax
40915a:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40915e:	72 02                	jb     0x409162
409160:	8b 00                	mov    (%eax),%eax
409162:	6a 00                	push   $0x0
409164:	52                   	push   %edx
409165:	68 f8 01 00 00       	push   $0x1f8
40916a:	50                   	push   %eax
40916b:	8d 46 10             	lea    0x10(%esi),%eax
40916e:	50                   	push   %eax
40916f:	e8 1b f5 ff ff       	call   0x40868f
409174:	8b 45 fc             	mov    -0x4(%ebp),%eax
409177:	8b 10                	mov    (%eax),%edx
409179:	8b 4e 4c             	mov    0x4c(%esi),%ecx
40917c:	8b 01                	mov    (%ecx),%eax
40917e:	8b 70 18             	mov    0x18(%eax),%esi
409181:	8b 45 f8             	mov    -0x8(%ebp),%eax
409184:	ff 30                	push   (%eax)
409186:	52                   	push   %edx
409187:	51                   	push   %ecx
409188:	8b ce                	mov    %esi,%ecx
40918a:	ff 15 f0 e1 40 00    	call   *0x40e1f0
409190:	ff d6                	call   *%esi
409192:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409199:	8b f0                	mov    %eax,%esi
40919b:	74 0b                	je     0x4091a8
40919d:	56                   	push   %esi
40919e:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4091a3:	e8 a6 f4 ff ff       	call   0x40864e
4091a8:	85 f6                	test   %esi,%esi
4091aa:	79 23                	jns    0x4091cf
4091ac:	a1 00 d0 40 00       	mov    0x40d000,%eax
4091b1:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4091b6:	74 17                	je     0x4091cf
4091b8:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
4091bc:	72 11                	jb     0x4091cf
4091be:	56                   	push   %esi
4091bf:	ff 37                	push   (%edi)
4091c1:	ff 70 14             	push   0x14(%eax)
4091c4:	ff 70 10             	push   0x10(%eax)
4091c7:	6a 20                	push   $0x20
4091c9:	59                   	pop    %ecx
4091ca:	e8 a1 f5 ff ff       	call   0x408770
4091cf:	5f                   	pop    %edi
4091d0:	5e                   	pop    %esi
4091d1:	c9                   	leave
4091d2:	c3                   	ret
4091d3:	8b ff                	mov    %edi,%edi
4091d5:	55                   	push   %ebp
4091d6:	8b ec                	mov    %esp,%ebp
4091d8:	51                   	push   %ecx
4091d9:	8b 45 0c             	mov    0xc(%ebp),%eax
4091dc:	57                   	push   %edi
4091dd:	8b f9                	mov    %ecx,%edi
4091df:	3b 47 14             	cmp    0x14(%edi),%eax
4091e2:	77 2b                	ja     0x40920f
4091e4:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
4091e8:	53                   	push   %ebx
4091e9:	56                   	push   %esi
4091ea:	8b df                	mov    %edi,%ebx
4091ec:	72 02                	jb     0x4091f0
4091ee:	8b 1f                	mov    (%edi),%ebx
4091f0:	8d 34 00             	lea    (%eax,%eax,1),%esi
4091f3:	89 47 10             	mov    %eax,0x10(%edi)
4091f6:	56                   	push   %esi
4091f7:	ff 75 08             	push   0x8(%ebp)
4091fa:	53                   	push   %ebx
4091fb:	e8 c3 1a 00 00       	call   0x40acc3
409200:	83 c4 0c             	add    $0xc,%esp
409203:	33 c0                	xor    %eax,%eax
409205:	66 89 04 1e          	mov    %ax,(%esi,%ebx,1)
409209:	8b c7                	mov    %edi,%eax
40920b:	5e                   	pop    %esi
40920c:	5b                   	pop    %ebx
40920d:	eb 10                	jmp    0x40921f
40920f:	ff 75 08             	push   0x8(%ebp)
409212:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
409216:	ff 75 fc             	push   -0x4(%ebp)
409219:	50                   	push   %eax
40921a:	e8 bb 08 00 00       	call   0x409ada
40921f:	5f                   	pop    %edi
409220:	c9                   	leave
409221:	c2 08 00             	ret    $0x8
409224:	8b ff                	mov    %edi,%edi
409226:	55                   	push   %ebp
409227:	8b ec                	mov    %esp,%ebp
409229:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409230:	74 1b                	je     0x40924d
409232:	8d 41 20             	lea    0x20(%ecx),%eax
409235:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
409239:	72 02                	jb     0x40923d
40923b:	8b 00                	mov    (%eax),%eax
40923d:	6a 00                	push   $0x0
40923f:	6a 00                	push   $0x0
409241:	6a 32                	push   $0x32
409243:	50                   	push   %eax
409244:	8d 41 10             	lea    0x10(%ecx),%eax
409247:	50                   	push   %eax
409248:	e8 42 f4 ff ff       	call   0x40868f
40924d:	8b 45 0c             	mov    0xc(%ebp),%eax
409250:	56                   	push   %esi
409251:	8b 50 3c             	mov    0x3c(%eax),%edx
409254:	8d 48 48             	lea    0x48(%eax),%ecx
409257:	51                   	push   %ecx
409258:	68 0c 1f 40 00       	push   $0x401f0c
40925d:	52                   	push   %edx
40925e:	8b 02                	mov    (%edx),%eax
409260:	8b 30                	mov    (%eax),%esi
409262:	8b ce                	mov    %esi,%ecx
409264:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40926a:	ff d6                	call   *%esi
40926c:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409273:	8b f0                	mov    %eax,%esi
409275:	74 0b                	je     0x409282
409277:	56                   	push   %esi
409278:	ba 60 1e 40 00       	mov    $0x401e60,%edx
40927d:	e8 cc f3 ff ff       	call   0x40864e
409282:	8b c6                	mov    %esi,%eax
409284:	5e                   	pop    %esi
409285:	5d                   	pop    %ebp
409286:	c2 10 00             	ret    $0x10
409289:	8b ff                	mov    %edi,%edi
40928b:	55                   	push   %ebp
40928c:	8b ec                	mov    %esp,%ebp
40928e:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409295:	74 1b                	je     0x4092b2
409297:	8d 41 20             	lea    0x20(%ecx),%eax
40929a:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40929e:	72 02                	jb     0x4092a2
4092a0:	8b 00                	mov    (%eax),%eax
4092a2:	6a 00                	push   $0x0
4092a4:	6a 00                	push   $0x0
4092a6:	6a 32                	push   $0x32
4092a8:	50                   	push   %eax
4092a9:	8d 41 10             	lea    0x10(%ecx),%eax
4092ac:	50                   	push   %eax
4092ad:	e8 dd f3 ff ff       	call   0x40868f
4092b2:	8b 45 0c             	mov    0xc(%ebp),%eax
4092b5:	56                   	push   %esi
4092b6:	8b 50 3c             	mov    0x3c(%eax),%edx
4092b9:	8d 48 44             	lea    0x44(%eax),%ecx
4092bc:	51                   	push   %ecx
4092bd:	68 5c 1f 40 00       	push   $0x401f5c
4092c2:	52                   	push   %edx
4092c3:	8b 02                	mov    (%edx),%eax
4092c5:	8b 30                	mov    (%eax),%esi
4092c7:	8b ce                	mov    %esi,%ecx
4092c9:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4092cf:	ff d6                	call   *%esi
4092d1:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4092d8:	8b f0                	mov    %eax,%esi
4092da:	74 0b                	je     0x4092e7
4092dc:	56                   	push   %esi
4092dd:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4092e2:	e8 67 f3 ff ff       	call   0x40864e
4092e7:	8b c6                	mov    %esi,%eax
4092e9:	5e                   	pop    %esi
4092ea:	5d                   	pop    %ebp
4092eb:	c2 10 00             	ret    $0x10
4092ee:	8b ff                	mov    %edi,%edi
4092f0:	55                   	push   %ebp
4092f1:	8b ec                	mov    %esp,%ebp
4092f3:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4092fa:	74 1b                	je     0x409317
4092fc:	8d 41 20             	lea    0x20(%ecx),%eax
4092ff:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
409303:	72 02                	jb     0x409307
409305:	8b 00                	mov    (%eax),%eax
409307:	6a 00                	push   $0x0
409309:	6a 00                	push   $0x0
40930b:	6a 32                	push   $0x32
40930d:	50                   	push   %eax
40930e:	8d 41 10             	lea    0x10(%ecx),%eax
409311:	50                   	push   %eax
409312:	e8 78 f3 ff ff       	call   0x40868f
409317:	8b 45 0c             	mov    0xc(%ebp),%eax
40931a:	56                   	push   %esi
40931b:	8b 50 3c             	mov    0x3c(%eax),%edx
40931e:	8d 48 40             	lea    0x40(%eax),%ecx
409321:	51                   	push   %ecx
409322:	68 3c 1f 40 00       	push   $0x401f3c
409327:	52                   	push   %edx
409328:	8b 02                	mov    (%edx),%eax
40932a:	8b 30                	mov    (%eax),%esi
40932c:	8b ce                	mov    %esi,%ecx
40932e:	ff 15 f0 e1 40 00    	call   *0x40e1f0
409334:	ff d6                	call   *%esi
409336:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
40933d:	8b f0                	mov    %eax,%esi
40933f:	74 0b                	je     0x40934c
409341:	56                   	push   %esi
409342:	ba 60 1e 40 00       	mov    $0x401e60,%edx
409347:	e8 02 f3 ff ff       	call   0x40864e
40934c:	8b c6                	mov    %esi,%eax
40934e:	5e                   	pop    %esi
40934f:	5d                   	pop    %ebp
409350:	c2 10 00             	ret    $0x10
409353:	8b ff                	mov    %edi,%edi
409355:	55                   	push   %ebp
409356:	8b ec                	mov    %esp,%ebp
409358:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
40935f:	74 1b                	je     0x40937c
409361:	8d 41 20             	lea    0x20(%ecx),%eax
409364:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
409368:	72 02                	jb     0x40936c
40936a:	8b 00                	mov    (%eax),%eax
40936c:	6a 00                	push   $0x0
40936e:	6a 00                	push   $0x0
409370:	6a 32                	push   $0x32
409372:	50                   	push   %eax
409373:	8d 41 10             	lea    0x10(%ecx),%eax
409376:	50                   	push   %eax
409377:	e8 13 f3 ff ff       	call   0x40868f
40937c:	8b 45 0c             	mov    0xc(%ebp),%eax
40937f:	56                   	push   %esi
409380:	8b 50 3c             	mov    0x3c(%eax),%edx
409383:	8d 48 4c             	lea    0x4c(%eax),%ecx
409386:	51                   	push   %ecx
409387:	68 4c 1f 40 00       	push   $0x401f4c
40938c:	52                   	push   %edx
40938d:	8b 02                	mov    (%edx),%eax
40938f:	8b 30                	mov    (%eax),%esi
409391:	8b ce                	mov    %esi,%ecx
409393:	ff 15 f0 e1 40 00    	call   *0x40e1f0
409399:	ff d6                	call   *%esi
40939b:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4093a2:	8b f0                	mov    %eax,%esi
4093a4:	74 0b                	je     0x4093b1
4093a6:	56                   	push   %esi
4093a7:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4093ac:	e8 9d f2 ff ff       	call   0x40864e
4093b1:	8b c6                	mov    %esi,%eax
4093b3:	5e                   	pop    %esi
4093b4:	5d                   	pop    %ebp
4093b5:	c2 10 00             	ret    $0x10
4093b8:	6a 10                	push   $0x10
4093ba:	68 a8 c3 40 00       	push   $0x40c3a8
4093bf:	e8 dc 11 00 00       	call   0x40a5a0
4093c4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4093c8:	8d 4d 08             	lea    0x8(%ebp),%ecx
4093cb:	e8 d8 f4 ff ff       	call   0x4088a8
4093d0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4093d7:	b0 01                	mov    $0x1,%al
4093d9:	eb 50                	jmp    0x40942b
4093db:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093de:	8b 00                	mov    (%eax),%eax
4093e0:	8b 00                	mov    (%eax),%eax
4093e2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4093e5:	33 c0                	xor    %eax,%eax
4093e7:	40                   	inc    %eax
4093e8:	c3                   	ret
4093e9:	8b 65 e8             	mov    -0x18(%ebp),%esp
4093ec:	a1 00 d0 40 00       	mov    0x40d000,%eax
4093f1:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4093f6:	74 14                	je     0x40940c
4093f8:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
4093fc:	72 0e                	jb     0x40940c
4093fe:	ff 75 e4             	push   -0x1c(%ebp)
409401:	ff 70 14             	push   0x14(%eax)
409404:	ff 70 10             	push   0x10(%eax)
409407:	e8 c9 f1 ff ff       	call   0x4085d5
40940c:	f6 05 40 d7 40 00 04 	testb  $0x4,0x40d740
409413:	74 0d                	je     0x409422
409415:	ff 75 e4             	push   -0x1c(%ebp)
409418:	ba 88 1e 40 00       	mov    $0x401e88,%edx
40941d:	e8 2c f2 ff ff       	call   0x40864e
409422:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409429:	32 c0                	xor    %al,%al
40942b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40942e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409435:	59                   	pop    %ecx
409436:	5f                   	pop    %edi
409437:	5e                   	pop    %esi
409438:	5b                   	pop    %ebx