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
40c5c0:	8b c6                	mov    %esi,%eax
40c5c2:	f7 e2                	mul    %edx
40c5c4:	0f 90 c1             	seto   %cl
40c5c7:	f7 d9                	neg    %ecx
40c5c9:	0b c8                	or     %eax,%ecx
40c5cb:	51                   	push   %ecx
40c5cc:	e8 41 b7 01 00       	call   0x427d12
40c5d1:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c5d5:	8b f8                	mov    %eax,%edi
40c5d7:	59                   	pop    %ecx
40c5d8:	eb 11                	jmp    0x40c5eb
40c5da:	b8 e0 c5 40 00       	mov    $0x40c5e0,%eax
40c5df:	c3                   	ret
40c5e0:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c5e4:	33 db                	xor    %ebx,%ebx
40c5e6:	8b 75 e0             	mov    -0x20(%ebp),%esi
40c5e9:	8b fb                	mov    %ebx,%edi
40c5eb:	85 ff                	test   %edi,%edi
40c5ed:	75 31                	jne    0x40c620
40c5ef:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c5f4:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c5f9:	74 1b                	je     0x40c616
40c5fb:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c5ff:	74 15                	je     0x40c616
40c601:	53                   	push   %ebx
40c602:	56                   	push   %esi
40c603:	ff 70 14             	push   0x14(%eax)
40c606:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c60b:	ff 70 10             	push   0x10(%eax)
40c60e:	6a 28                	push   $0x28
40c610:	59                   	pop    %ecx
40c611:	e8 09 f8 ff ff       	call   0x40be1f
40c616:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40c61b:	e9 a4 00 00 00       	jmp    0x40c6c4
40c620:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40c627:	ff 75 08             	push   0x8(%ebp)
40c62a:	33 c0                	xor    %eax,%eax
40c62c:	8b d6                	mov    %esi,%edx
40c62e:	ff 75 dc             	push   -0x24(%ebp)
40c631:	8b cf                	mov    %edi,%ecx
40c633:	66 89 07             	mov    %ax,(%edi)
40c636:	e8 67 06 00 00       	call   0x40cca2
40c63b:	8b f0                	mov    %eax,%esi
40c63d:	85 f6                	test   %esi,%esi
40c63f:	79 28                	jns    0x40c669
40c641:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c646:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c64b:	74 6a                	je     0x40c6b7
40c64d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c651:	74 64                	je     0x40c6b7
40c653:	56                   	push   %esi
40c654:	ff 70 14             	push   0x14(%eax)
40c657:	ff 70 10             	push   0x10(%eax)
40c65a:	6a 29                	push   $0x29
40c65c:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c661:	59                   	pop    %ecx
40c662:	e8 67 ad ff ff       	call   0x4073ce
40c667:	eb 4e                	jmp    0x40c6b7
40c669:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40c66d:	74 2c                	je     0x40c69b
40c66f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40c672:	57                   	push   %edi
40c673:	e8 40 fa ff ff       	call   0x40c0b8
40c678:	8b f0                	mov    %eax,%esi
40c67a:	85 f6                	test   %esi,%esi
40c67c:	79 37                	jns    0x40c6b5
40c67e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c683:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c688:	74 2d                	je     0x40c6b7
40c68a:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c68e:	74 27                	je     0x40c6b7
40c690:	56                   	push   %esi
40c691:	ff 70 14             	push   0x14(%eax)
40c694:	ff 70 10             	push   0x10(%eax)
40c697:	6a 2a                	push   $0x2a
40c699:	eb c1                	jmp    0x40c65c
40c69b:	8b cf                	mov    %edi,%ecx
40c69d:	8d 51 02             	lea    0x2(%ecx),%edx
40c6a0:	66 8b 01             	mov    (%ecx),%ax
40c6a3:	83 c1 02             	add    $0x2,%ecx
40c6a6:	66 3b c3             	cmp    %bx,%ax
40c6a9:	75 f5                	jne    0x40c6a0
40c6ab:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c6ae:	2b ca                	sub    %edx,%ecx
40c6b0:	d1 f9                	sar    $1,%ecx
40c6b2:	89 48 08             	mov    %ecx,0x8(%eax)
40c6b5:	8b f3                	mov    %ebx,%esi
40c6b7:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40c6bb:	74 07                	je     0x40c6c4
40c6bd:	57                   	push   %edi
40c6be:	e8 78 b6 01 00       	call   0x427d3b
40c6c3:	59                   	pop    %ecx
40c6c4:	8b c6                	mov    %esi,%eax
40c6c6:	e8 6b b9 01 00       	call   0x428036
40c6cb:	c3                   	ret
40c6cc:	8b ff                	mov    %edi,%edi
40c6ce:	55                   	push   %ebp
40c6cf:	8b ec                	mov    %esp,%ebp
40c6d1:	83 e4 f8             	and    $0xfffffff8,%esp
40c6d4:	56                   	push   %esi
40c6d5:	57                   	push   %edi
40c6d6:	68 00 02 00 00       	push   $0x200
40c6db:	8b f1                	mov    %ecx,%esi
40c6dd:	e8 30 b6 01 00       	call   0x427d12
40c6e2:	8b f8                	mov    %eax,%edi
40c6e4:	59                   	pop    %ecx
40c6e5:	85 ff                	test   %edi,%edi
40c6e7:	75 2f                	jne    0x40c718
40c6e9:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c6ee:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c6f3:	74 19                	je     0x40c70e
40c6f5:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c6f9:	74 13                	je     0x40c70e
40c6fb:	ff 70 14             	push   0x14(%eax)
40c6fe:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c703:	ff 70 10             	push   0x10(%eax)
40c706:	6a 2b                	push   $0x2b
40c708:	59                   	pop    %ecx
40c709:	e8 a2 ac ff ff       	call   0x4073b0
40c70e:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40c713:	e9 86 00 00 00       	jmp    0x40c79e
40c718:	68 00 01 00 00       	push   $0x100
40c71d:	57                   	push   %edi
40c71e:	ff 75 08             	push   0x8(%ebp)
40c721:	33 c0                	xor    %eax,%eax
40c723:	ff 75 0c             	push   0xc(%ebp)
40c726:	66 89 07             	mov    %ax,(%edi)
40c729:	ff 15 d4 c1 42 00    	call   *0x42c1d4
40c72f:	85 c0                	test   %eax,%eax
40c731:	74 2f                	je     0x40c762
40c733:	57                   	push   %edi
40c734:	8b ce                	mov    %esi,%ecx
40c736:	e8 7d f9 ff ff       	call   0x40c0b8
40c73b:	8b f0                	mov    %eax,%esi
40c73d:	85 f6                	test   %esi,%esi
40c73f:	79 1d                	jns    0x40c75e
40c741:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c746:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c74b:	74 4a                	je     0x40c797
40c74d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c751:	74 44                	je     0x40c797
40c753:	56                   	push   %esi
40c754:	ff 70 14             	push   0x14(%eax)
40c757:	ff 70 10             	push   0x10(%eax)
40c75a:	6a 2c                	push   $0x2c
40c75c:	eb 2e                	jmp    0x40c78c
40c75e:	33 f6                	xor    %esi,%esi
40c760:	eb 35                	jmp    0x40c797
40c762:	ff 15 18 c2 42 00    	call   *0x42c218
40c768:	8b c8                	mov    %eax,%ecx
40c76a:	e8 3b ee ff ff       	call   0x40b5aa
40c76f:	8b f0                	mov    %eax,%esi
40c771:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c776:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c77b:	74 1a                	je     0x40c797
40c77d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c781:	74 14                	je     0x40c797
40c783:	56                   	push   %esi
40c784:	ff 70 14             	push   0x14(%eax)
40c787:	ff 70 10             	push   0x10(%eax)
40c78a:	6a 2d                	push   $0x2d
40c78c:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c791:	59                   	pop    %ecx
40c792:	e8 37 ac ff ff       	call   0x4073ce
40c797:	57                   	push   %edi
40c798:	e8 9e b5 01 00       	call   0x427d3b
40c79d:	59                   	pop    %ecx
40c79e:	5f                   	pop    %edi
40c79f:	8b c6                	mov    %esi,%eax
40c7a1:	5e                   	pop    %esi
40c7a2:	8b e5                	mov    %ebp,%esp
40c7a4:	5d                   	pop    %ebp
40c7a5:	c2 08 00             	ret    $0x8
40c7a8:	8b ff                	mov    %edi,%edi
40c7aa:	55                   	push   %ebp