4539c0:	75 ed                	jne    0x4539af
4539c2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4539c5:	8d 51 08             	lea    0x8(%ecx),%edx
4539c8:	8d 45 dc             	lea    -0x24(%ebp),%eax
4539cb:	50                   	push   %eax
4539cc:	e8 40 0e 00 00       	call   0x454811
4539d1:	59                   	pop    %ecx
4539d2:	e8 ca ca 03 00       	call   0x4904a1
4539d7:	c2 0c 00             	ret    $0xc
4539da:	e8 53 9f fc ff       	call   0x41d932
4539df:	51                   	push   %ecx
4539e0:	ff 75 e4             	push   -0x1c(%ebp)
4539e3:	e8 c7 9f fc ff       	call   0x41d9af
4539e8:	33 f6                	xor    %esi,%esi
4539ea:	56                   	push   %esi
4539eb:	56                   	push   %esi
4539ec:	e8 aa ca 03 00       	call   0x49049b
4539f1:	cc                   	int3
4539f2:	6a 18                	push   $0x18
4539f4:	b8 0c 3f 49 00       	mov    $0x493f0c,%eax
4539f9:	e8 3e cb 03 00       	call   0x49053c
4539fe:	8b f9                	mov    %ecx,%edi
453a00:	89 7d dc             	mov    %edi,-0x24(%ebp)
453a03:	ff 75 10             	push   0x10(%ebp)
453a06:	8d 4d ec             	lea    -0x14(%ebp),%ecx
453a09:	ff 15 18 74 4a 00    	call   *0x4a7418
453a0f:	33 f6                	xor    %esi,%esi
453a11:	89 75 fc             	mov    %esi,-0x4(%ebp)
453a14:	8b 4f 04             	mov    0x4(%edi),%ecx
453a17:	85 c9                	test   %ecx,%ecx
453a19:	75 06                	jne    0x453a21
453a1b:	8b d6                	mov    %esi,%edx
453a1d:	8b de                	mov    %esi,%ebx
453a1f:	eb 10                	jmp    0x453a31
453a21:	8b 57 0c             	mov    0xc(%edi),%edx
453a24:	8b 5f 08             	mov    0x8(%edi),%ebx
453a27:	2b d1                	sub    %ecx,%edx
453a29:	2b d9                	sub    %ecx,%ebx
453a2b:	c1 fa 02             	sar    $0x2,%edx
453a2e:	c1 fb 02             	sar    $0x2,%ebx
453a31:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
453a36:	89 45 e8             	mov    %eax,-0x18(%ebp)
453a39:	2b c3                	sub    %ebx,%eax
453a3b:	33 db                	xor    %ebx,%ebx
453a3d:	43                   	inc    %ebx
453a3e:	3b c3                	cmp    %ebx,%eax
453a40:	0f 82 dd 01 00 00    	jb     0x453c23
453a46:	85 c9                	test   %ecx,%ecx
453a48:	75 04                	jne    0x453a4e
453a4a:	8b c6                	mov    %esi,%eax
453a4c:	eb 08                	jmp    0x453a56
453a4e:	8b 47 08             	mov    0x8(%edi),%eax
453a51:	2b c1                	sub    %ecx,%eax
453a53:	c1 f8 02             	sar    $0x2,%eax
453a56:	40                   	inc    %eax
453a57:	3b d0                	cmp    %eax,%edx
453a59:	0f 83 e8 00 00 00    	jae    0x453b47
453a5f:	8b c2                	mov    %edx,%eax
453a61:	d1 e8                	shr    $1,%eax
453a63:	29 45 e8             	sub    %eax,-0x18(%ebp)
453a66:	03 c2                	add    %edx,%eax
453a68:	39 55 e8             	cmp    %edx,-0x18(%ebp)
453a6b:	1b d2                	sbb    %edx,%edx
453a6d:	f7 d2                	not    %edx
453a6f:	23 d0                	and    %eax,%edx
453a71:	89 55 e0             	mov    %edx,-0x20(%ebp)
453a74:	85 c9                	test   %ecx,%ecx
453a76:	75 04                	jne    0x453a7c
453a78:	8b c6                	mov    %esi,%eax
453a7a:	eb 08                	jmp    0x453a84
453a7c:	8b 47 08             	mov    0x8(%edi),%eax
453a7f:	2b c1                	sub    %ecx,%eax
453a81:	c1 f8 02             	sar    $0x2,%eax
453a84:	40                   	inc    %eax
453a85:	3b d0                	cmp    %eax,%edx
453a87:	73 16                	jae    0x453a9f
453a89:	85 c9                	test   %ecx,%ecx
453a8b:	75 04                	jne    0x453a91
453a8d:	8b c6                	mov    %esi,%eax
453a8f:	eb 08                	jmp    0x453a99
453a91:	8b 47 08             	mov    0x8(%edi),%eax
453a94:	2b c1                	sub    %ecx,%eax
453a96:	c1 f8 02             	sar    $0x2,%eax
453a99:	8d 50 01             	lea    0x1(%eax),%edx
453a9c:	89 55 e0             	mov    %edx,-0x20(%ebp)
453a9f:	52                   	push   %edx
453aa0:	e8 57 a5 fc ff       	call   0x41dffc
453aa5:	88 5d fc             	mov    %bl,-0x4(%ebp)
453aa8:	ff 75 dc             	push   -0x24(%ebp)
453aab:	8b 55 08             	mov    0x8(%ebp),%edx
453aae:	ff 75 dc             	push   -0x24(%ebp)
453ab1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
453ab4:	51                   	push   %ecx
453ab5:	8b 4f 04             	mov    0x4(%edi),%ecx
453ab8:	50                   	push   %eax
453ab9:	89 45 e8             	mov    %eax,-0x18(%ebp)
453abc:	e8 77 0f 00 00       	call   0x454a38
453ac1:	8b d3                	mov    %ebx,%edx
453ac3:	89 45 e8             	mov    %eax,-0x18(%ebp)
453ac6:	8d 48 04             	lea    0x4(%eax),%ecx
453ac9:	89 4d dc             	mov    %ecx,-0x24(%ebp)
453acc:	ff 75 dc             	push   -0x24(%ebp)
453acf:	ff 75 dc             	push   -0x24(%ebp)
453ad2:	51                   	push   %ecx
453ad3:	8d 4d ec             	lea    -0x14(%ebp),%ecx
453ad6:	51                   	push   %ecx
453ad7:	8b c8                	mov    %eax,%ecx
453ad9:	e8 9b 0e 00 00       	call   0x454979
453ade:	ff 75 dc             	push   -0x24(%ebp)
453ae1:	8b 45 dc             	mov    -0x24(%ebp),%eax
453ae4:	ff 75 dc             	push   -0x24(%ebp)
453ae7:	8b 57 08             	mov    0x8(%edi),%edx
453aea:	51                   	push   %ecx
453aeb:	8b 4d 08             	mov    0x8(%ebp),%ecx
453aee:	50                   	push   %eax
453aef:	89 45 e8             	mov    %eax,-0x18(%ebp)
453af2:	e8 41 0f 00 00       	call   0x454a38
453af7:	8b 5f 04             	mov    0x4(%edi),%ebx
453afa:	85 db                	test   %ebx,%ebx
453afc:	74 2c                	je     0x453b2a
453afe:	8b 47 08             	mov    0x8(%edi),%eax
453b01:	8b f0                	mov    %eax,%esi
453b03:	2b f3                	sub    %ebx,%esi
453b05:	89 45 dc             	mov    %eax,-0x24(%ebp)
453b08:	c1 fe 02             	sar    $0x2,%esi
453b0b:	3b d8                	cmp    %eax,%ebx
453b0d:	74 13                	je     0x453b22
453b0f:	8b cb                	mov    %ebx,%ecx
453b11:	ff 15 1c 74 4a 00    	call   *0x4a741c
453b17:	83 c3 04             	add    $0x4,%ebx
453b1a:	3b 5d dc             	cmp    -0x24(%ebp),%ebx
453b1d:	75 f0                	jne    0x453b0f
453b1f:	8b 5f 04             	mov    0x4(%edi),%ebx
453b22:	53                   	push   %ebx
453b23:	ff 15 10 74 4a 00    	call   *0x4a7410
453b29:	59                   	pop    %ecx
453b2a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
453b2d:	8b 45 e0             	mov    -0x20(%ebp),%eax
453b30:	89 4f 04             	mov    %ecx,0x4(%edi)
453b33:	8d 04 81             	lea    (%ecx,%eax,4),%eax
453b36:	89 47 0c             	mov    %eax,0xc(%edi)
453b39:	8d 41 04             	lea    0x4(%ecx),%eax
453b3c:	8d 04 b0             	lea    (%eax,%esi,4),%eax
453b3f:	89 47 08             	mov    %eax,0x8(%edi)
453b42:	e9 cb 00 00 00       	jmp    0x453c12
453b47:	8b 57 08             	mov    0x8(%edi),%edx
453b4a:	8b c2                	mov    %edx,%eax
453b4c:	8b 4d 08             	mov    0x8(%ebp),%ecx
453b4f:	2b c1                	sub    %ecx,%eax
453b51:	ff 75 dc             	push   -0x24(%ebp)
453b54:	c1 f8 02             	sar    $0x2,%eax
453b57:	89 55 e0             	mov    %edx,-0x20(%ebp)
453b5a:	ff 75 dc             	push   -0x24(%ebp)
453b5d:	51                   	push   %ecx
453b5e:	3b c3                	cmp    %ebx,%eax
453b60:	73 6a                	jae    0x453bcc
453b62:	8d 41 04             	lea    0x4(%ecx),%eax
453b65:	50                   	push   %eax
453b66:	e8 cd 0e 00 00       	call   0x454a38
453b6b:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
453b6f:	8b 4f 08             	mov    0x8(%edi),%ecx
453b72:	8b c1                	mov    %ecx,%eax
453b74:	ff 75 dc             	push   -0x24(%ebp)
453b77:	2b 45 08             	sub    0x8(%ebp),%eax
453b7a:	ff 75 dc             	push   -0x24(%ebp)
453b7d:	c1 f8 02             	sar    $0x2,%eax
453b80:	2b d8                	sub    %eax,%ebx
453b82:	8d 45 ec             	lea    -0x14(%ebp),%eax
453b85:	51                   	push   %ecx
453b86:	50                   	push   %eax
453b87:	8b d3                	mov    %ebx,%edx
453b89:	e8 eb 0d 00 00       	call   0x454979
453b8e:	89 75 fc             	mov    %esi,-0x4(%ebp)
453b91:	8b 5f 08             	mov    0x8(%edi),%ebx
453b94:	8b 75 08             	mov    0x8(%ebp),%esi
453b97:	8d 43 04             	lea    0x4(%ebx),%eax
453b9a:	89 47 08             	mov    %eax,0x8(%edi)
453b9d:	eb 0f                	jmp    0x453bae
453b9f:	8d 45 ec             	lea    -0x14(%ebp),%eax
453ba2:	8b ce                	mov    %esi,%ecx
453ba4:	50                   	push   %eax
453ba5:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453bab:	83 c6 04             	add    $0x4,%esi
453bae:	3b f3                	cmp    %ebx,%esi
453bb0:	75 ed                	jne    0x453b9f
453bb2:	eb 5e                	jmp    0x453c12
453bb4:	8b 45 dc             	mov    -0x24(%ebp),%eax
453bb7:	8b 40 08             	mov    0x8(%eax),%eax
453bba:	83 c0 04             	add    $0x4,%eax
453bbd:	50                   	push   %eax
453bbe:	8b 45 08             	mov    0x8(%ebp),%eax
453bc1:	83 c0 04             	add    $0x4,%eax
453bc4:	50                   	push   %eax
453bc5:	e8 7c 00 00 00       	call   0x453c46
453bca:	eb 70                	jmp    0x453c3c
453bcc:	8d 5a fc             	lea    -0x4(%edx),%ebx
453bcf:	52                   	push   %edx
453bd0:	8b cb                	mov    %ebx,%ecx
453bd2:	e8 61 0e 00 00       	call   0x454a38
453bd7:	8b 75 08             	mov    0x8(%ebp),%esi
453bda:	89 47 08             	mov    %eax,0x8(%edi)
453bdd:	3b de                	cmp    %esi,%ebx
453bdf:	74 19                	je     0x453bfa
453be1:	8b 7d e0             	mov    -0x20(%ebp),%edi
453be4:	2b fb                	sub    %ebx,%edi
453be6:	83 eb 04             	sub    $0x4,%ebx
453be9:	53                   	push   %ebx
453bea:	8d 0c 1f             	lea    (%edi,%ebx,1),%ecx
453bed:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453bf3:	3b de                	cmp    %esi,%ebx
453bf5:	75 ef                	jne    0x453be6
453bf7:	8b 75 08             	mov    0x8(%ebp),%esi
453bfa:	8d 7e 04             	lea    0x4(%esi),%edi
453bfd:	eb 0f                	jmp    0x453c0e
453bff:	8d 45 ec             	lea    -0x14(%ebp),%eax
453c02:	8b ce                	mov    %esi,%ecx
453c04:	50                   	push   %eax
453c05:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453c0b:	83 c6 04             	add    $0x4,%esi
453c0e:	3b f7                	cmp    %edi,%esi
453c10:	75 ed                	jne    0x453bff
453c12:	8d 4d ec             	lea    -0x14(%ebp),%ecx
453c15:	ff 15 1c 74 4a 00    	call   *0x4a741c
453c1b:	e8 81 c8 03 00       	call   0x4904a1
453c20:	c2 0c 00             	ret    $0xc
453c23:	e8 0a 9d fc ff       	call   0x41d932
453c28:	ff 75 e8             	push   -0x18(%ebp)
453c2b:	ff 75 e4             	push   -0x1c(%ebp)
453c2e:	e8 13 00 00 00       	call   0x453c46
453c33:	51                   	push   %ecx
453c34:	ff 75 e4             	push   -0x1c(%ebp)
453c37:	e8 73 9d fc ff       	call   0x41d9af
453c3c:	33 f6                	xor    %esi,%esi
453c3e:	56                   	push   %esi
453c3f:	56                   	push   %esi
453c40:	e8 56 c8 03 00       	call   0x49049b
453c45:	cc                   	int3
453c46:	8b ff                	mov    %edi,%edi
453c48:	55                   	push   %ebp
453c49:	8b ec                	mov    %esp,%ebp
453c4b:	56                   	push   %esi
453c4c:	8b 75 08             	mov    0x8(%ebp),%esi
453c4f:	eb 0b                	jmp    0x453c5c
453c51:	8b ce                	mov    %esi,%ecx
453c53:	ff 15 1c 74 4a 00    	call   *0x4a741c
453c59:	83 c6 04             	add    $0x4,%esi
453c5c:	3b 75 0c             	cmp    0xc(%ebp),%esi
453c5f:	75 f0                	jne    0x453c51
453c61:	5e                   	pop    %esi
453c62:	5d                   	pop    %ebp
453c63:	c2 08 00             	ret    $0x8
453c66:	8b ff                	mov    %edi,%edi
453c68:	55                   	push   %ebp
453c69:	8b ec                	mov    %esp,%ebp
453c6b:	83 e4 f8             	and    $0xfffffff8,%esp
453c6e:	51                   	push   %ecx
453c6f:	51                   	push   %ecx
453c70:	56                   	push   %esi
453c71:	8b 75 0c             	mov    0xc(%ebp),%esi
453c74:	57                   	push   %edi
453c75:	8b f9                	mov    %ecx,%edi
453c77:	8b 47 04             	mov    0x4(%edi),%eax
453c7a:	3b 30                	cmp    (%eax),%esi
453c7c:	75 46                	jne    0x453cc4
453c7e:	39 45 10             	cmp    %eax,0x10(%ebp)
453c81:	75 41                	jne    0x453cc4
453c83:	ff 70 04             	push   0x4(%eax)
453c86:	e8 47 07 00 00       	call   0x4543d2
453c8b:	8b 47 04             	mov    0x4(%edi),%eax
453c8e:	89 40 04             	mov    %eax,0x4(%eax)
453c91:	8b 47 04             	mov    0x4(%edi),%eax
453c94:	83 67 08 00          	andl   $0x0,0x8(%edi)
453c98:	89 00                	mov    %eax,(%eax)
453c9a:	8b 47 04             	mov    0x4(%edi),%eax
453c9d:	89 40 08             	mov    %eax,0x8(%eax)
453ca0:	8b 47 04             	mov    0x4(%edi),%eax
453ca3:	8b 08                	mov    (%eax),%ecx
453ca5:	8b 45 08             	mov    0x8(%ebp),%eax
453ca8:	89 08                	mov    %ecx,(%eax)
453caa:	eb 22                	jmp    0x453cce
453cac:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453caf:	e8 9e 6a fc ff       	call   0x41a752
453cb4:	56                   	push   %esi
453cb5:	8d 44 24 10          	lea    0x10(%esp),%eax
453cb9:	8b cf                	mov    %edi,%ecx
453cbb:	50                   	push   %eax
453cbc:	e8 b1 01 00 00       	call   0x453e72
453cc1:	8b 75 0c             	mov    0xc(%ebp),%esi
453cc4:	3b 75 10             	cmp    0x10(%ebp),%esi
453cc7:	75 e3                	jne    0x453cac
453cc9:	8b 45 08             	mov    0x8(%ebp),%eax
453ccc:	89 30                	mov    %esi,(%eax)
453cce:	5f                   	pop    %edi
453ccf:	5e                   	pop    %esi
453cd0:	8b e5                	mov    %ebp,%esp
453cd2:	5d                   	pop    %ebp
453cd3:	c2 0c 00             	ret    $0xc
453cd6:	8b ff                	mov    %edi,%edi
453cd8:	55                   	push   %ebp
453cd9:	8b ec                	mov    %esp,%ebp
453cdb:	83 e4 f8             	and    $0xfffffff8,%esp
453cde:	51                   	push   %ecx
453cdf:	51                   	push   %ecx
453ce0:	56                   	push   %esi
453ce1:	8b 75 0c             	mov    0xc(%ebp),%esi
453ce4:	57                   	push   %edi
453ce5:	8b f9                	mov    %ecx,%edi
453ce7:	8b 47 04             	mov    0x4(%edi),%eax
453cea:	3b 30                	cmp    (%eax),%esi
453cec:	75 46                	jne    0x453d34
453cee:	39 45 10             	cmp    %eax,0x10(%ebp)
453cf1:	75 41                	jne    0x453d34
453cf3:	ff 70 04             	push   0x4(%eax)
453cf6:	e8 17 07 00 00       	call   0x454412
453cfb:	8b 47 04             	mov    0x4(%edi),%eax
453cfe:	89 40 04             	mov    %eax,0x4(%eax)
453d01:	8b 47 04             	mov    0x4(%edi),%eax
453d04:	83 67 08 00          	andl   $0x0,0x8(%edi)
453d08:	89 00                	mov    %eax,(%eax)
453d0a:	8b 47 04             	mov    0x4(%edi),%eax
453d0d:	89 40 08             	mov    %eax,0x8(%eax)
453d10:	8b 47 04             	mov    0x4(%edi),%eax
453d13:	8b 08                	mov    (%eax),%ecx
453d15:	8b 45 08             	mov    0x8(%ebp),%eax
453d18:	89 08                	mov    %ecx,(%eax)
453d1a:	eb 22                	jmp    0x453d3e
453d1c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453d1f:	e8 2e 6a fc ff       	call   0x41a752
453d24:	56                   	push   %esi
453d25:	8d 44 24 10          	lea    0x10(%esp),%eax
453d29:	8b cf                	mov    %edi,%ecx
453d2b:	50                   	push   %eax
453d2c:	e8 ab 5f fc ff       	call   0x419cdc
453d31:	8b 75 0c             	mov    0xc(%ebp),%esi
453d34:	3b 75 10             	cmp    0x10(%ebp),%esi
453d37:	75 e3                	jne    0x453d1c
453d39:	8b 45 08             	mov    0x8(%ebp),%eax
453d3c:	89 30                	mov    %esi,(%eax)
453d3e:	5f                   	pop    %edi
453d3f:	5e                   	pop    %esi
453d40:	8b e5                	mov    %ebp,%esp
453d42:	5d                   	pop    %ebp
453d43:	c2 0c 00             	ret    $0xc
453d46:	8b ff                	mov    %edi,%edi
453d48:	55                   	push   %ebp
453d49:	8b ec                	mov    %esp,%ebp
453d4b:	83 e4 f8             	and    $0xfffffff8,%esp
453d4e:	51                   	push   %ecx
453d4f:	51                   	push   %ecx
453d50:	56                   	push   %esi