40b7e3:	6a 0a                	push   $0xa
40b7e5:	5e                   	pop    %esi
40b7e6:	85 ff                	test   %edi,%edi
40b7e8:	75 05                	jne    0x40b7ef
40b7ea:	bf 18 1c 40 00       	mov    $0x401c18,%edi
40b7ef:	50                   	push   %eax
40b7f0:	6a 04                	push   $0x4
40b7f2:	8d 45 18             	lea    0x18(%ebp),%eax
40b7f5:	50                   	push   %eax
40b7f6:	6a 04                	push   $0x4
40b7f8:	8d 45 14             	lea    0x14(%ebp),%eax
40b7fb:	50                   	push   %eax
40b7fc:	56                   	push   %esi
40b7fd:	57                   	push   %edi
40b7fe:	51                   	push   %ecx
40b7ff:	53                   	push   %ebx
40b800:	6a 2b                	push   $0x2b
40b802:	ff 75 0c             	push   0xc(%ebp)
40b805:	ff 75 08             	push   0x8(%ebp)
40b808:	ff 15 68 c4 42 00    	call   *0x42c468
40b80e:	83 c4 30             	add    $0x30,%esp
40b811:	5f                   	pop    %edi
40b812:	5e                   	pop    %esi
40b813:	5b                   	pop    %ebx
40b814:	c9                   	leave
40b815:	c2 14 00             	ret    $0x14
40b818:	8b ff                	mov    %edi,%edi
40b81a:	55                   	push   %ebp
40b81b:	8b ec                	mov    %esp,%ebp
40b81d:	53                   	push   %ebx
40b81e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b821:	57                   	push   %edi
40b822:	8b f9                	mov    %ecx,%edi
40b824:	85 db                	test   %ebx,%ebx
40b826:	75 0a                	jne    0x40b832
40b828:	b8 57 00 07 80       	mov    $0x80070057,%eax
40b82d:	e9 84 00 00 00       	jmp    0x40b8b6
40b832:	56                   	push   %esi
40b833:	8b 75 08             	mov    0x8(%ebp),%esi
40b836:	33 d2                	xor    %edx,%edx
40b838:	89 16                	mov    %edx,(%esi)
40b83a:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40b840:	f6 87 84 01 00 00 03 	testb  $0x3,0x184(%edi)
40b847:	74 35                	je     0x40b87e
40b849:	81 0e 00 00 00 80    	orl    $0x80000000,(%esi)
40b84f:	8b 8f 84 01 00 00    	mov    0x184(%edi),%ecx
40b855:	8b c1                	mov    %ecx,%eax
40b857:	83 e0 03             	and    $0x3,%eax
40b85a:	3c 03                	cmp    $0x3,%al
40b85c:	74 1a                	je     0x40b878
40b85e:	f6 c1 01             	test   $0x1,%cl
40b861:	74 1b                	je     0x40b87e
40b863:	f6 87 80 01 00 00 08 	testb  $0x8,0x180(%edi)
40b86a:	75 12                	jne    0x40b87e
40b86c:	52                   	push   %edx
40b86d:	52                   	push   %edx
40b86e:	ff 15 c0 c4 42 00    	call   *0x42c4c0
40b874:	85 c0                	test   %eax,%eax
40b876:	75 06                	jne    0x40b87e
40b878:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
40b87e:	8b 87 80 01 00 00    	mov    0x180(%edi),%eax
40b884:	a8 0c                	test   $0xc,%al
40b886:	74 0c                	je     0x40b894
40b888:	81 0e 04 08 00 00    	orl    $0x804,(%esi)
40b88e:	8b 87 80 01 00 00    	mov    0x180(%edi),%eax
40b894:	a8 10                	test   $0x10,%al
40b896:	74 0c                	je     0x40b8a4
40b898:	8b 06                	mov    (%esi),%eax
40b89a:	83 e0 fb             	and    $0xfffffffb,%eax
40b89d:	0d 80 00 00 00       	or     $0x80,%eax
40b8a2:	89 06                	mov    %eax,(%esi)
40b8a4:	83 bf 88 01 00 00 02 	cmpl   $0x2,0x188(%edi)
40b8ab:	75 06                	jne    0x40b8b3
40b8ad:	81 0e 00 08 00 00    	orl    $0x800,(%esi)
40b8b3:	33 c0                	xor    %eax,%eax
40b8b5:	5e                   	pop    %esi
40b8b6:	5f                   	pop    %edi
40b8b7:	5b                   	pop    %ebx
40b8b8:	5d                   	pop    %ebp
40b8b9:	c2 08 00             	ret    $0x8
40b8bc:	6a 10                	push   $0x10
40b8be:	b8 67 85 42 00       	mov    $0x428567,%eax
40b8c3:	e8 a0 c7 01 00       	call   0x428068
40b8c8:	8b d9                	mov    %ecx,%ebx
40b8ca:	33 c0                	xor    %eax,%eax
40b8cc:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b8cf:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b8d2:	89 45 ec             	mov    %eax,-0x14(%ebp)
40b8d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b8d8:	8d bb cc 00 00 00    	lea    0xcc(%ebx),%edi
40b8de:	8b f0                	mov    %eax,%esi
40b8e0:	8b cf                	mov    %edi,%ecx
40b8e2:	e8 a3 10 00 00       	call   0x40c98a
40b8e7:	85 c0                	test   %eax,%eax
40b8e9:	74 42                	je     0x40b92d
40b8eb:	ff 37                	push   (%edi)
40b8ed:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b8f0:	e8 c3 07 00 00       	call   0x40c0b8
40b8f5:	85 c0                	test   %eax,%eax
40b8f7:	78 34                	js     0x40b92d
40b8f9:	83 fe 03             	cmp    $0x3,%esi
40b8fc:	74 05                	je     0x40b903
40b8fe:	83 fe 04             	cmp    $0x4,%esi
40b901:	75 1d                	jne    0x40b920
40b903:	8b cb                	mov    %ebx,%ecx
40b905:	e8 80 10 00 00       	call   0x40c98a
40b90a:	85 c0                	test   %eax,%eax
40b90c:	74 12                	je     0x40b920
40b90e:	51                   	push   %ecx
40b90f:	6a 00                	push   $0x0
40b911:	ff 33                	push   (%ebx)
40b913:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b916:	68 00 22 40 00       	push   $0x402200
40b91b:	e8 32 0f 00 00       	call   0x40c852
40b920:	ff 75 e8             	push   -0x18(%ebp)
40b923:	56                   	push   %esi
40b924:	ff 75 08             	push   0x8(%ebp)
40b927:	ff 15 c4 c4 42 00    	call   *0x42c4c4
40b92d:	46                   	inc    %esi
40b92e:	83 c7 0c             	add    $0xc,%edi
40b931:	83 fe 0b             	cmp    $0xb,%esi
40b934:	72 aa                	jb     0x40b8e0
40b936:	6a 01                	push   $0x1
40b938:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b93b:	e8 e5 12 00 00       	call   0x40cc25
40b940:	33 c0                	xor    %eax,%eax
40b942:	e8 ef c6 01 00       	call   0x428036
40b947:	c2 04 00             	ret    $0x4
40b94a:	8b ff                	mov    %edi,%edi
40b94c:	55                   	push   %ebp
40b94d:	8b ec                	mov    %esp,%ebp
40b94f:	51                   	push   %ecx
40b950:	53                   	push   %ebx
40b951:	56                   	push   %esi
40b952:	8b f1                	mov    %ecx,%esi
40b954:	8d 4e 18             	lea    0x18(%esi),%ecx
40b957:	e8 2e 10 00 00       	call   0x40c98a
40b95c:	33 db                	xor    %ebx,%ebx
40b95e:	43                   	inc    %ebx
40b95f:	85 c0                	test   %eax,%eax
40b961:	74 4d                	je     0x40b9b0
40b963:	8b 86 80 01 00 00    	mov    0x180(%esi),%eax
40b969:	8b c8                	mov    %eax,%ecx
40b96b:	c1 e9 09             	shr    $0x9,%ecx
40b96e:	83 e1 02             	and    $0x2,%ecx
40b971:	84 c3                	test   %al,%bl
40b973:	74 02                	je     0x40b977
40b975:	0b cb                	or     %ebx,%ecx
40b977:	51                   	push   %ecx
40b978:	6a 05                	push   $0x5
40b97a:	ff 76 18             	push   0x18(%esi)
40b97d:	ff 75 08             	push   0x8(%ebp)
40b980:	e8 92 01 00 00       	call   0x40bb17
40b985:	85 c0                	test   %eax,%eax
40b987:	79 27                	jns    0x40b9b0
40b989:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40b98f:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40b995:	74 19                	je     0x40b9b0
40b997:	84 59 1c             	test   %bl,0x1c(%ecx)
40b99a:	74 14                	je     0x40b9b0
40b99c:	50                   	push   %eax
40b99d:	ff 71 14             	push   0x14(%ecx)
40b9a0:	ba 30 22 40 00       	mov    $0x402230,%edx
40b9a5:	ff 71 10             	push   0x10(%ecx)
40b9a8:	6a 0a                	push   $0xa
40b9aa:	59                   	pop    %ecx
40b9ab:	e8 1e ba ff ff       	call   0x4073ce
40b9b0:	8d 4e 24             	lea    0x24(%esi),%ecx
40b9b3:	e8 d2 0f 00 00       	call   0x40c98a
40b9b8:	85 c0                	test   %eax,%eax
40b9ba:	74 44                	je     0x40ba00
40b9bc:	8b 86 80 01 00 00    	mov    0x180(%esi),%eax
40b9c2:	c1 e8 09             	shr    $0x9,%eax
40b9c5:	83 e0 02             	and    $0x2,%eax
40b9c8:	50                   	push   %eax
40b9c9:	6a 05                	push   $0x5
40b9cb:	ff 31                	push   (%ecx)
40b9cd:	ff 75 08             	push   0x8(%ebp)
40b9d0:	e8 42 01 00 00       	call   0x40bb17
40b9d5:	85 c0                	test   %eax,%eax
40b9d7:	79 27                	jns    0x40ba00
40b9d9:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40b9df:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40b9e5:	74 19                	je     0x40ba00
40b9e7:	84 59 1c             	test   %bl,0x1c(%ecx)
40b9ea:	74 14                	je     0x40ba00
40b9ec:	50                   	push   %eax
40b9ed:	ff 71 14             	push   0x14(%ecx)
40b9f0:	ba 30 22 40 00       	mov    $0x402230,%edx
40b9f5:	ff 71 10             	push   0x10(%ecx)
40b9f8:	6a 0b                	push   $0xb
40b9fa:	59                   	pop    %ecx
40b9fb:	e8 ce b9 ff ff       	call   0x4073ce
40ba00:	8d 4e 30             	lea    0x30(%esi),%ecx
40ba03:	e8 82 0f 00 00       	call   0x40c98a
40ba08:	85 c0                	test   %eax,%eax
40ba0a:	74 39                	je     0x40ba45
40ba0c:	6a 00                	push   $0x0
40ba0e:	6a 04                	push   $0x4
40ba10:	ff 31                	push   (%ecx)
40ba12:	ff 75 08             	push   0x8(%ebp)
40ba15:	e8 fd 00 00 00       	call   0x40bb17
40ba1a:	85 c0                	test   %eax,%eax
40ba1c:	79 27                	jns    0x40ba45
40ba1e:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40ba24:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40ba2a:	74 19                	je     0x40ba45
40ba2c:	84 59 1c             	test   %bl,0x1c(%ecx)
40ba2f:	74 14                	je     0x40ba45
40ba31:	50                   	push   %eax
40ba32:	ff 71 14             	push   0x14(%ecx)
40ba35:	ba 30 22 40 00       	mov    $0x402230,%edx
40ba3a:	ff 71 10             	push   0x10(%ecx)
40ba3d:	6a 0c                	push   $0xc
40ba3f:	59                   	pop    %ecx
40ba40:	e8 89 b9 ff ff       	call   0x4073ce
40ba45:	8d 4e 3c             	lea    0x3c(%esi),%ecx
40ba48:	e8 3d 0f 00 00       	call   0x40c98a
40ba4d:	85 c0                	test   %eax,%eax
40ba4f:	74 44                	je     0x40ba95
40ba51:	8b 86 80 01 00 00    	mov    0x180(%esi),%eax
40ba57:	23 c3                	and    %ebx,%eax
40ba59:	50                   	push   %eax
40ba5a:	6a 03                	push   $0x3
40ba5c:	ff 31                	push   (%ecx)
40ba5e:	ff 75 08             	push   0x8(%ebp)
40ba61:	e8 b1 00 00 00       	call   0x40bb17
40ba66:	8b f0                	mov    %eax,%esi
40ba68:	85 f6                	test   %esi,%esi
40ba6a:	79 29                	jns    0x40ba95
40ba6c:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40ba72:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40ba78:	74 1d                	je     0x40ba97
40ba7a:	84 59 1c             	test   %bl,0x1c(%ecx)
40ba7d:	74 18                	je     0x40ba97
40ba7f:	56                   	push   %esi
40ba80:	ff 71 14             	push   0x14(%ecx)
40ba83:	ba 30 22 40 00       	mov    $0x402230,%edx
40ba88:	ff 71 10             	push   0x10(%ecx)
40ba8b:	6a 0d                	push   $0xd
40ba8d:	59                   	pop    %ecx
40ba8e:	e8 3b b9 ff ff       	call   0x4073ce
40ba93:	eb 02                	jmp    0x40ba97
40ba95:	33 f6                	xor    %esi,%esi
40ba97:	8b c6                	mov    %esi,%eax
40ba99:	5e                   	pop    %esi
40ba9a:	5b                   	pop    %ebx
40ba9b:	59                   	pop    %ecx
40ba9c:	5d                   	pop    %ebp
40ba9d:	c2 04 00             	ret    $0x4
40baa0:	8b ff                	mov    %edi,%edi
40baa2:	55                   	push   %ebp
40baa3:	8b ec                	mov    %esp,%ebp
40baa5:	53                   	push   %ebx
40baa6:	56                   	push   %esi
40baa7:	8d 71 54             	lea    0x54(%ecx),%esi
40baaa:	ba 05 40 00 80       	mov    $0x80004005,%edx
40baaf:	8b 06                	mov    (%esi),%eax
40bab1:	57                   	push   %edi
40bab2:	85 c0                	test   %eax,%eax
40bab4:	74 30                	je     0x40bae6
40bab6:	33 db                	xor    %ebx,%ebx
40bab8:	66 39 18             	cmp    %bx,(%eax)
40babb:	74 29                	je     0x40bae6
40babd:	8b fb                	mov    %ebx,%edi
40babf:	8b ce                	mov    %esi,%ecx
40bac1:	e8 c4 0e 00 00       	call   0x40c98a
40bac6:	85 c0                	test   %eax,%eax
40bac8:	74 0f                	je     0x40bad9
40baca:	ff 36                	push   (%esi)
40bacc:	53                   	push   %ebx
40bacd:	57                   	push   %edi
40bace:	ff 75 08             	push   0x8(%ebp)
40bad1:	ff 15 98 c4 42 00    	call   *0x42c498
40bad7:	8b d0                	mov    %eax,%edx
40bad9:	47                   	inc    %edi
40bada:	83 c6 0c             	add    $0xc,%esi
40badd:	83 ff 0a             	cmp    $0xa,%edi
40bae0:	72 dd                	jb     0x40babf
40bae2:	8b c2                	mov    %edx,%eax
40bae4:	eb 2a                	jmp    0x40bb10
40bae6:	a1 00 b0 42 00       	mov    0x42b000,%eax
40baeb:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40baf0:	74 19                	je     0x40bb0b
40baf2:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40baf6:	74 13                	je     0x40bb0b
40baf8:	ff 70 14             	push   0x14(%eax)
40bafb:	ba 30 22 40 00       	mov    $0x402230,%edx
40bb00:	ff 70 10             	push   0x10(%eax)
40bb03:	6a 0e                	push   $0xe
40bb05:	59                   	pop    %ecx
40bb06:	e8 a5 b8 ff ff       	call   0x4073b0
40bb0b:	b8 03 80 1b 80       	mov    $0x801b8003,%eax
40bb10:	5f                   	pop    %edi
40bb11:	5e                   	pop    %esi
40bb12:	5b                   	pop    %ebx
40bb13:	5d                   	pop    %ebp
40bb14:	c2 04 00             	ret    $0x4
40bb17:	6a 14                	push   $0x14
40bb19:	b8 8a 85 42 00       	mov    $0x42858a,%eax
40bb1e:	e8 45 c5 01 00       	call   0x428068
40bb23:	33 c0                	xor    %eax,%eax
40bb25:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bb28:	89 45 ec             	mov    %eax,-0x14(%ebp)
40bb2b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40bb2e:	8b 75 0c             	mov    0xc(%ebp),%esi
40bb31:	8b 7d 14             	mov    0x14(%ebp),%edi
40bb34:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bb37:	85 f6                	test   %esi,%esi
40bb39:	74 09                	je     0x40bb44
40bb3b:	39 45 08             	cmp    %eax,0x8(%ebp)
40bb3e:	0f 85 d1 00 00 00    	jne    0x40bc15
40bb44:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bb49:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bb4e:	74 19                	je     0x40bb69
40bb50:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bb54:	74 13                	je     0x40bb69
40bb56:	ff 70 14             	push   0x14(%eax)
40bb59:	ba 30 22 40 00       	mov    $0x402230,%edx
40bb5e:	ff 70 10             	push   0x10(%eax)
40bb61:	6a 0f                	push   $0xf
40bb63:	59                   	pop    %ecx
40bb64:	e8 47 b8 ff ff       	call   0x4073b0
40bb69:	bf 57 00 07 80       	mov    $0x80070057,%edi
40bb6e:	6a 01                	push   $0x1
40bb70:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40bb73:	e8 ad 10 00 00       	call   0x40cc25
40bb78:	8b c7                	mov    %edi,%eax
40bb7a:	e8 b7 c4 01 00       	call   0x428036
40bb7f:	c2 10 00             	ret    $0x10
40bb82:	8b c8                	mov    %eax,%ecx
40bb84:	2b ce                	sub    %esi,%ecx
40bb86:	d1 f9                	sar    $1,%ecx
40bb88:	51                   	push   %ecx
40bb89:	56                   	push   %esi
40bb8a:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40bb8d:	e8 57 04 00 00       	call   0x40bfe9
40bb92:	8b f8                	mov    %eax,%edi
40bb94:	85 ff                	test   %edi,%edi
40bb96:	0f 88 d2 00 00 00    	js     0x40bc6e
40bb9c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40bb9f:	8b 7d 14             	mov    0x14(%ebp),%edi
40bba2:	85 f6                	test   %esi,%esi
40bba4:	74 2d                	je     0x40bbd3
40bba6:	6a 2e                	push   $0x2e
40bba8:	56                   	push   %esi
40bba9:	ff 15 28 c3 42 00    	call   *0x42c328
40bbaf:	59                   	pop    %ecx
40bbb0:	59                   	pop    %ecx
40bbb1:	85 c0                	test   %eax,%eax