40bd0f:	5d                   	pop    %ebp
40bd10:	c3                   	ret
40bd11:	55                   	push   %ebp
40bd12:	8b ec                	mov    %esp,%ebp
40bd14:	56                   	push   %esi
40bd15:	8b 75 08             	mov    0x8(%ebp),%esi
40bd18:	57                   	push   %edi
40bd19:	8b 3e                	mov    (%esi),%edi
40bd1b:	81 3f 52 43 43 e0    	cmpl   $0xe0434352,(%edi)
40bd21:	74 12                	je     0x40bd35
40bd23:	81 3f 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%edi)
40bd29:	74 0a                	je     0x40bd35
40bd2b:	81 3f 63 73 6d e0    	cmpl   $0xe06d7363,(%edi)
40bd31:	74 1b                	je     0x40bd4e
40bd33:	eb 13                	jmp    0x40bd48
40bd35:	e8 60 00 00 00       	call   0x40bd9a
40bd3a:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40bd3e:	7e 08                	jle    0x40bd48
40bd40:	e8 55 00 00 00       	call   0x40bd9a
40bd45:	ff 48 18             	decl   0x18(%eax)
40bd48:	5f                   	pop    %edi
40bd49:	33 c0                	xor    %eax,%eax
40bd4b:	5e                   	pop    %esi
40bd4c:	5d                   	pop    %ebp
40bd4d:	c3                   	ret
40bd4e:	e8 47 00 00 00       	call   0x40bd9a
40bd53:	89 78 10             	mov    %edi,0x10(%eax)
40bd56:	8b 76 04             	mov    0x4(%esi),%esi
40bd59:	e8 3c 00 00 00       	call   0x40bd9a
40bd5e:	89 70 14             	mov    %esi,0x14(%eax)
40bd61:	e8 ef 00 01 00       	call   0x41be55
40bd66:	cc                   	int3
40bd67:	e8 2e 00 00 00       	call   0x40bd9a
40bd6c:	83 c0 10             	add    $0x10,%eax
40bd6f:	c3                   	ret
40bd70:	e8 25 00 00 00       	call   0x40bd9a
40bd75:	83 c0 14             	add    $0x14,%eax
40bd78:	c3                   	ret
40bd79:	e9 d7 00 01 00       	jmp    0x41be55
40bd7e:	55                   	push   %ebp
40bd7f:	8b ec                	mov    %esp,%ebp
40bd81:	8b 45 08             	mov    0x8(%ebp),%eax
40bd84:	85 c0                	test   %eax,%eax
40bd86:	74 0e                	je     0x40bd96
40bd88:	3d e0 f5 43 00       	cmp    $0x43f5e0,%eax
40bd8d:	74 07                	je     0x40bd96
40bd8f:	50                   	push   %eax
40bd90:	e8 7b ae ff ff       	call   0x406c10
40bd95:	59                   	pop    %ecx
40bd96:	5d                   	pop    %ebp
40bd97:	c2 04 00             	ret    $0x4
40bd9a:	e8 09 00 00 00       	call   0x40bda8
40bd9f:	85 c0                	test   %eax,%eax
40bda1:	0f 84 ea 00 01 00    	je     0x41be91
40bda7:	c3                   	ret
40bda8:	83 3d 20 d1 43 00 ff 	cmpl   $0xffffffff,0x43d120
40bdaf:	75 03                	jne    0x40bdb4
40bdb1:	33 c0                	xor    %eax,%eax
40bdb3:	c3                   	ret
40bdb4:	53                   	push   %ebx
40bdb5:	57                   	push   %edi
40bdb6:	ff 15 08 11 43 00    	call   *0x431108
40bdbc:	ff 35 20 d1 43 00    	push   0x43d120
40bdc2:	8b f8                	mov    %eax,%edi
40bdc4:	e8 ba 11 00 00       	call   0x40cf83
40bdc9:	8b d8                	mov    %eax,%ebx
40bdcb:	59                   	pop    %ecx
40bdcc:	83 fb ff             	cmp    $0xffffffff,%ebx
40bdcf:	74 17                	je     0x40bde8
40bdd1:	85 db                	test   %ebx,%ebx
40bdd3:	75 59                	jne    0x40be2e
40bdd5:	6a ff                	push   $0xffffffff
40bdd7:	ff 35 20 d1 43 00    	push   0x43d120
40bddd:	e8 dc 11 00 00       	call   0x40cfbe
40bde2:	59                   	pop    %ecx
40bde3:	59                   	pop    %ecx
40bde4:	85 c0                	test   %eax,%eax
40bde6:	75 04                	jne    0x40bdec
40bde8:	33 db                	xor    %ebx,%ebx
40bdea:	eb 42                	jmp    0x40be2e
40bdec:	56                   	push   %esi
40bded:	6a 28                	push   $0x28
40bdef:	6a 01                	push   $0x1
40bdf1:	e8 ba ad ff ff       	call   0x406bb0
40bdf6:	8b f0                	mov    %eax,%esi
40bdf8:	59                   	pop    %ecx
40bdf9:	59                   	pop    %ecx
40bdfa:	85 f6                	test   %esi,%esi
40bdfc:	74 12                	je     0x40be10
40bdfe:	56                   	push   %esi
40bdff:	ff 35 20 d1 43 00    	push   0x43d120
40be05:	e8 b4 11 00 00       	call   0x40cfbe
40be0a:	59                   	pop    %ecx
40be0b:	59                   	pop    %ecx
40be0c:	85 c0                	test   %eax,%eax
40be0e:	75 12                	jne    0x40be22
40be10:	33 db                	xor    %ebx,%ebx
40be12:	53                   	push   %ebx
40be13:	ff 35 20 d1 43 00    	push   0x43d120
40be19:	e8 a0 11 00 00       	call   0x40cfbe
40be1e:	59                   	pop    %ecx
40be1f:	59                   	pop    %ecx
40be20:	eb 04                	jmp    0x40be26
40be22:	8b de                	mov    %esi,%ebx
40be24:	33 f6                	xor    %esi,%esi
40be26:	56                   	push   %esi
40be27:	e8 e4 ad ff ff       	call   0x406c10
40be2c:	59                   	pop    %ecx
40be2d:	5e                   	pop    %esi
40be2e:	57                   	push   %edi
40be2f:	ff 15 78 11 43 00    	call   *0x431178
40be35:	5f                   	pop    %edi
40be36:	8b c3                	mov    %ebx,%eax
40be38:	5b                   	pop    %ebx
40be39:	c3                   	ret
40be3a:	68 7e bd 40 00       	push   $0x40bd7e
40be3f:	e8 c9 10 00 00       	call   0x40cf0d
40be44:	a3 20 d1 43 00       	mov    %eax,0x43d120
40be49:	59                   	pop    %ecx
40be4a:	83 f8 ff             	cmp    $0xffffffff,%eax
40be4d:	75 03                	jne    0x40be52
40be4f:	32 c0                	xor    %al,%al
40be51:	c3                   	ret
40be52:	68 e0 f5 43 00       	push   $0x43f5e0
40be57:	50                   	push   %eax
40be58:	e8 61 11 00 00       	call   0x40cfbe
40be5d:	59                   	pop    %ecx
40be5e:	59                   	pop    %ecx
40be5f:	85 c0                	test   %eax,%eax
40be61:	75 07                	jne    0x40be6a
40be63:	e8 05 00 00 00       	call   0x40be6d
40be68:	eb e5                	jmp    0x40be4f
40be6a:	b0 01                	mov    $0x1,%al
40be6c:	c3                   	ret
40be6d:	a1 20 d1 43 00       	mov    0x43d120,%eax
40be72:	83 f8 ff             	cmp    $0xffffffff,%eax
40be75:	74 0e                	je     0x40be85
40be77:	50                   	push   %eax
40be78:	e8 cb 10 00 00       	call   0x40cf48
40be7d:	83 0d 20 d1 43 00 ff 	orl    $0xffffffff,0x43d120
40be84:	59                   	pop    %ecx
40be85:	b0 01                	mov    $0x1,%al
40be87:	c3                   	ret
40be88:	6a 10                	push   $0x10
40be8a:	68 a0 aa 43 00       	push   $0x43aaa0
40be8f:	e8 3c e6 ff ff       	call   0x40a4d0
40be94:	33 db                	xor    %ebx,%ebx
40be96:	8b 45 10             	mov    0x10(%ebp),%eax
40be99:	8b 48 04             	mov    0x4(%eax),%ecx
40be9c:	85 c9                	test   %ecx,%ecx
40be9e:	0f 84 0a 01 00 00    	je     0x40bfae
40bea4:	38 59 08             	cmp    %bl,0x8(%ecx)
40bea7:	0f 84 01 01 00 00    	je     0x40bfae
40bead:	8b 50 08             	mov    0x8(%eax),%edx
40beb0:	85 d2                	test   %edx,%edx
40beb2:	75 08                	jne    0x40bebc
40beb4:	39 18                	cmp    %ebx,(%eax)
40beb6:	0f 8d f2 00 00 00    	jge    0x40bfae
40bebc:	8b 08                	mov    (%eax),%ecx
40bebe:	8b 75 0c             	mov    0xc(%ebp),%esi
40bec1:	85 c9                	test   %ecx,%ecx
40bec3:	78 05                	js     0x40beca
40bec5:	83 c6 0c             	add    $0xc,%esi
40bec8:	03 f2                	add    %edx,%esi
40beca:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40becd:	8b 7d 14             	mov    0x14(%ebp),%edi
40bed0:	84 c9                	test   %cl,%cl
40bed2:	79 20                	jns    0x40bef4
40bed4:	f6 07 10             	testb  $0x10,(%edi)
40bed7:	74 1b                	je     0x40bef4
40bed9:	a1 d8 f5 43 00       	mov    0x43f5d8,%eax
40bede:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bee1:	85 c0                	test   %eax,%eax
40bee3:	74 0f                	je     0x40bef4
40bee5:	8b c8                	mov    %eax,%ecx
40bee7:	ff 15 68 12 43 00    	call   *0x431268
40beed:	ff 55 e4             	call   *-0x1c(%ebp)
40bef0:	8b c8                	mov    %eax,%ecx
40bef2:	eb 0b                	jmp    0x40beff
40bef4:	8b 45 08             	mov    0x8(%ebp),%eax
40bef7:	f6 c1 08             	test   $0x8,%cl
40befa:	74 1c                	je     0x40bf18
40befc:	8b 48 18             	mov    0x18(%eax),%ecx
40beff:	85 c9                	test   %ecx,%ecx
40bf01:	0f 84 b9 00 00 00    	je     0x40bfc0
40bf07:	85 f6                	test   %esi,%esi
40bf09:	0f 84 b1 00 00 00    	je     0x40bfc0
40bf0f:	89 0e                	mov    %ecx,(%esi)
40bf11:	8d 47 08             	lea    0x8(%edi),%eax
40bf14:	50                   	push   %eax
40bf15:	51                   	push   %ecx
40bf16:	eb 37                	jmp    0x40bf4f
40bf18:	f6 07 01             	testb  $0x1,(%edi)
40bf1b:	74 3d                	je     0x40bf5a
40bf1d:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40bf21:	0f 84 99 00 00 00    	je     0x40bfc0
40bf27:	85 f6                	test   %esi,%esi
40bf29:	0f 84 91 00 00 00    	je     0x40bfc0
40bf2f:	ff 77 14             	push   0x14(%edi)
40bf32:	ff 70 18             	push   0x18(%eax)
40bf35:	56                   	push   %esi
40bf36:	e8 05 ef ff ff       	call   0x40ae40
40bf3b:	83 c4 0c             	add    $0xc,%esp
40bf3e:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
40bf42:	75 56                	jne    0x40bf9a
40bf44:	83 3e 00             	cmpl   $0x0,(%esi)
40bf47:	74 51                	je     0x40bf9a
40bf49:	8d 47 08             	lea    0x8(%edi),%eax
40bf4c:	50                   	push   %eax
40bf4d:	ff 36                	push   (%esi)
40bf4f:	e8 98 fd ff ff       	call   0x40bcec
40bf54:	59                   	pop    %ecx
40bf55:	59                   	pop    %ecx
40bf56:	89 06                	mov    %eax,(%esi)
40bf58:	eb 40                	jmp    0x40bf9a
40bf5a:	8b 48 18             	mov    0x18(%eax),%ecx
40bf5d:	39 5f 18             	cmp    %ebx,0x18(%edi)
40bf60:	75 23                	jne    0x40bf85
40bf62:	85 c9                	test   %ecx,%ecx
40bf64:	74 5a                	je     0x40bfc0
40bf66:	85 f6                	test   %esi,%esi
40bf68:	74 56                	je     0x40bfc0
40bf6a:	ff 77 14             	push   0x14(%edi)
40bf6d:	8d 47 08             	lea    0x8(%edi),%eax
40bf70:	50                   	push   %eax
40bf71:	51                   	push   %ecx
40bf72:	e8 75 fd ff ff       	call   0x40bcec
40bf77:	59                   	pop    %ecx
40bf78:	59                   	pop    %ecx
40bf79:	50                   	push   %eax
40bf7a:	56                   	push   %esi
40bf7b:	e8 c0 ee ff ff       	call   0x40ae40
40bf80:	83 c4 0c             	add    $0xc,%esp
40bf83:	eb 15                	jmp    0x40bf9a
40bf85:	85 c9                	test   %ecx,%ecx
40bf87:	74 37                	je     0x40bfc0
40bf89:	85 f6                	test   %esi,%esi
40bf8b:	74 33                	je     0x40bfc0
40bf8d:	f6 07 04             	testb  $0x4,(%edi)
40bf90:	6a 00                	push   $0x0
40bf92:	5b                   	pop    %ebx
40bf93:	0f 95 c3             	setne  %bl
40bf96:	43                   	inc    %ebx
40bf97:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40bf9a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bfa1:	8b c3                	mov    %ebx,%eax
40bfa3:	eb 0b                	jmp    0x40bfb0
40bfa5:	33 c0                	xor    %eax,%eax
40bfa7:	40                   	inc    %eax
40bfa8:	c3                   	ret
40bfa9:	8b 65 e8             	mov    -0x18(%ebp),%esp
40bfac:	eb 12                	jmp    0x40bfc0
40bfae:	33 c0                	xor    %eax,%eax
40bfb0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bfb3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bfba:	59                   	pop    %ecx
40bfbb:	5f                   	pop    %edi
40bfbc:	5e                   	pop    %esi
40bfbd:	5b                   	pop    %ebx
40bfbe:	c9                   	leave
40bfbf:	c3                   	ret
40bfc0:	e8 cc fe 00 00       	call   0x41be91
40bfc5:	cc                   	int3
40bfc6:	6a 08                	push   $0x8
40bfc8:	68 c0 aa 43 00       	push   $0x43aac0
40bfcd:	e8 fe e4 ff ff       	call   0x40a4d0
40bfd2:	8b 55 10             	mov    0x10(%ebp),%edx
40bfd5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bfd8:	83 3a 00             	cmpl   $0x0,(%edx)
40bfdb:	7d 04                	jge    0x40bfe1
40bfdd:	8b f9                	mov    %ecx,%edi
40bfdf:	eb 06                	jmp    0x40bfe7
40bfe1:	8d 79 0c             	lea    0xc(%ecx),%edi
40bfe4:	03 7a 08             	add    0x8(%edx),%edi
40bfe7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bfeb:	8b 75 14             	mov    0x14(%ebp),%esi
40bfee:	56                   	push   %esi
40bfef:	52                   	push   %edx
40bff0:	51                   	push   %ecx
40bff1:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bff4:	53                   	push   %ebx
40bff5:	e8 8e fe ff ff       	call   0x40be88
40bffa:	83 c4 10             	add    $0x10,%esp
40bffd:	83 e8 01             	sub    $0x1,%eax
40c000:	74 21                	je     0x40c023
40c002:	83 e8 01             	sub    $0x1,%eax
40c005:	75 34                	jne    0x40c03b
40c007:	8d 46 08             	lea    0x8(%esi),%eax
40c00a:	50                   	push   %eax
40c00b:	ff 73 18             	push   0x18(%ebx)
40c00e:	e8 d9 fc ff ff       	call   0x40bcec
40c013:	59                   	pop    %ecx
40c014:	59                   	pop    %ecx
40c015:	6a 01                	push   $0x1
40c017:	50                   	push   %eax
40c018:	ff 76 18             	push   0x18(%esi)
40c01b:	57                   	push   %edi
40c01c:	e8 85 0b 00 00       	call   0x40cba6
40c021:	eb 18                	jmp    0x40c03b
40c023:	8d 46 08             	lea    0x8(%esi),%eax
40c026:	50                   	push   %eax
40c027:	ff 73 18             	push   0x18(%ebx)
40c02a:	e8 bd fc ff ff       	call   0x40bcec
40c02f:	59                   	pop    %ecx
40c030:	59                   	pop    %ecx
40c031:	50                   	push   %eax
40c032:	ff 76 18             	push   0x18(%esi)
40c035:	57                   	push   %edi
40c036:	e8 5b 0b 00 00       	call   0x40cb96
40c03b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c042:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c045:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c04c:	59                   	pop    %ecx
40c04d:	5f                   	pop    %edi
40c04e:	5e                   	pop    %esi
40c04f:	5b                   	pop    %ebx
40c050:	c9                   	leave
40c051:	c3                   	ret
40c052:	33 c0                	xor    %eax,%eax
40c054:	40                   	inc    %eax
40c055:	c3                   	ret
40c056:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c059:	e8 33 fe 00 00       	call   0x41be91
40c05e:	cc                   	int3
40c05f:	55                   	push   %ebp
40c060:	8b ec                	mov    %esp,%ebp
40c062:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40c066:	53                   	push   %ebx
40c067:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40c06a:	56                   	push   %esi
40c06b:	57                   	push   %edi
40c06c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c06f:	74 10                	je     0x40c081
40c071:	ff 75 20             	push   0x20(%ebp)
40c074:	53                   	push   %ebx
40c075:	57                   	push   %edi
40c076:	ff 75 08             	push   0x8(%ebp)
40c079:	e8 48 ff ff ff       	call   0x40bfc6
40c07e:	83 c4 10             	add    $0x10,%esp
40c081:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
40c085:	8b c7                	mov    %edi,%eax
40c087:	ff 75 08             	push   0x8(%ebp)
40c08a:	0f 45 45 2c          	cmovne 0x2c(%ebp),%eax
40c08e:	50                   	push   %eax
40c08f:	e8 d8 eb ff ff       	call   0x40ac6c
40c094:	8b 75 24             	mov    0x24(%ebp),%esi
40c097:	ff 36                	push   (%esi)
40c099:	ff 75 18             	push   0x18(%ebp)
40c09c:	ff 75 14             	push   0x14(%ebp)
40c09f:	57                   	push   %edi