40c1b9:	59                   	pop    %ecx
40c1ba:	e8 0f b2 ff ff       	call   0x4073ce
40c1bf:	eb 32                	jmp    0x40c1f3
40c1c1:	89 7e 08             	mov    %edi,0x8(%esi)
40c1c4:	e9 0e ff ff ff       	jmp    0x40c0d7
40c1c9:	bb 16 02 07 80       	mov    $0x80070216,%ebx
40c1ce:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c1d3:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c1d8:	74 19                	je     0x40c1f3
40c1da:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c1de:	74 13                	je     0x40c1f3
40c1e0:	ff 70 14             	push   0x14(%eax)
40c1e3:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c1e8:	ff 70 10             	push   0x10(%eax)
40c1eb:	6a 12                	push   $0x12
40c1ed:	59                   	pop    %ecx
40c1ee:	e8 bd b1 ff ff       	call   0x4073b0
40c1f3:	8b c3                	mov    %ebx,%eax
40c1f5:	e8 3c be 01 00       	call   0x428036
40c1fa:	c2 04 00             	ret    $0x4
40c1fd:	8b ff                	mov    %edi,%edi
40c1ff:	55                   	push   %ebp
40c200:	8b ec                	mov    %esp,%ebp
40c202:	51                   	push   %ecx
40c203:	51                   	push   %ecx
40c204:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c208:	8d 55 fc             	lea    -0x4(%ebp),%edx
40c20b:	53                   	push   %ebx
40c20c:	56                   	push   %esi
40c20d:	8b d9                	mov    %ecx,%ebx
40c20f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c212:	57                   	push   %edi
40c213:	e8 2b fc ff ff       	call   0x40be43
40c218:	8b 75 fc             	mov    -0x4(%ebp),%esi
40c21b:	8b f8                	mov    %eax,%edi
40c21d:	85 ff                	test   %edi,%edi
40c21f:	78 10                	js     0x40c231
40c221:	85 f6                	test   %esi,%esi
40c223:	74 0c                	je     0x40c231
40c225:	56                   	push   %esi
40c226:	8b cb                	mov    %ebx,%ecx
40c228:	e8 3e 00 00 00       	call   0x40c26b
40c22d:	8b f8                	mov    %eax,%edi
40c22f:	eb 26                	jmp    0x40c257
40c231:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c236:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c23b:	74 1a                	je     0x40c257
40c23d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c241:	74 14                	je     0x40c257
40c243:	57                   	push   %edi
40c244:	ff 70 14             	push   0x14(%eax)
40c247:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c24c:	ff 70 10             	push   0x10(%eax)
40c24f:	6a 15                	push   $0x15
40c251:	59                   	pop    %ecx
40c252:	e8 77 b1 ff ff       	call   0x4073ce
40c257:	85 f6                	test   %esi,%esi
40c259:	74 07                	je     0x40c262
40c25b:	56                   	push   %esi
40c25c:	e8 da ba 01 00       	call   0x427d3b
40c261:	59                   	pop    %ecx
40c262:	8b c7                	mov    %edi,%eax
40c264:	5f                   	pop    %edi
40c265:	5e                   	pop    %esi
40c266:	5b                   	pop    %ebx
40c267:	c9                   	leave
40c268:	c2 04 00             	ret    $0x4
40c26b:	6a 18                	push   $0x18
40c26d:	b8 71 86 42 00       	mov    $0x428671,%eax
40c272:	e8 5a be 01 00       	call   0x4280d1
40c277:	8b f9                	mov    %ecx,%edi
40c279:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c27c:	8b 45 08             	mov    0x8(%ebp),%eax
40c27f:	33 c9                	xor    %ecx,%ecx
40c281:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40c284:	8b d9                	mov    %ecx,%ebx
40c286:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40c289:	85 c0                	test   %eax,%eax
40c28b:	0f 84 29 02 00 00    	je     0x40c4ba
40c291:	8b f0                	mov    %eax,%esi
40c293:	8d 56 02             	lea    0x2(%esi),%edx
40c296:	66 8b 06             	mov    (%esi),%ax
40c299:	83 c6 02             	add    $0x2,%esi
40c29c:	66 3b c1             	cmp    %cx,%ax
40c29f:	75 f5                	jne    0x40c296
40c2a1:	2b f2                	sub    %edx,%esi
40c2a3:	d1 fe                	sar    $1,%esi
40c2a5:	89 75 e8             	mov    %esi,-0x18(%ebp)
40c2a8:	75 07                	jne    0x40c2b1
40c2aa:	8b f1                	mov    %ecx,%esi
40c2ac:	e9 07 02 00 00       	jmp    0x40c4b8
40c2b1:	8b 57 08             	mov    0x8(%edi),%edx
40c2b4:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40c2b7:	51                   	push   %ecx
40c2b8:	8b ce                	mov    %esi,%ecx
40c2ba:	e8 71 0b 00 00       	call   0x40ce30
40c2bf:	85 c0                	test   %eax,%eax
40c2c1:	79 2c                	jns    0x40c2ef
40c2c3:	be 16 02 07 80       	mov    $0x80070216,%esi
40c2c8:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c2cd:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c2d2:	0f 84 e0 01 00 00    	je     0x40c4b8
40c2d8:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c2dc:	0f 84 d6 01 00 00    	je     0x40c4b8
40c2e2:	ff 70 14             	push   0x14(%eax)
40c2e5:	ff 70 10             	push   0x10(%eax)
40c2e8:	6a 16                	push   $0x16
40c2ea:	e9 be 01 00 00       	jmp    0x40c4ad
40c2ef:	8b 57 04             	mov    0x4(%edi),%edx
40c2f2:	39 55 ec             	cmp    %edx,-0x14(%ebp)
40c2f5:	73 52                	jae    0x40c349
40c2f7:	8b 0f                	mov    (%edi),%ecx
40c2f9:	85 c9                	test   %ecx,%ecx
40c2fb:	74 4c                	je     0x40c349
40c2fd:	ff 75 08             	push   0x8(%ebp)
40c300:	e8 ff 09 00 00       	call   0x40cd04
40c305:	8b f0                	mov    %eax,%esi
40c307:	85 f6                	test   %esi,%esi
40c309:	79 33                	jns    0x40c33e
40c30b:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c310:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c315:	0f 84 9d 01 00 00    	je     0x40c4b8
40c31b:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c31f:	0f 84 93 01 00 00    	je     0x40c4b8
40c325:	56                   	push   %esi
40c326:	ff 70 14             	push   0x14(%eax)
40c329:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c32e:	ff 70 10             	push   0x10(%eax)
40c331:	6a 17                	push   $0x17
40c333:	59                   	pop    %ecx
40c334:	e8 95 b0 ff ff       	call   0x4073ce
40c339:	e9 7a 01 00 00       	jmp    0x40c4b8
40c33e:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c341:	01 47 08             	add    %eax,0x8(%edi)
40c344:	e9 32 01 00 00       	jmp    0x40c47b
40c349:	8b 4f 08             	mov    0x8(%edi),%ecx
40c34c:	8d 41 01             	lea    0x1(%ecx),%eax
40c34f:	3b c1                	cmp    %ecx,%eax
40c351:	73 2c                	jae    0x40c37f
40c353:	be 16 02 07 80       	mov    $0x80070216,%esi
40c358:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c35d:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c362:	0f 84 50 01 00 00    	je     0x40c4b8
40c368:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c36c:	0f 84 46 01 00 00    	je     0x40c4b8
40c372:	ff 70 14             	push   0x14(%eax)
40c375:	ff 70 10             	push   0x10(%eax)
40c378:	6a 18                	push   $0x18
40c37a:	e9 2e 01 00 00       	jmp    0x40c4ad
40c37f:	03 c6                	add    %esi,%eax
40c381:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c384:	3b c6                	cmp    %esi,%eax
40c386:	0f 82 02 01 00 00    	jb     0x40c48e
40c38c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c390:	33 c9                	xor    %ecx,%ecx
40c392:	6a 02                	push   $0x2
40c394:	5a                   	pop    %edx
40c395:	89 45 e8             	mov    %eax,-0x18(%ebp)
40c398:	f7 e2                	mul    %edx
40c39a:	0f 90 c1             	seto   %cl
40c39d:	f7 d9                	neg    %ecx
40c39f:	0b c8                	or     %eax,%ecx
40c3a1:	51                   	push   %ecx
40c3a2:	e8 6b b9 01 00       	call   0x427d12
40c3a7:	8b d8                	mov    %eax,%ebx
40c3a9:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c3ac:	59                   	pop    %ecx
40c3ad:	eb 12                	jmp    0x40c3c1
40c3af:	b8 b5 c3 40 00       	mov    $0x40c3b5,%eax
40c3b4:	c3                   	ret
40c3b5:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c3b8:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40c3bb:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40c3be:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c3c1:	85 db                	test   %ebx,%ebx
40c3c3:	75 2f                	jne    0x40c3f4
40c3c5:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c3ca:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c3cf:	74 19                	je     0x40c3ea
40c3d1:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c3d5:	74 13                	je     0x40c3ea
40c3d7:	ff 70 14             	push   0x14(%eax)
40c3da:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c3df:	ff 70 10             	push   0x10(%eax)
40c3e2:	6a 1a                	push   $0x1a
40c3e4:	59                   	pop    %ecx
40c3e5:	e8 c6 af ff ff       	call   0x4073b0
40c3ea:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40c3ef:	e9 c4 00 00 00       	jmp    0x40c4b8
40c3f4:	33 c9                	xor    %ecx,%ecx
40c3f6:	66 89 0b             	mov    %cx,(%ebx)
40c3f9:	39 0f                	cmp    %ecx,(%edi)
40c3fb:	74 39                	je     0x40c436
40c3fd:	ff 37                	push   (%edi)
40c3ff:	8b d0                	mov    %eax,%edx
40c401:	8b cb                	mov    %ebx,%ecx
40c403:	e8 2d c6 ff ff       	call   0x408a35
40c408:	8b f0                	mov    %eax,%esi
40c40a:	85 f6                	test   %esi,%esi
40c40c:	79 28                	jns    0x40c436
40c40e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c413:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c418:	74 63                	je     0x40c47d
40c41a:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c41e:	74 5d                	je     0x40c47d
40c420:	56                   	push   %esi
40c421:	ff 70 14             	push   0x14(%eax)
40c424:	ff 70 10             	push   0x10(%eax)
40c427:	6a 1b                	push   $0x1b
40c429:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c42e:	59                   	pop    %ecx
40c42f:	e8 9a af ff ff       	call   0x4073ce
40c434:	eb 47                	jmp    0x40c47d
40c436:	ff 75 08             	push   0x8(%ebp)
40c439:	8b 55 ec             	mov    -0x14(%ebp),%edx
40c43c:	8b cb                	mov    %ebx,%ecx
40c43e:	e8 c1 08 00 00       	call   0x40cd04
40c443:	8b f0                	mov    %eax,%esi
40c445:	85 f6                	test   %esi,%esi
40c447:	79 1d                	jns    0x40c466
40c449:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c44e:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c453:	74 28                	je     0x40c47d
40c455:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c459:	74 22                	je     0x40c47d
40c45b:	56                   	push   %esi
40c45c:	ff 70 14             	push   0x14(%eax)
40c45f:	ff 70 10             	push   0x10(%eax)
40c462:	6a 1c                	push   $0x1c
40c464:	eb c3                	jmp    0x40c429
40c466:	6a 01                	push   $0x1
40c468:	8b cf                	mov    %edi,%ecx
40c46a:	e8 b6 07 00 00       	call   0x40cc25
40c46f:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c472:	89 47 04             	mov    %eax,0x4(%edi)
40c475:	48                   	dec    %eax
40c476:	89 1f                	mov    %ebx,(%edi)
40c478:	89 47 08             	mov    %eax,0x8(%edi)
40c47b:	33 f6                	xor    %esi,%esi
40c47d:	85 db                	test   %ebx,%ebx
40c47f:	74 37                	je     0x40c4b8
40c481:	39 1f                	cmp    %ebx,(%edi)
40c483:	74 33                	je     0x40c4b8
40c485:	53                   	push   %ebx
40c486:	e8 b0 b8 01 00       	call   0x427d3b
40c48b:	59                   	pop    %ecx
40c48c:	eb 2a                	jmp    0x40c4b8
40c48e:	be 16 02 07 80       	mov    $0x80070216,%esi
40c493:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c498:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c49d:	74 19                	je     0x40c4b8
40c49f:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c4a3:	74 13                	je     0x40c4b8
40c4a5:	ff 70 14             	push   0x14(%eax)
40c4a8:	ff 70 10             	push   0x10(%eax)
40c4ab:	6a 19                	push   $0x19
40c4ad:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c4b2:	59                   	pop    %ecx
40c4b3:	e8 f8 ae ff ff       	call   0x4073b0
40c4b8:	8b c6                	mov    %esi,%eax
40c4ba:	e8 77 bb 01 00       	call   0x428036
40c4bf:	c2 04 00             	ret    $0x4
40c4c2:	8b ff                	mov    %edi,%edi
40c4c4:	55                   	push   %ebp
40c4c5:	8b ec                	mov    %esp,%ebp
40c4c7:	83 e4 f8             	and    $0xfffffff8,%esp
40c4ca:	8b 55 0c             	mov    0xc(%ebp),%edx
40c4cd:	85 d2                	test   %edx,%edx
40c4cf:	75 2c                	jne    0x40c4fd
40c4d1:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c4d6:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c4db:	74 19                	je     0x40c4f6
40c4dd:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c4e1:	74 13                	je     0x40c4f6
40c4e3:	ff 70 14             	push   0x14(%eax)
40c4e6:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c4eb:	ff 70 10             	push   0x10(%eax)
40c4ee:	6a 25                	push   $0x25
40c4f0:	59                   	pop    %ecx
40c4f1:	e8 ba ae ff ff       	call   0x4073b0
40c4f6:	b8 57 00 07 80       	mov    $0x80070057,%eax
40c4fb:	eb 0d                	jmp    0x40c50a
40c4fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c500:	8d 45 10             	lea    0x10(%ebp),%eax
40c503:	50                   	push   %eax
40c504:	e8 05 00 00 00       	call   0x40c50e
40c509:	59                   	pop    %ecx
40c50a:	8b e5                	mov    %ebp,%esp
40c50c:	5d                   	pop    %ebp
40c50d:	c3                   	ret
40c50e:	6a 18                	push   $0x18
40c510:	b8 8c 86 42 00       	mov    $0x42868c,%eax
40c515:	e8 b7 bb 01 00       	call   0x4280d1
40c51a:	8b c2                	mov    %edx,%eax
40c51c:	89 45 dc             	mov    %eax,-0x24(%ebp)
40c51f:	8b f9                	mov    %ecx,%edi
40c521:	89 7d e8             	mov    %edi,-0x18(%ebp)
40c524:	33 db                	xor    %ebx,%ebx
40c526:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40c529:	85 c0                	test   %eax,%eax
40c52b:	75 34                	jne    0x40c561
40c52d:	e8 08 9e 01 00       	call   0x42633a
40c532:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c537:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c53c:	74 19                	je     0x40c557
40c53e:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c542:	74 13                	je     0x40c557
40c544:	ff 70 14             	push   0x14(%eax)
40c547:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c54c:	ff 70 10             	push   0x10(%eax)
40c54f:	6a 26                	push   $0x26
40c551:	59                   	pop    %ecx
40c552:	e8 59 ae ff ff       	call   0x4073b0
40c557:	b8 57 00 07 80       	mov    $0x80070057,%eax
40c55c:	e9 65 01 00 00       	jmp    0x40c6c6
40c561:	ff 75 08             	push   0x8(%ebp)
40c564:	50                   	push   %eax
40c565:	ff 15 b0 c3 42 00    	call   *0x42c3b0
40c56b:	8b f0                	mov    %eax,%esi
40c56d:	59                   	pop    %ecx
40c56e:	59                   	pop    %ecx
40c56f:	83 fe ff             	cmp    $0xffffffff,%esi
40c572:	75 2f                	jne    0x40c5a3
40c574:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c579:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c57e:	74 19                	je     0x40c599
40c580:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c584:	74 13                	je     0x40c599
40c586:	ff 70 14             	push   0x14(%eax)
40c589:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c58e:	ff 70 10             	push   0x10(%eax)
40c591:	6a 27                	push   $0x27
40c593:	59                   	pop    %ecx
40c594:	e8 17 ae ff ff       	call   0x4073b0
40c599:	be 05 40 00 80       	mov    $0x80004005,%esi
40c59e:	e9 21 01 00 00       	jmp    0x40c6c4
40c5a3:	8b 47 04             	mov    0x4(%edi),%eax
40c5a6:	46                   	inc    %esi
40c5a7:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c5aa:	3b c6                	cmp    %esi,%eax
40c5ac:	72 0a                	jb     0x40c5b8
40c5ae:	8b 3f                	mov    (%edi),%edi
40c5b0:	85 ff                	test   %edi,%edi
40c5b2:	74 04                	je     0x40c5b8
40c5b4:	8b f0                	mov    %eax,%esi
40c5b6:	eb 6f                	jmp    0x40c627
40c5b8:	33 c9                	xor    %ecx,%ecx
40c5ba:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c5bd:	6a 02                	push   $0x2
40c5bf:	5a                   	pop    %edx